aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nix/.SRCINFO23
-rw-r--r--nix/PKGBUILD42
-rw-r--r--nix/nix.install97
3 files changed, 162 insertions, 0 deletions
diff --git a/nix/.SRCINFO b/nix/.SRCINFO
new file mode 100644
index 0000000..45cfdc5
--- /dev/null
+++ b/nix/.SRCINFO
@@ -0,0 +1,23 @@
1pkgbase = nix
2 pkgdesc = A purely functional package manager
3 pkgver = 2.2.1
4 pkgrel = 1
5 url = https://nixos.org/nix
6 install = nix.install
7 arch = i686
8 arch = x86_64
9 arch = armv7h
10 license = LGPL
11 makedepends = bzip2
12 makedepends = gc
13 makedepends = openssl
14 depends = gc
15 depends = libsodium
16 depends = boost
17 depends = brotli
18 depends = readline
19 source = https://nixos.org/releases/nix/nix-2.2.1/nix-2.2.1.tar.xz
20 sha256sums = 85f8d3518060803e44e51b1a9ada1a39cea904b36a632ba1844043a0b63be515
21
22pkgname = nix
23
diff --git a/nix/PKGBUILD b/nix/PKGBUILD
new file mode 100644
index 0000000..daa8e74
--- /dev/null
+++ b/nix/PKGBUILD
@@ -0,0 +1,42 @@
1# Maintainer: Alastair Pharo <asppsa at gmail dot com>
2# Contributor: Felix Morgner <felix.morgner@gmail.com>
3# Contributor: Vlad M. <vlad@archlinux.net>
4# Contributor: Mario Rodas
5# Contributor: Oozyslug <oozyslug at gmail dot com>
6# Contributor: koral <koral at mailoo dot org>
7# Contributor: Anders Bennehag
8
9pkgname=nix
10pkgver=2.2.1
11pkgrel=1
12pkgdesc="A purely functional package manager"
13arch=('i686' 'x86_64' 'armv7h')
14url="https://nixos.org/nix"
15license=('LGPL')
16depends=('gc' 'libsodium' 'boost' 'brotli' 'readline')
17makedepends=('bzip2' 'gc' 'openssl')
18install=nix.install
19source=("https://nixos.org/releases/nix/nix-$pkgver/nix-$pkgver.tar.xz")
20sha256sums=('85f8d3518060803e44e51b1a9ada1a39cea904b36a632ba1844043a0b63be515')
21
22
23prepare() {
24 cd "$pkgname-$pkgver"
25}
26
27build () {
28 cd "$pkgname-$pkgver"
29 export EDITLINE_CFLAGS="-DREADLINE"
30 export EDITLINE_LIBS="/usr/lib/libreadline.so"
31 ./configure --prefix=/usr \
32 --libexecdir="/usr/lib/$pkgname" \
33 --sysconfdir=/etc \
34 --enable-gc
35 make
36}
37
38package() {
39 cd "$pkgname-$pkgver"
40 make DESTDIR="$pkgdir" install
41 install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
42}
diff --git a/nix/nix.install b/nix/nix.install
new file mode 100644
index 0000000..613cee6
--- /dev/null
+++ b/nix/nix.install
@@ -0,0 +1,97 @@
1
2pre_install () {
3 # Check that the group and users don't already exist
4 if [[ -n $(cut -d: -f1 /etc/group | grep -w nixbld) ]]; then
5 echo "The nixbld group already exists. This install cannot proceed."
6 exit 1
7 fi
8
9 for i in {1..10}; do
10 if [[ -n $(cut -d: -f1 /etc/passwd | grep -w nixbld$i) ]]; then
11 echo "The nixbld$i user already exists. This install cannot proceed."
12 exit 1
13 fi
14 done
15}
16
17create_users () {
18 # Create a nixbld group.
19 groupadd -r nixbld
20
21 # Create 10 nixbld{i} users
22 for i in {1..10}; do
23 useradd -g nixbld -G nixbld -r -N -M -d /var/empty -s /sbin/nologin nixbld$i
24 done
25}
26
27delete_users() {
28 # Remove the users
29 for i in {1..10}; do
30 userdel nixbld$i
31 done
32
33 # Remove the group
34 groupdel nixbld
35}
36
37create_store() {
38 # Create nix folders and set permissions
39 mkdir -p /nix/store
40 chown root.nixbld /nix/store
41 chmod 1775 /nix/store
42 mkdir -p -m 1777 /nix/var/nix/gcroots/per-user
43 mkdir -p -m 1777 /nix/var/nix/profiles/per-user
44}
45
46restore_store() {
47 # Restore folder permissions
48 chmod 755 /nix/store
49 chown root.root /nix/store
50}
51
52init_channels() {
53 # Initialize default nix channel
54 echo "Initializing default nix channel"
55 source /etc/profile.d/nix.sh
56 nix-channel --update
57}
58
59daemon_info() {
60 echo "To start the nix daemon, execute one of the following:"
61 echo
62 echo " systemctl enable nix-daemon.socket # Sets the daemon to start on next boot"
63 echo " systemctl enable --now nix-daemon.socket # Starts now and on next boot too"
64 echo
65 echo "Also, if this is a new install, you need to start a new login shell or otherwise"
66 echo
67 echo " source /etc/profile.d/nix.sh"
68 echo " source /etc/profile.d/nix-daemon.sh"
69 echo
70 echo "Once your environment is set-up, you will need to add some channels. You can see how"
71 echo "to do that here:"
72 echo " https://nixos.org/nix/manual/#sec-channels"
73}
74
75post_install() {
76 create_users
77 create_store
78 init_channels
79 daemon_info
80}
81
82pre_upgrade() {
83 systemctl stop nix-daemon.socket
84 systemctl stop nix-daemon
85}
86
87post_upgrade() {
88 delete_users
89 create_users
90 create_store
91 daemon_info
92}
93
94pre_remove() {
95 restore_store
96 delete_users
97}