Skip to content
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

AppRun do not link binary specified by -e argument #250

Open
efa opened this issue Jun 29, 2023 · 4 comments
Open

AppRun do not link binary specified by -e argument #250

efa opened this issue Jun 29, 2023 · 4 comments

Comments

@efa
Copy link

efa commented Jun 29, 2023

I copy 2 binaries in AppDir/usr/bin, then call linuxdeploy to package deps and generate AppImage.
One of the 2 binaries is also passed as -e argument as main binary.
I saw the generated AppDir/AppRun link the other binary.

The AppDir is as so before call linuxdeploy:
AppDir/usr/bin/xnedit
AppDir/usr/bin/xnc

The linuxdeploy command is:
$ linuxdeploy-x86_64.AppImage -e source/xnedit --appdir AppDir -i resources/desktop/xnedit.png -d resources/desktop/xnedit.desktop --output appimage

Linuxdeploy generate this link:
AppDir/AppRun -> AppDir/usr/bin/xnc
instead of this one:
AppDir/AppRun -> AppDir/usr/bin/xnedit

Copy only xnc and skipping copy xnedit before call linuxdeploy, results the same.

The bash script is visible in this commit:
unixwork/xnedit@06ba0ca
and is runt with:
$ resources/AppImage/makeAppDir.sh XNEdit source/xnedit resources/desktop Linux

@TheAssassin
Copy link
Member

Need a log.

@efa
Copy link
Author

efa commented Nov 30, 2023

this is on Debian11 32 bit, but got same on Debian12 64bit:

efa@Debian11-32bit:~/c/xnedit$ tree AppDir
AppDir
└── usr
    └── bin
        ├── xnc
        └── xnedit

efa@Debian11-32bit:~/c/xnedit$ linuxdeploy-i386.AppImage -e source/xnedit --appdir AppDir -i resources/desktop/xnedit.png -d resources/desktop/xnedit.desktop --output appimage
linuxdeploy version 1-alpha (git commit ID 6a583d5), GitHub actions build 196 built on 2023-11-01 01:03:27 UTC

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

-- Deploying dependencies for existing files in AppDir -- 
Deploying dependencies for ELF file AppDir/usr/bin/xnedit 
Deploying shared library /lib/i386-linux-gnu/libpcre.so.3
Deploying copyright files for file /lib/i386-linux-gnu/libpcre.so.3 
Deploying shared library /usr/lib/i386-linux-gnu/libXm.so.4
Deploying copyright files for file /usr/lib/i386-linux-gnu/libXm.so.4 
Deploying shared library /usr/lib/i386-linux-gnu/libXt.so.6
Deploying copyright files for file /usr/lib/i386-linux-gnu/libXt.so.6 
Skipping deployment of blacklisted library /usr/lib/i386-linux-gnu/libX11.so.6 
Skipping deployment of blacklisted library /lib/i386-linux-gnu/libm.so.6 
Deploying shared library /usr/lib/i386-linux-gnu/libXft.so.2
Deploying copyright files for file /usr/lib/i386-linux-gnu/libXft.so.2 
Skipping deployment of blacklisted library /usr/lib/i386-linux-gnu/libfontconfig.so.1 
Skipping deployment of blacklisted library /lib/i386-linux-gnu/libc.so.6 
Skipping deployment of blacklisted library /lib/i386-linux-gnu/libpthread.so.0 
Deploying shared library /usr/lib/i386-linux-gnu/libXmu.so.6
Deploying copyright files for file /usr/lib/i386-linux-gnu/libXmu.so.6 
Deploying shared library /usr/lib/i386-linux-gnu/libXext.so.6
Deploying copyright files for file /usr/lib/i386-linux-gnu/libXext.so.6 
Deploying shared library /usr/lib/i386-linux-gnu/libjpeg.so.62
Deploying copyright files for file /usr/lib/i386-linux-gnu/libjpeg.so.62 
Deploying shared library /usr/lib/i386-linux-gnu/libpng16.so.16
Deploying copyright files for file /usr/lib/i386-linux-gnu/libpng16.so.16 
Skipping deployment of blacklisted library /usr/lib/i386-linux-gnu/libSM.so.6 
Skipping deployment of blacklisted library /usr/lib/i386-linux-gnu/libICE.so.6 
Skipping deployment of blacklisted library /usr/lib/i386-linux-gnu/libxcb.so.1 
Skipping deployment of blacklisted library /lib/i386-linux-gnu/libdl.so.2 
Skipping deployment of blacklisted library /usr/lib/i386-linux-gnu/libfreetype.so.6 
Deploying shared library /usr/lib/i386-linux-gnu/libXrender.so.1
Deploying copyright files for file /usr/lib/i386-linux-gnu/libXrender.so.1 
Skipping deployment of blacklisted library /lib/i386-linux-gnu/libexpat.so.1 
Skipping deployment of blacklisted library /usr/lib/i386-linux-gnu/libuuid.so.1 
Skipping deployment of blacklisted library /lib/i386-linux-gnu/libz.so.1 
Deploying shared library /usr/lib/i386-linux-gnu/libbsd.so.0
Deploying copyright files for file /usr/lib/i386-linux-gnu/libbsd.so.0 
Deploying shared library /usr/lib/i386-linux-gnu/libXau.so.6
Deploying copyright files for file /usr/lib/i386-linux-gnu/libXau.so.6 
Deploying shared library /usr/lib/i386-linux-gnu/libXdmcp.so.6
Deploying copyright files for file /usr/lib/i386-linux-gnu/libXdmcp.so.6 
Deploying shared library /usr/lib/i386-linux-gnu/libbrotlidec.so.1
Deploying copyright files for file /usr/lib/i386-linux-gnu/libbrotlidec.so.1 
Deploying shared library /usr/lib/i386-linux-gnu/libmd.so.0
Deploying copyright files for file /usr/lib/i386-linux-gnu/libmd.so.0 
Deploying shared library /usr/lib/i386-linux-gnu/libbrotlicommon.so.1
Deploying copyright files for file /usr/lib/i386-linux-gnu/libbrotlicommon.so.1 
Deploying dependencies for ELF file AppDir/usr/bin/xnc 

-- Deploying executables -- 
Deploying executable source/xnedit 
WARNING: Could not find copyright files for file source/xnedit using dpkg-query 
Deploying dependencies for ELF file source/xnedit 

-- Copying files into AppDir -- 
Copying file source/xnedit to AppDir/usr/bin/xnedit 
Copying file /lib/i386-linux-gnu/libpcre.so.3 to AppDir/usr/lib/libpcre.so.3 
Copying file /usr/lib/i386-linux-gnu/libXau.so.6 to AppDir/usr/lib/libXau.so.6 
Copying file /usr/lib/i386-linux-gnu/libXdmcp.so.6 to AppDir/usr/lib/libXdmcp.so.6 
Copying file /usr/lib/i386-linux-gnu/libXext.so.6 to AppDir/usr/lib/libXext.so.6 
Copying file /usr/lib/i386-linux-gnu/libXft.so.2 to AppDir/usr/lib/libXft.so.2 
Copying file /usr/lib/i386-linux-gnu/libXm.so.4 to AppDir/usr/lib/libXm.so.4 
Copying file /usr/lib/i386-linux-gnu/libXmu.so.6 to AppDir/usr/lib/libXmu.so.6 
Copying file /usr/lib/i386-linux-gnu/libXrender.so.1 to AppDir/usr/lib/libXrender.so.1 
Copying file /usr/lib/i386-linux-gnu/libXt.so.6 to AppDir/usr/lib/libXt.so.6 
Copying file /usr/lib/i386-linux-gnu/libbrotlicommon.so.1 to AppDir/usr/lib/libbrotlicommon.so.1 
Copying file /usr/lib/i386-linux-gnu/libbrotlidec.so.1 to AppDir/usr/lib/libbrotlidec.so.1 
Copying file /usr/lib/i386-linux-gnu/libbsd.so.0 to AppDir/usr/lib/libbsd.so.0 
Copying file /usr/lib/i386-linux-gnu/libjpeg.so.62 to AppDir/usr/lib/libjpeg.so.62 
Copying file /usr/lib/i386-linux-gnu/libmd.so.0 to AppDir/usr/lib/libmd.so.0 
Copying file /usr/lib/i386-linux-gnu/libpng16.so.16 to AppDir/usr/lib/libpng16.so.16 
Copying file /usr/share/doc/libbrotli1/copyright to AppDir/usr/share/doc/libbrotli1/copyright 
Copying file /usr/share/doc/libbsd0/copyright to AppDir/usr/share/doc/libbsd0/copyright 
Copying file /usr/share/doc/libjpeg62-turbo/copyright to AppDir/usr/share/doc/libjpeg62-turbo/copyright 
Copying file /usr/share/doc/libmd0/copyright to AppDir/usr/share/doc/libmd0/copyright 
Copying file /usr/share/doc/libpcre3/copyright to AppDir/usr/share/doc/libpcre3/copyright 
Copying file /usr/share/doc/libpng16-16/copyright to AppDir/usr/share/doc/libpng16-16/copyright 
Copying file /usr/share/doc/libxau6/copyright to AppDir/usr/share/doc/libxau6/copyright 
Copying file /usr/share/doc/libxdmcp6/copyright to AppDir/usr/share/doc/libxdmcp6/copyright 
Copying file /usr/share/doc/libxext6/copyright to AppDir/usr/share/doc/libxext6/copyright 
Copying file /usr/share/doc/libxft2/copyright to AppDir/usr/share/doc/libxft2/copyright 
Copying file /usr/share/doc/libxm4/copyright to AppDir/usr/share/doc/libxm4/copyright 
Copying file /usr/share/doc/libxmu6/copyright to AppDir/usr/share/doc/libxmu6/copyright 
Copying file /usr/share/doc/libxrender1/copyright to AppDir/usr/share/doc/libxrender1/copyright 
Copying file /usr/share/doc/libxt6/copyright to AppDir/usr/share/doc/libxt6/copyright 
Calling strip on library AppDir/usr/bin/xnedit 
Calling strip on library AppDir/usr/lib/libXau.so.6 
Calling strip on library AppDir/usr/lib/libXdmcp.so.6 
Calling strip on library AppDir/usr/lib/libXext.so.6 
Calling strip on library AppDir/usr/lib/libXft.so.2 
Calling strip on library AppDir/usr/lib/libXm.so.4 
Calling strip on library AppDir/usr/lib/libXmu.so.6 
Calling strip on library AppDir/usr/lib/libXrender.so.1 
Calling strip on library AppDir/usr/lib/libXt.so.6 
Calling strip on library AppDir/usr/lib/libbrotlicommon.so.1 
Calling strip on library AppDir/usr/lib/libbrotlidec.so.1 
Calling strip on library AppDir/usr/lib/libbsd.so.0 
Calling strip on library AppDir/usr/lib/libjpeg.so.62 
Calling strip on library AppDir/usr/lib/libmd.so.0 
Calling strip on library AppDir/usr/lib/libpcre.so.3 
Calling strip on library AppDir/usr/lib/libpng16.so.16 
Setting rpath in ELF file AppDir/usr/bin/xnc to $ORIGIN/../lib 
Setting rpath in ELF file AppDir/usr/bin/xnedit to $ORIGIN/../lib 
Setting rpath in ELF file AppDir/usr/lib/libXau.so.6 to $ORIGIN 
Setting rpath in ELF file AppDir/usr/lib/libXdmcp.so.6 to $ORIGIN 
Setting rpath in ELF file AppDir/usr/lib/libXext.so.6 to $ORIGIN 
Setting rpath in ELF file AppDir/usr/lib/libXft.so.2 to $ORIGIN 
Setting rpath in ELF file AppDir/usr/lib/libXm.so.4 to $ORIGIN 
Setting rpath in ELF file AppDir/usr/lib/libXmu.so.6 to $ORIGIN 
Setting rpath in ELF file AppDir/usr/lib/libXrender.so.1 to $ORIGIN 
Setting rpath in ELF file AppDir/usr/lib/libXt.so.6 to $ORIGIN 
Setting rpath in ELF file AppDir/usr/lib/libbrotlicommon.so.1 to $ORIGIN 
Setting rpath in ELF file AppDir/usr/lib/libbrotlidec.so.1 to $ORIGIN 
Setting rpath in ELF file AppDir/usr/lib/libbsd.so.0 to $ORIGIN 
Setting rpath in ELF file AppDir/usr/lib/libjpeg.so.62 to $ORIGIN 
Setting rpath in ELF file AppDir/usr/lib/libmd.so.0 to $ORIGIN 
Setting rpath in ELF file AppDir/usr/lib/libpcre.so.3 to $ORIGIN 
Setting rpath in ELF file AppDir/usr/lib/libpng16.so.16 to $ORIGIN 

-- Deploying icons -- 
Deploying icon resources/desktop/xnedit.png 
WARNING: Could not find copyright files for file resources/desktop/xnedit.png using dpkg-query 

-- Deploying desktop files -- 
Deploying desktop file resources/desktop/xnedit.desktop 

-- Copying files into AppDir -- 
Copying file resources/desktop/xnedit.desktop to AppDir/usr/share/applications/xnedit.desktop 
Copying file resources/desktop/xnedit.png to AppDir/usr/share/icons/hicolor/96x96/apps/xnedit.png 

-- Deploying files into AppDir root directory -- 
Deploying files to AppDir root using desktop file: AppDir/usr/share/applications/xnedit.desktop 
Deploying desktop file to AppDir root: AppDir/usr/share/applications/xnedit.desktop 
Creating symlink for file AppDir/usr/share/applications/xnedit.desktop in/as AppDir 
Deploying icon to AppDir root: AppDir/usr/share/icons/hicolor/96x96/apps/xnedit.png 
Creating symlink for file AppDir/usr/share/icons/hicolor/96x96/apps/xnedit.png in/as AppDir 
Deploying AppRun symlink for executable in AppDir root: AppDir/usr/bin/xnc 
Creating symlink for file AppDir/usr/bin/xnc in/as AppDir/AppRun 

-- Running output plugin: appimage -- 
[appimage/stdout] Found appimagetool: /tmp/.mount_linuxdw8riYu/plugins/linuxdeploy-plugin-appimage/usr/bin/appimagetool
[appimage/stderr] Running command: [appimage/stdout] 
/tmp/.mount_linuxdw8riYu/plugins/linuxdeploy-plugin-appimage/usr/bin/appimagetool "AppDir"
[appimage/stderr] 
[appimage/stderr] appimagetool, continuous build (commit 5735cc5), build <local dev build> built on 2023-03-08 22:51:46 UTC
[appimage/stdout] WARNING: appstreamcli command is missing, please install it if you want to use AppStream metadata
[appimage/stderr] Using architecture i386
[appimage/stderr] Deleting pre-existing .DirIcon
[appimage/stderr] Creating .DirIcon symlink based on information from desktop file
[appimage/stderr] WARNING: AppStream upstream metadata is missing, please consider creating it
[appimage/stderr]          in usr/share/metainfo/xnedit.appdata.xml
[appimage/stderr]          Please see https://www.freedesktop.org/software/appstream/docs/chap-Quickstart.html#sect-Quickstart-DesktopApps
[appimage/stderr]          for more information or use the generator at http://output.jsbin.com/qoqukof.
[appimage/stderr] Generating squashfs...
[appimage/stdout] /home/efa/c/xnedit/AppDir/xnedit.desktop: warning: value "Application;Utility;TextEditor;" for key "Categories" in group "Desktop Entry" contains a deprecated value "Application"
[appimage/stdout] Parallel mksquashfs: Using 1 processor
[appimage/stdout] Creating 4.0 filesystem on XNEdit-i386.AppImage, block size 131072.
[appimage/stdout] 
[appimage/stdout] [=================================================================\] 82/82 100%[appimage/stderr] Embedding ELF...

[appimage/stdout] 
[appimage/stdout] Exportable Squashfs 4.0 filesystem, gzip compressed, data block size 131072
[appimage/stdout] 	compressed data, compressed metadata, compressed fragments,
[appimage/stdout] 	compressed xattrs, compressed ids
[appimage/stdout] 	duplicates are removed
[appimage/stdout] Filesystem size 2950.83 Kbytes (2.88 Mbytes)
[appimage/stdout] 	40.09% of uncompressed filesystem size (7361.20 Kbytes)
[appimage/stdout] Inode table size 980 bytes (0.96 Kbytes)
[appimage/stdout] 	36.77% of uncompressed inode table size (2665 bytes)
[appimage/stdout] Directory table size 695 bytes (0.68 Kbytes)
[appimage/stdout] 	44.16% of uncompressed directory table size (1574 bytes)
[appimage/stdout] Number of duplicate files found 0
[appimage/stdout] Number of inodes 74
[appimage/stdout] Number of files 33
[appimage/stdout] Number of fragments 8
[appimage/stdout] Number of symbolic links  4
[appimage/stdout] Number of device nodes 0
[appimage/stdout] Number of fifo nodes 0
[appimage/stdout] Number of socket nodes 0
[appimage/stdout] Number of directories 37
[appimage/stdout] Number of ids (unique uids + gids) 1
[appimage/stdout] Number of uids 1
[appimage/stdout] 	root (0)
[appimage/stdout] Number of gids 1
[appimage/stdout] 	root (0)
[appimage/stderr] Marking the AppImage as executable...
[appimage/stderr] Embedding MD5 digest
[appimage/stdout] /home/efa/c/xnedit/AppDir should be packaged as XNEdit-i386.AppImage
[appimage/stderr] Success
[appimage/stderr] 
[appimage/stderr] Please consider submitting your AppImage to AppImageHub, the crowd-sourced
[appimage/stderr] central directory of available AppImages, by opening a pull request
[appimage/stderr] at https://github.com/AppImage/appimage.github.io

efa@Debian11-32bit:~/c/xnedit$ tree AppDir
AppDir
├── AppRun -> usr/bin/xnc
├── usr
│   ├── bin
│   │   ├── xnc
│   │   └── xnedit
│   ├── lib
│   │   ├── libbrotlicommon.so.1
│   │   ├── libbrotlidec.so.1
│   │   ├── libbsd.so.0
│   │   ├── libjpeg.so.62
│   │   ├── libmd.so.0
│   │   ├── libpcre.so.3
│   │   ├── libpng16.so.16
│   │   ├── libXau.so.6
│   │   ├── libXdmcp.so.6
│   │   ├── libXext.so.6
│   │   ├── libXft.so.2
│   │   ├── libXm.so.4
│   │   ├── libXmu.so.6
│   │   ├── libXrender.so.1
│   │   └── libXt.so.6
│   └── share
│       ├── applications
│       │   └── xnedit.desktop
│       ├── doc
│       │   ├── libbrotli1
│       │   │   └── copyright
│       │   ├── libbsd0
│       │   │   └── copyright
│       │   ├── libjpeg62-turbo
│       │   │   └── copyright
│       │   ├── libmd0
│       │   │   └── copyright
│       │   ├── libpcre3
│       │   │   └── copyright
│       │   ├── libpng16-16
│       │   │   └── copyright
│       │   ├── libxau6
│       │   │   └── copyright
│       │   ├── libxdmcp6
│       │   │   └── copyright
│       │   ├── libxext6
│       │   │   └── copyright
│       │   ├── libxft2
│       │   │   └── copyright
│       │   ├── libxm4
│       │   │   └── copyright
│       │   ├── libxmu6
│       │   │   └── copyright
│       │   ├── libxrender1
│       │   │   └── copyright
│       │   └── libxt6
│       │       └── copyright
│       └── icons
│           └── hicolor
│               ├── 128x128
│               │   └── apps
│               ├── 16x16
│               │   └── apps
│               ├── 256x256
│               │   └── apps
│               ├── 32x32
│               │   └── apps
│               ├── 64x64
│               │   └── apps
│               ├── 96x96
│               │   └── apps
│               │       └── xnedit.png
│               └── scalable
│                   └── apps
├── xnedit.desktop -> usr/share/applications/xnedit.desktop
└── xnedit.png -> usr/share/icons/hicolor/96x96/apps/xnedit.png

36 directories, 36 files

@TheAssassin
Copy link
Member

Could you please post your xnedit.desktop?

@efa
Copy link
Author

efa commented Dec 5, 2023

the file pointed by -d option is this:
https://github.com/efa/xnedit/blob/master/resources/desktop/xnedit.desktop
that has:
Exec=xnc -tabbed %F

is -e option overridden by desktop file Exec entry, a desired behaviour?

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