NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

AppImage: ODA OpenIFCViewer almost works



FWIW, I tried to test if the Linux version of the ODA OpenIFCviewer
will work under NetBSD current (amd64) in emulation mode.

It happens that, by being "bold", it "almost" works.

The viewer is provided as an AppImage:

OpenIFCViewer_QT6_lnxX64_8.3dll_25.8.AppImage

When trying to run it, it complains about the FUSE linux kernel module
not being loaded. I simply bypassed this by extracting the files:

$ ./OpenIFCViewer_QT6_lnxX64_8.3dll_25.8.AppImage --appimage-extract

Under the extracted tarball (squashfs-root/), looking at the
executable usr/bin/OpenIFCViewer:

$ readelf -d usr/bin/OpenIFCViewer

shows this information about the runpath:

 0x000000000000001d (RUNPATH)            Library runpath: [$ORIGIN/../lib:$ORIGIN:$ORIGIN/lib]

that is, the executable searches also the libraries in its directory
and in directories relative to its directory.

By trial and error, I retrieved the list of libraries not provided but
required (error messages).

So one has only to find which (I used Suse packages) Suse package
provides the library and to add the libraries whether to
/emul/linux/lib64/ (the node is amd64), or in the tarball subdir
since the elf loader is instructed to look here also.

I added the libraries from the following packages (by using rpm2pkg;
and these are supplementary to suse base, expat, x11, libdrm and glx
existing in pkgsrc):

Mesa-dri-24.1.7-391.1.x86_64.rpm
Mesa-libGL-devel-32bit-22.3.5-150500.75.2.x86_64.rpm
Mesa-libGL1-24.1.7-391.1.x86_64.rpm
fontconfig-2.15.0-2.1.x86_64.rpm
glibc-2.38-150600.12.1.x86_64.rpm
libGLU1-9.0.3-2.4.x86_64.rpm
libbz2-1-1.0.8-150400.1.122.x86_64.rpm
libfontconfig1-2.13.1-150400.1.4.x86_64.rpm
libfreetype6-2.10.4-150000.4.15.1.x86_64.rpm
libxml2-2-2.12.9-1.1.x86_64.rpm

Of course, it uses Mesa and the dedicated cards modules fail: it
falls back to software rendering (swrast), but it works---with some
imperfections:

First, the file explorer doesn't show neither directories nor files.
It shows the root (because probably it is a default) and the
"/home/$user" (probably a default too) but is unable to walk any path

=> the solution is to provide the pathname of the IFC file to render
as an argument to the executable.

	Has someone any clue as why it should be unable to retrieve a
	listing of what is mounted?

The second problem, is that the rendering by default has problems.

Initially, the window with the rendering is black, flicking. By
passing the cursor accross it and dragging, one sees, by instants, that
the data is indeed rendered.

In this window, right-clicking (contextual menu) and selecting "Device
state" fixes the thing. And then the rendering is shown and one can
manipulate the view.

Finally, there are messages about:

qt.qpa.xcb: failed to mmap segment from X server (9: Bad file descriptor) for size 640000

(apparently, the program uses shm)

Is there a way to obtain more informations about a Linux executable
running under emulation to track what it is trying to mmap?

-- 
        Thierry Laronde <tlaronde +AT+ kergis +dot+ com>
                     http://www.kergis.com/
                    http://kertex.kergis.com/
Key fingerprint = 0FF7 E906 FBAF FE95 FD89  250D 52B1 AE95 6006 F40C


Home | Main Index | Thread Index | Old Index