Closed directentis1 closed 7 months ago
My JuNest-based AppImages are Arch Linux containers into an AppImage, they have isolation via Bubblewrap. Being them just containers, they are a guest OS on your host system. So to made external pluginf work with that system, they must be built into that system.
As I've said, this is a container of Arch Linux. If your plugin is in the Arch repositories or on the AUR, it is sufficient to add it into the dependences of the script that creates this AppImage.
Normally I add third-party plugins not in "latest", I can add it in https://github.com/ivan-hc/VLC-appimage/releases/tag/continuous-with-plugins , so let me know the name of the AUR package and I can try o implement it.
The script I use is https://github.com/ivan-hc/VLC-appimage/blob/main/vlc-plugins-junest.sh , you can run this on your PC and the AppImage is created after 2-3 minutes, depending on your internet connection.
If you want to perform your tests before you try to build the AppImage, you can easily install JuNest and install VLC and the plugins you want via pacman or yay. You can follow the instructions at https://github.com/fsquillace/junest
EDIT: found https://aur.archlinux.org/packages/vlc-bittorrent
EDIT2: I've just started a workflow run for this, at https://github.com/ivan-hc/VLC-appimage/actions/runs/8276320353 , when it finishes you can test that AppImage with plugins. Let me know if it works for you.
EDIT3: its ready https://github.com/ivan-hc/VLC-appimage/releases/tag/continuous-with-plugins check it out
@ivan-hc it's great that someone maintained it on AUR, so I can add custom plugins according to your instructions!! https://aur.archlinux.org/packages/vlc-bittorrent
Although it seems a bit outdated (its last version on Github was last Jan 6 - mainly a compatibility issue with library updates.
Thank you for sharing, I will try it right away and give you feedback!
Hey, it's worked like a charm!!!
Just curious, how can I install VLC with plugins versions from appman
? ^^
There are a some of error messages that I noticed most VLC AppImage versions encounter, I guess because the plugins.dat
file - which contains a cache of the plugins loading process (?) - is constantly read/written by libvlc .
Since appimage creates mount points with read only permission, it is presumed that is the cause of these error messages.
just wondering if there is a way to supress them? 🤔️
hmm, a bit of a problem with the magnet links: it seems like they're stuck here... i'll try debug it..
Just run on my Ubuntu 22.04 host, but got this error through the appimage built successful.
Any suggestions for me?
A bit problem with the audio buffer when playing a torrent video. If the connection is unstable for a moment, the sound will break into many parts, almost hearing the sound lost, even though the video stream still works normally.
Hey, it's worked like a charm!!!
Just curious, how can I install VLC with plugins versions from
appman
? ^^
appman -i vlc+
There are a some of error messages that I noticed most VLC AppImage versions encounter, I guess because the
plugins.dat
file - which contains a cache of the plugins loading process (?) - is constantly read/written by libvlc . Since appimage creates mount points with read only permission, it is presumed that is the cause of these error messages.just wondering if there is a way to supress them? 🤔️
maybe we can try to use --bind
to redirect that path to another in ~/.cache, but I'm not sure on how much it would work
Just run on my Ubuntu 22.04 host, but got this error through the appimage built successful.
Any suggestions for me?
it seems to be an issue with Bubblewrap. As I've said in the first comment, it is built into the AppImage to made the Arch Linux container work as a guest on your host system. I don't know what you've done here.
A bit problem with the audio buffer when playing a torrent video. If the connection is unstable for a moment, the sound will break into many parts, almost hearing the sound lost, even though the video stream still works normally.
I think we miss the implementation of other Torrent-related files. During the creation of the AppImage, only the dependences and the dependences of the dependences are extracted and bundled, to prevent the creation of an AppImage of the whole container, because it may reach 600-700 MB or more, in total, if we don't remove some unneeded files.
To include files that may be needed and not contained into the tar packages of Arch Linux, the script have three lines where you can add keywords. Here are those included in the script:
BINSAVED="certificates SAVEBINSPLEASE" # Enter here keywords to find and save in /usr/bin
SHARESAVED="certificates qt java" # Enter here keywords or file/folder names to save in both /usr/share and /usr/lib
LIBSAVED="pk p11 alsa jack libaacs libbluray libbdplus libdvdcss libdvdnav libdvdread pipewire pulse v4l jvm libxtst libxi"
you should execute the AppImage using LD_DEBUG=libs or LD_DEBUG=files or something... to check what are missing files and libraries because you receive these errors.
For example, if it is looking of libtorrent-capocchia.so.123
we can add the keyword "torrent" or "libtorrent" in $LIBSAVED. All files and directories with that keyword in the name will be copied in /usr/lib. The same is if a keyword with "torrent" is needed in /usr/bin, in that case you need to add it in $BINSAVED (I've no keywords saved in /usr/bin, just "certificates", while "SAVEBINSPLEASE" is replaced with sed
when the archimage-cli
program asks it, when you create the script... see https://github.com/ivan-hc/ArchImage ).
Hey, it's worked like a charm!!! Just curious, how can I install VLC with plugins versions from
appman
? ^^appman -i vlc+
Ah, I'm currently using it, but in the package description, it only says it contains Java but doesn't mention it also supports plugins.
Ah, I'm currently using it, but in the package description, it only says it contains Java but doesn't mention it also supports plugins.
"and is open to new feature implementations" means that we can implement whatever we want into it.
EDIT: I hope this is better https://github.com/Portable-Linux-Apps/Portable-Linux-Apps.github.io/commit/46ce1e94fbf20ac0bf6131a9b36696d38846a9c5
Just run on my Ubuntu 22.04 host, but got this error through the appimage built successful. Any suggestions for me?
it seems to be an issue with Bubblewrap. As I've said in the first comment, it is built into the AppImage to made the Arch Linux container work as a guest on your host system. I don't know what you've done here.
Yeah.... I find it a bit confusing that it's the same script file https://github.com/ivan-hc/VLC-appimage/blob/main/vlc-plugins-junest.sh but if I run it directly on my Ubuntu and run it through Github Actions, their size difference is very significant... (about 200 - 400 MB, compared to your AppImage which is only about 180 - 190 MB ) Even though I didn't change anything in my fork...
I've just seen that the launcher was wrong https://github.com/ivan-hc/VLC-appimage/commit/7af79528aefb8f5959b71226561a79cfaeb29f7e this explains the reason because the name has "bittorrent"
However, this cannot explain the reason because your AppImage is so big (and also the bwrap error).
In the earlier days I had this message because some directories were "binded" (i.e. --bind /usr/lib /usr/lib) and Bubblewrap is looking for libraries in the container.
I don't know if this depends on a system installation of Bwrap (it shouldn't, but I've never tested on a system without Bubblewrap).
A bit problem with the audio buffer when playing a torrent video. If the connection is unstable for a moment, the sound will break into many parts, almost hearing the sound lost, even though the video stream still works normally.
I think we miss the implementation of other Torrent-related files. During the creation of the AppImage, only the dependences and the dependences of the dependences are extracted and bundled, to prevent the creation of an AppImage of the whole container, because it may reach 600-700 MB or more, in total, if we don't remove some unneeded files.
To include files that may be needed and not contained into the tar packages of Arch Linux, the script have three lines where you can add keywords. Here are those included in the script:
BINSAVED="certificates SAVEBINSPLEASE" # Enter here keywords to find and save in /usr/bin SHARESAVED="certificates qt java" # Enter here keywords or file/folder names to save in both /usr/share and /usr/lib LIBSAVED="pk p11 alsa jack libaacs libbluray libbdplus libdvdcss libdvdnav libdvdread pipewire pulse v4l jvm libxtst libxi"
you should execute the AppImage using LD_DEBUG=libs or LD_DEBUG=files or something... to check what are missing files and libraries because you receive these errors.
For example, if it is looking of
libtorrent-capocchia.so.123
we can add the keyword "torrent" or "libtorrent" in $LIBSAVED. All files and directories with that keyword in the name will be copied in /usr/lib. The same is if a keyword with "torrent" is needed in /usr/bin, in that case you need to add it in $BINSAVED (I've no keywords saved in /usr/bin, just "certificates", while "SAVEBINSPLEASE" is replaced withsed
when thearchimage-cli
program asks it, when you create the script... see ivan-hc/ArchImage ).
I guess I'll need to dig a bit to find the reason...I think I'll try installing vlc and its plugins on a fresh docker container (ubuntu or arch) and see the differences using docker diff
before and after vlc is completed installed and works normally.
I'm not sure this idea would work... like how the dependency tree works to figure out what needs to be added.
If you are facing issues in compiling the plugion from AUR its because my JuNest build has issues in installing yay
properly. For now none of my AUR-based AppImages can be built. Sorry.
If you are facing issues in compiling the plugion from AUR its because my JuNest build has issues in installing
yay
properly. For now none of my AUR-based AppImages can be built. Sorry.
Thank you for this great project... I was really surprised at first that a single individual could maintain such a large project 😄️
Bugs that arise, I think can be resolved over time, what is needed is patience and support from everyone. 😇️
The "YAY" issue has been fixed, but only for installing packages from the official repositories or ChaoticAUR.
Strangely I'm getting errors regarding the absence of "GZIP" and "STRIP" (binutils) which instead are installed together with the app. It always worked. Now it doesn't work anymore. A couple of other packages don't have this problem, but I think the problem lies at the source. PacMan and the keys have been updated for two days. Until less than 48 hours ago everything was fine.
My luck is that the apps I compile completely or partially from AUR are few, GIMP-GIT, GIMP-DEVEL and Bottles. All the others come from repositories or have very few requirements to be compiled... only VLC-GIT and Firedragon come from ChaoticAUR.
I'm sorry, really. Arch is truly a strange beast.
I closed by mistake.
This is my fork of JuNest, https://github.com/ivan-hc/junest where I keep updated new builds daily.
And these are the apps that gave me problems latelly:
gzip
and strip
, but they are installed) https://github.com/ivan-hc/Bottles-appimage/actions/runs/8312856434
- Bottles (no
gzip
andstrip
, but they are installed) https://github.com/ivan-hc/Bottles-appimage/actions/runs/8312856434
I've solved with it
I think I've solved, also in VLC
I think we've gone too far off topic in this issue.
In case you need to add other plugins, open a new issue.
I just want to use VLC with some addons, like as GitHub - johang/vlc-bittorrent: A bittorrent plugin for VLC., but it can not be run outside the AppImage.
Just tried as
$ VLC_PLUGIN_PATH=/tmp/vlc/lib vlc --no-plugins-cache video.torrent
compare to$ VLC_PLUGIN_PATH=/tmp/vlc/lib vlc.AppImage --no-plugins-cache video.torrent
, the former works fine (with VLC installed from the PPA) but the latter doesn't...I tried uncompressing Vlc.AppImage and guessed it was a problem of linking or environment variables and dependencies. But I'm not familiar with that, can you give me a hint?