blob: 70e79013343e9699fcd164a8e8e44d199ffb14ba (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=nix
pkgver=2.3.1
pkgrel=0
pkgdesc="The purely functional package manager"
url="https://nixos.org/nix/"
arch="x86 x86_64 aarch64" # supported platforms
license="LGPL-2.1-or-later"
depends="ca-certificates"
depends_dev="boost-dev"
makedepends="
$depends_dev
bash
brotli-dev
bzip2-dev
curl-dev
gc-dev
openssl-dev
libseccomp-dev
libsodium-dev
sqlite-dev
xz
xz-dev
editline-dev
"
pkggroups="nix nixbld"
install="$pkgname.pre-install"
subpackages="$pkgname-dev $pkgname-openrc $pkgname-doc"
source="https://nixos.org/releases/nix/nix-$pkgver/nix-$pkgver.tar.xz
nix-daemon.initd
nix-profile.sh
"
build() {
# NOTE: /nix/var is recommended by upstream and we need /nix anyway.
bash ./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--localstatedir=/nix/var \
--enable-gc
make
}
package() {
make DESTDIR="$pkgdir" install
cd "$pkgdir"
# Remove trash.
rm -R etc/init
rm -R usr/lib/systemd
rm etc/profile.d/*
mkdir -p usr/sbin
rm -f usr/bin/nix-daemon
ln -s usr/bin/nix usr/sbin/nix-daemon
install -m 755 -D "$srcdir"/nix-profile.sh etc/profile.d/nix.sh
install -m 755 -D "$srcdir"/nix-daemon.initd etc/init.d/nix-daemon
# Setup build users.
# Note: max-jobs should equal number of created nixbld<n> users.
install -d -m 0555 etc/nix
cat > etc/nix/nix.conf <<-EOF
build-users-group = nixbld
max-jobs = 4
EOF
# This is based on https://github.com/NixOS/nix/blob/9617a04/scripts/install-multi-user.sh#L525
# NOTE: store dir must be /nix/store, otherwise pre-built binaries from
# the standard Nixpkgs channels would not work.
install -d -m 1775 -g nixbld \
nix/store
install -d -m 0755 \
nix/var/log/nix/drvs \
nix/var/nix/db \
nix/var/nix/gcroots \
nix/var/nix/manifests \
nix/var/nix/profiles/default \
nix/var/nix/temproots \
nix/var/nix/userpool \
nix/var/nix/profile/per-user/root
install -d -m 1777 \
nix/var/nix/profiles/per-user \
nix/var/nix/gcroots/per-user
# Allow only users in the nix group to perform Nix operations.
install -d -m 0770 -g nix \
nix/var/nix/daemon-socket
}
sha512sums="791c377082cf8dd17a24d927caa4127eeb20bd03d479424861928437eb352cb4650beb7f36d92d85ce6a7404f4fbfc5a36a342d09061e88dbafd1b51463eb15f nix-2.3.1.tar.xz
9e4568db987fbae5097f7bb086e8ad51742c2d229703104fb7e6f240ffb0ca72e57dc305fb238bcee4ec8002d780007af60f241b1f32b6aa413dd579d9c59e75 nix-daemon.initd
0fb5b9ff2f593dca22251b342494ea0b61380d8f905d85855282d259c112aa2a918d9785aa08f847c693a939ebae9fbefcd4e417ad93283a142e066105cc87b5 nix-profile.sh"
|