NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
18.18k stars 14.19k forks source link

packaging request: Appimagelauncher #199452

Open zoro11031 opened 2 years ago

zoro11031 commented 2 years ago

makes your Linux desktop AppImage ready™ Integrate AppImages to your application launcher with one click, and manage, update and remove them from there. Double-click AppImages to open them, without having to make them executable first.

AppImageLauncher plays well with other applications managing AppImages, for example app stores. However, it doesn't depend on any of those, and can run completely standalone.

Metadata

Aleksanaa commented 1 year ago
{ lib
, stdenv
, fetchFromGitHub
, cmake
, git
, pkg-config
, automake
, autoconf
, libtool
, unixtools
, desktop-file-utils
, python3
, wrapQtAppsHook
, openssl
, curl
, wget
, glib
, zlib
, cairo
, pcre
, pcre2
, librsvg
, util-linux
, xorg
, libselinux
, libsepol
, xz
, fuse
, libarchive
, squashfuse
, xdg-utils
, glibc_multi
, appimagekit
, qt5
}:

stdenv.mkDerivation rec {
  pname = "appimagelauncher";
  version = "3.0.0-alpha-1";

  src = fetchFromGitHub {
    owner = "TheAssassin";
    repo = pname;
    rev = "v${version}";
    fetchSubmodules = true;
    leaveDotGit = true;
    hash = "sha256-/LrqYBEKzmiKd8532H0+NIQQ5NMHIX1XNOuJ2nXk+qA=";
  };

  nativeBuildInputs = [
    cmake
    git
    pkg-config
    automake
    autoconf
    libtool
    unixtools.xxd
    desktop-file-utils
    python3
    wrapQtAppsHook
  ];

  buildInputs = [
    openssl
    curl
    wget
    glib
    zlib
    cairo
    pcre
    pcre2
    librsvg
    util-linux
    xorg.libXdmcp
    libselinux
    libsepol
    xz
    fuse
    libarchive
    squashfuse
    xdg-utils
    glibc_multi
    appimagekit
    qt5.qttools
  ];

  cmakeFlags = [
    "-DUSE_SYSTEM_XZ=ON"
    "-DUSE_SYSTEM_LIBARCHIVE=ON"
    "-DUSE_SYSTEM_SQUASHFUSE=ON"
    "-DUSE_SYSTEM_XDGUTILS=ON"
    "-DUSE_SYSTEM_LIBAPPIMAGE=ON"
    "-DUSE_SYSTEM_BOOST=ON"
  ];
}

Can't go futher.

Aleksanaa commented 1 year ago
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: skipping incompatible /nix/store/yaz7pyf0ah88g2v505l38n0f3wg2vzdj-glibc-2.37-8/lib/libdl.so when searching for -ldl
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: skipping incompatible /nix/store/yaz7pyf0ah88g2v505l38n0f3wg2vzdj-glibc-2.37-8/lib/libdl.so when searching for -ldl
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: cannot find -ldl: No such file or directory
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: skipping incompatible /nix/store/yaz7pyf0ah88g2v505l38n0f3wg2vzdj-glibc-2.37-8/lib/libdl.so when searching for -ldl
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: skipping incompatible /nix/store/yaz7pyf0ah88g2v505l38n0f3wg2vzdj-glibc-2.37-8/lib/libdl.so when searching for -ldl
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: skipping incompatible /nix/store/yazs3bdl481s2kyffgsa825ihy1adn8f-gcc-12.2.0-lib/lib/libstdc++.so when searching for -lstdc++
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: skipping incompatible /nix/store/yazs3bdl481s2kyffgsa825ihy1adn8f-gcc-12.2.0-lib/lib/libstdc++.so when searching for -lstdc++
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: skipping incompatible /nix/store/dcd1zhv56rk0d2z7akzfjgzr076c4jl9-gcc-12.2.0/lib/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../lib/libstdc++.a when searching for -lstdc++
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: skipping incompatible /nix/store/dcd1zhv56rk0d2z7akzfjgzr076c4jl9-gcc-12.2.0/lib/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../libstdc++.a when searching for -lstdc++
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: cannot find -lstdc++: file in wrong format
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: skipping incompatible /nix/store/yazs3bdl481s2kyffgsa825ihy1adn8f-gcc-12.2.0-lib/lib/libstdc++.so when searching for -lstdc++
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: skipping incompatible /nix/store/yazs3bdl481s2kyffgsa825ihy1adn8f-gcc-12.2.0-lib/lib/libstdc++.so when searching for -lstdc++
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: skipping incompatible /nix/store/yaz7pyf0ah88g2v505l38n0f3wg2vzdj-glibc-2.37-8/lib/libm.so when searching for -lm
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: skipping incompatible /nix/store/yaz7pyf0ah88g2v505l38n0f3wg2vzdj-glibc-2.37-8/lib/libm.so when searching for -lm
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: cannot find -lm: No such file or directory
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: skipping incompatible /nix/store/yaz7pyf0ah88g2v505l38n0f3wg2vzdj-glibc-2.37-8/lib/libm.so when searching for -lm
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: skipping incompatible /nix/store/yaz7pyf0ah88g2v505l38n0f3wg2vzdj-glibc-2.37-8/lib/libm.so when searching for -lm
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: skipping incompatible /nix/store/yazs3bdl481s2kyffgsa825ihy1adn8f-gcc-12.2.0-lib/lib/libgcc_s.so.1 when searching for libgcc_s.so.1
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: skipping incompatible /nix/store/yazs3bdl481s2kyffgsa825ihy1adn8f-gcc-12.2.0-lib/lib/libgcc_s.so.1 when searching for libgcc_s.so.1
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: skipping incompatible /nix/store/yazs3bdl481s2kyffgsa825ihy1adn8f-gcc-12.2.0-lib/lib/libgcc_s.so.1 when searching for libgcc_s.so.1
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: cannot find libgcc_s.so.1: No such file or directory
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: skipping incompatible /nix/store/yazs3bdl481s2kyffgsa825ihy1adn8f-gcc-12.2.0-lib/lib/libgcc_s.so.1 when searching for libgcc_s.so.1
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: skipping incompatible /nix/store/yazs3bdl481s2kyffgsa825ihy1adn8f-gcc-12.2.0-lib/lib/libgcc_s.so.1 when searching for libgcc_s.so.1
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: skipping incompatible /nix/store/dcd1zhv56rk0d2z7akzfjgzr076c4jl9-gcc-12.2.0/lib/gcc/x86_64-unknown-linux-gnu/12.2.0/libgcc.a when searching for -lgcc
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: skipping incompatible /nix/store/dcd1zhv56rk0d2z7akzfjgzr076c4jl9-gcc-12.2.0/lib/gcc/x86_64-unknown-linux-gnu/12.2.0/libgcc.a when searching for -lgcc
/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin/ld: cannot find -lgcc: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [src/binfmt-bypass/CMakeFiles/binfmt-bypass-preload_32bit.dir/build.make:113: src/binfmt-bypass/libbinfmt-bypass-preload_32bit.so] Error 1
make[1]: *** [CMakeFiles/Makefile2:1876: src/binfmt-bypass/CMakeFiles/binfmt-bypass-preload_32bit.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
patching ELF file 'libbinfmt-bypass-preload.so'
clearing symbol version for dlsym
writing libbinfmt-bypass-preload.so
Error: found symbol version markers newer than 2.4:
                 w _ITM_deregisterTMCloneTable
                 w _ITM_registerTMCloneTable
                 w __cxa_finalize@GLIBC_2.2.5
                 U __errno_location@GLIBC_2.2.5
                 w __gmon_start__
                 U __stack_chk_fail@GLIBC_2.4
                 U __vfprintf_chk@GLIBC_2.3.4
                 U calloc@GLIBC_2.2.5
                 U dlsym
                 U exit@GLIBC_2.2.5
                 U free@GLIBC_2.2.5
                 U getenv@GLIBC_2.2.5
                 U malloc@GLIBC_2.2.5
                 U memcpy@GLIBC_2.14
                 U stderr@GLIBC_2.2.5
                 U strdup@GLIBC_2.2.5
                 U strerror@GLIBC_2.2.5
                 U strlen@GLIBC_2.2.5
                 U strncmp@GLIBC_2.2.5
                 U strncpy@GLIBC_2.2.5
                 U unsetenv@GLIBC_2.2.5
make[2]: *** [src/binfmt-bypass/CMakeFiles/binfmt-bypass-preload.dir/build.make:114: src/binfmt-bypass/libbinfmt-bypass-preload.so] Error 1
make[2]: *** Deleting file 'src/binfmt-bypass/libbinfmt-bypass-preload.so'
make[1]: *** [CMakeFiles/Makefile2:1850: src/binfmt-bypass/CMakeFiles/binfmt-bypass-preload.dir/all] Error 2
socherbyc commented 1 year ago

I managed to install using the deb installer, but that program isn't very useful as it creates desktop files with Exec=/home/user/Application/Foo.AppImage instead of Exec=appimage-run /home/user/Application/Foo.AppImage.

So I created a simple bash script that is similar to AppImageLauncher and put it on systemd. It's not perfect, but it's working fine for me.