ivan-hc / GIMP-appimage

GNU Image Manipulation Program Stable & Developer Edition.
54 stars 3 forks source link

Ecco un nuovo problema: gimp 2.99.19r704 e 2.10.38 hybrid non partono perché manca la cartella /run/user #24

Closed vitforlinux-gimp closed 6 months ago

vitforlinux-gimp commented 6 months ago

Su antix 23, ovvero Debian. Naturalmente se gliela faccio (sudo mkdir /run/user) poi funziona fino al riavvio... e io la rifaccio.

Quella cartela non c'è anche negli altri sistemi... e rimane vuota. Ma allora a che serve?

Ciao e grazie ancora.

ivan-hc commented 6 months ago

Ciao, creo queste AppImage usando il metodo Archimage, che di base usa JuNest (se sei italiano, conoscerai Morrolinux, che realizzò una recensione su quel container https://www.youtube.com/watch?v=-PGz2qFYoZc ). Di default, il container contenuto nell'Appimage monta le seguenti directory: /opt (piché il mio package manager installa tutto lì), /usr/lib/locale (per le lingue di sistema), /usr/share/fonts (per i caratteri), /usr/share/themes (per i temi di sistema), /mnt (per i dispositivi esterni), /home e /run/user

vitforlinux-gimp commented 6 months ago

Ho approfondito il problema, si potrebbe dire che è colpa "mia" uso sistemi NOsystemd, non te ne curare, antiX e Devuan non hanno /run/user... però ora lo sappiamo.

Però strano... fino all'altro giorno andava.

Ancora Ciao

ivan-hc commented 6 months ago

Grazie a te.

vitforlinux-gimp commented 6 months ago

Alla fine ho messo una toppa: faccio creare a runit (che ho al posto di systemd) /run/user e mi accontento.

ivan-hc commented 6 months ago

Nei miei AppRun (il cuore degli AppImage) ho questo schema

if test -d /media; then
    MNT_MEDIA=' --bind /media /media '
fi
if test -f /etc/resolv.conf; then
    ETC_RESOLV=' --bind /etc/resolv.conf /etc/resolv.conf ' # NEEDED TO CONNECT THE INTERNET
fi
BINDS=" $MNT_MEDIA $ETC_RESOLV "

if test -f $JUNEST_HOME/usr/lib/libselinux.so; then
    export LD_LIBRARY_PATH=/lib/:/lib64/:/lib/x86_64-linux-gnu/:/usr/lib/:"${LD_LIBRARY_PATH}"
fi

EXEC=$(grep -e '^Exec=.*' "${HERE}"/*.desktop | head -n 1 | cut -d "=" -f 2- | sed -e 's|%.||g')

viene attivato in caso i suddetti file e cartelle non sono presenti... se vuoi posso applicarlo io

ivan-hc commented 6 months ago

ovviamente per GIMP-dev devo aspettare che risolvano i problemi con il PKGBUILD su AUR, altrimenti non posso compilarlo... il workflow sta fallendo da oltre una settimana

ivan-hc commented 6 months ago

Ho appena apportato un cambiamento al progetto principale https://github.com/ivan-hc/ArchImage con https://github.com/ivan-hc/ArchImage/commit/dd03e6ba7dd47e65c7d9b5ca00abd22f4293838a

il nuovo AppRun consentirà il montaggio delle directory extra ma solo nel caso siano presenti, altrimenti... felici tutti

ivan-hc commented 6 months ago

Ora vado a patchare tutti gli altri Archimage che ho

ivan-hc commented 6 months ago

Ho appena scoperto che è un elemento core di JuNest... non posso rimuovere quel punto di mount. Devo ripristinarlo.

https://github.com/ivan-hc/GIMP-appimage/commit/bac98e8855f41786cf4f63baf3d750b04c230811

ivan-hc commented 6 months ago

Per essere più precisi, se esegui uno degli script che utilizzo per costruirli sul tuo PC, e disabilitando "--bind /run/user /run/user", l'Archimage funzionerà solo sul tuo sistema... ecco perchè devo tenerlo montato. Se lo costruisco tramite github actions, prenderà in considerazione il sistema usato da github actions come "host", quindi l'Archimage non funzionerà su altri computer.

Creare una directory /run/user sul proprio PC è sufficiente per risolvere il problema.

Anche il fatto che io utilizzi sed per cambiare --bind /$HOME /$HOME in --bind /home /home è dovuto al modo in cui JuNest funziona. JuNest è pensato per essere dinamico e scrive e riscrive file su file a ogni comando... ecco perchè devo patcharlo, per contenerlo in un filesystem portatile notoriamente conosciuto come AppImage.