Slimjet-Portable - Problem with shared objects at runtime ?

Moderator: BarryK

Post Reply
Caramel
Posts: 476
Joined: Sun Oct 02, 2022 6:25 pm
Location: France
Has thanked: 100 times
Been thanked: 78 times

Slimjet-Portable - Problem with shared objects at runtime ?

Post 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)

User avatar
BarryK
Posts: 2692
Joined: Tue Dec 24, 2019 1:04 pm
Has thanked: 132 times
Been thanked: 738 times

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

Post by BarryK »

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

Caramel
Posts: 476
Joined: Sun Oct 02, 2022 6:25 pm
Location: France
Has thanked: 100 times
Been thanked: 78 times

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

Post 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

User avatar
mikewalsh
Moderator
Posts: 6161
Joined: Tue Dec 03, 2019 1:40 pm
Location: King's Lynn, UK
Has thanked: 795 times
Been thanked: 1981 times

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

Post 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. ;)

Caramel
Posts: 476
Joined: Sun Oct 02, 2022 6:25 pm
Location: France
Has thanked: 100 times
Been thanked: 78 times

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

Post 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 ?

Post Reply

Return to “EasyOS”