Problem using fhs service to run appimages
I want to run an appimage from https://shadow.tech but obviously that does not work on Guix System:
$ /home/mat/Desktop/./ShadowBeta.AppImage
Failed to execute process '/home/mat/Desktop/./ShadowBeta.AppImage'. Reason:
The file '/home/mat/Desktop/./ShadowBeta.AppImage' does not exist or could not be executed.
I found this repository which got my hopes high again, and I added pkill9-guix-channel
to my ~/.config/guix/channels.scm
:
(list (channel
(name 'guix)
(url "https://git.savannah.gnu.org/git/guix.git")
(introduction
(make-channel-introduction
"9edb3f66fd807b096b48283debdcddccfea34bad"
(openpgp-fingerprint
"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))
(channel
(name 'nonguix)
(url "https://gitlab.com/nonguix/nonguix")
(introduction
(make-channel-introduction
"897c1a470da759236cc11798f4e0a5f7d4d59fbc"
(openpgp-fingerprint
"2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))
(channel
(name 'private)
(url (string-append "file://" (getenv "HOME") "/.config/guix-private-channel")))
(channel
(name 'pkill9-channel)
(url (string-append "file://" (getenv "HOME") "/.config/guix-pkill9-channel"))))
It didn't work right away, namely due to #2, so I forked it and replaced instances of 'meson-build-system' with meson
in the scm files, as well as gdk-pixbuf+svg
with gdk-pixbuf
, and had to remove srb2kart.scm
because that one would still fail when invoking guix pull
.
After that, guix pull
worked, so as indicated in the README, I added the fhs service in my configuration. This is the diff of my ~/.config/guix/system.scm
after the additions:
5c5,14
< (use-modules (gnu) (nongnu packages linux))
---
> (use-modules
> (gnu)
> (nongnu packages linux)
> (pkill9 services fhs)
> (gnu packages)
> (guix packages)
> (guix profiles)
> (srfi srfi-1)
> (pkill9 utils))
>
12a22,53
> (define (manifest->packages manifest)
> "Return the list of packages in MANIFEST."
> (filter-map (lambda (entry)
> (let ((item (manifest-entry-item entry)))
> (if (package? item) item #f)))
> (manifest-entries manifest)))
>
> (define fhs-packages
> (append (list (package-output->package (@ (gnu packages gcc) gcc-7) "lib"))
> (manifest->packages
> (specifications->manifest
> (list
> "libxcomposite" "libxtst" "libxaw" "libxt" "libxrandr" "libxext" "libx11"
> "libxfixes" "glib" "gtk+" "gtk+@2" "bzip2" "zlib" "gdk-pixbuf" "libxinerama"
> "libxdamage" "libxcursor" "libxrender" "libxscrnsaver" "libxxf86vm"
> "libxi" "libsm" "libice" "gconf" "freetype" "curl" "nspr" "nss" "fontconfig"
> "cairo" "pango" "expat" "dbus" "cups" "libcap" "sdl2" "libusb" "dbus-glib"
> "atk" "eudev" "network-manager" "pulseaudio" "openal" "alsa-lib" "mesa"
>
> "libxmu" "libxcb" "glu" "util-linux" "libogg" "libvorbis" "sdl" "sdl2-image"
> "glew" "openssl" "libidn" "tbb" "flac" "freeglut" "libjpeg" "libpng" "libpng@1.2"
> "libsamplerate" "libmikmod" "libtheora" "libtiff" "pixman" "speex" "sdl-image"
> "sdl-ttf" "sdl-mixer" "sdl2-ttf" "sdl2-mixer" "gstreamer" "gst-plugins-base"
> "glu" "libcaca" "libcanberra" "libgcrypt" "libvpx"
> ;;"librsvg" ;; currently requires compiling, but shouldn't, it's being weird
> "libxft"
> "libvdpau" "gst-plugins-ugly" "libdrm" "xkeyboard-config" "libpciaccess"
> "ffmpeg@3.4" "libpng" "libgpg-error" "sqlite" "libnotify"
>
> "fuse" "e2fsprogs" "p11-kit" "xz" "keyutils" "xcb-util-keysyms" "libselinux"
> "ncurses" "jack" "jack2" "vulkan-loader")))))
>
48a90,101
> (service fhs-binaries-compatibility-service-type
> (fhs-configuration
> (lib-packages fhs-packages)
> (additional-special-files
> `(;; QT apps fail to recieve keyboard input unless they find this hardcoded path.
> ("/usr/share/X11/xkb"
> ,(file-append
> (canonical-package
> (@ (gnu packages xorg) xkeyboard-config))
> "/share/X11/xkb"))
> ;; Chromium component of electron apps break without fontconfig configuration here.
> ("/etc/fonts" ,"/run/current-system/profile/etc/fonts")))))
From there, when invoking sudo -E guix system reconfigure ~/.config/guix/system.scm
, I'm getting a build error with ffmpeg
(and only ffmpeg
). Here is the end of the corresponding logs:
$ bzcat /var/log/guix/drvs/0k/mrv85s3x2lzs093jgja3r3vj2q41wd-ffmpeg-3.4.9.drv.bz2 | tail
./tests/data/lavf/gbrplavf.fits CRC=0x04ed3828
Test lavf-fits failed. Look at tests/data/fate/lavf-fits.err for details.
make: *** [tests/Makefile:226: fate-lavf-fits] Error 1
make: *** Waiting for unfinished jobs....
Test suite failed, dumping logs.
error: in phase 'check': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("fate" "-j" "4") exit-status: 2 term-signal: #f stop-signal: #f>
phase `check' failed after 106.9 seconds
command "make" "fate" "-j" "4" failed with status 2
However, I could just instsll ffmpeg
afterwards with guix install ffmpeg
, so not sure what was wrong. Maybe it installed it from a different channel?
Anyway, I then can't find the fhs
service to start from sudo herd start xxx
. I have tried fhs
, fhs-binaries
, fhs-binaries-compatibility-service-type
, fhs-binaries-compatibility-service
, no dice. Hopefully I just need to find it and my appimage would work?