ivan-hc/GIMP-appimage

2.10.32 do not start

efa opened this issue · 24 comments

efa commented

hi,
I just run your script on a Debian 11.
The appImage created in /opt/gimp once start, run the native GIMP .deb from the distribution, so 2.10.22 in my case.
I removed the native GIMP, and retry.
Then /opt/gimp/gimp complaint about mismatch libgimp.
I removed libgimp, and that require to remove xsane, not acceptable.
Anyway I give it a try, but now complaint about mismatched libgegl.
I removed libgegl, then deleted opt/gimp, and run again the script.

Now starting both gimp or AppRun I got this:

$ /opt/gimp/gimp 
/tmp/.mount_gimp6t5S5D/AppRun: 4: ::::::::::::./.local/share/lutris/runtime/Ubuntu-18.04-i686/libjson-c.so.3: not found
ERROR: ld.so: object '/tmp/.mount_gimp6t5S5D/usr/lib/x86_64-linux-gnu/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
ERROR: ld.so: object '/tmp/.mount_gimp6t5S5D/usr/lib/x86_64-linux-gnu/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
ERROR: ld.so: object '/tmp/.mount_gimp6t5S5D/usr/lib/x86_64-linux-gnu/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
ERROR: ld.so: object '/tmp/.mount_gimp6t5S5D/usr/lib/x86_64-linux-gnu/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
ERROR: ld.so: object '/tmp/.mount_gimp6t5S5D/usr/lib/x86_64-linux-gnu/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
gimp-2.10: symbol lookup error: /tmp/.mount_gimp6t5S5D/usr/lib/x86_64-linux-gnu/libgegl-0.4.so.0: undefined symbol: babl_fish_get_process, version V0_1_0

efa commented

As without libgegl,GIMP do not start, I reinstalled it.
Here the error I got:
gegl

efa commented

libgegl is a main deps of GIMP, you should supply it in the package

hi, what is the first line of the output when you run /opt/gimp/gimp ?

/tmp/.mount_gimp6t5S5D/AppRun: 4: ::::::::::::./.local/share/lutris/runtime/Ubuntu-18.04-i686/libjson-c.so.3: not found

it seems you're trying to run my x86_64 AppImage on a 32bit architecture, isn't it?

EDIT: I've just updated the instructions in the README.md of this repository, see https://github.com/ivan-hc/GIMP-appimage

If you're looking for a 32bit version of GIMP I can't help, GitHub Actions does not provide a container gor Ubuntu or other GNU/Linux distributions other than those based on a 64bit architecture.

efa commented

No, my system is 64 bit, while I have installed support for i386 libs, as I need to compile my app for old systems. It is the Debian multi-arch support, I think was added to Ubuntu in 18.04 or 18.10

efa commented
$ uname -a
Linux 08i7-2500 5.10.0-21-amd64 #1 SMP Debian 5.10.162-1 (2023-01-21) x86_64 GNU/Linux

can be a mis-detection?

efa commented

I downloaded your pre-built appImage from Release [Continuous build]
https://github.com/ivan-hc/GIMP-appimage/releases/tag/continuous
as before I had to un-install native deb GIMP or running appImge start native 2.10.22

Once removed native GIMP, but keeping libgegl I got the same error as before (need libgegl 0.4.36, found 0.4.26)
and those errors in the console:

$ GNU_Image_Manipulation_Program-2.10.32-x86_64.AppImage
/tmp/.mount_GNU_Im7lINNF/AppRun: 4: ::::::::::::::: not found
ERROR: ld.so: object '/tmp/.mount_GNU_Im7lINNF/usr/lib/x86_64-linux-gnu/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
ERROR: ld.so: object '/tmp/.mount_GNU_Im7lINNF/usr/lib/x86_64-linux-gnu/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
ERROR: ld.so: object '/tmp/.mount_GNU_Im7lINNF/usr/lib/x86_64-linux-gnu/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
ERROR: ld.so: object '/tmp/.mount_GNU_Im7lINNF/usr/lib/x86_64-linux-gnu/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
ERROR: ld.so: object '/tmp/.mount_GNU_Im7lINNF/usr/lib/x86_64-linux-gnu/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
../babl/babl-internal.h:214 babl_log()
	dlopen() failed:
	/tmp/.mount_GNU_Im7lINNF/usr/lib/x86_64-linux-gnu/babl-0.1//oklab.so: undefined symbol: babl_chromatic_adaptation_matrix, version V0_1_0

(gimp-2.10:192137): GLib-GObject-WARNING **: 19:38:29.520: Two different plugins tried to register 'GeglOpdenoise-dct_cc'.
... 100s similar lines ...
(gimp-2.10:192137): GLib-GObject-WARNING **: 19:38:29.633: Two different plugins tried to register 'GeglOprotate-on-center_c'.

while removing native libgegl, do not start at all and got only those:

$ GNU_Image_Manipulation_Program-2.10.32-x86_64.AppImage
/tmp/.mount_GNU_ImUIBGst/AppRun: 4: ::::::::::::::: not found
ERROR: ld.so: object '/tmp/.mount_GNU_ImUIBGst/usr/lib/x86_64-linux-gnu/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
ERROR: ld.so: object '/tmp/.mount_GNU_ImUIBGst/usr/lib/x86_64-linux-gnu/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
ERROR: ld.so: object '/tmp/.mount_GNU_ImUIBGst/usr/lib/x86_64-linux-gnu/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
ERROR: ld.so: object '/tmp/.mount_GNU_ImUIBGst/usr/lib/x86_64-linux-gnu/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
ERROR: ld.so: object '/tmp/.mount_GNU_ImUIBGst/usr/lib/x86_64-linux-gnu/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
gimp-2.10: symbol lookup error: /tmp/.mount_GNU_ImUIBGst/usr/lib/x86_64-linux-gnu/libgegl-0.4.so.0: undefined symbol: babl_fish_get_process, version V0_1_0

so noway to start GIMP appImage

efa commented

I also tested pre-built appImage dated 2022-11-19 and 2022-11-13 and 2.10.30 named "GNU_Image_Manipulation_Program-GLIBC.2.27-x86_64.AppImage", same exact errors.

While dev image named "GNU_Image_Manipulation_Program-DEV-2.99.14-0.1-x86_64.AppImage" do not show the dialog box complainting about libgegl mismatch but still do not start with errors:

$ GNU_Image_Manipulation_Program-DEV-2.99.14-0.1-x86_64.AppImage
/tmp/.mount_GNU_Imt9jdVn/AppRun: 4: ::::::::::::::: not found
ERROR: ld.so: object '/tmp/.mount_GNU_Imt9jdVn/usr/lib/x86_64-linux-gnu/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
ERROR: ld.so: object '/tmp/.mount_GNU_Imt9jdVn/usr/lib/x86_64-linux-gnu/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
ERROR: ld.so: object '/tmp/.mount_GNU_Imt9jdVn/usr/lib/x86_64-linux-gnu/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
ERROR: ld.so: object '/tmp/.mount_GNU_Imt9jdVn/usr/lib/x86_64-linux-gnu/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
ERROR: ld.so: object '/tmp/.mount_GNU_Imt9jdVn/usr/lib/x86_64-linux-gnu/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
gimp-2.99: symbol lookup error: /tmp/.mount_GNU_Imt9jdVn/usr/lib/x86_64-linux-gnu/libgimpbase-3.0.so.0: undefined symbol: gexiv2_metadata_try_get_tag_multiple

the AppRun inside the AppImage is a bash script, try to extract the AppImage...

./*AppImage --appimage-extract

then edit the AppRun and run it until GIMP starts regularly.

I've tested this AppImage on Debian 12, Arch Linux and Ubuntu 18.04 without problems, I can't reproduce this issue.

efa commented

sure, I will test as so, thank you.
Is Debian 12 the Debian Testing (Bookworm)?
Will be released as 12 on March-June, I will switch to that soon.

Take care that the mismatch of libgegl 0.4.36 needed, found 0.4.26 on Debian 11, is about unsolvable if you require that building the binary for AppAmage.
I read the documentation of AppImage, they say to target Ubuntu 14.04 to be sure start everywhere, I do not think you are following the rules.
Maybe and hope Debian testing upgraded libgegl to a newer one, so this isse will solve, but you should anyway package GEGL and BABL inside to be independent of the target, those are the two main lib deps of GIMP

I read the documentation of AppImage, they say to target Ubuntu 14.04 to be sure start everywhere, I do not think you are following the rules.

if I had to use linuxdeploy I had to use an older linux distribution to build the appimage... but I'm using pkg2appimage that uses recipes to download packages only from speciphic repositories, so you can run it anywhere.

The appimages are generated automatically through Github Actions and the repository is a PPA for Ubuntu 18.04 Bionic (for the stable version) and Ubuntu 20.04 (for the dev, because there is not another one for older distributions).

Finally, the rule is (for linuxdeploy and similar software) thad is better to coompile on the older and still supported Ubuntu LTS, for now is Ubuntu 18.04 "Bionic"... but it is going End Of Life now... so I have to update all my recipes soon to Ubuntu 20.04 "Focal".

I think I'll use distrobox via Github Actions to build appimage packages in the near future to use linuxdeploy on an older and no more supported linux distro by compiling software from source, this is the best solution... but I have not much time normally because my real job, and personally I'm using more distrobox than AppImage packages, I found it the best solution for my use case, having all the package managers from all the linux distributions and the max compatibility, this is more and more better than flatpak.

efa commented

I finally managed to start 2.10.32 correctly.
Will send a PR

efa commented

done with: #7
please test on your distros, hope work.
With this AppRun, I can keep both native gimp 2.10.22 and AppImage 2.10.32 without conflicts, so I can keep native libgimp, and so native Xsane.

just tested on my PC, PR merged successfully

ps: Valerio Messina... ma sei italiano anche tu quindi?

efa commented

Milano

efa commented

cosa ne pensi di un minetest-AppImage?

cosa ne pensi di un minetest-AppImage?

Ho visto che esiste già https://appimage.github.io/Minetest/ lo so perché già è disponibile sul mio repository principale, "AM"

efa commented

wow, provato funziona bene, grazie.

Ma allora questo punto ti chiedo come si cercano e trovano queste AppImage, semplicemente andando nella casella di ricerca di github, con Google o in altro modo?

Poi dovresti dare più evidenza all'elenco di AppImage gestiti da AM:
https://raw.githubusercontent.com/ivan-hc/AM-application-manager/main/programs/x86_64-apps
bisogna leggere bene la pagina per trovarlo.
Potresti mettere qualcosa come "Repository of AppImage list and Multiarchitecture" al posto di "Repository and Multiarchitecture"

Ma allora questo punto ti chiedo come si cercano e trovano queste AppImage, semplicemente andando nella casella di ricerca di github, con Google o in altro modo?

in qualunque modo, c'è un sito ufficiale sul quale si basano molti gestori di AppImage, ossia appimage.github.io , ed è gestito dalla comunità, il repository è a https://github.com/AppImage/appimage.github.io e per caricare pacchetti AppImage sono in vigore delle ferree linee guida, e anche se il tuo pacchetto dovesse funzionare per tutti, dovrebbe innanzitutto essere riconosciuto come "ufficiale" dagli sviluppatori principali, ma è "probonopd" (inventore del formato AppImage) a decidere quando e come caricare il tuo pacchetto sul sito appimage.github.io (tu ci hai già parlato, prima di contattare me in questo "issue"). Ho aperto una decina di PR che hanno passato il test, sia per i miei pacchetti che per il gioco 0ad (faccio parte di quella comunità), ma "probonopd" ha più volte detto di no ai miei caricamenti, nonostante abbia apprezzato proprio questo GIMP dandomi una stella.

Poi dovresti dare più evidenza all'elenco di AppImage gestiti da AM

Ho pubblicizzato più volte AM e AppMan su Reddit, è molto apprezzato (essendo il più ricco AppImage manager, esistono app inedite che non troverai con Bread o Zap, per esempio), ma è poco conosciuto, nessuno ha preso sul serio il mio lavoro al punto da farci una recensione.

bisogna leggere bene la pagina per trovarlo

il file che mi hai lincato viene visionato tramite le opzioni di AM, per esempio am -q parola oppure am -q un insieme di parole per cercare dalla lista delle applicazioni disponibili, am -l mostra tutta la lista dalla fine, usando il comando am -l | less leggerai tutto l'elenco dall'inizio.

Ogni applicazione elencata ha uno script di installazione dedicato, quando invochi il comando am -i gimp oppure am install gimp installerai GIMP da questo repository, con tanto di icona e lanciatore nel menu.

Il comando am -u aggiorna tutti i pacchetti installati, mentre am -u gimp invoca lo script AM-updater dedicato a GIMP, in cerca di una nuova versione da questo repository. Lo script AM-updater è diverso per ogni app gestita da AM. In alcuni casi non è nemmeno necessario (vedi Firefox e le sue varie versioni, è il tar originale dal sito principale, non un AppImage, ed è autoaggiornabile... ovviamente c'è anche l'AppImage se preferisci risparmiare spazio sul disco).

I miei pacchetti non sono perfetti (una quindicina o poco più), ma vanno a completare una lista di programmi che un utente medio vorrebbe trovare sul proprio PC.

Se vuoi provarli, basta installare AM (richiede i privilegi di root, installerà AM e tutti i programmi in /opt, come deciso dal Linux Standard Base) oppure AppMan (solo in locale, non richiede privilegi di root... inoltre è uno script "portatile", non richiede una posizione specifica per essere usato, devi solo decidere la cartella dove verranno installati tutti i programmi).

efa commented

un amico mi ha segnalato che su Fedora ancora non va

abbiamo bisogno di visionare l'output del terminale, magari avviare l'app con l'alias LD_DEBUG=libs potrebbe fornirci maggiori informazioni

efa commented

ho visto che non funziona la linea
EXEC=$(grep -e '^Exec=.*' "${HERE}"/*.desktop | head -n 1 | cut -d "=" -f 2- | sed -e 's| %.||g')
perché
sed,head,cut,grep
non funzionano dopo la definizione delle veriabili di ambiente precedenti. In pratica trovano gli .so di GIMP e non trovano quelli del sistema nativo, e non partono più.
Domani gli dico di cambiare la linea finale:
exec ${HERE}/usr/bin/${EXEC} "$@"
semplicemente in:
exec gimp-2.10 "$@"

efa commented

un altro amico con Archlinux mi ha detto che non partiva, ma dopo aver installato:

  • gtk2
  • libxcrypt
  • libxcrypt-compat

ora gli parte.

E' incredibile ma in effetti le libgtk 2.0 NON fanno parte del tuo pacchetto GIMP, almeno io non le trovo. C'abbiamo da migliorare

abbiamo bisogno delle librerie esatte, cambiano nei pacchetti da una distribuzione all'altra, libxcrypt è disponibile in Ubuntu "bionic", ora è da vedere quale pacchetto di Ubuntu contiene le librerie necessarie per gtk2 in Arch Linux.

Fai lanciare l'AppImage in questo modo:

LD_DEBUG=libs ./*.AppImage