65 lines
1.4 KiB
Nix
65 lines
1.4 KiB
Nix
{
|
|
pkgs,
|
|
hostSystem,
|
|
releaseName,
|
|
buildNumber ? "1",
|
|
appDir,
|
|
}: 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=${buildNumber}
|
|
pkgdesc="The foundation for an autonomous community cloud infrastructure"
|
|
arch=('${cpuArch}')
|
|
url="https://code.betamike.com/micropelago/isle"
|
|
license=('AGPL-3.0-or-later')
|
|
|
|
source=('src.tar.zst')
|
|
md5sums=('SKIP')
|
|
|
|
package() {
|
|
cp -r etc "$pkgdir"/etc
|
|
cp -r usr "$pkgdir"/usr
|
|
}
|
|
'';
|
|
|
|
linuxRoot = (import ../default.nix).buildRoot {
|
|
inherit pkgs appDir;
|
|
};
|
|
|
|
in
|
|
pkgs.stdenv.mkDerivation {
|
|
name = "isle-arch-pkg-${releaseName}-${cpuArch}";
|
|
|
|
nativeBuildInputs = [
|
|
pkgs.zstd
|
|
pkgs.pacman
|
|
pkgs.fakeroot
|
|
pkgs.libarchive
|
|
];
|
|
|
|
inherit pkgbuild;
|
|
src = linuxRoot;
|
|
dontUnpack = true;
|
|
|
|
buildPhase = ''
|
|
tar -cf src.tar.zst --zstd --mode=a+rX,u+w -C "$src" .
|
|
cp $pkgbuild PKGBUILD
|
|
|
|
PKGEXT=".pkg.tar.zst" CARCH="${cpuArch}" makepkg \
|
|
--nodeps \
|
|
--config ${pkgs.pacman}/etc/makepkg.conf
|
|
'';
|
|
|
|
installPhase = ''
|
|
mkdir -p $out
|
|
cp *.pkg.tar.zst $out/
|
|
'';
|
|
|
|
# NOTE if https://github.com/NixOS/nixpkgs/issues/241911 is ever addressed
|
|
# it'd be nice to add an automatic check using namcap here.
|
|
}
|