gnucash-on-osx master: Repeatable and maintainable method for creating a dependencies tarball.
John Ralls
jralls at code.gnucash.org
Sat May 4 19:19:42 EDT 2024
Updated via https://github.com/Gnucash/gnucash-on-osx/commit/db46bbf8 (commit)
from https://github.com/Gnucash/gnucash-on-osx/commit/d179c6d7 (commit)
commit db46bbf836caeadd9722c8a6f25ec2eb9ab1f0f5
Author: John Ralls <jralls at ceridwen.us>
Date: Sat May 4 16:07:16 2024 -0700
Repeatable and maintainable method for creating a dependencies tarball.
diff --git a/README.markdown b/README.markdown
index 7f0f48a..eb578d5 100644
--- a/README.markdown
+++ b/README.markdown
@@ -5,3 +5,59 @@ without X11. Better yet, the build is almost automatic.
Please see http://wiki.gnucash.org/wiki/MacOSX/Quartz for instructions.
+#### Building the dependencies tarball for CI tests ####
+The Github Mac runners are Apple Silicon so this must be done on an
+Apple Silicon Mac.
+
+##### Prerequisites #####
+1. Set up [gtk-osx](https://gitlab.gnome.org/GNOME/gtk-osx/README.md)
+on your system.
+2. Clone this repository.
+3. Create a build directory and change its ownership to you:
+ ```
+ sudo mkdir -p /Users/runner/gnucash/inst
+ sudo chown -R <your userid> /Users/runner
+ ```
+##### Procedure #####
+1. Change the file versions in dependencies.txt to match the versions
+ in the build you just made.
+2. Perform the following:
+ ```
+ cd /Users/runner
+ jhbuild --prefix /Users/runner/gnucash bootstrap-gtk-osx
+ jhbuild --prefix /Users/runner/gnucash --moduleset=/Path/to/gnucash-on-osx/modules/gnucash.modules build meta-gnucash-dependencies
+ cd gnucash/inst
+ xargs < /Path/to/gnucash-on-osx/dependencies.txt tar -rf ~/gnucash-<version>-mac-dependencies.tar
+ jhbuild --prefix /Users/runner/gnucash shell
+ xz ~/gnucash-<version>-mac-dependencies.tar
+ ```
+##### Testing the tarball #####
+While still in the jhbuild shell:
+```
+cd /Users/runner/gnucash
+mkdir parked
+mkdir gc-tarball
+cd gc-tarball
+tar -xf gnucash-<version>-mac-dependencies.tar.xz
+cd ../inst
+mv lib ../parked
+mv include ../parked
+mv share ../parked
+ln -s /Users/runner/gnucash/gc-tarball/include .
+ln -s /Users/runner/gnucash/gc-tarball/lib .
+ln -s /Users/runner/gnucash/gc-tarball/share .
+cd ../src
+git clone https://github.com/gnucash/gnucash
+mkdir ../build/gnucash-git && cd ../build/gnucash-git
+```
+Configure, build, and test GnuCash. If things go wrong then you need
+to figure out what's missing, add it to `dependencies.txt`, regenerate
+the tarball, untar it in `gc-tarball` and try again.
+
+##### Finish up #####
+1. Upload the result to the Dependencies folder in GnuCash's
+ Sourceforge project.
+2. Change the dependencies file URI in
+ `gnucash-git/.github/workflows/macos-tests.yaml` to match the file you
+ just made, commit the result, and push it.
+3. Commit and push any changes you made to `dependencies.txt`.
diff --git a/dependencies.txt b/dependencies.txt
new file mode 100644
index 0000000..37d82e5
--- /dev/null
+++ b/dependencies.txt
@@ -0,0 +1,164 @@
+bin/WebKitWebDriver
+bin/aqbanking-cli
+bin/aqbanking-config
+bin/aqebics-tool
+bin/aqhbci-tool4
+bin/aqofxconnect-tool
+bin/aqpaypal-tool
+bin/arm-apple-darwin23.5.0-pkg-config
+bin/ccache-swig
+bin/cardcommander
+bin/chipcard-config
+bin/chipcard-tool
+bin/gettext
+bin/gio-querymodules
+bin/glib-compile-resources
+bin/glib-compile-schemas
+bin/glib-genmarshal
+bin/glib-gettextize
+bin/glib-mkenums
+bin/gsettings
+bin/gtester
+bin/gtester-report
+bin/guile
+bin/guild
+bin/msgmerge
+bin/msgfmt
+bin/pkg-config
+bin/python3.11
+bin/python3
+bin/python3-config
+bin/python3.11-config
+bin/swig
+bin/xsltproc
+lib/aqbanking/
+lib/dbd/libdbdpgsql.so
+lib/dbd/libdbdsqlite3.so
+lib/dbd/libdbdmysql.so
+lib/gdk-pixbuf-2.0/
+lib/gio/
+lib/glib-2.0/
+lib/gtk-3.0/3.0.0/
+lib/guile/2.2/
+lib/gwenhywfar/
+lib/libaqbanking.dylib lib/libaqbanking.44.dylib
+lib/libatk-1.0.dylib lib/libatk-1.0.0.dylib
+lib/libboost_atomic.dylib
+lib/libboost_chrono.dylib
+lib/libboost_date_time.dylib
+lib/libboost_filesystem.dylib
+lib/libboost_locale.dylib
+lib/libboost_program_options.dylib
+lib/libboost_regex.dylib
+lib/libboost_system.dylib
+lib/libboost_thread.dylib
+lib/libcairo-gobject.dylib lib/libcairo-gobject.2.dylib
+lib/libcairo.dylib lib/libcairo.2.dylib
+lib/libchipcard.dylib lib/libchipcard.6.dylib
+lib/libcrypto.dylib lib/libcrypto.3.dylib
+lib/libdbi.dylib lib/libdbi.3.dylib
+lib/libenchant-2.dylib lib/libenchant-2.2.dylib
+lib/libepoxy.dylib lib/libepoxy.0.dylib
+lib/libexslt.dylib lib/libexslt.0.dylib
+lib/libffi.dylib lib/libffi.8.dylib
+lib/libfontconfig.dylib lib/libfontconfig.1.dylib
+lib/libfreetype.dylib lib/libfreetype.6.dylib lib/libfreetype.6.20.0.dylib
+lib/libfribidi.dylib lib/libfribidi.0.dylib
+lib/libgc.dylib lib/libgc.1.dylib
+lib/libgcrypt.dylib lib/libgcrypt.20.dylib
+lib/libgdk-3.dylib lib/libgdk-3.0.dylib
+lib/libgdk_pixbuf-2.0.dylib lib/libgdk_pixbuf-2.0.0.dylib
+lib/libgettextsrc.dylib lib/libgettextsrc-0.22.3.dylib
+lib/libgettextlib.dylib lib/libgettextlib-0.22.3.dylib
+lib/libgio-2.0.dylib lib/libgio-2.0.0.dylib
+lib/libglib-2.0.dylib lib/libglib-2.0.0.dylib
+lib/libgmodule-2.0.dylib lib/libgmodule-2.0.0.dylib
+lib/libgmp.dylib lib/libgmp.10.dylib
+lib/libgnutls.dylib lib/libgnutls.30.dylib
+lib/libgobject-2.0.dylib lib/libgobject-2.0.0.dylib
+lib/libgpg-error.dylib lib/libgpg-error.0.dylib
+lib/libgthread-2.0.dylib lib/libgthread-2.0.0.dylib
+lib/libgtk-3.dylib lib/libgtk-3.0.dylib
+lib/libgtkmacintegration-gtk3.dylib lib/libgtkmacintegration-gtk3.4.dylib
+lib/libguile-2.2.dylib lib/libguile-2.2.1.dylib
+lib/libgwengui-gtk3.dylib lib/libgwengui-gtk3.79.dylib
+lib/libgwenhywfar.dylib lib/libgwenhywfar.79.dylib
+lib/libharfbuzz-icu.dylib lib/libharfbuzz-icu.0.dylib
+lib/libharfbuzz.dylib lib/libharfbuzz.0.dylib
+lib/libhogweed.dylib lib/libhogweed.6.dylib lib/libhogweed.6.8.dylib
+lib/libicudata.dylib lib/libicudata.73.dylib lib/libicudata.73.2.dylib
+lib/libicui18n.dylib lib/libicui18n.73.dylib lib/libicui18n.73.2.dylib
+lib/libicuio.dylib lib/libicuio.73.dylib lib/libicuio.73.2.dylib
+lib/libicuuc.dylib lib/libicuuc.73.dylib lib/libicuuc.73.2.dylib
+lib/libintl.dylib lib/libintl.8.dylib
+lib/libjavascriptcoregtk-4.0.dylib lib/libjavascriptcoregtk-4.0.18.dylib lib/libjavascriptcoregtk-4.0.18.18.4.dylib
+lib/libjpeg.dylib lib/libjpeg.9.dylib
+lib/libltdl.dylib lib/libltdl.7.dylib
+lib/liblzma.dylib lib/liblzma.5.dylib
+lib/libnettle.dylib lib/libnettle.8.dylib lib/libnettle.8.8.dylib
+lib/libofx.dylib lib/libofx.7.dylib
+lib/libosp.dylib lib/libosp.5.dylib
+lib/libp11-kit.dylib lib/libp11-kit.0.dylib
+lib/libpango-1.0.dylib lib/libpango-1.0.0.dylib
+lib/libpangocairo-1.0.dylib lib/libpangocairo-1.0.0.dylib
+lib/libpangoft2-1.0.dylib lib/libpangoft2-1.0.0.dylib
+lib/libpcre.dylib lib/libpcre.1.dylib
+lib/libpcre2-8.dylib lib/libpcre2-8.0.dylib
+lib/libpixman-1.dylib lib/libpixman-1.0.dylib
+lib/libpng16.dylib lib/libpng16.16.dylib
+lib/libpq.dylib lib/libpq.5.dylib lib/libpq.5.12.dylib
+lib/libproxy.dylib lib/libproxy.1.dylib
+lib/libproxy/libpxbackend-1.0.dylib
+lib/libpsl.dylib lib/libpsl.5.dylib
+lib/librsvg-2.dylib lib/librsvg-2.2.dylib
+lib/libsharpyuv.dylib lib/libsharpyuv.0.dylib
+lib/libsoup-2.4.dylib lib/libsoup-2.4.1.dylib
+lib/libsqlite3.dylib lib/libsqlite3.0.dylib
+lib/libssl.dylib lib/libssl.3.dylib
+lib/libtasn1.dylib lib/libtasn1.6.dylib
+lib/libtextstyle.dylib lib/libtextstyle.0.dylib
+lib/libtiff.dylib lib/libtiff.6.dylib
+lib/libunistring.dylib lib/libunistring.2.dylib
+lib/libwebkit2gtk-4.0.dylib lib/libwebkit2gtk-4.0.37.dylib lib/libwebkit2gtk-4.0.37.53.1.dylib
+lib/libwebp.dylib lib/libwebp.7.dylib
+lib/libwebpdemux.dylib lib/libwebpdemux.2.dylib
+lib/libxml2.dylib lib/libxml2.2.dylib
+lib/libxslt.dylib lib/libxslt.1.dylib
+lib/libxmlsec1.dylib lib/libxmlsec1.1.dylib
+lib/libz.dylib lib/libz.1.dylib lib/libz.1.3.1.dylib
+lib/mariadb/libmariadb.dylib lib/mariadb/libmariadb.3.dylib lib/mariadb/libmysqlclient.dylib
+lib/pkgconfig/
+lib/webkit2gtk-4.0/injected-bundle/libwebkit2gtkinjectedbundle.so
+include/python3.11/
+include/atk-1.0/
+include/libxml2/
+include/aqbanking6/
+include/boost/
+include/cairo/
+include/dbi/
+include/freetype2/
+include/fribidi/
+include/gmp.h
+include/gdk-pixbuf-2.0/
+include/gio-unix-2.0/
+include/glib-2.0/
+include/gtk-3.0/
+include/gtkmacintegration/
+include/gwenhywfar5/
+include/guile/
+include/harfbuzz/
+include/libintl.h
+include/libofx/libofx.h
+include/libpng16/
+include/libsoup-2.4/
+include/libxml2/
+include/pango-1.0/
+include/pixman-1
+include/unicode/
+include/webkitgtk-4.0/webkit2/
+include/webkitgtk-4.0/jsc/
+share/gettext/
+share/gettext-0.22.3/
+share/guile/
+share/pkgconfig/
+share/swig/
diff --git a/modulesets/gnucash.modules b/modulesets/gnucash.modules
index 2b50740..6eb0456 100644
--- a/modulesets/gnucash.modules
+++ b/modulesets/gnucash.modules
@@ -76,8 +76,8 @@
</autotools>
<autotools id="xmlsec" autogenargs="--enable-docs=no --with-gcrypt --with-gnutls">
- <branch module="xmlsec1-1.3.1.tar.gz"
- repo="xmlsec" version="1.3.1" >
+ <branch module="xmlsec1-1.3.2.tar.gz"
+ repo="xmlsec" version="1.3.2" >
</branch>
<dependencies>
<dep package="openssl"/>
@@ -265,20 +265,7 @@
<branch module="gnucash/gnucash-5.6.tar.bz2"
checkoutdir="gnucash-5.6" repo="sourceforge" version="5.6" />
<dependencies>
- <dep package="meta-gtk-osx-gtk3"/>
- <dep package="libofx"/>
- <dep package="aqbanking"/>
- <dep package="mariadb-connector"/>
- <dep package="pgsql"/>
- <dep package="sqlite"/>
- <dep package="libdbi-drivers"/>
- <dep package="shared-mime-info"/>
- <dep package="iso-codes"/>
- <dep package="guile22"/>
- <dep package="swig"/>
- <dep package="boost"/>
- <dep package="googletest"/>
- <dep package="webkit2gtk3"/>
+ <dep package="meta-gnucash-dependencies"/>
</dependencies>
</cmake>
@@ -289,20 +276,7 @@
checkoutdir="gnucash-4.904" repo="sourceforge" version="4.904" />
<dependencies>
- <dep package="meta-gtk-osx-gtk3"/>
- <dep package="libofx"/>
- <dep package="aqbanking"/>
- <dep package="mariadb-connector"/>
- <dep package="pgsql"/>
- <dep package="sqlite"/>
- <dep package="libdbi-drivers"/>
- <dep package="shared-mime-info"/>
- <dep package="iso-codes"/>
- <dep package="guile22"/>
- <dep package="swig"/>
- <dep package="boost"/>
- <dep package="googletest"/>
- <dep package="webkit2gtk3"/>
+ <dep package="meta-gnucash-dependencies"/>
</dependencies>
</cmake>
@@ -311,6 +285,12 @@
<branch repo="github" module="Gnucash/gnucash.git" revision="stable"
checkoutdir="gnucash-git"/>
<dependencies>
+ <dep package="meta-gnucash-dependencies"/>
+ </dependencies>
+ </cmake>
+
+ <metamodule id="meta-gnucash-dependencies">
+ <dependencies>
<dep package="meta-gtk-osx-gtk3"/>
<dep package="meta-gtk-osx-python3-gtk3"/>
<dep package="libofx"/>
@@ -323,14 +303,14 @@
<dep package="boost"/>
<dep package="googletest"/>
<dep package="webkit2gtk3"/>
- </dependencies>
- </cmake>
+ </dependencies>
+ </metamodule>
- <cmake id="gnucash-docs-git"
- ninjaargs="html" >
- <branch repo="github" module="Gnucash/gnucash-docs.git" revision="stable"
- checkoutdir="gnucash-docs-git"/>
- </cmake>
+ <cmake id="gnucash-docs-git"
+ ninjaargs="html" >
+ <branch repo="github" module="Gnucash/gnucash-docs.git" revision="stable"
+ checkoutdir="gnucash-docs-git"/>
+ </cmake>
<cmake id="gnucash-olddocs" autogenargs="--disable-scrollkeeper"
autogen-template="%(srcdir)s/%(autogen-sh)s && %(srcdir)s/configure --prefix %(prefix)s %(autogenargs)s"
Summary of changes:
README.markdown | 56 ++++++++++++++++
dependencies.txt | 164 +++++++++++++++++++++++++++++++++++++++++++++
modulesets/gnucash.modules | 54 +++++----------
3 files changed, 237 insertions(+), 37 deletions(-)
create mode 100644 dependencies.txt
More information about the gnucash-changes
mailing list