ivan-hc / GIMP-appimage

GNU Image Manipulation Program Stable & Developer Edition.
51 stars 2 forks source link

hello Bro! #5

Closed lucasmz1 closed 1 year ago

lucasmz1 commented 1 year ago

I've downloaded you gimp appimage and it needs to be removed a few libs there are placed in libs blacklist... (https://github.com/AppImageCommunity/pkg2appimage/blob/master/excludelist) I also made a few changes in your apprun. despite that all is working fine. which was your technique for build this gimp? I am very interested in that, cause I've made a gimp from snap file but it didn't worked fine as I expected.

ivan-hc commented 1 year ago

hi, i use pkg2appimage and a recipe containing the PPA for Ubuntu 18.04. Initially the installation scripts available on this repository were created to build GIMP as an AppImage using my main projects (AM and AppMan) also during the update. The installation script creates (in Github Actions) a /opt/gimp directory (on Ubuntu Latest) where the whole structure i built through pkg2appimage, the default AppRun is replaced with a custom on inspiredf by the one created on the old aferrero2707/gimp-appimage repository to check all the required dependences inside the AppImage. My installation script is quite old and it is one of the oldest I wrote for AM and AppMan (this is why I "abuse" of the echo command). This is the AppRun I use:

#!/bin/sh
HERE="$(dirname "$(readlink -f "${0}")")"
export UNION_PRELOAD="${HERE}"
LIBS=$($(find . -name "libgimpwidgets*"):$(find . -name "libgimpbase*"):$(find . -name "libgimpcolor*"):$(find . -name "libgimpconfig*"):$(find . -name "libgegl-0*"):$(find . -name "libbabl*"):$(find . -name "libgexiv*"):$(find . -name "libgimpmath*"):$(find . -name "libexiv*"):$(find . -name "libgimpthumb*"):$(find . -name "libgimpmodule*"):$(find . -name "libmypaint*"):$(find . -name "libjson-c*"):$(find . -name "libgimp-2*"):$(find . -name "libgimpui*"))
for LIBS in ${HERE}/usr/lib/x86_64-linux-gnu/; do
export LD_PRELOAD=$LIBS
done
export PATH=/bin/:/usr/bin/:/usr/local/bin/:/sbin/:"${HERE}"/usr/bin/:"${HERE}"/usr/sbin/:"${HERE}"/usr/games/:"${HERE}"/bin/:"${HERE}"/opt/gimp/:"${HERE}"/sbin/:"${PATH}"
export LD_LIBRARY_PATH=/lib64/:/usr/lib/:/lib/:/usr/lib/x86_64-linux-gnu/:/lib/x86_64-linux-gnu/"${HERE}"/usr/lib/:"${HERE}"/usr/lib/gimp/:"${HERE}"/usr/lib/i386-linux-gnu/:"${HERE}"/usr/lib/x86_64-linux-gnu/:"${HERE}"/lib/:"${HERE}"/lib/i386-linux-gnu/:"${HERE}"/lib/x86_64-linux-gnu/:"${LD_LIBRARY_PATH}"
export PKG_CONFIG_PATH="${HERE}"/usr/share/pkgconfig/:$PKG_CONFIG_PATH
export GIMP2_LOCALEDIR="${HERE}/usr/share/locale"
export GIMP3_LOCALEDIR="${HERE}/usr/share/locale"
export GIMP2_DATADIR="${HERE}"/usr/share/gimp/2.0/
export GIMP2_SYSCONFDIR="${HERE}"/etc/gimp/2.0/
export GIMP2_PLUGINDIR="${HERE}"/usr/lib/gimp/2.0/
export GIMP3_DATADIR="${HERE}"/usr/share/gimp/2.99/
export GIMP3_SYSCONFDIR="${HERE}"/etc/gimp/2.99/
export GIMP3_PLUGINDIR="${HERE}"/usr/lib/gimp/2.99/
export GEGL_PATH="${HERE}"/usr/lib/x86_64-linux-gnu/gegl-0.4/
export BABL_PATH="${HERE}"/usr/lib/x86_64-linux-gnu/babl-0.1/
EXEC=$(grep -e '^Exec=.*' "${HERE}"/*.desktop | head -n 1 | cut -d "=" -f 2- | sed -e 's|%.||g')
exec ${EXEC} "$@"

As you can see, it is not totally independent and uses some libraries on the host to work (see LD_LIBRARY_PATH), maybe I have something to correct, however I've not much time. See https://github.com/ivan-hc/MPV-appimage/issues/3 for more details about the way I build my AppImages.