66 lines
1.4 KiB
Nix
66 lines
1.4 KiB
Nix
|
{
|
||
|
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 = "";
|
||
|
}
|