Some checks failed
Mark stable commit / test-unit (push) Has been cancelled
Mark stable commit / test-integration (push) Has been cancelled
Mark stable commit / test-env-virtual (push) Has been cancelled
Mark stable commit / test-env-nix (push) Has been cancelled
Mark stable commit / test-e2e (push) Has been cancelled
Mark stable commit / test-virgin-user (push) Has been cancelled
Mark stable commit / test-virgin-root (push) Has been cancelled
Mark stable commit / lint-shell (push) Has been cancelled
Mark stable commit / lint-python (push) Has been cancelled
Mark stable commit / mark-stable (push) Has been cancelled
Arch Linux ARM currently ships a broken/out-of-sync nix package with unresolvable dependencies. Declare nix as a hard dependency only on x86_64 and as optional on other architectures, allowing installation while relying on the official Nix installer bootstrap. https://chatgpt.com/share/695e483c-1f68-800f-9f94-87d5295b871d
87 lines
2.4 KiB
Bash
87 lines
2.4 KiB
Bash
# Maintainer: Kevin Veen-Birkenbach <info@veen.world>
|
|
|
|
pkgname=package-manager
|
|
pkgver=1.9.2
|
|
pkgrel=1
|
|
pkgdesc="Local-flake wrapper for Kevin's package-manager (Nix-based)."
|
|
arch=('any')
|
|
url="https://github.com/kevinveenbirkenbach/package-manager"
|
|
license=('MIT')
|
|
|
|
# Nix is required at runtime to run pkgmgr via the flake.
|
|
# On Arch x86_64 we can depend on the distro package.
|
|
# On other arches (e.g. ARM) we only declare it as optional because the
|
|
# repo package may be broken/out-of-sync; installation can be done via the official installer.
|
|
depends=()
|
|
optdepends=('nix: required to run pkgmgr via flake')
|
|
|
|
if [[ "${CARCH}" == "x86_64" ]]; then
|
|
depends=('nix')
|
|
optdepends=()
|
|
fi
|
|
|
|
makedepends=('rsync')
|
|
|
|
install=${pkgname}.install
|
|
|
|
# Local source checkout — avoids the tarball requirement.
|
|
# We build from the project root (two levels above packaging/arch/).
|
|
source=()
|
|
sha256sums=()
|
|
|
|
# Local source directory name under $srcdir
|
|
_srcdir_name="source"
|
|
|
|
prepare() {
|
|
mkdir -p "$srcdir/$_srcdir_name"
|
|
|
|
local project_root
|
|
project_root="$(cd "$startdir/../.." && pwd)"
|
|
|
|
rsync -a \
|
|
--exclude=".git" \
|
|
--exclude=".github" \
|
|
--exclude="pkg" \
|
|
--exclude="srcpkg" \
|
|
--exclude="packaging" \
|
|
--exclude="assets" \
|
|
"$project_root/" "$srcdir/$_srcdir_name/"
|
|
}
|
|
|
|
build() {
|
|
cd "$srcdir/$_srcdir_name"
|
|
:
|
|
}
|
|
|
|
package() {
|
|
cd "$srcdir/$_srcdir_name"
|
|
|
|
# Install the wrapper into /usr/bin
|
|
install -Dm0755 "scripts/launcher.sh" \
|
|
"$pkgdir/usr/bin/pkgmgr"
|
|
|
|
# Install Nix bootstrap (init + lib)
|
|
install -d "$pkgdir/usr/lib/package-manager/nix"
|
|
cp -a scripts/nix/* "$pkgdir/usr/lib/package-manager/nix/"
|
|
chmod 0755 "$pkgdir/usr/lib/package-manager/nix/init.sh"
|
|
|
|
# Install the full repository into /usr/lib/package-manager
|
|
mkdir -p "$pkgdir/usr/lib/package-manager"
|
|
|
|
# Copy entire project tree from our local source checkout
|
|
cp -a . "$pkgdir/usr/lib/package-manager/"
|
|
|
|
# Remove packaging-only and development artefacts from the installed tree
|
|
rm -rf \
|
|
"$pkgdir/usr/lib/package-manager/.git" \
|
|
"$pkgdir/usr/lib/package-manager/.github" \
|
|
"$pkgdir/usr/lib/package-manager/tests" \
|
|
"$pkgdir/usr/lib/package-manager/PKGBUILD" \
|
|
"$pkgdir/usr/lib/package-manager/Dockerfile" \
|
|
"$pkgdir/usr/lib/package-manager/debian" \
|
|
"$pkgdir/usr/lib/package-manager/packaging" \
|
|
"$pkgdir/usr/lib/package-manager/.gitignore" \
|
|
"$pkgdir/usr/lib/package-manager/__pycache__" \
|
|
"$pkgdir/usr/lib/package-manager/.gitkeep" || true
|
|
}
|