{ pkgs, buildSystem, releaseName, appImage, }: let cpuArch = (pkgs.lib.systems.parse.mkSystemFromString buildSystem).cpu.name; pkgbuild = pkgs.writeText "isle-arch-PKGBUILD-${releaseName}-${cpuArch}" '' pkgname=isle pkgver=${releaseName} pkgrel=0 pkgdesc="The Isle project provides the foundation for an autonomous community cloud infrastructure." arch=('${cpuArch}') url="https://code.betamike.com/micropelago/isle" license=('AGPLv3') source=("src.tar.zst") md5sums=('SKIP') package() { cp -r etc "$pkgdir"/etc cp -r usr "$pkgdir"/usr } ''; in pkgs.stdenv.mkDerivation { name = "isle-arch-pkg-${releaseName}-${cpuArch}"; nativeBuildInputs = [ pkgs.zstd pkgs.pacman pkgs.fakeroot pkgs.libarchive ]; inherit pkgbuild; src = appImage; appDir = ../../AppDir; dontUnpack = true; buildPhase = '' mkdir -p root/usr/bin/ cp "$src" root/usr/bin/isle mkdir -p root/etc/isle/ cp "$appDir"/etc/daemon.yml root/etc/isle/daemon.yml cp $pkgbuild PKGBUILD tar -cf src.tar.zst --zstd --mode=a+rX,u+w -C root . ls -lh ./root/usr/bin PKGEXT=".pkg.tar.zst" makepkg --config ${pkgs.pacman}/etc/makepkg.conf ls -lh ./ ''; installPhase = '' mkdir -p $out cp *.pkg.tar.zst $out/ ''; fixupPhase = ""; }