diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 204d1e636e..6efde8b4fd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -293,7 +293,7 @@ gimp-debian-x64: ninja dist; fi - cd .. - # Make sure that any Debian pipeline is easily testable locally on Debian + # Make sure that any Debian pipeline is easily testable relocatable on local Debian - bash build/linux/appimage/2_bundle-gimp-appimage.sh artifacts: expose_as: 'Linux appimage' diff --git a/build/linux/appimage/2_bundle-gimp-appimage.sh b/build/linux/appimage/2_bundle-gimp-appimage.sh index aca6f31cab..55c115bf40 100644 --- a/build/linux/appimage/2_bundle-gimp-appimage.sh +++ b/build/linux/appimage/2_bundle-gimp-appimage.sh @@ -36,70 +36,17 @@ done ## Rebuild GIMP echo '(INFO): rebuilding GIMP as relocatable' +### FIXME: GIMP tests fails with raster icons in relocatable mode meson configure _build -Drelocatable-bundle=yes -Dvector-icons=true >/dev/null 2>&1 -mkdir -p build/linux/appimage/_Output cd _build -ninja &> ../build/linux/appimage/_Output/ninja.log -if [ $? -ne 0 ]; then - cat ../build/linux/appimage/_Output/ninja.log -else - rm ../build/linux/appimage/_Output/ninja.log -fi +ninja &> ninja.log | rm ninja.log || cat ninja.log ninja install >/dev/null 2>&1 ccache --show-stats cd .. -# AGNOSTIC VARIABLES (only touch them to make even more portable, without casuistry) - -## This script is "filesystem-agnostic". The packager can quickly choose either -## putting everything in /usr or in AppDir(root) just specifying the 2nd parameter. -GIMP_DISTRIB="$CI_PROJECT_DIR/build/linux/appimage/AppDir" -if [ "$GITLAB_CI" ] || [ -z "$GIMP_PREFIX" ]; then - GIMP_PREFIX="$GIMP_DISTRIB/usr" -fi -if [ -z "$1" ] || [ "$1" = "usr" ]; then - OPT_PREFIX="${GIMP_PREFIX}" -elif [ "$1" = "AppDir" ]; then - OPT_PREFIX="${GIMP_DISTRIB}" -fi - -#(MOSTLY) AGNOSTIC FUNCTIONS -prep_pkg () -{ - apt-get install -y --no-install-recommends $1 >/dev/null 2>&1 -} - -find_bin () -{ - find /usr/bin -name ${1} -execdir cp -r '{}' $OPT_PREFIX/bin \; - find /bin -name ${1} -execdir cp -r '{}' $OPT_PREFIX/bin \; -} - -find_lib () -{ - mkdir -p $OPT_PREFIX/${LIB_DIR}/${LIB_SUBDIR} - find /usr/${LIB_DIR}/${LIB_SUBDIR} -maxdepth 1 -name ${1} -execdir cp -r '{}' $OPT_PREFIX/${LIB_DIR}/${LIB_SUBDIR} \; - find /usr/${LIB_DIR} -maxdepth 1 -name ${1} -execdir cp -r '{}' $OPT_PREFIX/${LIB_DIR}/${LIB_SUBDIR} \; - find /${LIB_DIR}/${LIB_SUBDIR} -maxdepth 1 -name ${1} -execdir cp -r '{}' $OPT_PREFIX/${LIB_DIR}/${LIB_SUBDIR} \; - find /${LIB_DIR} -maxdepth 1 -name ${1} -execdir cp -r '{}' $OPT_PREFIX/${LIB_DIR}/${LIB_SUBDIR} \; -} - -find_dat () -{ - DAT_PATH=$(echo $1 | sed 's|/usr/||g') - mkdir -p $OPT_PREFIX/$DAT_PATH - cp -r $1/$2 $OPT_PREFIX/$DAT_PATH/$3 -} - -conf_app () -{ - VAR_PATH=$(echo $2/$3 | sed "s|${2}/||g") - sed -i "s|${1}_WILD|OPT_PREFIX_WILD${VAR_PATH}|" build/linux/appimage/AppRun -} - - -# PREPARE ENVIRONMENT +# INSTALL GO-APPIMAGETOOL +echo '(INFO): downloading go-appimagetool' apt-get install -y --no-install-recommends wget >/dev/null 2>&1 ## For now, we always use the latest version of go-appimagetool @@ -115,121 +62,218 @@ chmod +x "$legacy_appimagetool" # BUNDLE FILES -echo '(INFO): making .appimage bundle' +echo '(INFO): copying files to AppDir' +UNIX_PREFIX='/usr' +if [ "$GITLAB_CI" ]; then + export GIMP_PREFIX="$PWD/_install" +elif [ -z "$GITLAB_CI" ] && [ -z "$GIMP_PREFIX" ]; then + export GIMP_PREFIX="$PWD/../_install" +fi +APP_DIR="$PWD/AppDir" +USR_DIR="$APP_DIR/usr" -## 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" "*" +prep_pkg () +{ + apt-get install -y --no-install-recommends $1 >/dev/null 2>&1 +} + +bund_usr () +{ + if [ -z "$3" ]; then + cd $APP_DIR + case $2 in + bin*) + mkdir -p $USR_DIR/bin + find $1/bin -name ${2##*/} -execdir cp -r '{}' $USR_DIR/bin \; + find /bin -name ${2##*/} -execdir cp -r '{}' $USR_DIR/bin \; + ;; + + lib*) + mkdir -p $USR_DIR/${LIB_DIR}/${LIB_SUBDIR} + find $1/${LIB_DIR}/${LIB_SUBDIR} -maxdepth 1 -name ${2##*/} -execdir cp -r '{}' $USR_DIR/${LIB_DIR}/${LIB_SUBDIR} \; + find /usr/${LIB_DIR} -maxdepth 1 -name ${2##*/} -execdir cp -r '{}' $USR_DIR/${LIB_DIR}/${LIB_SUBDIR} \; + ;; + + libexec|share*|etc*) + dat_path=$(echo $1/$2 | sed "s|$1/||g") + dat_path_parent=$(echo $dat_path | sed "s|${dat_path##*/}||g") + if [ -d "$1/$dat_path" ] || [ -f "$1/$dat_path" ]; then + mkdir -p $USR_DIR/$dat_path_parent + cp -r $1/$dat_path $USR_DIR/$dat_path_parent + fi + ;; + esac + cd .. + fi +} + +conf_app () +{ + prefix=$UNIX_PREFIX + case $1 in + *BABL*|*GEGL*|*GIMP*) + prefix=$GIMP_PREFIX + esac + var_path=$(echo $prefix/$2 | sed "s|${prefix}/||g") + sed -i "s|${1}_WILD|usr/${var_path}|" build/linux/appimage/AppRun +} + +wipe_usr () +{ + if [[ ! "$1" =~ '*' ]]; then + rm -r $USR_DIR/$1 + else + cleanedArray=($(find $USR_DIR -iname ${1##*/})) + for path_dest_full in "${cleanedArray[@]}"; do + rm -r -f $path_dest_full + done + fi +} + +## Prepare AppDir +if [ ! -f 'build/linux/appimage/AppRun.bak' ]; then + cp build/linux/appimage/AppRun build/linux/appimage/AppRun.bak +fi +mkdir $APP_DIR +bund_usr "$UNIX_PREFIX" "lib64/ld-*.so.*" --go +conf_app LD_LINUX "lib64/ld-*.so.*" + +## Bundle base (bare minimum to run GTK apps) +### Glib needed files (to be able to use file dialogs) +bund_usr "$UNIX_PREFIX" "share/glib-*/schemas" ### Glib commonly required modules prep_pkg "gvfs" -find_lib "gvfs*" -find_lib "gio*" -conf_app GIO_MODULE_DIR "/usr" "${LIB_DIR}/${LIB_SUBDIR}gio" -### GTK needed files -prep_pkg "gnome-icon-theme" -find_dat "/usr/share/icons/gnome" "*" -find_dat "/usr/share/mime" "*" -conf_app GDK_PIXBUF_MODULEDIR "/usr" "${LIB_DIR}/${LIB_SUBDIR}gdk-pixbuf-*/*.*.*" -conf_app GDK_PIXBUF_MODULE_FILE "/usr" "${LIB_DIR}/${LIB_SUBDIR}gdk-pixbuf-*/*.*.*" +bund_usr "$UNIX_PREFIX" "lib/gvfs*" +bund_usr "$UNIX_PREFIX" "lib/gio*" +conf_app GIO_MODULE_DIR "${LIB_DIR}/${LIB_SUBDIR}gio" +### GTK needed files (to be able to load icons) +bund_usr "$UNIX_PREFIX" "share/icons/Adwaita" +bund_usr "$GIMP_PREFIX" "share/icons/hicolor" +bund_usr "$UNIX_PREFIX" "share/mime" +bund_usr "$UNIX_PREFIX" "lib/gdk-pixbuf-*" --go +conf_app GDK_PIXBUF_MODULEDIR "${LIB_DIR}/${LIB_SUBDIR}gdk-pixbuf-*/*.*.*" +conf_app GDK_PIXBUF_MODULE_FILE "${LIB_DIR}/${LIB_SUBDIR}gdk-pixbuf-*/*.*.*" ### GTK commonly required modules prep_pkg "libibus-1.0-5" -find_lib "libibus*" +bund_usr "$UNIX_PREFIX" "lib/libibus*" prep_pkg "ibus-gtk3" prep_pkg "libcanberra-gtk3-module" prep_pkg "libxapp-gtk3-module" -conf_app GTK_PATH "/usr" "${LIB_DIR}/${LIB_SUBDIR}gtk-3.0" -conf_app GTK_IM_MODULE_FILE "/usr" "${LIB_DIR}/${LIB_SUBDIR}gtk-3.0/*.*.*" +bund_usr "$UNIX_PREFIX" "lib/gtk-*" --go +conf_app GTK_PATH "${LIB_DIR}/${LIB_SUBDIR}gtk-3.0" +conf_app GTK_IM_MODULE_FILE "${LIB_DIR}/${LIB_SUBDIR}gtk-3.0/*.*.*" +### FIXME: GTK theming support (NOT WORKING) +#bund_usr "$UNIX_PREFIX" "bin/gsettings" ## Core features -cp -r _install/* $OPT_PREFIX -conf_app BABL_PATH "$OPT_PREFIX" "${LIB_DIR}/${LIB_SUBDIR}babl-*" -conf_app GEGL_PATH "$OPT_PREFIX" "${LIB_DIR}/${LIB_SUBDIR}gegl-*" -conf_app GIMP3_SYSCONFDIR "$OPT_PREFIX" "etc/gimp/*" -conf_app GIMP3_DATADIR "$OPT_PREFIX" "share/gimp/*" -### Copy system theme support -find_bin "gsettings*" -find_bin "sed*" -### Copy GTK inspector support -find_lib "libEGL*" -find_lib "libGL*" -find_lib "dri*" -conf_app LIBGL_DRIVERS_PATH "$OPT_PREFIX" "${LIB_DIR}/${LIB_SUBDIR}dri" +bund_usr "$GIMP_PREFIX" "lib/libbabl*" +bund_usr "$GIMP_PREFIX" "lib/babl-*" +conf_app BABL_PATH "${LIB_DIR}/${LIB_SUBDIR}babl-*" +bund_usr "$GIMP_PREFIX" "lib/libgegl*" +bund_usr "$GIMP_PREFIX" "lib/gegl-*" +conf_app GEGL_PATH "${LIB_DIR}/${LIB_SUBDIR}gegl-*" +bund_usr "$GIMP_PREFIX" "lib/libgimp*" +bund_usr "$GIMP_PREFIX" "lib/gimp" +conf_app GIMP3_PLUGINDIR "${LIB_DIR}/${LIB_SUBDIR}gimp/*" +bund_usr "$GIMP_PREFIX" "share/gimp" +conf_app GIMP3_DATADIR "share/gimp/*" +lang_array=($(echo $(ls po/*.po | + sed -e 's|po/||g' -e 's|.po||g' | sort) | + tr '\n\r' ' ')) +for lang in "${lang_array[@]}"; do + bund_usr "$GIMP_PREFIX" share/locale/$lang/LC_MESSAGES + #bund_usr "$UNIX_PREFIX" share/locale/$lang/LC_MESSAGES/gtk*.mo + # For language list in text tool options + bund_usr "$UNIX_PREFIX" share/locale/$lang/LC_MESSAGES/iso_639_3.mo +done +conf_app GIMP3_LOCALEDIR "share/locale" +bund_usr "$GIMP_PREFIX" "etc/gimp" +conf_app GIMP3_SYSCONFDIR "etc/gimp/*" -## Plug-ins -find_bin "uname*" -conf_app GIMP3_PLUGINDIR "$OPT_PREFIX" "${LIB_DIR}/${LIB_SUBDIR}gimp/*" -conf_app GI_TYPELIB_PATH "$OPT_PREFIX" "${LIB_DIR}/${LIB_SUBDIR}girepository-*" -### Copy JavaScript plug-ins support -find_bin "gjs*" -### Copy Lua plug-ins support (NOT WORKING) -#find_bin "lua*" -#find_lib "liblua*" -### Copy Python plug-ins support -find_bin "python*" -find_lib "python*.*" -conf_app PYTHONPATH "/usr" "${LIB_DIR}/${LIB_SUBDIR}python3.11" +## Other features and plug-ins +### Needed for welcome page +bund_usr "$GIMP_PREFIX" "share/metainfo/org.gimp*.xml" +sed -i '/kudo/d' $USR_DIR/share/metainfo/org.gimp.GIMP.appdata.xml +sed -i "s/date=\"TODO\"/date=\"`date --iso-8601`\"/" $USR_DIR/share/metainfo/org.gimp.GIMP.appdata.xml +### mypaint brushes +bund_usr "$UNIX_PREFIX" "share/mypaint-data/1.0" +### Needed for full CJK and Cyrillic support in file-pdf +bund_usr "$UNIX_PREFIX" "share/poppler" +### FIXME: file-wmf (NOT WORKING for exporting) +#bund_usr "$UNIX_PREFIX" "share/libwmf" +### FIXME: Image graph support (NOT WORKING) +#bund_usr "$UNIX_PREFIX" "bin/dot" +#bund_usr "$UNIX_PREFIX" "lib/graphviz" +### Needed for GTK inspector +bund_usr "$UNIX_PREFIX" "lib/libEGL*" +bund_usr "$UNIX_PREFIX" "lib/libGL*" +bund_usr "$UNIX_PREFIX" "lib/dri*" +conf_app LIBGL_DRIVERS_PATH "${LIB_DIR}/${LIB_SUBDIR}dri" +### FIXME: Debug dialog (NOT WORKING) +#bund_usr "$UNIX_PREFIX" "bin/lldb*" +#bund_usr "$GIMP_PREFIX" "libexec/gimp-debug-tool*" +### Introspected plug-ins +bund_usr "$GIMP_PREFIX" "lib/girepository-*" +bund_usr "$UNIX_PREFIX" "lib/girepository-*" +conf_app GI_TYPELIB_PATH "${LIB_DIR}/${LIB_SUBDIR}girepository-*" +#### JavaScript plug-ins support +bund_usr "$UNIX_PREFIX" "bin/gjs" +#### Python plug-ins support +bund_usr "$UNIX_PREFIX" "bin/python*" +bund_usr "$UNIX_PREFIX" "lib/python*" +mv "$USR_DIR/${LIB_DIR}/${LIB_SUBDIR}python3.11" "$USR_DIR/${LIB_DIR}" +mv "$USR_DIR/${LIB_DIR}/${LIB_SUBDIR}python3" "$USR_DIR/${LIB_DIR}" +wipe_usr ${LIB_DIR}/*.pyc +#### FIXME: Lua plug-ins support (NOT WORKING) +#bund_usr "$UNIX_PREFIX" "bin/luajit*" +#bund_usr "$UNIX_PREFIX" "lib/lua" +#bund_usr "$UNIX_PREFIX" "share/lua" -## Final adjustments -### Auto detect and copy deps of binaries copied above -"./$go_appimagetool" --appimage-extract-and-run -s deploy $OPT_PREFIX/share/applications/org.gimp.GIMP.desktop >/dev/null 2>&1 -### Rearranje babl, GEGL and GIMP (only the needed files) -if [ -z "$2" ] || [ "$2" = "usr" ]; then - cp -r $GIMP_DISTRIB/etc $GIMP_PREFIX - rm -r $GIMP_DISTRIB/etc - cp -r $GIMP_DISTRIB/lib $GIMP_PREFIX - rm -r $GIMP_DISTRIB/lib - cp -r $GIMP_DISTRIB/lib64 $GIMP_PREFIX - rm -r $GIMP_DISTRIB/lib64 -elif [ "$2" = "AppDir" ]; then - cp -r $GIMP_PREFIX/* $GIMP_DISTRIB - rm -r $GIMP_PREFIX -fi -### Remove unnecessary files -rm -r $OPT_PREFIX/include -rm -r $OPT_PREFIX/${LIB_DIR}/${LIB_SUBDIR}pkgconfig -rm -r $OPT_PREFIX/share/doc -rm -r $OPT_PREFIX/share/man +## Other binaries and deps +bund_usr "$GIMP_PREFIX" 'bin/gimp*' +bund_usr "$GIMP_PREFIX" "bin/gegl" +bund_usr "$GIMP_PREFIX" "share/applications/org.gimp.GIMP.desktop" +"./$go_appimagetool" --appimage-extract-and-run -s deploy $USR_DIR/share/applications/org.gimp.GIMP.desktop &> appimagetool.log -## 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" +## Manual adjustments (go-appimagetool don't handle these things gracefully) +### Undo the mess that go-appimagetool makes on the prefix which breaks babl and gegl) +cp -r $APP_DIR/lib64 $USR_DIR +rm -r $APP_DIR/lib64 +cp -r $APP_DIR/lib/* $USR_DIR/${LIB_DIR} +rm -r $APP_DIR/lib +### Remove unnecessary files bunbled by go-appimagetool +wipe_usr ${LIB_DIR}/${LIB_SUBDIR}gconv +wipe_usr ${LIB_DIR}/${LIB_SUBDIR}gdk-pixbuf-*/gdk-pixbuf-query-loaders +wipe_usr share/doc +wipe_usr share/themes +rm -r $APP_DIR/etc -# CONFIGURE APPRUN -cp build/linux/appimage/AppRun $GIMP_DISTRIB - -if [ -z "$2" ] || [ "$2" = "usr" ]; then - sed -i "s|OPT_PREFIX_WILD|usr/|g" $GIMP_DISTRIB/AppRun -elif [ "$2" = "AppDir" ]; then - sed -i "s|OPT_PREFIX_WILD||g" $GIMP_DISTRIB/AppRun -fi +# FINISH APPIMAGE +## Configure AppRun +echo '(INFO): configuring AppRun' GIMP_APP_VERSION=$(grep GIMP_APP_VERSION _build/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/') -sed -i "s|GIMP_APP_VERSION|${GIMP_APP_VERSION}|" $GIMP_DISTRIB/AppRun +sed -i "s|GIMP_APP_VERSION|${GIMP_APP_VERSION}|" build/linux/appimage/AppRun +sed -i "s|DEBIAN_VERSION|$(cat /etc/debian_version)|" build/linux/appimage/AppRun +mv build/linux/appimage/AppRun $APP_DIR +chmod +x $APP_DIR/AppRun +mv build/linux/appimage/AppRun.bak build/linux/appimage/AppRun +## Copy icon to proper place +echo "(INFO): copying org.gimp.GIMP.svg asset to AppDir" +cp $GIMP_PREFIX/share/icons/hicolor/scalable/apps/org.gimp.GIMP.svg $APP_DIR/org.gimp.GIMP.svg -# CONFIGURE METADATA -sed -i '/kudo/d' $OPT_PREFIX/share/metainfo/org.gimp.GIMP.appdata.xml -sed -i "s/date=\"TODO\"/date=\"`date --iso-8601`\"/" $OPT_PREFIX/share/metainfo/org.gimp.GIMP.appdata.xml -if [ "$2" = "AppDir" ]; then - mkdir -p $GIMP_PREFIX/share - cp -r $GIMP_DISTRIB/share/metainfo $GIMP_PREFIX/share - cp -r $GIMP_DISTRIB/share/applications $GIMP_PREFIX/share +## Construct .appimage +gimp_version=$(grep GIMP_VERSION _build/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/') +appimage="GIMP-${gimp_version}-$(uname -m).AppImage" +echo "(INFO): making $appimage" +ARCH=$(uname -m) "./$legacy_appimagetool" --appimage-extract-and-run $APP_DIR &>> appimagetool.log # -u "zsync|https://download.gimp.org/gimp/v${GIMP_APP_VERSION}/GIMP-latest-$(uname -m).AppImage.zsync" +mv GNU*.AppImage $appimage +rm -r $APP_DIR + +if [ "$GITLAB_CI" ]; then + mkdir -p build/linux/appimage/_Output/ + mv GIMP*.AppImage build/linux/appimage/_Output/ + mv *.log build/linux/appimage/_Output/ fi - - -# CONFIGURE ICON -cp $OPT_PREFIX/share/icons/hicolor/scalable/apps/org.gimp.GIMP.svg $GIMP_DISTRIB/org.gimp.GIMP.svg -if [ "$2" = "AppDir" ]; then - cp -r $GIMP_DISTRIB/share/icons/ $GIMP_PREFIX/share -fi - - -# MAKE APPIMAGE -"./$legacy_appimagetool" --appimage-extract-and-run $GIMP_DISTRIB &> build/linux/appimage/_Output/appimagetool.log # -u "zsync|https://download.gimp.org/gimp/v${GIMP_APP_VERSION}/GIMP-latest-$(uname -m).AppImage.zsync" -GIMP_VERSION=$(grep GIMP_VERSION _build/config.h | head -1 | sed 's/^.*"\([^"]*\)"$/\1/') -mv GNU*.AppImage build/linux/appimage/_Output/GIMP-${GIMP_VERSION}-$(uname -m).AppImage diff --git a/build/linux/appimage/AppRun b/build/linux/appimage/AppRun index 35c6da9e79..37f3d89159 100644 --- a/build/linux/appimage/AppRun +++ b/build/linux/appimage/AppRun @@ -12,51 +12,46 @@ set -e # 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" +## Minimum runtime paths +export PATH="$HERE"/usr/bin/:"$PATH" +export LD_LIBRARY_PATH="$HERE"/usr/lib/:"$HERE"/usr/lib/x86_64-linux-gnu/:"$HERE"/usr/lib64/:"$LD_LIBRARY_PATH" +export XDG_DATA_DIRS="$HERE"/usr/share/:"$XDG_DATA_DIRS" +LD_LINUX="$HERE/LD_LINUX_WILD --inhibit-cache" -## 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) +## GTK-related paths 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') +#export GTK_THEME=$(eval "$LD_LINUX" "$HERE"/usr/bin/gsettings get org.gnome.desktop.interface gtk-theme) ## 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 GIMP3_LOCALEDIR="$HERE"/GIMP3_LOCALEDIR_WILD +export GIMP3_SYSCONFDIR="$HERE"/GIMP3_SYSCONFDIR_WILD 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 (GIMP related) +## Other paths (feature-related) export LIBGL_DRIVERS_PATH="$HERE"/LIBGL_DRIVERS_PATH_WILD -export PYTHONPATH="$HERE"/PYTHONPATH_WILD +export GI_TYPELIB_PATH="$HERE"/GI_TYPELIB_PATH_WILD:"$GI_TYPELIB_PATH" +export PYTHONHOME="$HERE"/usr +export PYTHONDONTWRITEBYTECODE=1 # RUN MAIN_BIN -cd "$HERE"/OPT_PREFIX_WILD -LD_PRELOAD=/OPT_PREFIX_WILDlib/x86_64-linux-gnu/libc.so.6 "$HERE"/OPT_PREFIX_WILDbin/gimp-GIMP_APP_VERSION "$@" +echo "This is a CI build of GIMP compatible with Debian DEBIAN_VERSION. See: https://gitlab.gnome.org/GNOME/gimp/-/issues/7661" +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.' + +LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libc.so.6 "$HERE"/usr/bin/gimp-GIMP_APP_VERSION "$@"