Thanks to visit codestin.com
Credit goes to github.com

Skip to content

GStreamer plugin fails with latest release (2025-02-13) #314

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
CJYate opened this issue Apr 29, 2025 · 7 comments
Open

GStreamer plugin fails with latest release (2025-02-13) #314

CJYate opened this issue Apr 29, 2025 · 7 comments

Comments

@CJYate
Copy link

CJYate commented Apr 29, 2025

Using the 2025-02-13 build of linuxdeploy, I'm unable to install the gstreamer plugin.

linuxdeploy-x86_64-Alpha-2025-02-13.AppImage --appdir squashfs-root --plugin gstreamer -d ./MyApp.desktop --icon-file MyApp.png

As far as I can determine, the location of the gstreamer plugin file doesn't make any difference.

Snipped output:

(snip)
-- Running input plugin: gstreamer -- 
ERROR: Could not find plugin: gstreamer 

--------

(snipped Gstreamer output:)

...
[gstreamer/stdout]
[gstreamer/stdout] -- Copying files into AppDir --
[gstreamer/stdout]
[gstreamer/stdout] -- Deploying files into AppDir root directory --
[gstreamer/stdout] WARNING: No desktop file specified, using first desktop file found: squashfs-root/usr/share/applications/MyApp.desktop
[gstreamer/stdout] Deploying files to AppDir root using desktop file: squashfs-root/usr/share/applications/MyApp.desktop
[gstreamer/stdout] Deploying desktop file to AppDir root: squashfs-root/usr/share/applications/MyApp.desktop
[gstreamer/stdout] Creating symlink for file squashfs-root/usr/share/applications/MyApp.desktop in/as squashfs-root
[gstreamer/stdout] ERROR: Could not find icon executable for Icon entry: MyApp

ERROR: Failed to run plugin: gstreamer (exit code: 1)

The same action with the 2024-07-01 build succeeds:

linuxdeploy-x86_64-Alpha-2024-07-01.AppImage --appdir squashfs-root --plugin gstreamer -d ./MyApp.desktop --icon-file MyApp.png

...
[gstreamer/stdout] Manually setting rpath for squashfs-root/usr/lib/gstreamer1.0/gstreamer-1.0/gst-completion-helper
[gstreamer/stdout] Manually setting rpath for squashfs-root/usr/lib/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner
[gstreamer/stdout] Manually setting rpath for squashfs-root/usr/lib/gstreamer1.0/gstreamer-1.0/gst-ptp-helper
[gstreamer/stdout] Installing AppRun hook

-- Deploying icons -- 
Deploying icon MyApp.png 
WARNING: Could not find copyright files for file MyApp.png using dpkg-query 

-- Deploying desktop files -- 
Deploying desktop file ./MyApp.desktop 

-- Copying files into AppDir -- 
Copying file ./MyApp.desktop to squashfs-root/usr/share/applications/MyApp.desktop 
Copying file MyApp.png to squashfs-root/usr/share/icons/hicolor/256x256/apps/MyApp.png 

-- Deploying files into AppDir root directory -- 
Deploying files to AppDir root using desktop file: squashfs-root/usr/share/applications/MyApp.desktop 
Deploying desktop file to AppDir root: squashfs-root/usr/share/applications/MyApp.desktop 
Creating symlink for file squashfs-root/usr/share/applications/MyApp.desktop in/as squashfs-root 
Deploying icon to AppDir root: squashfs-root/usr/share/icons/hicolor/256x256/apps/MyApp.png 
Creating symlink for file squashfs-root/usr/share/icons/hicolor/256x256/apps/MyApp.png in/as squashfs-root 
Deploying AppRun symlink for executable in AppDir root: squashfs-root/usr/bin/MyApp 
Creating symlink for file squashfs-root/usr/bin/MyApp in/as squashfs-root/AppRun 

Full output and an example of my desktop file.

Log-2025-02-13.txt
Log-2024-07-01.txt
MyApp.desktop.txt

@CJYate
Copy link
Author

CJYate commented Apr 29, 2025

(The 2024-01-09 build also fails)

@TheAssassin
Copy link
Member

Please re-run with -v0 and check the initial linuxdeploy log whether it the gstreamer plugin file was found even. Please make sure it's executable.

@CJYate
Copy link
Author

CJYate commented Apr 29, 2025

The top of the log: That plugin is found (and it's executable).

DEBUG: subprocess /home/username/.vs/project/build-linux-ninja-clang-release-installer/Release/InstallerOutput/linuxdeploy-plugin-gstreamer.sh --plugin-type failed with exit code 1 
DEBUG: stdout: Invalid argument: --plugin-type

Usage: /home/username/.vs/project/build-linux-ninja-clang-release-installer/Release/InstallerOutput/linuxdeploy-plugin-gstreamer.sh --appdir <path to AppDir>

Bundles GStreamer plugins into an AppDir

Required variables:
  LINUXDEPLOY=".../linuxdeploy" path to linuxdeploy (e.g., AppImage); set automatically when plugin is run directly by linuxdeploy

Optional variables:
  GSTREAMER_INCLUDE_BAD_PLUGINS="1" (default: disabled; set to empty string or unset to disable)
  GSTREAMER_PLUGINS_DIR="..." (directory containing GStreamer plugins; default: guessed based on main distro architecture)
  GSTREAMER_HELPERS_DIR="..." (directory containing GStreamer helper tools like gst-plugin-scanner; default: guessed based on main distro architecture)
  GSTREAMER_VERSION="1.0" (default: 1.0)
 
DEBUG: stderr: (no output) 
DEBUG: Found plugin 'gstreamer': /home/username/.vs/project/build-linux-ninja-clang-release-installer/Release/InstallerOutput/linuxdeploy-plugin-gstreamer.sh 
DEBUG: Already found gstreamer plugin in /home/username/.vs/project/build-linux-ninja-clang-release-installer/BuildTools/linuxdeploy-plugin-gstreamer.sh 
DEBUG: Using dpkg-query to search for copyright files 

-- Creating basic AppDir structure -- 
Creating directory ./squashfs-root/usr/bin/ 
Creating directory ./squashfs-root/usr/lib/ 
Creating directory ./squashfs-root/usr/share/applications/ 
Creating directory ./squashfs-root/usr/share/icons/hicolor/ 
Creating directory ./squashfs-root/usr/share/icons/hicolor/16x16/apps/ 
Creating directory ./squashfs-root/usr/share/icons/hicolor/32x32/apps/ 
Creating directory ./squashfs-root/usr/share/icons/hicolor/64x64/apps/ 
Creating directory ./squashfs-root/usr/share/icons/hicolor/128x128/apps/ 
Creating directory ./squashfs-root/usr/share/icons/hicolor/256x256/apps/ 
Creating directory ./squashfs-root/usr/share/icons/hicolor/scalable/apps/ 

-- Deploying dependencies for existing files in AppDir -- 

The end of the log is as the failing one above: confusingly, since I've specified a desktop file (and icon file) on the command line, it complains about not finding them.

[gstreamer/stdout] Setting rpath in ELF file ./squashfs-root/usr/lib/libzimg.so.2 to $ORIGIN 
[gstreamer/stdout] Setting rpath in ELF file ./squashfs-root/usr/lib/libzmq.so.5 to $ORIGIN 
[gstreamer/stdout] Setting rpath in ELF file ./squashfs-root/usr/lib/libzstd.so.1 to $ORIGIN 
[gstreamer/stdout] Setting rpath in ELF file ./squashfs-root/usr/lib/libzvbi.so.0 to $ORIGIN 
[gstreamer/stdout] 
[gstreamer/stdout] -- Copying files into AppDir -- 
[gstreamer/stdout] 
[gstreamer/stdout] -- Deploying files into AppDir root directory -- 
[gstreamer/stdout] WARNING: No desktop file specified, using first desktop file found: ./squashfs-root/usr/share/applications/MyApp.desktop 
[gstreamer/stdout] Deploying files to AppDir root using desktop file: ./squashfs-root/usr/share/applications/MyApp.desktop 
[gstreamer/stdout] Deploying desktop file to AppDir root: ./squashfs-root/usr/share/applications/MyApp.desktop 
[gstreamer/stdout] Creating symlink for file ./squashfs-root/usr/share/applications/MyApp.desktop in/as ./squashfs-root 
[gstreamer/stdout] ERROR: Could not find icon executable for Icon entry: MyApp 
ERROR: Failed to run plugin: gstreamer (exit code: 1) 
error at line 72 in /home/username/.vs/project/build-linux-ninja-clang-release-installer/BuildTools/linuxappimage.sh

@CJYate
Copy link
Author

CJYate commented Apr 30, 2025

Update: I've stripped this right back to a very minimal test with a completely empty target folder.

This doesn't work, but indicates there may be something about my deployment staging folder that's causing an issue. I'd appreciate a pointer in terms of what's wrong, if you can help?

The other answers I've seen for this say to check line endings on the .desktop file -- this isn't the issue. The error messages are quite hard to interpret :-(

[gstreamer/stdout] Manually setting rpath for currentVersion/usr/lib/gstreamer-1.0/libgsty4menc.so
[gstreamer/stdout] Manually setting rpath for currentVersion/usr/lib/gstreamer-1.0/libgstzbar.so
[gstreamer/stdout] Manually setting rpath for currentVersion/usr/lib/gstreamer-1.0/libgstzxing.so
[gstreamer/stdout] Copying helpers in currentVersion/usr/lib/gstreamer1.0/gstreamer-1.0
[gstreamer/stdout] Copying helper: /usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-codec-info-1.0
[gstreamer/stdout] Copying helper: /usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-completion-helper
[gstreamer/stdout] Copying helper: /usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner
[gstreamer/stdout] Copying helper: /usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-ptp-helper
[gstreamer/stdout] Manually setting rpath for currentVersion/usr/lib/gstreamer1.0/gstreamer-1.0/gst-codec-info-1.0
[gstreamer/stdout] Manually setting rpath for currentVersion/usr/lib/gstreamer1.0/gstreamer-1.0/gst-completion-helper
[gstreamer/stdout] Manually setting rpath for currentVersion/usr/lib/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner
[gstreamer/stdout] Manually setting rpath for currentVersion/usr/lib/gstreamer1.0/gstreamer-1.0/gst-ptp-helper
[gstreamer/stdout] Installing AppRun hook

-- Deploying icons --
Deploying icon MyApp.png
WARNING: Could not find copyright files for file MyApp.png using dpkg-query

-- Deploying desktop files --
Deploying desktop file MyApp.desktop

-- Copying files into AppDir --
Copying file MyApp.desktop to currentVersion/usr/share/applications/MyApp.desktop
Copying file MyApp.png to currentVersion/usr/share/icons/hicolor/256x256/apps/MyApp.png

-- Deploying files into AppDir root directory --
Deploying files to AppDir root using desktop file: currentVersion/usr/share/applications/MyApp.desktop
Deploying desktop file to AppDir root: currentVersion/usr/share/applications/MyApp.desktop
Creating symlink for file currentVersion/usr/share/applications/MyApp.desktop in/as currentVersion
 RROR: Could not find suitable icon for Icon entry: MyApp

@TheAssassin
Copy link
Member

It's good to see that the gstreamer plugin is running now.

Regarding the icon entry, that looks like a bug. Could you upload your zipped AppDir, please?

@CJYate
Copy link
Author

CJYate commented May 1, 2025

Here's a zipped example - a Hello World app, a 256x256 white icon, and script to create the appdir (which I've also included).

Run the test.sh: this expects the linuxdeploy appimage in the same directory

Example.tar.gz

$ ./test.sh
linuxdeploy version 1-alpha (git commit ID c28054b), GitHub actions build 307 built on 2025-04-01 01:43:45 UTC

-- Creating basic AppDir structure --
Creating directory testApp/usr/bin/
Creating directory testApp/usr/lib/
Creating directory testApp/usr/share/applications/
Creating directory testApp/usr/share/icons/hicolor/
Creating directory testApp/usr/share/icons/hicolor/16x16/apps/
Creating directory testApp/usr/share/icons/hicolor/32x32/apps/
Creating directory testApp/usr/share/icons/hicolor/64x64/apps/
Creating directory testApp/usr/share/icons/hicolor/128x128/apps/
Creating directory testApp/usr/share/icons/hicolor/256x256/apps/
Creating directory testApp/usr/share/icons/hicolor/scalable/apps/

-- Deploying dependencies for existing files in AppDir --
Deploying dependencies for ELF file testApp/usr/bin/MyApp
Skipping deployment of blacklisted library /lib/x86_64-linux-gnu/libstdc++.so.6
Skipping deployment of blacklisted library /lib/x86_64-linux-gnu/libc.so.6
Skipping deployment of blacklisted library /lib/x86_64-linux-gnu/libm.so.6
Skipping deployment of blacklisted library /lib/x86_64-linux-gnu/libgcc_s.so.1

-- Copying files into AppDir --
Setting rpath in ELF file testApp/usr/bin/MyApp to $ORIGIN/../lib

-- Deploying desktop files --
Deploying desktop file MyApp.desktop

-- Copying files into AppDir --
Copying file MyApp.desktop to testApp/usr/share/applications/MyApp.desktop

-- Deploying files into AppDir root directory --
Deploying files to AppDir root using desktop file: testApp/usr/share/applications/MyApp.desktop
Deploying desktop file to AppDir root: testApp/usr/share/applications/MyApp.desktop
Creating symlink for file testApp/usr/share/applications/MyApp.desktop in/as testApp
ERROR: Could not find icon executable for Icon entry: MyApp

What am I missing on the command line, or in setting up the appdir?

@CJYate
Copy link
Author

CJYate commented May 7, 2025

Hi @TheAssassin ,
Sorry to nag, but please could you confirm whether this looks like a bug, or user error on my end?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants