ivan-hc / GIMP-appimage

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

Archimage 3 Locale Error #17

Closed bav-br closed 9 months ago

bav-br commented 9 months ago

/etc/profile.d/01-locale-fix.sh: line 2: /usr/bin/locale-check: No such file or directory /bin/sh: line 1: gimp: No such file or directory

ivan-hc commented 9 months ago

What of the AppImages are you using among the releases?

I've just tested the Stable/Latest and works well.

EDIT: also tested DEV and GIT, no problems here.

ivan-hc commented 9 months ago

I think I've understand what is the problem here.

I think I should update these too to Archimage 3.1 that not mounts the whole /etc directory but just /etc/profile and /etc/resolv.conf

I'll fix it in a while, just wait.

bav-br commented 9 months ago

Both in normal and hybrid and also affects the Handbrake.

VLC and Chromium run normally.

ivan-hc commented 9 months ago

Yes, because VLC and Chromium are updated to Archimage 3.1, the others not

ivan-hc commented 9 months ago

I suppose that GIT and DEV work normally, because they have only /etc/profile mounted... isn't it?

ivan-hc commented 9 months ago

GIMP Stable is ready, in the meanwhile that Hybrid has its workflow running... now it should work for you. Check it out!

bav-br commented 9 months ago

I suppose that GIT and DEV work normally, because they have only /etc/profile mounted... isn't it?

Latest DEV gives this error:

/etc/profile.d/debuginfod.sh: line 9: tr: No such file or directory /etc/profile.d/gpm.sh: line 1: /usr/bin/tty: No such file or directory /bin/sh: line 1: gimp-2.99: No such file or directory

GIMP Stable is ready, in the meanwhile that Hybrid has its workflow running... now it should work for you. Check it out!

I will test it. Please wait...

bav-br commented 9 months ago

GIMP Stable is ready, in the meanwhile that Hybrid has its workflow running... now it should work for you. Check it out!

I tested the new file and it gave me the same error as DEV:

/etc/profile.d/debuginfod.sh: line 9: tr: No such file or directory /etc/profile.d/gpm.sh: line 1: /usr/bin/tty: No such file or directory /bin/sh: line 1: gimp: No such file or directory

ivan-hc commented 9 months ago

So the app is not running, right?

bav-br commented 9 months ago

That's right, it doesn't run for me.

Ubuntu Mate 20.04.6

ivan-hc commented 9 months ago

How are you running it? Normally or using AM/AppMan?

How you get these messages?

Are you using bash or zsh as a login shell?

bav-br commented 9 months ago

Normally.

I use bash, which is the system default.

The last version that worked for me, of both GIMP and Handbrake, was archimage 2.

To repeat, VLC and Chromium worked correctly in the last version and I was even able to generate ungoogled-chromium using the Chromium script, although the appimage was bloated, with more than 500 MB, compared to Chromium's 180 MB that you generated.

ivan-hc commented 9 months ago

In the meantime I've also updated Handbrake, have you tried it?

This may be caused from the case function in the AppRun

bav-br commented 9 months ago

Handbrake still appears as last updated 12 hours ago, whose version was the one I tested

ivan-hc commented 9 months ago

Handbrake still appears as last updated 12 hours ago, whose version was the one I tested

Oops! I forgot running that, I've updated about all other Archimages that were not updated to Archimage 3.1

Two minutes and it should be ready.

However, Archimage 2 was emulating a subsystem using proot, Archimage 3 instead is more compatible with the host system using "namespaces"... also if it is still a contained Arch Linux system.

bav-br commented 9 months ago

Yes, I am aware, but I keep a copy of the last version that worked for me until I resolve the situation.

ivan-hc commented 9 months ago

If my theory about the case function is correct, also KDE-games and MPV should not work.

EDIT: in the meanwhile, Handbrake is ready

bav-br commented 9 months ago

Same error: /etc/profile.d/debuginfod.sh: line 9: tr: No such file or directory /bin/sh: line 1: kdiamond: No such file or directory

ivan-hc commented 9 months ago

and Handbrake?

bav-br commented 9 months ago

Handbrake appears to be the same as 12 hours ago, archimage 3.0

ivan-hc commented 9 months ago

You're right... I think I've closed the tab without saving the commit https://github.com/ivan-hc/Handbrake-appimage/commit/55f3febf70a2a8230688f8e5cc19489b908ba1ae

Please, be patient...2-3 minutes and its ready with "3.1" in the name.

All I've done is to replace the mounting of the whole /etc with --bind /etc/profile /etc/profile... being it an app that works offline (with no internet) I don't need to mount also /etc/resolv.conf

bav-br commented 9 months ago

You're right... I think I've closed the tab without saving the commit ivan-hc/Handbrake-appimage@55f3feb

Please, be patient...2-3 minutes and its ready with "3.1" in the name.

All I've done is to replace the mounting of the whole /etc with --bind /etc/profile /etc/profile... being it an app that works offline (with no internet) I don't need to mount also /etc/resolv.conf

Same error displayed in GIMP and KDE-Games and it doesn't run:

/etc/profile.d/debuginfod.sh: line 9: tr: No such file or directory /etc/profile.d/gpm.sh: line 1: /usr/bin/tty: No such file or directory /bin/sh: line 1: ghb: No such file or directory

ivan-hc commented 9 months ago

try to extract one of them and run the AppRun as suggested at https://github.com/ivan-hc/ArchImage#troubleshooting , there is also a video that shows what you should do.

Use LD_DEBUG too and find if something is missing (libraries using LD_DEBUG=libs, files with LD_DEBUG=files...).

ivan-hc commented 9 months ago

Last and not less important thing... have you tried with AM or AppMan? The apps should work well if symlinked in $PATH using my CLI tools.

bav-br commented 9 months ago

LD_DEBUG files.txt LD_DEBUG libs.txt

bav-br commented 9 months ago

Last and not less important thing... have you tried with AM or AppMan? The apps should work well if symlinked in $PATH using my CLI tools.

I am unable to do this test. I manage my appimages manually,

ivan-hc commented 9 months ago

I am unable to do this test. I manage my appimages manually,

I say this because BASH/SHELL runs all applications from $PATH, and being the Archimage a container, it has its own /usr/bin/sh and /usr/bin/bash.

Normally, the errors you can see about the Archimages and /etc (so the errors related to the container itself) can be shown only if you remove 2> /dev/null (I add this line not to mix outputs from the container and the running app on the host).

That say, if you see these errors its because the issue come from the outside.

People that normally use my AppImages are using them with AM and AppMan. I remember that I already had someone with an issue like this... and to solve the issue it was necessary to revert the order of echo $PATH by editing ~/.profile and ~/.bashrc

AppMan includes this function to solve the problem:

function _patch_bashrc_and_profile(){
    if $(! grep -q 'export PATH=$PATH:$(xdg-user-dir USER)/.local/bin' $HOME/.bashrc); then
        echo 'export PATH=$(echo $PATH | tr ":" "\n" | grep -v "/.local/bin" | tr "\n" ":" | sed ''s/.$//'')' >> $HOME/.bashrc
        echo -e 'export PATH=$PATH:$(xdg-user-dir USER)/.local/bin\n' >> $HOME/.bashrc
    fi
    if $( grep -q 'PATH="$HOME/.local/bin:$PATH"' $HOME/.profile); then
        sed -i 's#PATH="$HOME/.local/bin:$PATH"#PATH="$PATH:$HOME/.local/bin"#g' $HOME/.profile
    fi
}

Normally, the priorithy in $PATH is for the last one, for example, I'll do the example on me (as I had the same issue of that user).

This is how ~/.profile sets $PATH

/home/ivan/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

and this is how that function have solved the issue/issues

/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/ivan/.local/bin

I'm not sure if this would work for you.

I also know about an user that was not able to run any AppImage, but because him had AppimageLauncher installed, and after him had installed it, he was unable to run any appimage due to a background service left from AppimageLauncher.

Its hard to understand all all this sh*t works... this is why its so ba to work alone on htese projects.

However, your log files does not say nothing, apart the same three lines of errors you get normally.

ld-linux-x86-64.so is already into the AppImage, that said, I don't know why this happens.

ivan-hc commented 9 months ago

Try this, extract the AppImage and DO NOT RUN THE APPRUN, just replace this line into it

*) $HERE/.local/share/junest/bin/junest -n -b "$ETC_RESOLV" 2> /dev/null -- gimp "$@";;

with this

*) $HERE/.local/share/junest/bin/junest -n -b "$ETC_RESOLV --bind /etc/profile.d /etc/profile.d" 2> /dev/null -- gimp "$@";;

and use this command in the same directory of the squashfs-root directory

wget -q https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O appimagetool
chmod a+x appimagetool
ARCH=x86_64 ./appimagetool -n ./squashfs-root
rm -R -f ./appimagetool

that normally its a custom action I use to export AppImages on my desktop in XFCE, this

wget -q https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O appimagetool; chmod a+x appimagetool; ARCH=x86_64 ./appimagetool -n %f && mv *.AppImage ~/Scrivania; rm -R -f ./appimagetool

run the created AppImage and tell me if something is changed.

In brief, extract the downloaded one and do not run the AppRun, change the line I said above and export the AppImage again.

bav-br commented 9 months ago

I won't be able to do it now. I will test as soon as possible

ivan-hc commented 9 months ago

I've done a test on Firedragon AppImage (a fork of Firefox) and works.

I suppose that by mounting only /etc/profile without /etc/profile.d was a big mistake, they are needed to crate and read the ennvironment variables.

I'll try to update all my ArchImages this way, starting with those you're testing right now.

ivan-hc commented 9 months ago

I've just finished to create GIMP Stable and Handbrake is running right now.

ivan-hc commented 9 months ago

UPDATE: I've found error messages in Emacs -_- however it runs... I've tested all my Archimages now, all works great except Rhythmbox and my brand new SpaceCadet Pinball.

To put --bind /etc/profile.d /etc/profile.d would be an option from now on, but I'll try not to implement it if not strictly needed.

I only hope this is not another waste of time.

ivan-hc commented 9 months ago

I've updated all archimages to version 3.2, now none of them uses any /etc/profile* mountpoint and all log messages are enabled by default (this means that you no more neeed to extract the Appimage and edit the AppRun to debug the app).

Download any app normally and find error messages (maybe not the annoying ones about theming, thank you xD ).

bav-br commented 9 months ago

It seems to have worked now.

All are running.

Thank you very much

ivan-hc commented 9 months ago

@brunoalvieira

I was even able to generate ungoogled-chromium using the Chromium script, although the appimage was bloated, with more than 500 MB, compared to Chromium's 180 MB that you generated.

Follow my instructions:

archimage-cli -s

to update to the version 3.2, then

archimage-cli -b ungoogled-chromium

then

binary = chromium
dependences =
include dependences = N
standard configuration = Y

If you want spend your time for more important thing and wont that your beard grown and become white... you can enable ChaoticAUR using the command

sed -i 's/###//g' ungoogled-chromium-junest.sh

else, keep using the classic construction from AUR and run the script and wait until it finishes.

You know, you may wait a while stuck with the message

==> Extracting sources...
  -> Extracting chromium-121.0.6167.85.tar.xz with bsdtar
bsdtar: Failed to set default locale

don't worry, keep wait, it take so much because chromium-121.0.6167.85.tar.xz is 3,3 GB... the worst is yet to come!

I initially tried to compile on my PC with an AMD Ryzen 5 CPU and the temperature remained above 80°C for several minutes and the build folder had reached 14 GB of occupied space.

I had to stop the process.

It is a really long process, in the moment I'm writing this I'm compiling it from github actions into a repository I use for test porpuses... until now the process is running from 52 minutes... and still have to compile things. See https://github.com/ivan-hc/My-workbench/actions/runs/7729373822 ... now I can see the line 20179... still growing.

I've saved my day using ChaoticAUR: 2 minutes and I have a 208 MB AppImage package.

I'm not very familiar with this browser, and I'll tell you that initially I thought it didn't work because it didn't connect to the internet... but in the end I discovered that search engines are disabled and you have to activate them in the settings. I had a video on YouTube and everything works fine. I must say that as a first approach it is very counterintuitive.

I hope this helps you creating even smaller Archimages.

ivan-hc commented 9 months ago

@brunoalvieira

Instructions to build Ungoogled Chromium from https://aur.archlinux.org/packages/ungoogled-chromium-bin

archimage-cli -s
archimage-cli -b ungoogled-chromium-bin

and

binary = chromium
dependences =
include dependences = N
standard configuration = Y

about 2-3 minutes and you have a 249MB AppImage.