Page 1 of 1

Slimjet-Portable - Problem with shared objects at runtime ?

Posted: Thu Jul 04, 2024 4:02 pm
by Caramel

- Slimjet-portable from @mikewalsh is available here : viewtopic.php?t=3684

- A problem with the dead keys in EasyOS was evoked previously (viewtopic.php?p=124968#p124968)

- The script (flashpeak-slimjet) that launches the executable slimjet uses the environment variable LD_LIBRARY_PATH to add shared objects (files .so) to run slimjet.

The oddity is the command lsof seems to indicate that slimjet uses some .so files from EasyOS while it should use .so files from the directory Slimjet-portable64.

(Easy do not use LD_LIBRARY_PATH but only etc/ld.so.conf. LD_LIBRARY_PATH has priority according to the man page https://man7.org/linux/man-pages/man8/ld.so.8.html)


Re: Slimjet-Portable - Problem with shared objects at runtime ?

Posted: Fri Jul 05, 2024 1:25 am
by BarryK

That's right, if you put something in LD_LIBRARY_PATH it will have priority.
That has always worked for me.


Re: Slimjet-Portable - Problem with shared objects at runtime ?

Posted: Fri Jul 05, 2024 3:08 pm
by Caramel
Caramel wrote: Thu Jul 04, 2024 4:02 pm

- The script (flashpeak-slimjet) that launches the executable slimjet uses the environment variable LD_LIBRARY_PATH to add shared objects (files .so) to run slimjet.

The oddity is the command lsof seems to indicate that slimjet uses some .so files from EasyOS while it should use .so files from the directory Slimjet-portable64.

(Easy do not use LD_LIBRARY_PATH but only etc/ld.so.conf. LD_LIBRARY_PATH has priority according to the man page https://man7.org/linux/man-pages/man8/ld.so.8.html)

The mystery has moved from EasyOS to the puppy distro f96ce_xfce_fusilli

The .so files from the directory Slimjet-portable64 that are not used by slimjet are in a subfolder nss of the folder lib

This subfolder is not added to LD_LIBRARY_PATH in the script flashpeak-slimjet

Here is the line 29 of flashpeak-slimjet :

Code: Select all

export LD_LIBRARY_PATH="$HERE:$HERE/lib:$HERE/lib.target${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"

To a intended usage of slimjet portable in Easy, this line should be :

Code: Select all

export LD_LIBRARY_PATH="$HERE:$HERE/lib:$HERE/lib/nss"

There is no more oddity from EasyOS but a new mystery.

What is the "lib.target" in the line code and why this code works with f96ce_xfce_fusilli ?
I stop the search. If someone has the answer, please share it


Re: Slimjet-Portable - Problem with shared objects at runtime ?

Posted: Fri Jul 05, 2024 5:14 pm
by mikewalsh

@Caramel / @BarryK :-

Can you clarify, please, guys? Is this MY 'portable' you're talking about.....or did somebody take it and produce a modified version for EasyOS? Because MY launch script certainly doesn't include 'lsof'. (???)

What IS 'lsof'? I don't know what that means. What does it even do?

I guess you're talking about the script inside the 'slimjet' directory, yes? We found that we HAD to use the script supplied by Flashpeak (albeit in slightly modified format), for the simple reason that the browser refuses to start unless you start it with a script called 'flashpeak-slimjet'. I don't know how they've achieved this; I've tried using one of my usual launch scripts for these browsers, renaming it to 'flashpeak-slimjet'.......and it refused to play ball. Didn't want to know. So MY guess is that they've somehow compiled the main shared library to expect to see certain things within that launch "wrapper".

Rather than painstakingly trying to dissect that wrapper script to find out just what the browser WAS looking for, it was far simpler to just USE it, as-is.....and modify where necessary. So most of that wrapper script is as supplied by Flashpeak.......itself a modified version of one of the older Chrome/Chromium wrappers.

Does that answer your question? I'm no coding genius; I take what's supplied, modifying where necessary, and sometimes adding extra stuff if it's indicated.

As for 'libtarget'? I have NO idea. AT all. Probably a simple answer, but I don't know it.

Mike. ;)


Re: Slimjet-Portable - Problem with shared objects at runtime ?

Posted: Fri Jul 05, 2024 6:16 pm
by Caramel
mikewalsh wrote: Fri Jul 05, 2024 5:14 pm

@Caramel / @BarryK :-

Can you clarify, please, guys? Is this MY 'portable' you're talking about.....or did somebody take it and produce a modified version for EasyOS? Because MY launch script certainly doesn't include 'lsof'. (???)

What IS 'lsof'? I don't know what that means. What does it even do?

I guess you're talking about the script inside the 'slimjet' directory, yes? We found that we HAD to use the script supplied by Flashpeak (albeit in slightly modified format), for the simple reason that the browser refuses to start unless you start it with a script called 'flashpeak-slimjet'. I don't know how they've achieved this; I've tried using one of my usual launch scripts for these browsers, renaming it to 'flashpeak-slimjet'.......and it refused to play ball. Didn't want to know. So MY guess is that they've somehow compiled the main shared library to expect to see certain things within that launch "wrapper".

Rather than painstakingly trying to dissect that wrapper script to find out just what the browser WAS looking for, it was far simpler to just USE it, as-is.....and modify where necessary. So most of that wrapper script is as supplied by Flashpeak.......itself a modified version of one of the older Chrome/Chromium wrappers.

Does that answer your question? I'm no coding genius; I take what's supplied, modifying where necessary, and sometimes adding extra stuff if it's indicated.

As for 'libtarget'? I have NO idea. AT all. Probably a simple answer, but I don't know it.

Mike. ;)

It's your portable version, but used in EasyOS (6.0.2)

In Easy when slimjet is runned as root, some keys of the keyboard do not work correctly (see viewtopic.php?p=124213#p124213)
To try to understand I used the command "lsof -c slimjet" (in a new terminal) to list the files opened by slimjet (when slimjet runs)
With this method I didn't find anything about the keyboard but a problem with the libraries used by slimjet appeared. (Some libraries provided by Slimjet was not used by Slimjet. Instead it used the OS libraries)

The line in the code with lib.target is in the original flatpeak-slimjet script (that is in the archive available at the slimjet site)

This line code do not work as desired in EasyOS but works in f96ce_xfce_fusilli. Maybe it's because LD_LIBRARY_PATH is undefined in EasyOS and not in the other distro ?