summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRené de Hesselle <dehesselle@web.de>2019-08-07 23:05:56 +0000
committerRené de Hesselle <dehesselle@web.de>2019-08-07 23:05:56 +0000
commit91eef1afbc17e5a24cd9365d8422c9a7e468a51a (patch)
treee17e2a9dd9d34706ddbc4bb8d57bca43053190a3
parentFixed incorrect array refernces causing bug 1600496 (diff)
downloadinkscape-91eef1afbc17e5a24cd9365d8422c9a7e468a51a.tar.gz
inkscape-91eef1afbc17e5a24cd9365d8422c9a7e468a51a.zip
Update macOS build pipeline
These changes mainly accomodate for gtk-osx upstream updates.
-rw-r--r--packaging/macos/020-vars.sh5
-rw-r--r--packaging/macos/030-funcs.sh15
-rwxr-xr-xpackaging/macos/120-python3.sh1
-rwxr-xr-xpackaging/macos/140-jhbuild-gtk3.sh8
-rwxr-xr-xpackaging/macos/160-jhbuild-other.sh6
-rwxr-xr-xpackaging/macos/220-inkscape-package.sh56
6 files changed, 27 insertions, 64 deletions
diff --git a/packaging/macos/020-vars.sh b/packaging/macos/020-vars.sh
index d94fa33fe..eeae31afb 100644
--- a/packaging/macos/020-vars.sh
+++ b/packaging/macos/020-vars.sh
@@ -189,10 +189,11 @@ URL_POPPLER=https://gitlab.freedesktop.org/poppler/poppler/-/archive/poppler-0.7
URL_POTRACE=http://potrace.sourceforge.net/download/1.15/potrace-1.15.tar.gz
# This is the relocatable framework to be bundled with the app.
URL_PYTHON3_BIN=https://github.com/dehesselle/py3framework/releases/download/py374.1/py374_framework_1.tar.xz
-# This is for the jhbuild toolset only.
+# This is for the jhbuild toolset only. This cannot be updated to 3.7 because
+# 'Plist' class got removed in 'plistlib' and 'gtk-mac-bundler' needs that.
URL_PYTHON3_SRC=https://github.com/dehesselle/py3framework/archive/py369.2.tar.gz
# A pre-built version of the complete toolset.
-URL_TOOLSET_CACHE=https://github.com/dehesselle/mibap/releases/download/v0.15/mibap_v0.15.tar.xz
+URL_TOOLSET_CACHE=https://github.com/dehesselle/mibap/releases/download/v0.16/mibap_v0.16.tar.xz
### Python packages ############################################################
diff --git a/packaging/macos/030-funcs.sh b/packaging/macos/030-funcs.sh
index af293bf53..b7892e6a5 100644
--- a/packaging/macos/030-funcs.sh
+++ b/packaging/macos/030-funcs.sh
@@ -166,6 +166,21 @@ function relocate_dependency
install_name_tool -change $source $target $library
}
+### relocate all neighbouring libraries in a directory #########################
+
+function relocate_neighbouring_libs
+{
+ local dir=$1
+
+ for lib in $dir/*.dylib; do
+ for linked_lib in $(otool -L $lib | tail -n +3 | awk '{ print $1 }'); do
+ if [ -f $APP_LIB_DIR/$(basename $linked_lib) ]; then
+ relocate_dependency @loader_path/$(basename $linked_lib) $lib
+ fi
+ done
+ done
+}
+
### 'readlink -f' replacement ##################################################
# This is what the oneliner used to set SELF_DIR is based on.
diff --git a/packaging/macos/120-python3.sh b/packaging/macos/120-python3.sh
index be6005f26..5dbbda27b 100755
--- a/packaging/macos/120-python3.sh
+++ b/packaging/macos/120-python3.sh
@@ -28,5 +28,4 @@ rm -rf $OPT_DIR
mkdir -p $BIN_DIR
mkdir -p $TMP_DIR
ln -sf $WRK_DIR/Python.framework/Versions/Current/bin/python3 $BIN_DIR
-ln -sf $BIN_DIR/python3 $BIN_DIR/python
diff --git a/packaging/macos/140-jhbuild-gtk3.sh b/packaging/macos/140-jhbuild-gtk3.sh
index 3459c4dc0..8d3f7fee5 100755
--- a/packaging/macos/140-jhbuild-gtk3.sh
+++ b/packaging/macos/140-jhbuild-gtk3.sh
@@ -21,11 +21,3 @@ jhbuild build \
meta-gtk-osx-gtk3 \
meta-gtk-osx-gtkmm3
-### fix GDK pixbuf loaders #####################################################
-
-for file in $LIB_DIR/gdk-pixbuf-2.0/2.10.0/loaders/*.dylib; do
- mv $file $(dirname $file)/$(basename -s .dylib $file).so
-done
-
-gdk-pixbuf-query-loaders > $LIB_DIR/gdk-pixbuf-2.0/2.10.0/loaders.cache
-
diff --git a/packaging/macos/160-jhbuild-other.sh b/packaging/macos/160-jhbuild-other.sh
index 775ac0d4f..2c6a658fc 100755
--- a/packaging/macos/160-jhbuild-other.sh
+++ b/packaging/macos/160-jhbuild-other.sh
@@ -39,3 +39,9 @@ ln -s $(pwd)/png2icns.sh $BIN_DIR
save_file $URL_PYTHON3_BIN
+### copy a charset.alias to lib for gtk-mac-bundler ############################
+
+# TODO this wasn't necessary before, why is this necessary now?
+
+cp $TMP_DIR/jhbuild/build/pkg-config-0.29.2/glib/glib/libcharset/charset.alias $LIB_DIR
+
diff --git a/packaging/macos/220-inkscape-package.sh b/packaging/macos/220-inkscape-package.sh
index 3d3a88393..9fcde5e3b 100755
--- a/packaging/macos/220-inkscape-package.sh
+++ b/packaging/macos/220-inkscape-package.sh
@@ -58,11 +58,10 @@ mkdir -p $ARTIFACT_DIR
# patch library locations
relocate_dependency @executable_path/../Resources/lib/inkscape/libinkscape_base.dylib $APP_EXE_DIR/Inkscape-bin
-relocate_dependency @executable_path/../Resources/lib/libpoppler.85.dylib $APP_LIB_DIR/libpoppler-glib.8.dylib
-relocate_dependency @executable_path/../Resources/lib/libpoppler.85.dylib $APP_LIB_DIR/inkscape/libinkscape_base.dylib
-relocate_dependency @executable_path/../Resources/lib/libpoppler-glib.8.dylib $APP_LIB_DIR/inkscape/libinkscape_base.dylib
+relocate_dependency @loader_path/../libpoppler.85.dylib $APP_LIB_DIR/inkscape/libinkscape_base.dylib
+relocate_dependency @loader_path/../libpoppler-glib.8.dylib $APP_LIB_DIR/inkscape/libinkscape_base.dylib
-relocate_dependency @loader_path/libcrypto.1.1.dylib $APP_LIB_DIR/libssl.1.1.dylib
+relocate_neighbouring_libs $APP_LIB_DIR
# set Inkscape's data directory via environment variables
# TODO: as follow-up to https://gitlab.com/inkscape/inkscape/merge_requests/612,
@@ -134,10 +133,6 @@ relocate_dependency @loader_path/../../../libz.1.dylib $APP_LIB_DIR/python3.7/si
relocate_dependency @loader_path/../../../libxml2.2.dylib $APP_LIB_DIR/python3.7/site-packages/lxml/objectify.cpython-37m-darwin.so
relocate_dependency @loader_path/../../../libz.1.dylib $APP_LIB_DIR/python3.7/site-packages/lxml/objectify.cpython-37m-darwin.so
-# patch libxml2.dylib to use '@loader_path' to find neighbouring libraries
-relocate_dependency @loader_path/libz.1.dylib $APP_LIB_DIR/libxml2.2.dylib
-relocate_dependency @loader_path/liblzma.5.dylib $APP_LIB_DIR/libxml2.2.dylib
-
### install Python package: NumPy ##############################################
pip3 install --install-option="--prefix=$APP_RES_DIR" --ignore-installed $PYTHON_NUMPY
@@ -149,13 +144,6 @@ pip3 install --install-option="--prefix=$APP_RES_DIR" --ignore-installed $PYTHON
# patch '_cairo'
relocate_dependency @loader_path/../../../libcairo.2.dylib $APP_LIB_DIR/python3.7/site-packages/cairo/_cairo.cpython-37m-darwin.so
-# patch libcairo.2.dylib to use '@loader_path' to find neighbouring libraries
-relocate_dependency @loader_path/libpixman-1.0.dylib $APP_LIB_DIR/libcairo.2.dylib
-relocate_dependency @loader_path/libfontconfig.1.dylib $APP_LIB_DIR/libcairo.2.dylib
-relocate_dependency @loader_path/libfreetype.6.dylib $APP_LIB_DIR/libcairo.2.dylib
-relocate_dependency @loader_path/libpng16.16.dylib $APP_LIB_DIR/libcairo.2.dylib
-relocate_dependency @loader_path/libz.1.dylib $APP_LIB_DIR/libcairo.2.dylib
-
### install Python package: PyGObject ##########################################
pip3 install --install-option="--prefix=$APP_RES_DIR" --ignore-installed $PYTHON_PYGOBJECT
@@ -168,29 +156,6 @@ relocate_dependency @loader_path/../../../libgobject-2.0.0.dylib $APP_LIB_DIR/py
relocate_dependency @loader_path/../../../libgirepository-1.0.1.dylib $APP_LIB_DIR/python3.7/site-packages/gi/_gi.cpython-37m-darwin.so
relocate_dependency @loader_path/../../../libffi.6.dylib $APP_LIB_DIR/python3.7/site-packages/gi/_gi.cpython-37m-darwin.so
-# patch libglib-2.0.0.dylib to find neighbouring libraries
-relocate_dependency @loader_path/libintl.9.dylib $APP_LIB_DIR/libglib-2.0.0.dylib
-
-# patch libgio-2.0.0.dylib to find neighbouring libraries
-relocate_dependency @loader_path/libgobject-2.0.0.dylib $APP_LIB_DIR/libgio-2.0.0.dylib
-relocate_dependency @loader_path/libffi.6.dylib $APP_LIB_DIR/libgio-2.0.0.dylib
-relocate_dependency @loader_path/libgmodule-2.0.0.dylib $APP_LIB_DIR/libgio-2.0.0.dylib
-relocate_dependency @loader_path/libglib-2.0.0.dylib $APP_LIB_DIR/libgio-2.0.0.dylib
-relocate_dependency @loader_path/libz.1.dylib $APP_LIB_DIR/libgio-2.0.0.dylib
-relocate_dependency @loader_path/libintl.9.dylib $APP_LIB_DIR/libgio-2.0.0.dylib
-
-# patch libgobject-2.0.0.dylib to find neighbouring libraries
-relocate_dependency @loader_path/libglib-2.0.0.dylib $APP_LIB_DIR/libgobject-2.0.0.dylib
-relocate_dependency @loader_path/libffi.6.dylib $APP_LIB_DIR/libgobject-2.0.0.dylib
-relocate_dependency @loader_path/libintl.9.dylib $APP_LIB_DIR/libgobject-2.0.0.dylib
-
-# patch libgirepository-1.0.1.dylib to find neighbouring libraries
-relocate_dependency @loader_path/libgmodule-2.0.0.dylib $APP_LIB_DIR/libgirepository-1.0.1.dylib
-relocate_dependency @loader_path/libgio-2.0.0.dylib $APP_LIB_DIR/libgirepository-1.0.1.dylib
-relocate_dependency @loader_path/libgobject-2.0.0.dylib $APP_LIB_DIR/libgirepository-1.0.1.dylib
-relocate_dependency @loader_path/libglib-2.0.0.dylib $APP_LIB_DIR/libgirepository-1.0.1.dylib
-relocate_dependency @loader_path/libffi.6.dylib $APP_LIB_DIR/libgirepository-1.0.1.dylib
-
# patch '_gi_cairo'
relocate_dependency @loader_path/../../../libglib-2.0.0.dylib $APP_LIB_DIR/python3.7/site-packages/gi/_gi_cairo.cpython-37m-darwin.so
relocate_dependency @loader_path/../../../libintl.9.dylib $APP_LIB_DIR/python3.7/site-packages/gi/_gi_cairo.cpython-37m-darwin.so
@@ -201,21 +166,6 @@ relocate_dependency @loader_path/../../../libffi.6.dylib $APP_LIB_DIR/python3.7/
relocate_dependency @loader_path/../../../libcairo.2.dylib $APP_LIB_DIR/python3.7/site-packages/gi/_gi_cairo.cpython-37m-darwin.so
relocate_dependency @loader_path/../../../libcairo-gobject.2.dylib $APP_LIB_DIR/python3.7/site-packages/gi/_gi_cairo.cpython-37m-darwin.so
-# patch libcairo-gobject.2.dylib
-relocate_dependency @loader_path/libcairo.2.dylib $APP_LIB_DIR/libcairo-gobject.2.dylib
-relocate_dependency @loader_path/libpixman-1.0.dylib $APP_LIB_DIR/libcairo-gobject.2.dylib
-relocate_dependency @loader_path/libfontconfig.1.dylib $APP_LIB_DIR/libcairo-gobject.2.dylib
-relocate_dependency @loader_path/libfreetype.6.dylib $APP_LIB_DIR/libcairo-gobject.2.dylib
-relocate_dependency @loader_path/libpng16.16.dylib $APP_LIB_DIR/libcairo-gobject.2.dylib
-relocate_dependency @loader_path/libz.1.dylib $APP_LIB_DIR/libcairo-gobject.2.dylib
-relocate_dependency @loader_path/libgobject-2.0.0.dylib $APP_LIB_DIR/libcairo-gobject.2.dylib
-relocate_dependency @loader_path/libglib-2.0.0.dylib $APP_LIB_DIR/libcairo-gobject.2.dylib
-relocate_dependency @loader_path/libintl.9.dylib $APP_LIB_DIR/libcairo-gobject.2.dylib
-
-# patch libgmodule-2.0.0.dylib
-relocate_dependency @loader_path/libglib-2.0.0.dylib $APP_LIB_DIR/libgmodule-2.0.0.dylib
-relocate_dependency @loader_path/libintl.9.dylib $APP_LIB_DIR/libgmodule-2.0.0.dylib
-
### install Python package: pySerial ###########################################
pip3 install --install-option="--prefix=$APP_RES_DIR" --ignore-installed $PYTHON_PYSERIAL