blob: 45aca6b4d2c05705abfbe8c31c688d5f13ebb5ff (
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit autotools readme.gentoo-r1 user
DESCRIPTION="GNU package manager (nix sibling)"
HOMEPAGE="https://www.gnu.org/software/guix/"
# taken from gnu/local.mk and gnu/packages/bootstrap.scm
BOOT_GUILE=(
"aarch64-linux 20170217 guile-2.0.14.tar.xz"
"armhf-linux 20150101 guile-2.0.11.tar.xz"
"i686-linux 20131110 guile-2.0.9.tar.xz"
"mips64el-linux 20131110 guile-2.0.9.tar.xz"
"x86_64-linux 20131110 guile-2.0.9.tar.xz"
)
binary_src_uris() {
local system_date_guilep uri
for system_date_guilep in "${BOOT_GUILE[@]}"; do
# $1 $2 $3
# "armhf-linux 20150101 guile-2.0.11.tar.xz"
set -- ${system_date_guilep}
uri="mirror://gnu-alpha/${PN}/bootstrap/$1/$2/$3"
# ${uri} -> guix-bootstrap-armhf-linux-20150101-guile-2.0.11.tar.xz.bootstrap
echo "${uri} -> guix-bootstrap-$1-$2-$3.bootstrap"
done
}
# copy bootstrap binaries from DISTDIR to ${S}
copy_boot_guile_binaries() {
local system_date_guilep
for system_date_guilep in "${BOOT_GUILE[@]}"; do
# $1 $2 $3
# "armhf-linux 20150101 guile-2.0.11.tar.xz"
set -- ${system_date_guilep}
cp "${DISTDIR}"/guix-bootstrap-$1-$2-$3.bootstrap gnu/packages/bootstrap/$1/$3 || die
done
}
SRC_URI="mirror://gnu-alpha/${PN}/${P}.tar.gz
$(binary_src_uris)"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
RESTRICT=test # complains about size of config.log and refuses to start tests
RDEPEND="
dev-libs/libgcrypt:0=
>=dev-scheme/guile-2:=[regex,networking,threads]
dev-scheme/bytestructures
dev-scheme/guile-git
dev-scheme/guile-json
dev-scheme/guile-sqlite3
net-libs/gnutls[guile]
sys-libs/zlib
app-arch/bzip2
dev-db/sqlite
"
DEPEND="${RDEPEND}
"
PATCHES=("${FILESDIR}"/${PN}-0.13.0-default-daemon.patch)
QA_PREBUILT="usr/share/guile/site/*/gnu/packages/bootstrap/*"
DISABLE_AUTOFORMATTING=yes
DOC_CONTENTS="Quick start user guide on Gentoo:
[as root] allow binary substitution to be downloaded (optional)
# guix archive --authorize < /usr/share/guix/hydra.gnu.org.pub
[as root] enable guix-daemon service:
[systemd] # systemctl enable guix-daemon
[openrc] # rc-update add guix-daemon
[as a user] ln -sf /var/guix/profiles/per-user/\$USER/guix-profile \$HOME/.guix-profile
[as a user] install guix packages:
\$ guix package -i hello
[as a user] configure environment:
Somewhere in .bash_profile you might want to set
export GUIX_LOCPATH=\$HOME/.guix-profile/lib/locale
Next steps:
guix package manager user manual: https://www.gnu.org/software/guix/manual/guix.html
"
pkg_setup() {
enewgroup guixbuild
for i in {1..10}; do
# we list 'guixbuild' twice to
# both assign a primary group for user
# and add a user to /etc/group
enewuser guixbuilder${i} -1 -1 /var/empty guixbuild,guixbuild
done
}
src_prepare() {
copy_boot_guile_binaries
default
# build system is very eager to run automake itself: bug #625166
eautoreconf
# guile is trying to avoid recompilation by checking if file
# /usr/lib64/guile/2.2/site-ccache/guix/modules.go
# is newer than
# guix/modules.scm
# In case it is instead of using 'guix/modules.scm' guile
# loads system one (from potentially older version of guix).
# To work it around we bump last modification timestamp of
# '*.scm' files.
find "${S}" -name "*.scm" -exec touch {} + || die
}
src_configure() {
# to be compatible with guix from /gnu/store
econf \
--localstatedir="${EPREFIX}"/var
}
src_compile() {
# guile occasionally fails with 'bad address'
emake -j1
}
src_install() {
# TODO: emacs highlighter
default
readme.gentoo_create_doc
keepdir /etc/guix
# TODO: will need a tweak for prefix
keepdir /gnu/store
fowners root:guixbuild /gnu/store
fperms 1775 /gnu/store
keepdir /var/guix/profiles/per-user
fperms 1777 /var/guix/profiles/per-user
newinitd "${FILESDIR}"/guix-daemon.initd guix-daemon
}
pkg_postinst() {
readme.gentoo_print_elog
}
|