SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
This Appimage works in some system or it would hardly be released, but fails in Slackware giving this output in an xterm
Code:
./InVesalius-3.1.1-.glibc2.15-x86_64.AppImage
zenity, kdialog, Xdialog missing. Skipping /tmp/.mount_InVesaHwYrHC/usr/bin//invesalius3.wrapper.
Traceback (most recent call last):
File "app.py", line 37, in <module>
import wx
File "/tmp/.mount_InVesaHwYrHC/usr/lib/python2.7/dist-packages/wx-3.0-gtk2/wx/__init__.py", line 49, in <module>
from wx._core import *
File "/tmp/.mount_InVesaHwYrHC/usr/lib/python2.7/dist-packages/wx-3.0-gtk2/wx/_core.py", line 4, in <module>
import _core_
ImportError: /usr/lib64/libfontconfig.so.1: undefined symbol: FT_Done_MM_Var
And, while I'm at it, this isn't marvellously helpful either:
Code:
bash-4.4$ file InVesalius-3.1.1-.glibc2.15-x86_64.AppImage
InVesalius-3.1.1-.glibc2.15-x86_64.AppImage: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=d4b0eeecada37bbc753023885a3f0f7e3bdac6cc, stripped
bash-4.4$ ldd InVesalius-3.1.1-.glibc2.15-x86_64.AppImage
not a dynamic executable
So those basic tools are arguing :-o. As you see from This Link The developer hasn't huge experience of Appimages, and it remains an open issue on Github.
Invesalius is a Brazilian thing (available in Portuguese) for MRI & CT scans. It's heavily Python based, dependant on wxwidgets (sore point that). It barfs differently in Mint, which has the dependencies and an installed Invesalius package which actually works. That's in the github thread.
Last edited by business_kid; 02-26-2019 at 08:38 AM.
Tell them to put libfontconfig.so.1 in the AppImage. That's the correct way to fix it.
If you want to just run the AppImage now, get a copy of that file from a supported distribution (say, from packages.ubuntu.com) and use LIBRARY_PATH to get the AppImage to load it.
Also, install Zenity if you haven't already.
I do have some experience debugging other people's AppImages, btw:
Hi Guys. Thanks Dugan & trite. I installed xdialog (fewer dependencies).
@Dugan:
Code:
bash-4.4$ export LD_LIBRARY_PATH=/usr/lib64
bash-4.4$ export LIBRARY_PATH=/usr/lib64
bash-4.4$ ./InVesalius-3.1.1-.glibc2.15-x86_64.AppImage
Fontconfig error: "/etc/fonts/local.conf", line 1: unclosed token
Fontconfig error: "/etc/fonts/local.conf", line 1: unclosed token
Traceback (most recent call last):
File "app.py", line 37, in <module>
import wx
File "/tmp/.mount_InVesaW3QgUO/usr/lib/python2.7/dist-packages/wx-3.0-gtk2/wx/__init__.py", line 49, in <module>
from wx._core import *
File "/tmp/.mount_InVesaW3QgUO/usr/lib/python2.7/dist-packages/wx-3.0-gtk2/wx/_core.py", line 4, in <module>
import _core_
ImportError: /usr/lib64/libfontconfig.so.1: undefined symbol: FT_Done_MM_Var
bash-4.4$ grep FT_Done_MM_Var /usr/lib64/libfontconfig.so.1
Binary file /usr/lib64/libfontconfig.so.1 matches
Thanks, but it seems like I'm not there yet
@trite:
Code:
bash-4.4$ LD_PRELOAD=/usr/lib64/libfreetype.so ./InVesalius-3.1.1-.glibc2.15-x86_64.AppImage
Fontconfig error: "/etc/fonts/local.conf", line 1: unclosed token
Fontconfig error: "/etc/fonts/local.conf", line 1: unclosed token
Traceback (most recent call last):
File "app.py", line 37, in <module>
import wx
File "/tmp/.mount_InVesaZoJjWH/usr/lib/python2.7/dist-packages/wx-3.0-gtk2/wx/__init__.py", line 49, in <module>
from wx._core import *
File "/tmp/.mount_InVesaZoJjWH/usr/lib/python2.7/dist-packages/wx-3.0-gtk2/wx/_core.py", line 4, in <module>
import _core_
ImportError: /usr/lib64/libpangoft2-1.0.so.0: undefined symbol: hb_font_set_variations
Thanks for the quick google. This gets me past the libfontconfig error, only to puke on libpangoft2-1.0.so.0. I also got the 2 dialog boxes I should get. I believe the font errors are due to my non-standard fonts, which is my error and mine alone. Have to vanish now but I will try preloading libpangoft2-1.0.so.0 also. There's an issue here that I have glibc-2.28, and the AppImage is glibc-2.15, so the less I stick in the better.
I agree with Dugan on this, the maintainer of the AppImage should include all the needed libraries in the AppImage.
If you will get ubuntu/debian packages I can recommend deb2tgz to convert and then install. It will probably put files in /usr/lib/x86_64-linux-gnu/ and you can get them from there.
As you might have gathered, it's good to know that I screwed up following your instructions. This got me past that error
LD_PRELOAD=/usr/lib64/libfreetype.so ./AppImage
Now Mint and Slackware puke in the same spot, undefined symbol in libpangoft2. Any attempt to preload any pango lib throws a segfault, which is colourful and entertaining, but a definite 'hands off.' I have the use on Invesalius any time I care to reboot into Mint without the AppImage.
What makes this a mess is that it's a python app heavily dependent on wxWidgets-4.x and other modules; wxWidgets itself has multiple dependencies. The main apps are shells running processes, then suddenly something pukes on some pretext, and nobody has a breeze what it was or why, just where the error appeared. I can't relate libraries to python apps. And instead of executables calling libs, there's python modules calling libs. It's all text stuff that's falling over, and the first text wee see by a long chalk is the title in the Splash Screen. Further, 'Undefined Symbol' errors usually indicate a required library is too old; But mine are newer than the AppImage :-/.
GitHub Bug Thread The maintainer is trying a FlatPack Image. Good of him to try, but I've no confidence the flat will be much better. And trying a flatpack because your AppImage pukes……
To wander back on subject, it seems there's no handy way to debug this. The usual thing would be to compile --with-debug, run gdb, and send the resulting mess off to the developer who could narrow it down significantly. Nothing like that in Python?
The libpangoft2 error is actually because of harfbuzz. The harfbuzz package in Slackware-14.2 doesn't have the hb_font_set_variations method. I think this means they should have included libpangoft2 in the AppImage, or you can use dugan's trick for it, e.g.:
These are the packages that I have that contains this symbol.
Code:
Bash$ slackpkg file-search libpangoft2-1.0.so*
NOTICE: pkglist is older than 24h; you are encouraged to re-run 'slackpkg update'
Looking for libpangoft2-1\.0\.so* in package list. Please wait... DONE
The list below shows the packages that contains "libpangoft2-1\.0\.so*" file.
[ Status ] [ Repository ] [ Package ]
installed multilib pango-compat32-1.42.4-x86_64-1compat32
installed slackware64 pango-1.42.4-x86_64-1
You can search specific packages using "slackpkg search package".
What version do you have? Maybe its in the appimage that the pango is too old or something.
Bleh nvm I just read your post more carefully and you said it segfaults when preloading this lib so... doh d:
-current's pango has that symbol, but 14.2's doesn't. (At least, I believe that is the case. I can't be certain because my machine is a bit of a mashup at the moment, and I have updated harfbuzz and pango. But hb_font_set_variations is not in the harfbuzz source for the version included in 14.2.)
MY system has the libpango symbol. I have Current of December 2018. It proved to be a well behaved setup, so I kept the iso, as current al;ways changes. Preloading anything pango-related for the AppImage threw a segfault.
The maintainer is an AppImage newbie, using a RH system AFAICT. Maybe he has a couple of distros, but they don't include Slackware. He is vaguely promising to sort this, but I'm not holding my breath.
He has set up a flatpak repository, and Flatpak also has git repositories (one per utility). Documentation for all 3 occupies less space than the back of 1 bus ticket :-/. I offered to test a binary, if he comes up with one.
Installing xdialog got me some startup questions, after the AppImage had mounted itself. I started it again, didn't answer the questions, and hopped to a root terminal to try and mount the thing. The result was nothing short of WEIRD - like Twilight Zone weird, or Bermuda Triangle Weird.
Code:
bash-4.4$ ls -l /tmp/.mount*
total 20
-rwxrwxr-x 1 root root 8840 Aug 10 2017 AppRun
drwxr-xr-x 10 root root 0 Jan 22 2016 etc
-rw-r--r-- 1 root root 354 Aug 10 2017 invesalius-3.1.1.desktop
-rw-r--r-- 1 root root 11290 Aug 10 2017 invesalius.xpm
drwxr-xr-x 3 root root 0 Sep 13 2015 lib
drwxr-xr-x 2 root root 0 Oct 23 2015 sbin
drwxr-xr-x 6 root root 0 Aug 10 2017 usr
bash-4.4$ sudo cp -av /tmp/.mount*/* .
cp: cannot stat '/tmp/.mount_InVesaoDXelR/AppRun': Permission denied
cp: cannot stat '/tmp/.mount_InVesaoDXelR/etc': Permission denied
cp: cannot stat '/tmp/.mount_InVesaoDXelR/invesalius-3.1.1.desktop': Permission denied
cp: cannot stat '/tmp/.mount_InVesaoDXelR/invesalius.xpm': Permission denied
cp: cannot stat '/tmp/.mount_InVesaoDXelR/lib': Permission denied
cp: cannot stat '/tmp/.mount_InVesaoDXelR/sbin': Permission denied
cp: cannot stat '/tmp/.mount_InVesaoDXelR/usr': Permission denied
bash-4.4$ ls -al /tmp
……
drwxr-xr-x 6 root root 0 Aug 10 2017 .mount_InVesaoDXelR
But in a runlevel 3 root console with root logged in, I get
Code:
d????????? ? ? ? ? ? ? .mount_InVesaoDXelR
All file operations are prohibited. The directory entry is invisible if I open it in vim, but the luser in X can run things out of it. Directories with a size of 0 bytes (in /tmp/mount_InVesaoDXelR) are also weird
EDIT: I got educated by Jesuits, and thus acquired an ability to be unbelievably labyrinthine in my thinking and sneaky to boot. I mounted a vfat usb key on /tmp, started the Appimage, and pulled it when the Appimage asked a question. I got myself permissions that way, but the directory was empty; evidently, there's links created to the AppImage. There was even an entry in /etc/mtab
MY system has the libpango symbol. I have Current of December 2018. It proved to be a well behaved setup, so I kept the iso, as current al;ways changes. Preloading anything pango-related for the AppImage threw a segfault.
In that case, I'm stumped. I read some of your issue on GitHub, and I noticed this statement:
Quote:
This means I have to Install geoclue2, woff2, hyphen, libwebp (and THEIR dependencies, and 2nd generation dependencies, etc).
Then install webkit2gtk.
Any reason you can't get those things from SBo? It should be a fairly simple matter using one of the tools like sbopkg, sbotools, sboui, slackrepo, etc.
Nothing is insuperable if you are determined enough, it's true.
Typically, these dependencies poorly supported archives with out of date slackbuilds which are dodgy compiles. Wxwidgets was 2.5G building when it crapped out.
So I had to install those (4 apps) and their dependencies and possibly dependencies of dependencies - say 10 apps total, to get webkit2gtk, which is simply one dependency of wxwidgets. This is an aspect of slackware I absolutely hate. There was a much easier way for me: REBOOT. That will bring me up in Mint, where apt will look after all that crap. That's what I keep Mint for.
As for you being stumped, Thanks for applying your considerable intelligence and experience to this all this. I imagine, like the libfontconfig error was overcome by preloading libfreetype, there is some other lib that needs to be preloaded. If I could get a list of libs used, that might allow a wild guess, but I can't get such a list, and I don't need to. The maintainer is having another go at the appimage. He apparently also built a flatpak and tried to upload it, but wherever he was trying it wouldn't take 250MB.
As for the Python apps, I decided I needed Freecad once, and faced the same thing. Dodgy slackbuilds failing to compile for the lack of something else. In Mint, I typed 'sudo apt-get install freecad.' Freecad, and 25 dependencies were installed painlessly. That's the way to go.
On Slackware, half the stuff in Alien Bob's repo(e.g wine, libreoffice) should be on the dvd, the other half (which is unmaintained) should be deleted, along with the crap on the dvd (19 crappy console text editors, 13 console irc clients, 10,000 fixed width X fonts, gopher and finger servers, etc.). Once the manpower is there, they'll have to do mk2 on the package manager.
The reason is that the OP is runnning -current, not supported by SBo.
Which he didn't realize, so he just keeps complaining about Slackware and SBo without any rationale.
@business_kid: the dependencies listed in the <package.info> files @ SBo are checked only for Slackware version 14.2, so complaining about them when running -current is very unfair.
Last edited by Didier Spaier; 03-01-2019 at 07:13 AM.
On Slackware, half the stuff in Alien Bob's repo(e.g wine, libreoffice) should be on the dvd, the other half (which is unmaintained) should be deleted, along with the crap on the dvd (19 crappy console text editors, 13 console irc clients, 10,000 fixed width X fonts, gopher and finger servers, etc.). Once the manpower is there, they'll have to do mk2 on the package manager.
Please spare us these pointless rants, which do not help anybody, not even yourself.
Last edited by Didier Spaier; 03-01-2019 at 07:13 AM.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.