{ pkgs, hostSystem, releaseName, appImage, }: let cpuArch = (pkgs.lib.systems.parse.mkSystemFromString hostSystem).cpu.name; pkgbuild = pkgs.writeText "isle-arch-PKGBUILD-${releaseName}-${cpuArch}" '' pkgname=isle pkgver=${builtins.replaceStrings ["-"] ["_"] releaseName} pkgrel=0 pkgdesc="The foundation for an autonomous community cloud infrastructure." arch=('${cpuArch}') url="https://code.betamike.com/micropelago/isle" license=('AGPL-3.0-or-later') depends=( 'fuse2' ) # The appImage is deliberately kept separate from the src.tar.zst. For some # reason including the appImage within the archive results in a large part # of the binary being stripped away and some weird skeleton appImage comes # out the other end. source=('isle' 'src.tar.zst') md5sums=('SKIP' 'SKIP') noextract=('isle') package() { cp -r etc "$pkgdir"/etc cp -r usr "$pkgdir"/usr mkdir -p "$pkgdir"/usr/bin/ cp isle "$pkgdir"/usr/bin/ } ''; in pkgs.stdenv.mkDerivation { name = "isle-arch-pkg-${releaseName}-${cpuArch}"; nativeBuildInputs = [ pkgs.zstd pkgs.pacman pkgs.fakeroot pkgs.libarchive ]; inherit pkgbuild; src = appImage; defaultDaemonYml = ../../../go/daemon/daecommon/daemon.yml; systemdService = ../isle.service; dontUnpack = true; buildPhase = '' mkdir -p root/etc/isle/ cp "$defaultDaemonYml" root/etc/isle/daemon.yml mkdir -p root/usr/lib/sysusers.d/ cat >root/usr/lib/sysusers.d/isle.conf <