Gentoo Archives: gentoo-commits

From: Sergei Trofimovich <slyfox@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-apps/nix/, sys-apps/nix/files/
Date: Thu, 22 Feb 2018 22:53:18
Message-Id: 1519339990.a4eac509af375f8c67e219415b3281c3a457678f.slyfox@gentoo
1 commit: a4eac509af375f8c67e219415b3281c3a457678f
2 Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
3 AuthorDate: Thu Feb 22 22:12:06 2018 +0000
4 Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
5 CommitDate: Thu Feb 22 22:53:10 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a4eac509
7
8 sys-apps/nix: bump up to 2.0
9
10 Package-Manager: Portage-2.3.24, Repoman-2.3.6
11
12 sys-apps/nix/Manifest | 1 +
13 sys-apps/nix/files/nix-1.11.6-systemd.patch | 2 +-
14 sys-apps/nix/files/nix-2.0-user-path.patch | 10 +++
15 sys-apps/nix/nix-2.0.ebuild | 133 ++++++++++++++++++++++++++++
16 4 files changed, 145 insertions(+), 1 deletion(-)
17
18 diff --git a/sys-apps/nix/Manifest b/sys-apps/nix/Manifest
19 index 6de2c3842c5..89f05d13c91 100644
20 --- a/sys-apps/nix/Manifest
21 +++ b/sys-apps/nix/Manifest
22 @@ -1,2 +1,3 @@
23 DIST nix-1.11.15.tar.xz 632544 BLAKE2B 3624c396c67a7c64e2ba16fd500951e6cf1b6f29f31929793072b5dfcdf1ffe40d5645c58d3967dd82d6c8d0bf6e5e2598a0d8d5fc3f82b22ea279a7854b1aca SHA512 449b3c78b74c776215dfbe9d6d09b96d8c6abf996c69c525073df12d0cffb1a2868890d356fbb52c794e2c6f485018756395625e7b170166f7c6f9e2bdd364d9
24 DIST nix-1.11.16.tar.xz 632440 BLAKE2B 0b1966b1445a18616d6ff33e7fa3d1776626872c7cfeb54be4c77b998841db69f1e6aea7638edb21fa67442b953fb1cbaf7752c841d7d21f62dd63885a823834 SHA512 164f728c96fc6609134334e61f674961dfc0f02bd2f5d1d7800d2623fe80d896bfd0b7fba0a723b1bfe23663d4c7cf3e419a7c1992d67e80eb3d6b3bdf60a2a8
25 +DIST nix-2.0.tar.xz 794084 BLAKE2B 9596788df6aaad144d408e95f34575bf985849bb57424c7aac4dc1f2f2d846302bf78fc05682ce92fbaf000db04a326f867a76f5963a80b72b63e3678754247f SHA512 4531b4648108019d44521af94f8243936d2df62701395c0c448795f1984d4b5ade2438c92d12e5414d493909811e3bcb902c85539932c7e44d98d4254a2a531d
26
27 diff --git a/sys-apps/nix/files/nix-1.11.6-systemd.patch b/sys-apps/nix/files/nix-1.11.6-systemd.patch
28 index f890ee6f047..5a77d7c77e5 100644
29 --- a/sys-apps/nix/files/nix-1.11.6-systemd.patch
30 +++ b/sys-apps/nix/files/nix-1.11.6-systemd.patch
31 @@ -1,4 +1,4 @@
32 -Make 'nix-daemon' a goof unit for 'systemctl enable nix-daemon.service'.
33 +Make 'nix-daemon' a good unit for 'systemctl enable nix-daemon.service'.
34 diff --git a/misc/systemd/nix-daemon.service.in b/misc/systemd/nix-daemon.service.in
35 index 5fc04a3..2565520 100644
36 --- a/misc/systemd/nix-daemon.service.in
37
38 diff --git a/sys-apps/nix/files/nix-2.0-user-path.patch b/sys-apps/nix/files/nix-2.0-user-path.patch
39 new file mode 100644
40 index 00000000000..486a05bb595
41 --- /dev/null
42 +++ b/sys-apps/nix/files/nix-2.0-user-path.patch
43 @@ -0,0 +1,10 @@
44 +On gentoo 'id' is /usr/bin/id while @coreutils@ is /bin.
45 +diff --git a/scripts/nix-profile.sh.in b/scripts/nix-profile.sh.in
46 +index a5f5227..1dc5379 100644
47 +--- a/scripts/nix-profile.sh.in
48 ++++ b/scripts/nix-profile.sh.in
49 +@@ -2,3 +2,3 @@ if [ -n "$HOME" ] && [ -n "$USER" ]; then
50 + __savedpath="$PATH"
51 +- export PATH=@coreutils@
52 ++ export PATH=@coreutils@:@prefix@/bin:@prefix@/../bin
53 +
54
55 diff --git a/sys-apps/nix/nix-2.0.ebuild b/sys-apps/nix/nix-2.0.ebuild
56 new file mode 100644
57 index 00000000000..bea6bd1a424
58 --- /dev/null
59 +++ b/sys-apps/nix/nix-2.0.ebuild
60 @@ -0,0 +1,133 @@
61 +# Copyright 1999-2018 Gentoo Foundation
62 +# Distributed under the terms of the GNU General Public License v2
63 +
64 +EAPI=6
65 +
66 +inherit autotools flag-o-matic readme.gentoo-r1 user
67 +
68 +DESCRIPTION="A purely functional package manager"
69 +HOMEPAGE="https://nixos.org/nix"
70 +
71 +SRC_URI="http://nixos.org/releases/${PN}/${P}/${P}.tar.xz"
72 +LICENSE="LGPL-2.1"
73 +SLOT="0"
74 +KEYWORDS="~amd64 ~x86"
75 +IUSE="+etc_profile +gc doc sodium"
76 +
77 +RDEPEND="
78 + app-arch/brotli
79 + app-arch/bzip2
80 + app-arch/xz-utils
81 + dev-db/sqlite
82 + dev-libs/openssl:0=
83 + net-misc/curl
84 + sys-libs/libseccomp
85 + sys-libs/zlib
86 + gc? ( dev-libs/boehm-gc[cxx] )
87 + doc? ( dev-libs/libxml2
88 + dev-libs/libxslt
89 + app-text/docbook-xsl-stylesheets
90 + )
91 + sodium? ( dev-libs/libsodium:0= )
92 +"
93 +DEPEND="${RDEPEND}
94 + >=sys-devel/bison-2.6
95 + >=sys-devel/flex-2.5.35
96 +"
97 +
98 +PATCHES=(
99 + "${FILESDIR}"/${PN}-1.11.6-systemd.patch
100 + "${FILESDIR}"/${PN}-1.11.6-respect-CXXFLAGS.patch
101 + "${FILESDIR}"/${PN}-1.11.6-respect-LDFLAGS.patch
102 + "${FILESDIR}"/${PN}-2.0-user-path.patch
103 +)
104 +
105 +DISABLE_AUTOFORMATTING=yes
106 +DOC_CONTENTS=" Quick start user guide on Gentoo:
107 +
108 +[as root] enable nix-daemon service:
109 + [systemd] # systemctl enable nix-daemon
110 + [openrc] # rc-update add nix-daemon
111 +[as a user] relogin to get environment and profile update
112 +[as a user] fetch nixpkgs update:
113 + \$ nix-channel --update
114 +[as a user] install nix packages:
115 + \$ nix-env -i mc
116 +[as a user] configure environment:
117 + Somewhere in .bash_profile you might want to set
118 + LOCALE_ARCHIVE=\$HOME/.nix-profile/lib/locale/locale-archive
119 + but please read https://github.com/NixOS/nixpkgs/issues/21820
120 +
121 +Next steps:
122 + nix package manager user manual: http://nixos.org/nix/manual/
123 +"
124 +
125 +pkg_setup() {
126 + enewgroup nixbld
127 + for i in {1..10}; do
128 + # we list 'nixbld' twice to
129 + # both assign a primary group for user
130 + # and add a user to /etc/group
131 + enewuser nixbld${i} -1 -1 /var/empty nixbld,nixbld
132 + done
133 +}
134 +
135 +src_prepare() {
136 + default
137 +
138 + eautoreconf
139 +}
140 +
141 +src_configure() {
142 + econf \
143 + --localstatedir="${EPREFIX}"/nix/var \
144 + $(use_enable gc)
145 +}
146 +
147 +src_compile() {
148 + local make_vars=(
149 + OPTIMIZE=0 # disable hardcoded -O3
150 + V=1 # verbose build
151 + )
152 + emake "${make_vars[@]}"
153 +}
154 +
155 +src_install() {
156 + # TODO: emacs highlighter
157 + default
158 +
159 + readme.gentoo_create_doc
160 +
161 + # here we use an eager variant of something that
162 + # is lazily done by nix-daemon and root nix-env
163 +
164 + # TODO: will need a tweak for prefix
165 + keepdir /nix/store
166 + fowners root:nixbld /nix/store
167 + fperms 1775 /nix/store
168 +
169 + keepdir /nix/var/nix/channel-cache
170 + fperms 0777 /nix/var/nix/channel-cache
171 +
172 + keepdir /nix/var/nix/profiles/per-user
173 + fperms 1777 /nix/var/nix/profiles/per-user
174 +
175 + # setup directories nix-daemon: /etc/profile.d/nix-daemon.sh
176 + keepdir /nix/var/nix/gcroots/per-user
177 + fperms 1777 /nix/var/nix/gcroots/per-user
178 +
179 + newinitd "${FILESDIR}"/nix-daemon.initd nix-daemon
180 +
181 + if ! use etc_profile; then
182 + rm "${ED}"/etc/profile.d/nix.sh || die
183 + rm "${ED}"/etc/profile.d/nix-daemon.sh || die
184 + fi
185 +}
186 +
187 +pkg_postinst() {
188 + if ! use etc_profile; then
189 + ewarn "${EROOT}etc/profile.d/nix.sh was removed (due to USE=-etc_profile)."
190 + fi
191 +
192 + readme.gentoo_print_elog
193 +}