mirror of https://github.com/GNOME/gimp.git
build/linux: Fix stuck AppImage
* Since the appimage is for testing purposes, let's use system 'libc' * Hardcode python path since the wildcard wasn't expanding misteriously * Improve system theme recognition making way simpler
This commit is contained in:
parent
5556735d22
commit
bad250429c
|
@ -9,64 +9,54 @@
|
|||
set -e
|
||||
|
||||
|
||||
# COMPATIBILITY NOTICE
|
||||
HERE="$(dirname "$(readlink -f "${0}")")"
|
||||
LD_LINUX=$(find "$HERE" -name 'ld-*.so.*' | head -n 1)
|
||||
export DISTRO=$(exec "${LD_LINUX}" --inhibit-cache --library-path "$LD_LIBRARY_PATH" "${HERE}/OPT_PREFIX_WILDbin/uname" "-a")
|
||||
echo "This is a CI native build of GIMP (please see devel-docs/os-support.txt)."
|
||||
case "${DISTRO}" in
|
||||
*Debian*|*debian*)
|
||||
echo ".js (JavaScript) plug-ins | supported."
|
||||
echo ".lua (Lua) plug-ins | NOT supported!"
|
||||
echo ".py (Python) plug-ins | supported."
|
||||
echo ".scm (ScriptFu) plug-ins | supported."
|
||||
echo ".vala (Vala) plug-ins | supported."
|
||||
esac
|
||||
|
||||
|
||||
# PATHS MAPPING
|
||||
HERE="$(dirname "$(readlink -f "${0}")")"
|
||||
|
||||
## General paths
|
||||
export PATH="${HERE}"/OPT_PREFIX_WILDbin/:"${PATH}"
|
||||
export LD_LIBRARY_PATH="${HERE}"/OPT_PREFIX_WILDlib/:"${HERE}"/OPT_PREFIX_WILDlib/x86_64-linux-gnu/:"${HERE}"/OPT_PREFIX_WILDlib64/:"${LD_LIBRARY_PATH}"
|
||||
export GI_TYPELIB_PATH="${HERE}"/GI_TYPELIB_PATH_WILD:"${GI_TYPELIB_PATH}"
|
||||
export XDG_DATA_DIRS="${HERE}"/OPT_PREFIX_WILDshare/:"${XDG_DATA_DIRS}"
|
||||
export PATH="$HERE"/OPT_PREFIX_WILDbin/:"$PATH"
|
||||
export LD_LIBRARY_PATH="$HERE"/OPT_PREFIX_WILDlib/:"$HERE"/OPT_PREFIX_WILDlib/x86_64-linux-gnu/:"$HERE"/OPT_PREFIX_WILDlib64/:"$LD_LIBRARY_PATH"
|
||||
export GI_TYPELIB_PATH="$HERE"/GI_TYPELIB_PATH_WILD:"$GI_TYPELIB_PATH"
|
||||
export XDG_DATA_DIRS="$HERE"/OPT_PREFIX_WILDshare/:"$XDG_DATA_DIRS"
|
||||
|
||||
## Compatibility layer
|
||||
LD_LINUX="$HERE/LD_LINUX_WILD --inhibit-cache --library-path $LD_LIBRARY_PATH"
|
||||
DISTRO=$(eval "$LD_LINUX" "$HERE"/OPT_PREFIX_WILDbin/uname -a)
|
||||
echo "This is a CI native build of GIMP (please see devel-docs/os-support.txt)."
|
||||
case "$DISTRO" in
|
||||
*Debian*|*debian*)
|
||||
echo '.js (JavaScript) plug-ins | supported.'
|
||||
echo '.lua (Lua) plug-ins | NOT supported!'
|
||||
echo '.py (Python) plug-ins | supported.'
|
||||
echo '.scm (ScriptFu) plug-ins | supported.'
|
||||
echo '.vala (Vala) plug-ins | supported.'
|
||||
esac
|
||||
|
||||
## Other paths (base)
|
||||
export GIO_MODULE_DIR="$HERE"/GIO_MODULE_DIR_WILD/modules
|
||||
export GDK_PIXBUF_MODULEDIR="$HERE"/GDK_PIXBUF_MODULEDIR_WILD/loaders
|
||||
export GDK_PIXBUF_MODULE_FILE="$HERE"/GDK_PIXBUF_MODULE_FILE_WILD/loaders.cache
|
||||
export GTK_PATH="$HERE"/GTK_PATH_WILD
|
||||
export GTK_IM_MODULE_FILE="$HERE"/GTK_IM_MODULE_FILE_WILD/immodules.cache
|
||||
export GTK_THEME=$(eval "$LD_LINUX" "$HERE"/OPT_PREFIX_WILDbin/gsettings get org.gnome.desktop.interface gtk-theme | "$HERE"/OPT_PREFIX_WILDbin/sed "s/'//g" || echo 'Default')
|
||||
|
||||
## GIMP-specific paths
|
||||
export BABL_PATH="${HERE}"/BABL_PATH_WILD
|
||||
export GEGL_PATH="${HERE}"/GEGL_PATH_WILD
|
||||
export GIMP3_SYSCONFDIR="${HERE}"/GIMP3_SYSCONFDIR_WILD
|
||||
export GIMP3_PLUGINDIR="${HERE}"/GIMP3_PLUGINDIR_WILD
|
||||
export GIMP3_DATADIR="${HERE}"/GIMP3_DATADIR_WILD
|
||||
export GIMP3_LOCALEDIR="${HERE}"/OPT_PREFIX_WILDshare/locale
|
||||
export BABL_PATH="$HERE"/BABL_PATH_WILD
|
||||
export GEGL_PATH="$HERE"/GEGL_PATH_WILD
|
||||
export GIMP3_SYSCONFDIR="$HERE"/GIMP3_SYSCONFDIR_WILD
|
||||
export GIMP3_PLUGINDIR="$HERE"/GIMP3_PLUGINDIR_WILD
|
||||
export GIMP3_DATADIR="$HERE"/GIMP3_DATADIR_WILD
|
||||
export GIMP3_LOCALEDIR="$HERE"/OPT_PREFIX_WILDshare/locale
|
||||
if [ -z ${XDG_CONFIG_HOME} ]; then
|
||||
export GIMP3_DIRECTORY="$HOME/.config/GIMP/GIMP_APP_VERSION"
|
||||
else
|
||||
export GIMP3_DIRECTORY="$XDG_CONFIG_HOME/GIMP/GIMP_APP_VERSION"
|
||||
fi
|
||||
|
||||
## Other paths (base)
|
||||
export GIO_MODULE_DIR="${HERE}"/GIO_MODULE_DIR_WILD/modules
|
||||
export GDK_PIXBUF_MODULEDIR="${HERE}"/GDK_PIXBUF_MODULEDIR_WILD/loaders
|
||||
export GDK_PIXBUF_MODULE_FILE="${HERE}"/GDK_PIXBUF_MODULE_FILE_WILD/loaders.cache
|
||||
export GTK_PATH="${HERE}"/GTK_PATH_WILD
|
||||
export GTK_IM_MODULE_FILE="${HERE}"/GTK_IM_MODULE_FILE_WILD/immodules.cache
|
||||
### For now, we only support "Adwaita-compliant" system themes (e.g. Yaru)
|
||||
export GTK_THEME=Default
|
||||
"${LD_LINUX}" --inhibit-cache --library-path "$LD_LIBRARY_PATH" "${HERE}/OPT_PREFIX_WILDbin/find" "." "-name" "libgtk-4*"
|
||||
if [ $? -eq '0' ]; then
|
||||
case "${DE}" in
|
||||
*GNOME*|*gnome*)
|
||||
export SYSTEM_THEME=$(exec "${LD_LINUX}" --inhibit-cache --library-path "$LD_LIBRARY_PATH" "${HERE}/OPT_PREFIX_WILDbin/gsettings" "get" "org.gnome.desktop.interface" "gtk-theme" | exec "${LD_LINUX}" --inhibit-cache --library-path "$LD_LIBRARY_PATH" "${HERE}/OPT_PREFIX_WILDbin/sed" "s/'//g")
|
||||
export GTK_THEME=$SYSTEM_THEME
|
||||
esac
|
||||
fi
|
||||
|
||||
## Other paths (GIMP related)
|
||||
export LIBGL_DRIVERS_PATH="${HERE}"/LIBGL_DRIVERS_PATH_WILD
|
||||
export PYTHONPATH="${HERE}"/PYTHONPATH_WILD
|
||||
export LIBGL_DRIVERS_PATH="$HERE"/LIBGL_DRIVERS_PATH_WILD
|
||||
export PYTHONPATH="$HERE"/PYTHONPATH_WILD
|
||||
|
||||
|
||||
# RUN MAIN_BIN
|
||||
cd "$HERE"/OPT_PREFIX_WILD
|
||||
exec "${LD_LINUX}" --inhibit-cache --library-path "$LD_LIBRARY_PATH" "${HERE}/OPT_PREFIX_WILDbin/gimp-GIMP_APP_VERSION" "$@"
|
||||
LD_PRELOAD=/OPT_PREFIX_WILDlib/x86_64-linux-gnu/libc.so.6 "$HERE"/OPT_PREFIX_WILDbin/gimp-GIMP_APP_VERSION "$@"
|
||||
|
|
|
@ -91,6 +91,7 @@ chmod +x "$legacy_appimagetool"
|
|||
# BUNDLE FILES
|
||||
|
||||
## System base (needed to use GIMP or to avoid polluting the terminal output)
|
||||
conf_app LD_LINUX "/usr" "lib64/ld-*.so.*"
|
||||
### Glib needed files
|
||||
find_dat "/usr/share/glib-*/schemas" "*"
|
||||
### Glib commonly required modules
|
||||
|
@ -121,8 +122,7 @@ conf_app GIMP3_SYSCONFDIR "$OPT_PREFIX" "etc/gimp/*"
|
|||
conf_app GIMP3_DATADIR "$OPT_PREFIX" "share/gimp/*"
|
||||
### Copy localized language list support
|
||||
find_dat "/usr/share/xml/iso-codes" "iso_639-2.xml" "iso_639.xml"
|
||||
### Copy system theme support (TODO: remove when our Default theme is mature)
|
||||
find_bin "find*"
|
||||
### Copy system theme support
|
||||
find_bin "gsettings*"
|
||||
find_bin "sed*"
|
||||
### Copy GTK inspector support
|
||||
|
@ -143,7 +143,7 @@ find_bin "gjs*"
|
|||
### Copy Python plug-ins support
|
||||
find_bin "python*"
|
||||
find_lib "python*.*"
|
||||
conf_app PYTHONPATH "/usr" "${LIB_DIR}/${LIB_SUBDIR}python*.**"
|
||||
conf_app PYTHONPATH "/usr" "${LIB_DIR}/${LIB_SUBDIR}python3.11"
|
||||
|
||||
## Final adjustments
|
||||
### Auto detect and copy deps of binaries copied above
|
||||
|
@ -166,8 +166,10 @@ rm -r $OPT_PREFIX/${LIB_DIR}/${LIB_SUBDIR}pkgconfig
|
|||
rm -r $OPT_PREFIX/share/doc
|
||||
rm -r $OPT_PREFIX/share/man
|
||||
|
||||
## Sad adjustments (go-appimagetool don't like when this is made before and don't do for us yet)
|
||||
## Sad adjustments (appimagetool don't handle this gracefully when done before deploy)
|
||||
### https://github.com/probonopd/go-appimage/issues/284
|
||||
sed -i "s|\"/usr/|\"|g" "$OPT_PREFIX/${LIB_DIR}/${LIB_SUBDIR}gdk-pixbuf-2.0/2.10.0/loaders.cache"
|
||||
### https://github.com/probonopd/go-appimage/issues/282
|
||||
cp -r "/usr/${LIB_DIR}/${LIB_SUBDIR}gtk-3.0/3.0.0/immodules.cache" "$OPT_PREFIX/${LIB_DIR}/${LIB_SUBDIR}gtk-3.0/3.0.0"
|
||||
sed -i "s|\"/usr/|\"|g" "$OPT_PREFIX/${LIB_DIR}/${LIB_SUBDIR}gtk-3.0/3.0.0/immodules.cache"
|
||||
|
||||
|
|
Loading…
Reference in New Issue