aboutsummaryrefslogtreecommitdiff
path: root/tests/guix-environment.sh
blob: 1424ea9a880017199bf60f7fe96f1334aa8bd3a4 (about) (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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
# GNU Guix --- Functional package management for GNU
# Copyright © 2015, 2016, 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
#
# This file is part of GNU Guix.
#
# GNU Guix is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or (at
# your option) any later version.
#
# GNU Guix is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

#
# Test 'guix environment'.
#

set -e

guix environment --version

tmpdir="t-guix-environment-$$"
gcroot="t-guix-environment-gc-root-$$"
trap 'rm -r "$tmpdir"; rm -f "$gcroot"' EXIT

mkdir "$tmpdir"

# 'guix environment' launches /bin/sh if 'SHELL' is unset, so export 'SHELL'
# since we know it's valid (build environments lack /bin/sh.)
export SHELL

# Check the environment variables for the bootstrap Guile.
guix environment --bootstrap --ad-hoc guile-bootstrap --pure \
     --search-paths > "$tmpdir/a"
guix environment --bootstrap --ad-hoc guile-bootstrap:out --pure \
     --search-paths > "$tmpdir/b"

# $PATH must appear in the search paths, and nothing else.
grep -E '^export PATH=.*profile/bin' "$tmpdir/a"
test "`wc -l < "$tmpdir/a"`" = 1

# Guile must be on $PATH.
test -x `sed -r 's/^export PATH="(.*)"/\1/' "$tmpdir/a"`/guile

cmp "$tmpdir/a" "$tmpdir/b"

# Check '--preserve'.
GUIX_TEST_ABC=1
GUIX_TEST_DEF=2
GUIX_TEST_XYZ=3
export GUIX_TEST_ABC GUIX_TEST_DEF GUIX_TEST_XYZ
guix environment --bootstrap --ad-hoc guile-bootstrap --pure	\
     --preserve='^GUIX_TEST_A' --preserve='^GUIX_TEST_D'	\
     -- "$SHELL" -c set > "$tmpdir/a"
grep '^PATH=' "$tmpdir/a"
grep '^GUIX_TEST_ABC=' "$tmpdir/a"
grep '^GUIX_TEST_DEF=' "$tmpdir/a"
grep '^GUIX_TEST_XYZ=' "$tmpdir/a" && false

# Make sure the exit value is preserved.
if guix environment --bootstrap --ad-hoc guile-bootstrap --pure \
        -- guile -c '(exit 42)'
then
    false
else
    test $? = 42
fi

# Make sure 'GUIX_ENVIRONMENT' points to the profile.
guix environment --bootstrap --ad-hoc guile-bootstrap --pure \
     -- "$SHELL" -c 'test -f "$GUIX_ENVIRONMENT/bin/guile"'

# Make sure 'GUIX_ENVIRONMENT' points to the profile when building from a
# manifest.
echo "(use-modules (guix profiles) (gnu packages bootstrap))

(packages->manifest (list %bootstrap-guile))
" > $tmpdir/manifest.scm
guix environment --bootstrap --manifest=$tmpdir/manifest.scm --pure \
     -- "$SHELL" -c 'test -f "$GUIX_ENVIRONMENT/bin/guile"'

# Make sure '--manifest' can be specified multiple times.
cat > "$tmpdir/manifest2.scm" <<EOF
(use-modules (guix) (guix profiles)
             (guix build-system trivial)
             (gnu packages bootstrap))

(packages->manifest
 (list (package
         (inherit %bootstrap-guile)
         (name "eliug")
         (build-system trivial-build-system)
         (arguments
          (quasiquote
           (#:guile ,%bootstrap-guile
            #:builder
            (begin
              (mkdir %output)
              (mkdir (string-append %output "/eliug")))))))))
EOF
guix environment --bootstrap -m "$tmpdir/manifest.scm" \
     -m "$tmpdir/manifest2.scm" --pure \
     -- "$SHELL" -c 'test -f "$GUIX_ENVIRONMENT/bin/guile" && test -d "$GUIX_ENVIRONMENT/eliug"'

# Make sure '-r' works as expected.
rm -f "$gcroot"
expected="`guix environment --bootstrap --ad-hoc guile-bootstrap \
             -- "$SHELL" -c 'echo $GUIX_ENVIRONMENT'`"
guix environment --bootstrap -r "$gcroot" --ad-hoc guile-bootstrap \
     -- guile -c 1
test `readlink "$gcroot"` = "$expected"

# Make sure '-r' is idempotent.
guix environment --bootstrap -r "$gcroot" --ad-hoc guile-bootstrap \
     -- guile -c 1
test `readlink "$gcroot"` = "$expected"

# Make sure '-p' works as expected.
test $(guix environment -p "$gcroot" -- "$SHELL" -c 'echo $GUIX_ENVIRONMENT') = "$expected"
paths1="$(guix environment -p "$gcroot" --search-paths)"
paths2="$(guix environment --bootstrap --ad-hoc guile-bootstrap --search-paths)"
test "$paths1" = "$paths2"

rm "$gcroot"

# Try '-r' with a relative file name.
(cd "$tmpdir"; mkdir "gc-root";
 guix environment --bootstrap -r "gc-root/r" --ad-hoc guile-bootstrap \
      -- guile -c 1;
 rm "gc-root/r"; rmdir "gc-root")

# Same with an absolute file name.
guix environment --bootstrap -r "$PWD/$gcroot" --ad-hoc guile-bootstrap \
     -- guile -c 1
test `readlink "$gcroot"` = "$expected"

case "`uname -m`" in
    x86_64)
	# On x86_64, we should be able to create a 32-bit environment.
	guix environment --bootstrap --ad-hoc guile-bootstrap --pure	\
	     -- guile -c '(exit (string-prefix? "x86_64" %host-type))'
	guix environment --bootstrap --ad-hoc guile-bootstrap --pure	\
	     -s i686-linux						\
	     -- guile -c '(exit (string-prefix? "i686" %host-type))'
	;;
    *)
	echo "nothing to do" >&2
	;;
esac

# Make sure we can build the environment of 'guix'.  There may be collisions
# in its profile (e.g., for 'gzip'), but we have to accept them.
guix environment guix --bootstrap -n

# Try program transformation options.
mkdir "$tmpdir/emacs-36.8"
drv="`guix environment --ad-hoc emacs -n 2>&1 | grep 'emacs.*\.drv'`"
transformed_drv="`guix environment --ad-hoc emacs --with-source="$tmpdir/emacs-36.8" -n 2>&1 | grep 'emacs.*\.drv'`"
test -n "$drv"
test "$drv" != "$transformed_drv"
case "$transformed_drv" in
    *-emacs-36.8.drv) true;;
    *)                false;;
esac
rmdir "$tmpdir/emacs-36.8"

# Transformation options without '--ad-hoc'.
drv="`guix environment -n emacs-geiser 2>&1 | grep '\.drv$'`"
transformed_drv="`guix environment -n emacs-geiser \
  --with-input=emacs-minimal=vim 2>&1 | grep '\.drv$'`"
test "$drv" != "$transformed_drv"
case "$drv" in
    *-emacs-minimal*.drv*) true;;
    *)                     false;;
esac
case "$transformed_drv" in
    *-emacs-minimal*.drv*) false;;
    *)                     true;;
esac
case "$transformed_drv" in
    *-vim*.drv*) true;;
    *)           false;;
esac


if guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null
then
    # Compute the build environment for the initial GNU Make.
    guix environment --bootstrap --no-substitutes --search-paths --pure \
         -e '(@ (guix tests) gnu-make-for-tests)' > "$tmpdir/a"

    # Make sure bootstrap binaries are in the profile.
    profile=`grep "^export PATH" "$tmpdir/a" | sed -r 's|^.*="(.*)/bin"|\1|'`

    # Make sure the bootstrap binaries are all listed where they belong.
    grep -E "^export PATH=\"$profile/bin\""         "$tmpdir/a"
    grep -E "^export C_INCLUDE_PATH=\"$profile/include\"" "$tmpdir/a"
    grep -E "^export LIBRARY_PATH=\"$profile/lib\"" "$tmpdir/a"
    for dep in bootstrap-binaries-0 gcc-bootstrap-0 glibc-bootstrap-0
    do
	guix gc --references "$profile" | grep "$dep"
    done

    # 'make-boot0' itself must not be listed.
    guix gc --references "$profile" | grep make-boot0 && false

    # Make sure that the shell spawned with '--exec' sees the same environment
    # as returned by '--search-paths'.
    guix environment --bootstrap --no-substitutes --pure \
         -e '(@ (guix tests) gnu-make-for-tests)' \
         -- /bin/sh -c 'echo $PATH $C_INCLUDE_PATH $LIBRARY_PATH' > "$tmpdir/b"
    ( . "$tmpdir/a" ; echo $PATH $C_INCLUDE_PATH $LIBRARY_PATH ) > "$tmpdir/c"
    cmp "$tmpdir/b" "$tmpdir/c"

    rm "$tmpdir"/*

    # The following test assumes 'make-boot0' has a "debug" output.
    make_boot0_debug="`guix build -e '(@ (guix tests) gnu-make-for-tests)' | grep -e -debug`"
    test "x$make_boot0_debug" != "x"

    # Make sure the "debug" output is not listed.
    guix gc --references "$profile" | grep "$make_boot0_debug" && false

    # Compute the build environment for the initial GNU Make, but add in the
    # bootstrap Guile as an ad-hoc addition.
    guix environment --bootstrap --no-substitutes --search-paths --pure	\
         -e '(@ (guix tests) gnu-make-for-tests)'		\
         --ad-hoc guile-bootstrap > "$tmpdir/a"
    profile=`grep "^export PATH" "$tmpdir/a" | sed -r 's|^.*="(.*)/bin"|\1|'`

    # Make sure the bootstrap binaries are all listed where they belong.
    grep -E "^export PATH=\"$profile/bin\""         "$tmpdir/a"
    grep -E "^export C_INCLUDE_PATH=\"$profile/include\"" "$tmpdir/a"
    grep -E "^export LIBRARY_PATH=\"$profile/lib\"" "$tmpdir/a"
    for dep in bootstrap-binaries-0 gcc-bootstrap-0 glibc-bootstrap-0 \
				    guile-bootstrap
    do
	guix gc --references "$profile" | grep "$dep"
    done

    # Make sure a package list with plain package objects and package+output
    # tuples can be used with -e.
    expr_list_test_code="
(list (@ (guix tests) gnu-make-for-tests)
      (list (@ (gnu packages bootstrap) %bootstrap-guile) \"out\"))"

    guix environment --bootstrap --ad-hoc --no-substitutes --search-paths \
         --pure -e "$expr_list_test_code" > "$tmpdir/a"
    profile=`grep "^export PATH" "$tmpdir/a" | sed -r 's|^.*="(.*)/bin"|\1|'`

    for dep in make-test-boot0 guile-bootstrap
    do
	guix gc --references "$profile" | grep "$dep"
    done
fi
guix-git/doc/guix-cookbook.texi:82 guix-git/doc/guix-cookbook.texi:122
-#: guix-git/doc/guix-cookbook.texi:1559 guix-git/doc/guix-cookbook.texi:1560
+#: doc/guix-cookbook.texi:84 doc/guix-cookbook.texi:124
+#: doc/guix-cookbook.texi:1562 doc/guix-cookbook.texi:1563
#, no-wrap
msgid "System Configuration"
msgstr "Systemkonfiguration"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:82
+#: doc/guix-cookbook.texi:84
msgid "Customizing the GNU System"
msgstr "Das GNU-System anpassen."
#. type: chapter
-#: guix-git/doc/guix-cookbook.texi:82 guix-git/doc/guix-cookbook.texi:146
-#: guix-git/doc/guix-cookbook.texi:2991 guix-git/doc/guix-cookbook.texi:2992
+#: doc/guix-cookbook.texi:84 doc/guix-cookbook.texi:149
+#: doc/guix-cookbook.texi:3293 doc/guix-cookbook.texi:3294
#, no-wrap
msgid "Containers"
msgstr "Container"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:82
+#: doc/guix-cookbook.texi:84
msgid "Isolated environments and nested systems"
msgstr "Isolierte Umgebungen und verschachtelte Systeme."
#. type: chapter
-#: guix-git/doc/guix-cookbook.texi:82 guix-git/doc/guix-cookbook.texi:156
-#: guix-git/doc/guix-cookbook.texi:3395 guix-git/doc/guix-cookbook.texi:3396
+#: doc/guix-cookbook.texi:84 doc/guix-cookbook.texi:159
+#: doc/guix-cookbook.texi:3697 doc/guix-cookbook.texi:3698
#, no-wrap
msgid "Advanced package management"
msgstr "Fortgeschrittene Paketverwaltung"
# angelehnt an Alle Macht dem Volke in Übersetzung von Die Mutter
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:82
+#: doc/guix-cookbook.texi:84
msgid "Power to the users!"
msgstr "Alle Macht den Nutzern!"
#. type: chapter
-#: guix-git/doc/guix-cookbook.texi:82 guix-git/doc/guix-cookbook.texi:168
-#: guix-git/doc/guix-cookbook.texi:3802 guix-git/doc/guix-cookbook.texi:3803
+#: doc/guix-cookbook.texi:84 doc/guix-cookbook.texi:4100
+#: doc/guix-cookbook.texi:4101
+#, no-wrap
+msgid "Software Development"
+msgstr "Software-Entwicklung"
+
+#. type: menuentry
+#: doc/guix-cookbook.texi:84
+msgid "Environments, continuous integration, etc."
+msgstr "Umgebungen, kontinuierliche Integration usw."
+
+#. type: chapter
+#: doc/guix-cookbook.texi:84 doc/guix-cookbook.texi:171
+#: doc/guix-cookbook.texi:4749 doc/guix-cookbook.texi:4750
#, no-wrap
msgid "Environment management"
msgstr "Umgebungen verwalten"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:82
+#: doc/guix-cookbook.texi:84
msgid "Control environment"
msgstr "Umgebungen festlegen."
#. type: chapter
-#: guix-git/doc/guix-cookbook.texi:82 guix-git/doc/guix-cookbook.texi:172
-#: guix-git/doc/guix-cookbook.texi:3927 guix-git/doc/guix-cookbook.texi:3928
+#: doc/guix-cookbook.texi:84 doc/guix-cookbook.texi:175
+#: doc/guix-cookbook.texi:4874 doc/guix-cookbook.texi:4875
#, no-wrap
msgid "Installing Guix on a Cluster"
msgstr "Auf einem Rechencluster installieren"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:82
+#: doc/guix-cookbook.texi:84
msgid "High-performance computing."
msgstr "Hochleistungsrechnen mit Guix."
#. type: chapter
-#: guix-git/doc/guix-cookbook.texi:86 guix-git/doc/guix-cookbook.texi:4300
-#: guix-git/doc/guix-cookbook.texi:4301
+#: doc/guix-cookbook.texi:88 doc/guix-cookbook.texi:5247
+#: doc/guix-cookbook.texi:5248
#, no-wrap
msgid "Acknowledgments"
msgstr "Danksagungen"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:86
+#: doc/guix-cookbook.texi:88
msgid "Thanks!"
msgstr "Danke!"
#. type: appendix
-#: guix-git/doc/guix-cookbook.texi:86 guix-git/doc/guix-cookbook.texi:4327
-#: guix-git/doc/guix-cookbook.texi:4328
+#: doc/guix-cookbook.texi:88 doc/guix-cookbook.texi:5274
+#: doc/guix-cookbook.texi:5275
#, no-wrap
msgid "GNU Free Documentation License"
msgstr "GNU-Lizenz für freie Dokumentation"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:86
+#: doc/guix-cookbook.texi:88
msgid "The license of this document."
msgstr "Die Lizenz dieses Dokuments."
#. type: unnumbered
-#: guix-git/doc/guix-cookbook.texi:86 guix-git/doc/guix-cookbook.texi:4333
-#: guix-git/doc/guix-cookbook.texi:4334
+#: doc/guix-cookbook.texi:88 doc/guix-cookbook.texi:5280
+#: doc/guix-cookbook.texi:5281
#, no-wrap
msgid "Concept Index"
msgstr "Konzeptverzeichnis"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:86
+#: doc/guix-cookbook.texi:88
msgid "Concepts."
msgstr "Konzepte."
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:89
+#: doc/guix-cookbook.texi:91
msgid "--- The Detailed Node Listing ---"
msgstr "--- Detaillierte Liste der Knoten ---"
#. type: section
-#: guix-git/doc/guix-cookbook.texi:93 guix-git/doc/guix-cookbook.texi:199
-#: guix-git/doc/guix-cookbook.texi:201 guix-git/doc/guix-cookbook.texi:202
+#: doc/guix-cookbook.texi:95 doc/guix-cookbook.texi:202
+#: doc/guix-cookbook.texi:204 doc/guix-cookbook.texi:205
#, no-wrap
msgid "A Scheme Crash Course"
msgstr "Ein Schnellkurs in Scheme"
#. type: section
-#: guix-git/doc/guix-cookbook.texi:97 guix-git/doc/guix-cookbook.texi:99
-#: guix-git/doc/guix-cookbook.texi:488 guix-git/doc/guix-cookbook.texi:490
-#: guix-git/doc/guix-cookbook.texi:491
+#: doc/guix-cookbook.texi:99 doc/guix-cookbook.texi:101
+#: doc/guix-cookbook.texi:491 doc/guix-cookbook.texi:493
+#: doc/guix-cookbook.texi:494
#, no-wrap
msgid "Packaging Tutorial"
msgstr "Anleitung zum Paketeschreiben"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:97 guix-git/doc/guix-cookbook.texi:488
+#: doc/guix-cookbook.texi:99 doc/guix-cookbook.texi:491
msgid "A tutorial on how to add packages to Guix."
msgstr "Eine Anleitung, wie Sie Pakete zu Guix hinzufügen."
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:108 guix-git/doc/guix-cookbook.texi:538
-#: guix-git/doc/guix-cookbook.texi:540 guix-git/doc/guix-cookbook.texi:541
+#: doc/guix-cookbook.texi:110 doc/guix-cookbook.texi:541
+#: doc/guix-cookbook.texi:543 doc/guix-cookbook.texi:544
#, no-wrap
msgid "A ``Hello World'' package"
msgstr "Ein Hallo-Welt-Paket"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:108 guix-git/doc/guix-cookbook.texi:110
-#: guix-git/doc/guix-cookbook.texi:538 guix-git/doc/guix-cookbook.texi:731
-#: guix-git/doc/guix-cookbook.texi:732
+#: doc/guix-cookbook.texi:110 doc/guix-cookbook.texi:112
+#: doc/guix-cookbook.texi:541 doc/guix-cookbook.texi:734
+#: doc/guix-cookbook.texi:735
#, no-wrap
msgid "Setup"
msgstr "Herangehensweisen"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:108 guix-git/doc/guix-cookbook.texi:538
-#: guix-git/doc/guix-cookbook.texi:971 guix-git/doc/guix-cookbook.texi:972
+#: doc/guix-cookbook.texi:110 doc/guix-cookbook.texi:541
+#: doc/guix-cookbook.texi:974 doc/guix-cookbook.texi:975
#, no-wrap
msgid "Extended example"
msgstr "Erweitertes Beispiel"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:108 guix-git/doc/guix-cookbook.texi:538
-#: guix-git/doc/guix-cookbook.texi:1375 guix-git/doc/guix-cookbook.texi:1376
+#: doc/guix-cookbook.texi:110 doc/guix-cookbook.texi:541
+#: doc/guix-cookbook.texi:1378 doc/guix-cookbook.texi:1379
#, no-wrap
msgid "Other build systems"
msgstr "Andere Erstellungssysteme"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:108 guix-git/doc/guix-cookbook.texi:116
-#: guix-git/doc/guix-cookbook.texi:538 guix-git/doc/guix-cookbook.texi:1393
-#: guix-git/doc/guix-cookbook.texi:1394
+#: doc/guix-cookbook.texi:110 doc/guix-cookbook.texi:118
+#: doc/guix-cookbook.texi:541 doc/guix-cookbook.texi:1396
+#: doc/guix-cookbook.texi:1397
#, no-wrap
msgid "Programmable and automated package definition"
msgstr "Programmierbare und automatisierte Paketdefinition"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:108 guix-git/doc/guix-cookbook.texi:538
-#: guix-git/doc/guix-cookbook.texi:1510 guix-git/doc/guix-cookbook.texi:1511
+#: doc/guix-cookbook.texi:110 doc/guix-cookbook.texi:541
+#: doc/guix-cookbook.texi:1513 doc/guix-cookbook.texi:1514
#, no-wrap
msgid "Getting help"
msgstr "Hilfe bekommen"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:108 guix-git/doc/guix-cookbook.texi:538
-#: guix-git/doc/guix-cookbook.texi:1523 guix-git/doc/guix-cookbook.texi:1524
+#: doc/guix-cookbook.texi:110 doc/guix-cookbook.texi:541
+#: doc/guix-cookbook.texi:1526 doc/guix-cookbook.texi:1527
#, no-wrap
msgid "Conclusion"
msgstr "Schlusswort"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:108 guix-git/doc/guix-cookbook.texi:538
-#: guix-git/doc/guix-cookbook.texi:1544 guix-git/doc/guix-cookbook.texi:1545
+#: doc/guix-cookbook.texi:110 doc/guix-cookbook.texi:541
+#: doc/guix-cookbook.texi:1547 doc/guix-cookbook.texi:1548
#, no-wrap
msgid "References"
msgstr "Literaturverzeichnis"
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:114 guix-git/doc/guix-cookbook.texi:749
-#: guix-git/doc/guix-cookbook.texi:751 guix-git/doc/guix-cookbook.texi:752
+#: doc/guix-cookbook.texi:116 doc/guix-cookbook.texi:752
+#: doc/guix-cookbook.texi:754 doc/guix-cookbook.texi:755
#, no-wrap
msgid "Local file"
msgstr "Lokale Datei"
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:114 guix-git/doc/guix-cookbook.texi:749
-#: guix-git/doc/guix-cookbook.texi:771 guix-git/doc/guix-cookbook.texi:772
+#: doc/guix-cookbook.texi:116 doc/guix-cookbook.texi:752
+#: doc/guix-cookbook.texi:774 doc/guix-cookbook.texi:775
#, no-wrap
msgid "Channels"
msgstr "Kanäle"
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:114 guix-git/doc/guix-cookbook.texi:749
-#: guix-git/doc/guix-cookbook.texi:885 guix-git/doc/guix-cookbook.texi:886
+#: doc/guix-cookbook.texi:116 doc/guix-cookbook.texi:752
+#: doc/guix-cookbook.texi:888 doc/guix-cookbook.texi:889
#, no-wrap
msgid "Direct checkout hacking"
msgstr "Direkt am Checkout hacken"
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:120 guix-git/doc/guix-cookbook.texi:1405
-#: guix-git/doc/guix-cookbook.texi:1407 guix-git/doc/guix-cookbook.texi:1408
+#: doc/guix-cookbook.texi:122 doc/guix-cookbook.texi:1408
+#: doc/guix-cookbook.texi:1410 doc/guix-cookbook.texi:1411
#, no-wrap
msgid "Recursive importers"
msgstr "Rekursive Importer"
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:120 guix-git/doc/guix-cookbook.texi:1405
-#: guix-git/doc/guix-cookbook.texi:1466 guix-git/doc/guix-cookbook.texi:1467
+#: doc/guix-cookbook.texi:122 doc/guix-cookbook.texi:1408
+#: doc/guix-cookbook.texi:1469 doc/guix-cookbook.texi:1470
#, no-wrap
msgid "Automatic update"
msgstr "Automatisch aktualisieren"
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:120 guix-git/doc/guix-cookbook.texi:1405
-#: guix-git/doc/guix-cookbook.texi:1484 guix-git/doc/guix-cookbook.texi:1485
+#: doc/guix-cookbook.texi:122 doc/guix-cookbook.texi:1408
+#: doc/guix-cookbook.texi:1487 doc/guix-cookbook.texi:1488
#, no-wrap
msgid "Inheritance"
msgstr "Vererbung"
#. type: section
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
-#: guix-git/doc/guix-cookbook.texi:1584 guix-git/doc/guix-cookbook.texi:1585
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
+#: doc/guix-cookbook.texi:1588 doc/guix-cookbook.texi:1589
#, no-wrap
msgid "Auto-Login to a Specific TTY"
msgstr "Automatisch an virtueller Konsole anmelden"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
msgid "Automatically Login a User to a Specific TTY"
msgstr "Benutzer an einem bestimmten TTY automatisch anmelden."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
-#: guix-git/doc/guix-cookbook.texi:1629 guix-git/doc/guix-cookbook.texi:1630
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
+#: doc/guix-cookbook.texi:1633 doc/guix-cookbook.texi:1634
#, no-wrap
msgid "Customizing the Kernel"
msgstr "Den Kernel anpassen"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
msgid "Creating and using a custom Linux kernel on Guix System."
msgstr "Einen eigenen Linux-Kernel auf Guix System erzeugen und benutzen."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
-#: guix-git/doc/guix-cookbook.texi:1867 guix-git/doc/guix-cookbook.texi:1868
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
+#: doc/guix-cookbook.texi:1871 doc/guix-cookbook.texi:1872
#, no-wrap
msgid "Guix System Image API"
msgstr "Die Image-Schnittstelle von Guix System"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
msgid "Customizing images to target specific platforms."
msgstr "Abbilder für bestimmte Plattformen anpassen."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
-#: guix-git/doc/guix-cookbook.texi:2078 guix-git/doc/guix-cookbook.texi:2079
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
+#: doc/guix-cookbook.texi:2088 doc/guix-cookbook.texi:2089
#, no-wrap
msgid "Using security keys"
msgstr "Sicherheitsschlüssel verwenden"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
msgid "How to use security keys with Guix System."
msgstr "Ihre Sicherheitsschlüssel mit Guix System gebrauchen."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
-#: guix-git/doc/guix-cookbook.texi:2155 guix-git/doc/guix-cookbook.texi:2156
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
+#: doc/guix-cookbook.texi:2210 doc/guix-cookbook.texi:2211
#, no-wrap
msgid "Dynamic DNS mcron job"
msgstr "Dynamisches DNS als mcron-Auftrag"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
msgid "Job to update the IP address behind a DuckDNS host name."
msgstr "Mit diesem Auftrag bleibt Ihre IP-Adresse bei DuckDNS aktuell."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
-#: guix-git/doc/guix-cookbook.texi:2208 guix-git/doc/guix-cookbook.texi:2209
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
+#: doc/guix-cookbook.texi:2263 doc/guix-cookbook.texi:2264
#, no-wrap
msgid "Connecting to Wireguard VPN"
msgstr "Verbinden mit Wireguard VPN"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
msgid "Connecting to a Wireguard VPN."
msgstr "Wie man sich mit einem Wireguard-VPN verbindet."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:137
-#: guix-git/doc/guix-cookbook.texi:1582 guix-git/doc/guix-cookbook.texi:2285
-#: guix-git/doc/guix-cookbook.texi:2286
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:140
+#: doc/guix-cookbook.texi:1586 doc/guix-cookbook.texi:2340
+#: doc/guix-cookbook.texi:2341
#, no-wrap
msgid "Customizing a Window Manager"
msgstr "Fensterverwalter (Window Manager) anpassen"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
msgid "Handle customization of a Window manager on Guix System."
msgstr "Wie man einen Fensterverwalter auf Guix System anpassen kann."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
-#: guix-git/doc/guix-cookbook.texi:2388 guix-git/doc/guix-cookbook.texi:2389
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
+#: doc/guix-cookbook.texi:2443 doc/guix-cookbook.texi:2444
#, no-wrap
msgid "Running Guix on a Linode Server"
msgstr "Guix auf einem Linode-Server nutzen"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
msgid "Running Guix on a Linode Server."
msgstr "Guix auf einem Linode-Server nutzen."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
-#: guix-git/doc/guix-cookbook.texi:2631 guix-git/doc/guix-cookbook.texi:2632
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
+#: doc/guix-cookbook.texi:2686 doc/guix-cookbook.texi:2687
+#, no-wrap
+msgid "Running Guix on a Kimsufi Server"
+msgstr "Guix auf einem Kimsufi-Server nutzen"
+
+#. type: menuentry
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
+msgid "Running Guix on a Kimsufi Server."
+msgstr "Guix auf einem Kimsufi-Server nutzen."
+
+#. type: section
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
+#: doc/guix-cookbook.texi:2933 doc/guix-cookbook.texi:2934
#, no-wrap
msgid "Setting up a bind mount"
msgstr "Bind-Mounts anlegen"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
msgid "Setting up a bind mount in the file-systems definition."
msgstr "Bind-Mounts als Dateisystemdefinition einrichten."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
-#: guix-git/doc/guix-cookbook.texi:2680 guix-git/doc/guix-cookbook.texi:2681
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
+#: doc/guix-cookbook.texi:2982 doc/guix-cookbook.texi:2983
#, no-wrap
msgid "Getting substitutes from Tor"
msgstr "Substitute über Tor beziehen"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
msgid "Configuring Guix daemon to get substitutes through Tor."
msgstr "Den Guix-Daemon konfigurieren, damit er Substitute über Tor lädt."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
-#: guix-git/doc/guix-cookbook.texi:2744 guix-git/doc/guix-cookbook.texi:2745
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
+#: doc/guix-cookbook.texi:3046 doc/guix-cookbook.texi:3047
#, no-wrap
msgid "Setting up NGINX with Lua"
msgstr "NGINX mit Lua konfigurieren"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
msgid "Configuring NGINX web-server to load Lua modules."
msgstr "Den NGINX-Web-Server so einrichten, dass Lua-Module geladen werden."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
-#: guix-git/doc/guix-cookbook.texi:2801 guix-git/doc/guix-cookbook.texi:2802
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
+#: doc/guix-cookbook.texi:3103 doc/guix-cookbook.texi:3104
#, no-wrap
msgid "Music Server with Bluetooth Audio"
msgstr "Musik-Server mit Bluetooth-Audio"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:135 guix-git/doc/guix-cookbook.texi:1582
+#: doc/guix-cookbook.texi:138 doc/guix-cookbook.texi:1586
msgid "Headless music player with Bluetooth output."
msgstr "Musikzentrale ohne Bildschirm mit Bluetooth-Ausgabe."
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:140 guix-git/doc/guix-cookbook.texi:2292
-#: guix-git/doc/guix-cookbook.texi:2294 guix-git/doc/guix-cookbook.texi:2295
+#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:2347
+#: doc/guix-cookbook.texi:2349 doc/guix-cookbook.texi:2350
#, no-wrap
msgid "StumpWM"
msgstr "StumpWM"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:140 guix-git/doc/guix-cookbook.texi:142
-#: guix-git/doc/guix-cookbook.texi:2292 guix-git/doc/guix-cookbook.texi:2340
-#: guix-git/doc/guix-cookbook.texi:2341
+#: doc/guix-cookbook.texi:143 doc/guix-cookbook.texi:145
+#: doc/guix-cookbook.texi:2347 doc/guix-cookbook.texi:2395
+#: doc/guix-cookbook.texi:2396
#, no-wrap
msgid "Session lock"
msgstr "Sitzungen sperren"
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:144 guix-git/doc/guix-cookbook.texi:2351
-#: guix-git/doc/guix-cookbook.texi:2353 guix-git/doc/guix-cookbook.texi:2354
+#: doc/guix-cookbook.texi:147 doc/guix-cookbook.texi:2406
+#: doc/guix-cookbook.texi:2408 doc/guix-cookbook.texi:2409
#, no-wrap
msgid "Xorg"
msgstr "Xorg"
#. type: section
-#: guix-git/doc/guix-cookbook.texi:149 guix-git/doc/guix-cookbook.texi:3018
-#: guix-git/doc/guix-cookbook.texi:3020 guix-git/doc/guix-cookbook.texi:3021
+#: doc/guix-cookbook.texi:152 doc/guix-cookbook.texi:3320
+#: doc/guix-cookbook.texi:3322 doc/guix-cookbook.texi:3323
#, no-wrap
msgid "Guix Containers"
msgstr "Guix-Container"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:149 guix-git/doc/guix-cookbook.texi:3018
+#: doc/guix-cookbook.texi:152 doc/guix-cookbook.texi:3320
msgid "Perfectly isolated environments"
msgstr "Völlig isolierte Umgebungen."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:149 guix-git/doc/guix-cookbook.texi:151
-#: guix-git/doc/guix-cookbook.texi:3018 guix-git/doc/guix-cookbook.texi:3169
-#: guix-git/doc/guix-cookbook.texi:3170
+#: doc/guix-cookbook.texi:152 doc/guix-cookbook.texi:154
+#: doc/guix-cookbook.texi:3320 doc/guix-cookbook.texi:3471
+#: doc/guix-cookbook.texi:3472
#, no-wrap
msgid "Guix System Containers"
msgstr "Container mit Guix System"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:149 guix-git/doc/guix-cookbook.texi:3018
+#: doc/guix-cookbook.texi:152 doc/guix-cookbook.texi:3320
msgid "A system inside your system"
msgstr "Ein System in Ihrem System."
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:154 guix-git/doc/guix-cookbook.texi:3204
-#: guix-git/doc/guix-cookbook.texi:3206 guix-git/doc/guix-cookbook.texi:3207
+#: doc/guix-cookbook.texi:157 doc/guix-cookbook.texi:3506
+#: doc/guix-cookbook.texi:3508 doc/guix-cookbook.texi:3509
#, no-wrap
msgid "A Database Container"
msgstr "Ein Datenbank-Container"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:154 guix-git/doc/guix-cookbook.texi:3204
-#: guix-git/doc/guix-cookbook.texi:3318 guix-git/doc/guix-cookbook.texi:3319
+#: doc/guix-cookbook.texi:157 doc/guix-cookbook.texi:3506
+#: doc/guix-cookbook.texi:3620 doc/guix-cookbook.texi:3621
#, no-wrap
msgid "Container Networking"
msgstr "Netzwerkverbindungen im Container"
#. type: section
-#: guix-git/doc/guix-cookbook.texi:158 guix-git/doc/guix-cookbook.texi:160
-#: guix-git/doc/guix-cookbook.texi:3409 guix-git/doc/guix-cookbook.texi:3411
-#: guix-git/doc/guix-cookbook.texi:3412
+#: doc/guix-cookbook.texi:161 doc/guix-cookbook.texi:163
+#: doc/guix-cookbook.texi:3711 doc/guix-cookbook.texi:3713
+#: doc/guix-cookbook.texi:3714
#, no-wrap
msgid "Guix Profiles in Practice"
msgstr "Guix-Profile in der Praxis"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:158 guix-git/doc/guix-cookbook.texi:3409
+#: doc/guix-cookbook.texi:161 doc/guix-cookbook.texi:3711
msgid "Strategies for multiple profiles and manifests."
msgstr "Strategien für mehrere Profile und Manifeste."
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:166 guix-git/doc/guix-cookbook.texi:3493
-#: guix-git/doc/guix-cookbook.texi:3495 guix-git/doc/guix-cookbook.texi:3496
+#: doc/guix-cookbook.texi:169 doc/guix-cookbook.texi:3805
+#: doc/guix-cookbook.texi:3807 doc/guix-cookbook.texi:3808
#, no-wrap
msgid "Basic setup with manifests"
msgstr "Grundlegende Einrichtung über Manifeste"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:166 guix-git/doc/guix-cookbook.texi:3493
-#: guix-git/doc/guix-cookbook.texi:3628 guix-git/doc/guix-cookbook.texi:3629
+#: doc/guix-cookbook.texi:169 doc/guix-cookbook.texi:3805
+#: doc/guix-cookbook.texi:3940 doc/guix-cookbook.texi:3941
#, no-wrap
msgid "Required packages"
msgstr "Die nötigen Pakete"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:166 guix-git/doc/guix-cookbook.texi:3493
-#: guix-git/doc/guix-cookbook.texi:3656 guix-git/doc/guix-cookbook.texi:3657
+#: doc/guix-cookbook.texi:169 doc/guix-cookbook.texi:3805
+#: doc/guix-cookbook.texi:3968 doc/guix-cookbook.texi:3969
#, no-wrap
msgid "Default profile"
msgstr "Vorgabeprofil"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:166 guix-git/doc/guix-cookbook.texi:3493
-#: guix-git/doc/guix-cookbook.texi:3675 guix-git/doc/guix-cookbook.texi:3676
+#: doc/guix-cookbook.texi:169 doc/guix-cookbook.texi:3805
+#: doc/guix-cookbook.texi:3987 doc/guix-cookbook.texi:3988
#, no-wrap
msgid "The benefits of manifests"
msgstr "Der Vorteil von Manifesten"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:166 guix-git/doc/guix-cookbook.texi:3493
-#: guix-git/doc/guix-cookbook.texi:3765 guix-git/doc/guix-cookbook.texi:3766
+#: doc/guix-cookbook.texi:169 doc/guix-cookbook.texi:3805
+#: doc/guix-cookbook.texi:4062 doc/guix-cookbook.texi:4063
#, no-wrap
msgid "Reproducible profiles"
msgstr "Reproduzierbare Profile"
#. type: section
-#: guix-git/doc/guix-cookbook.texi:170 guix-git/doc/guix-cookbook.texi:3810
-#: guix-git/doc/guix-cookbook.texi:3812 guix-git/doc/guix-cookbook.texi:3813
+#: doc/guix-cookbook.texi:173 doc/guix-cookbook.texi:4757
+#: doc/guix-cookbook.texi:4759 doc/guix-cookbook.texi:4760
#, no-wrap
msgid "Guix environment via direnv"
msgstr "Guix-Umgebung mit direnv"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:170 guix-git/doc/guix-cookbook.texi:3810
+#: doc/guix-cookbook.texi:173 doc/guix-cookbook.texi:4757
msgid "Setup Guix environment with direnv"
msgstr "Mit direnv Guix-Umgebungen einrichten."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:178 guix-git/doc/guix-cookbook.texi:3956
-#: guix-git/doc/guix-cookbook.texi:3958 guix-git/doc/guix-cookbook.texi:3959
+#: doc/guix-cookbook.texi:181 doc/guix-cookbook.texi:4903
+#: doc/guix-cookbook.texi:4905 doc/guix-cookbook.texi:4906
#, no-wrap
msgid "Setting Up a Head Node"
msgstr "Den Zentralrechner konfigurieren"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:178 guix-git/doc/guix-cookbook.texi:3956
+#: doc/guix-cookbook.texi:181 doc/guix-cookbook.texi:4903
msgid "The node that runs the daemon."
msgstr "Auf diesem Rechner läuft der Daemon."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:178 guix-git/doc/guix-cookbook.texi:3956
-#: guix-git/doc/guix-cookbook.texi:4054 guix-git/doc/guix-cookbook.texi:4055
+#: doc/guix-cookbook.texi:181 doc/guix-cookbook.texi:4903
+#: doc/guix-cookbook.texi:5001 doc/guix-cookbook.texi:5002
#, no-wrap
msgid "Setting Up Compute Nodes"
msgstr "Die Arbeitsrechner konfigurieren"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:178 guix-git/doc/guix-cookbook.texi:3956
+#: doc/guix-cookbook.texi:181 doc/guix-cookbook.texi:4903
msgid "Client nodes."
msgstr "Die Client-Knoten."
#. type: node
-#: guix-git/doc/guix-cookbook.texi:178 guix-git/doc/guix-cookbook.texi:3956
-#: guix-git/doc/guix-cookbook.texi:4140
+#: doc/guix-cookbook.texi:181 doc/guix-cookbook.texi:4903
+#: doc/guix-cookbook.texi:5087
#, no-wrap
msgid "Cluster Network Access"
msgstr "Netzwerkzugriff im Cluster"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:178 guix-git/doc/guix-cookbook.texi:3956
+#: doc/guix-cookbook.texi:181 doc/guix-cookbook.texi:4903
msgid "Dealing with network access restrictions."
msgstr "Der Umgang mit eingeschränktem Netzwerkzugriff."
#. type: node
-#: guix-git/doc/guix-cookbook.texi:178 guix-git/doc/guix-cookbook.texi:3956
-#: guix-git/doc/guix-cookbook.texi:4226
+#: doc/guix-cookbook.texi:181 doc/guix-cookbook.texi:4903
+#: doc/guix-cookbook.texi:5173
#, no-wrap
msgid "Cluster Disk Usage"
msgstr "Speicherplatz im Cluster"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:178 guix-git/doc/guix-cookbook.texi:3956
+#: doc/guix-cookbook.texi:181 doc/guix-cookbook.texi:4903
msgid "Disk usage considerations."
msgstr "Mit dem Plattenplatz haushalten."
#. type: node
-#: guix-git/doc/guix-cookbook.texi:178 guix-git/doc/guix-cookbook.texi:3956
-#: guix-git/doc/guix-cookbook.texi:4271
+#: doc/guix-cookbook.texi:181 doc/guix-cookbook.texi:4903
+#: doc/guix-cookbook.texi:5218
#, no-wrap
msgid "Cluster Security Considerations"
msgstr "Sicherheit im Cluster"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:178 guix-git/doc/guix-cookbook.texi:3956
+#: doc/guix-cookbook.texi:181 doc/guix-cookbook.texi:4903
msgid "Keeping the cluster secure."
msgstr "Sicherheit gewährleisten."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:190
+#: doc/guix-cookbook.texi:193
msgid "GNU@tie{}Guix is written in the general purpose programming language Scheme, and many of its features can be accessed and manipulated programmatically. You can use Scheme to generate package definitions, to modify them, to build them, to deploy whole operating systems, etc."
msgstr "GNU@tie{}Guix ist in Scheme geschrieben, einer für alle Anwendungszwecke geeigneten Programmiersprache, und viele Funktionalitäten von Guix können programmatisch angesteuert und verändert werden. Sie können Scheme benutzen, um Paketdefinitionen zu erzeugen, abzuändern, ganze Betriebssysteme einzuspielen etc."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:194
+#: doc/guix-cookbook.texi:197
msgid "Knowing the basics of how to program in Scheme will unlock many of the advanced features Guix provides --- and you don't even need to be an experienced programmer to use them!"
msgstr "Wenn man die Grundzüge kennt, wie man in Scheme programmiert, bekommt man Zugang zu vielen der fortgeschrittenen Funktionen von Guix@tie{}– und Sie müssen dazu nicht einmal ein erfahrener Programmierer sein!"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:196
+#: doc/guix-cookbook.texi:199
msgid "Let's get started!"
msgstr "Legen wir los!"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:204
+#: doc/guix-cookbook.texi:207
#, no-wrap
msgid "Scheme, crash course"
msgstr "Scheme, Schnellkurs"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:210
+#: doc/guix-cookbook.texi:213
msgid "Guix uses the Guile implementation of Scheme. To start playing with the language, install it with @code{guix install guile} and start a @dfn{REPL}---short for @uref{https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop, @dfn{read-eval-print loop}}---by running @code{guile} from the command line."
msgstr "Die von Guix benutzte Scheme-Implementierung nennt sich Guile. Um mit der Sprache herumspielen zu können, installieren Sie Guile mit @code{guix install guile} und starten eine interaktive Programmierumgebung (englisch @uref{https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop, Read-Eval-Print-Loop}, kurz REPL), indem Sie @code{guile} auf der Befehlszeile ausführen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:213
+#: doc/guix-cookbook.texi:216
msgid "Alternatively you can also run @code{guix shell guile -- guile} if you'd rather not have Guile installed in your user profile."
msgstr "Alternativ können Sie auch den Befehl @code{guix shell -- guile} ausführen, wenn Sie Guile lieber @emph{nicht} in Ihr Nutzerprofil installieren wollen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:219
+#: doc/guix-cookbook.texi:222
msgid "In the following examples, lines show what you would type at the REPL; lines starting with ``@result{}'' show evaluation results, while lines starting with ``@print{}'' show things that get printed. @xref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}, for more details on the REPL."
msgstr "In den folgenden Beispielen stehen die Zeilen dafür, was Sie auf der REPL eintippen; wenn eine Zeile mit „@result{}“ beginnt, zeigt sie das Ergebnis einer Auswertung, während Zeilen, die mit „@print{}“ beginnen, für eine angezeigte Ausgabe stehen. Siehe @ref{Using Guile Interactively,,, guile, das Referenzhandbuch zu GNU Guile} für mehr Details zur REPL."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:227
+#: doc/guix-cookbook.texi:230
msgid "Scheme syntax boils down to a tree of expressions (or @emph{s-expression} in Lisp lingo). An expression can be a literal such as numbers and strings, or a compound which is a parenthesized list of compounds and literals. @code{#true} and @code{#false} (abbreviated @code{#t} and @code{#f}) stand for the Booleans ``true'' and ``false'', respectively."
msgstr "Die Scheme-Syntax ist an sich ein Baum von Ausdrücken (Lisp-Programmierer nennen sie @emph{symbolische Ausdrücke}, kurz @emph{S-Ausdrücke} bzw.@: englisch @emph{s-expression}). Ein solcher Ausdruck kann ein Literal sein, wie z.B.@: Zahlen oder Zeichenketten, oder er kann ein zusammengesetzter Ausdruck sein, d.h.@: eine geklammerte Liste von zusammengesetzten und literalen Ausdrücken. Dabei stehen @code{#true} und @code{#false} (abgekürzt auch @code{#t} und @code{#f}) jeweils für die Booleschen Werte „wahr“ und „falsch“."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:229
+#: doc/guix-cookbook.texi:232
msgid "Examples of valid expressions:"
msgstr "Beispiele für gültige Ausdrücke"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:233
+#: doc/guix-cookbook.texi:236
#, no-wrap
msgid ""
"\"Hello World!\"\n"
@@ -719,7 +742,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:236
+#: doc/guix-cookbook.texi:239
#, no-wrap
msgid ""
"17\n"
@@ -731,7 +754,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:240
+#: doc/guix-cookbook.texi:243
#, no-wrap
msgid ""
"(display (string-append \"Hello \" \"Guix\" \"\\n\"))\n"
@@ -743,17 +766,17 @@ msgstr ""
"@result{} #<unspecified>\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:247
+#: doc/guix-cookbook.texi:250
msgid "This last example is a function call nested in another function call. When a parenthesized expression is evaluated, the first term is the function and the rest are the arguments passed to the function. Every function returns the last evaluated expression as its return value."
msgstr "Das letzte Beispiel eben ist der Aufruf einer Funktion innerhalb eines anderen Funktionsaufrufs. Wenn ein geklammerter Ausdruck ausgewertet wird, ist der erste Term die Funktion und der Rest sind die Argumente, die an die Funktion übergeben werden. Jede Funktion liefert ihren zuletzt ausgewerteten Ausdruck als ihren Rückgabewert."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:251
+#: doc/guix-cookbook.texi:254
msgid "Anonymous functions---@dfn{procedures} in Scheme parlance---are declared with the @code{lambda} term:"
msgstr "Anonyme Funktionen@tie{}– bzw.@: Prozeduren, wie man in Scheme sagt@tie{}– werden mit dem @code{lambda}-Term deklariert:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:255
+#: doc/guix-cookbook.texi:258
#, no-wrap
msgid ""
"(lambda (x) (* x x))\n"
@@ -763,12 +786,12 @@ msgstr ""
"@result{} #<procedure 120e348 at <unknown port>:24:0 (x)>\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:260
+#: doc/guix-cookbook.texi:263
msgid "The above procedure returns the square of its argument. Since everything is an expression, the @code{lambda} expression returns an anonymous procedure, which can in turn be applied to an argument:"
msgstr "Die obige Prozedur liefert das Quadrat ihres Arguments. Weil alles ein Ausdruck ist, liefert der Ausdruck @code{lambda} eine anonyme Prozedur, die wiederum auf ein Argument angewandt werden kann:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:264
+#: doc/guix-cookbook.texi:267
#, no-wrap
msgid ""
"((lambda (x) (* x x)) 3)\n"
@@ -778,17 +801,17 @@ msgstr ""
"@result{} 9\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:268
+#: doc/guix-cookbook.texi:271
msgid "Procedures are regular values just like numbers, strings, Booleans, and so on."
msgstr "Prozeduren sind normale Werte wie Zahlen, Zeichenketten, Boolesche Ausdrücke und dererlei auch."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:271
+#: doc/guix-cookbook.texi:274
msgid "Anything can be assigned a global name with @code{define}:"
msgstr "Allem kann mit @code{define} ein globaler Name zugewiesen werden:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:277
+#: doc/guix-cookbook.texi:280
#, no-wrap
msgid ""
"(define a 3)\n"
@@ -802,23 +825,23 @@ msgstr ""
"@result{} 9\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:281
+#: doc/guix-cookbook.texi:284
msgid "Procedures can be defined more concisely with the following syntax:"
msgstr "Prozeduren können auch kürzer mit der folgenden Syntax definiert werden:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:284
+#: doc/guix-cookbook.texi:287
#, no-wrap
msgid "(define (square x) (* x x))\n"
msgstr "(define (quadrat x) (* x x))\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:288
+#: doc/guix-cookbook.texi:291
msgid "A list structure can be created with the @code{list} procedure:"
msgstr "Eine Listenstruktur kann mit der @code{list}-Prozedur erzeugt werden:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:292
+#: doc/guix-cookbook.texi:295
#, no-wrap
msgid ""
"(list 2 a 5 7)\n"
@@ -828,12 +851,12 @@ msgstr ""
"@result{} (2 3 5 7)\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:299
+#: doc/guix-cookbook.texi:302
msgid "Standard procedures are provided by the @code{(srfi srfi-1)} module to create and process lists (@pxref{SRFI-1, list processing,, guile, GNU Guile Reference Manual}). Here are some of the most useful ones in action:"
msgstr "Für die Erzeugung und Verarbeitung von Listen stehen im Modul @code{(srfi srfi-1)} Standardprozeduren zur Verfügung (siehe @ref{SRFI-1, Listenverarbeitung,, guile, Referenzhandbuch zu GNU Guile}). Hier ein kurzer Überblick:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:302
+#: doc/guix-cookbook.texi:305
#, no-wrap
msgid ""
"(use-modules (srfi srfi-1)) ;import list processing procedures\n"
@@ -843,7 +866,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:305
+#: doc/guix-cookbook.texi:308
#, no-wrap
msgid ""
"(append (list 1 2) (list 3 4))\n"
@@ -855,7 +878,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:308
+#: doc/guix-cookbook.texi:311
#, no-wrap
msgid ""
"(map (lambda (x) (* x x)) (list 1 2 3 4))\n"
@@ -867,7 +890,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:313
+#: doc/guix-cookbook.texi:316
#, no-wrap
msgid ""
"(delete 3 (list 1 2 3 4)) @result{} (1 2 4)\n"
@@ -881,23 +904,23 @@ msgstr ""
"(find number? (list \"a\" 42 \"b\")) @result{} 42\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:317
+#: doc/guix-cookbook.texi:320
msgid "Notice how the first argument to @code{map}, @code{filter}, @code{remove}, and @code{find} is a procedure!"
msgstr "Beachten Sie, dass das erste Argument an @code{map}, @code{filter}, @code{remove} und @code{find} eine Prozedur ist!"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:319
+#: doc/guix-cookbook.texi:322
#, no-wrap
msgid "S-expression"
msgstr "symbolischer Ausdruck (S-expression)"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:324
+#: doc/guix-cookbook.texi:327
msgid "The @dfn{quote} disables evaluation of a parenthesized expression, also called an S-expression or ``s-exp'': the first term is not called over the other terms (@pxref{Expression Syntax, quote,, guile, GNU Guile Reference Manual}). Thus it effectively returns a list of terms."
msgstr "Mit dem @dfn{quote}-Zeichen wird das Auswerten eines geklammerten Ausdrucks abgeschaltet (man spricht dann von einem symbolischen Ausdruck, engl.@: „S-Expression“ bzw. „S-exp“): Der erste Term wird @emph{nicht} auf den anderen Termen aufgerufen (siehe @ref{Expression Syntax, quote,, guile, Referenzhandbuch zu GNU Guile}). Folglich liefert es quasi eine Liste von Termen."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:328
+#: doc/guix-cookbook.texi:331
#, no-wrap
msgid ""
"'(display (string-append \"Hello \" \"Guix\" \"\\n\"))\n"
@@ -909,7 +932,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:331
+#: doc/guix-cookbook.texi:334
#, no-wrap
msgid ""
"'(2 a 5 7)\n"
@@ -919,12 +942,12 @@ msgstr ""
"@result{} (2 a 5 7)\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:338
+#: doc/guix-cookbook.texi:341
msgid "The @code{quasiquote} (@code{`}, a backquote) disables evaluation of a parenthesized expression until @code{unquote} (@code{,}, a comma) re-enables it. Thus it provides us with fine-grained control over what is evaluated and what is not."
msgstr "Mit einem @code{quasiquote}-Zeichen (@code{`}) wird die Auswertung eines geklammerten Ausdrucks so lange abgeschaltet, bis ein @code{unquote} (ein Komma) sie wieder aktiviert. Wir können damit genau steuern, was ausgewertet wird und was nicht."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:342
+#: doc/guix-cookbook.texi:345
#, no-wrap
msgid ""
"`(2 a 5 7 (2 ,a 5 ,(+ a 4)))\n"
@@ -934,58 +957,58 @@ msgstr ""
"@result{} (2 a 5 7 (2 3 5 7))\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:346
+#: doc/guix-cookbook.texi:349
msgid "Note that the above result is a list of mixed elements: numbers, symbols (here @code{a}) and the last element is a list itself."
msgstr "Beachten Sie, dass obiges Ergebnis eine Liste verschiedenartiger Elemente ist: Zahlen, Symbole (in diesem Fall @code{a}) und als letztes Element selbst wieder eine Liste."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:348
+#: doc/guix-cookbook.texi:351
#, no-wrap
msgid "G-expressions, syntax"
msgstr "G-Ausdrücke, Syntax"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:349
+#: doc/guix-cookbook.texi:352
#, no-wrap
msgid "gexps, syntax"
msgstr "Gexps, Syntax"
#. type: findex
-#: guix-git/doc/guix-cookbook.texi:350
+#: doc/guix-cookbook.texi:353
#, no-wrap
msgid "#~"
msgstr "#~"
#. type: findex
-#: guix-git/doc/guix-cookbook.texi:351
+#: doc/guix-cookbook.texi:354
#, no-wrap
msgid "#$"
msgstr "#$"
#. type: findex
-#: guix-git/doc/guix-cookbook.texi:352
+#: doc/guix-cookbook.texi:355
#, no-wrap
msgid "gexp"
msgstr "gexp"
#. type: findex
-#: guix-git/doc/guix-cookbook.texi:353
+#: doc/guix-cookbook.texi:356
#, no-wrap
msgid "ungexp"
msgstr "ungexp"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:359
+#: doc/guix-cookbook.texi:362
msgid "Guix defines a variant of S-expressions on steroids called @dfn{G-expressions} or ``gexps'', which come with a variant of @code{quasiquote} and @code{unquote}: @code{#~} (or @code{gexp}) and @code{#$} (or @code{ungexp}). They let you @emph{stage code for later execution}."
msgstr "In Guix gibt es außerdem eine aufgeputschte Form von S-Ausdrücken: die @dfn{G-Ausdrücke} oder „Gexps“, die ihre eigene Art von @code{quasiquote} und @code{unquote} haben: @code{#~} (oder @code{gexp}) und @code{#$} (oder @code{ungexp}). Mit Ihnen kennzeichnen Sie, welcher Code @emph{erst später ausgeführt} werden soll („Code-Staging“)."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:363
+#: doc/guix-cookbook.texi:366
msgid "For example, you'll encounter gexps in some package definitions where they provide code to be executed during the package build process. They look like this:"
msgstr "G-Ausdrücke begegnen Ihnen etwa in manchen Paketdefinitionen, wo sie eingesetzt werden, damit Code erst bei der Erstellung des Pakets abläuft. Das sieht so aus:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:367
+#: doc/guix-cookbook.texi:370
#, no-wrap
msgid ""
"(use-modules (guix gexp) ;so we can write gexps\n"
@@ -997,7 +1020,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:373
+#: doc/guix-cookbook.texi:376
#, no-wrap
msgid ""
";; Below is a G-expression representing staged code.\n"
@@ -1015,7 +1038,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:376
+#: doc/guix-cookbook.texi:379
#, no-wrap
msgid ""
" ;; Create this package's output directory.\n"
@@ -1025,17 +1048,17 @@ msgstr ""
" (mkdir #$output))\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:380
+#: doc/guix-cookbook.texi:383
msgid "@xref{G-Expressions,,, guix, GNU Guix Reference Manual}, for more on gexps."
msgstr "Siehe @ref{G-Ausdrücke,,, guix.de, Referenzhandbuch zu GNU Guix} für Details zu G-Ausdrücken."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:384
+#: doc/guix-cookbook.texi:387
msgid "Multiple variables can be named locally with @code{let} (@pxref{Local Bindings,,, guile, GNU Guile Reference Manual}):"
msgstr "Mehrere Variable können in einer lokalen Umgebung mit Bezeichnern versehen werden, indem Sie @code{let} benutzen (siehe @ref{Local Bindings,,, guile, Referenzhandbuch zu GNU Guile}):"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:391
+#: doc/guix-cookbook.texi:394
#, no-wrap
msgid ""
"(define x 10)\n"
@@ -1053,7 +1076,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:394
+#: doc/guix-cookbook.texi:397
#, no-wrap
msgid ""
"x\n"
@@ -1065,7 +1088,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:397
+#: doc/guix-cookbook.texi:400
#, no-wrap
msgid ""
"y\n"
@@ -1075,12 +1098,12 @@ msgstr ""
"@error{} In procedure module-lookup: Unbound variable: y\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:401
+#: doc/guix-cookbook.texi:404
msgid "Use @code{let*} to allow later variable declarations to refer to earlier definitions."
msgstr "Benutzen Sie @code{let*}, damit spätere Variablendeklarationen auf frühere verweisen können."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:407
+#: doc/guix-cookbook.texi:410
#, no-wrap
msgid ""
"(let* ((x 2)\n"
@@ -1094,22 +1117,22 @@ msgstr ""
"@result{} (2 6)\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:414
+#: doc/guix-cookbook.texi:417
msgid "@dfn{Keywords} are typically used to identify the named parameters of a procedure. They are prefixed by @code{#:} (hash, colon) followed by alphanumeric characters: @code{#:like-this}. @xref{Keywords,,, guile, GNU Guile Reference Manual}."
msgstr "Mit @dfn{Schlüsselwörtern} bestimmen wir normalerweise diejenigen Parameter einer Prozedur, die einen Namen haben sollen. Ihnen wird @code{#:} (Doppelkreuz und Doppelpunkt) vorangestellt, gefolgt von alphanumerischen Zeichen: @code{#:etwa-so}. Siehe @ref{Keywords,,, guile, Referenzhandbuch zu GNU Guile}."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:419
+#: doc/guix-cookbook.texi:422
msgid "The percentage @code{%} is typically used for read-only global variables in the build stage. Note that it is merely a convention, like @code{_} in C. Scheme treats @code{%} exactly the same as any other letter."
msgstr "Das Prozentzeichen @code{%} wird in der Regel für globale Variable auf Erstellungsebene benutzt, auf die nur lesend zugegriffen werden soll. Beachten Sie, dass es sich dabei nur um eine Konvention handelt, ähnlich wie @code{_} in C@. Scheme behandelt @code{%} genau wie jedes andere Zeichen."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:423
+#: doc/guix-cookbook.texi:426
msgid "Modules are created with @code{define-module} (@pxref{Creating Guile Modules,,, guile, GNU Guile Reference Manual}). For instance"
msgstr "Module werden mit Hilfe von @code{define-module} erzeugt (siehe @ref{Creating Guile Modules,,, guile, Referenzhandbuch zu GNU Guile}). Zum Beispiel definiert man mit"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:429
+#: doc/guix-cookbook.texi:432
#, no-wrap
msgid ""
"(define-module (guix build-system ruby)\n"
@@ -1123,48 +1146,48 @@ msgstr ""
" ruby-build-system))\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:435
+#: doc/guix-cookbook.texi:438
msgid "defines the module @code{guix build-system ruby} which must be located in @file{guix/build-system/ruby.scm} somewhere in the Guile load path. It depends on the @code{(guix store)} module and it exports two variables, @code{ruby-build} and @code{ruby-build-system}."
msgstr "das Modul @code{guix build-system ruby}, das sich unter dem Pfad @file{guix/build-system/ruby.scm} innerhalb irgendeines Verzeichnisses im Guile-Ladepfad befinden muss. Es hat eine Abhängigkeit auf das Modul @code{(guix store)} und exportiert zwei seiner Variablen, @code{ruby-build} und @code{ruby-build-system}."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:438
+#: doc/guix-cookbook.texi:441
msgid "@xref{Package Modules,,, guix, GNU Guix Reference Manual}, for info on modules that define packages."
msgstr "Siehe @ref{Paketmodule,,, guix.de, Referenzhandbuch zu GNU Guix} für Informationen zu Modulen, in denen Pakete definiert werden."
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:440
+#: doc/guix-cookbook.texi:443
#, no-wrap
msgid "Going further"
msgstr "Vertiefung"
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:444
+#: doc/guix-cookbook.texi:447
msgid "Scheme is a language that has been widely used to teach programming and you'll find plenty of material using it as a vehicle. Here's a selection of documents to learn more about Scheme:"
msgstr "Die Sprache Scheme wurde oft eingesetzt, um Programmieren beizubringen, daher gibt es ein breites Angebot an Lehrmaterialien, die sie als Transportmittel einsetzen. Hier sehen Sie eine Auswahl solcher Dokumente, mit denen Sie mehr über Scheme erfahren können:"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:449
+#: doc/guix-cookbook.texi:452
msgid "@uref{https://spritely.institute/static/papers/scheme-primer.html, @i{A Scheme Primer}}, by Christine Lemmer-Webber and the Spritely Institute."
msgstr "@uref{https://spritely.institute/news/ein-scheme-primer.html, @i{Ein Scheme-Primer}}, von Christine Lemmer-Webber und dem Spritely Institute, auf Deutsch übersetzt von Florian Pelz."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:453
+#: doc/guix-cookbook.texi:456
msgid "@uref{http://www.troubleshooters.com/codecorn/scheme_guile/hello.htm, @i{Scheme at a Glance}}, by Steve Litt."
msgstr "@uref{http://www.troubleshooters.com/codecorn/scheme_guile/hello.htm, @i{Scheme at a Glance}} von Steve Litt."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:460
+#: doc/guix-cookbook.texi:463
msgid "@uref{https://sarabander.github.io/sicp/, @i{Structure and Interpretation of Computer Programs}}, by Harold Abelson and Gerald Jay Sussman, with Julie Sussman. Colloquially known as ``SICP'', this book is a reference."
msgstr "Eines der Referenzbücher zu Scheme ist das einflussreiche „Structure and Interpretation of Computer Programs“, von Harold Abelson und Gerald Jay Sussman, mit Julie Sussman. Eine deutsche Übersetzung „Struktur und Interpretation von Computerprogrammen“ hat Susanne Daniels-Herold verfasst. Vom englischen Original finden Sie eine @uref{https://sarabander.github.io/sicp/, kostenlose Ausgabe online}. Viele kennen es unter dem Akronym SICP."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:462
+#: doc/guix-cookbook.texi:465
msgid "You can also install it and read it from your computer:"
msgstr "Das Buch können Sie auch installieren und von Ihrem Rechner aus lesen:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:466
+#: doc/guix-cookbook.texi:469
#, no-wrap
msgid ""
"guix install sicp info-reader\n"
@@ -1174,63 +1197,63 @@ msgstr ""
"info sicp\n"
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:472
+#: doc/guix-cookbook.texi:475
msgid "You'll find more books, tutorials and other resources at @url{https://schemers.org/}."
msgstr "Sie finden noch mehr Bücher, Anleitungen und andere Ressourcen auf @url{https://schemers.org/}."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:479
+#: doc/guix-cookbook.texi:482
#, no-wrap
msgid "packaging"
msgstr "Pakete schreiben"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:485
+#: doc/guix-cookbook.texi:488
msgid "This chapter is dedicated to teaching you how to add packages to the collection of packages that come with GNU Guix. This involves writing package definitions in Guile Scheme, organizing them in package modules, and building them."
msgstr "In diesem Kapitel bringen wir Ihnen bei, wie Sie Pakete zur mit GNU Guix ausgelieferten Paketsammlung beitragen. Dazu gehört, Paketdefinitionen in Guile Scheme zu schreiben, sie in Paketmodulen zu organisieren und sie zu erstellen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:499
+#: doc/guix-cookbook.texi:502
msgid "GNU Guix stands out as the @emph{hackable} package manager, mostly because it uses @uref{https://www.gnu.org/software/guile/, GNU Guile}, a powerful high-level programming language, one of the @uref{https://en.wikipedia.org/wiki/Scheme_%28programming_language%29, Scheme} dialects from the @uref{https://en.wikipedia.org/wiki/Lisp_%28programming_language%29, Lisp family}."
msgstr "GNU Guix zeichnet sich in erster Linie deswegen als das @emph{hackbare} Paketverwaltungswerkzeug aus, weil es mit @uref{https://www.gnu.org/software/guile/, GNU Guile} arbeitet, einer mächtigen, hochsprachlichen Programmiersprache, die einen der Dialekte von @uref{https://de.wikipedia.org/wiki/Scheme, Scheme} darstellt. Scheme wiederum gehört zur @uref{https://de.wikipedia.org/wiki/Lisp, Lisp-Familie von Programmiersprachen}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:503
+#: doc/guix-cookbook.texi:506
msgid "Package definitions are also written in Scheme, which empowers Guix in some very unique ways, unlike most other package managers that use shell scripts or simple languages."
msgstr "Paketdefinitionen werden ebenso in Scheme geschrieben, wodurch Guix auf sehr einzigartige Weise mächtiger wird als die meisten anderen Paketverwaltungssysteme, die Shell-Skripte oder einfache Sprachen benutzen."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:508
+#: doc/guix-cookbook.texi:511
msgid "Use functions, structures, macros and all of Scheme expressiveness for your package definitions."
msgstr "Sie können sich Funktionen, Strukturen, Makros und all die Ausdrucksstärke von Scheme für Ihre Paketdefinitionen zu Nutze machen."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:512
+#: doc/guix-cookbook.texi:515
msgid "Inheritance makes it easy to customize a package by inheriting from it and modifying only what is needed."
msgstr "Durch Vererbung können Sie ohne viel Aufwand ein Paket anpassen, indem Sie von ihm erben lassen und nur das Nötige abändern."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:522
+#: doc/guix-cookbook.texi:525
msgid "Batch processing: the whole package collection can be parsed, filtered and processed. Building a headless server with all graphical interfaces stripped out? It's possible. Want to rebuild everything from source using specific compiler optimization flags? Pass the @code{#:make-flags \"...\"} argument to the list of packages. It wouldn't be a stretch to think @uref{https://wiki.gentoo.org/wiki/USE_flag, Gentoo USE flags} here, but this goes even further: the changes don't have to be thought out beforehand by the packager, they can be @emph{programmed} by the user!"
msgstr "Stapelverarbeitung („batch mode“) wird möglich; die ganze Paketsammlung kann analysiert, gefiltert und verarbeitet werden. Versuchen Sie, ein Serversystem ohne Bildschirm („headless“) auch tatsächlich von allen Grafikschnittstellen zu befreien? Das ist möglich. Möchten Sie alles von Neuem aus seinem Quellcode erstellen, aber mit eingeschalteten besonderen Compileroptimierungen? Übergeben Sie einfach das passende @code{#:make-flags \"...\"}-Argument an die Paketliste. Es wäre nicht übertrieben, hier an die @uref{https://wiki.gentoo.org/wiki/USE_flag, USE-Optionen von Gentoo} zu denken, aber das hier übertrifft sie: Der Paketautor muss vorher gar nicht darüber nachgedacht haben, der Nutzer kann sie selbst @emph{programmieren}!"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:528
+#: doc/guix-cookbook.texi:531
msgid "The following tutorial covers all the basics around package creation with Guix. It does not assume much knowledge of the Guix system nor of the Lisp language. The reader is only expected to be familiar with the command line and to have some basic programming knowledge."
msgstr "Die folgende Anleitung erklärt alles Grundlegende über das Schreiben von Paketen mit Guix. Dabei setzen wir kein großes Wissen über das Guix-System oder die Lisp-Sprache voraus. Vom Leser wird nur erwartet, dass er mit der Befehlszeile vertraut ist und über grundlegende Programmierkenntnisse verfügt."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:546
+#: doc/guix-cookbook.texi:549
msgid "The ``Defining Packages'' section of the manual introduces the basics of Guix packaging (@pxref{Defining Packages,,, guix, GNU Guix Reference Manual}). In the following section, we will partly go over those basics again."
msgstr "Der Abschnitt „Pakete definieren“ im Handbuch führt in die Grundlagen des Paketschreibens für Guix ein (siehe @ref{Pakete definieren,,, guix.de, Referenzhandbuch zu GNU Guix}). Im folgenden Abschnitt werden wir diese Grundlagen teilweise rekapitulieren."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:552
+#: doc/guix-cookbook.texi:555
msgid "GNU@tie{}Hello is a dummy project that serves as an idiomatic example for packaging. It uses the GNU build system (@code{./configure && make && make install}). Guix already provides a package definition which is a perfect example to start with. You can look up its declaration with @code{guix edit hello} from the command line. Let's see how it looks:"
msgstr "GNU@tie{}Hello ist ein Projekt, das uns als Stellvertreter für „richtige“ Projekte und allgemeines Beispiel für das Schreiben von Paketen dient. Es verwendet das GNU-Erstellungssystem (@code{./configure && make && make install}). Guix stellt uns schon eine Paketdefinition zur Verfügung, die uns einen perfekten Ausgangspunkt bietet. Sie können sich ihre Deklaration anschauen, indem Sie @code{guix edit hello} von der Befehlszeile ausführen. Schauen wir sie uns an:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:573
+#: doc/guix-cookbook.texi:576
#, no-wrap
msgid ""
"(define-public hello\n"
@@ -1274,137 +1297,137 @@ msgstr ""
" (license gpl3+)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:577
+#: doc/guix-cookbook.texi:580
msgid "As you can see, most of it is rather straightforward. But let's review the fields together:"
msgstr "Wie Sie sehen können, ist das meiste klar strukturiert. Aber sehen wir uns die Felder zusammen an:"
#. type: item
-#: guix-git/doc/guix-cookbook.texi:579
+#: doc/guix-cookbook.texi:582
#, no-wrap
msgid "name"
msgstr "name"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:582
+#: doc/guix-cookbook.texi:585
msgid "The project name. Using Scheme conventions, we prefer to keep it lower case, without underscore and using dash-separated words."
msgstr "Der Name des Projekts. Wir halten uns an die Konventionen von Scheme und bevorzugen deshalb Kleinschreibung ohne Unterstriche, sondern mit Bindestrichen zwischen den Wörtern."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:583
+#: doc/guix-cookbook.texi:586
#, no-wrap
msgid "source"
msgstr "source"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:586
+#: doc/guix-cookbook.texi:589
msgid "This field contains a description of the source code origin. The @code{origin} record contains these fields:"
msgstr "Dieses Feld enthält eine Beschreibung, was der Ursprung des Quellcodes ist. Das @code{origin}-Verbundsobjekt enthält diese Felder:"
#. type: item
-#: guix-git/doc/guix-cookbook.texi:588
+#: doc/guix-cookbook.texi:591
#, no-wrap
msgid "The method, here @code{url-fetch} to download via HTTP/FTP, but other methods"
msgstr "Die Methode. Wir verwenden hier @code{url-fetch}, um über HTTP/FTP herunterzuladen,"
#. type: enumerate
-#: guix-git/doc/guix-cookbook.texi:590
+#: doc/guix-cookbook.texi:593
msgid "exist, such as @code{git-fetch} for Git repositories."
msgstr "aber es gibt auch andere Methoden wie @code{git-fetch} für Git-Repositorys."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:590
+#: doc/guix-cookbook.texi:593
#, no-wrap
msgid "The URI, which is typically some @code{https://} location for @code{url-fetch}. Here"
msgstr "Die URI, welche bei @code{url-fetch} normalerweise eine Ortsangabe mit @code{https://} ist."
#. type: enumerate
-#: guix-git/doc/guix-cookbook.texi:593
+#: doc/guix-cookbook.texi:596
msgid "the special `mirror://gnu` refers to a set of well known locations, all of which can be used by Guix to fetch the source, should some of them fail."
msgstr "In diesem Fall verweist die besondere URI ‚mirror://gnu‘ auf eine von mehreren wohlbekannten Ortsangaben, von denen Guix jede durchprobieren kann, um den Quellcode herunterzuladen, wenn es bei manchen davon nicht klappt."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:593
+#: doc/guix-cookbook.texi:596
#, no-wrap
msgid "The @code{sha256} checksum of the requested file. This is essential to ensure"
msgstr "Die @code{sha256}-Prüfsumme der angefragten Datei."
#. type: enumerate
-#: guix-git/doc/guix-cookbook.texi:596
+#: doc/guix-cookbook.texi:599
msgid "the source is not corrupted. Note that Guix works with base32 strings, hence the call to the @code{base32} function."
msgstr "Sie ist notwendig, damit sichergestellt werden kann, dass der Quellcode nicht beschädigt ist. Beachten Sie, dass Guix mit Zeichenketten in Base32-Kodierung arbeitet, weshalb wir die @code{base32}-Funktion aufrufen."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:598
+#: doc/guix-cookbook.texi:601
#, no-wrap
msgid "build-system"
msgstr "build-system"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:607
+#: doc/guix-cookbook.texi:610
msgid "This is where the power of abstraction provided by the Scheme language really shines: in this case, the @code{gnu-build-system} abstracts away the famous @code{./configure && make && make install} shell invocations. Other build systems include the @code{trivial-build-system} which does not do anything and requires from the packager to program all the build steps, the @code{python-build-system}, the @code{emacs-build-system}, and many more (@pxref{Build Systems,,, guix, GNU Guix Reference Manual})."
msgstr "Hier glänzt Schemes Fähigkeit zur Abstraktion: In diesem Fall abstrahiert @code{gnu-build-system} die berühmten Schritte @code{./configure && make && make install}, die sonst in der Shell aufgerufen würden. Zu den anderen Erstellungssystemen gehören das @code{trivial-build-system}, das nichts tut und dem Paketautoren das Schreiben sämtlicher Erstellungsschritte abverlangt, das @code{python-build-system}, das @code{emacs-build-system}, und viele mehr (siehe @ref{Erstellungssysteme,,, guix.de, Referenzhandbuch zu GNU Guix})."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:608
+#: doc/guix-cookbook.texi:611
#, no-wrap
msgid "synopsis"
msgstr "synopsis"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:611
+#: doc/guix-cookbook.texi:614
msgid "It should be a concise summary of what the package does. For many packages a tagline from the project's home page can be used as the synopsis."
msgstr "Die Zusammenfassung. Sie sollte eine knappe Beschreibung sein, was das Paket tut. Für viele Pakete findet sich auf der Homepage ein Einzeiler, der als Zusammenfassung benutzt werden kann."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:612
+#: doc/guix-cookbook.texi:615
#, no-wrap
msgid "description"
msgstr "description"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:615
+#: doc/guix-cookbook.texi:618
msgid "Same as for the synopsis, it's fine to re-use the project description from the homepage. Note that Guix uses Texinfo syntax."
msgstr "Genau wie bei der Zusammenfassung ist es in Ordnung, die Beschreibung des Projekts für das Paket wiederzuverwenden. Beachten Sie, dass Guix dafür Texinfo-Syntax verlangt."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:616
+#: doc/guix-cookbook.texi:619
#, no-wrap
msgid "home-page"
msgstr "home-page"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:618
+#: doc/guix-cookbook.texi:621
msgid "Use HTTPS if available."
msgstr "Hier soll möglichst HTTPS benutzt werden."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:619
+#: doc/guix-cookbook.texi:622
#, no-wrap
msgid "license"
msgstr "license"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:622
+#: doc/guix-cookbook.texi:625
msgid "See @code{guix/licenses.scm} in the project source for a full list of available licenses."
msgstr "Siehe die vollständige Liste verfügbarer Lizenzen in @code{guix/licenses.scm} im Guix-Quellcode."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:626
+#: doc/guix-cookbook.texi:629
msgid "Time to build our first package! Nothing fancy here for now: we will stick to a dummy @code{my-hello}, a copy of the above declaration."
msgstr "Es wird Zeit, unser erstes Paket zu schreiben! Aber noch nichts tolles, wir bleiben bei einem Paket @code{my-hello} stelltvertretend für „richtige“ Software; es ist eine Kopie obiger Deklaration."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:630
+#: doc/guix-cookbook.texi:633
msgid "As with the ritualistic ``Hello World'' taught with most programming languages, this will possibly be the most ``manual'' approach. We will work out an ideal setup later; for now we will go the simplest route."
msgstr "Genau wie beim Ritual, Neulinge in Programmiersprachen „Hallo Welt“ schreiben zu lassen, fangen wir mit der vielleicht „arbeitsintensivsten“ Herangehensweise ans Paketeschreiben an. Wir kümmern uns später darum, wie man am besten an Paketen arbeitet; erst einmal nehmen wir den einfachsten Weg."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:632
+#: doc/guix-cookbook.texi:635
msgid "Save the following to a file @file{my-hello.scm}."
msgstr "Speichern Sie den folgenden Code in eine Datei @file{my-hello.scm}."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:638
+#: doc/guix-cookbook.texi:641
#, no-wrap
msgid ""
"(use-modules (guix packages)\n"
@@ -1420,7 +1443,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:657
+#: doc/guix-cookbook.texi:660
#, no-wrap
msgid ""
"(package\n"
@@ -1462,23 +1485,23 @@ msgstr ""
" (license gpl3+))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:660
+#: doc/guix-cookbook.texi:663
msgid "We will explain the extra code in a moment."
msgstr "Wir erklären den zusätzlichen Code in Kürze."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:667
+#: doc/guix-cookbook.texi:670
msgid "Feel free to play with the different values of the various fields. If you change the source, you'll need to update the checksum. Indeed, Guix refuses to build anything if the given checksum does not match the computed checksum of the source code. To obtain the correct checksum of the package declaration, we need to download the source, compute the sha256 checksum and convert it to base32."
msgstr "Spielen Sie ruhig mit unterschiedlichen Werten für die verschiedenen Felder herum. Wenn Sie den Quellort (die „source“) ändern, müssen Sie die Prüfsumme aktualisieren. Tatsächlich weigert sich Guix, etwas zu erstellen, wenn die angegebene Prüfsumme nicht zu der berechneten Prüfsumme des Quellcodes passt. Um die richtige Prüfsumme für die Paketdeklaration zu finden, müssen wir den Quellcode herunterladen, die SHA256-Summe davon berechnen und sie in Base32 umwandeln."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:670
+#: doc/guix-cookbook.texi:673
msgid "Thankfully, Guix can automate this task for us; all we need is to provide the URI:"
msgstr "Glücklicherweise kann Guix diese Aufgabe automatisieren; wir müssen lediglich die URI übergeben."
#. This is example shell output.
#. type: example
-#: guix-git/doc/guix-cookbook.texi:674
+#: doc/guix-cookbook.texi:677
#, no-wrap
msgid ""
"$ guix download mirror://gnu/hello/hello-2.10.tar.gz\n"
@@ -1488,7 +1511,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:681
+#: doc/guix-cookbook.texi:684
#, no-wrap
msgid ""
"Starting download of /tmp/guix-file.JLYgL7\n"
@@ -1506,18 +1529,18 @@ msgstr ""
"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:686
+#: doc/guix-cookbook.texi:689
msgid "In this specific case the output tells us which mirror was chosen. If the result of the above command is not the same as in the above snippet, update your @code{my-hello} declaration accordingly."
msgstr "In diesem speziellen Fall sagt uns die Ausgabe, welcher Spiegelserver ausgewählt wurde. Wenn das Ergebnis des obigen Befehls nicht dasselbe ist wie im Codeschnipsel, dann aktualisieren Sie Ihre @code{my-hello}-Deklaration entsprechend."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:690
+#: doc/guix-cookbook.texi:693
msgid "Note that GNU package tarballs come with an OpenPGP signature, so you should definitely check the signature of this tarball with `gpg` to authenticate it before going further:"
msgstr "Beachten Sie, dass Tarball-Archive von GNU-Paketen mit einer OpenPGP-Signatur ausgeliefert werden, deshalb sollten Sie mit Sicherheit die Signatur dieses Tarballs mit „gpg“ überprüfen, um ihn zu authentifizieren, bevor Sie weitermachen."
#. This is example shell output.
#. type: example
-#: guix-git/doc/guix-cookbook.texi:694
+#: doc/guix-cookbook.texi:697
#, no-wrap
msgid ""
"$ guix download mirror://gnu/hello/hello-2.10.tar.gz.sig\n"
@@ -1527,7 +1550,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:709
+#: doc/guix-cookbook.texi:712
#, no-wrap
msgid ""
"Starting download of /tmp/guix-file.03tFfb\n"
@@ -1560,25 +1583,25 @@ msgstr ""
"Haupt-Fingerabdruck = 8ED3 96E3 7E38 D471 A005 30D3 A955 3245 FDE9 B739\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:712
+#: doc/guix-cookbook.texi:715
msgid "You can then happily run"
msgstr "Sie können dann unbesorgt das hier ausführen:"
#. Do not translate this command
#. type: example
-#: guix-git/doc/guix-cookbook.texi:716
+#: doc/guix-cookbook.texi:719
#, no-wrap
msgid "$ guix package --install-from-file=my-hello.scm\n"
msgstr "$ guix package --install-from-file=my-hello.scm\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:719
+#: doc/guix-cookbook.texi:722
msgid "You should now have @code{my-hello} in your profile!"
msgstr "Nun sollte @code{my-hello} in Ihrem Profil enthalten sein!"
#. Do not translate this command
#. type: example
-#: guix-git/doc/guix-cookbook.texi:725
+#: doc/guix-cookbook.texi:728
#, no-wrap
msgid ""
"$ guix package --list-installed=my-hello\n"
@@ -1590,37 +1613,37 @@ msgstr ""
"/gnu/store/f1db2mfm8syb8qvc357c53slbvf1g9m9-my-hello-2.10\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:730
+#: doc/guix-cookbook.texi:733
msgid "We've gone as far as we could without any knowledge of Scheme. Before moving on to more complex packages, now is the right time to brush up on your Scheme knowledge. @pxref{A Scheme Crash Course} to get up to speed."
msgstr "Wir sind so weit gekommen, wie es ohne Scheme-Kenntnisse möglich ist. Bevor wir mit komplexeren Paketen weitermachen, ist jetzt der Zeitpunkt gekommen, Ihr Wissen über Scheme zu entstauben. Siehe @ref{Ein Schnellkurs in Scheme} für eine Auffrischung."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:737
+#: doc/guix-cookbook.texi:740
msgid "In the rest of this chapter we will rely on some basic Scheme programming knowledge. Now let's detail the different possible setups for working on Guix packages."
msgstr "Im Rest dieses Kapitels setzen wir ein paar grundlegende Scheme-Programmierkenntnisse voraus. Wir wollen uns nun verschiedene mögliche Herangehensweisen anschauen, wie man an Guix-Paketen arbeiten kann."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:739
+#: doc/guix-cookbook.texi:742
msgid "There are several ways to set up a Guix packaging environment."
msgstr "Es gibt mehrere Arten, eine Umgebung zum Paketeschreiben aufzusetzen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:742
+#: doc/guix-cookbook.texi:745
msgid "We recommend you work directly on the Guix source checkout since it makes it easier for everyone to contribute to the project."
msgstr "Unsere Empfehlung ist, dass Sie direkt am Checkout des Guix-Quellcodes arbeiten, weil es dann für alle einfacher ist, zu Guix beizutragen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:744
+#: doc/guix-cookbook.texi:747
msgid "But first, let's look at other possibilities."
msgstr "Werfen wir aber zunächst einen Blick auf andere Möglichkeiten."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:757
+#: doc/guix-cookbook.texi:760
msgid "This is what we previously did with @samp{my-hello}. With the Scheme basics we've covered, we are now able to explain the leading chunks. As stated in @code{guix package --help}:"
msgstr "Diese Methode haben wir zuletzt für @samp{my-hello} benutzt. Jetzt nachdem wir uns mit den Scheme-Grundlagen befasst haben, können wir uns den Code am Anfang erklären. @code{guix package --help} sagt uns:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:762
+#: doc/guix-cookbook.texi:765
#, no-wrap
msgid ""
" -f, --install-from-file=FILE\n"
@@ -1632,44 +1655,44 @@ msgstr ""
" ausgewertet wird\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:766
+#: doc/guix-cookbook.texi:769
msgid "Thus the last expression @emph{must} return a package, which is the case in our earlier example."
msgstr "Daher @emph{muss} der letzte Ausdruck ein Paket liefern, was im vorherigen Beispiel der Fall ist."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:770
+#: doc/guix-cookbook.texi:773
msgid "The @code{use-modules} expression tells which of the modules we need in the file. Modules are a collection of values and procedures. They are commonly called ``libraries'' or ``packages'' in other programming languages."
msgstr "Der Ausdruck @code{use-modules} sagt aus, welche Module in der Datei gebraucht werden. Module sind eine Sammlung aus Werten und Prozeduren. In anderen Programmiersprachen werden sie oft „Bibliotheken“ oder „Pakete“ genannt."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:774
+#: doc/guix-cookbook.texi:777
#, no-wrap
msgid "channel"
msgstr "Kanal"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:780
+#: doc/guix-cookbook.texi:783
msgid "Guix and its package collection can be extended through @dfn{channels}. A channel is a Git repository, public or not, containing @file{.scm} files that provide packages (@pxref{Defining Packages,,, guix, GNU Guix Reference Manual}) or services (@pxref{Defining Services,,, guix, GNU Guix Reference Manual})."
msgstr "Guix und seine Paketsammlung können durch @dfn{Kanäle} (englisch: Channels) erweitert werden. Ein Kanal ist ein Git-Repository, öffentlich oder nicht, das @file{.scm}-Dateien enthält, die Pakete (siehe @ref{Pakete definieren,,, guix.de, Referenzhandbuch zu GNU Guix}) oder Dienste (siehe @ref{Dienste definieren,,, guix.de, Referenzhandbuch zu GNU Guix}) bereitstellen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:783
+#: doc/guix-cookbook.texi:786
msgid "How would you go about creating a channel? First, create a directory that will contain your @file{.scm} files, say @file{~/my-channel}:"
msgstr "Wie würden Sie einen Kanal erstellen? Erstellen Sie zunächst ein Verzeichnis, das Ihre @file{.scm}-Dateien enthalten wird, beispielsweise @file{~/my-channel}:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:786
+#: doc/guix-cookbook.texi:789
#, no-wrap
msgid "mkdir ~/my-channel\n"
msgstr "mkdir ~/my-channel\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:790
+#: doc/guix-cookbook.texi:793
msgid "Suppose you want to add the @samp{my-hello} package we saw previously; it first needs some adjustments:"
msgstr "Angenommen, Sie möchten das Paket @samp{my-hello}, das wir zuvor gesehen haben, hinzufügen; es bedarf zunächst einiger Anpassungen:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:797
+#: doc/guix-cookbook.texi:800
#, no-wrap
msgid ""
"(define-module (my-hello)\n"
@@ -1687,7 +1710,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:817
+#: doc/guix-cookbook.texi:820
#, no-wrap
msgid ""
"(define-public my-hello\n"
@@ -1731,17 +1754,17 @@ msgstr ""
" (license gpl3+)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:823
+#: doc/guix-cookbook.texi:826
msgid "Note that we have assigned the package value to an exported variable name with @code{define-public}. This is effectively assigning the package to the @code{my-hello} variable so that it can be referenced, among other as dependency of other packages."
msgstr "Beachten Sie, dass wir den Paketwert einer exportierten Variablen mit @code{define-public} zugewiesen haben. Das bedeutet, das Paket wird einer Variablen @code{my-hello} zugewiesen, damit darauf verwiesen werden kann. Unter anderem kann es dadurch als Abhängigkeit anderer Pakete verwendet werden."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:828
+#: doc/guix-cookbook.texi:831
msgid "If you use @code{guix package --install-from-file=my-hello.scm} on the above file, it will fail because the last expression, @code{define-public}, does not return a package. If you want to use @code{define-public} in this use-case nonetheless, make sure the file ends with an evaluation of @code{my-hello}:"
msgstr "Wenn Sie @code{guix package --install-from-file=my-hello.scm} auf der obigen Datei aufrufen, geht es schief, weil der letzte Ausdruck, @code{define-public}, kein Paket zurückliefert. Wenn Sie trotzdem @code{define-public} für jene Herangehensweise verwenden möchten, stellen Sie sicher, dass am Ende der Datei eine Auswertung von @code{my-hello} steht:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:834
+#: doc/guix-cookbook.texi:837
#, no-wrap
msgid ""
";; ...\n"
@@ -1757,23 +1780,23 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:836
+#: doc/guix-cookbook.texi:839
#, no-wrap
msgid "my-hello\n"
msgstr "my-hello\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:839
+#: doc/guix-cookbook.texi:842
msgid "This last example is not very typical."
msgstr "Meistens tut man das aber nicht."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:843
+#: doc/guix-cookbook.texi:846
msgid "Now how do you make that package visible to @command{guix} commands so you can test your packages? You need to add the directory to the search path using the @option{-L} command-line option, as in these examples:"
msgstr "Wie machen Sie nun dieses Paket für @command{guix}-Befehle sichtbar, damit Sie Ihre Pakete testen können? Sie müssen das Verzeichnis mit der Befehlszeilenoption @option{-L} zum Suchpfad hinzufügen, wie in diesen Beispielen:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:847
+#: doc/guix-cookbook.texi:850
#, no-wrap
msgid ""
"guix show -L ~/my-channel my-hello\n"
@@ -1783,12 +1806,12 @@ msgstr ""
"guix build -L ~/my-channel my-hello\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:853
+#: doc/guix-cookbook.texi:856
msgid "The final step is to turn @file{~/my-channel} into an actual channel, making your package collection seamlessly available @i{via} any @command{guix} command. To do that, you first need to make it a Git repository:"
msgstr "Der letzte Schritt besteht darin, @file{~/my-channel} in einen echten Kanal zu verwandeln, so dass Ihre Paketsammlung nahtlos mit jedem @command{guix}-Befehl zur Verfügung steht. Dazu müssen Sie es zunächst zu einem Git-Repository machen:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:859
+#: doc/guix-cookbook.texi:862
#, no-wrap
msgid ""
"cd ~/my-channel\n"
@@ -1802,12 +1825,12 @@ msgstr ""
"git commit -m \"Erster Commit meines Kanals.\"\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:867
+#: doc/guix-cookbook.texi:870
msgid "And that's it, you have a channel! From there on, you can add this channel to your channel configuration in @file{~/.config/guix/channels.scm} (@pxref{Specifying Additional Channels,,, guix, GNU Guix Reference Manual}); assuming you keep your channel local for now, the @file{channels.scm} would look something like this:"
msgstr "Und das war’s, Sie haben einen Kanal! Von nun an können Sie diesen Kanal zu Ihrer Kanalkonfiguration in @file{~/.config/guix/channels.scm} hinzufügen (siehe @ref{Weitere Kanäle angeben,,, guix.de, Referenzhandbuch zu GNU Guix}). Unter der Annahme, dass Sie Ihren Kanal vorerst lokal halten, würde die @file{channels.scm} etwa so aussehen:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:874
+#: doc/guix-cookbook.texi:877
#, no-wrap
msgid ""
"(append (list (channel\n"
@@ -1823,68 +1846,68 @@ msgstr ""
" %default-channels)\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:881
+#: doc/guix-cookbook.texi:884
msgid "Next time you run @command{guix pull}, your channel will be picked up and the packages it defines will be readily available to all the @command{guix} commands, even if you do not pass @option{-L}. The @command{guix describe} command will show that Guix is, indeed, using both the @code{my-channel} and the @code{guix} channels."
msgstr "Wenn Sie das nächste Mal @command{guix pull} ausführen, wird Ihr Kanal aufgenommen und die darin definierten Pakete stehen allen @command{guix}-Befehlen zur Verfügung, auch wenn Sie @option{-L} nicht übergeben. Der Befehl @command{guix describe} wird zeigen, dass Guix tatsächlich sowohl den Kanal @code{my-channel} als auch den @code{guix}-Kanal benutzt."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:884
+#: doc/guix-cookbook.texi:887
msgid "@xref{Creating a Channel,,, guix, GNU Guix Reference Manual}, for details."
msgstr "Siehe @ref{Einen Kanal erstellen,,, guix.de, Referenzhandbuch zu GNU Guix} für Details."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:891
+#: doc/guix-cookbook.texi:894
msgid "Working directly on the Guix project is recommended: it reduces the friction when the time comes to submit your changes upstream to let the community benefit from your hard work!"
msgstr "Es wird empfohlen, direkt am Code des Guix-Projekts zu arbeiten, weil Ihre Änderungen dann später mit weniger Schwierigkeiten bei uns eingereicht werden können, damit Ihre harte Arbeit der Gemeinschaft nützt!"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:897
+#: doc/guix-cookbook.texi:900
msgid "Unlike most software distributions, the Guix repository holds in one place both the tooling (including the package manager) and the package definitions. This choice was made so that it would give developers the flexibility to modify the API without breakage by updating all packages at the same time. This reduces development inertia."
msgstr "Anders als die meisten Software-Distributionen werden bei Guix sowohl Werkzeuge (einschließlich des Paketverwaltungsprogramms) als auch die Paketdefinitionen in einem Repository gespeichert. Der Grund für diese Entscheidung war, dass Entwickler die Freiheit haben sollten, die Programmierschnittstelle (API) zu ändern, ohne Inkompatibilitäten einzuführen, indem alle Pakete gleichzeitig mit der API aktualisiert werden. Dadurch wird die Entwicklung weniger träge."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:899
+#: doc/guix-cookbook.texi:902
msgid "Check out the official @uref{https://git-scm.com/, Git} repository:"
msgstr "Legen Sie ein Checkout des offiziellen @uref{https://git-scm.com/, Git-Repositorys} an:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:902
+#: doc/guix-cookbook.texi:905
#, no-wrap
msgid "$ git clone https://git.savannah.gnu.org/git/guix.git\n"
msgstr "$ git clone https://git.savannah.gnu.org/git/guix.git\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:906
+#: doc/guix-cookbook.texi:909
msgid "In the rest of this article, we use @samp{$GUIX_CHECKOUT} to refer to the location of the checkout."
msgstr "Im Rest dieses Artikels schreiben wir @samp{$GUIX_CHECKOUT}, wenn wir den Ort meinen, an dem das Checkout gespeichert ist."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:910
+#: doc/guix-cookbook.texi:913
msgid "Follow the instructions in the manual (@pxref{Contributing,,, guix, GNU Guix Reference Manual}) to set up the repository environment."
msgstr "Folgen Sie den Anweisungen im Handbuch (siehe (@ref{Mitwirken,,, guix.de, Referenzhandbuch zu GNU Guix}), um die nötige Umgebung für die Nutzung des Repositorys herzustellen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:913
+#: doc/guix-cookbook.texi:916
msgid "Once ready, you should be able to use the package definitions from the repository environment."
msgstr "Sobald sie hergestellt wurde, sollten Sie die Paketdefinitionen aus der Repository-Umgebung benutzen können."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:915
+#: doc/guix-cookbook.texi:918
msgid "Feel free to edit package definitions found in @samp{$GUIX_CHECKOUT/gnu/packages}."
msgstr "Versuchen Sie sich ruhig daran, die Paketdefinitionen zu editieren, die Sie in @samp{$GUIX_CHECKOUT/gnu/packages} finden."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:919
+#: doc/guix-cookbook.texi:922
msgid "The @samp{$GUIX_CHECKOUT/pre-inst-env} script lets you use @samp{guix} over the package collection of the repository (@pxref{Running Guix Before It Is Installed,,, guix, GNU Guix Reference Manual})."
msgstr "Das Skript @samp{$GUIX_CHECKOUT/pre-inst-env} ermöglicht es Ihnen, @samp{guix} auf der Paketsammlung des Repositorys aufzurufen (siehe @ref{Guix vor der Installation ausführen,,, guix.de, Referenzhandbuch zu GNU Guix})."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:923
+#: doc/guix-cookbook.texi:926
msgid "Search packages, such as Ruby:"
msgstr "So suchen Sie Pakete, z.B.@: Ruby:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:930
+#: doc/guix-cookbook.texi:933
#, no-wrap
msgid ""
" $ cd $GUIX_CHECKOUT\n"
@@ -1900,12 +1923,12 @@ msgstr ""
" ruby 2.2.2 out gnu/packages/ruby.scm:39:2\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:934
+#: doc/guix-cookbook.texi:937
msgid "Build a package, here Ruby version 2.1:"
msgstr "Erstellen Sie ein Paket, z.B.@: Ruby in Version 2.1:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:938
+#: doc/guix-cookbook.texi:941
#, no-wrap
msgid ""
" $ ./pre-inst-env guix build --keep-failed ruby@@2.1\n"
@@ -1915,59 +1938,59 @@ msgstr ""
" /gnu/store/c13v73jxmj2nir2xjqaz5259zywsa9zi-ruby-2.1.6\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:942
+#: doc/guix-cookbook.texi:945
msgid "Install it to your user profile:"
msgstr "Installieren Sie es in Ihr Profil:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:945
+#: doc/guix-cookbook.texi:948
#, no-wrap
msgid " $ ./pre-inst-env guix package --install ruby@@2.1\n"
msgstr " $ ./pre-inst-env guix package --install ruby@@2.1\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:949
+#: doc/guix-cookbook.texi:952
msgid "Check for common mistakes:"
msgstr "Prüfen Sie auf häufige Fehler:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:952
+#: doc/guix-cookbook.texi:955
#, no-wrap
msgid " $ ./pre-inst-env guix lint ruby@@2.1\n"
msgstr " $ ./pre-inst-env guix lint ruby@@2.1\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:957
+#: doc/guix-cookbook.texi:960
msgid "Guix strives at maintaining a high packaging standard; when contributing to the Guix project, remember to"
msgstr "Guix ist bestrebt, einen hohen Standard an seine Pakete anzusetzen. Wenn Sie Beiträge zum Guix-Projekt leisten,"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:961
+#: doc/guix-cookbook.texi:964
msgid "follow the coding style (@pxref{Coding Style,,, guix, GNU Guix Reference Manual}),"
msgstr "schreiben Sie Ihren Code im Stil von Guix (siehe @ref{Programmierstil,,, guix.de, Referenzhandbuch zu GNU Guix})"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:963
+#: doc/guix-cookbook.texi:966
msgid "and review the check list from the manual (@pxref{Submitting Patches,,, guix, GNU Guix Reference Manual})."
msgstr "und schauen Sie sich die Kontrollliste aus dem Handbuch (siehe @ref{Einreichen von Patches,,, guix.de, Referenzhandbuch zu GNU Guix}) noch einmal an."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:967
+#: doc/guix-cookbook.texi:970
msgid "Once you are happy with the result, you are welcome to send your contribution to make it part of Guix. This process is also detailed in the manual. (@pxref{Contributing,,, guix, GNU Guix Reference Manual})"
msgstr "Sobald Sie mit dem Ergebnis zufrieden sind, freuen wir uns, wenn Sie Ihren Beitrag an uns schicken, damit wir ihn in Guix aufnehmen. Dieser Prozess wird auch im Handbuch beschrieben (siehe @ref{Mitwirken,,, guix.de, Referenzhandbuch zu GNU Guix})<."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:970
+#: doc/guix-cookbook.texi:973
msgid "It's a community effort so the more join in, the better Guix becomes!"
msgstr "Es handelt sich um eine gemeinschaftliche Arbeit, je mehr also mitmachen, desto besser wird Guix!"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:977
+#: doc/guix-cookbook.texi:980
msgid "The above ``Hello World'' example is as simple as it goes. Packages can be more complex than that and Guix can handle more advanced scenarios. Let's look at another, more sophisticated package (slightly modified from the source):"
msgstr "Einfacher als obiges Hallo-Welt-Beispiel wird es nicht. Pakete können auch komplexer als das sein und Guix eignet sich für fortgeschrittenere Szenarien. Schauen wir uns ein anderes, umfangreicheres Paket an (leicht modifiziert gegenüber Guix’ Quellcode):"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:991
+#: doc/guix-cookbook.texi:994
#, no-wrap
msgid ""
"(define-module (gnu packages version-control)\n"
@@ -1999,7 +2022,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1047
+#: doc/guix-cookbook.texi:1050
#, no-wrap
msgid ""
"(define-public my-libgit2\n"
@@ -2116,43 +2139,43 @@ msgstr ""
" (license license:gpl2))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1052
+#: doc/guix-cookbook.texi:1055
msgid "(In those cases were you only want to tweak a few fields from a package definition, you should rely on inheritance instead of copy-pasting everything. See below.)"
msgstr "(In solchen Fällen, wo Sie nur ein paar wenige Felder einer Paketdefinition abändern wollen, wäre es wirklich besser, wenn Sie Vererbung einsetzen würden, statt alles abzuschreiben. Siehe unten.)"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1054
+#: doc/guix-cookbook.texi:1057
msgid "Let's discuss those fields in depth."
msgstr "Reden wir über diese Felder im Detail."
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:1055
+#: doc/guix-cookbook.texi:1058
#, no-wrap
msgid "@code{git-fetch} method"
msgstr "@code{git-fetch}-Methode"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1062
+#: doc/guix-cookbook.texi:1065
msgid "Unlike the @code{url-fetch} method, @code{git-fetch} expects a @code{git-reference} which takes a Git repository and a commit. The commit can be any Git reference such as tags, so if the @code{version} is tagged, then it can be used directly. Sometimes the tag is prefixed with a @code{v}, in which case you'd use @code{(commit (string-append \"v\" version))}."
msgstr "Anders als die @code{url-fetch}-Methode erwartet @code{git-fetch} eine @code{git-reference}, welche ein Git-Repository und einen Commit entgegennimmt. Der Commit kann eine beliebige Art von Git-Referenz sein, z.B.@: ein Tag. Wenn die @code{version} also mit einem Tag versehen ist, kann sie einfach benutzt werden. Manchmal ist dem Tag ein Präfix @code{v} vorangestellt. In diesem Fall würden Sie @code{(commit (string-append \"v\" version))} schreiben."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1066
+#: doc/guix-cookbook.texi:1069
msgid "To ensure that the source code from the Git repository is stored in a directory with a descriptive name, we use @code{(file-name (git-file-name name version))}."
msgstr "Um sicherzustellen, dass der Quellcode aus dem Git-Repository in einem Verzeichnis mit nachvollziehbarem Namen landet, schreiben wir @code{(file-name (git-file-name name version))}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1071
+#: doc/guix-cookbook.texi:1074
msgid "The @code{git-version} procedure can be used to derive the version when packaging programs for a specific commit, following the Guix contributor guidelines (@pxref{Version Numbers,,, guix, GNU Guix Reference Manual})."
msgstr "Mit der Prozedur @code{git-version} kann die Version beim Paketieren eines bestimmten Commits eines Programms entsprechend den Richtlinien für Beiträge zu Guix (@pxref{Versionsnummern,,, guix.de, Referenzhandbuch zu GNU Guix}) abgeleitet werden."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1075
+#: doc/guix-cookbook.texi:1078
msgid "How does one obtain the @code{sha256} hash that's in there, you ask? By invoking @command{guix hash} on a checkout of the desired commit, along these lines:"
msgstr "Sie fragen, woher man den darin angegebenen @code{sha256}-Hash bekommt? Indem Sie @command{guix hash} auf einem Checkout des gewünschten Commits aufrufen, ungefähr so:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1081
+#: doc/guix-cookbook.texi:1084
#, no-wrap
msgid ""
"git clone https://github.com/libgit2/libgit2/\n"
@@ -2166,109 +2189,110 @@ msgstr ""
"guix hash -rx .\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1086
+#: doc/guix-cookbook.texi:1089
msgid "@command{guix hash -rx} computes a SHA256 hash over the whole directory, excluding the @file{.git} sub-directory (@pxref{Invoking guix hash,,, guix, GNU Guix Reference Manual})."
msgstr "@command{guix hash -rx} berechnet einen SHA256-Hash des gesamten Verzeichnisses, abgesehen vom @file{.git}-Unterverzeichnis (siehe @ref{Aufruf von guix hash,,, guix.de, Referenzhandbuch zu GNU Guix})."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1089
+#: doc/guix-cookbook.texi:1092
msgid "In the future, @command{guix download} will hopefully be able to do these steps for you, just like it does for regular downloads."
msgstr "In Zukunft wird @command{guix download} diese Schritte hoffentlich für Sie erledigen können, genau wie es das für normales Herunterladen macht."
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:1090
+#: doc/guix-cookbook.texi:1093
#, no-wrap
msgid "Snippets"
msgstr "Schnipsel"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1096
+#: doc/guix-cookbook.texi:1099
msgid "Snippets are quoted (i.e. non-evaluated) Scheme code that are a means of patching the source. They are a Guix-y alternative to the traditional @file{.patch} files. Because of the quote, the code in only evaluated when passed to the Guix daemon for building. There can be as many snippets as needed."
msgstr "„Snippets“, deutsch Schnipsel, sind mit z.B.@: @code{quote}-Zeichen maskierte, also nicht ausgewertete, Stücke Scheme-Code, mit denen der Quellcode gepatcht wird. Sie sind eine guixige Alternative zu traditionellen @file{.patch}-Dateien. Wegen der Maskierung werden sie erst dann ausgewertet, wenn sie an den Guix-Daemon zum Erstellen übergeben werden. Es kann so viele Schnipsel geben wie nötig."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1099
+#: doc/guix-cookbook.texi:1102
msgid "Snippets might need additional Guile modules which can be imported from the @code{modules} field."
msgstr "In Schnipseln könnten zusätzliche Guile-Module benötigt werden. Diese können importiert werden, indem man sie im Feld @code{modules} angibt."
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:1100
+#: doc/guix-cookbook.texi:1103
#, no-wrap
msgid "Inputs"
msgstr "Eingaben"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1103
+#: doc/guix-cookbook.texi:1106
msgid "There are 3 different input types. In short:"
msgstr "Es gibt 3 verschiedene Arten von Eingaben. Kurz gefasst:"
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1105
+#: doc/guix-cookbook.texi:1108
#, no-wrap
msgid "native-inputs"
msgstr "native-inputs"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1108
+#: doc/guix-cookbook.texi:1111
msgid "Required for building but not runtime -- installing a package through a substitute won't install these inputs."
msgstr "Sie werden zum Erstellen gebraucht, aber @emph{nicht} zur Laufzeit@tie{}– wenn Sie ein Paket als Substitut installieren, werden diese Eingaben nirgendwo installiert."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1108
+#: doc/guix-cookbook.texi:1111
#, no-wrap
msgid "inputs"
msgstr "inputs"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1111
+#: doc/guix-cookbook.texi:1114
msgid "Installed in the store but not in the profile, as well as being present at build time."
msgstr "Sie werden in den Store installiert, aber nicht in das Profil, und sie stehen beim Erstellen zur Verfügung."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1111
+#: doc/guix-cookbook.texi:1114
#, no-wrap
msgid "propagated-inputs"
msgstr "propagated-inputs"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1114
+#: doc/guix-cookbook.texi:1117
msgid "Installed in the store and in the profile, as well as being present at build time."
msgstr "Sie werden sowohl in den Store als auch ins Profil installiert und sind auch beim Erstellen verfügbar."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1117
+#: doc/guix-cookbook.texi:1120
msgid "@xref{package Reference,,, guix, GNU Guix Reference Manual} for more details."
msgstr "Siehe @ref{„package“-Referenz,,, guix.de, Referenzhandbuch zu GNU Guix} für mehr Details."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1121
+#: doc/guix-cookbook.texi:1124
msgid "The distinction between the various inputs is important: if a dependency can be handled as an @emph{input} instead of a @emph{propagated input}, it should be done so, or else it ``pollutes'' the user profile for no good reason."
msgstr "Der Unterschied zwischen den verschiedenen Eingaben ist wichtig: Wenn eine Abhängigkeit als @code{input} statt als @code{propagated-input} ausreicht, dann sollte sie auch so eingeordnet werden, sonst „verschmutzt“ sie das Profil des Benutzers ohne guten Grund."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1128
+#: doc/guix-cookbook.texi:1131
msgid "For instance, a user installing a graphical program that depends on a command line tool might only be interested in the graphical part, so there is no need to force the command line tool into the user profile. The dependency is a concern to the package, not to the user. @emph{Inputs} make it possible to handle dependencies without bugging the user by adding undesired executable files (or libraries) to their profile."
msgstr "Wenn eine Nutzerin beispielsweise ein grafisches Programm installiert, das von einem Befehlszeilenwerkzeug abhängt, sie sich aber nur für den grafischen Teil interessiert, dann sollten wir sie nicht zur Installation des Befehlszeilenwerkzeugs in ihr Benutzerprofil zwingen. Um die Abhängigkeit sollte sich das Paket kümmern, nicht seine Benutzerin. Mit @emph{Inputs} können wir Abhängigkeiten verwenden, wo sie gebraucht werden, ohne Nutzer zu belästigen, indem wir ausführbare Dateien (oder Bibliotheken) in deren Profil installieren."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1134
+#: doc/guix-cookbook.texi:1137
msgid "Same goes for @emph{native-inputs}: once the program is installed, build-time dependencies can be safely garbage-collected. It also matters when a substitute is available, in which case only the @emph{inputs} and @emph{propagated inputs} will be fetched: the @emph{native inputs} are not required to install a package from a substitute."
msgstr "Das Gleiche gilt für @emph{native-inputs}: Wenn das Programm einmal installiert ist, können Abhängigkeiten zur Erstellungszeit gefahrlos dem Müllsammler anvertraut werden. Sie sind auch besser, wenn ein Substitut verfügbar ist, so dass nur die @code{inputs} und @code{propagated-inputs} heruntergeladen werden; @code{native-inputs} braucht niemand, der das Paket aus einem Substitut heraus installiert."
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:1135 guix-git/doc/guix-cookbook.texi:2244
-#: guix-git/doc/guix-cookbook.texi:3945 guix-git/doc/guix-cookbook.texi:3999
+#: doc/guix-cookbook.texi:1138 doc/guix-cookbook.texi:2299
+#: doc/guix-cookbook.texi:3725 doc/guix-cookbook.texi:4892
+#: doc/guix-cookbook.texi:4946
#, no-wrap
msgid "Note"
msgstr "Anmerkung"
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:1138
+#: doc/guix-cookbook.texi:1141
msgid "You may see here and there snippets where package inputs are written quite differently, like so:"
msgstr "Vielleicht bemerken Sie hier und da Schnipsel, deren Paketeingaben recht anders geschrieben wurden, etwa so:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1145
+#: doc/guix-cookbook.texi:1148
#, no-wrap
msgid ""
";; The \"old style\" for inputs.\n"
@@ -2284,69 +2308,69 @@ msgstr ""
" (\"python\" ,python-wrapper)))\n"
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:1151
+#: doc/guix-cookbook.texi:1154
msgid "This is the ``old style'', where each input in the list is explicitly given a label (a string). It is still supported but we recommend using the style above instead. @xref{package Reference,,, guix, GNU Guix Reference Manual}, for more info."
msgstr "Früher hatte man Eingaben in diesem „alten Stil“ geschrieben, wo jede Eingabe ausdrücklich mit einer Bezeichnung (als Zeichenkette) assoziiert wurde. Er wird immer noch unterstützt, aber wir empfehlen, dass Sie stattdessen im weiter oben gezeigten Stil schreiben. Siehe @ref{„package“-Referenz,,, guix.de, Referenzhandbuch zu GNU Guix} für mehr Informationen."
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:1153
+#: doc/guix-cookbook.texi:1156
#, no-wrap
msgid "Outputs"
msgstr "Ausgaben"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1157
+#: doc/guix-cookbook.texi:1160
msgid "Just like how a package can have multiple inputs, it can also produce multiple outputs."
msgstr "Genau wie ein Paket mehrere Eingaben haben kann, kann es auch mehrere Ausgaben haben."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1159
+#: doc/guix-cookbook.texi:1162
msgid "Each output corresponds to a separate directory in the store."
msgstr "Jede Ausgabe entspricht einem anderen Verzeichnis im Store."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1162
+#: doc/guix-cookbook.texi:1165
msgid "The user can choose which output to install; this is useful to save space or to avoid polluting the user profile with unwanted executables or libraries."
msgstr "Die Benutzerin kann sich entscheiden, welche Ausgabe sie installieren will; so spart sie Platz auf dem Datenträger und verschmutzt ihr Benutzerprofil nicht mit unerwünschten ausführbaren Dateien oder Bibliotheken."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1165
+#: doc/guix-cookbook.texi:1168
msgid "Output separation is optional. When the @code{outputs} field is left out, the default and only output (the complete package) is referred to as @code{\"out\"}."
msgstr "Nach Ausgaben zu trennen ist optional. Wenn Sie kein @code{outputs}-Feld schreiben, heißt die standardmäßige und einzige Ausgabe (also das ganze Paket) schlicht @code{\"out\"}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1167
+#: doc/guix-cookbook.texi:1170
msgid "Typical separate output names include @code{debug} and @code{doc}."
msgstr "Typische Namen für getrennte Ausgaben sind @code{debug} und @code{doc}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1171
+#: doc/guix-cookbook.texi:1174
msgid "It's advised to separate outputs only when you've shown it's worth it: if the output size is significant (compare with @code{guix size}) or in case the package is modular."
msgstr "Es wird empfohlen, getrennte Ausgaben nur dann anzubieten, wenn Sie gezeigt haben, dass es sich lohnt, d.h.@: wenn die Ausgabengröße signifikant ist (vergleichen Sie sie mittels @code{guix size}) oder das Paket modular aufgebaut ist."
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:1172
+#: doc/guix-cookbook.texi:1175
#, no-wrap
msgid "Build system arguments"
msgstr "Argumente ans Erstellungssystem"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1175
+#: doc/guix-cookbook.texi:1178
msgid "The @code{arguments} is a keyword-value list used to configure the build process."
msgstr "@code{arguments} ist eine Liste aus Schlüsselwort-Wert-Paaren (eine „keyword-value list“), mit denen der Erstellungsprozess konfiguriert wird."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1180
+#: doc/guix-cookbook.texi:1183
msgid "The simplest argument @code{#:tests?} can be used to disable the test suite when building the package. This is mostly useful when the package does not feature any test suite. It's strongly recommended to keep the test suite on if there is one."
msgstr "Das einfachste Argument @code{#:tests?} kann man benutzen, um den Testkatalog bei der Erstellung des Pakets nicht zu prüfen. Das braucht man meistens dann, wenn das Paket überhaupt keinen Testkatalog hat. Wir empfehlen sehr, den Testkatalog zu benutzen, wenn es einen gibt."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1184
+#: doc/guix-cookbook.texi:1187
msgid "Another common argument is @code{:make-flags}, which specifies a list of flags to append when running make, as you would from the command line. For instance, the following flags"
msgstr "Ein anderes häufiges Argument ist @code{:make-flags}, was eine Liste an den @code{make}-Aufruf anzuhängender Befehlszeilenargumente festlegt, so wie Sie sie auf der Befehlszeile angeben würden. Zum Beispiel werden die folgenden @code{:make-flags}"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1188
+#: doc/guix-cookbook.texi:1191
#, no-wrap
msgid ""
"#:make-flags (list (string-append \"prefix=\" (assoc-ref %outputs \"out\"))\n"
@@ -2356,44 +2380,44 @@ msgstr ""
" \"CC=gcc\")\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1191
+#: doc/guix-cookbook.texi:1194
msgid "translate into"
msgstr "übersetzt zu"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1194
+#: doc/guix-cookbook.texi:1197
#, no-wrap
msgid "$ make CC=gcc prefix=/gnu/store/...-<out>\n"
msgstr "$ make CC=gcc prefix=/gnu/store/...-<out>\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1200
+#: doc/guix-cookbook.texi:1203
msgid "This sets the C compiler to @code{gcc} and the @code{prefix} variable (the installation directory in Make parlance) to @code{(assoc-ref %outputs \"out\")}, which is a build-stage global variable pointing to the destination directory in the store (something like @file{/gnu/store/...-my-libgit2-20180408})."
msgstr "Dadurch wird als C-Compiler @code{gcc} verwendet und als @code{prefix}-Variable (das Installationsverzeichnis in der Sprechweise von Make) wird @code{(assoc-ref %outputs \"out\")} verwendet, also eine globale Variable der Erstellungsschicht, die auf das Zielverzeichnis im Store verweist (so etwas wie @file{/gnu/store/…-my-libgit2-20180408})."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1202
+#: doc/guix-cookbook.texi:1205
msgid "Similarly, it's possible to set the configure flags:"
msgstr "Auf gleiche Art kann man auch die Befehlszeilenoptionen für configure festlegen:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1205
+#: doc/guix-cookbook.texi:1208
#, no-wrap
msgid "#:configure-flags '(\"-DUSE_SHA1DC=ON\")\n"
msgstr "#:configure-flags '(\"-DUSE_SHA1DC=ON\")\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1209
+#: doc/guix-cookbook.texi:1212
msgid "The @code{%build-inputs} variable is also generated in scope. It's an association table that maps the input names to their store directories."
msgstr "Die Variable @code{%build-inputs} wird auch in diesem Sichtbarkeitsbereich erzeugt. Es handelt sich um eine assoziative Liste, die von den Namen der Eingaben auf ihre Verzeichnisse im Store abbildet."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1214
+#: doc/guix-cookbook.texi:1217
msgid "The @code{phases} keyword lists the sequential steps of the build system. Typically phases include @code{unpack}, @code{configure}, @code{build}, @code{install} and @code{check}. To know more about those phases, you need to work out the appropriate build system definition in @samp{$GUIX_CHECKOUT/guix/build/gnu-build-system.scm}:"
msgstr "Das @code{phases}-Schlüsselwort listet der Reihe nach die vom Erstellungssystem durchgeführten Schritte auf. Zu den üblichen Phasen gehören @code{unpack}, @code{configure}, @code{build}, @code{install} und @code{check}. Um mehr über diese Phasen zu lernen, müssen Sie sich die Definition des zugehörigen Erstellungssystems in @samp{$GUIX_CHECKOUT/guix/build/gnu-build-system.scm} anschauen:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1233
+#: doc/guix-cookbook.texi:1236
#, no-wrap
msgid ""
"(define %standard-phases\n"
@@ -2433,12 +2457,12 @@ msgstr ""
" compress-documentation)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1236
+#: doc/guix-cookbook.texi:1239
msgid "Or from the REPL:"
msgstr "Alternativ auf einer REPL:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1242
+#: doc/guix-cookbook.texi:1245
#, no-wrap
msgid ""
"(add-to-load-path \"/path/to/guix/checkout\")\n"
@@ -2452,17 +2476,17 @@ msgstr ""
"@result{} (set-SOURCE-DATE-EPOCH set-paths install-locale unpack bootstrap patch-usr-bin-file patch-source-shebangs configure patch-generated-file-shebangs build check install patch-shebangs strip validate-runpath validate-documentation-location delete-info-dir-file patch-dot-desktop-files install-license-files reset-gzip-timestamps compress-documentation)\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1246
+#: doc/guix-cookbook.texi:1249
msgid "If you want to know more about what happens during those phases, consult the associated procedures."
msgstr "Wenn Sie mehr darüber wissen wollen, was in diesen Phasen passiert, schauen Sie in den jeweiligen Prozeduren."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1249
+#: doc/guix-cookbook.texi:1252
msgid "For instance, as of this writing the definition of @code{unpack} for the GNU build system is:"
msgstr "Beispielsweise sieht momentan, als dies hier geschrieben wurde, die Definition von @code{unpack} für das GNU-Erstellungssystem so aus:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1259
+#: doc/guix-cookbook.texi:1262
#, no-wrap
msgid ""
"(define* (unpack #:key source #:allow-other-keys)\n"
@@ -2486,7 +2510,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1270
+#: doc/guix-cookbook.texi:1273
#, no-wrap
msgid ""
" ;; Preserve timestamps (set to the Epoch) on the copied tree so that\n"
@@ -2512,42 +2536,42 @@ msgstr ""
" #true)\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1278
+#: doc/guix-cookbook.texi:1281
msgid "Note the @code{chdir} call: it changes the working directory to where the source was unpacked. Thus every phase following the @code{unpack} will use the source as a working directory, which is why we can directly work on the source files. That is to say, unless a later phase changes the working directory to something else."
msgstr "Beachten Sie den Aufruf von @code{chdir}: Damit wird das Arbeitsverzeichnis zu demjenigen gewechselt, wohin die Quelldateien entpackt wurden. In jeder Phase nach @code{unpack} dient also das Verzeichnis mit den Quelldateien als Arbeitsverzeichnis. Deswegen können wir direkt mit den Quelldateien arbeiten, zumindest solange keine spätere Phase das Arbeitsverzeichnis woandershin wechselt."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1282
+#: doc/guix-cookbook.texi:1285
msgid "We modify the list of @code{%standard-phases} of the build system with the @code{modify-phases} macro as per the list of specified modifications, which may have the following forms:"
msgstr "Die Liste der @code{%standard-phases} des Erstellungssystems ändern wir mit Hilfe des @code{modify-phases}-Makros über eine Liste von Änderungen. Sie kann folgende Formen haben:"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:1286
+#: doc/guix-cookbook.texi:1289
msgid "@code{(add-before @var{phase} @var{new-phase} @var{procedure})}: Run @var{procedure} named @var{new-phase} before @var{phase}."
msgstr "@code{(add-before @var{Phase} @var{neue-Phase} @var{Prozedur})}: @var{Prozedur} unter dem Namen @var{neue-Phase} vor @var{Phase} ausführen."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:1288
+#: doc/guix-cookbook.texi:1291
msgid "@code{(add-after @var{phase} @var{new-phase} @var{procedure})}: Same, but afterwards."
msgstr "@code{(add-after @var{Phase} @var{neue-Phase} @var{Prozedur})}: Genauso, aber danach."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:1290
+#: doc/guix-cookbook.texi:1293
msgid "@code{(replace @var{phase} @var{procedure})}."
msgstr "@code{(replace @var{Phase} @var{Prozedur})}."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:1292
+#: doc/guix-cookbook.texi:1295
msgid "@code{(delete @var{phase})}."
msgstr "@code{(delete @var{Phase})}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1299
+#: doc/guix-cookbook.texi:1302
msgid "The @var{procedure} supports the keyword arguments @code{inputs} and @code{outputs}. Each input (whether @emph{native}, @emph{propagated} or not) and output directory is referenced by their name in those variables. Thus @code{(assoc-ref outputs \"out\")} is the store directory of the main output of the package. A phase procedure may look like this:"
msgstr "Die @var{Prozedur} unterstützt die Schlüsselwortargumente @code{inputs} und @code{outputs}. Jede Eingabe (ob sie @emph{native}, @emph{propagated} oder nichts davon ist) und jedes Ausgabeverzeichnis ist in diesen Variablen mit dem jeweiligen Namen assoziiert. @code{(assoc-ref outputs \"out\")} ist also das Store-Verzeichnis der Hauptausgabe des Pakets. Eine Phasenprozedur kann so aussehen:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1307
+#: doc/guix-cookbook.texi:1310
#, no-wrap
msgid ""
"(lambda* (#:key inputs outputs #:allow-other-keys)\n"
@@ -2565,194 +2589,194 @@ msgstr ""
" #true))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1313
+#: doc/guix-cookbook.texi:1316
msgid "The procedure must return @code{#true} on success. It's brittle to rely on the return value of the last expression used to tweak the phase because there is no guarantee it would be a @code{#true}. Hence the trailing @code{#true} to ensure the right value is returned on success."
msgstr "Die Prozedur muss bei Erfolg @code{#true} zurückliefern. Auf den Rückgabewert des letzten Ausdrucks, mit dem die Phase angepasst wurde, kann man sich nicht verlassen, weil es keine Garantie gibt, dass der Rückgabewert @code{#true} sein wird. Deswegen schreiben wir dahinter @code{#true}, damit bei erfolgreicher Ausführung der richtige Wert geliefert wird."
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:1314
+#: doc/guix-cookbook.texi:1317
#, no-wrap
msgid "Code staging"
msgstr "Code-Staging"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1320
+#: doc/guix-cookbook.texi:1323
msgid "The astute reader may have noticed the quasi-quote and comma syntax in the argument field. Indeed, the build code in the package declaration should not be evaluated on the client side, but only when passed to the Guix daemon. This mechanism of passing code around two running processes is called @uref{https://arxiv.org/abs/1709.00833, code staging}."
msgstr "Aufmerksame Leser könnten die Syntax mit @code{quasiquote} und Komma im Argumentefeld bemerkt haben. Tatsächlich sollte der Erstellungscode in der Paketdeklaration @emph{nicht} auf Client-Seite ausgeführt werden, sondern erst, wenn er an den Guix-Daemon übergeben worden ist. Der Mechanismus, über den Code zwischen zwei laufenden Prozessen weitergegeben wird, nennen wir @uref{https://arxiv.org/abs/1709.00833, Code-Staging}."
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:1321
+#: doc/guix-cookbook.texi:1324
#, no-wrap
msgid "Utility functions"
msgstr "Hilfsfunktionen"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1326
+#: doc/guix-cookbook.texi:1329
msgid "When customizing @code{phases}, we often need to write code that mimics the equivalent system invocations (@code{make}, @code{mkdir}, @code{cp}, etc.)@: commonly used during regular ``Unix-style'' installations."
msgstr "Beim Anpassen der @code{phases} müssen wir oft Code schreiben, der analog zu den äquivalenten Systemaufrufen funktioniert (@code{make}, @code{mkdir}, @code{cp}, etc.), welche in regulären „Unix-artigen“ Installationen oft benutzt werden."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1329
+#: doc/guix-cookbook.texi:1332
msgid "Some like @code{chmod} are native to Guile. @xref{,,, guile, Guile reference manual} for a complete list."
msgstr "Manche, wie @code{chmod}, sind Teil von Guile. Siehe das @ref{,,, guile, Referenzhandbuch zu Guile} für eine vollständige Liste."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1332
+#: doc/guix-cookbook.texi:1335
msgid "Guix provides additional helper functions which prove especially handy in the context of package management."
msgstr "Guix stellt zusätzliche Hilfsfunktionen zur Verfügung, die bei der Paketverwaltung besonders praktisch sind."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1336
+#: doc/guix-cookbook.texi:1339
msgid "Some of those functions can be found in @samp{$GUIX_CHECKOUT/guix/guix/build/utils.scm}. Most of them mirror the behaviour of the traditional Unix system commands:"
msgstr "Manche dieser Funktionalitäten finden Sie in @samp{$GUIX_CHECKOUT/guix/guix/build/utils.scm}. Die meisten spiegeln das Verhalten traditioneller Unix-Systembefehle wider:"
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1338
+#: doc/guix-cookbook.texi:1341
#, no-wrap
msgid "which"
msgstr "which"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1340
+#: doc/guix-cookbook.texi:1343
msgid "Like the @samp{which} system command."
msgstr "Das Gleiche wie der @samp{which}-Systembefehl."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1340
+#: doc/guix-cookbook.texi:1343
#, no-wrap
msgid "find-files"
msgstr "find-files"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1342
+#: doc/guix-cookbook.texi:1345
msgid "Akin to the @samp{find} system command."
msgstr "Wie der @samp{find} Systembefehl."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1342
+#: doc/guix-cookbook.texi:1345
#, no-wrap
msgid "mkdir-p"
msgstr "mkdir-p"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1344
+#: doc/guix-cookbook.texi:1347
msgid "Like @samp{mkdir -p}, which creates all parents as needed."
msgstr "Wie @samp{mkdir -p}, das Elternverzeichnisse erzeugt, wenn nötig."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1344
+#: doc/guix-cookbook.texi:1347
#, no-wrap
msgid "install-file"
msgstr "install-file"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1348
+#: doc/guix-cookbook.texi:1351
msgid "Similar to @samp{install} when installing a file to a (possibly non-existing) directory. Guile has @code{copy-file} which works like @samp{cp}."
msgstr "Ähnlich wie @samp{install} beim Installieren einer Datei in ein (nicht unbedingt existierendes) Verzeichnis. Guile kennt @code{copy-file}, das wie @samp{cp} funktioniert."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1348
+#: doc/guix-cookbook.texi:1351
#, no-wrap
msgid "copy-recursively"
msgstr "copy-recursively"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1350
+#: doc/guix-cookbook.texi:1353
msgid "Like @samp{cp -r}."
msgstr "Wie @samp{cp -r}."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1350
+#: doc/guix-cookbook.texi:1353
#, no-wrap
msgid "delete-file-recursively"
msgstr "delete-file-recursively"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1352
+#: doc/guix-cookbook.texi:1355
msgid "Like @samp{rm -rf}."
msgstr "Wie @samp{rm -rf}."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1352
+#: doc/guix-cookbook.texi:1355
#, no-wrap
msgid "invoke"
msgstr "invoke"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1354
+#: doc/guix-cookbook.texi:1357
msgid "Run an executable. This should be used instead of @code{system*}."
msgstr "Eine ausführbare Datei ausführen. Man sollte es benutzen und nicht @code{system*}."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1354
+#: doc/guix-cookbook.texi:1357
#, no-wrap
msgid "with-directory-excursion"
msgstr "with-directory-excursion"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1357
+#: doc/guix-cookbook.texi:1360
msgid "Run the body in a different working directory, then restore the previous working directory."
msgstr "Den Rumpf in einem anderen Arbeitsverzeichnis ausführen und danach wieder in das vorherige Arbeitsverzeichnis wechseln."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1357
+#: doc/guix-cookbook.texi:1360
#, no-wrap
msgid "substitute*"
msgstr "substitute*"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1359
+#: doc/guix-cookbook.texi:1362
msgid "A ``@command{sed}-like'' function."
msgstr "Eine „@command{sed}-artige“ Funktion."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1363
+#: doc/guix-cookbook.texi:1366
msgid "@xref{Build Utilities,,, guix, GNU Guix Reference Manual}, for more information on these utilities."
msgstr "Siehe @ref{Werkzeuge zur Erstellung,,, guix.de, Referenzhandbuch zu GNU Guix} für mehr Informationen zu diesen Werkzeugen."
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:1364
+#: doc/guix-cookbook.texi:1367
#, no-wrap
msgid "Module prefix"
msgstr "Modulpräfix"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1374
+#: doc/guix-cookbook.texi:1377
msgid "The license in our last example needs a prefix: this is because of how the @code{license} module was imported in the package, as @code{#:use-module ((guix licenses) #:prefix license:)}. The Guile module import mechanism (@pxref{Using Guile Modules,,, guile, Guile reference manual}) gives the user full control over namespacing: this is needed to avoid clashes between, say, the @samp{zlib} variable from @samp{licenses.scm} (a @emph{license} value) and the @samp{zlib} variable from @samp{compression.scm} (a @emph{package} value)."
msgstr "Die Lizenz in unserem letzten Beispiel braucht ein Präfix. Der Grund liegt darin, wie das @code{license}-Modul importiert worden ist, nämlich @code{#:use-module ((guix licenses) #:prefix license:)}. Der Importmechanismus von Guile-Modulen (siehe @ref{Using Guile Modules,,, guile, Referenzhandbuch zu Guile}) gibt Benutzern die volle Kontrolle über Namensräume. Man braucht sie, um Konflikte zu lösen, z.B.@ zwischen der @samp{zlib}-Variablen aus @samp{licenses.scm} (dieser Wert repräsentiert eine @emph{Softwarelizenz}) und der @samp{zlib}-Variablen aus @samp{compression.scm} (ein Wert, der für ein @emph{Paket} steht)."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1383
+#: doc/guix-cookbook.texi:1386
msgid "What we've seen so far covers the majority of packages using a build system other than the @code{trivial-build-system}. The latter does not automate anything and leaves you to build everything manually. This can be more demanding and we won't cover it here for now, but thankfully it is rarely necessary to fall back on this system."
msgstr "Was wir bisher gesehen haben reicht für die meisten Pakete aus, die als Erstellungssystem etwas anderes als @code{trivial-build-system} verwenden. Letzteres automatisiert gar nichts und überlässt es Ihnen, alles zur Erstellung manuell festzulegen. Das kann einen noch mehr beanspruchen und wir beschreiben es hier zurzeit nicht, aber glücklicherweise braucht man dieses System auch nur in seltenen Fällen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1387
+#: doc/guix-cookbook.texi:1390
msgid "For the other build systems, such as ASDF, Emacs, Perl, Ruby and many more, the process is very similar to the GNU build system except for a few specialized arguments."
msgstr "Bei anderen Erstellungssystemen wie ASDF, Emacs, Perl, Ruby und vielen anderen ist der Prozess sehr ähnlich zum GNU-Erstellungssystem abgesehen von ein paar speziellen Argumenten."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1392
+#: doc/guix-cookbook.texi:1395
msgid "@xref{Build Systems,,, guix, GNU Guix Reference Manual}, for more information on build systems, or check the source code in the @samp{$GUIX_CHECKOUT/guix/build} and @samp{$GUIX_CHECKOUT/guix/build-system} directories."
msgstr "Siehe @ref{Erstellungssysteme,,, guix.de, Referenzhandbuch zu GNU Guix}, für mehr Informationen über Erstellungssysteme, oder den Quellcode in den Verzeichnissen @samp{$GUIX_CHECKOUT/guix/build} und @samp{$GUIX_CHECKOUT/guix/build-system}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1398
+#: doc/guix-cookbook.texi:1401
msgid "We can't repeat it enough: having a full-fledged programming language at hand empowers us in ways that reach far beyond traditional package management."
msgstr "Wir können es nicht oft genug wiederholen: Eine Allzweck-Programmiersprache zur Hand zu haben macht Dinge möglich, die traditionelle Paketverwaltung weit übersteigen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1400
+#: doc/guix-cookbook.texi:1403
msgid "Let's illustrate this with some awesome features of Guix!"
msgstr "Wir können uns das anhand Guix’ großartiger Funktionalitäten klarmachen!"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1415
+#: doc/guix-cookbook.texi:1418
msgid "You might find some build systems good enough that there is little to do at all to write a package, to the point that it becomes repetitive and tedious after a while. A @emph{raison d'être} of computers is to replace human beings at those boring tasks. So let's tell Guix to do this for us and create the package definition of an R package from CRAN (the output is trimmed for conciseness):"
msgstr "Sie könnten feststellen, dass manche Erstellungssysteme gut genug sind und nichts weiter zu tun bleibt, um ein Paket zu verfassen. Das Paketeschreiben kann so monoton werden und man wird dessen bald überdrüssig. Eine Daseinsberechtigung von Rechnern ist, Menschen bei solch langweiligen Aufgaben zu ersetzen. Lasst uns also Guix die Sache erledigen: Wir lassen uns die Paketdefinition eines R-Pakets mit den Informationen aus CRAN holen (was zu anderen ausgegeben wird, haben wir im Folgenden weggelassen):"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1418
+#: doc/guix-cookbook.texi:1421
#, no-wrap
msgid ""
"$ guix import cran --recursive walrus\n"
@@ -2762,7 +2786,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1422
+#: doc/guix-cookbook.texi:1425
#, no-wrap
msgid ""
"(define-public r-mc2d\n"
@@ -2776,7 +2800,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1426
+#: doc/guix-cookbook.texi:1429
#, no-wrap
msgid ""
"(define-public r-jmvcore\n"
@@ -2790,7 +2814,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1430
+#: doc/guix-cookbook.texi:1433
#, no-wrap
msgid ""
"(define-public r-wrs2\n"
@@ -2804,7 +2828,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1456
+#: doc/guix-cookbook.texi:1459
#, no-wrap
msgid ""
"(define-public r-walrus\n"
@@ -2860,44 +2884,44 @@ msgstr ""
" (license gpl3)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1460
+#: doc/guix-cookbook.texi:1463
msgid "The recursive importer won't import packages for which Guix already has package definitions, except for the very first."
msgstr "Der rekursive Importer wird keine Pakete importieren, für die es in Guix bereits eine Paketdefinition gibt, außer dem Paket, mit dem er anfängt."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1465
+#: doc/guix-cookbook.texi:1468
msgid "Not all applications can be packaged this way, only those relying on a select number of supported systems. Read about the full list of importers in the guix import section of the manual (@pxref{Invoking guix import,,, guix, GNU Guix Reference Manual})."
msgstr "Nicht für alle Anwendungen können auf diesem Weg Pakete erzeugt werden, nur für jene, die auf ausgewählten Systemen aufbauen. Im Handbuch können Sie Informationen über die vollständige Liste aller Importer bekommen (siehe @ref{Aufruf von guix import,,, guix.de, Referenzhandbuch zu GNU Guix})."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1471
+#: doc/guix-cookbook.texi:1474
msgid "Guix can be smart enough to check for updates on systems it knows. It can report outdated package definitions with"
msgstr "Guix ist klug genug, um verfügbare Aktualisierungen auf bekannten Systemen zu erkennen. Es kann über veraltete Paketdefinitionen Bericht erstatten, wenn man dies eingibt:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1474
+#: doc/guix-cookbook.texi:1477
#, no-wrap
msgid "$ guix refresh hello\n"
msgstr "$ guix refresh hello\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1479
+#: doc/guix-cookbook.texi:1482
msgid "In most cases, updating a package to a newer version requires little more than changing the version number and the checksum. Guix can do that automatically as well:"
msgstr "In den meisten Fällen muss man zur Aktualisierung auf eine neuere Version wenig mehr tun, als die Versionsnummer und die Prüfsumme ändern. Auch das kann mit Guix automatisiert werden:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1482
+#: doc/guix-cookbook.texi:1485
#, no-wrap
msgid "$ guix refresh hello --update\n"
msgstr "$ guix refresh hello --update\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1489
+#: doc/guix-cookbook.texi:1492
msgid "If you've started browsing the existing package definitions, you might have noticed that a significant number of them have a @code{inherit} field:"
msgstr "Wenn Sie anfangen, bestehende Paketdefinitionen anzuschauen, könnte es Ihnen auffallen, dass viele von ihnen über ein @code{inherit}-Feld verfügen."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1504
+#: doc/guix-cookbook.texi:1507
#, no-wrap
msgid ""
"(define-public adwaita-icon-theme\n"
@@ -2929,82 +2953,82 @@ msgstr ""
" (native-inputs (list `(,gtk+ \\\"bin\\\")))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1509
+#: doc/guix-cookbook.texi:1512
msgid "All unspecified fields are inherited from the parent package. This is very convenient to create alternative packages, for instance with different source, version or compilation options."
msgstr "Alle @emph{nicht} aufgeführten Felder werden vom Elternpaket geerbt. Das ist ziemlich praktisch, um alternative Pakete zu erzeugen, zum Beispiel solche mit geänderten Quellorten, Versionen oder Kompilierungsoptionen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1517
+#: doc/guix-cookbook.texi:1520
msgid "Sadly, some applications can be tough to package. Sometimes they need a patch to work with the non-standard file system hierarchy enforced by the store. Sometimes the tests won't run properly. (They can be skipped but this is not recommended.) Other times the resulting package won't be reproducible."
msgstr "Leider ist es für manche Anwendungen schwierig, Pakete zu schreiben. Manchmal brauchen sie einen Patch, um mit vom Standard abweichenden Dateisystemhierarchien klarzukommen, wie sie der Store erforderlich macht. Manchmal funktionieren die Tests nicht richtig. (Man kann sie überspringen, aber man sollte nicht.) Ein andermal ist das sich ergebende Paket nicht reproduzierbar."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1520
+#: doc/guix-cookbook.texi:1523
msgid "Should you be stuck, unable to figure out how to fix any sort of packaging issue, don't hesitate to ask the community for help."
msgstr "Wenn Sie nicht weiterkommen, weil Sie nicht wissen, wie Sie ein Problem beim Paketschreiben lösen können, dann zögern Sie nicht, die Gemeinde um Hilfe zu bitten."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1522
+#: doc/guix-cookbook.texi:1525
msgid "See the @uref{https://www.gnu.org/software/guix/contact/, Guix homepage} for information on the mailing lists, IRC, etc."
msgstr "Siehe die @uref{https://www.gnu.org/software/guix/contact/, Homepage von Guix} für Informationen, welche Mailing-Listen, IRC-Kanäle etc.@: bereitstehen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1530
+#: doc/guix-cookbook.texi:1533
msgid "This tutorial was a showcase of the sophisticated package management that Guix boasts. At this point we have mostly restricted this introduction to the @code{gnu-build-system} which is a core abstraction layer on which more advanced abstractions are based."
msgstr "Diese Anleitung hat einen Überblick über die fortgeschrittene Paketverwaltung gegeben, die Guix vorweist. Zu diesem Zeitpunkt haben wir diese Einführung größtenteils auf das @code{gnu-build-system} eingeschränkt, was eine zentrale Abstraktionsschicht darstellt, auf der weitere Abstraktionen aufbauen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1535
+#: doc/guix-cookbook.texi:1538
msgid "Where do we go from here? Next we ought to dissect the innards of the build system by removing all abstractions, using the @code{trivial-build-system}: this should give us a thorough understanding of the process before investigating some more advanced packaging techniques and edge cases."
msgstr "Wie geht es nun weiter? Als Nächstes müssten wir das Erstellungssystem in seine Bestandteile zerlegen, um einen Einblick ganz ohne Abstraktionen zu bekommen. Das bedeutet, wir müssten das @code{trivial-build-system} analysieren. Dadurch sollte ein gründliches Verständnis des Prozesses vermittelt werden, bevor wir höher entwickelte Paketierungstechniken und Randfälle untersuchen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1538
+#: doc/guix-cookbook.texi:1541
msgid "Other features worth exploring are the interactive editing and debugging capabilities of Guix provided by the Guile REPL@."
msgstr "Andere Funktionalitäten, die es wert sind, erkundet zu werden, sind Guix’ Funktionalitäten zum interaktiven Editieren und zur Fehlersuche, die die REPL von Guile darbietet."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1543
+#: doc/guix-cookbook.texi:1546
msgid "Those fancy features are completely optional and can wait; now is a good time to take a well-deserved break. With what we've introduced here you should be well armed to package lots of programs. You can get started right away and hopefully we will see your contributions soon!"
msgstr "Diese eindrucksvollen Funktionalitäten sind völlig optional und können warten; jetzt ist die Zeit für eine wohlverdiente Pause. Mit dem Wissen, in das wir hier eingeführt haben, sollten Sie für das Paketieren vieler Programme gut gerüstet sein. Sie können gleich anfangen und hoffentlich bekommen wir bald Ihre Beiträge zu sehen!"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:1550
+#: doc/guix-cookbook.texi:1553
msgid "The @uref{https://www.gnu.org/software/guix/manual/en/html_node/Defining-Packages.html, package reference in the manual}"
msgstr "Die @uref{https://guix.gnu.org/manual/de/html_node/Pakete-definieren.html, Paketreferenz im Handbuch}"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:1553
+#: doc/guix-cookbook.texi:1556
msgid "@uref{https://gitlab.com/pjotrp/guix-notes/blob/master/HACKING.org, Pjotr’s hacking guide to GNU Guix}"
msgstr "@uref{https://gitlab.com/pjotrp/guix-notes/blob/master/HACKING.org, Pjotr’s Hacking-Leitfaden für GNU Guix}"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:1556
+#: doc/guix-cookbook.texi:1559
msgid "@uref{https://www.gnu.org/software/guix/guix-ghm-andreas-20130823.pdf, ``GNU Guix: Package without a scheme!''}, by Andreas Enge"
msgstr "@uref{https://www.gnu.org/software/guix/guix-ghm-andreas-20130823.pdf, „GNU Guix: Package without a scheme!“} von Andreas Enge"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1565
+#: doc/guix-cookbook.texi:1568
msgid "Guix offers a flexible language for declaratively configuring your Guix System. This flexibility can at times be overwhelming. The purpose of this chapter is to demonstrate some advanced configuration concepts."
msgstr "Guix stellt eine flexible Sprache bereit, um Ihr „Guix System“ auf deklarative Weise zu konfigurieren. Diese Flexibilität kann einen manchmal überwältigen. Dieses Kapitel hat den Zweck, einige fortgeschrittene Konfigurationskonzepte vorzuzeigen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1568
+#: doc/guix-cookbook.texi:1571
msgid "@pxref{System Configuration,,, guix, GNU Guix Reference Manual} for a complete reference."
msgstr "Siehe @ref{Systemkonfiguration,,, guix.de, Referenzhandbuch zu GNU Guix} für eine vollständige Referenz."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1594
+#: doc/guix-cookbook.texi:1598
msgid "While the Guix manual explains auto-login one user to @emph{all} TTYs ( @pxref{auto-login to TTY,,, guix, GNU Guix Reference Manual}), some might prefer a situation, in which one user is logged into one TTY with the other TTYs either configured to login different users or no one at all. Note that one can auto-login one user to any TTY, but it is usually advisable to avoid @code{tty1}, which, by default, is used to log warnings and errors."
msgstr "Im Guix-Handbuch wird erklärt, wie man ein Benutzerkonto automatisch auf @emph{allen} TTYs anmelden lassen kann (@pxref{auto-login to TTY,,, guix.de, Referenzhandbuch zu GNU Guix}), aber vielleicht wäre es Ihnen lieber, ein Benutzerkonto an genau einem TTY anzumelden und die anderen TTYs so zu konfigurieren, dass entweder andere Benutzer oder gar niemand angemeldet wird. Beachten Sie, dass man auf jedem TTY automatisch jemanden anmelden kann, aber meistens will man @code{tty1} in Ruhe lassen, weil dorthin nach Voreinstellung Warnungs- und Fehlerprotokolle ausgegeben werden."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1596
+#: doc/guix-cookbook.texi:1600
msgid "Here is how one might set up auto login for one user to one tty:"
msgstr "Um eine Benutzerin auf einem einzelnen TTY automatisch anzumelden, schreibt man:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1604
+#: doc/guix-cookbook.texi:1608
#, no-wrap
msgid ""
"(define (auto-login-to-tty config tty user)\n"
@@ -3024,7 +3048,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1611
+#: doc/guix-cookbook.texi:1615
#, no-wrap
msgid ""
"(define %my-services\n"
@@ -3044,7 +3068,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1615
+#: doc/guix-cookbook.texi:1619
#, no-wrap
msgid ""
"(operating-system\n"
@@ -3056,37 +3080,37 @@ msgstr ""
" (services %my-services))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1620
+#: doc/guix-cookbook.texi:1624
msgid "One could also @code{compose} (@pxref{Higher-Order Functions,,, guile, The Guile Reference Manual}) @code{auto-login-to-tty} to login multiple users to multiple ttys."
msgstr "Mit Hilfe von @code{compose} (siehe @ref{Higher-Order Functions,,, guile, das Referenzhandbuch zu GNU Guile}) kann man etwas wie @code{auto-login-to-tty} mehrfach angeben, um mehrere Nutzerkonten auf verschiedenen TTYs anzumelden."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1627
+#: doc/guix-cookbook.texi:1631
msgid "Finally, here is a note of caution. Setting up auto login to a TTY, means that anyone can turn on your computer and run commands as your regular user. However, if you have an encrypted root partition, and thus already need to enter a passphrase when the system boots, auto-login might be a convenient option."
msgstr "Zum Schluss aber noch eine Warnung. Wenn Sie jemanden auf einem TTY automatisch anmelden lassen, kann jeder einfach Ihren Rechner anschalten und dann Befehle in deren Namen ausführen. Haben Sie Ihr Wurzeldateisystem auf einer verschlüsselten Partition, müsste man dafür erst einmal das Passwort eingeben, wenn das System startet. Dann wäre automatisches Anmelden vielleicht bequem."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1639
+#: doc/guix-cookbook.texi:1643
msgid "Guix is, at its core, a source based distribution with substitutes (@pxref{Substitutes,,, guix, GNU Guix Reference Manual}), and as such building packages from their source code is an expected part of regular package installations and upgrades. Given this starting point, it makes sense that efforts are made to reduce the amount of time spent compiling packages, and recent changes and upgrades to the building and distribution of substitutes continues to be a topic of discussion within Guix."
msgstr "Im Kern ist Guix eine quellcodebasierte Distribution mit Substituten (siehe @ref{Substitute,,, guix.de, Referenzhandbuch zu GNU Guix}), daher ist das Erstellen von Paketen aus ihrem Quellcode heraus genauso vorgesehen wie die normale Installation und Aktualisierung von Paketen. Von diesem Standpunkt ist es sinnvoll, zu versuchen, den Zeitaufwand für das Kompilieren von Paketen zu senken, und kürzliche Neuerungen sowie Verbesserungen beim Erstellen und Verteilen von Substituten bleiben ein Diskussionsthema innerhalb von Guix."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1645
+#: doc/guix-cookbook.texi:1649
msgid "The kernel, while not requiring an overabundance of RAM to build, does take a rather long time on an average machine. The official kernel configuration, as is the case with many GNU/Linux distributions, errs on the side of inclusiveness, and this is really what causes the build to take such a long time when the kernel is built from source."
msgstr "Der Kernel braucht zwar keine übermäßigen Mengen an Arbeitsspeicher beim Erstellen, jedoch jede Menge Zeit auf einer durchschnittlichen Maschine. Die offizielle Konfiguration des Kernels umfasst, wie bei anderen GNU/Linux-Distributionen auch, besser zu viel als zu wenig. Das ist der eigentliche Grund, warum seine Erstellung so lange dauert, wenn man den Kernel aus dem Quellcode heraus erstellt."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1650
+#: doc/guix-cookbook.texi:1654
msgid "The Linux kernel, however, can also just be described as a regular old package, and as such can be customized just like any other package. The procedure is a little bit different, although this is primarily due to the nature of how the package definition is written."
msgstr "Man kann den Linux-Kernel jedoch auch als ganz normales Paket beschreiben, das genau wie jedes andere Paket angepasst werden kann. Der Vorgang ist ein klein wenig anders, aber das liegt hauptsächlich an der Art, wie die Paketdefinition geschrieben ist."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1653
+#: doc/guix-cookbook.texi:1657
msgid "The @code{linux-libre} kernel package definition is actually a procedure which creates a package."
msgstr "Die @code{linux-libre}-Kernelpaketdefinition ist tatsächlich eine Prozedur, die ein Paket liefert."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1664
+#: doc/guix-cookbook.texi:1668
#, no-wrap
msgid ""
"(define* (make-linux-libre* version gnu-revision source supported-systems\n"
@@ -3110,12 +3134,12 @@ msgstr ""
" …)\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1668
+#: doc/guix-cookbook.texi:1672
msgid "The current @code{linux-libre} package is for the 5.15.x series, and is declared like this:"
msgstr "Das momentane @code{linux-libre}-Paket zielt ab auf die 5.15.x-Serie und ist wie folgt deklariert:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1676
+#: doc/guix-cookbook.texi:1680
#, no-wrap
msgid ""
"(define-public linux-libre-5.15\n"
@@ -3133,17 +3157,17 @@ msgstr ""
" #:configuration-file kernel-config))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1683
+#: doc/guix-cookbook.texi:1687
msgid "Any keys which are not assigned values inherit their default value from the @code{make-linux-libre} definition. When comparing the two snippets above, notice the code comment that refers to @code{#:configuration-file}. Because of this, it is not actually easy to include a custom kernel configuration from the definition, but don't worry, there are other ways to work with what we do have."
msgstr "Alle Schlüssel, denen kein Wert zugewiesen wird, erben ihren Vorgabewert von der Definition von @code{make-linux-libre}. Wenn Sie die beiden Schnipsel oben vergleichen, ist anzumerken, dass sich der Code-Kommentar in ersterem auf @code{#:configuration-file} bezieht. Deswegen ist es nicht so leicht, aus der Definition heraus eine eigene Kernel-Konfiguration anhand der Definition zu schreiben, aber keine Sorge, es gibt andere Möglichkeiten, um mit dem zu arbeiten, was uns gegeben wurde."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1689
+#: doc/guix-cookbook.texi:1693
msgid "There are two ways to create a kernel with a custom kernel configuration. The first is to provide a standard @file{.config} file during the build process by including an actual @file{.config} file as a native input to our custom kernel. The following is a snippet from the custom @code{'configure} phase of the @code{make-linux-libre} package definition:"
msgstr "Es gibt zwei Möglichkeiten, einen Kernel mit eigener Kernel-Konfiguration zu erzeugen. Die erste ist, eine normale @file{.config}-Datei als native Eingabe zu unserem angepassten Kernel hinzuzufügen. Im Folgenden sehen Sie ein Schnipsel aus der angepassten @code{'configure}-Phase der @code{make-linux-libre}-Paketdefinition:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1693
+#: doc/guix-cookbook.texi:1697
#, no-wrap
msgid ""
"(let ((build (assoc-ref %standard-phases 'build))\n"
@@ -3155,7 +3179,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1701
+#: doc/guix-cookbook.texi:1705
#, no-wrap
msgid ""
" ;; Use a custom kernel configuration file or a default\n"
@@ -3175,12 +3199,12 @@ msgstr ""
" (invoke \"make\" ,defconfig)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1706
+#: doc/guix-cookbook.texi:1710
msgid "Below is a sample kernel package. The @code{linux-libre} package is nothing special and can be inherited from and have its fields overridden like any other package:"
msgstr "Nun folgt ein Beispiel-Kernel-Paket. Das @code{linux-libre}-Paket ist nicht anders als andere Pakete und man kann von ihm erben und seine Felder ersetzen wie bei jedem anderen Paket."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1715
+#: doc/guix-cookbook.texi:1719
#, no-wrap
msgid ""
"(define-public linux-libre/E2140\n"
@@ -3200,17 +3224,17 @@ msgstr ""
" (package-native-inputs linux-libre))))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1722
+#: doc/guix-cookbook.texi:1726
msgid "In the same directory as the file defining @code{linux-libre-E2140} is a file named @file{E2140.config}, which is an actual kernel configuration file. The @code{defconfig} keyword of @code{make-linux-libre} is left blank here, so the only kernel configuration in the package is the one which was included in the @code{native-inputs} field."
msgstr "Im selben Verzeichnis wie die Datei, die @code{linux-libre-E2140} definiert, befindet sich noch eine Datei namens @file{E2140.config}, bei der es sich um eine richtige Kernel-Konfigurationsdatei handelt. Das Schlüsselwort @code{defconfig} von @code{make-linux-libre} wird hier leer gelassen, so dass die einzige Kernel-Konfiguration im Paket die im @code{native-inputs}-Feld ist."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1727
+#: doc/guix-cookbook.texi:1731
msgid "The second way to create a custom kernel is to pass a new value to the @code{extra-options} keyword of the @code{make-linux-libre} procedure. The @code{extra-options} keyword works with another function defined right below it:"
msgstr "Die zweite Möglichkeit, einen eigenen Kernel zu erzeugen, ist, einen neuen Wert an das @code{extra-options}-Schlüsselwort der @code{make-linux-libre}-Prozedur zu übergeben. Das @code{extra-options}-Schlüsselwort wird zusammen mit einer anderen, direkt darunter definierten Funktion benutzt:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1743
+#: doc/guix-cookbook.texi:1747
#, no-wrap
msgid ""
"(define %default-extra-linux-options\n"
@@ -3246,7 +3270,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1754
+#: doc/guix-cookbook.texi:1758
#, no-wrap
msgid ""
"(define (config->string options)\n"
@@ -3272,12 +3296,12 @@ msgstr ""
" \"\\n\"))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1757
+#: doc/guix-cookbook.texi:1761
msgid "And in the custom configure script from the `make-linux-libre` package:"
msgstr "Und im eigenen configure-Skript des „make-linux-libre“-Pakets:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1765
+#: doc/guix-cookbook.texi:1769
#, no-wrap
msgid ""
";; Appending works even when the option wasn't in the\n"
@@ -3297,18 +3321,18 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1767
+#: doc/guix-cookbook.texi:1771
#, no-wrap
msgid "(invoke \"make\" \"oldconfig\")\n"
msgstr "(invoke \"make\" \"oldconfig\")\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1772
+#: doc/guix-cookbook.texi:1776
msgid "So by not providing a configuration-file the @file{.config} starts blank, and then we write into it the collection of flags that we want. Here's another custom kernel:"
msgstr "Indem wir also kein „configuration-file“ mitgeben, ist @file{.config} anfangs leer und danach schreiben wir dort die Sammlung der gewünschten Optionen („Flags“) hinein. Hier ist noch ein eigener Kernel:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1780
+#: doc/guix-cookbook.texi:1784
#, no-wrap
msgid ""
"(define %macbook41-full-config\n"
@@ -3328,7 +3352,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1791
+#: doc/guix-cookbook.texi:1795
#, no-wrap
msgid ""
"(define-public linux-libre-macbook41\n"
@@ -3354,55 +3378,55 @@ msgstr ""
" #:extra-options %macbook41-config-options))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1798
+#: doc/guix-cookbook.texi:1802
msgid "In the above example @code{%file-systems} is a collection of flags enabling different file system support, @code{%efi-support} enables EFI support and @code{%emulation} enables a x86_64-linux machine to act in 32-bit mode also. @code{%default-extra-linux-options} are the ones quoted above, which had to be added in since they were replaced in the @code{extra-options} keyword."
msgstr "Im obigen Beispiel ist @code{%file-systems} eine Sammlung solcher „Flags“, mit denen Unterstützung für verschiedene Dateisysteme aktiviert wird, @code{%efi-support} aktiviert Unterstützung für EFI und @code{%emulation} ermöglicht es einer x86_64-linux-Maschine, auch im 32-Bit-Modus zu arbeiten. Die @code{%default-extra-linux-options} sind die oben zitierten, die wieder hinzugefügt werden mussten, weil sie durch das @code{extra-options}-Schlüsselwort ersetzt worden waren."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1807
+#: doc/guix-cookbook.texi:1811
msgid "This all sounds like it should be doable, but how does one even know which modules are required for a particular system? Two places that can be helpful in trying to answer this question is the @uref{https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel, Gentoo Handbook} and the @uref{https://www.kernel.org/doc/html/latest/admin-guide/README.html?highlight=localmodconfig, documentation from the kernel itself}. From the kernel documentation, it seems that @code{make localmodconfig} is the command we want."
msgstr "All das klingt machbar, aber woher weiß man überhaupt, welche Module für ein bestimmtes System nötig sind? Es gibt zwei hilfreiche Anlaufstellen, zum einen das @uref{https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel, Gentoo-Handbuch}, zum anderen die @uref{https://www.kernel.org/doc/html/latest/admin-guide/README.html?highlight=localmodconfig, Dokumentation des Kernels selbst}. Aus der Kernel-Dokumentation erfahren wir, dass @code{make localmodconfig} der Befehl sein könnte, den wir wollen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1810
+#: doc/guix-cookbook.texi:1814
msgid "In order to actually run @code{make localmodconfig} we first need to get and unpack the kernel source code:"
msgstr "Um @code{make localmodconfig} auch tatsächlich ausführen zu können, müssen wir zunächst den Quellcode des Kernels holen und entpacken:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1813
+#: doc/guix-cookbook.texi:1817
#, no-wrap
msgid "tar xf $(guix build linux-libre --source)\n"
msgstr "tar xf $(guix build linux-libre --source)\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1820
+#: doc/guix-cookbook.texi:1824
msgid "Once inside the directory containing the source code run @code{touch .config} to create an initial, empty @file{.config} to start with. @code{make localmodconfig} works by seeing what you already have in @file{.config} and letting you know what you're missing. If the file is blank then you're missing everything. The next step is to run:"
msgstr "Sobald wir im Verzeichnis mit dem Quellcode sind, führen Sie @code{touch .config} aus, um mit einer ersten, leeren @file{.config} anzufangen. @code{make localmodconfig} funktioniert so, dass angeschaut wird, was bereits in Ihrer @file{.config} steht, und Ihnen mitgeteilt wird, was Ihnen noch fehlt. Wenn die Datei leer bleibt, fehlt eben alles. Der nächste Schritt ist, das hier auszuführen:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1823
+#: doc/guix-cookbook.texi:1827
#, no-wrap
msgid "guix shell -D linux-libre -- make localmodconfig\n"
msgstr "guix shell -D linux-libre -- make localmodconfig\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1828
+#: doc/guix-cookbook.texi:1832
msgid "and note the output. Do note that the @file{.config} file is still empty. The output generally contains two types of warnings. The first start with \"WARNING\" and can actually be ignored in our case. The second read:"
msgstr "und uns die Ausgabe davon anzuschauen. Beachten Sie, dass die @file{.config}-Datei noch immer leer ist. Die Ausgabe enthält im Allgemeinen zwei Arten von Warnungen. Am Anfang der ersten steht „WARNING“ und in unserem Fall können wir sie tatsächlich ignorieren. Bei der zweiten heißt es:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1831
+#: doc/guix-cookbook.texi:1835
#, no-wrap
msgid "module pcspkr did not have configs CONFIG_INPUT_PCSPKR\n"
msgstr "module pcspkr did not have configs CONFIG_INPUT_PCSPKR\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1836
+#: doc/guix-cookbook.texi:1840
msgid "For each of these lines, copy the @code{CONFIG_XXXX_XXXX} portion into the @file{.config} in the directory, and append @code{=m}, so in the end it looks like this:"
msgstr "Für jede solche Zeile kopieren Sie den @code{CONFIG_XXXX_XXXX}-Teil in die @file{.config} im selben Verzeichnis und hängen @code{=m} an, damit es am Ende so aussieht:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1840
+#: doc/guix-cookbook.texi:1844
#, no-wrap
msgid ""
"CONFIG_INPUT_PCSPKR=m\n"
@@ -3412,42 +3436,42 @@ msgstr ""
"CONFIG_VIRTIO=m\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1849
+#: doc/guix-cookbook.texi:1853
msgid "After copying all the configuration options, run @code{make localmodconfig} again to make sure that you don't have any output starting with ``module''. After all of these machine specific modules there are a couple more left that are also needed. @code{CONFIG_MODULES} is necessary so that you can build and load modules separately and not have everything built into the kernel. @code{CONFIG_BLK_DEV_SD} is required for reading from hard drives. It is possible that there are other modules which you will need."
msgstr "Nachdem Sie alle Konfigurationsoptionen kopiert haben, führen Sie noch einmal @code{make localmodconfig} aus, um sicherzugehen, dass es keine Ausgaben mehr gibt, deren erstes Wort „module“ ist. Zusätzlich zu diesen maschinenspezifischen Modulen gibt es noch ein paar mehr, die Sie auch brauchen. @code{CONFIG_MODULES} brauchen Sie, damit Sie Module getrennt erstellen und laden können und nicht alles im Kernel eingebaut sein muss. Sie brauchen auch @code{CONFIG_BLK_DEV_SD}, um von Festplatten lesen zu können. Möglicherweise gibt es auch sonst noch Module, die Sie brauchen werden."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1853
+#: doc/guix-cookbook.texi:1857
msgid "This post does not aim to be a guide to configuring your own kernel however, so if you do decide to build a custom kernel you'll have to seek out other guides to create a kernel which is just right for your needs."
msgstr "Die Absicht hinter dem hier Niedergeschriebenen ist @emph{nicht}, eine Anleitung zum Konfigurieren eines eigenen Kernels zu sein. Wenn Sie also vorhaben, den Kernel an Ihre ganz eigenen Bedürfnisse anzupassen, werden Sie in anderen Anleitungen fündig."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1861
+#: doc/guix-cookbook.texi:1865
msgid "The second way to setup the kernel configuration makes more use of Guix's features and allows you to share configuration segments between different kernels. For example, all machines using EFI to boot have a number of EFI configuration flags that they need. It is likely that all the kernels will share a list of file systems to support. By using variables it is easier to see at a glance what features are enabled and to make sure you don't have features in one kernel but missing in another."
msgstr "Die zweite Möglichkeit, die Kernel-Konfiguration einzurichten, benutzt mehr von Guix’ Funktionalitäten und sie ermöglicht es Ihnen, Gemeinsamkeiten von Konfigurationen zwischen verschiedenen Kernels zu teilen. Zum Beispiel wird eine Reihe von EFI-Konfigurationsoptionen von allen Maschinen, die EFI benutzen, benötigt. Wahrscheinlich haben all diese Kernels eine Schnittmenge zu unterstützender Dateisysteme. Indem Sie Variable benutzen, können Sie leicht auf einen Schlag sehen, welche Funktionalitäten aktiviert sind, und gleichzeitig sicherstellen, dass Ihnen nicht Funktionalitäten des einen Kernels im anderen fehlen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1866
+#: doc/guix-cookbook.texi:1870
msgid "Left undiscussed however, is Guix's initrd and its customization. It is likely that you'll need to modify the initrd on a machine using a custom kernel, since certain modules which are expected to be built may not be available for inclusion into the initrd."
msgstr "Was wir hierbei nicht erläutert haben, ist, wie Guix’ initrd und dessen Anpassung funktioniert. Wahrscheinlich werden Sie auf einer Maschine mit eigenem Kernel die initrd verändern müssen, weil sonst versucht wird, bestimmte Module in die initrd einzubinden, die Sie gar nicht erstellen haben lassen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1873
+#: doc/guix-cookbook.texi:1877
msgid "Historically, Guix System is centered around an @code{operating-system} structure. This structure contains various fields ranging from the bootloader and kernel declaration to the services to install."
msgstr "In der Vergangenheit drehte sich in Guix System alles um eine @code{operating-system}-Struktur. So eine Struktur enthält vielerlei Felder vom Bootloader und der Deklaration des Kernels bis hin zu den Diensten, die installiert werden sollen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1879
+#: doc/guix-cookbook.texi:1883
msgid "Depending on the target machine, that can go from a standard @code{x86_64} machine to a small ARM single board computer such as the Pine64, the image constraints can vary a lot. The hardware manufacturers will impose different image formats with various partition sizes and offsets."
msgstr "Aber je nach Zielmaschine@tie{}– diese kann alles von einer normalen @code{x86_64}-Maschine sein bis zu einem kleinen ARM-Einplatinenrechner wie dem Pine64@tie{}–, können die für ein Abbild geltenden Einschränkungen sehr unterschiedlich sein. Die Hardwarehersteller ordnen verschiedene Abbildformate an mit unterschiedlich versetzten unterschiedlich großen Partitionen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1884
+#: doc/guix-cookbook.texi:1888
msgid "To create images suitable for all those machines, a new abstraction is necessary: that's the goal of the @code{image} record. This record contains all the required information to be transformed into a standalone image, that can be directly booted on any target machine."
msgstr "Um für jede dieser Arten von Maschinen geeignete Abbilder zu erzeugen, brauchen wir eine neue Abstraktion. Dieses Ziel verfolgen wir mit dem @code{image}-Verbund. Ein Verbundsobjekt enthält alle nötigen Informationen, um daraus ein eigenständiges Abbild auf die Zielmaschine zu bringen. Es ist direkt startfähig von jeder solchen Zielmaschine."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1906
+#: doc/guix-cookbook.texi:1910
#, no-wrap
msgid ""
"(define-record-type* <image>\n"
@@ -3493,46 +3517,46 @@ msgstr ""
" (default #t)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1912
+#: doc/guix-cookbook.texi:1916
msgid "This record contains the operating-system to instantiate. The @code{format} field defines the image type and can be @code{efi-raw}, @code{qcow2} or @code{iso9660} for instance. In the future, it could be extended to @code{docker} or other image types."
msgstr "In einem Verbundsobjekt davon steht auch das zu instanziierende Betriebssystem (in @code{operating-system}). Im Feld @code{format} steht, was der Abbildtyp („image type“) ist, zum Beispiel @code{efi-raw}, @code{qcow2} oder @code{iso9660}. In Zukunft könnten die Möglichkeiten auf @code{docker} oder andere Abbildtypen erweitert werden."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1915
+#: doc/guix-cookbook.texi:1919
msgid "A new directory in the Guix sources is dedicated to images definition. For now there are four files:"
msgstr "Ein neues Verzeichnis im Guix-Quellbaum wurde Abbilddefinitionen gewidmet. Zurzeit gibt es vier Dateien darin:"
#. type: file{#1}
-#: guix-git/doc/guix-cookbook.texi:1917
+#: doc/guix-cookbook.texi:1921
#, no-wrap
msgid "gnu/system/images/hurd.scm"
msgstr "gnu/system/images/hurd.scm"
#. type: file{#1}
-#: guix-git/doc/guix-cookbook.texi:1918
+#: doc/guix-cookbook.texi:1922
#, no-wrap
msgid "gnu/system/images/pine64.scm"
msgstr "gnu/system/images/pine64.scm"
#. type: file{#1}
-#: guix-git/doc/guix-cookbook.texi:1919
+#: doc/guix-cookbook.texi:1923
#, no-wrap
msgid "gnu/system/images/novena.scm"
msgstr "gnu/system/images/novena.scm"
#. type: file{#1}
-#: guix-git/doc/guix-cookbook.texi:1920
+#: doc/guix-cookbook.texi:1924
#, no-wrap
msgid "gnu/system/images/pinebook-pro.scm"
msgstr "gnu/system/images/pinebook-pro.scm"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1926
+#: doc/guix-cookbook.texi:1930
msgid "Let's have a look to @file{pine64.scm}. It contains the @code{pine64-barebones-os} variable which is a minimal definition of an operating-system dedicated to the @b{Pine A64 LTS} board."
msgstr "Schauen wir uns @file{pine64.scm} an. Es enthält die Variable @code{pine64-barebones-os}, bei der es sich um eine minimale Definition eines Betriebssystems handelt, die auf Platinen der Art @b{Pine A64 LTS} ausgerichtet ist."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1950
+#: doc/guix-cookbook.texi:1954
#, no-wrap
msgid ""
"(define pine64-barebones-os\n"
@@ -3582,17 +3606,17 @@ msgstr ""
" %base-services))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1954
+#: doc/guix-cookbook.texi:1958
msgid "The @code{kernel} and @code{bootloader} fields are pointing to packages dedicated to this board."
msgstr "Die Felder @code{kernel} und @code{bootloader} verweisen auf platinenspezifische Pakete."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1956
+#: doc/guix-cookbook.texi:1960
msgid "Right below, the @code{pine64-image-type} variable is also defined."
msgstr "Direkt darunter wird auch die Variable @code{pine64-image-type} definiert."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1962
+#: doc/guix-cookbook.texi:1966
#, no-wrap
msgid ""
"(define pine64-image-type\n"
@@ -3606,12 +3630,12 @@ msgstr ""
" (constructor (cut image-with-os arm64-disk-image <>))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1966
+#: doc/guix-cookbook.texi:1970
msgid "It's using a record we haven't talked about yet, the @code{image-type} record, defined this way:"
msgstr "Sie benutzt einen Verbundstyp, über den wir noch nicht gesprochen haben, den @code{image-type}-Verbund. Er ist wie folgt definiert:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1973
+#: doc/guix-cookbook.texi:1977
#, no-wrap
msgid ""
"(define-record-type* <image-type>\n"
@@ -3627,39 +3651,39 @@ msgstr ""
" (constructor image-type-constructor)) ;<operating-system> -> <image>\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1979
+#: doc/guix-cookbook.texi:1983
msgid "The main purpose of this record is to associate a name to a procedure transforming an @code{operating-system} to an image. To understand why it is necessary, let's have a look to the command producing an image from an @code{operating-system} configuration file:"
msgstr "Der Hauptzweck dieses Verbunds ist, einer Prozedur, die ein @code{operating-system} in ein @code{image}-Abbild umwandelt, einen Namen zu geben. Um den Bedarf dafür nachzuvollziehen, schauen wir uns den Befehl an, mit dem ein Abbild aus einer @code{operating-system}-Konfigurationsdatei erzeugt wird:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1982
+#: doc/guix-cookbook.texi:1986
#, no-wrap
msgid "guix system image my-os.scm\n"
msgstr "guix system image my-os.scm\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1988
+#: doc/guix-cookbook.texi:1992
msgid "This command expects an @code{operating-system} configuration but how should we indicate that we want an image targeting a Pine64 board? We need to provide an extra information, the @code{image-type}, by passing the @code{--image-type} or @code{-t} flag, this way:"
msgstr "Dieser Befehl erwartet eine @code{operating-system}-Konfiguration, doch wie geben wir an, dass wir ein Abbild für einen Pine64-Rechner möchten? Wir müssen zusätzliche Informationen mitgeben, nämlich den Abbildtyp, @code{image-type}, indem wir die Befehlszeilenoption @code{--image-type} oder @code{-t} übergeben, und zwar so:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1991
+#: doc/guix-cookbook.texi:1995
#, no-wrap
msgid "guix system image --image-type=pine64-raw my-os.scm\n"
msgstr "guix system image --image-type=pine64-raw my-os.scm\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1997
+#: doc/guix-cookbook.texi:2001
msgid "This @code{image-type} parameter points to the @code{pine64-image-type} defined above. Hence, the @code{operating-system} declared in @code{my-os.scm} will be applied the @code{(cut image-with-os arm64-disk-image <>)} procedure to turn it into an image."
msgstr "Der Parameter @code{image-type} verweist auf den oben definierten @code{pine64-image-type}. Dadurch wird die Prozedur @code{(cut image-with-os arm64-disk-image <>)} auf das in @code{my-os.scm} deklarierte @code{operating-system} angewandt und macht es zu einem @code{image}-Abbild."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1999
+#: doc/guix-cookbook.texi:2003
msgid "The resulting image looks like:"
msgstr "Es ergibt sich ein Abbild wie dieses:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2009
+#: doc/guix-cookbook.texi:2013
#, no-wrap
msgid ""
"(image\n"
@@ -3681,22 +3705,22 @@ msgstr ""
" (offset root-offset)))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2013
+#: doc/guix-cookbook.texi:2017
msgid "which is the aggregation of the @code{operating-system} defined in @code{my-os.scm} to the @code{arm64-disk-image} record."
msgstr "Das ist das Aggregat aus dem in @code{my-os.scm} definierten @code{operating-system} und dem @code{arm64-disk-image}-Verbundsobjekt."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2015
+#: doc/guix-cookbook.texi:2019
msgid "But enough Scheme madness. What does this image API bring to the Guix user?"
msgstr "Aber genug vom Scheme-Wahnsinn. Was nützt die Image-Schnittstelle dem Nutzer von Guix?"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2017
+#: doc/guix-cookbook.texi:2021
msgid "One can run:"
msgstr "Sie können das ausführen:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2021
+#: doc/guix-cookbook.texi:2025
#, no-wrap
msgid ""
"mathieu@@cervin:~$ guix system --list-image-types\n"
@@ -3708,40 +3732,52 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2033
+#: doc/guix-cookbook.texi:2043
#, no-wrap
msgid ""
+" - unmatched-raw\n"
+" - rock64-raw\n"
" - pinebook-pro-raw\n"
" - pine64-raw\n"
" - novena-raw\n"
" - hurd-raw\n"
" - hurd-qcow2\n"
" - qcow2\n"
+" - iso9660\n"
" - uncompressed-iso9660\n"
+" - tarball\n"
" - efi-raw\n"
-" - arm64-raw\n"
-" - arm32-raw\n"
-" - iso9660\n"
-msgstr ""
+" - mbr-raw\n"
+" - docker\n"
+" - wsl2\n"
+" - raw-with-offset\n"
+" - efi32-raw\n"
+msgstr ""
+" - unmatched-raw\n"
+" - rock64-raw\n"
" - pinebook-pro-raw\n"
" - pine64-raw\n"
" - novena-raw\n"
" - hurd-raw\n"
" - hurd-qcow2\n"
" - qcow2\n"
+" - iso9660\n"
" - uncompressed-iso9660\n"
+" - tarball\n"
" - efi-raw\n"
-" - arm64-raw\n"
-" - arm32-raw\n"
-" - iso9660\n"
+" - mbr-raw\n"
+" - docker\n"
+" - wsl2\n"
+" - raw-with-offset\n"
+" - efi32-raw\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2038
+#: doc/guix-cookbook.texi:2048
msgid "and by writing an @code{operating-system} file based on @code{pine64-barebones-os}, you can customize your image to your preferences in a file (@file{my-pine-os.scm}) like this:"
msgstr "und indem Sie eine Betriebssystemkonfigurationsdatei mit einem auf @code{pine64-barebones-os} aufbauenden @code{operating-system} schreiben, können Sie Ihr Abbild nach Ihren Wünschen anpassen in einer Datei, sagen wir @file{my-pine-os.scm}:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2042
+#: doc/guix-cookbook.texi:2052
#, no-wrap
msgid ""
"(use-modules (gnu services linux)\n"
@@ -3753,7 +3789,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2053
+#: doc/guix-cookbook.texi:2063
#, no-wrap
msgid ""
"(let ((base-os pine64-barebones-os))\n"
@@ -3779,89 +3815,89 @@ msgstr ""
" (operating-system-user-services base-os)))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2056
+#: doc/guix-cookbook.texi:2066
msgid "run:"
msgstr "Führen Sie aus:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2059
+#: doc/guix-cookbook.texi:2069
#, no-wrap
msgid "guix system image --image-type=pine64-raw my-pine-os.scm\n"
msgstr "guix system image --image-type=pine64-raw my-pine-os.scm\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2062
+#: doc/guix-cookbook.texi:2072
msgid "or,"
msgstr "oder"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2065
+#: doc/guix-cookbook.texi:2075
#, no-wrap
msgid "guix system image --image-type=hurd-raw my-hurd-os.scm\n"
msgstr "guix system image --image-type=hurd-raw my-hurd-os.scm\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2069
+#: doc/guix-cookbook.texi:2079
msgid "to get an image that can be written directly to a hard drive and booted from."
msgstr "und Sie bekommen ein Abbild, das Sie direkt auf eine Festplatte kopieren und starten können."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2071
+#: doc/guix-cookbook.texi:2081
msgid "Without changing anything to @code{my-hurd-os.scm}, calling:"
msgstr "Ohne irgendetwas an @code{my-hurd-os.scm} zu ändern, bewirkt ein Aufruf"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2074
+#: doc/guix-cookbook.texi:2084
#, no-wrap
msgid "guix system image --image-type=hurd-qcow2 my-hurd-os.scm\n"
msgstr "guix system image --image-type=hurd-qcow2 my-hurd-os.scm\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2077
+#: doc/guix-cookbook.texi:2087
msgid "will instead produce a Hurd QEMU image."
msgstr "dass stattdessen ein Hurd-Abbild für QEMU erzeugt wird."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2080
+#: doc/guix-cookbook.texi:2090
#, no-wrap
msgid "2FA, two-factor authentication"
msgstr "2FA, Zwei-Faktor-Authentisierung"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2081
+#: doc/guix-cookbook.texi:2091
#, no-wrap
msgid "U2F, Universal 2nd Factor"
msgstr "U2F, Universal 2nd Factor"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2082
+#: doc/guix-cookbook.texi:2092
#, no-wrap
msgid "security key, configuration"
msgstr "Sicherheitsschlüssel, einrichten"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2089
+#: doc/guix-cookbook.texi:2099
msgid "The use of security keys can improve your security by providing a second authentication source that cannot be easily stolen or copied, at least for a remote adversary (something that you have), to the main secret (a passphrase -- something that you know), reducing the risk of impersonation."
msgstr "Indem Sie Sicherheitsschlüssel einsetzen, können Sie sich besser absichern. Diese stellen eine zweite Bestätigung Ihrer Identität dar, die nicht leicht gestohlen oder kopiert werden kann, zumindest wenn der Angreifer nur Fernzugriff ergattert hat. Sicherheitsschlüssel sind etwas, was Sie haben, dagegen ist ein Geheimnis (eine Passphrase) etwas, was Sie wissen. So sinkt das Risiko, dass sich jemand Fremdes als Sie ausgibt."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2094
+#: doc/guix-cookbook.texi:2104
msgid "The example configuration detailed below showcases what minimal configuration needs to be made on your Guix System to allow the use of a Yubico security key. It is hoped the configuration can be useful for other security keys as well, with minor adjustments."
msgstr "Mit der nachfolgenden Beispielkonfiguration wird vorgeführt, wie Sie mit kleinstem Konfigurationsaufwand auf Ihrem Guix System einen Yubico-Sicherheitsschlüssel einsetzen können. Wir hoffen, die Konfiguration klappt auch bei anderen Sicherheitsschlüsseln, mit geringen Anpassungen."
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:2095
+#: doc/guix-cookbook.texi:2105
#, no-wrap
msgid "Configuration for use as a two-factor authenticator (2FA)"
msgstr "Einrichten einer Zwei-Faktor-Authentisierung (2FA)"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2103
+#: doc/guix-cookbook.texi:2113
msgid "To be usable, the udev rules of the system should be extended with key-specific rules. The following shows how to extend your udev rules with the @file{lib/udev/rules.d/70-u2f.rules} udev rule file provided by the @code{libfido2} package from the @code{(gnu packages security-token)} module and add your user to the @samp{\"plugdev\"} group it uses:"
msgstr "Dazu müssen Sie die udev-Regeln des Systems um auf Ihren Sicherheitsschlüssel abgestimmte Regeln erweitern. Im Folgenden wird gezeigt, wie Sie Ihre udev-Regeln um die Regeldatei @file{lib/udev/rules.d/70-u2f.rules} aus dem @code{libfido2}-Paket im Modul @code{(gnu packages security-token)} erweitern und Ihren Benutzer zur zugehörigen Gruppe @samp{\"plugdev\"} hinzufügen:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2122
+#: doc/guix-cookbook.texi:2132
#, no-wrap
msgid ""
"(use-package-modules ... security-token ...)\n"
@@ -3901,67 +3937,132 @@ msgstr ""
" (udev-rules-service 'fido2 libfido2 #:groups '(\"plugdev\")))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2127
+#: doc/guix-cookbook.texi:2137
msgid "After re-configuring your system and re-logging in your graphical session so that the new group is in effect for your user, you can verify that your key is usable by launching:"
msgstr "Rekonfigurieren Sie Ihr System. Danach melden Sie sich neu an zu einer grafischen Sitzung, damit sich die neue Gruppe Ihres Benutzers auswirken kann. Sie können jetzt prüfen, ob Ihr Sicherheitsschlüssel einsatzbereit ist, indem Sie dies starten:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2130
+#: doc/guix-cookbook.texi:2140
#, no-wrap
msgid "guix shell ungoogled-chromium -- chromium chrome://settings/securityKeys\n"
msgstr "guix shell ungoogled-chromium -- chromium chrome://settings/securityKeys\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2136
+#: doc/guix-cookbook.texi:2146
msgid "and validating that the security key can be reset via the ``Reset your security key'' menu. If it works, congratulations, your security key is ready to be used with applications supporting two-factor authentication (2FA)."
msgstr "und nachsehen, ob Sie den Sicherheitsschlüssel mit dem Menüeintrag „Sicherheitsschlüssel zurücksetzen“ neu machen können. Wenn es klappt, gratulieren wir zu Ihrem nutzungsbereiten Sicherheitsschlüssel, mit dem Sie nun ihn unterstützende Anwendungen für Zwei-Faktor-Authentisierung (2FA) einrichten können."
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:2137
+#: doc/guix-cookbook.texi:2147
#, no-wrap
msgid "Disabling OTP code generation for a Yubikey"
msgstr "Abschalten der OTP-Code-Erzeugung beim Yubikey"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2138
+#: doc/guix-cookbook.texi:2148
#, no-wrap
msgid "disabling yubikey OTP"
msgstr "Yubikey-OTP deaktivieren"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2144
+#: doc/guix-cookbook.texi:2154
msgid "If you use a Yubikey security key and are irritated by the spurious OTP codes it generates when inadvertently touching the key (e.g. causing you to become a spammer in the @samp{#guix} channel when discussing from your favorite IRC client!), you can disable it via the following @command{ykman} command:"
msgstr "Wenn Sie einen Yubikey-Sicherheitsschlüssel verwenden und es Sie stört, dass er unsinnige OTP-Codes erzeugt, wenn Sie ihn unabsichtlich anrühren (und Sie damit am Ende den @samp{#guix}-Kanal zumüllen, während Sie mit Ihrem Lieblings-IRC-Client an der Diskussion teilnehmen!), dann deaktivieren Sie es einfach mit dem folgenden @command{ykman}-Befehl:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2147
+#: doc/guix-cookbook.texi:2157
#, no-wrap
msgid "guix shell python-yubikey-manager -- ykman config usb --force --disable OTP\n"
msgstr "guix shell python-yubikey-manager -- ykman config usb --force --disable OTP\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2154
+#: doc/guix-cookbook.texi:2164
msgid "Alternatively, you could use the @command{ykman-gui} command provided by the @code{yubikey-manager-qt} package and either wholly disable the @samp{OTP} application for the USB interface or, from the @samp{Applications -> OTP} view, delete the slot 1 configuration, which comes pre-configured with the Yubico OTP application."
msgstr "Alternativ können Sie auch die Oberfläche mit dem @command{ykman-gui}-Befehl aus dem Paket @code{yubikey-manager-qt} starten und entweder gleich die ganze OTP-Anwendung für die USB-Schnittstelle abschalten oder, unter @samp{Applications -> OTP}, die Konfiguration für Slot 1 löschen, die bei der Yubico-OTP-Anwendung voreingestellt ist."
+#. type: subsection
+#: doc/guix-cookbook.texi:2165
+#, no-wrap
+msgid "Requiring a Yubikey to open a KeePassXC database"
+msgstr "Yubikey verlangen, um eine KeePassXC-Datenbank zu entsperren"
+
+#. type: cindex
+#: doc/guix-cookbook.texi:2166
+#, no-wrap
+msgid "yubikey, keepassxc integration"
+msgstr "Yubikey, KeePassXC-Integration"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2170
+msgid "The KeePassXC password manager application has support for Yubikeys, but it requires installing a udev rules for your Guix System and some configuration of the Yubico OTP application on the key."
+msgstr "Die Anwendung KeePassXC zur Verwaltung von Passwörtern kann mit Yubikeys zusammenarbeiten, aber erst, wenn die udev-Regeln dafür auf Ihrem Guix System vorliegen und nachdem Sie passende Einstellungen in der Yubico-OTP-Anwendung zum Schlüssel vorgenommen haben."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2173
+msgid "The necessary udev rules file comes from the @code{yubikey-personalization} package, and can be installed like:"
+msgstr "Die erforderliche udev-Regeldatei liegt im Paket @code{yubikey-personalization} und kann hiermit installiert werden:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2183
+#, no-wrap
+msgid ""
+"(use-package-modules ... security-token ...)\n"
+"...\n"
+"(operating-system\n"
+" ...\n"
+" (services\n"
+" (cons*\n"
+" ...\n"
+" (udev-rules-service 'yubikey yubikey-personalization))))\n"
+msgstr ""
+"(use-package-modules … security-token …)\n"
+"…\n"
+"(operating-system\n"
+" …\n"
+" (services\n"
+" (cons*\n"
+" …\n"
+" (udev-rules-service 'yubikey yubikey-personalization))))\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2190
+msgid "After reconfiguring your system (and reconnecting your Yubikey), you'll then want to configure the OTP challenge/response application of your Yubikey on its slot 2, which is what KeePassXC uses. It's easy to do so via the Yubikey Manager graphical configuration tool, which can be invoked with:"
+msgstr "Sobald Sie Ihr System rekonfiguriert haben (und Ihren Yubikey neu verbunden haben), sollten Sie anschließend die OTP-Challenge-Response-Anwendung für Ihren Yubikey auf dessen Slot 2 einrichten, die von KeePassXC benutzt wird. Das ist problemlos möglich mit dem grafischen Konfigurationsprogramm Yubikey Manager, das Sie so aufrufen können:"
+
+#. type: example
+#: doc/guix-cookbook.texi:2193
+#, no-wrap
+msgid "guix shell yubikey-manager-qt -- ykman-gui\n"
+msgstr "guix shell yubikey-manager-qt -- ykman-gui\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2202
+msgid "First, ensure @samp{OTP} is enabled under the @samp{Interfaces} tab, then navigate to @samp{Applications -> OTP}, and click the @samp{Configure} button under the @samp{Long Touch (Slot 2)} section. Select @samp{Challenge-response}, input or generate a secret key, and click the @samp{Finish} button. If you have a second Yubikey you'd like to use as a backup, you should configure it the same way, using the @emph{same} secret key."
+msgstr "Stellen Sie zunächst sicher, dass @samp{OTP} im Karteireiter @samp{Interfaces} aktiviert ist. Begeben Sie sich dann zu @samp{Applications -> OTP} und klicken Sie auf den Knopf @samp{Configure} im Abschnitt @samp{Long Touch (Slot 2)}. Wählen Sie @samp{Challenge-response} und geben Sie einen geheimen Schlüssel entweder ein oder lassen Sie ihn erzeugen. Anschließend klicken Sie auf den Knopf @samp{Finish}. Wenn Sie noch einen zweiten Yubikey haben, den Sie als Ersatz einsetzen können möchten, konfigurieren Sie ihn auf die gleiche Weise mit @emph{demselben} geheimen Schlüssel."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2209
+msgid "Your Yubikey should now be detected by KeePassXC. It can be added to a database by navigating to KeePassXC's @samp{Database -> Database Security...} menu, then clicking the @samp{Add additional protection...} button, then @samp{Add Challenge-Response}, selecting the security key from the drop-down menu and clicking the @samp{OK} button to complete the setup."
+msgstr "Jetzt sollte Ihr Yubikey von KeePassXC erkannt werden. Er kann für eine Datenbank hinzugefügt werden, indem Sie in KeePassXC im Menü @samp{Datenbank -> Datenbank-Sicherheit...} öffnen und dort auf den Knopf @samp{Zusätzlichen Schutz hinzufügen@tie{}...} klicken, dann auf @samp{Challenge-Response hinzufügen} klicken und den Sicherheitsschlüssel aus der Auswahlliste wählen und den @samp{OK}-Knopf anklicken, um die Einrichtung abzuschließen."
+
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2158
+#: doc/guix-cookbook.texi:2213
#, no-wrap
msgid "dynamic DNS, DDNS"
msgstr "dynamisches DNS, DDNS"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2168
+#: doc/guix-cookbook.texi:2223
msgid "If your @acronym{ISP, Internet Service Provider} only provides dynamic IP addresses, it can be useful to setup a dynamic @acronym{DNS, Domain Name System} (also known as @acronym{DDNS, Dynamic DNS}) service to associate a static host name to a public but dynamic (often changing) IP address. There are multiple existing services that can be used for this; in the following mcron job, @url{https://duckdns.org, DuckDNS} is used. It should also work with other dynamic DNS services that offer a similar interface to update the IP address, such as @url{https://freedns.afraid.org/}, with minor adjustments."
msgstr "Wenn Sie von Ihrem Internetdienstanbieter nur dynamische IP-Adressen bekommen, aber einen statischen Rechnernamen möchten, können Sie einen Dienst für dynamisches @acronym{DNS, Domain Name System} einrichten (auch bekannt unter der Bezeichnung @acronym{DDNS, Dynamic DNS}). Dieser ordnet einem festen, „statischen“ Rechnernamen eine öffentliche, aber dynamische (oft wechselnde) IP-Adresse zu. Es gibt davon mehrere Anbieter; im folgenden mcron-Auftrag verwenden wir @url{https://duckdns.org, DuckDNS}. Er sollte auch mit anderen Anbietern von dynamischem DNS funktionieren, die eine ähnliche Schnittstelle zum Wechsel der IP-Adresse haben, etwa @url{https://freedns.afraid.org/}, wenn Sie Kleinigkeiten anpassen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2173
+#: doc/guix-cookbook.texi:2228
msgid "The mcron job is provided below, where @var{DOMAIN} should be substituted for your own domain prefix, and the DuckDNS provided token associated to @var{DOMAIN} added to the @file{/etc/duckdns/@var{DOMAIN}.token} file."
msgstr "So sieht der mcron-Auftrag dafür aus. Statt @var{DOMAIN} schreiben Sie Ihre eigene Domain und den von DuckDNS der @var{DOMAIN} zugeordneten Token in die Datei @file{/etc/duckdns/@var{DOMAIN}.token}."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2193
+#: doc/guix-cookbook.texi:2248
#, no-wrap
msgid ""
"(define duckdns-job\n"
@@ -4003,12 +4104,12 @@ msgstr ""
" #:user \"nobody\"))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2197
+#: doc/guix-cookbook.texi:2252
msgid "The job then needs to be added to the list of mcron jobs for your system, using something like:"
msgstr "Der Auftrag muss in die Liste der mcron-Aufträge für Ihr System eingetragen werden, etwa so:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2206
+#: doc/guix-cookbook.texi:2261
#, no-wrap
msgid ""
"(operating-system\n"
@@ -4028,17 +4129,17 @@ msgstr ""
" %base-services)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2214
+#: doc/guix-cookbook.texi:2269
msgid "To connect to a Wireguard VPN server you need the kernel module to be loaded in memory and a package providing networking tools that support it (e.g. @code{wireguard-tools} or @code{network-manager})."
msgstr "Damit Sie sich mit einem Wireguard-VPN-Server verbinden können, müssen Sie dafür sorgen, dass die dafür nötigen Kernel-Module in den Speicher eingeladen werden und ein Paket bereitsteht, dass die unterstützenden Netzwerkwerkzeuge dazu enthält (z.B.@: @code{wireguard-tools} oder @code{network-manager})."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2218
+#: doc/guix-cookbook.texi:2273
msgid "Here is a configuration example for Linux-Libre < 5.6, where the module is out of tree and need to be loaded manually---following revisions of the kernel have it built-in and so don't need such configuration:"
msgstr "Hier ist ein Beispiel für eine Konfiguration für Linux-Libre < 5.6, wo sich das Modul noch nicht im Kernel-Quellbaum befindet („out of tree“) und daher von Hand geladen werden muss@tie{}– in nachfolgenden Kernelversionen ist das Modul bereits eingebaut und @emph{keine} derartige Konfiguration ist nötig."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2223
+#: doc/guix-cookbook.texi:2278
#, no-wrap
msgid ""
"(use-modules (gnu))\n"
@@ -4052,7 +4153,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2232
+#: doc/guix-cookbook.texi:2287
#, no-wrap
msgid ""
"(operating-system\n"
@@ -4074,44 +4175,44 @@ msgstr ""
" (kernel-loadable-modules (list wireguard-linux-compat)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2236
+#: doc/guix-cookbook.texi:2291
msgid "After reconfiguring and restarting your system you can either use Wireguard tools or NetworkManager to connect to a VPN server."
msgstr "Nachdem Sie Ihr System rekonfiguriert haben, können Sie dann entweder die Wireguard-Werkzeuge („Wireguard Tools“) oder NetworkManager benutzen, um sich mit einem VPN-Server zu verbinden."
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:2237
+#: doc/guix-cookbook.texi:2292
#, no-wrap
msgid "Using Wireguard tools"
msgstr "Die Wireguard Tools benutzen"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2243
+#: doc/guix-cookbook.texi:2298
msgid "To test your Wireguard setup it is convenient to use @command{wg-quick}. Just give it a configuration file @command{wg-quick up ./wg0.conf}; or put that file in @file{/etc/wireguard} and run @command{wg-quick up wg0} instead."
msgstr "Um Ihre Wireguard-Konfiguration zu testen, bietet es sich an, @command{wg-quick} zu benutzen. Übergeben Sie einfach eine Konfigurationsdatei @command{wg-quick up ./wg0.conf}. Sie können auch die Konfigurationsdatei in @file{/etc/wireguard} platzieren und dann stattdessen @command{wg-quick up wg0} ausführen."
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:2247
+#: doc/guix-cookbook.texi:2302
msgid "Be warned that the author described this command as a: “[…] very quick and dirty bash script […]”."
msgstr "Seien Sie gewarnt, dass sein Autor diesen Befehl als ein schnell und unsauber geschriebenes Bash-Skript bezeichnet hat."
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:2249
+#: doc/guix-cookbook.texi:2304
#, no-wrap
msgid "Using NetworkManager"
msgstr "NetworkManager benutzen"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2257
+#: doc/guix-cookbook.texi:2312
msgid "Thanks to NetworkManager support for Wireguard we can connect to our VPN using @command{nmcli} command. Up to this point this guide assumes that you're using Network Manager service provided by @code{%desktop-services}. Ortherwise you need to adjust your services list to load @code{network-manager-service-type} and reconfigure your Guix system."
msgstr "Dank der Unterstützung für Wireguard durch den NetworkManager können wir über den Befehl @command{nmcli} eine Verbindung mit unserem VPN herstellen. Bislang treffen wir in dieser Anleitung die Annahme, dass Sie den Network-Manager-Dienst aus den @code{%desktop-services} benutzen. Wenn Sie eine abweichende Konfiguration verwenden, müssen Sie unter Umständen Ihre @code{services}-Liste abändern, damit ein @code{network-manager-service-type} geladen wird, und Ihr Guix-System rekonfigurieren."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2259
+#: doc/guix-cookbook.texi:2314
msgid "To import your VPN configuration execute nmcli import command:"
msgstr "Benutzen Sie den nmcli-Import-Befehl, um Ihre VPN-Konfiguration zu importieren."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2263
+#: doc/guix-cookbook.texi:2318
#, no-wrap
msgid ""
"# nmcli connection import type wireguard file wg0.conf\n"
@@ -4121,12 +4222,12 @@ msgstr ""
"Verbindung »wg0« (edbee261-aa5a-42db-b032-6c7757c60fde) erfolgreich hinzugefügt.\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2268
+#: doc/guix-cookbook.texi:2323
msgid "This will create a configuration file in @file{/etc/NetworkManager/wg0.nmconnection}. Next connect to the Wireguard server:"
msgstr "Dadurch wird eine Konfigurationsdatei in @file{/etc/NetworkManager/wg0.nmconnection} angelegt. Anschließend können Sie sich mit dem Wireguard-Server verbinden:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2272
+#: doc/guix-cookbook.texi:2327
#, no-wrap
msgid ""
"$ nmcli connection up wg0\n"
@@ -4136,45 +4237,45 @@ msgstr ""
"Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/6)\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2276
+#: doc/guix-cookbook.texi:2331
msgid "By default NetworkManager will connect automatically on system boot. To change that behaviour you need to edit your config:"
msgstr "Nach Voreinstellung wird sich NetworkManager automatisch beim Systemstart verbinden. Um dieses Verhalten zu ändern, müssen Sie Ihre Konfiguration bearbeiten:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2279
+#: doc/guix-cookbook.texi:2334
#, no-wrap
msgid "# nmcli connection modify wg0 connection.autoconnect no\n"
msgstr "# nmcli connection modify wg0 connection.autoconnect no\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2284
+#: doc/guix-cookbook.texi:2339
msgid "For more specific information about NetworkManager and wireguard @uref{https://blogs.gnome.org/thaller/2019/03/15/wireguard-in-networkmanager/,see this post by thaller}."
msgstr "Für Informationen speziell zu NetworkManager und Wireguard @uref{https://blogs.gnome.org/thaller/2019/03/15/wireguard-in-networkmanager/,siehe diesen Blogeintrag von thaller}."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2287
+#: doc/guix-cookbook.texi:2342
#, no-wrap
msgid "wm"
msgstr "Fensterverwaltung (Window Manager, WM)"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2296
+#: doc/guix-cookbook.texi:2351
#, no-wrap
msgid "stumpwm"
msgstr "stumpwm"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2301
+#: doc/guix-cookbook.texi:2356
msgid "You could install StumpWM with a Guix system by adding @code{stumpwm} and optionally @code{`(,stumpwm \"lib\")} packages to a system configuration file, e.g.@: @file{/etc/config.scm}."
msgstr "Sie können StumpWM mit einem Guix-System installieren, indem Sie die Pakete @code{stumpwm} und optional auch @code{`(,stumpwm \"lib\")} in eine Systemkonfigurationsdatei, z.B.@: @file{/etc/config.scm}, eintragen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2303
+#: doc/guix-cookbook.texi:2358
msgid "An example configuration can look like this:"
msgstr "Eine Beispielkonfiguration kann so aussehen:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2307
+#: doc/guix-cookbook.texi:2362
#, no-wrap
msgid ""
"(use-modules (gnu))\n"
@@ -4186,7 +4287,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2312
+#: doc/guix-cookbook.texi:2367
#, no-wrap
msgid ""
"(operating-system\n"
@@ -4200,18 +4301,18 @@ msgstr ""
" %base-packages)))\n"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2314
+#: doc/guix-cookbook.texi:2369
#, no-wrap
msgid "stumpwm fonts"
msgstr "StumpWM-Schriftarten"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2318
+#: doc/guix-cookbook.texi:2373
msgid "By default StumpWM uses X11 fonts, which could be small or pixelated on your system. You could fix this by installing StumpWM contrib Lisp module @code{sbcl-ttf-fonts}, adding it to Guix system packages:"
msgstr "Nach Voreinstellung benutzt StumpWM die Schriftarten von X11, die auf Ihrem System klein oder verpixelt erscheinen mögen. Sie können das Problem beheben, indem Sie das Lisp-Modul @code{sbcl-ttf-fonts} aus den Beiträgen zu StumpWM („StumpWM Contrib“) als Systempaket installieren:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2322
+#: doc/guix-cookbook.texi:2377
#, no-wrap
msgid ""
"(use-modules (gnu))\n"
@@ -4223,7 +4324,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2327
+#: doc/guix-cookbook.texi:2382
#, no-wrap
msgid ""
"(operating-system\n"
@@ -4237,12 +4338,12 @@ msgstr ""
" sbcl-ttf-fonts font-dejavu %base-packages)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2331
+#: doc/guix-cookbook.texi:2386
msgid "Then you need to add the following code to a StumpWM configuration file @file{~/.stumpwm.d/init.lisp}:"
msgstr "Den folgenden Code fügen Sie in die Konfigurationsdatei von StumpWM @file{~/.stumpwm.d/init.lisp} ein:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2338
+#: doc/guix-cookbook.texi:2393
#, no-wrap
msgid ""
"(require :ttf-fonts)\n"
@@ -4258,28 +4359,28 @@ msgstr ""
"(set-font (make-instance 'xft:font :family \"DejaVu Sans Mono\" :subfamily \"Book\" :size 11))\n"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2342
+#: doc/guix-cookbook.texi:2397
#, no-wrap
msgid "sessionlock"
msgstr "Sitzungssperre"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2348
+#: doc/guix-cookbook.texi:2403
msgid "Depending on your environment, locking the screen of your session might come built in or it might be something you have to set up yourself. If you use a desktop environment like GNOME or KDE, it's usually built in. If you use a plain window manager like StumpWM or EXWM, you might have to set it up yourself."
msgstr "Abhängig von Ihrer Arbeitsumgebung ist das Sperren Ihres Bildschirms vielleicht bereits eingebaut. Wenn nicht, müssen Sie es selbst einrichten. Wenn Sie eine Arbeitsumgebung wie GNOME oder KDE benutzen, ist Sperren normalerweise bereits möglich. Wenn Sie einen einfachen Fensterverwalter („Window Manager“) wie StumpWM oder EXWM benutzen, müssen Sie es vielleicht selbst einrichten."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2360
+#: doc/guix-cookbook.texi:2415
msgid "If you use Xorg, you can use the utility @uref{https://www.mankier.com/1/xss-lock, xss-lock} to lock the screen of your session. xss-lock is triggered by DPMS which since Xorg 1.8 is auto-detected and enabled if ACPI is also enabled at kernel runtime."
msgstr "Sofern Sie Xorg benutzen, können Sie mit dem Programm @uref{https://www.mankier.com/1/xss-lock, xss-lock} den Bildschirm für Ihre Sitzung sperren. xss-lock wird durch DPMS ausgelöst, was seit Xorg 1.8 automatisch aktiv ist, wenn zur Laufzeit des Kernels ACPI verfügbar ist."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2363
+#: doc/guix-cookbook.texi:2418
msgid "To use xss-lock, you can simple execute it and put it into the background before you start your window manager from e.g. your @file{~/.xsession}:"
msgstr "Um xss-lock zu benutzen, können Sie es einfach ausführen und in den Hintergrund versetzen, bevor Sie Ihren Fensterverwalter z.B.@: aus Ihrer @file{~/.xsession} heraus starten:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2367
+#: doc/guix-cookbook.texi:2422
#, no-wrap
msgid ""
"xss-lock -- slock &\n"
@@ -4289,17 +4390,17 @@ msgstr ""
"exec stumpwm\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2371
+#: doc/guix-cookbook.texi:2426
msgid "In this example, xss-lock uses @code{slock} to do the actual locking of the screen when it determines it's appropriate, like when you suspend your device."
msgstr "In diesem Beispiel benutzt xss-lock das Programm @code{slock}, um die eigentliche Sperrung des Bildschirms durchzuführen, wenn es den Zeitpunkt dafür gekommen sieht, weil Sie z.B.@: Ihr Gerät in den Energiesparmodus versetzen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2375
+#: doc/guix-cookbook.texi:2430
msgid "For slock to be allowed to be a screen locker for the graphical session, it needs to be made setuid-root so it can authenticate users, and it needs a PAM service. This can be achieved by adding the following service to your @file{config.scm}:"
msgstr "Damit slock aber überhaupt die Berechtigung dafür erteilt bekommt, Bildschirme grafischer Sitzungen zu sperren, muss es als setuid-root eingestellt sein, wodurch es Benutzer authentifizieren kann, außerdem braucht es Einstellungen im PAM-Dienst. Um das bereitzustellen, tragen Sie den folgenden Dienst in Ihre @file{config.scm} ein:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2381
+#: doc/guix-cookbook.texi:2436
#, no-wrap
msgid ""
"(service screen-locker-services-type\n"
@@ -4313,115 +4414,115 @@ msgstr ""
" (program (file-append slock \"/bin/slock\"))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2387
+#: doc/guix-cookbook.texi:2442
msgid "If you manually lock your screen, e.g. by directly calling slock when you want to lock your screen but not suspend it, it's a good idea to notify xss-lock about this so no confusion occurs. This can be done by executing @code{xset s activate} immediately before you execute slock."
msgstr "Wenn Sie Ihren Bildschirm manuell sperren, z.B.@: indem Sie slock direkt aufrufen, wenn Sie Ihren Bildschirm sperren wollen, ohne in den Energiesparmodus zu wechseln, dann ist es eine gute Idee, das auch xss-lock mitzuteilen, indem Sie @code{xset s activate} direkt vor slock ausführen."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2390
+#: doc/guix-cookbook.texi:2445
#, no-wrap
msgid "linode, Linode"
msgstr "linode, Linode"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2395
+#: doc/guix-cookbook.texi:2450
msgid "To run Guix on a server hosted by @uref{https://www.linode.com, Linode}, start with a recommended Debian server. We recommend using the default distro as a way to bootstrap Guix. Create your SSH keys."
msgstr "Um Guix auf einem durch @uref{https://www.linode.com, Linode} bereitgestellten, „gehosteten“ Server zu benutzen, richten Sie zunächst einen dort empfohlenen Debian-Server ein. Unsere Empfehlung ist, zum Wechsel auf Guix mit der voreingestellten Distribution anzufangen. Erzeugen Sie Ihre SSH-Schlüssel."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2398
+#: doc/guix-cookbook.texi:2453
#, no-wrap
msgid "ssh-keygen\n"
msgstr "ssh-keygen\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2404
+#: doc/guix-cookbook.texi:2459
msgid "Be sure to add your SSH key for easy login to the remote server. This is trivially done via Linode's graphical interface for adding SSH keys. Go to your profile and click add SSH Key. Copy into it the output of:"
msgstr "Stellen Sie sicher, dass Ihr SSH-Schlüssel zur leichten Anmeldung auf dem entfernten Server eingerichtet ist. Das können Sie leicht mit Linodes grafischer Oberfläche zum Hinzufügen von SSH-Schlüsseln bewerkstelligen. Gehen Sie dazu in Ihr Profil und klicken Sie auf die Funktion zum Hinzufügen eines SSH-Schlüssels. Kopieren Sie dort hinein die Ausgabe von:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2407
+#: doc/guix-cookbook.texi:2462
#, no-wrap
msgid "cat ~/.ssh/<username>_rsa.pub\n"
msgstr "cat ~/.ssh/<benutzername>_rsa.pub\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2410
+#: doc/guix-cookbook.texi:2465
msgid "Power the Linode down."
msgstr "Fahren Sie den Linode-Knoten herunter."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2414
+#: doc/guix-cookbook.texi:2469
msgid "In the Linode's Storage tab, resize the Debian disk to be smaller. 30 GB free space is recommended. Then click \"Add a disk\", and fill out the form with the following:"
msgstr "Im Karteireiter für „Storage“ bei Linode verkleinern Sie das Laufwerk für Debian. Empfohlen werden 30@tie{}GB freier Speicher. Klicken Sie anschließend auf „Add a disk“ und tragen Sie Folgendes in das Formular ein:"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:2418
+#: doc/guix-cookbook.texi:2473
msgid "Label: \"Guix\""
msgstr "Label: \"Guix\""
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:2421
+#: doc/guix-cookbook.texi:2476
msgid "Filesystem: ext4"
msgstr "Filesystem: ext4"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:2424
+#: doc/guix-cookbook.texi:2479
msgid "Set it to the remaining size"
msgstr "Wählen Sie als Größe den übrigen Speicherplatz."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2429
+#: doc/guix-cookbook.texi:2484
msgid "In the Configurations tab, press \"Edit\" on the default Debian profile. Under \"Block Device Assignment\" click \"Add a Device\". It should be @file{/dev/sdc} and you can select the \"Guix\" disk. Save Changes."
msgstr "Drücken Sie im Karteireiter „Configurations“ auf „Edit“. Unter „Block Device Assignment“ klicken Sie auf „Add a Device“. Dort müsste @file{/dev/sdc} stehen; wählen Sie das Laufwerk „Guix“. Speichern Sie die Änderungen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2431
+#: doc/guix-cookbook.texi:2486
msgid "Now \"Add a Configuration\", with the following:"
msgstr "Fügen Sie eine Konfiguration hinzu („Add a Configuration“) mit folgenden Eigenschaften:"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:2434
+#: doc/guix-cookbook.texi:2489
msgid "Label: Guix"
msgstr "Label: Guix"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:2437
+#: doc/guix-cookbook.texi:2492
msgid "Kernel:GRUB 2 (it's at the bottom! This step is @b{IMPORTANT!})"
msgstr "Kernel: GRUB 2 (Das steht ganz unten! Dieser Schritt ist @b{WICHTIG!})"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:2440
+#: doc/guix-cookbook.texi:2495
msgid "Block device assignment:"
msgstr "Block device assignment:"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:2443
+#: doc/guix-cookbook.texi:2498
msgid "@file{/dev/sda}: Guix"
msgstr "@file{/dev/sda}: Guix"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:2446
+#: doc/guix-cookbook.texi:2501
msgid "@file{/dev/sdb}: swap"
msgstr "@file{/dev/sdb}: swap"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:2449
+#: doc/guix-cookbook.texi:2504
msgid "Root device: @file{/dev/sda}"
msgstr "Root device: @file{/dev/sda}"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:2452
+#: doc/guix-cookbook.texi:2507
msgid "Turn off all the filesystem/boot helpers"
msgstr "Schalten Sie alle Dateisystem-/Boot-Helfer ab."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2459
+#: doc/guix-cookbook.texi:2514
msgid "Now power it back up, booting with the Debian configuration. Once it's running, ssh to your server via @code{ssh root@@@var{<your-server-IP-here>}}. (You can find your server IP address in your Linode Summary section.) Now you can run the \"install guix from @pxref{Binary Installation,,, guix, GNU Guix}\" steps:"
msgstr "Starten Sie den Knoten jetzt wieder mit der Debian-Konfiguration. Sobald er wieder läuft, verbinden Sie sich mittels SSH zu Ihrem Server über @code{ssh root@@@var{<IP-Adresse-Ihres-Servers>}}. (Die IP-Adresse Ihres Servers finden Sie in Linodes Übersichtsseite bei „Summary“.) Nun können Sie mit den Schritten aus dem @ref{Aus Binärdatei installieren,,, guix.de, Referenzhandbuch zu GNU Guix} weitermachen:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2467
+#: doc/guix-cookbook.texi:2522
#, no-wrap
msgid ""
"sudo apt-get install gpg\n"
@@ -4439,12 +4540,12 @@ msgstr ""
"guix pull\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2471
+#: doc/guix-cookbook.texi:2526
msgid "Now it's time to write out a config for the server. The key information is below. Save the resulting file as @file{guix-config.scm}."
msgstr "Nun wird es Zeit, eine Konfiguration für den Server anzulegen. Die wichtigsten Informationen finden Sie hierunter. Speichern Sie die Konfiguration als @file{guix-config.scm}."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2482
+#: doc/guix-cookbook.texi:2537
#, no-wrap
msgid ""
"(use-modules (gnu)\n"
@@ -4470,7 +4571,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2499
+#: doc/guix-cookbook.texi:2554
#, no-wrap
msgid ""
"(operating-system\n"
@@ -4511,7 +4612,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2502
+#: doc/guix-cookbook.texi:2557
#, no-wrap
msgid ""
" (swap-devices (list \"/dev/sdb\"))\n"
@@ -4521,7 +4622,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2506
+#: doc/guix-cookbook.texi:2561
#, no-wrap
msgid ""
" (initrd-modules (cons \"virtio_scsi\" ; Needed to find the disk\n"
@@ -4533,7 +4634,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2515
+#: doc/guix-cookbook.texi:2570
#, no-wrap
msgid ""
" (users (cons (user-account\n"
@@ -4557,7 +4658,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2519
+#: doc/guix-cookbook.texi:2574
#, no-wrap
msgid ""
" (packages (cons* nss-certs ;for HTTPS access\n"
@@ -4571,7 +4672,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2530
+#: doc/guix-cookbook.texi:2585
#, no-wrap
msgid ""
" (services (cons*\n"
@@ -4597,12 +4698,12 @@ msgstr ""
" %base-services)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2533
+#: doc/guix-cookbook.texi:2588
msgid "Replace the following fields in the above configuration:"
msgstr "Ersetzen Sie in der obigen Konfiguration aber folgende Felder:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2541
+#: doc/guix-cookbook.texi:2596
#, no-wrap
msgid ""
"(host-name \"my-server\") ; replace with your server name\n"
@@ -4622,17 +4723,17 @@ msgstr ""
"(\"root\" ,(local-file \"janedoe_rsa.pub\")) ; Ersetzen durch Ihren SSH-Schlüssel\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2548
+#: doc/guix-cookbook.texi:2603
msgid "The last line in the above example lets you log into the server as root and set the initial root password (see the note at the end of this recipe about root login). After you have done this, you may delete that line from your configuration and reconfigure to prevent root login."
msgstr "Durch die letzte Zeile im obigen Beispiel können Sie sich als Administratornutzer root auf dem Server anmelden und das anfängliche Passwort für root festlegen (lesen Sie den Hinweis zur Anmeldung als root am Ende dieses Rezepts). Nachdem das erledigt ist, können Sie die Zeile aus Ihrer Konfiguration löschen und Ihr System rekonfigurieren, damit eine Anmeldung als root nicht mehr möglich ist."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2553
+#: doc/guix-cookbook.texi:2608
msgid "Copy your ssh public key (eg: @file{~/.ssh/id_rsa.pub}) as @file{@var{<your-username-here>}_rsa.pub} and put @file{guix-config.scm} in the same directory. In a new terminal run these commands."
msgstr "Kopieren Sie Ihren öffentlichen SSH-Schlüssel (z.B.@: @file{~/.ssh/id_rsa.pub}) in die Datei @file{@var{<Ihr-Benutzername>}_rsa.pub} und Ihre @file{guix-config.scm} ins selbe Verzeichnis. Führen Sie dann diese Befehle in einem neuen Terminal aus:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2558
+#: doc/guix-cookbook.texi:2613
#, no-wrap
msgid ""
"sftp root@@<remote server ip address>\n"
@@ -4644,12 +4745,12 @@ msgstr ""
"put /pfad/mit/dateien/guix-config.scm .\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2561
+#: doc/guix-cookbook.texi:2616
msgid "In your first terminal, mount the guix drive:"
msgstr "Binden Sie mit Ihrem ersten Terminal das Guix-Laufwerk ein:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2565
+#: doc/guix-cookbook.texi:2620
#, no-wrap
msgid ""
"mkdir /mnt/guix\n"
@@ -4659,12 +4760,12 @@ msgstr ""
"mount /dev/sdc /mnt/guix\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2570
+#: doc/guix-cookbook.texi:2625
msgid "Due to the way we set up the bootloader section of the guix-config.scm, only the grub configuration file will be installed. So, we need to copy over some of the other GRUB stuff already installed on the Debian system:"
msgstr "Aufgrund der Art und Weise, wie wir den Bootloader-Abschnitt von @file{guix-config.scm} oben festgelegt haben, installieren wir GRUB nicht vollständig. Stattdessen installieren wir nur unsere GRUB-Konfigurationsdatei. Daher müssen wir ein bisschen von den anderen GRUB-Einstellungen vom Debian-System kopieren:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2574
+#: doc/guix-cookbook.texi:2629
#, no-wrap
msgid ""
"mkdir -p /mnt/guix/boot/grub\n"
@@ -4674,28 +4775,28 @@ msgstr ""
"cp -r /boot/grub/* /mnt/guix/boot/grub/\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2577
+#: doc/guix-cookbook.texi:2632
msgid "Now initialize the Guix installation:"
msgstr "Initialisieren Sie nun die Guix-Installation:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2580
+#: doc/guix-cookbook.texi:2635
#, no-wrap
msgid "guix system init guix-config.scm /mnt/guix\n"
msgstr "guix system init guix-config.scm /mnt/guix\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2584
+#: doc/guix-cookbook.texi:2639
msgid "Ok, power it down! Now from the Linode console, select boot and select \"Guix\"."
msgstr "OK, fahren Sie Ihn jetzt herunter! Von der Linode-Konsole wählen Sie Booten aus und wählen „Guix“."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2587
+#: doc/guix-cookbook.texi:2642
msgid "Once it boots, you should be able to log in via SSH! (The server config will have changed though.) You may encounter an error like:"
msgstr "Sobald es gestartet ist, sollten Sie sich über SSH anmelden können! (Allerdings wird sich die Serverkonfiguration geändert haben.) Ihnen könnte eine Fehlermeldung wie diese hier gezeigt werden:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2603
+#: doc/guix-cookbook.texi:2658
#, no-wrap
msgid ""
"$ ssh root@@<server ip address>\n"
@@ -4729,17 +4830,17 @@ msgstr ""
"Host key verification failed.\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2607
+#: doc/guix-cookbook.texi:2662
msgid "Either delete @file{~/.ssh/known_hosts} file, or delete the offending line starting with your server IP address."
msgstr "Löschen Sie entweder die ganze Datei @file{~/.ssh/known_hosts} oder nur die ungültig gewordene Zeile, die mit der IP-Adresse Ihres Servers beginnt."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2609
+#: doc/guix-cookbook.texi:2664
msgid "Be sure to set your password and root's password."
msgstr "Denken Sie daran, Ihr Passwort und das Passwort des Administratornutzers root festzulegen."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2614
+#: doc/guix-cookbook.texi:2669
#, no-wrap
msgid ""
"ssh root@@<remote ip address>\n"
@@ -4751,32 +4852,596 @@ msgstr ""
"passwd <benutzername> ; für das Passwort des normalen Benutzers\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2621
+#: doc/guix-cookbook.texi:2676
msgid "You may not be able to run the above commands at this point. If you have issues remotely logging into your linode box via SSH, then you may still need to set your root and user password initially by clicking on the ``Launch Console'' option in your linode. Choose the ``Glish'' instead of ``Weblish''. Now you should be able to ssh into the machine."
msgstr "Es kann sein, dass die obigen Befehle noch nicht funktionieren. Wenn Sie Probleme haben, sich aus der Ferne über SSH bei Ihrer Linode-Kiste anzumelden, dann müssen Sie vielleicht Ihr anfängliches Passwort für root und das normale Benutzerkonto festlegen, indem Sie auf die „Launch Console“-Option in Ihrer Linode klicken. Wählen Sie „Glish“ statt „Weblish“. Jetzt sollten Sie über SSH in Ihre Maschine ’reinkommen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2625
+#: doc/guix-cookbook.texi:2680
msgid "Hooray! At this point you can shut down the server, delete the Debian disk, and resize the Guix to the rest of the size. Congratulations!"
msgstr "Hurra! Nun können Sie den Server herunterfahren, die Debian-Platte löschen und Guix auf den gesamten verfügbaren Speicher erweitern. Herzlichen Glückwunsch!"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2630
+#: doc/guix-cookbook.texi:2685
msgid "By the way, if you save it as a disk image right at this point, you'll have an easy time spinning up new Guix images! You may need to down-size the Guix image to 6144MB, to save it as an image. Then you can resize it again to the max size."
msgstr "Übrigens, wenn Sie das Ergebnis jetzt als „Disk Image“ speichern, können Sie neue Guix-Abbilder von da an leicht einrichten! Vielleicht müssen Sie die Größe des Guix-Abbilds auf 6144MB verkleinern, um es als Abbild speichern zu können. Danach können Sie es wieder auf die Maximalgröße vergrößern."
+#. type: cindex
+#: doc/guix-cookbook.texi:2688
+#, no-wrap
+msgid "kimsufi, Kimsufi, OVH"
+msgstr "kimsufi, Kimsufi, OVH"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2692
+msgid "To run Guix on a server hosted by @uref{https://www.kimsufi.com/, Kimsufi}, click on the netboot tab then select rescue64-pro and restart."
+msgstr "Um Guix auf einem von @uref{https://www.kimsufi.com/, Kimsufi} gemieteten Server einzusetzen, klicken Sie auf den Karteireiter zu Netboot und wählen Sie dann rescue64-pro aus und starten Sie neu."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2694
+msgid "OVH will email you the credentials required to ssh into a Debian system."
+msgstr "OVH wird Ihnen eine E-Mail mit den Anmeldedaten schicken, damit Sie sich über SSH auf ein Debian-System verbinden können."
+
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2639
+#: doc/guix-cookbook.texi:2697
+msgid "Now you can run the \"install guix from @pxref{Binary Installation,,, guix, GNU Guix}\" steps:"
+msgstr "Folgen Sie nun den Anweisungen zur Installation von Guix aus einer Binärdatei (siehe @ref{Aus Binärdatei installieren,,, guix.de, Referenzhandbuch zu GNU Guix}):"
+
+#. type: example
+#: doc/guix-cookbook.texi:2703
+#, no-wrap
+msgid ""
+"wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh\n"
+"chmod +x guix-install.sh\n"
+"./guix-install.sh\n"
+"guix pull\n"
+msgstr ""
+"wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh\n"
+"chmod +x guix-install.sh\n"
+"./guix-install.sh\n"
+"guix pull\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2706
+msgid "Partition the drives and format them, first stop the raid array:"
+msgstr "Partitionieren Sie nun die Laufwerke und formatieren Sie sie, aber erst nachdem Sie das RAID-Array angehalten haben:"
+
+#. type: example
+#: doc/guix-cookbook.texi:2710
+#, no-wrap
+msgid ""
+"mdadm --stop /dev/md127\n"
+"mdadm --zero-superblock /dev/sda2 /dev/sdb2\n"
+msgstr ""
+"mdadm --stop /dev/md127\n"
+"mdadm --zero-superblock /dev/sda2 /dev/sdb2\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2714
+msgid "Then wipe the disks and set up the partitions, we will create a RAID 1 array."
+msgstr "Löschen Sie die Laufwerksinhalte und richten Sie die Partitionen ein; wir erzeugen ein RAID-1-Array."
+
+#. type: example
+#: doc/guix-cookbook.texi:2718
+#, no-wrap
+msgid ""
+"wipefs -a /dev/sda\n"
+"wipefs -a /dev/sdb\n"
+"\n"
+msgstr ""
+"wipefs -a /dev/sda\n"
+"wipefs -a /dev/sdb\n"
+"\n"
+
+#. type: example
+#: doc/guix-cookbook.texi:2727
+#, no-wrap
+msgid ""
+"parted /dev/sda --align=opt -s -m -- mklabel gpt\n"
+"parted /dev/sda --align=opt -s -m -- \\\n"
+" mkpart bios_grub 1049kb 512MiB \\\n"
+" set 1 bios_grub on\n"
+"parted /dev/sda --align=opt -s -m -- \\\n"
+" mkpart primary 512MiB -512MiB\n"
+" set 2 raid on\n"
+"parted /dev/sda --align=opt -s -m -- mkpart primary linux-swap 512MiB 100%\n"
+"\n"
+msgstr ""
+"parted /dev/sda --align=opt -s -m -- mklabel gpt\n"
+"parted /dev/sda --align=opt -s -m -- \\\n"
+" mkpart bios_grub 1049kb 512MiB \\\n"
+" set 1 bios_grub on\n"
+"parted /dev/sda --align=opt -s -m -- \\\n"
+" mkpart primary 512MiB -512MiB\n"
+" set 2 raid on\n"
+"parted /dev/sda --align=opt -s -m -- mkpart primary linux-swap 512MiB 100%\n"
+"\n"
+
+#. type: example
+#: doc/guix-cookbook.texi:2736
+#, no-wrap
+msgid ""
+"parted /dev/sdb --align=opt -s -m -- mklabel gpt\n"
+"parted /dev/sdb --align=opt -s -m -- \\\n"
+" mkpart bios_grub 1049kb 512MiB \\\n"
+" set 1 bios_grub on\n"
+"parted /dev/sdb --align=opt -s -m -- \\\n"
+" mkpart primary 512MiB -512MiB \\\n"
+" set 2 raid on\n"
+"parted /dev/sdb --align=opt -s -m -- mkpart primary linux-swap 512MiB 100%\n"
+msgstr ""
+"parted /dev/sdb --align=opt -s -m -- mklabel gpt\n"
+"parted /dev/sdb --align=opt -s -m -- \\\n"
+" mkpart bios_grub 1049kb 512MiB \\\n"
+" set 1 bios_grub on\n"
+"parted /dev/sdb --align=opt -s -m -- \\\n"
+" mkpart primary 512MiB -512MiB \\\n"
+" set 2 raid on\n"
+"parted /dev/sdb --align=opt -s -m -- mkpart primary linux-swap 512MiB 100%\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2739
+msgid "Create the array:"
+msgstr "Legen Sie das Array an:"
+
+#. type: example
+#: doc/guix-cookbook.texi:2743
+#, no-wrap
+msgid ""
+"mdadm --create /dev/md127 --level=1 --raid-disks=2 \\\n"
+" --metadata=0.90 /dev/sda2 /dev/sdb2\n"
+msgstr ""
+"mdadm --create /dev/md127 --level=1 --raid-disks=2 \\\n"
+" --metadata=0.90 /dev/sda2 /dev/sdb2\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2747
+msgid "Now create file systems on the relevant partitions, first the boot partitions:"
+msgstr "Legen Sie nun Dateisysteme auf diesen Partitionen an, angefangen mit der Boot-Partition:"
+
+#. type: example
+#: doc/guix-cookbook.texi:2751
+#, no-wrap
+msgid ""
+"mkfs.ext4 /dev/sda1\n"
+"mkfs.ext4 /dev/sdb1\n"
+msgstr ""
+"mkfs.ext4 /dev/sda1\n"
+"mkfs.ext4 /dev/sdb1\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2754
+msgid "Then the root partition:"
+msgstr "Dann die Wurzelpartition:"
+
+#. type: example
+#: doc/guix-cookbook.texi:2757
+#, no-wrap
+msgid "mkfs.ext4 /dev/md127\n"
+msgstr "mkfs.ext4 /dev/md127\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2760
+msgid "Initialize the swap partitions:"
+msgstr "Initialisieren Sie die Swap-Partitionen:"
+
+#. type: example
+#: doc/guix-cookbook.texi:2766
+#, no-wrap
+msgid ""
+"mkswap /dev/sda3\n"
+"swapon /dev/sda3\n"
+"mkswap /dev/sdb3\n"
+"swapon /dev/sdb3\n"
+msgstr ""
+"mkswap /dev/sda3\n"
+"swapon /dev/sda3\n"
+"mkswap /dev/sdb3\n"
+"swapon /dev/sdb3\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2769
+msgid "Mount the guix drive:"
+msgstr "Binden Sie das Guix-Laufwerk ein:"
+
+#. type: example
+#: doc/guix-cookbook.texi:2773
+#, no-wrap
+msgid ""
+"mkdir /mnt/guix\n"
+"mount /dev/md127 /mnt/guix\n"
+msgstr ""
+"mkdir /mnt/guix\n"
+"mount /dev/md127 /mnt/guix\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2777
+msgid "Now is time to write an operating system declaration @file{os.scm} file; here is a sample:"
+msgstr "Der nächste Schritt ist, in eine Datei @file{os.scm} eine Betriebssystemdeklaration zu schreiben, zum Beispiel:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2782
+#, no-wrap
+msgid ""
+"(use-modules (gnu) (guix))\n"
+"(use-service-modules networking ssh vpn virtualization sysctl admin mcron)\n"
+"(use-package-modules ssh certs tls tmux vpn virtualization)\n"
+"\n"
+msgstr ""
+"(use-modules (gnu) (guix))\n"
+"(use-service-modules networking ssh vpn virtualization sysctl admin mcron)\n"
+"(use-package-modules ssh certs tls tmux vpn virtualization)\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2785
+#, no-wrap
+msgid ""
+"(operating-system\n"
+" (host-name \"kimsufi\")\n"
+"\n"
+msgstr ""
+"(operating-system\n"
+" (host-name \"kimsufi\")\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2790
+#, no-wrap
+msgid ""
+" (bootloader (bootloader-configuration\n"
+"\t (bootloader grub-bootloader)\n"
+"\t (targets (list \"/dev/sda\" \"/dev/sdb\"))\n"
+"\t (terminal-outputs '(console))))\n"
+"\n"
+msgstr ""
+" (bootloader (bootloader-configuration\n"
+"\t (bootloader grub-bootloader)\n"
+"\t (targets (list \"/dev/sda\" \"/dev/sdb\"))\n"
+"\t (terminal-outputs '(console))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2793
+#, no-wrap
+msgid ""
+" ;; Add a kernel module for RAID-1 (aka. \"mirror\").\n"
+" (initrd-modules (cons* \"raid1\" %base-initrd-modules))\n"
+"\n"
+msgstr ""
+" ;; Wir brauchen ein Kernel-Modul für RAID-1 (d.h. \"spiegeln\").\n"
+" (initrd-modules (cons* \"raid1\" %base-initrd-modules))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2799
+#, no-wrap
+msgid ""
+" (mapped-devices\n"
+" (list (mapped-device\n"
+" (source (list \"/dev/sda2\" \"/dev/sdb2\"))\n"
+" (target \"/dev/md127\")\n"
+" (type raid-device-mapping))))\n"
+"\n"
+msgstr ""
+" (mapped-devices\n"
+" (list (mapped-device\n"
+" (source (list \"/dev/sda2\" \"/dev/sdb2\"))\n"
+" (target \"/dev/md127\")\n"
+" (type raid-device-mapping))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2805
+#, no-wrap
+msgid ""
+" (swap-devices\n"
+" (list (swap-space\n"
+" (target \"/dev/sda3\"))\n"
+" (swap-space\n"
+" (target \"/dev/sdb3\"))))\n"
+"\n"
+msgstr ""
+" (swap-devices\n"
+" (list (swap-space\n"
+" (target \"/dev/sda3\"))\n"
+" (swap-space\n"
+" (target \"/dev/sdb3\"))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2810
+#, no-wrap
+msgid ""
+" (issue\n"
+" ;; Default contents for /etc/issue.\n"
+" \"\\\n"
+"This is the GNU system at Kimsufi. Welcome.\\n\")\n"
+"\n"
+msgstr ""
+" (issue\n"
+" ;; Voreingestellte Botschaft für /etc/issue.\n"
+" \"\\\n"
+"Hier ist das GNU-System bei Kimsufi. Willkommen.\\n\")\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2817
+#, no-wrap
+msgid ""
+" (file-systems (cons* (file-system\n"
+"\t\t (mount-point \"/\")\n"
+"\t\t (device \"/dev/md127\")\n"
+"\t\t (type \"ext4\")\n"
+"\t\t (dependencies mapped-devices))\n"
+"\t\t %base-file-systems))\n"
+"\n"
+msgstr ""
+" (file-systems (cons* (file-system\n"
+"\t\t (mount-point \"/\")\n"
+"\t\t (device \"/dev/md127\")\n"
+"\t\t (type \"ext4\")\n"
+"\t\t (dependencies mapped-devices))\n"
+"\t\t %base-file-systems))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2825
+#, no-wrap
+msgid ""
+" (users (cons (user-account\n"
+"\t (name \"guix\")\n"
+"\t (comment \"guix\")\n"
+"\t (group \"users\")\n"
+"\t (supplementary-groups '(\"wheel\"))\n"
+"\t (home-directory \"/home/guix\"))\n"
+"\t %base-user-accounts))\n"
+"\n"
+msgstr ""
+" (users (cons (user-account\n"
+"\t (name \"guix\")\n"
+"\t (comment \"guix\")\n"
+"\t (group \"users\")\n"
+"\t (supplementary-groups '(\"wheel\"))\n"
+"\t (home-directory \"/home/guix\"))\n"
+"\t %base-user-accounts))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2831
+#, no-wrap
+msgid ""
+" (sudoers-file\n"
+" (plain-file \"sudoers\" \"\\\n"
+"root ALL=(ALL) ALL\n"
+"%wheel ALL=(ALL) ALL\n"
+"guix ALL=(ALL) NOPASSWD:ALL\\n\"))\n"
+"\n"
+msgstr ""
+" (sudoers-file\n"
+" (plain-file \"sudoers\" \"\\\n"
+"root ALL=(ALL) ALL\n"
+"%wheel ALL=(ALL) ALL\n"
+"guix ALL=(ALL) NOPASSWD:ALL\\n\"))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2845
+#, no-wrap
+msgid ""
+" ;; Globally-installed packages.\n"
+" (packages (cons* tmux nss-certs gnutls wireguard-tools %base-packages))\n"
+" (services\n"
+" (cons*\n"
+" (service static-networking-service-type\n"
+"\t (list (static-networking\n"
+"\t\t (addresses (list (network-address\n"
+"\t\t\t\t (device \"enp3s0\")\n"
+"\t\t\t\t (value \"@var{server-ip-address}/24\"))))\n"
+"\t\t (routes (list (network-route\n"
+"\t\t\t\t (destination \"default\")\n"
+"\t\t\t\t (gateway \"@var{server-gateway}\"))))\n"
+"\t\t (name-servers '(\"213.186.33.99\")))))\n"
+"\n"
+msgstr ""
+" ;; Global installierte Pakete.\n"
+" (packages (cons* tmux nss-certs gnutls wireguard-tools %base-packages))\n"
+" (services\n"
+" (cons*\n"
+" (service static-networking-service-type\n"
+"\t (list (static-networking\n"
+"\t\t (addresses (list (network-address\n"
+"\t\t\t\t (device \"enp3s0\")\n"
+"\t\t\t\t (value \"@var{Server-IP-Adresse}/24\"))))\n"
+"\t\t (routes (list (network-route\n"
+"\t\t\t\t (destination \"default\")\n"
+"\t\t\t\t (gateway \"@var{Server-Netzwerkzugang}\"))))\n"
+"\t\t (name-servers '(\"213.186.33.99\")))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2847
+#, no-wrap
+msgid ""
+" (service unattended-upgrade-service-type)\n"
+"\n"
+msgstr ""
+" (service unattended-upgrade-service-type)\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:2862
+#, no-wrap
+msgid ""
+" (service openssh-service-type\n"
+"\t (openssh-configuration\n"
+"\t (openssh openssh-sans-x)\n"
+"\t (permit-root-login #f)\n"
+"\t (authorized-keys\n"
+"\t `((\"guix\" ,(plain-file \"@var{ssh-key-name.pub}\"\n"
+" \"@var{ssh-public-key-content}\"))))))\n"
+" (modify-services %base-services\n"
+" (sysctl-service-type\n"
+" config =>\n"
+" (sysctl-configuration\n"
+"\t(settings (append '((\"net.ipv6.conf.all.autoconf\" . \"0\")\n"
+"\t\t\t (\"net.ipv6.conf.all.accept_ra\" . \"0\"))\n"
+"\t\t\t %default-sysctl-settings))))))))\n"
+msgstr ""
+" (service openssh-service-type\n"
+"\t (openssh-configuration\n"
+"\t (openssh openssh-sans-x)\n"
+"\t (permit-root-login #f)\n"
+"\t (authorized-keys\n"
+"\t `((\"guix\" ,(plain-file \"@var{SSH-Name-des-Schlüssels.pub}\"\n"
+" \"@var{SSH-Inhalt-öffentl-Schlüssel}\"))))))\n"
+" (modify-services %base-services\n"
+" (sysctl-service-type\n"
+" config =>\n"
+" (sysctl-configuration\n"
+"\t(settings (append '((\"net.ipv6.conf.all.autoconf\" . \"0\")\n"
+"\t\t\t (\"net.ipv6.conf.all.accept_ra\" . \"0\"))\n"
+"\t\t\t %default-sysctl-settings))))))))\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2867
+msgid "Don't forget to substitute the @var{server-ip-address}, @var{server-gateway}, @var{ssh-key-name} and @var{ssh-public-key-content} variables with your own values."
+msgstr "Vergessen Sie nicht, anstelle der Variablen @var{Server-IP-Adresse}, @var{Server-Netzwerkzugang}, @var{SSH-Name-des-Schlüssels} und @var{SSH-Inhalt-öffentl-Schlüssel} die für Sie zutreffenden Werte zu schreiben."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2871
+msgid "The gateway is the last usable IP in your block so if you have a server with an IP of @samp{37.187.79.10} then its gateway will be @samp{37.187.79.254}."
+msgstr "Der Netzwerkzugang (Gateway) ist die letzte nutzbare IP in Ihrem Block. Wenn Sie z.B.@: einen Server mit IP @samp{37.187.79.10} haben, dann ist sein Gateway @samp{37.187.79.254}."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2874
+msgid "Transfer your operating system declaration @file{os.scm} file on the server via the @command{scp} or @command{sftp} commands."
+msgstr "Übertragen Sie Ihre Datei mit Betriebssystemdeklaration @file{os.scm} auf den Server mittels des Befehls @command{scp} oder @command{sftp}."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2877
+msgid "Now all that is left is to install Guix with a @code{guix system init} and restart."
+msgstr "Bleibt nur noch, Guix mit @code{guix system init} zu installieren und neu zu starten."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2882
+msgid "However we first need to set up a chroot, because the root partition of the rescue system is mounted on an aufs partition and if you try to install Guix it will fail at the GRUB install step complaining about the canonical path of \"aufs\"."
+msgstr "Aber das klappt nur, wenn wir vorher ein Chroot aufsetzen, weil die Wurzelpartition des laufenden Rettungssystems („rescue“) auf einer aufs-Partition eingebunden ist und, wenn Sie es versuchen, die Installation von Guix beim GRUB-Schritt fehlschlägt mit der Meldung, der kanonische Pfad von „aufs“ sei nicht ermittelbar."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2884
+msgid "Install packages that will be used in the chroot:"
+msgstr "Installieren Sie die Pakete, die im Chroot benutzt werden:"
+
+#. type: example
+#: doc/guix-cookbook.texi:2887
+#, no-wrap
+msgid "guix install bash-static parted util-linux-with-udev coreutils guix\n"
+msgstr "guix install bash-static parted util-linux-with-udev coreutils guix\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2890
+msgid "Then run the following to create directories needed for the chroot:"
+msgstr "Dann legt folgender Befehl die Verzeichnisse für das Chroot an:"
+
+#. type: example
+#: doc/guix-cookbook.texi:2895
+#, no-wrap
+msgid ""
+"cd /mnt && \\\n"
+"mkdir -p bin etc gnu/store root/.guix-profile/ root/.config/guix/current \\\n"
+" var/guix proc sys dev\n"
+msgstr ""
+"cd /mnt && \\\n"
+"mkdir -p bin etc gnu/store root/.guix-profile/ root/.config/guix/current \\\n"
+" var/guix proc sys dev\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2898
+msgid "Copy the host resolv.conf in the chroot:"
+msgstr "Kopieren Sie die resolv.conf des Wirtssystems in die Chroot:"
+
+#. type: example
+#: doc/guix-cookbook.texi:2901
+#, no-wrap
+msgid "cp /etc/resolv.conf etc/\n"
+msgstr "cp /etc/resolv.conf etc/\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2904
+msgid "Mount block devices, the store and its database and the current guix config:"
+msgstr "Binden Sie die blockorientierten Speichermedien, den Store, seine Datenbank sowie die aktuelle Guix-Konfiguration ein:"
+
+#. type: example
+#: doc/guix-cookbook.texi:2914
+#, no-wrap
+msgid ""
+"mount --rbind /proc /mnt/proc\n"
+"mount --rbind /sys /mnt/sys\n"
+"mount --rbind /dev /mnt/dev\n"
+"mount --rbind /var/guix/ var/guix/\n"
+"mount --rbind /gnu/store gnu/store/\n"
+"mount --rbind /root/.config/ root/.config/\n"
+"mount --rbind /root/.guix-profile/bin/ bin\n"
+"mount --rbind /root/.guix-profile root/.guix-profile/\n"
+msgstr ""
+"mount --rbind /proc /mnt/proc\n"
+"mount --rbind /sys /mnt/sys\n"
+"mount --rbind /dev /mnt/dev\n"
+"mount --rbind /var/guix/ var/guix/\n"
+"mount --rbind /gnu/store gnu/store/\n"
+"mount --rbind /root/.config/ root/.config/\n"
+"mount --rbind /root/.guix-profile/bin/ bin\n"
+"mount --rbind /root/.guix-profile root/.guix-profile/\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2917
+msgid "Chroot in /mnt and install the system:"
+msgstr "Betreten Sie ein Chroot in /mnt und installieren Sie das System:"
+
+#. type: example
+#: doc/guix-cookbook.texi:2920
+#, no-wrap
+msgid ""
+"chroot /mnt/ /bin/bash\n"
+"\n"
+msgstr ""
+"chroot /mnt/ /bin/bash\n"
+"\n"
+
+#. type: example
+#: doc/guix-cookbook.texi:2922
+#, no-wrap
+msgid "guix system init /root/os.scm /guix\n"
+msgstr "guix system init /root/os.scm /guix\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2926
+msgid "Finally, from the web user interface (UI), change @samp{netboot} to @samp{boot to disk} and restart (also from the web UI)."
+msgstr "Schlussendlich können Sie in der Web-Oberfläche von @samp{netboot} auf @samp{boot to disk} wechseln und neu starten (auch das tun Sie über die Web-Oberfläche)."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2929
+msgid "Wait a few minutes and try to ssh with @code{ssh guix@@@var{server-ip-address>} -i @var{path-to-your-ssh-key}}"
+msgstr "Nach ein paar Minuten Wartezeit können Sie versuchen, Ihren Server mit SSH zu betreten: @code{ssh guix@@@var{Server-IP-Adresse} -i @var{Pfad-zu-Ihrem-SSH-Schlüssel}}"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2932
+msgid "You should have a Guix system up and running on Kimsufi; congratulations!"
+msgstr "Sie sollten nun ein nutzbares Guix-System auf Kimsufi am Laufen haben; wir gratulieren!"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:2941
msgid "To bind mount a file system, one must first set up some definitions before the @code{operating-system} section of the system definition. In this example we will bind mount a folder from a spinning disk drive to @file{/tmp}, to save wear and tear on the primary SSD, without dedicating an entire partition to be mounted as @file{/tmp}."
msgstr "Um ein Dateisystem per „bind mount“ einzubinden, braucht man zunächst ein paar Definitionen. Fügen Sie diese noch vor dem @code{operating-system}-Abschnitt Ihrer Systemdefinition ein. In diesem Beispiel binden wir ein Verzeichnis auf einem Magnetfestplattenlaufwerk an @file{/tmp}, um die primäre SSD weniger abzunutzen, ohne dass wir extra eine ganze Partition für @file{/tmp} erzeugen müssen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2642
+#: doc/guix-cookbook.texi:2944
msgid "First, the source drive that hosts the folder we wish to bind mount should be defined, so that the bind mount can depend on it."
msgstr "Als Erstes sollten wir das Quelllaufwerk definieren, wo wir das Verzeichnis für den Bind-Mount unterbringen. Dann kann der Bind-Mount es als Abhängigkeit benutzen."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2649
+#: doc/guix-cookbook.texi:2951
#, no-wrap
msgid ""
"(define source-drive ;; \"source-drive\" can be named anything you want.\n"
@@ -4792,23 +5457,23 @@ msgstr ""
" (type \"ext4\"))) ;; Legen Sie den dazu passenden Typ fest.\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2653
+#: doc/guix-cookbook.texi:2955
msgid "The source folder must also be defined, so that guix will know it's not a regular block device, but a folder."
msgstr "Auch das Quellverzeichnis muss so definiert werden, dass Guix es nicht für ein reguläres blockorientiertes Gerät hält, sondern es als Verzeichnis erkennt."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2655
+#: doc/guix-cookbook.texi:2957
#, no-wrap
msgid "(define (%source-directory) \"/path-to-spinning-disk-goes-here/tmp\") ;; \"source-directory\" can be named any valid variable name.\n"
msgstr "(define (%quellverzeichnis) \"/hier-der-pfad-zur-magnetfestplatte/tmp\") ;; Dem \"quellverzeichnis\" kann man einen beliebigen gültigen Variablennamen geben.\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2659
+#: doc/guix-cookbook.texi:2961
msgid "Finally, inside the @code{file-systems} definition, we must add the mount itself."
msgstr "In der Definition des @code{file-systems}-Felds müssen wir die Einbindung einfügen."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2662
+#: doc/guix-cookbook.texi:2964
#, no-wrap
msgid ""
"(file-systems (cons*\n"
@@ -4818,7 +5483,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2664
+#: doc/guix-cookbook.texi:2966
#, no-wrap
msgid ""
" ...<other drives omitted for clarity>...\n"
@@ -4828,7 +5493,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2666
+#: doc/guix-cookbook.texi:2968
#, no-wrap
msgid ""
" source-drive ;; Must match the name you gave the source drive in the earlier definition.\n"
@@ -4838,7 +5503,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2674
+#: doc/guix-cookbook.texi:2976
#, no-wrap
msgid ""
" (file-system\n"
@@ -4860,7 +5525,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2676
+#: doc/guix-cookbook.texi:2978
#, no-wrap
msgid ""
" ...<other drives omitted for clarity>...\n"
@@ -4870,39 +5535,39 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2678
+#: doc/guix-cookbook.texi:2980
#, no-wrap
msgid " ))\n"
msgstr " ))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2685
+#: doc/guix-cookbook.texi:2987
msgid "Guix daemon can use a HTTP proxy to get substitutes, here we are configuring it to get them via Tor."
msgstr "Der Guix-Daemon kann einen HTTP-Proxy benutzen, wenn er Substitute herunterlädt. Wir wollen ihn hier so konfigurieren, dass Substitute über Tor bezogen werden."
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:2686
+#: doc/guix-cookbook.texi:2988
#, no-wrap
msgid "Warning"
msgstr "Warnung"
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:2692
+#: doc/guix-cookbook.texi:2994
msgid "@emph{Not all} Guix daemon's traffic will go through Tor! Only HTTP/HTTPS will get proxied; FTP, Git protocol, SSH, etc connections will still go through the clearnet. Again, this configuration isn't foolproof some of your traffic won't get routed by Tor at all. Use it at your own risk."
msgstr "@emph{Nicht aller} Datenverkehr des Guix-Daemons wird dadurch über Tor laufen! Nur HTTP und HTTPS durchläuft den Proxy, @emph{nicht} so ist es bei FTP, dem Git-Protokokl, SSH etc.@:, diese laufen weiterhin durch’s „Clearnet“. Die Konfiguration ist also @emph{nicht} narrensicher; ein Teil Ihres Datenverkehrs wird gar nicht über Tor geleitet. Verwenden Sie sie nur auf Ihr eigenes Risiko!"
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:2698
+#: doc/guix-cookbook.texi:3000
msgid "Also note that the procedure described here applies only to package substitution. When you update your guix distribution with @command{guix pull}, you still need to use @command{torsocks} if you want to route the connection to guix's git repository servers through Tor."
msgstr "Beachten Sie außerdem, dass sich die hier beschriebene Prozedur nur auf Paketsubstitute bezieht. Wenn Sie Ihre Guix-Distribution mit @command{guix pull} aktualisieren, müssen Sie noch immer @command{torsocks} benutzen, wenn Sie die Verbindung zu Guix’ Git-Repository über Tor leiten wollen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2703
+#: doc/guix-cookbook.texi:3005
msgid "Guix's substitute server is available as a Onion service, if you want to use it to get your substitutes through Tor configure your system as follow:"
msgstr "Der Substitutserver von Guix ist als Onion-Dienst verfügbar, wenn Sie ihn benutzen möchten, um Ihre Substitute über Tor zu laden, dann konfigurieren Sie Ihr System wie folgt:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2707
+#: doc/guix-cookbook.texi:3009
#, no-wrap
msgid ""
"(use-modules (gnu))\n"
@@ -4914,7 +5579,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2724
+#: doc/guix-cookbook.texi:3026
#, no-wrap
msgid ""
"(operating-system\n"
@@ -4952,17 +5617,17 @@ msgstr ""
" (http-proxy \"http://localhost:9250\")))))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2733
+#: doc/guix-cookbook.texi:3035
msgid "This will keep a tor process running that provides a HTTP CONNECT tunnel which will be used by @command{guix-daemon}. The daemon can use other protocols than HTTP(S) to get remote resources, request using those protocols won't go through Tor since we are only setting a HTTP tunnel here. Note that @code{substitutes-urls} is using HTTPS and not HTTP or it won't work, that's a limitation of Tor's tunnel; you may want to use @command{privoxy} instead to avoid such limitations."
msgstr "Dadurch wird ständig ein Tor-Prozess laufen, der einen HTTP-CONNECT-Tunnel für die Nutzung durch den @command{guix-daemon} bereitstellt. Der Daemon kann andere Protokolle als HTTP(S) benutzen, um entfernte Ressourcen abzurufen, und Anfragen über solche Protokolle werden Tor @emph{nicht} durchlaufen, weil wir hier nur einen HTTP-Tunnel festlegen. Beachten Sie, dass wir für @code{substitutes-urls} HTTPS statt HTTP benutzen, sonst würde es nicht funktionieren. Dabei handelt es sich um eine Einschränkung von Tors Tunnel; vielleicht möchten Sie stattdessen @command{privoxy} benutzen, um dieser Einschränkung nicht zu unterliegen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2737
+#: doc/guix-cookbook.texi:3039
msgid "If you don't want to always get substitutes through Tor but using it just some of the times, then skip the @code{guix-configuration}. When you want to get a substitute from the Tor tunnel run:"
msgstr "Wenn Sie Substitute nicht immer, sondern nur manchmal über Tor beziehen wollen, dann überspringen Sie das mit der @code{guix-configuration}. Führen Sie einfach das hier aus, wenn Sie ein Substitut über den Tor-Tunnel laden möchten:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2742
+#: doc/guix-cookbook.texi:3044
#, no-wrap
msgid ""
"sudo herd set-http-proxy guix-daemon http://localhost:9250\n"
@@ -4974,28 +5639,28 @@ msgstr ""
" --substitute-urls=@value{SUBSTITUTE-TOR-URL} @dots{}\n"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2746
+#: doc/guix-cookbook.texi:3048
#, no-wrap
msgid "nginx, lua, openresty, resty"
msgstr "nginx, lua, openresty, resty"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2749
+#: doc/guix-cookbook.texi:3051
msgid "NGINX could be extended with Lua scripts."
msgstr "NGINX lässt sich mit Lua-Skripts erweitern."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2752
+#: doc/guix-cookbook.texi:3054
msgid "Guix provides NGINX service with ability to load Lua module and specific Lua packages, and reply to requests by evaluating Lua scripts."
msgstr "Guix stellt einen NGINX-Dienst bereit, mit dem das Lua-Modul und bestimmte Lua-Pakete geladen werden können, so dass Anfragen beantwortet werden, indem Lua-Skripte ausgewertet werden."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2756
+#: doc/guix-cookbook.texi:3058
msgid "The following example demonstrates system definition with configuration to evaluate @file{index.lua} Lua script on HTTP request to @uref{http://localhost/hello} endpoint:"
msgstr "Folgendes Beispiel zeigt eine Systemdefinition mit Einstellungen, um das Lua-Skript @file{index.lua} bei HTTP-Anfragen an den Endpunkt @uref{http://localhost/hello} auszuwerten:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2759
+#: doc/guix-cookbook.texi:3061
#, no-wrap
msgid ""
"local shell = require \"resty.shell\"\n"
@@ -5005,7 +5670,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2763
+#: doc/guix-cookbook.texi:3065
#, no-wrap
msgid ""
"local stdin = \"\"\n"
@@ -5019,7 +5684,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2766
+#: doc/guix-cookbook.texi:3068
#, no-wrap
msgid ""
"local ok, stdout, stderr, reason, status =\n"
@@ -5031,13 +5696,13 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2768
+#: doc/guix-cookbook.texi:3070
#, no-wrap
msgid "ngx.say(stdout)\n"
msgstr "ngx.say(stdout)\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2799
+#: doc/guix-cookbook.texi:3101
#, no-wrap
msgid ""
"(use-modules (gnu))\n"
@@ -5099,45 +5764,45 @@ msgstr ""
" #$(local-file \"index.lua\"))))))))))))))\n"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2803
+#: doc/guix-cookbook.texi:3105
#, no-wrap
msgid "mpd"
msgstr "mpd"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2804
+#: doc/guix-cookbook.texi:3106
#, no-wrap
msgid "music server, headless"
msgstr "Musik-Server, ohne Oberfläche"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2805
+#: doc/guix-cookbook.texi:3107
#, no-wrap
msgid "bluetooth, ALSA configuration"
msgstr "Bluetooth, ALSA-Konfiguration"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2812
+#: doc/guix-cookbook.texi:3114
msgid "MPD, the Music Player Daemon, is a flexible server-side application for playing music. Client programs on different machines on the network --- a mobile phone, a laptop, a desktop workstation --- can connect to it to control the playback of audio files from your local music collection. MPD decodes the audio files and plays them back on one or many outputs."
msgstr "Bei MPD, dem Music Player Daemon, handelt es sich um eine vielseitige Server-Anwendung, mit der Sie Musik spielen lassen. Client-Programme an verschiedenen Maschinen im Netzwerk@tie{}– einem Mobiltelefon, Laptop oder einer Desktop-Workstation@tie{}– können sich damit verbinden und die Wiedergabe der Tondateien steuern, die Ihre eigene Musiksammung enthalten. MPD dekodiert die Tondateien und spielt sie auf einer oder mehreren Ausgaben ab."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2819
+#: doc/guix-cookbook.texi:3121
msgid "By default MPD will play to the default audio device. In the example below we make things a little more interesting by setting up a headless music server. There will be no graphical user interface, no Pulseaudio daemon, and no local audio output. Instead we will configure MPD with two outputs: a bluetooth speaker and a web server to serve audio streams to any streaming media player."
msgstr "MPD ist so voreingestellt, dass auf dem Standardtonausgabegerät abgespielt wird. Im folgenden Beispiel legen wir eine interessantere Architektur fest: einen Musik-Server, der ohne Bildschirm betrieben werden kann. Eine grafische Oberfläche fehlt, ein Pulseaudio-Daemon ist auch nicht da und es gibt keine lokale Tonausgabe. Stattdessen richten wir MPD für zwei Ausgaben ein: zum einen ein Bluetooth-Lautsprecher, zum anderen ein Web-Server, der Audio an Mediaplayer streamen kann."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2825
+#: doc/guix-cookbook.texi:3127
msgid "Bluetooth is often rather frustrating to set up. You will have to pair your Bluetooth device and make sure that the device is automatically connected as soon as it powers on. The Bluetooth system service returned by the @code{bluetooth-service} procedure provides the infrastructure needed to set this up."
msgstr "Bluetooth einzurichten, ist oft eher frustrierend. Sie müssen Ihr Bluetooth-Gerät koppeln und dabei beachten, dass zum Gerät automatisch eine Verbindung aufgebaut sein soll, sobald es an ist. Das können Sie mit dem Bluetooth-Systemdienst umsetzen, der von der Prozedur @code{bluetooth-service} geliefert wird."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2828
+#: doc/guix-cookbook.texi:3130
msgid "Reconfigure your system with at least the following services and packages:"
msgstr "Rekonfigurieren Sie Ihr System mit mindestens den folgenden Diensten und Paketen:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2838
+#: doc/guix-cookbook.texi:3140
#, no-wrap
msgid ""
"(operating-system\n"
@@ -5159,12 +5824,12 @@ msgstr ""
" (bluetooth-service #:auto-enable? #t)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2845
+#: doc/guix-cookbook.texi:3147
msgid "Start the @code{bluetooth} service and then use @command{bluetoothctl} to scan for Bluetooth devices. Try to identify your Bluetooth speaker and pick out its device ID from the resulting list of devices that is indubitably dominated by a baffling smorgasbord of your neighbors' home automation gizmos. This only needs to be done once:"
msgstr "Starten Sie den @code{bluetooth}-Dienst und benutzen Sie dann @command{bluetoothctl}, um einen Scan nach Bluetooth-Geräten durchzuführen. Versuchen Sie, Ihren Bluetooth-Lautsprecher unter dem schwedischen Büfett aus anderen Smart-Home-Gerätschaften Ihrer Nachbarn auszumachen, und merken Sie sich dessen Device-ID in der angezeigten Liste. Das einmal zu machen, genügt:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2849
+#: doc/guix-cookbook.texi:3151
#, no-wrap
msgid ""
"$ bluetoothctl \n"
@@ -5176,7 +5841,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2852
+#: doc/guix-cookbook.texi:3154
#, no-wrap
msgid ""
"[bluetooth]# power on\n"
@@ -5188,7 +5853,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2855
+#: doc/guix-cookbook.texi:3157
#, no-wrap
msgid ""
"[bluetooth]# agent on\n"
@@ -5200,7 +5865,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2858
+#: doc/guix-cookbook.texi:3160
#, no-wrap
msgid ""
"[bluetooth]# default-agent\n"
@@ -5212,7 +5877,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2865
+#: doc/guix-cookbook.texi:3167
#, no-wrap
msgid ""
"[bluetooth]# scan on\n"
@@ -5232,7 +5897,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2869
+#: doc/guix-cookbook.texi:3171
#, no-wrap
msgid ""
"[bluetooth]# pair AA:BB:CC:A4:AA:CD\n"
@@ -5246,7 +5911,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2875
+#: doc/guix-cookbook.texi:3177
#, no-wrap
msgid ""
"[My Bluetooth Speaker]# [CHG] Device AA:BB:CC:A4:AA:CD UUIDs: 0000110b-0000-1000-8000-00xxxxxxxxxx\n"
@@ -5264,7 +5929,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2877
+#: doc/guix-cookbook.texi:3179
#, no-wrap
msgid ""
"[CHG] Device AA:BB:CC:A4:AA:CD Connected: no\n"
@@ -5274,7 +5939,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2882
+#: doc/guix-cookbook.texi:3184
#, no-wrap
msgid ""
"[bluetooth]# \n"
@@ -5290,7 +5955,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2889
+#: doc/guix-cookbook.texi:3191
#, no-wrap
msgid ""
"[bluetooth]# \n"
@@ -5310,7 +5975,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2894
+#: doc/guix-cookbook.texi:3196
#, no-wrap
msgid ""
"[My Bluetooth Speaker]# scan off\n"
@@ -5324,27 +5989,27 @@ msgstr ""
"[CHG] Controller 00:11:22:33:95:7F Discovering: no\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2898
+#: doc/guix-cookbook.texi:3200
msgid "Congratulations, you can now automatically connect to your Bluetooth speaker!"
msgstr "Wir gratulieren: Sie bekommen jetzt eine automatische Verbindung zu Ihrem Bluetooth-Speaker!"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2908
+#: doc/guix-cookbook.texi:3210
msgid "It is now time to configure ALSA to use the @emph{bluealsa} Bluetooth module, so that you can define an ALSA pcm device corresponding to your Bluetooth speaker. For a headless server using @emph{bluealsa} with a fixed Bluetooth device is likely simpler than configuring Pulseaudio and its stream switching behavior. We configure ALSA by crafting a custom @code{alsa-configuration} for the @code{alsa-service-type}. The configuration will declare a @code{pcm} type @code{bluealsa} from the @code{bluealsa} module provided by the @code{bluez-alsa} package, and then define a @code{pcm} device of that type for your Bluetooth speaker."
msgstr "Es wird Zeit, ALSA einzurichten. Dabei müssen Sie es anweisen, das Bluetooth-Modul @emph{bluealsa} zu verwenden, so dass Sie ein ALSA-pcm-Gerät definieren können, das Ihrem Bluetooth-Lautsprecher entspricht. Wenn Ihr Server keine Bedienelemente haben soll, ist es einfacher, wenn Sie @emph{bluealsa} mit einem festen Bluetooth-Gerät verbinden lassen, statt mit Pulseaudio ein Umschalten der Streams einzurichten. ALSA einzurichten, geht so: Wir schreiben eine passende @code{alsa-configuration} für den @code{alsa-service-type}. In der Konfiguration deklarieren Sie den @code{pcm}-Typ @code{bluealsa} aus dem Modul @code{bluealsa} des Pakets @code{bluez-alsa}. Für diesen Typ definieren Sie dann ein @code{pcm}-Gerät für Ihren Bluetooth-Lautsprecher."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2915
+#: doc/guix-cookbook.texi:3217
msgid "All that is left then is to make MPD send audio data to this ALSA device. We also add a secondary MPD output that makes the currently played audio files available as a stream through a web server on port 8080. When enabled a device on the network could listen to the audio stream by connecting any capable media player to the HTTP server on port 8080, independent of the status of the Bluetooth speaker."
msgstr "Was bleibt, ist, MPD die Audiodaten an dieses ALSA-Gerät schicken zu lassen. Zusätzlich fügen wir eine zweite MPD-Ausgabe hinzu, womit die aktuell abgespielten Tondateien auch als Stream über einen Web-Server auf Port 8080 dargeboten werden. Es ermöglicht, dass man mit anderen Geräten im Netzwerk einen tauglichen Mediaplayer die Daten vom HTTP-Server, auf Port 8080, abspielen lässt, egal ob der Bluetooth-Lautsprecher läuft."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2918
+#: doc/guix-cookbook.texi:3220
msgid "What follows is the outline of an @code{operating-system} declaration that should accomplish the above-mentioned tasks:"
msgstr "Es folgt ein Umriss, wie eine Betriebssystemdeklaration aussehen kann, die die oben genannten Aufgaben erfüllen dürfte:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2966
+#: doc/guix-cookbook.texi:3268
#, no-wrap
msgid ""
"(use-modules (gnu))\n"
@@ -5444,7 +6109,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2971
+#: doc/guix-cookbook.texi:3273
#, no-wrap
msgid ""
"# Declare control device type \\\"bluealsa\\\" from the same module\n"
@@ -5460,7 +6125,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2978
+#: doc/guix-cookbook.texi:3280
#, no-wrap
msgid ""
"# Define the actual Bluetooth audio device.\n"
@@ -5480,7 +6145,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2984
+#: doc/guix-cookbook.texi:3286
#, no-wrap
msgid ""
"# Define an associated controller.\n"
@@ -5496,48 +6161,48 @@ msgstr ""
"\"))))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2988
+#: doc/guix-cookbook.texi:3290
msgid "Enjoy the music with the MPD client of your choice or a media player capable of streaming via HTTP!"
msgstr "Genießen Sie nun, wie die Musik aus dem MPD-Client Ihrer Wahl erschallt, oder einem Mediaplayer, der über HTTP streamen kann!"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3001
+#: doc/guix-cookbook.texi:3303
msgid "The kernel Linux provides a number of shared facilities that are available to processes in the system. These facilities include a shared view on the file system, other processes, network devices, user and group identities, and a few others. Since Linux 3.19 a user can choose to @emph{unshare} some of these shared facilities for selected processes, providing them (and their child processes) with a different view on the system."
msgstr "Durch den Linux-Kernel werden den Systemprozessen zahlreiche gemeinsame Ressourcen zur Verfügung gestellt, etwa eine gemeinsame Sicht auf das Dateisystem, auf andere Prozesse, Netzwerkgeräte, Benutzer- und Gruppenidentitäten und noch mehr. Seit Linux 3.19 ist es möglich, dass Benutzer einige dieser Ressourcen trennen und ausgewählten Prozessen (und deren Kindprozessen) eine andere Sicht auf das System geben."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3007
+#: doc/guix-cookbook.texi:3309
msgid "A process with an unshared @code{mount} namespace, for example, has its own view on the file system --- it will only be able to see directories that have been explicitly bound in its mount namespace. A process with its own @code{proc} namespace will consider itself to be the only process running on the system, running as PID 1."
msgstr "Wenn ein Prozess zum Beispiel einen getrennten @code{mount}-Namensraum bekommt, hat er eine eigene Sicht auf das Dateisystem@tie{}– in seiner Welt kann er nur Verzeichnisse sehen, die in seinen @code{mount}-Namensraum eingebunden worden sind. Wenn ein Prozess über seinen eigenen @code{proc}-Namensraum verfügt, scheint es, als sei er der einzige Prozess, der auf dem System läuft, und seine Prozesskennung ist die PID 1."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3014
+#: doc/guix-cookbook.texi:3316
msgid "Guix uses these kernel features to provide fully isolated environments and even complete Guix System containers, lightweight virtual machines that share the host system's kernel. This feature comes in especially handy when using Guix on a foreign distribution to prevent interference from foreign libraries or configuration files that are available system-wide."
msgstr "Guix bringt diese Kernelfunktionen für völlig isolierte Umgebungen und sogar Guix System in Containern zum Einsatz@tie{}– Container sind wie leichtgewichtige virtuelle Maschinen, die denselben Kernel wie das Wirtssystem benutzen. Daraus können Sie besonders dann Ihren Nutzen ziehen, wenn Sie Guix auf einer Fremddistribution verwenden, denn so können Sie ausschließen, dass die systemweit zugänglichen fremden Bibliotheken und Konfigurationsdateien störenden Einfluss hätten."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3026
+#: doc/guix-cookbook.texi:3328
msgid "The easiest way to get started is to use @command{guix shell} with the @option{--container} option. @xref{Invoking guix shell,,, guix, GNU Guix Reference Manual} for a reference of valid options."
msgstr "Der einfachste Einstieg ist, @command{guix shell} mit der Befehlszeilenoption @option{--container} aufzurufen. Siehe @ref{Aufruf von guix shell,,, guix.de, Referenzhandbuch zu GNU Guix} für eine Referenz der möglichen Optionen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3033
+#: doc/guix-cookbook.texi:3335
msgid "The following snippet spawns a minimal shell process with most namespaces unshared from the system. The current working directory is visible to the process, but anything else on the file system is unavailable. This extreme isolation can be very useful when you want to rule out any sort of interference from environment variables, globally installed libraries, or configuration files."
msgstr "Folgende Befehle legen einen minimalen Shell-Prozess an, bei dem die meisten Namensräume vom übrigen System getrennt sind. Das aktuelle Arbeitsverzeichnis bleibt für den Prozess sichtbar, aber das restliche Dateisystem ist unzugänglich. Diese äußerste Isolation kann sehr hilfreich sein, wenn Sie jeglichen Einfluss durch Umgebungsvariable, global installierte Bibliotheken oder Konfigurationsdateien ausschließen möchten."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3036
+#: doc/guix-cookbook.texi:3338
#, no-wrap
msgid "guix shell --container\n"
msgstr "guix shell --container\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3043
+#: doc/guix-cookbook.texi:3345
msgid "It is a bleak environment, barren, desolate. You will find that not even the GNU coreutils are available here, so to explore this deserted wasteland you need to use built-in shell commands. Even the usually gigantic @file{/gnu/store} directory is reduced to a faint shadow of itself."
msgstr "Diese Umgebung ist kahl und leer. Sie haben in der brachen Umgebung nicht einmal die GNU coreutils und müssen zu ihrer Erkundung mit den in die Shell eingebauten Werkzeugen vorliebnehmen. Selbst das Verzeichnis @file{/gnu/store} hat seine für gewöhnlich gigantischen Ausmaße verloren und ist nur mehr ein Schatten seiner selbst."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3053
+#: doc/guix-cookbook.texi:3355
#, no-wrap
msgid ""
"$ echo /gnu/store/*\n"
@@ -5559,41 +6224,41 @@ msgstr ""
"/gnu/store/…-readline-8.1.1\n"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:3055
+#: doc/guix-cookbook.texi:3357
#, no-wrap
msgid "exiting a container"
msgstr "Container verlassen"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3059
+#: doc/guix-cookbook.texi:3361
msgid "There isn't much you can do in an environment like this other than exiting it. You can use @key{^D} or @command{exit} to terminate this limited shell environment."
msgstr "In einer solchen Umgebung gibt es nichts für Sie zu tun außer die Umgebung wieder zu verlassen. Das geht, indem Sie @key{^D} drücken oder @command{exit} aufrufen, womit die eingeschränkte Shell-Umgebung ihr Ende findet."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:3060
+#: doc/guix-cookbook.texi:3362
#, no-wrap
msgid "exposing directories, container"
msgstr "Verzeichnisse zugänglich machen, Container"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:3061
+#: doc/guix-cookbook.texi:3363
#, no-wrap
msgid "sharing directories, container"
msgstr "geteilte Verzeichnisse, Container"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:3062
+#: doc/guix-cookbook.texi:3364
#, no-wrap
msgid "mapping locations, container"
msgstr "Freigaben, Container"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3071
+#: doc/guix-cookbook.texi:3373
msgid "You can make other directories available inside of the container environment; use @option{--expose=DIRECTORY} to bind-mount the given directory as a read-only location inside the container, or use @option{--share=DIRECTORY} to make the location writable. With an additional mapping argument after the directory name you can control the name of the directory inside the container. In the following example we map @file{/etc} on the host system to @file{/the/host/etc} inside a container in which the GNU coreutils are installed."
msgstr "Sie können zusätzliche Verzeichnisse in der Container-Umgebung zugänglich machen. Verwenden Sie dazu @option{--expose=VERZEICHNIS} für eine Verzeichniseinbindung nur mit Lesezugriff innerhalb des Containers oder verwenden Sie @option{--share=VERZEICHNIS} für Schreibzugriff. Mit einem zusätzlichen Argument nach dem Verzeichnisnamen können Sie den Namen festlegen, der dem Verzeichnis innerhalb des Containers zugeordnet wird. Folgendes Beispiel zeigt, wie Sie das Verzeichnis @file{/etc} aus dem Wirtssystem auf @file{/das/wirtssystem/etc} innerhalb eines Containers abbilden, in dem die GNU coreutils installiert sind."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3075
+#: doc/guix-cookbook.texi:3377
#, no-wrap
msgid ""
"$ guix shell --container --share=/etc=/the/host/etc coreutils\n"
@@ -5603,34 +6268,34 @@ msgstr ""
"$ ls /das/wirtssystem/etc\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3082
+#: doc/guix-cookbook.texi:3384
msgid "Similarly, you can prevent the current working directory from being mapped into the container with the @option{--no-cwd} option. Another good idea is to create a dedicated directory that will serve as the container's home directory, and spawn the container shell from that directory."
msgstr "Gleichermaßen können Sie verhindern, dass das aktuelle Arbeitsverzeichnis eine Zuordnung in den Container bekommt, indem Sie die Befehlszeilenoption @option{--no-cwd} angeben. Es ist eine gute Idee, ein Verzeichnis anzulegen, das innerhalb des Containers das Persönliche Verzeichnis (auch „Home-Verzeichnis“) ist. Aus diesem heraus lassen Sie die Shell für den Container starten."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:3083
+#: doc/guix-cookbook.texi:3385
#, no-wrap
msgid "hide system libraries, container"
msgstr "Systembibliotheken verbergen, Container"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:3084
+#: doc/guix-cookbook.texi:3386
#, no-wrap
msgid "avoid ABI mismatch, container"
msgstr "inkompatible ABI beheben, Container"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3094
+#: doc/guix-cookbook.texi:3396
msgid "On a foreign system a container environment can be used to compile software that cannot possibly be linked with system libraries or with the system's compiler toolchain. A common use-case in a research context is to install packages from within an R session. Outside of a container environment there is a good chance that the foreign compiler toolchain and incompatible system libraries are found first, resulting in incompatible binaries that cannot be used by R. In a container shell this problem disappears, as system libraries and executables simply aren't available due to the unshared @code{mount} namespace."
msgstr "Auf einem fremden System ist es möglich, in einer Container-Umgebung Software zu kompilieren, die mit den Bibliotheken des Systems oder mit dessen Compiler-Toolchain inkompatibel ist. In der Forschung kommt es häufiger vor, dass man in einer R-Sitzung Pakete installieren möchte. Ohne Container ist es gut möglich, dass die Compiler-Toolchain des Fremdsystems und dessen inkompatible Bibliotheken Vorrang haben und die Binärdateien @emph{nicht} zusammenpassen und in R @emph{nicht} benutzt werden können. In einer Container-Shell gibt es das Problem @emph{nicht}, denn die Bibliotheken und Programme des äußeren Systems sind schlicht gar nicht da, weil der @code{mount}-Namensraum getrennt ist."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3097
+#: doc/guix-cookbook.texi:3399
msgid "Let's take a comprehensive manifest providing a comfortable development environment for use with R:"
msgstr "Schauen wir uns ein umfassendes Manifest für eine komfortable R-Entwicklungsumgebung an:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3101
+#: doc/guix-cookbook.texi:3403
#, no-wrap
msgid ""
"(specifications->manifest\n"
@@ -5642,7 +6307,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3106
+#: doc/guix-cookbook.texi:3408
#, no-wrap
msgid ""
" ;; base packages\n"
@@ -5658,7 +6323,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3113
+#: doc/guix-cookbook.texi:3415
#, no-wrap
msgid ""
" ;; Common command line tools lest the container is too empty.\n"
@@ -5679,7 +6344,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3116
+#: doc/guix-cookbook.texi:3418
#, no-wrap
msgid ""
" ;; R markdown tools\n"
@@ -5691,7 +6356,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3132
+#: doc/guix-cookbook.texi:3434
#, no-wrap
msgid ""
" ;; Toolchain and common libraries for \"install.packages\"\n"
@@ -5727,12 +6392,12 @@ msgstr ""
" \"zlib\"))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3138
+#: doc/guix-cookbook.texi:3440
msgid "Let's use this to run R inside a container environment. For convenience we share the @code{net} namespace to use the host system's network interfaces. Now we can build R packages from source the traditional way without having to worry about ABI mismatch or incompatibilities."
msgstr "Nehmen wir dieses Manifest und richten uns eine Container-Umgebung ein, in der wir R ausführen. Der Einfachheit halber wollen wir den @code{net}-Namensraum teilen und bekommen Zugriff auf die Netzwerkschnittstellen des Wirtssystems. Damit können wir R-Pakete auf traditionelle Weise aus ihrem Quellcode erstellen, ohne uns um inkompatible ABIs oder sonstige Inkompatibilitäten sorgen zu müssen."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3141
+#: doc/guix-cookbook.texi:3443
#, no-wrap
msgid ""
"$ guix shell --container --network --manifest=manifest.scm -- R\n"
@@ -5742,7 +6407,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3154
+#: doc/guix-cookbook.texi:3456
#, no-wrap
msgid ""
"R version 4.2.1 (2022-06-23) -- \"Funny-Looking Kid\"\n"
@@ -5774,7 +6439,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3159
+#: doc/guix-cookbook.texi:3461
#, no-wrap
msgid ""
"The downloaded source packages are in\n"
@@ -5788,32 +6453,32 @@ msgstr ""
"> # success!\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3167
+#: doc/guix-cookbook.texi:3469
msgid "Using container shells is fun, but they can become a little cumbersome when you want to go beyond just a single interactive process. Some tasks become a lot easier when they sit on the rock solid foundation of a proper Guix System and its rich set of system services. The next section shows you how to launch a complete Guix System inside of a container."
msgstr "Containerisierte Shells einzusetzen ist lustig, aber wenn man mehr will als einen einzelnen interaktiven Prozess, werden sie ein bisschen umständlich. Manche Aufgaben sind einfach leichter zu lösen, wenn Sie sie auf einem ordentlichen Guix-System als festem Fundament aufbauen. Dann bekämen Sie Zugriff auf das reichhaltige Angebot von Systemdiensten. Im nächsten Abschnitt wird Ihnen gezeigt, wie Sie eine vollständige Instanz von Guix System in einem Container starten können."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3181
+#: doc/guix-cookbook.texi:3483
msgid "The Guix System provides a wide array of interconnected system services that are configured declaratively to form a dependable stateless GNU System foundation for whatever tasks you throw at it. Even when using Guix on a foreign distribution you can benefit from the design of Guix System by running a system instance as a container. Using the same kernel features of unshared namespaces mentioned in the previous section, the resulting Guix System instance is isolated from the host system and only shares file system locations that you explicitly declare."
msgstr "Guix System stellt eine breite Palette von ineinandergreifenden Systemdiensten zur Verfügung, welche Sie deklarativ konfigurieren, um ein verlässliches und zustandsloses GNU-System als Fundament für Ihre weiteren Aufgaben zu haben. Selbst wenn Sie Guix auf einer Fremddistribution verwenden, können Sie von diesem Aufbau profitieren, indem Sie so ein System in einem Container starten. Dabei greifen wir auf die Kernel-Funktionalität getrennter Namensräume zurück, die im vorigen Abschnitt genannt wurde. Durch sie wird die erstellte Guix-System-Instanz vom Wirtssystem isoliert und nur die Orte im Dateisystem freigegeben, die Sie ausdrücklich deklariert haben."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3192
+#: doc/guix-cookbook.texi:3494
msgid "A Guix System container differs from the shell process created by @command{guix shell --container} in a number of important ways. While in a container shell the containerized process is a Bash shell process, a Guix System container runs the Shepherd as PID 1. In a system container all system services (@pxref{Services,,, guix, GNU Guix Reference Manual}) are set up just as they would be on a Guix System in a virtual machine or on bare metal---this includes daemons managed by the GNU@tie{}Shepherd (@pxref{Shepherd Services,,, guix, GNU Guix Reference Manual}) as well as other kinds of extensions to the operating system (@pxref{Service Composition,,, guix, GNU Guix Reference Manual})."
msgstr "Der Unterschied zwischen einem Guix-System-Container und einem Shell-Prozess, wie ihn @command{guix shell --container} anlegt, besteht in mehreren wichtigen Einzelheiten. Während in einem Shell-Container der containerisierte Prozess ein Bash-Shell-Prozess ist, wird in einem Guix-System-Container Shepherd als PID 1 ausgeführt. In einem Systemcontainer werden all die Systemdienste (siehe @ref{Dienste,,, guix.de, Referenzhandbuch zu GNU Guix}) auf dieselbe Weise eingerichtet wie wenn Sie Guix System in einer virtuellen Maschine oder auf echter Hardware booten@tie{}– auch die Daemons, die durch GNU@tie{}Shepherd gestartet werden (siehe @ref{Shepherd-Dienste,,, guix.de, Referenzhandbuch zu GNU Guix}) und andere Arten, das System zu erweitern (siehe @ref{Dienstkompositionen,,, guix.de, Referenzhandbuch zu GNU Guix}), sind die gleichen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3199
+#: doc/guix-cookbook.texi:3501
msgid "The perceived increase in complexity of running a Guix System container is easily justified when dealing with more complex applications that have higher or just more rigid requirements on their execution contexts---configuration files, dedicated user accounts, directories for caches or log files, etc. In Guix System the demands of this kind of software are satisfied through the deployment of system services."
msgstr "Dass ein Guix-System-Container eine Zunahme an Komplexität bedeute, lässt sich leicht rechtfertigen, wenn Sie mit komplexeren Anwendungen zu tun haben und deren höheren oder engeren Anforderungen an ihren Ausführungskontext@tie{}– an Konfigurationsdateien, eigene Benutzerkonten, Verzeichnisse für Zwischenspeicher oder Protokolldateien, etc. In Guix System werden solche Anforderungen einer Software durch das Aufspielen von Systemdiensten erfüllt."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3212
+#: doc/guix-cookbook.texi:3514
msgid "A good example might be a PostgreSQL database server. Much of the complexity of setting up such a database server is encapsulated in this deceptively short service declaration:"
msgstr "Ein geeignetes Beispiel wäre ein PostgreSQL-Datenbankserver. Die Komplexität, ihn aufzusetzen, können Sie großenteils in einer verführerisch kurzen Dienstdeklaration einfangen:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3217
+#: doc/guix-cookbook.texi:3519
#, no-wrap
msgid ""
"(service postgresql-service-type\n"
@@ -5825,12 +6490,12 @@ msgstr ""
" (postgresql postgresql-14)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3221
+#: doc/guix-cookbook.texi:3523
msgid "A complete operating system declaration for use with a Guix System container would look something like this:"
msgstr "Eine vollumfängliche Betriebssystemdeklaration, die Sie für einen Guix-System-Container verwenden könnten, sähe in etwa so aus:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3226
+#: doc/guix-cookbook.texi:3528
#, no-wrap
msgid ""
"(use-modules (gnu))\n"
@@ -5844,7 +6509,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3260
+#: doc/guix-cookbook.texi:3562
#, no-wrap
msgid ""
"(operating-system\n"
@@ -5916,17 +6581,17 @@ msgstr ""
" %base-services)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3268
+#: doc/guix-cookbook.texi:3570
msgid "With @code{postgresql-role-service-type} we define a role ``test'' and create a matching database, so that we can test right away without any further manual setup. The @code{postgresql-config-file} settings allow a client from IP address 10.0.0.1 to connect without requiring authentication---a bad idea in production systems, but convenient for this example."
msgstr "Mit @code{postgresql-role-service-type} definieren wir eine Rolle namens „test“ und lassen eine zugehörige Datenbank erzeugen, so dass wir gleich mit dem Testen anfangen können ohne weitere manuelle Schritte. Mit den Einstellungen in @code{postgresql-config-file} wird einem Client mit der IP-Adresse 10.0.0.1 die Berechtigung verliehen, eine Verbindung zur Datenbank aufzubauen, ohne sich authentisieren zu müssen@tie{}– eigentlich keine gute Idee bei Produktivsystemen, aber für dieses Beispiel geeignet."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3274
+#: doc/guix-cookbook.texi:3576
msgid "Let's build a script that will launch an instance of this Guix System as a container. Write the @code{operating-system} declaration above to a file @file{os.scm} and then use @command{guix system container} to build the launcher. (@pxref{Invoking guix system,,, guix, GNU Guix Reference Manual})."
msgstr "Erstellen wir uns ein Skript, das eine Instanz dieses Guix-Systems als Container anlegt. Nachdem Sie obige Betriebssystemdeklaration mit dem @code{operating-system} in eine Datei @file{os.scm} speichern, entsteht das Startprogramm für den Container durch einen Aufruf von @command{guix system container} (siehe @ref{Aufruf von guix system,,, guix.de, Referenzhandbuch zu GNU Guix})."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3282
+#: doc/guix-cookbook.texi:3584
#, no-wrap
msgid ""
"$ guix system container os.scm\n"
@@ -5944,12 +6609,12 @@ msgstr ""
"/gnu/store/…-run-container\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3288
+#: doc/guix-cookbook.texi:3590
msgid "Now that we have a launcher script we can run it to spawn the new system with a running PostgreSQL service. Note that due to some as yet unresolved limitations we need to run the launcher as the root user, for example with @command{sudo}."
msgstr "Jetzt, wo unser Startprogramm fertig ist, können wir es ausführen und ein neues System mit einem laufenden PostgreSQL-Dienst entschlüpft. Anmerkung: Aufgrund derzeit noch ungelöster Einschränkungen kann das Startprogramm nur mit Administratorrechten ausgeführt werden, zum Beispiel mit @command{sudo}."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3293
+#: doc/guix-cookbook.texi:3595
#, no-wrap
msgid ""
"$ sudo /gnu/store/@dots{}-run-container\n"
@@ -5961,12 +6626,12 @@ msgstr ""
"…\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3300
+#: doc/guix-cookbook.texi:3602
msgid "Background the process with @key{Ctrl-z} followed by @command{bg}. Note the process ID in the output; we will need it to connect to the container later. You know what? Let's try attaching to the container right now. We will use @command{nsenter}, a tool provided by the @code{util-linux} package:"
msgstr "Versetzen Sie den Prozess in den Hintergrund, indem Sie @key{Strg-z} drücken und danach @command{bg} eingeben. Achten Sie auf die ausgegebene Prozesskennung (PID); wir brauchen sie später noch, um uns mit dem Container zu verbinden. Wissen Sie was? Schauen wir uns doch gleich an, wie Sie eine Verbindung zum Container herstellen. Dazu benutzen wir @command{nsenter}, ein Werkzeug, das im Paket @code{util-linux} zu finden ist:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3313
+#: doc/guix-cookbook.texi:3615
#, no-wrap
msgid ""
"$ guix shell util-linux\n"
@@ -5994,28 +6659,28 @@ msgstr ""
"root@@container /# exit\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3316
+#: doc/guix-cookbook.texi:3618
msgid "The PostgreSQL service is running in the container!"
msgstr "Wie Sie sehen, läuft der PostgreSQL-Dienst im Container!"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:3320
+#: doc/guix-cookbook.texi:3622
#, no-wrap
msgid "container networking"
msgstr "Container-Netzwerkverbindung"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3326
+#: doc/guix-cookbook.texi:3628
msgid "What good is a Guix System running a PostgreSQL database service as a container when we can only talk to it with processes originating in the container? It would be much better if we could talk to the database over the network."
msgstr "Was nützt ein Guix System mit laufendem PostgreSQL-Datenbankdienst in einem Container, wenn es nur mit Prozessen reden kann, die ihren Ursprung in dem Container haben? Viel besser wäre es doch, könnten wir die Datenbank über das Netzwerk ansprechen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3332
+#: doc/guix-cookbook.texi:3634
msgid "The easiest way to do this is to create a pair of connected virtual Ethernet devices (known as @code{veth}). We move one of the devices (@code{ceth-test}) into the @code{net} namespace of the container and leave the other end (@code{veth-test}) of the connection on the host system."
msgstr "Am einfachsten geht das mit einem Paar verbundener virtueller Ethernet-Geräte (bekannt als @code{veth}). Wir schieben das eine Gerät (@code{ceth-test}) in den @code{net}-Namensraum des Containers und lassen das andere Ende (@code{veth-test}) der Verbindung auf dem Wirtssystem."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3338
+#: doc/guix-cookbook.texi:3640
#, no-wrap
msgid ""
"pid=5983\n"
@@ -6031,7 +6696,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3341
+#: doc/guix-cookbook.texi:3643
#, no-wrap
msgid ""
"# Attach the new net namespace \"guix-test\" to the container PID.\n"
@@ -6043,7 +6708,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3344
+#: doc/guix-cookbook.texi:3646
#, no-wrap
msgid ""
"# Create the pair of devices\n"
@@ -6055,7 +6720,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3347
+#: doc/guix-cookbook.texi:3649
#, no-wrap
msgid ""
"# Move the client device into the container's net namespace\n"
@@ -6065,12 +6730,12 @@ msgstr ""
"sudo ip link set $client netns $ns\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3350
+#: doc/guix-cookbook.texi:3652
msgid "Then we configure the host side:"
msgstr "Anschließend konfigurieren wir die Wirtsseite:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3354
+#: doc/guix-cookbook.texi:3656
#, no-wrap
msgid ""
"sudo ip link set $host up\n"
@@ -6080,12 +6745,12 @@ msgstr ""
"sudo ip addr add 10.0.0.1/24 dev $host\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3357
+#: doc/guix-cookbook.texi:3659
msgid "@dots{}and then we configure the client side:"
msgstr "… und dann konfigurieren wir die Clientseite:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3362
+#: doc/guix-cookbook.texi:3664
#, no-wrap
msgid ""
"sudo ip netns exec $ns ip link set lo up\n"
@@ -6097,12 +6762,12 @@ msgstr ""
"sudo ip netns exec $ns ip addr add 10.0.0.2/24 dev $client\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3368
+#: doc/guix-cookbook.texi:3670
msgid "At this point the host can reach the container at IP address 10.0.0.2, and the container can reach the host at IP 10.0.0.1. This is all we need to talk to the database server inside the container from the host system on the outside."
msgstr "Zu diesem Zeitpunkt kann der Wirt den Container unter der IP-Adresse 10.0.0.2 erreichen und der Container kann seinerseits den Wirt auf IP-Adresse 10.0.0.1 erreichen. Das war alles, um mit dem Datenbankdienst, der im Container steckt, vom außen liegenden Wirtssystem aus reden zu können."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3373
+#: doc/guix-cookbook.texi:3675
#, no-wrap
msgid ""
"$ psql -h 10.0.0.2 -U test\n"
@@ -6116,7 +6781,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3383
+#: doc/guix-cookbook.texi:3685
#, no-wrap
msgid ""
"test=> CREATE TABLE hello (who TEXT NOT NULL);\n"
@@ -6140,12 +6805,12 @@ msgstr ""
"(1 row)\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3386
+#: doc/guix-cookbook.texi:3688
msgid "Now that we're done with this little demonstration let's clean up:"
msgstr "Jetzt, wo wir mit der kurzen Demonstration fertig sind, geht es an’s Aufräumen:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3391
+#: doc/guix-cookbook.texi:3693
#, no-wrap
msgid ""
"sudo kill $pid\n"
@@ -6157,112 +6822,122 @@ msgstr ""
"sudo ip link del $host\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3403
+#: doc/guix-cookbook.texi:3705
msgid "Guix is a functional package manager that offers many features beyond what more traditional package managers can do. To the uninitiated, those features might not have obvious use cases at first. The purpose of this chapter is to demonstrate some advanced package management concepts."
msgstr "Guix ist ein funktionales Paketverwaltungsprogramm, das weit mehr Funktionalitäten als traditionelle Paketverwalter anbietet. Für nicht Eingeweihte sind deren Anwendungsfälle nicht sofort ersichtlich. Dieses Kapitel ist dazu da, manche fortgeschrittenen Paketverwaltungskonzepte zu demonstrieren."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3406
+#: doc/guix-cookbook.texi:3708
msgid "@pxref{Package Management,,, guix, GNU Guix Reference Manual} for a complete reference."
msgstr "Siehe @ref{Paketverwaltung,,, guix.de, Referenzhandbuch zu GNU Guix} für eine vollständige Referenz."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3417
-msgid "Guix provides a very useful feature that may be quite foreign to newcomers: @emph{profiles}. They are a way to group package installations together and all users on the same system are free to use as many profiles as they want."
-msgstr "Guix gibt uns eine sehr nützliche Funktionalität, die Neuankömmlingen sehr fremd sein dürfte: @emph{Profile}. Mit ihnen kann man Paketinstallationen zusammenfassen und jeder Benutzer desselben Systems kann so viele davon anlegen, wie sie oder er möchte."
+#: doc/guix-cookbook.texi:3719
+msgid "Guix provides a very useful feature that may be quite foreign to newcomers: @dfn{profiles}. They are a way to group package installations together and all users on the same system are free to use as many profiles as they want."
+msgstr "Guix gibt uns eine sehr nützliche Funktionalität, die Neuankömmlingen sehr fremd sein dürfte: @dfn{Profile}. Mit ihnen kann man Paketinstallationen zusammenfassen und jeder Benutzer desselben Systems kann so viele davon anlegen, wie sie oder er möchte."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3422
+#: doc/guix-cookbook.texi:3724
msgid "Whether you're a developer or not, you may find that multiple profiles bring you great power and flexibility. While they shift the paradigm somewhat compared to @emph{traditional package managers}, they are very convenient to use once you've understood how to set them up."
msgstr "Ob Sie ein Entwickler sind oder nicht, Sie dürften feststellen, dass mehrere Profile ein mächtiges Werkzeug sind, das Sie flexibler macht. Zwar ist es ein gewisser Paradigmenwechsel verglichen mit @emph{traditioneller Paketverwaltung}, doch sind sie sehr praktisch, sobald man im Umgang mit ihnen den Dreh ’raushat."
+#. type: quotation
+#: doc/guix-cookbook.texi:3729
+msgid "This section is an opinionated guide on the use of multiple profiles. It predates @command{guix shell} and its fast profile cache (@pxref{Invoking guix shell,,, guix, GNU Guix Reference Manual})."
+msgstr "Die Anleitung in diesem Abschnitt setzt sich meinungsstark für die Nutzung mehrerer Profile ein. Als sie geschrieben wurde, gab es @command{guix shell} und dessen schnelles Zwischenspeichern der damit angelegten Profile noch nicht (siehe @ref{Aufruf von guix shell,,, guix.de, Referenzhandbuch zu GNU Guix})."
+
+#. type: quotation
+#: doc/guix-cookbook.texi:3733
+msgid "In many cases, you may find that using @command{guix shell} to set up the environment you need, when you need it, is less work that maintaining a dedicated profile. Your call!"
+msgstr "Oftmals dürfte es für Sie einfacher sein, mit @command{guix shell} die von Ihnen benötigten Umgebungen dann aufzusetzen, wenn Sie sie brauchen, statt dass Sie sich der Pflege eines dedizierten Profils annehmen müssen. Es ist Ihre Entscheidung!"
+
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3428
+#: doc/guix-cookbook.texi:3740
msgid "If you are familiar with Python's @samp{virtualenv}, you can think of a profile as a kind of universal @samp{virtualenv} that can hold any kind of software whatsoever, not just Python software. Furthermore, profiles are self-sufficient: they capture all the runtime dependencies which guarantees that all programs within a profile will always work at any point in time."
msgstr "Wenn Ihnen Pythons @samp{virtualenv} vertraut ist, können Sie sich ein Profil als eine Art universelles @samp{virtualenv} vorstellen, das jede Art von Software enthalten kann und nicht nur Python-Software. Des Weiteren sind Profile selbstversorgend: Sie schließen alle Laufzeitabhängigkeiten ein und garantieren somit, dass alle Programme innerhalb eines Profils stets zu jeder Zeit funktionieren werden."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3430
+#: doc/guix-cookbook.texi:3742
msgid "Multiple profiles have many benefits:"
msgstr "Mehrere Profile bieten viele Vorteile:"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3434
+#: doc/guix-cookbook.texi:3746
msgid "Clean semantic separation of the various packages a user needs for different contexts."
msgstr "Klare semantische Trennung der verschiedenen Pakete, die ein Nutzer für verschiedene Kontexte braucht."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3438
+#: doc/guix-cookbook.texi:3750
msgid "Multiple profiles can be made available into the environment either on login or within a dedicated shell."
msgstr "Mehrere Profile können in der Umgebung verfügbar gemacht werden, entweder beim Anmelden oder in einer eigenen Shell."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3442
+#: doc/guix-cookbook.texi:3754
msgid "Profiles can be loaded on demand. For instance, the user can use multiple shells, each of them running different profiles."
msgstr "Profile können bei Bedarf geladen werden. Zum Beispiel kann der Nutzer mehrere Unter-Shells benutzen, von denen jede ein anderes Profil ausführt."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3447
+#: doc/guix-cookbook.texi:3759
msgid "Isolation: Programs from one profile will not use programs from the other, and the user can even install different versions of the same programs to the two profiles without conflict."
msgstr "Isolierung: Programme aus dem einen Profil werden keine Programme aus dem anderen benutzen, und der Nutzer kann sogar verschiedene Versionen desselben Programms in die zwei Profile installieren, ohne dass es zu Konflikten kommt."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3451
+#: doc/guix-cookbook.texi:3763
msgid "Deduplication: Profiles share dependencies that happens to be the exact same. This makes multiple profiles storage-efficient."
msgstr "Deduplizierung: Profile teilen sich Abhängigkeiten, wenn sie genau gleich sind. Dadurch sind mehrere Profile speichereffizient."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3459
+#: doc/guix-cookbook.texi:3771
msgid "Reproducible: when used with declarative manifests, a profile can be fully specified by the Guix commit that was active when it was set up. This means that the exact same profile can be @uref{https://guix.gnu.org/blog/2018/multi-dimensional-transactions-and-rollbacks-oh-my/, set up anywhere and anytime}, with just the commit information. See the section on @ref{Reproducible profiles}."
msgstr "Reproduzierbar: Wenn man dafür deklarative Manifeste benutzt, kann ein Profil allein durch den bei dessen Einrichtung aktiven Guix-Commit eindeutig spezifiziert werden. Das bedeutet, dass man genau dasselbe Profil @uref{https://guix.gnu.org/blog/2018/multi-dimensional-transactions-and-rollbacks-oh-my/, jederzeit und überall einrichten kann} und man dafür nur die Commit-Informationen braucht. Siehe den Abschnitt über @ref{Reproduzierbare Profile}."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3463
+#: doc/guix-cookbook.texi:3775
msgid "Easier upgrades and maintenance: Multiple profiles make it easy to keep package listings at hand and make upgrades completely frictionless."
msgstr "Leichtere Aktualisierung und Wartung: Mit mehreren Profilen ist es ein Leichtes, eine Liste von Paketen zur Hand zu haben und Aktualisierungen völlig reibungslos ablaufen zu lassen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3466
+#: doc/guix-cookbook.texi:3778
msgid "Concretely, here follows some typical profiles:"
msgstr "Konkret wären diese hier typische Profile:"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3470
+#: doc/guix-cookbook.texi:3782
msgid "The dependencies of a project you are working on."
msgstr "Die Abhängigkeiten des Projekts, an dem Sie arbeiten."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3473
+#: doc/guix-cookbook.texi:3785
msgid "Your favourite programming language libraries."
msgstr "Die Bibliotheken Ihrer Lieblingsprogrammiersprache."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3476
+#: doc/guix-cookbook.texi:3788
msgid "Laptop-specific programs (like @samp{powertop}) that you don't need on a desktop."
msgstr "Programme nur für Laptops (wie @samp{powertop}), für die Sie auf einem „Desktop“-Rechner keine Verwendung haben."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3480
+#: doc/guix-cookbook.texi:3792
msgid "@TeX{}live (this one can be really useful when you need to install just one package for this one document you've just received over email)."
msgstr "@TeX{}live (das kann wirklich praktisch sein, wenn Sie nur ein einziges Paket für dieses eine Dokument installieren müssen, das Ihnen jemand in einer E-Mail geschickt hat)."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3483
+#: doc/guix-cookbook.texi:3795
msgid "Games."
msgstr "Spiele."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3486
+#: doc/guix-cookbook.texi:3798
msgid "Let's dive in the set up!"
msgstr "Tauchen wir ein in deren Einrichtung!"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3501
+#: doc/guix-cookbook.texi:3813
msgid "A Guix profile can be set up @i{via} a @dfn{manifest}. A manifest is a snippet of Scheme code that specifies the set of packages you want to have in your profile; it looks like this:"
msgstr "Ein Guix-Profil kann über ein @dfn{Manifest} eingerichtet werden. Ein Manifest ist ein in Scheme geschriebenes Codeschnipsel, mit dem die Pakete spezifiziert werden, die Sie in Ihrem Profil haben möchten. Das sieht etwa so aus:"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3511
+#: doc/guix-cookbook.texi:3823
#, no-wrap
msgid ""
"(specifications->manifest\n"
@@ -6284,17 +6959,17 @@ msgstr ""
" \"paket-N\"))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3515
+#: doc/guix-cookbook.texi:3827
msgid "@xref{Writing Manifests,,, guix, GNU Guix Reference Manual}, for more information about the syntax."
msgstr "Siehe @ref{Manifeste verfassen,,, guix.de, Referenzhandbuch zu GNU Guix} für mehr Informationen zur Syntax."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3517
+#: doc/guix-cookbook.texi:3829
msgid "We can create a manifest specification per profile and install them this way:"
msgstr "Wir können eine Manifestspezifikation für jedes Profil schreiben und es auf diese Weise installieren:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3522
+#: doc/guix-cookbook.texi:3834
#, no-wrap
msgid ""
"GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles\n"
@@ -6306,38 +6981,38 @@ msgstr ""
"guix package --manifest=/pfad/zu/guix-my-project-manifest.scm --profile=\"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3526
+#: doc/guix-cookbook.texi:3838
msgid "Here we set an arbitrary variable @samp{GUIX_EXTRA_PROFILES} to point to the directory where we will store our profiles in the rest of this article."
msgstr "Hierbei haben wir eine beliebig benannte Variable @samp{GUIX_EXTRA_PROFILES} eingerichtet, die auf das Verzeichnis verweist, wo wir unsere Profile für den Rest dieses Artikels speichern wollen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3532
+#: doc/guix-cookbook.texi:3844
msgid "Placing all your profiles in a single directory, with each profile getting its own sub-directory, is somewhat cleaner. This way, each sub-directory will contain all the symlinks for precisely one profile. Besides, ``looping over profiles'' becomes obvious from any programming language (e.g.@: a shell script) by simply looping over the sub-directories of @samp{$GUIX_EXTRA_PROFILES}."
msgstr "Wenn Sie all Ihre Profile in ein einzelnes Verzeichnis legen und jedes Profil ein Unterverzeichnis darin bekommt, ist die Organisation etwas verständlicher. Dadurch wird jedes Unterverzeichnis all die symbolischen Verknüpfungen für genau ein Profil enthalten. Außerdem wird es von jeder Programmiersprache aus einfach, eine „Schleife über die Profile“ zu schreiben (z.B.@: in einem Shell-Skript), indem Sie es einfach die Unterverzeichnisse von @samp{$GUIX_EXTRA_PROFILES} in einer Schleife durchlaufen lassen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3534
+#: doc/guix-cookbook.texi:3846
msgid "Note that it's also possible to loop over the output of"
msgstr "Beachten Sie, dass man auch eine Schleife über die Ausgabe von"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3537
+#: doc/guix-cookbook.texi:3849
#, no-wrap
msgid "guix package --list-profiles\n"
msgstr "guix package --list-profiles\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3540
+#: doc/guix-cookbook.texi:3852
msgid "although you'll probably have to filter out @file{~/.config/guix/current}."
msgstr "schreiben kann, obwohl Sie dabei wahrscheinlich @file{~/.config/guix/current} herausfiltern wollen würden."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3542
+#: doc/guix-cookbook.texi:3854
msgid "To enable all profiles on login, add this to your @file{~/.bash_profile} (or similar):"
msgstr "Um bei der Anmeldung alle Profile zu aktivieren, fügen Sie dies in Ihre @file{~/.bash_profile} ein (oder etwas Entsprechendes):"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3552
+#: doc/guix-cookbook.texi:3864
#, no-wrap
msgid ""
"for i in $GUIX_EXTRA_PROFILES/*; do\n"
@@ -6359,17 +7034,17 @@ msgstr ""
"done\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3557
+#: doc/guix-cookbook.texi:3869
msgid "Note to Guix System users: the above reflects how your default profile @file{~/.guix-profile} is activated from @file{/etc/profile}, that latter being loaded by @file{~/.bashrc} by default."
msgstr "Eine Anmerkung für Nutzer von „Guix System“: Obiger Code entspricht dem, wie Ihr voreingestelltes Profil @file{~/.guix-profile} durch @file{/etc/profile} aktiviert wird, was nach Vorgabe durch @file{~/.bashrc} geladen wird."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3559
+#: doc/guix-cookbook.texi:3871
msgid "You can obviously choose to only enable a subset of them:"
msgstr "Selbstverständlich können Sie sich auch dafür entscheiden, nur eine Teilmenge zu aktivieren:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3569
+#: doc/guix-cookbook.texi:3881
#, no-wrap
msgid ""
"for i in \"$GUIX_EXTRA_PROFILES\"/my-project-1 \"$GUIX_EXTRA_PROFILES\"/my-project-2; do\n"
@@ -6391,50 +7066,50 @@ msgstr ""
"done\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3573
+#: doc/guix-cookbook.texi:3885
msgid "When a profile is off, it's straightforward to enable it for an individual shell without \"polluting\" the rest of the user session:"
msgstr "Wenn ein Profil abgeschaltet ist, lässt es sich mit Leichtigkeit für eine bestimmte Shell aktivieren, ohne die restliche Benutzersitzung zu „verschmutzen“:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3576
+#: doc/guix-cookbook.texi:3888
#, no-wrap
msgid "GUIX_PROFILE=\"path/to/my-project\" ; . \"$GUIX_PROFILE\"/etc/profile\n"
msgstr "GUIX_PROFILE=\"pfad/zu/my-project\" ; . \"$GUIX_PROFILE\"/etc/profile\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3583
+#: doc/guix-cookbook.texi:3895
msgid "The key to enabling a profile is to @emph{source} its @samp{etc/profile} file. This file contains shell code that exports the right environment variables necessary to activate the software contained in the profile. It is built automatically by Guix and meant to be sourced. It contains the same variables you would get if you ran:"
msgstr "Der Schlüssel dazu, wie man ein Profil aktiviert, ist dessen @samp{etc/profile}-Datei mit @command{source} zu laden. Diese Datei enthält einige Shell-Befehle, um die für das Aktivieren der Software im Profil nötigen Umgebungsvariablen zu exportieren. Die Datei wird durch Guix automatisch erzeugt, um mit @command{source} eingelesen zu werden. Sie enthält dieselben Variablen, die Sie nach Ausführung dieses Befehls bekämen:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3586
+#: doc/guix-cookbook.texi:3898
#, no-wrap
msgid "guix package --search-paths=prefix --profile=$my_profile\"\n"
msgstr "guix package --search-paths=prefix --profile=$my_profile\"\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3590
+#: doc/guix-cookbook.texi:3902
msgid "Once again, see (@pxref{Invoking guix package,,, guix, GNU Guix Reference Manual}) for the command line options."
msgstr "Siehe auch hier das @ref{Aufruf von guix package,,, guix.de, Referenzhandbuch zu GNU Guix} für die Befehlszeilenoptionen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3592
+#: doc/guix-cookbook.texi:3904
msgid "To upgrade a profile, simply install the manifest again:"
msgstr "Um ein Profil zu aktualisieren, installieren Sie das Manifest einfach nochmal:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3595
+#: doc/guix-cookbook.texi:3907
#, no-wrap
msgid "guix package -m /path/to/guix-my-project-manifest.scm -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n"
msgstr "guix package -m /pfad/zu/guix-my-project-manifest.scm -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3601
+#: doc/guix-cookbook.texi:3913
msgid "To upgrade all profiles, it's easy enough to loop over them. For instance, assuming your manifest specifications are stored in @file{~/.guix-manifests/guix-$profile-manifest.scm}, with @samp{$profile} being the name of the profile (e.g.@: \"project1\"), you could do the following in Bourne shell:"
msgstr "Um alle Profile zu aktualisieren, genügt es, sie in einer Schleife durchlaufen zu lassen. Nehmen wir zum Beispiel an, Ihre Manifestspezifikationen befinden sich in @file{~/.guix-manifests/guix-$profile-manifest.scm}, wobei @samp{$profile} der Name des Profils ist (z.B.@: „projekt1“), dann könnten Sie in der Bourne-Shell Folgendes tun:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3606
+#: doc/guix-cookbook.texi:3918
#, no-wrap
msgid ""
"for profile in \"$GUIX_EXTRA_PROFILES\"/*; do\n"
@@ -6446,34 +7121,34 @@ msgstr ""
"done\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3609
+#: doc/guix-cookbook.texi:3921
msgid "Each profile has its own generations:"
msgstr "Jedes Profil verfügt über seine eigenen Generationen:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3612
+#: doc/guix-cookbook.texi:3924
#, no-wrap
msgid "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --list-generations\n"
msgstr "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --list-generations\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3615
+#: doc/guix-cookbook.texi:3927
msgid "You can roll-back to any generation of a given profile:"
msgstr "Sie können es auf jede Generation zurücksetzen:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3618
+#: doc/guix-cookbook.texi:3930
#, no-wrap
msgid "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --switch-generations=17\n"
msgstr "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --switch-generations=17\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3622
+#: doc/guix-cookbook.texi:3934
msgid "Finally, if you want to switch to a profile without inheriting from the current environment, you can activate it from an empty shell:"
msgstr "Zu guter Letzt ist es möglich, zu einem Profil zu wechseln ohne die aktuelle Umgebung zu erben, indem Sie es aus einer leeren Shell heraus aktivieren:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3626
+#: doc/guix-cookbook.texi:3938
#, no-wrap
msgid ""
"env -i $(which bash) --login --noprofile --norc\n"
@@ -6483,58 +7158,58 @@ msgstr ""
". my-project/etc/profile\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3634
+#: doc/guix-cookbook.texi:3946
msgid "Activating a profile essentially boils down to exporting a bunch of environmental variables. This is the role of the @samp{etc/profile} within the profile."
msgstr "Das Aktivieren eines Profils bedeutet im Grunde, dass eine Menge Umgebungsvariabler exportiert wird. Diese Rolle fällt der @samp{etc/profile}-Datei innerhalb des Profils zu."
#. type: emph{#1}
-#: guix-git/doc/guix-cookbook.texi:3637
+#: doc/guix-cookbook.texi:3949
msgid "Note: Only the environmental variables of the packages that consume them will be set."
msgstr "Anmerkung: Nur diejenigen Umgebungsvariablen der sie gebrauchenden Pakete werden gesetzt."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3641
+#: doc/guix-cookbook.texi:3953
msgid "For instance, @samp{MANPATH} won't be set if there is no consumer application for man pages within the profile. So if you need to transparently access man pages once the profile is loaded, you've got two options:"
msgstr "Zum Beispiel wird kein @samp{MANPATH} gesetzt sein, wenn keine Anwendung im Profil diese „Man-Pages“ (Handbuchseiten) gebraucht. Wenn Sie also transparenten Zugriff auf Handbuchseiten brauchen, nachdem das Profil geladen wurde, dann gibt es zwei Möglichkeiten:"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3645
+#: doc/guix-cookbook.texi:3957
msgid "Either export the variable manually, e.g."
msgstr "Entweder Sie exportieren die Variablen von Hand, z.B."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3647
+#: doc/guix-cookbook.texi:3959
#, no-wrap
msgid "export MANPATH=/path/to/profile$@{MANPATH:+:@}$MANPATH\n"
msgstr "export MANPATH=/path/to/profile$@{MANPATH:+:@}$MANPATH\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3651
+#: doc/guix-cookbook.texi:3963
msgid "Or include @samp{man-db} to the profile manifest."
msgstr "Oder Sie schreiben @samp{man-db} in das Profilmanifest hinein."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3655
+#: doc/guix-cookbook.texi:3967
msgid "The same is true for @samp{INFOPATH} (you can install @samp{info-reader}), @samp{PKG_CONFIG_PATH} (install @samp{pkg-config}), etc."
msgstr "Das Gleiche gilt für @samp{INFOPATH} (Sie können @samp{info-reader} installieren), @samp{PKG_CONFIG_PATH} (installieren Sie @samp{pkg-config}), etc."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3660
+#: doc/guix-cookbook.texi:3972
msgid "What about the default profile that Guix keeps in @file{~/.guix-profile}?"
msgstr "Was ist mit dem Standardprofil, das Guix in @file{~/.guix-profile} aufbewahrt?"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3663
+#: doc/guix-cookbook.texi:3975
msgid "You can assign it the role you want. Typically you would install the manifest of the packages you want to use all the time."
msgstr "Sie können ihm die Rolle zuweisen, die Sie wollen. Normalerweise würden Sie das Manifest derjenigen Pakete installieren, die Sie ständig benutzen möchten."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3667
+#: doc/guix-cookbook.texi:3979
msgid "Alternatively, you could keep it ``manifest-less'' for throw-away packages that you would just use for a couple of days. This way makes it convenient to run"
msgstr "Alternativ können Sie es ohne Manifest für Wegwerfpakete benutzen, die Sie nur ein paar Tage lang benutzen wollen. Das macht es leicht,"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3671
+#: doc/guix-cookbook.texi:3983
#, no-wrap
msgid ""
"guix install package-foo\n"
@@ -6544,127 +7219,107 @@ msgstr ""
"guix upgrade paket-bar\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3674
+#: doc/guix-cookbook.texi:3986
msgid "without having to specify the path to a profile."
msgstr "auszuführen ohne den Pfad zu einem Profil festzulegen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3680
-msgid "Manifests are a convenient way to keep your package lists around and, say, to synchronize them across multiple machines using a version control system."
-msgstr "Manifeste sind eine bequeme Art, Ihre Paketlisten zur Hand zu haben und diese z.B.@: über mehrere Maschinen hinweg in einem Versionskontrollsystem zu synchronisieren."
+#: doc/guix-cookbook.texi:3994
+msgid "Manifests let you @dfn{declare} the set of packages you'd like to have in a profile (@pxref{Writing Manifests,,, guix, GNU Guix Reference Manual}). They are a convenient way to keep your package lists around and, say, to synchronize them across multiple machines using a version control system."
+msgstr "Mit Manifesten können Sie @dfn{deklarativ} angeben, welche Pakete Sie in Ihrem Profil haben möchten (siehe @ref{Manifeste verfassen,,, guix.de, Referenzhandbuch zu GNU Guix}). Sie sind eine bequeme Art, Ihre Paketlisten zur Hand zu haben und diese z.B.@: über mehrere Maschinen hinweg in einem Versionskontrollsystem zu synchronisieren."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3684
+#: doc/guix-cookbook.texi:3998
msgid "A common complaint about manifests is that they can be slow to install when they contain large number of packages. This is especially cumbersome when you just want get an upgrade for one package within a big manifest."
msgstr "Eine oft gehörte Beschwerde über Manifeste ist, dass es lange dauert, sie zu installieren, wenn sie viele Pakete enthalten. Das ist besonders hinderlich, wenn Sie nur ein einziges Paket in ein großes Manifest installieren möchten."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3689
+#: doc/guix-cookbook.texi:4003
msgid "This is one more reason to use multiple profiles, which happen to be just perfect to break down manifests into multiple sets of semantically connected packages. Using multiple, small profiles provides more flexibility and usability."
msgstr "Das ist ein weiteres Argument dafür, mehrere Profile zu benutzen, denn es stellt sich heraus, dass dieses Vorgehen perfekt für das Aufbrechen von Manifesten in mehrere Mengen semantisch verbundener Pakete geeignet ist. Mit mehreren, kleinen Profilen haben Sie mehr Flexibilität und Benutzerfreundlichkeit."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3691
+#: doc/guix-cookbook.texi:4005
msgid "Manifests come with multiple benefits. In particular, they ease maintenance:"
msgstr "Manifeste haben mehrere Vorteile. Insbesondere erleichtern sie die Wartung."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3699
+#: doc/guix-cookbook.texi:4013
msgid "When a profile is set up from a manifest, the manifest itself is self-sufficient to keep a ``package listing'' around and reinstall the profile later or on a different system. For ad-hoc profiles, we would need to generate a manifest specification manually and maintain the package versions for the packages that don't use the default version."
msgstr "Wenn ein Profil aus einem Manifest heraus eingerichtet wird, ist das Manifest selbst genug, um eine Liste der Pakete zur Verfügung zu haben und das Profil später auf einem anderen System zu installieren. Bei @i{ad-hoc}-Profilen müssten wir hingegen eine Manifestspezifikation von Hand schreiben und uns um die Paketversionen derjenigen Pakete kümmern, die nicht die vorgegebene Version verwenden."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3704
+#: doc/guix-cookbook.texi:4018
msgid "@code{guix package --upgrade} always tries to update the packages that have propagated inputs, even if there is nothing to do. Guix manifests remove this problem."
msgstr "Bei @code{guix package --upgrade} wird immer versucht, die Pakete zu aktualisieren, die propagierte Eingaben haben, selbst wenn es nichts zu tun gibt. Mit Guix-Manifesten fällt dieses Problem weg."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3710
+#: doc/guix-cookbook.texi:4024
msgid "When partially upgrading a profile, conflicts may arise (due to diverging dependencies between the updated and the non-updated packages) and they can be annoying to resolve manually. Manifests remove this problem altogether since all packages are always upgraded at once."
msgstr "Wenn man nur Teile eines Profils aktualisiert, kann es zu Konflikten kommen (weil die Abhängigkeiten zwischen aktualisierten und nicht aktualisierten Paketen voneinander abweichen), und es kann mühsam sein, diese Konflikte von Hand aufzulösen. Manifeste haben kein solches Problem, weil alle Pakete immer gleichzeitig aktualisiert werden."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3716
+#: doc/guix-cookbook.texi:4030
msgid "As mentioned above, manifests allow for reproducible profiles, while the imperative @code{guix install}, @code{guix upgrade}, etc. do not, since they produce different profiles every time even when they hold the same packages. See @uref{https://issues.guix.gnu.org/issue/33285, the related discussion on the matter}."
msgstr "Wie zuvor erwähnt, gewähren einem Manifeste reproduzierbare Profile, während die imperativen @code{guix install}, @code{guix upgrade}, etc.@: das nicht tun, weil sie jedes Mal ein anderes Profil ergeben, obwohl sie dieselben Pakete enthalten. Siehe die @uref{https://issues.guix.gnu.org/issue/33285, dieses Thema betreffende Diskussion}."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3724
+#: doc/guix-cookbook.texi:4038
msgid "Manifest specifications are usable by other @samp{guix} commands. For example, you can run @code{guix weather -m manifest.scm} to see how many substitutes are available, which can help you decide whether you want to try upgrading today or wait a while. Another example: you can run @code{guix pack -m manifest.scm} to create a pack containing all the packages in the manifest (and their transitive references)."
msgstr "Manifestspezifikationen können von anderen @samp{guix}-Befehlen benutzt werden. Zum Beispiel können Sie @code{guix weather -m manifest.scm} ausführen, um zu sehen, wie viele Substitute verfügbar sind, was Ihnen bei der Entscheidung helfen kann, ob Sie heute schon eine Aktualisierung durchführen oder lieber noch eine Weile warten möchten. Ein anderes Beispiel: Sie können mit @code{guix pack -m manifest.scm} ein Bündel erzeugen, das alle Pakete im Manifest enthält (mitsamt derer transitiven Referenzen)."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3728
+#: doc/guix-cookbook.texi:4042
msgid "Finally, manifests have a Scheme representation, the @samp{<manifest>} record type. They can be manipulated in Scheme and passed to the various Guix @uref{https://en.wikipedia.org/wiki/Api, APIs}."
msgstr "Zuletzt haben Manifeste auch eine Repräsentation in Scheme, nämlich den @samp{<manifest>}-Verbundstyp. Sie können in Scheme verarbeitet werden und an die verschiedenen @uref{https://de.wikipedia.org/wiki/Programmierschnittstelle, Guix-Programmierschnittstellen (APIs)} übergeben werden."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3736
-msgid "It's important to understand that while manifests can be used to declare profiles, they are not strictly equivalent: profiles have the side effect that they ``pin'' packages in the store, which prevents them from being garbage-collected (@pxref{Invoking guix gc,,, guix, GNU Guix Reference Manual}) and ensures that they will still be available at any point in the future."
-msgstr "Es ist wichtig, dass Sie verstehen, dass Manifeste zwar benutzt werden können, um Profile zu deklarieren, sie aber nicht ganz dasselbe wie Profile sind: Profile haben Nebenwirkungen. Sie setzen Pakete im Store fest, so dass sie nicht vom Müllsammler geholt werden (siehe @ref{Aufruf von guix gc,,, guix.de, Referenzhandbuch zu GNU Guix}) und stellen sicher, dass sie auch in Zukunft jederzeit verfügbar sein werden."
-
-#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3738
-msgid "Let's take an example:"
-msgstr "Schauen wir uns ein Beispiel an:"
-
-#. type: enumerate
-#: guix-git/doc/guix-cookbook.texi:3744
-msgid "We have an environment for hacking on a project for which there isn't a Guix package yet. We build the environment using a manifest, and then run @code{guix environment -m manifest.scm}. So far so good."
-msgstr "Wir haben eine Umgebung, in der wir an einem Projekt hacken können, für das es noch kein Guix-Paket gibt. Wir richten die Umgebung mit einem Manifest ein und führen dann @code{guix environment -m manifest.scm} aus. So weit so gut."
-
-#. type: enumerate
-#: guix-git/doc/guix-cookbook.texi:3750
-msgid "Many weeks pass and we have run a couple of @code{guix pull} in the mean time. Maybe a dependency from our manifest has been updated; or we may have run @code{guix gc} and some packages needed by our manifest have been garbage-collected."
-msgstr "Nach vielen Wochen haben wir in der Zwischenzeit schon ein paarmal @code{guix pull} laufen lassen. Vielleicht wurde eine Abhängigkeit aus unserem Manifest aktualisiert oder wir könnten @code{guix gc} ausgeführt haben, so dass manche Pakete, die von unserem Manifest gebraucht würden, vom Müllsammler geholt worden sind."
-
-#. type: enumerate
-#: guix-git/doc/guix-cookbook.texi:3755
-msgid "Eventually, we set to work on that project again, so we run @code{guix shell -m manifest.scm}. But now we have to wait for Guix to build and install stuff!"
-msgstr "Schließlich fangen wir wieder an, an dem Projekt zu arbeiten, also fÜhren wir @code{guix shell -m manifest.scm} aus. Aber jetzt müssen wir warten, bis Guix lauter Dinge erstellt und installiert hat!"
+#: doc/guix-cookbook.texi:4053
+msgid "It's important to understand that while manifests can be used to declare profiles, they are not strictly equivalent: profiles have the side effect that they ``pin'' packages in the store, which prevents them from being garbage-collected (@pxref{Invoking guix gc,,, guix, GNU Guix Reference Manual}) and ensures that they will still be available at any point in the future. The @command{guix shell} command also protects recently-used profiles from garbage collection; profiles that have not been used for a while may be garbage-collected though, along with the packages they refer to."
+msgstr "Es ist wichtig, dass Sie verstehen, dass Manifeste zwar benutzt werden können, um Profile zu deklarieren, sie aber nicht ganz dasselbe wie Profile sind: Profile haben Nebenwirkungen. Sie setzen Pakete im Store fest, so dass sie nicht vom Müllsammler geholt werden (siehe @ref{Aufruf von guix gc,,, guix.de, Referenzhandbuch zu GNU Guix}) und stellen sicher, dass sie auch in Zukunft jederzeit verfügbar sein werden. Wenn Sie den Befehl @command{guix shell} verwenden, werden damit erzeugte kürzlich verwendete Profile allerdings auch vor dem Müllsammler beschützt; Profile, die länger nicht verwendet werden, können jedoch zusammen mit ihren referenzierten Paketen von ihm gelöscht werden."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3761
-msgid "Ideally, we could spare the rebuild time. And indeed we can, all we need is to install the manifest to a profile and use @code{GUIX_PROFILE=/the/profile; . \"$GUIX_PROFILE\"/etc/profile} as explained above: this guarantees that our hacking environment will be available at all times."
-msgstr "Ideal wäre es, wenn wir uns die Zeit für die Neuerstellung sparen könnten. Und das können wir auch: Alles, was wir brauchen, ist, das Manifest in ein Profil zu installieren und @code{GUIX_PROFILE=/das/profil; . \"$GUIX_PROFILE\"/etc/profile} aufzurufen, wie oben erklärt. Dadurch haben wir die Garantie, dass unsere Hacking-Umgebung jederzeit zur Verfügung steht."
+#: doc/guix-cookbook.texi:4058
+msgid "To be 100% sure that a given profile will never be collected, install the manifest to a profile and use @code{GUIX_PROFILE=/the/profile; . \"$GUIX_PROFILE\"/etc/profile} as explained above: this guarantees that our hacking environment will be available at all times."
+msgstr "Wenn wir uns 100% sicher sein wollen, dass der Müllsammler ein bestimmtes Profil nicht sammelt, müssen wir das Manifest in ein Profil installieren und @code{GUIX_PROFILE=/das/profil; . \"$GUIX_PROFILE\"/etc/profile} aufrufen, wie oben erklärt. Dadurch haben wir die Garantie, dass unsere Hacking-Umgebung jederzeit zur Verfügung steht."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3764
+#: doc/guix-cookbook.texi:4061
msgid "@emph{Security warning:} While keeping old profiles around can be convenient, keep in mind that outdated packages may not have received the latest security fixes."
msgstr "@emph{Sicherheitswarnung:} Obwohl es angenehm sein kann, alte Profile zu behalten, sollten Sie daran denken, dass veraltete Pakete @emph{nicht} über die neuesten Sicherheitsbehebungen verfügen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3769
+#: doc/guix-cookbook.texi:4066
msgid "To reproduce a profile bit-for-bit, we need two pieces of information:"
msgstr "Um ein Profil Bit für Bit nachzubilden, brauchen wir zweierlei Informationen:"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3773
-msgid "a manifest,"
-msgstr "ein Manifest und"
+#: doc/guix-cookbook.texi:4070
+msgid "a manifest (@pxref{Writing Manifests,,, guix, GNU Guix Reference Manual});"
+msgstr "ein Manifest (siehe @ref{Manifeste verfassen,,, guix.de, Referenzhandbuch zu GNU Guix}) und"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3775
-msgid "a Guix channel specification."
-msgstr "eine Kanalspezifikation für Guix."
+#: doc/guix-cookbook.texi:4073
+msgid "a Guix channel specification (@pxref{Replicating Guix,,, guix, GNU Guix Reference Manual})."
+msgstr "eine Kanalspezifikation für Guix (siehe @pxref{Guix nachbilden,,, guix.de, Referenzhandbuch zu GNU Guix})."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3779
+#: doc/guix-cookbook.texi:4077
msgid "Indeed, manifests alone might not be enough: different Guix versions (or different channels) can produce different outputs for a given manifest."
msgstr "Tatsächlich kann es vorkommen, dass ein Manifest allein nicht genug ist: Verschiedene Versionen von Guix (oder andere Kanäle) können beim selben Manifest zu verschiedenen Ausgaben führen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3783
-msgid "You can output the Guix channel specification with @samp{guix describe --format=channels}. Save this to a file, say @samp{channel-specs.scm}."
-msgstr "Sie können sich die Guix-Kanalspezifikationen mit @samp{guix describe --format=channels} ausgeben lassen. Speichern Sie sie in eine Datei ab, sagen wir @samp{channel-specs.scm}."
+#: doc/guix-cookbook.texi:4082
+msgid "You can output the Guix channel specification with @samp{guix describe --format=channels} (@pxref{Invoking guix describe,,, guix, GNU Guix Reference Manual}). Save this to a file, say @samp{channel-specs.scm}."
+msgstr "Sie können sich die Guix-Kanalspezifikationen mit @samp{guix describe --format=channels} ausgeben lassen (siehe @ref{Aufruf von guix describe,,, guix.de, Referenzhandbuch zu GNU Guix}). Speichern Sie sie in eine Datei ab, sagen wir @samp{channel-specs.scm}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3786
+#: doc/guix-cookbook.texi:4085
msgid "On another computer, you can use the channel specification file and the manifest to reproduce the exact same profile:"
msgstr "Auf einem anderen Rechner können Sie die Kanalspezifikationsdatei und das Manifest benutzen, um genau dasselbe Profil zu reproduzieren:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3790
+#: doc/guix-cookbook.texi:4089
#, no-wrap
msgid ""
"GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles\n"
@@ -6676,7 +7331,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3793
+#: doc/guix-cookbook.texi:4092
#, no-wrap
msgid ""
"mkdir -p \"$GUIX_EXTRA\"/my-project\n"
@@ -6688,7 +7343,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3796
+#: doc/guix-cookbook.texi:4095
#, no-wrap
msgid ""
"mkdir -p \"$GUIX_EXTRA_PROFILES/my-project\"\n"
@@ -6698,32 +7353,1236 @@ msgstr ""
"\"$GUIX_EXTRA\"/my-project/guix/bin/guix package --manifest=/path/to/guix-my-project-manifest.scm --profile=\"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3800
+#: doc/guix-cookbook.texi:4099
msgid "It's safe to delete the Guix channel profile you've just installed with the channel specification, the project profile does not depend on it."
msgstr "Es kann nichts Schlimmes passieren, wenn Sie das Guix-Kanalprofil, das Sie eben aus der Kanalspezifikation erstellt haben, löschen, denn das Projektprofil hängt davon nicht ab."
+#. type: cindex
+#: doc/guix-cookbook.texi:4103
+#, no-wrap
+msgid "development, with Guix"
+msgstr "Entwicklung, mit Guix"
+
+#. type: cindex
+#: doc/guix-cookbook.texi:4104
+#, no-wrap
+msgid "software development, with Guix"
+msgstr "Software-Entwicklung, mit Guix"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4114
+msgid "Guix is a handy tool for developers; @command{guix shell}, in particular, gives a standalone development environment for your package, no matter what language(s) it's written in (@pxref{Invoking guix shell,,, guix, GNU Guix Reference Manual}). To benefit from it, you have to initially write a package definition and have it either in Guix proper, or in a channel, or directly in your project's source tree as a @file{guix.scm} file. This last option is appealing: all developers have to do to get set up is clone the project's repository and run @command{guix shell}, with no arguments."
+msgstr "Guix ist ein hilfreiches Werkzeug für Entwickler; besonders @command{guix shell} versorgt Sie mit einer eigenständigen Entwicklungsumgebung für Ihr Paket, unabhängig von der oder den Sprachen, in denen es programmiert ist (siehe @ref{Aufruf von guix shell,,, guix.de, Referenzhandbuch zu GNU Guix}). Um Ihren Nutzen daraus zu ziehen, fertigen Sie als Erstes eine Paketdefinition an, die entweder ins eigentliche Guix akzeptiert werden muss oder die Teil eines Kanals oder gleich im Quellbaum Ihres Projekts sein muss in einer Datei @file{guix.scm}. Letztere Option bietet sich an, weil Entwickler dann nur das Repository des Projekts zu klonen brauchen und @command{guix shell} ohne Argumente aufrufen können."
+
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3807
+#: doc/guix-cookbook.texi:4124
+msgid "Development needs go beyond development environments though. How can developers perform continuous integration of their code in Guix build environments? How can they deliver their code straight to adventurous users? This chapter describes a set of files developers can add to their repository to set up Guix-based development environments, continuous integration, and continuous delivery---all at once@footnote{This chapter is adapted from a @uref{https://guix.gnu.org/en/blog/2023/from-development-environments-to-continuous-integrationthe-ultimate-guide-to-software-development-with-guix/, blog post} published in June 2023 on the Guix web site.}."
+msgstr "Zur Entwicklung gehört jedoch mehr. Wie richten Entwickler eine kontinuierliche Integration ihres Codes in Guix-Erstellungsumgebungen ein? Wie findet eine sofortige Auslieferung ihres Codes an abenteuerlustige Nutzer statt? Dieses Kapitel erklärt, wie Entwickler wenige zusätzliche Dateien ins Repository hinzufügen, um Guix-basierte Entwicklungsumgebungen, kontinuierliche Integration und kontinuierliche Auslieferung umzusetzen@tie{}– alles auf einmal@footnote{Dieses Kapitel ist eine aufgearbeitete Fassung @uref{https://guix.gnu.org/de/blog/2023/from-development-environments-to-continuous-integrationthe-ultimate-guide-to-software-development-with-guix/, eines Blog-Eintrags}, der im Juni 2023 auf Guix’ Webauftritt veröffentlicht wurde.}."
+
+#. type: section
+#: doc/guix-cookbook.texi:4133 doc/guix-cookbook.texi:4135
+#: doc/guix-cookbook.texi:4136
+#, no-wrap
+msgid "Getting Started"
+msgstr "Einstieg in Guix"
+
+#. type: menuentry
+#: doc/guix-cookbook.texi:4133
+msgid "Step 0: using `guix shell'."
+msgstr "Schritt 0: „guix shell“ benutzen."
+
+#. type: node
+#: doc/guix-cookbook.texi:4133 doc/guix-cookbook.texi:4255
+#, no-wrap
+msgid "Building with Guix"
+msgstr "Erstellen mit Guix"
+
+#. type: menuentry
+#: doc/guix-cookbook.texi:4133
+msgid "Step 1: building your code."
+msgstr "Schritt 1: Ihren Code kompilieren."
+
+#. type: node
+#: doc/guix-cookbook.texi:4133 doc/guix-cookbook.texi:4345
+#, no-wrap
+msgid "The Repository as a Channel"
+msgstr "Das Repository als Kanal"
+
+#. type: menuentry
+#: doc/guix-cookbook.texi:4133
+msgid "Step 2: turning the repo in a channel."
+msgstr "Schritt 2: Ein Repo in einen Kanal verwandeln."
+
+#. type: node
+#: doc/guix-cookbook.texi:4133 doc/guix-cookbook.texi:4481
+#, no-wrap
+msgid "Package Variants"
+msgstr "Paketvarianten"
+
+#. type: menuentry
+#: doc/guix-cookbook.texi:4133
+msgid "Bonus: Defining variants."
+msgstr "Bonus: Varianten definieren."
+
+#. type: node
+#: doc/guix-cookbook.texi:4133 doc/guix-cookbook.texi:4533
+#, no-wrap
+msgid "Setting Up Continuous Integration"
+msgstr "Kontinuierliche Integration einrichten"
+
+#. type: menuentry
+#: doc/guix-cookbook.texi:4133
+msgid "Step 3: continuous integration."
+msgstr "Schritt 3: Kontinuierliche Integration."
+
+#. type: node
+#: doc/guix-cookbook.texi:4133 doc/guix-cookbook.texi:4608
+#, no-wrap
+msgid "Build Manifest"
+msgstr "Erstellungs-Manifest"
+
+#. type: menuentry
+#: doc/guix-cookbook.texi:4133
+msgid "Bonus: Manifest."
+msgstr "Bonus: Manifest."
+
+#. type: section
+#: doc/guix-cookbook.texi:4133 doc/guix-cookbook.texi:4701
+#: doc/guix-cookbook.texi:4702
+#, no-wrap
+msgid "Wrapping Up"
+msgstr "Zusammenfassung"
+
+#. type: menuentry
+#: doc/guix-cookbook.texi:4133
+msgid "Recap."
+msgstr "Resümee."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4147
+msgid "How do we go about ``Guixifying'' a repository? The first step, as we've seen, will be to add a @file{guix.scm} at the root of the repository in question. We'll take @uref{https://www.gnu.org/software/guile,Guile} as an example in this chapter: it's written in Scheme (mostly) and C, and has a number of dependencies---a C compilation tool chain, C libraries, Autoconf and its friends, LaTeX, and so on. The resulting @file{guix.scm} looks like the usual package definition (@pxref{Defining Packages,,, guix, GNU Guix Reference Manual}), just without the @code{define-public} bit:"
+msgstr "Wie lässt sich also ein Repository „guixifizieren“? Unser erster Schritt ist, wie wir sehen konnten, eine Datei @file{guix.scm} im obersten Verzeichnis des fraglichen Repositorys unterzubringen. Nehmen wir @uref{https://www.gnu.org/software/guile,Guile} als Beispiel in diesem Kapitel; es ist in Scheme (zum größten Teil) und in C geschrieben und ist von anderer Software abhängig@tie{}– einer C-Compiler-Toolchain, C-Bibliotheken, Autoconf und seinen Freunden, LaTeX und so weiter. Daraus ergibt sich eine @file{guix.scm}, die ziemlich wie andere Paketdefinitionen auch aussieht (siehe @ref{Pakete definieren,,, guix.de, Referenzhandbuch zu GNU Guix}), nur fehlt das @code{define-public} am Anfang:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4150
+#, no-wrap
+msgid ""
+";; The ‘guix.scm’ file for Guile, for use by ‘guix shell’.\n"
+"\n"
+msgstr ""
+";; Die ‚guix.scm‘-Datei für Guile, gedacht für ‚guix shell‘.\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4171
+#, no-wrap
+msgid ""
+"(use-modules (guix)\n"
+" (guix build-system gnu)\n"
+" ((guix licenses) #:prefix license:)\n"
+" (gnu packages autotools)\n"
+" (gnu packages base)\n"
+" (gnu packages bash)\n"
+" (gnu packages bdw-gc)\n"
+" (gnu packages compression)\n"
+" (gnu packages flex)\n"
+" (gnu packages gdb)\n"
+" (gnu packages gettext)\n"
+" (gnu packages gperf)\n"
+" (gnu packages libffi)\n"
+" (gnu packages libunistring)\n"
+" (gnu packages linux)\n"
+" (gnu packages pkg-config)\n"
+" (gnu packages readline)\n"
+" (gnu packages tex)\n"
+" (gnu packages texinfo)\n"
+" (gnu packages version-control))\n"
+"\n"
+msgstr ""
+"(use-modules (guix)\n"
+" (guix build-system gnu)\n"
+" ((guix licenses) #:prefix license:)\n"
+" (gnu packages autotools)\n"
+" (gnu packages base)\n"
+" (gnu packages bash)\n"
+" (gnu packages bdw-gc)\n"
+" (gnu packages compression)\n"
+" (gnu packages flex)\n"
+" (gnu packages gdb)\n"
+" (gnu packages gettext)\n"
+" (gnu packages gperf)\n"
+" (gnu packages libffi)\n"
+" (gnu packages libunistring)\n"
+" (gnu packages linux)\n"
+" (gnu packages pkg-config)\n"
+" (gnu packages readline)\n"
+" (gnu packages tex)\n"
+" (gnu packages texinfo)\n"
+" (gnu packages version-control))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4193
+#, no-wrap
+msgid ""
+"(package\n"
+" (name \"guile\")\n"
+" (version \"3.0.99-git\") ;funky version number\n"
+" (source #f) ;no source\n"
+" (build-system gnu-build-system)\n"
+" (native-inputs\n"
+" (append (list autoconf\n"
+" automake\n"
+" libtool\n"
+" gnu-gettext\n"
+" flex\n"
+" texinfo\n"
+" texlive-base ;for \"make pdf\"\n"
+" texlive-epsf\n"
+" gperf\n"
+" git\n"
+" gdb\n"
+" strace\n"
+" readline\n"
+" lzip\n"
+" pkg-config)\n"
+"\n"
+msgstr ""
+"(package\n"
+" (name \"guile\")\n"
+" (version \"3.0.99-git\") ;komische Versionsnummer\n"
+" (source #f) ;keine Quelle\n"
+" (build-system gnu-build-system)\n"
+" (native-inputs\n"
+" (append (list autoconf\n"
+" automake\n"
+" libtool\n"
+" gnu-gettext\n"
+" flex\n"
+" texinfo\n"
+" texlive-base ;für \"make pdf\"\n"
+" texlive-epsf\n"
+" gperf\n"
+" git\n"
+" gdb\n"
+" strace\n"
+" readline\n"
+" lzip\n"
+" pkg-config)\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4203
+#, no-wrap
+msgid ""
+" ;; When cross-compiling, a native version of Guile itself is\n"
+" ;; needed.\n"
+" (if (%current-target-system)\n"
+" (list this-package)\n"
+" '())))\n"
+" (inputs\n"
+" (list libffi bash-minimal))\n"
+" (propagated-inputs\n"
+" (list libunistring libgc))\n"
+"\n"
+msgstr ""
+" ;; Zum Cross-Kompilieren ist eine native Version desselben\n"
+" ;; Guiles notwendig.\n"
+" (if (%current-target-system)\n"
+" (list this-package)\n"
+" '())))\n"
+" (inputs\n"
+" (list libffi bash-minimal))\n"
+" (propagated-inputs\n"
+" (list libunistring libgc))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4217
+#, no-wrap
+msgid ""
+" (native-search-paths\n"
+" (list (search-path-specification\n"
+" (variable \"GUILE_LOAD_PATH\")\n"
+" (files '(\"share/guile/site/3.0\")))\n"
+" (search-path-specification\n"
+" (variable \"GUILE_LOAD_COMPILED_PATH\")\n"
+" (files '(\"lib/guile/3.0/site-ccache\")))))\n"
+" (synopsis \"Scheme implementation intended especially for extensions\")\n"
+" (description\n"
+" \"Guile is the GNU Ubiquitous Intelligent Language for Extensions,\n"
+"and it's actually a full-blown Scheme implementation!\")\n"
+" (home-page \"https://www.gnu.org/software/guile/\")\n"
+" (license license:lgpl3+))\n"
+msgstr ""
+" (native-search-paths\n"
+" (list (search-path-specification\n"
+" (variable \"GUILE_LOAD_PATH\")\n"
+" (files '(\"share/guile/site/3.0\")))\n"
+" (search-path-specification\n"
+" (variable \"GUILE_LOAD_COMPILED_PATH\")\n"
+" (files '(\"lib/guile/3.0/site-ccache\")))))\n"
+" (synopsis \"Scheme implementation intended especially for extensions\")\n"
+" (description\n"
+" \"Guile is the GNU Ubiquitous Intelligent Language for Extensions,\n"
+"and it's actually a full-blown Scheme implementation!\")\n"
+" (home-page \"https://www.gnu.org/software/guile/\")\n"
+" (license license:lgpl3+))\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4221
+msgid "Quite a bit of boilerplate, but now someone who'd like to hack on Guile now only needs to run:"
+msgstr "Das ist schon ein bisschen aufwendig, aber wenn jemand an Guile hacken will, braucht sie bloß noch das hier aufzurufen:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4224
+#, no-wrap
+msgid "guix shell\n"
+msgstr "guix shell\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4230
+msgid "That gives them a shell containing all the dependencies of Guile: those listed above, but also @emph{implicit dependencies} such as the GCC tool chain, GNU@ Make, sed, grep, and so on. @xref{Invoking guix shell,,, guix, GNU Guix Reference Manual}, for more info on @command{guix shell}."
+msgstr "Sie findet sich in einer Shell wieder, wo es alle Abhängigkeiten von Guile gibt: die oben aufgeführten Abhängigkeiten und außerdem @emph{implizite Abhängigkeiten} wie die GCC-Toolchain, GNU@tie{}Make, sed, grep und so weiter. Siehe @ref{Aufruf von guix shell,,, guix.de, Referenzhandbuch zu GNU Guix} für weitere Informationen zu @command{guix shell}."
+
+#. type: quotation
+#: doc/guix-cookbook.texi:4231
+#, no-wrap
+msgid "The chef's recommendation"
+msgstr "Empfehlung des Hauses"
+
+#. type: quotation
+#: doc/guix-cookbook.texi:4233
+msgid "Our suggestion is to create development environments like this:"
+msgstr "Wir legen Ihnen nahe, Entwicklungsumgebungen mit diesem Befehl anzulegen:"
+
+#. type: example
+#: doc/guix-cookbook.texi:4236
+#, no-wrap
+msgid "guix shell --container --link-profile\n"
+msgstr "guix shell --container --link-profile\n"
+
+#. type: quotation
+#: doc/guix-cookbook.texi:4240
+msgid "... or, for short:"
+msgstr "… oder kurz:"
+
+#. type: example
+#: doc/guix-cookbook.texi:4243
+#, no-wrap
+msgid "guix shell -CP\n"
+msgstr "guix shell -CP\n"
+
+#. type: quotation
+#: doc/guix-cookbook.texi:4253
+msgid "That gives a shell in an isolated container, and all the dependencies show up in @code{$HOME/.guix-profile}, which plays well with caches such as @file{config.cache} (@pxref{Cache Files,,, autoconf, Autoconf}) and absolute file names recorded in generated @code{Makefile}s and the likes. The fact that the shell runs in a container brings peace of mind: nothing but the current directory and Guile's dependencies is visible inside the container; nothing from the system can possibly interfere with your development."
+msgstr "So erhält man eine Shell in einem isolierten Container und alle Abhängigkeiten finden sich in @code{$HOME/.guix-profile}, was die Nutzung von Zwischenspeichern wie @file{config.cache} (siehe @ref{Cache Files,,, autoconf, Autoconf}) erleichtert und wodurch absolute Dateinamen, die in erzeugten Dateien wie @code{Makefile}s und Ähnlichem festgehalten werden, gültig bleiben. Die Tatsache, dass die Shell in einem Container läuft, erlaubt Ihnen ein Gefühl der Sicherheit: Nichts außer dem aktuellen Verzeichnis und Guiles Abhängigkeiten ist in dieser isolierten Umgebung sichtbar; nichts vom System kann Ihre Arbeit störend beeinflussen."
+
+#. type: section
+#: doc/guix-cookbook.texi:4256
+#, no-wrap
+msgid "Level 1: Building with Guix"
+msgstr "Stufe 1: Erstellen mit Guix"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4263
+msgid "Now that we have a package definition (@pxref{Getting Started}), why not also take advantage of it so we can build Guile with Guix? We had left the @code{source} field empty, because @command{guix shell} above only cares about the @emph{inputs} of our package---so it can set up the development environment---not about the package itself."
+msgstr "Jetzt, wo wir eine Paketdefinition vorliegen haben (siehe @ref{Getting Started}), können wir sie dann auch gleich benutzen, um Guile mit Guix zu erstellen? Uns fehlt der Eintrag im @code{source}-Feld, das wir leer gelassen haben, denn für @command{guix shell} spielen nur die @emph{inputs} unseres Pakets eine Rolle@tie{}– um die Entwicklungsumgebung zu unserem Paket aufzusetzen@tie{}–, aber das Paket selber wurde bisher nicht gebraucht."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4266
+msgid "To build the package with Guix, we'll need to fill out the @code{source} field, along these lines:"
+msgstr "Wenn wir das Paket mit Guix erstellt bekommen möchten, müssen wir etwas ins @code{source}-Feld eintragen, etwa so:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4271
+#, no-wrap
+msgid ""
+"(use-modules (guix)\n"
+" (guix git-download) ;for ‘git-predicate’\n"
+" @dots{})\n"
+"\n"
+msgstr ""
+"(use-modules (guix)\n"
+" (guix git-download) ;für ‚git-predicate‘\n"
+" …)\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4276
+#, no-wrap
+msgid ""
+"(define vcs-file?\n"
+" ;; Return true if the given file is under version control.\n"
+" (or (git-predicate (current-source-directory))\n"
+" (const #t))) ;not in a Git checkout\n"
+"\n"
+msgstr ""
+"(define vcs-file?\n"
+" ;; Wahr zurückliefern, wenn die angegebene Datei unter\n"
+" ;; Versionskontrolle steht.\n"
+" (or (git-predicate (current-source-directory))\n"
+" (const #t))) ;es ist kein Git-Checkout\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4284
+#, no-wrap
+msgid ""
+"(package\n"
+" (name \"guile\")\n"
+" (version \"3.0.99-git\") ;funky version number\n"
+" (source (local-file \".\" \"guile-checkout\"\n"
+" #:recursive? #t\n"
+" #:select? vcs-file?))\n"
+" @dots{})\n"
+msgstr ""
+"(package\n"
+" (name \"guile\")\n"
+" (version \"3.0.99-git\") ;komische Versionsnummer\n"
+" (source (local-file \".\" \"guile-checkout\"\n"
+" #:recursive? #t\n"
+" #:select? vcs-file?))\n"
+" …)\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4287
+msgid "Here's what we changed compared to the previous section:"
+msgstr "Dies sind unsere Änderungen verglichen mit dem vorherigen Abschnitt:"
+
+#. type: enumerate
+#: doc/guix-cookbook.texi:4292
+msgid "We added @code{(guix git-download)} to our set of imported modules, so we can use its @code{git-predicate} procedure."
+msgstr "Wir haben @code{(guix git-download)} zu unseren importierten Modulen hinzugefügt, damit wir dessen Prozedur @code{git-predicate} benutzen können."
+
+#. type: enumerate
+#: doc/guix-cookbook.texi:4296
+msgid "We defined @code{vcs-file?} as a procedure that returns true when passed a file that is under version control. For good measure, we add a fallback case for when we're not in a Git checkout: always return true."
+msgstr "Wir haben @code{vcs-file?} als Prozedur definiert, die wahr zurückgibt, wenn ihr eine Datei übergeben wird, die unter Versionskontrolle steht. Es gehört sich, den Fall abzufangen, wenn wir uns in keinem Git-Checkout befinden: Dann wird immer wahr geliefert."
+
+#. type: enumerate
+#: doc/guix-cookbook.texi:4301
+msgid "We set @code{source} to a @uref{https://guix.gnu.org/manual/devel/en/html_node/G_002dExpressions.html#index-local_002dfile,@code{local-file}}---a recursive copy of the current directory (@code{\".\"}), limited to files under version control (the @code{#:select?} bit)."
+msgstr "Wir setzen @code{source} auf @uref{https://guix.gnu.org/manual/devel/de/html_node/G_002dAusdrucke.html#index-local_002dfile,@code{local-file}}@tie{}– einer rekursiven Kopie des aktuellen Verzeichnisses (@code{\".\"}), eingeschränkt auf solche Dateien, die unter Versionskontrolle gestellt sind (mit @code{#:select?})."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4308
+msgid "From there on, our @file{guix.scm} file serves a second purpose: it lets us build the software with Guix. The whole point of building with Guix is that it's a ``clean'' build---you can be sure nothing from your working tree or system interferes with the build result---and it lets you test a variety of things. First, you can do a plain native build:"
+msgstr "Von da an erfüllt @file{guix.scm} einen zweiten Zweck: Wir können die Software mit Guix erstellen. Der Vorteil der Erstellung mit Guix ist, dass eine „saubere“ Erstellung durchgeführt wird@tie{}– Sie können sich sicher sein, das Ergebnis der Erstellung beruht nicht auf Dateien in Ihrem Quellbaum oder anderen Dingen in Ihrem System@tie{}– und auch, dass Sie viele Möglichkeiten testen können. Als Erstes wäre da eine einfache native Erstellung:"
+
+#. type: example
+#: doc/guix-cookbook.texi:4311
+#, no-wrap
+msgid "guix build -f guix.scm\n"
+msgstr "guix build -f guix.scm\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4318
+msgid "But you can also build for another system (possibly after setting up @pxref{Daemon Offload Setup, offloading,, guix, GNU Guix Reference Manual} or @pxref{Virtualization Services, transparent emulation,, guix, GNU Guix Reference Manual}):"
+msgstr "Aber auch für ein anderes System können Sie die Erstellung durchführen (unter Umständen müssen Sie erst die Auslagerungsfunktion, siehe @ref{Auslagern des Daemons einrichten,,, guix.de, Referenzhandbuch zu GNU Guix}, oder transparente Emulation, siehe @ref{Virtualisierungsdienste,,, guix.de, Referenzhandbuch zu GNU Guix}, einrichten):"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4321
+#, no-wrap
+msgid "guix build -f guix.scm -s aarch64-linux -s riscv64-linux\n"
+msgstr "guix build -f guix.scm -s aarch64-linux -s riscv64-linux\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4325
+msgid "@dots{} or cross-compile:"
+msgstr "… oder Sie cross-kompilieren:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4328
+#, no-wrap
+msgid "guix build -f guix.scm --target=x86_64-w64-mingw32\n"
+msgstr "guix build -f guix.scm --target=x86_64-w64-mingw32\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4332
+msgid "You can also use @dfn{package transformations} to test package variants (@pxref{Package Transformation Options,,, guix, GNU Guix Reference Manual}):"
+msgstr "Möglich sind auch @dfn{Paketumwandlungsoptionen}, womit Sie Varianten Ihres Pakets testen können (siehe @ref{Paketumwandlungsoptionen,,, guix.de, Referenzhandbuch zu GNU Guix}):"
+
+#. type: example
+#: doc/guix-cookbook.texi:4337
+#, no-wrap
+msgid ""
+"# What if we built with Clang instead of GCC?\n"
+"guix build -f guix.scm \\\n"
+" --with-c-toolchain=guile@@3.0.99-git=clang-toolchain\n"
+"\n"
+msgstr ""
+"# Wie sieht es aus, wenn wir mit Clang statt GCC erstellen?\n"
+"guix build -f guix.scm \\\n"
+" --with-c-toolchain=guile@@3.0.99-git=clang-toolchain\n"
+"\n"
+
+#. type: example
+#: doc/guix-cookbook.texi:4341
+#, no-wrap
+msgid ""
+"# What about that under-tested configure flag?\n"
+"guix build -f guix.scm \\\n"
+" --with-configure-flag=guile@@3.0.99-git=--disable-networking\n"
+msgstr ""
+"# Was ist mit wenig getesteten configure-Befehlszeilenoptionen?\n"
+"guix build -f guix.scm \\\n"
+" --with-configure-flag=guile@@3.0.99-git=--disable-networking\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4344
+msgid "Handy!"
+msgstr "Praktisch!"
+
+#. type: section
+#: doc/guix-cookbook.texi:4346
+#, no-wrap
+msgid "Level 2: The Repository as a Channel"
+msgstr "Stufe 2: Das Repository als Kanal"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4353
+msgid "We now have a Git repository containing (among other things) a package definition (@pxref{Building with Guix}). Can't we turn it into a @dfn{channel} (@pxref{Channels,,, guix, GNU Guix Reference Manual})? After all, channels are designed to ship package definitions to users, and that's exactly what we're doing with our @file{guix.scm}."
+msgstr "Jetzt haben wir ein Git-Repository mit (unter anderem) einer Paketdefinition (siehe @ref{Building with Guix}). Wäre es nicht besser, wenn wir daraus einen @dfn{Kanal} machen würden (siehe @ref{Kanäle,,, guix.de, Referenzhandbuch zu GNU Guix})? Schließlich sind Kanäle entwickelt worden, um Nutzer mit Paketdefinitionen zu versorgen, und genau das tun wir mit @file{guix.scm}."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4360
+msgid "Turns out we can indeed turn it into a channel, but with one caveat: we must create a separate directory for the @code{.scm} file(s) of our channel so that @command{guix pull} doesn't load unrelated @code{.scm} files when someone pulls the channel---and in Guile, there are lots of them! So we'll start like this, keeping a top-level @file{guix.scm} symlink for the sake of @command{guix shell}:"
+msgstr "Tatsächlich sollten wir es zu einem Kanal machen, aber aufgepasst: Die @code{.scm}-Datei(en) unseres Kanals gehören in ein gesondertes Verzeichnis, damit @command{guix pull} nicht versucht, die falschen @code{.scm}-Dateien zu laden, wenn jemand damit den Kanal herunterlädt@tie{}– und in Guile gibt es viele @code{.scm}-Dateien! Wir fangen mit der Trennung an, behalten aber auf oberster Ebene eine symbolische Verknüpfung @file{guix.scm} zur Nutzung mit @command{guix shell}:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4365
+#, no-wrap
+msgid ""
+"mkdir -p .guix/modules\n"
+"mv guix.scm .guix/modules/guile-package.scm\n"
+"ln -s .guix/modules/guile-package.scm guix.scm\n"
+msgstr ""
+"mkdir -p .guix/modules\n"
+"mv guix.scm .guix/modules/guile-package.scm\n"
+"ln -s .guix/modules/guile-package.scm guix.scm\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4376
+msgid "To make it usable as part of a channel, we need to turn our @file{guix.scm} file into a @dfn{package module} (@pxref{Package Modules,,, guix, GNU Guix Reference Manual}): we do that by changing the @code{use-modules} form at the top to a @code{define-module} form. We also need to actually @emph{export} a package variable, with @code{define-public}, while still returning the package value at the end of the file so we can still use @command{guix shell} and @command{guix build -f guix.scm}. The end result looks like this (not repeating things that haven't changed):"
+msgstr "Damit es als Kanal verwendet werden kann, erweitern wir unsere @file{guix.scm}-Datei zu einem @dfn{Paketmodul} (siehe @ref{Paketmodule,,, guix.de, Referenzhandbuch zu GNU Guix}). Das geschieht, indem wir die @code{use-modules}-Form am Anfang durch eine @code{define-module}-Form ersetzen. Auch müssen wir dann eine Paketvariable @emph{exportieren}, mit @code{define-public}, und dennoch am Ende der Datei den Paketwert zurückliefern, damit @command{guix shell} und @command{guix build -f guix.scm} weiterhin funktionieren. Das Endergebnis sieht so aus (ohne zu wiederholen, was wir nicht verändern):"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4382
+#, no-wrap
+msgid ""
+"(define-module (guile-package)\n"
+" #:use-module (guix)\n"
+" #:use-module (guix git-download) ;for ‘git-predicate’\n"
+" @dots{})\n"
+"\n"
+msgstr ""
+"(define-module (guile-package)\n"
+" #:use-module (guix)\n"
+" #:use-module (guix git-download) ;für ‚git-predicate‘\n"
+" …)\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4387
+#, no-wrap
+msgid ""
+"(define vcs-file?\n"
+" ;; Return true if the given file is under version control.\n"
+" (or (git-predicate (dirname (dirname (current-source-directory))))\n"
+" (const #t))) ;not in a Git checkout\n"
+"\n"
+msgstr ""
+"(define vcs-file?\n"
+" ;; Wahr zurückliefern, wenn die angegebene Datei unter\n"
+" ;; Versionskontrolle steht.\n"
+" (or (git-predicate (dirname (dirname (current-source-directory))))\n"
+" (const #t))) ;es ist kein Git-Checkout\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4396
+#, no-wrap
+msgid ""
+"(define-public guile\n"
+" (package\n"
+" (name \"guile\")\n"
+" (version \"3.0.99-git\") ;funky version number\n"
+" (source (local-file \"../..\" \"guile-checkout\"\n"
+" #:recursive? #t\n"
+" #:select? vcs-file?))\n"
+" @dots{}))\n"
+"\n"
+msgstr ""
+"(define-public guile\n"
+" (package\n"
+" (name \"guile\")\n"
+" (version \"3.0.99-git\") ;komische Versionsnummer\n"
+" (source (local-file \"../..\" \"guile-checkout\"\n"
+" #:recursive? #t\n"
+" #:select? vcs-file?))\n"
+" …))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4399
+#, no-wrap
+msgid ""
+";; Return the package object define above at the end of the module.\n"
+"guile\n"
+msgstr ""
+";; Das oben definierte Paketobjekt muss am Modulende zurückgeliefert werden.\n"
+"guile\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4404
+msgid "We need one last thing: a @uref{https://guix.gnu.org/manual/devel/en/html_node/Package-Modules-in-a-Sub_002ddirectory.html,@code{.guix-channel} file} so Guix knows where to look for package modules in our repository:"
+msgstr "Zuletzt brauchen wir noch eine @uref{https://guix.gnu.org/manual/devel/de/html_node/Paketmodule-in-einem-Unterverzeichnis.html,@code{.guix-channel}-Datei}, um Guix zu erklären, woher es die Paketmodule in unserem Repository bekommt:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4407
+#, no-wrap
+msgid ""
+";; This file lets us present this repo as a Guix channel.\n"
+"\n"
+msgstr ""
+";; Mit dieser Datei kann man dieses Repo als Guix-Kanal eintragen.\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4411
+#, no-wrap
+msgid ""
+"(channel\n"
+" (version 0)\n"
+" (directory \".guix/modules\")) ;look for package modules under .guix/modules/\n"
+msgstr ""
+"(channel\n"
+" (version 0)\n"
+" (directory \".guix/modules\")) ;Paketmodule finden sich unter .guix/modules/\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4414
+msgid "To recap, we now have these files:"
+msgstr "Zusammengefasst liegen diese Dateien jetzt im Repository:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4422
+#, no-wrap
+msgid ""
+".\n"
+"├── .guix-channel\n"
+"├── guix.scm → .guix/modules/guile-package.scm\n"
+"└── .guix\n"
+"    └── modules\n"
+"       └── guile-package.scm\n"
+msgstr ""
+".\n"
+"├── .guix-channel\n"
+"├── guix.scm → .guix/modules/guile-package.scm\n"
+"└── .guix\n"
+"    └── modules\n"
+"       └── guile-package.scm\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4431
+msgid "And that's it: we have a channel! (We could do better and support @uref{https://guix.gnu.org/manual/devel/en/html_node/Specifying-Channel-Authorizations.html,@emph{channel authentication}} so users know they're pulling genuine code. We'll spare you the details here but it's worth considering!) Users can pull from this channel by @uref{https://guix.gnu.org/manual/devel/en/html_node/Specifying-Additional-Channels.html,adding it to @code{~/.config/guix/channels.scm}}, along these lines:"
+msgstr "Und das war alles: Wir haben einen Kanal erschaffen! (Noch besser wäre es, auch @uref{https://guix.gnu.org/en/manual/devel/de/html_node/Kanalautorisierungen-angeben.html,@emph{Kanalautorisierungen}} zu unterstützen, damit Benutzer wissen, dass der heruntergeladene Code echt ist. Wir ersparen Ihnen die Feinheiten hier, aber ziehen Sie es in Betracht!) Nutzer können von diesem Kanal pullen, indem sie @uref{https://guix.gnu.org/manual/devel/de/html_node/Weitere-Kanale-angeben.html,ihn zu @code{~/.config/guix/channels.scm} hinzufügen}, etwa so:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4438
+#, no-wrap
+msgid ""
+"(append (list (channel\n"
+" (name 'guile)\n"
+" (url \"https://git.savannah.gnu.org/git/guile.git\")\n"
+" (branch \"main\")))\n"
+" %default-channels)\n"
+msgstr ""
+"(append (list (channel\n"
+" (name 'guile)\n"
+" (url \"https://git.savannah.gnu.org/git/guile.git\")\n"
+" (branch \"main\")))\n"
+" %default-channels)\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4441
+msgid "After running @command{guix pull}, we can see the new package:"
+msgstr "Nach einem Aufruf von @command{guix pull} sind die neuen Pakete zu sehen:"
+
+#. type: example
+#: doc/guix-cookbook.texi:4463
+#, no-wrap
+msgid ""
+"$ guix describe\n"
+"Generation 264 May 26 2023 16:00:35 (current)\n"
+" guile 36fd2b4\n"
+" repository URL: https://git.savannah.gnu.org/git/guile.git\n"
+" branch: main\n"
+" commit: 36fd2b4920ae926c79b936c29e739e71a6dff2bc\n"
+" guix c5bc698\n"
+" repository URL: https://git.savannah.gnu.org/git/guix.git\n"
+" commit: c5bc698e8922d78ed85989985cc2ceb034de2f23\n"
+"$ guix package -A ^guile$\n"
+"guile 3.0.99-git out,debug guile-package.scm:51:4\n"
+"guile 3.0.9 out,debug gnu/packages/guile.scm:317:2\n"
+"guile 2.2.7 out,debug gnu/packages/guile.scm:258:2\n"
+"guile 2.2.4 out,debug gnu/packages/guile.scm:304:2\n"
+"guile 2.0.14 out,debug gnu/packages/guile.scm:148:2\n"
+"guile 1.8.8 out gnu/packages/guile.scm:77:2\n"
+"$ guix build guile@@3.0.99-git\n"
+"[@dots{}]\n"
+"/gnu/store/axnzbl89yz7ld78bmx72vpqp802dwsar-guile-3.0.99-git-debug\n"
+"/gnu/store/r34gsij7f0glg2fbakcmmk0zn4v62s5w-guile-3.0.99-git\n"
+msgstr ""
+"$ guix describe\n"
+"Generation 264 26. Mai 2023 16:00:35 (aktuell)\n"
+" guile 36fd2b4\n"
+" Repository-URL: https://git.savannah.gnu.org/git/guile.git\n"
+" Branch: main\n"
+" Commit: 36fd2b4920ae926c79b936c29e739e71a6dff2bc\n"
+" guix c5bc698\n"
+" Repository-URL: https://git.savannah.gnu.org/git/guix.git\n"
+" Commit: c5bc698e8922d78ed85989985cc2ceb034de2f23\n"
+"$ guix package -A ^guile$\n"
+"guile 3.0.99-git out,debug guile-package.scm:51:4\n"
+"guile 3.0.9 out,debug gnu/packages/guile.scm:317:2\n"
+"guile 2.2.7 out,debug gnu/packages/guile.scm:258:2\n"
+"guile 2.2.4 out,debug gnu/packages/guile.scm:304:2\n"
+"guile 2.0.14 out,debug gnu/packages/guile.scm:148:2\n"
+"guile 1.8.8 out gnu/packages/guile.scm:77:2\n"
+"$ guix build guile@@3.0.99-git\n"
+"[…]\n"
+"/gnu/store/axnzbl89yz7ld78bmx72vpqp802dwsar-guile-3.0.99-git-debug\n"
+"/gnu/store/r34gsij7f0glg2fbakcmmk0zn4v62s5w-guile-3.0.99-git\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4468
+msgid "That's how, as a developer, you get your software delivered directly into the hands of users! No intermediaries, yet no loss of transparency and provenance tracking."
+msgstr "Auf diesem Weg liefern Sie, als Entwickler, Ihre Software direkt in die Hände der Nutzer! Es gibt keine Mittelsmänner, trotzdem bleiben Transparenz und Provenienzverfolgung erhalten."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4472
+msgid "With that in place, it also becomes trivial for anyone to create Docker images, Deb/RPM packages, or a plain tarball with @command{guix pack} (@pxref{Invoking guix pack,,, guix, GNU Guix Reference Manual}):"
+msgstr "Auf dieser Grundlage kann außerdem jeder leicht Docker-Abbilder, Pakete als Deb/RPM oder einen einfachen Tarball mit @command{guix pack} anfertigen (siehe @ref{Aufruf von guix pack,,, guix.de, Referenzhandbuch zu GNU Guix}):"
+
+#. type: example
+#: doc/guix-cookbook.texi:4476
+#, no-wrap
+msgid ""
+"# How about a Docker image of our Guile snapshot?\n"
+"guix pack -f docker -S /bin=bin guile@@3.0.99-git\n"
+"\n"
+msgstr ""
+"# Sie wünschen ein Docker-Image mit unserem Guile-Snapshot?\n"
+"guix pack -f docker -S /bin=bin guile@@3.0.99-git\n"
+"\n"
+
+#. type: example
+#: doc/guix-cookbook.texi:4479
+#, no-wrap
+msgid ""
+"# And a relocatable RPM?\n"
+"guix pack -f rpm -R -S /bin=bin guile@@3.0.99-git\n"
+msgstr ""
+"# Und ein verschiebliches RPM?\n"
+"guix pack -f rpm -R -S /bin=bin guile@@3.0.99-git\n"
+
+#. type: section
+#: doc/guix-cookbook.texi:4482
+#, no-wrap
+msgid "Bonus: Package Variants"
+msgstr "Bonus: Paketvarianten"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4490
+msgid "We now have an actual channel, but it contains only one package (@pxref{The Repository as a Channel}). While we're at it, we can define @dfn{package variants} (@pxref{Defining Package Variants,,, guix, GNU Guix Reference Manual}) in our @file{guile-package.scm} file, variants that we want to be able to test as Guile developers---similar to what we did above with transformation options. We can add them like so:"
+msgstr "Jetzt, wo wir es zu einem richtigen Kanal gebracht haben (siehe @ref{The Repository as a Channel}), drängt sich die Frage auf, warum er nur ein Paket enthält. Da geht mehr, denn wir können gleich mehrere @dfn{Paketvarianten} (siehe @ref{Paketvarianten definieren,,, guix.de, Referenzhandbuch zu GNU Guix}) in unserer Datei @file{guile-package.scm} festlegen, und zwar Varianten, die wir Entwickler von Guile gerne testen würden@tie{}– wofür wir oben noch Paketumwandlungsoptionen gebraucht haben. Wir können Sie auf diese Weise eintragen:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4493
+#, no-wrap
+msgid ""
+";; This is the ‘.guix/modules/guile-package.scm’ file.\n"
+"\n"
+msgstr ""
+";; Dies ist die Datei ‚.guix/modules/guile-package.scm‘.\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4496
+#, no-wrap
+msgid ""
+"(define-module (guile-package)\n"
+" @dots{})\n"
+"\n"
+msgstr ""
+"(define-module (guile-package)\n"
+" …)\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4499
+#, no-wrap
+msgid ""
+"(define-public guile\n"
+" @dots{})\n"
+"\n"
+msgstr ""
+"(define-public guile\n"
+" …)\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4507
+#, no-wrap
+msgid ""
+"(define (package-with-configure-flags p flags)\n"
+" \"Return P with FLAGS as additional 'configure' flags.\"\n"
+" (package/inherit p\n"
+" (arguments\n"
+" (substitute-keyword-arguments (package-arguments p)\n"
+" ((#:configure-flags original-flags #~(list))\n"
+" #~(append #$original-flags #$flags))))))\n"
+"\n"
+msgstr ""
+"(define (package-with-configure-flags p flags)\n"
+" \"Liefert P erweitert um die 'configure'-Optionen in FLAGS.\"\n"
+" (package/inherit p\n"
+" (arguments\n"
+" (substitute-keyword-arguments (package-arguments p)\n"
+" ((#:configure-flags original-flags #~(list))\n"
+" #~(append #$original-flags #$flags))))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4513
+#, no-wrap
+msgid ""
+"(define-public guile-without-threads\n"
+" (package\n"
+" (inherit (package-with-configure-flags guile\n"
+" #~(list \"--without-threads\")))\n"
+" (name \"guile-without-threads\")))\n"
+"\n"
+msgstr ""
+"(define-public guile-without-threads\n"
+" (package\n"
+" (inherit (package-with-configure-flags guile\n"
+" #~(list \"--without-threads\")))\n"
+" (name \"guile-without-threads\")))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4519
+#, no-wrap
+msgid ""
+"(define-public guile-without-networking\n"
+" (package\n"
+" (inherit (package-with-configure-flags guile\n"
+" #~(list \"--disable-networking\")))\n"
+" (name \"guile-without-networking\")))\n"
+"\n"
+msgstr ""
+"(define-public guile-without-networking\n"
+" (package\n"
+" (inherit (package-with-configure-flags guile\n"
+" #~(list \"--disable-networking\")))\n"
+" (name \"guile-without-networking\")))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4523
+#, no-wrap
+msgid ""
+";; Return the package object defined above at the end of the module.\n"
+"guile\n"
+msgstr ""
+";; Das oben definierte Paketobjekt muss am Modulende zurückgeliefert werden.\n"
+"guile\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4528
+msgid "We can build these variants as regular packages once we've pulled the channel. Alternatively, from a checkout of Guile, we can run a command like this one from the top level:"
+msgstr "Sobald wir den Kanal mit @command{guix pull} aktiviert haben, können wir diese Varianten als normale Pakete erstellen. Es geht aber auch, einen Befehl wie hier in einem Checkout von Guile auf oberster Ebene auszuführen:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4531
+#, no-wrap
+msgid "guix build -L $PWD/.guix/modules guile-without-threads\n"
+msgstr "guix build -L $PWD/.guix/modules guile-without-threads\n"
+
+#. type: section
+#: doc/guix-cookbook.texi:4534
+#, no-wrap
+msgid "Level 3: Setting Up Continuous Integration"
+msgstr "Stufe 3: Kontinuierliche Integration einrichten"
+
+#. type: cindex
+#: doc/guix-cookbook.texi:4536
+#, no-wrap
+msgid "continuous integration (CI)"
+msgstr "kontinuierliche Integration (CI)"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4541
+msgid "The channel we defined above (@pxref{The Repository as a Channel}) becomes even more interesting once we set up @uref{https://en.wikipedia.org/wiki/Continuous_integration, @dfn{continuous integration}} (CI). There are several ways to do that."
+msgstr "Mit dem oben definierten Kanal (siehe @ref{The Repository as a Channel}) können wir erst recht etwas anstellen, sobald wir @uref{https://de.wikipedia.org/wiki/Kontinuierliche_Integration, @dfn{Kontinuierliche Integration}} (Continuous Integration, CI) eingerichtet haben. Hier gibt es mehrere Wege zum Ziel."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4547
+msgid "You can use one of the mainstream continuous integration tools, such as GitLab-CI. To do that, you need to make sure you run jobs in a Docker image or virtual machine that has Guix installed. If we were to do that in the case of Guile, we'd have a job that runs a shell command like this one:"
+msgstr "Sie können ein dem Mainstream entsprechendes Werkzeug zur kontinuierlichen Integration nehmen wie GitLab-CI. Dazu müssen Sie Aufgaben („Jobs“) in einem Docker-Abbild oder einer virtuellen Maschine, auf der Guix installiert ist, ausführen lassen. Wenn wir das für Guile vorhätten, legten wir eine Aufgabe an, die einen Shell-Befehl wie diesen laufen lässt:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4550
+#, no-wrap
+msgid "guix build -L $PWD/.guix/modules guile@@3.0.99-git\n"
+msgstr "guix build -L $PWD/.guix/modules guile@@3.0.99-git\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4554
+msgid "Doing this works great and has the advantage of being easy to achieve on your favorite CI platform."
+msgstr "So klappt es gut und der Vorteil ist, dass Sie den Befehl leicht Ihrer bevorzugten CI-Plattform beibringen können."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4563
+msgid "That said, you'll really get the most of it by using @uref{https://guix.gnu.org/en/cuirass,Cuirass}, a CI tool designed for and tightly integrated with Guix. Using it is more work than using a hosted CI tool because you first need to set it up, but that setup phase is greatly simplified if you use its Guix System service (@pxref{Continuous Integration,,, guix, GNU Guix Reference Manual}). Going back to our example, we give Cuirass a spec file that goes like this:"
+msgstr "Aber trotzdem können Sie Guix am besten ausnutzen, wenn Sie @uref{https://guix.gnu.org/en/cuirass,Cuirass} verwenden, ein CI-Werkzeug speziell für Guix und eng damit integriert. Cuirass zu benutzen statt einem CI-Werkzeug, das jemand für Sie hostet, macht mehr Aufwand, aber die Einrichtung hält sich in Grenzen, wenn Sie Cuirass’ Dienst auf Guix System benutzen (siehe @ref{Kontinuierliche Integration,,, guix.de, Referenzhandbuch zu GNU Guix}). Kehren wir zu unserem Beispiel zurück, statten wir Cuirass mit so einer Spezifikationsdatei aus:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4575
+#, no-wrap
+msgid ""
+";; Cuirass spec file to build all the packages of the ‘guile’ channel.\n"
+"(list (specification\n"
+" (name \"guile\")\n"
+" (build '(channels guile))\n"
+" (channels\n"
+" (append (list (channel\n"
+" (name 'guile)\n"
+" (url \"https://git.savannah.gnu.org/git/guile.git\")\n"
+" (branch \"main\")))\n"
+" %default-channels))))\n"
+msgstr ""
+";; Cuirass-Spezifikationsdatei, um alle Pakete des ‚guile‘-Kanals zu erstellen.\n"
+"(list (specification\n"
+" (name \"guile\")\n"
+" (build '(channels guile))\n"
+" (channels\n"
+" (append (list (channel\n"
+" (name 'guile)\n"
+" (url \"https://git.savannah.gnu.org/git/guile.git\")\n"
+" (branch \"main\")))\n"
+" %default-channels))))\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4578
+msgid "It differs from what you'd do with other CI tools in two important ways:"
+msgstr "Es gibt zwei wichtige Unterschiede zu dem, was Sie mit anderen CI-Werkzeugen tun würden:"
+
+#. type: itemize
+#: doc/guix-cookbook.texi:4587
+msgid "Cuirass knows it's tracking @emph{two} channels, @code{guile} and @code{guix}. Indeed, our own @code{guile} package depends on many packages provided by the @code{guix} channel---GCC, the GNU libc, libffi, and so on. Changes to packages from the @code{guix} channel can potentially influence our @code{guile} build and this is something we'd like to see as soon as possible as Guile developers."
+msgstr "Cuirass weiß über @emph{zwei} Kanäle Bescheid, @code{guile} und @code{guix}. Tatsächlich zählen viele Pakete vom @code{guix}-Kanal zu den Abhängigkeiten des von uns entwickelten @code{guile}-Pakets@tie{}– GCC, GNU libc, libffi und weitere. Es kann passieren, dass sich die Pakete vom @code{guix}-Kanal ändern und dadurch die Erstellung unseres @code{guile}-Pakets schiefgeht; so etwas wollen wir als die Entwickler von Guile so früh erfahren, wie es nur geht."
+
+#. type: itemize
+#: doc/guix-cookbook.texi:4592
+msgid "Build results are not thrown away: they can be distributed as @dfn{substitutes} so that users of our @code{guile} channel transparently get pre-built binaries! (@pxref{Substitutes,,, guix, GNU Guix Reference Manual}, for background info on substitutes.)"
+msgstr "Die Erstellungsergebnisse werden @emph{nicht} entsorgt, sondern sie können als @dfn{Substitute}, d.h.@: vorerstellten Binärdateien, allen Nutzern unseres @code{guile}-Kanals transparent zur Verfügung gestellt werden! (Siehe @ref{Substitute,,, guix.de, Referenzhandbuch zu GNU Guix} für Hintergrundwissen zu Substituten.)"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4600
+msgid "From a developer's viewpoint, the end result is this @uref{https://ci.guix.gnu.org/jobset/guile,status page} listing @emph{evaluations}: each evaluation is a combination of commits of the @code{guix} and @code{guile} channels providing a number of @emph{jobs}---one job per package defined in @file{guile-package.scm} times the number of target architectures."
+msgstr "Aus Entwicklersicht sieht das Ergebnis am Ende so aus wie die auf Guiles @uref{https://ci.guix.gnu.org/jobset/guile,Status-Seite} aufgelisteten @emph{Auswertungen}: Jede Auswertung besteht aus einer Kombination von Commits der @code{guix}- und @code{guile}-Kanäle, wovon es mehrere @emph{Aufträge} (Jobs) gibt@tie{}– je einen Job pro Paket, das in @file{guile-package.scm} definiert ist, mal der Anzahl der Zielarchitekturen."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4607
+msgid "As for substitutes, they come for free! As an example, since our @code{guile} jobset is built on ci.guix.gnu.org, which runs @command{guix publish} (@pxref{Invoking guix publish,,, guix, GNU Guix Reference Manual}) in addition to Cuirass, one automatically gets substitutes for @code{guile} builds from ci.guix.gnu.org; no additional work is needed for that."
+msgstr "Substitute gibt es kostenlos dazu! Zum Beispiel kann jeder, weil unser @code{guile}-Jobset auf ci.guix.gnu.org erstellt wird und dort @command{guix publish} (siehe @ref{Aufruf von guix publish,,, guix.de, Referenzhandbuch zu GNU Guix}) zusätzlich zu Cuirass läuft, automatisch die Substitute für @code{guile}-Erstellungen von ci.guix.gnu.org beziehen; es ist dazu kein Mehraufwand nötig."
+
+#. type: section
+#: doc/guix-cookbook.texi:4609
+#, no-wrap
+msgid "Bonus: Build manifest"
+msgstr "Bonus: Erstellungs-Manifest"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4616
+msgid "The Cuirass spec above is convenient: it builds every package in our channel, which includes a few variants (@pxref{Setting Up Continuous Integration}). However, this might be insufficiently expressive in some cases: one might want specific cross-compilation jobs, transformations, Docker images, RPM/Deb packages, or even system tests."
+msgstr "Mit der Cuirass-Spezifikation oben können wir uns gut anfreunden: Jedes Paket in unserem Kanal wird erstellt, einschließlich einiger Varianten (siehe @ref{Setting Up Continuous Integration}). Allerdings können wir in manchen Fällen noch nicht alles ausdrücken, was wir möchten, etwa wenn wir in manchen Cuirass-Jobs cross-kompilieren möchten, Transformationen festlegen oder Docker-Abbilder, RPM-/Deb-Pakete oder sogar Systemtests wollen."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4621
+msgid "To achieve that, you can write a @dfn{manifest} (@pxref{Writing Manifests,,, guix, GNU Guix Reference Manual}). The one we have for Guile has entries for the package variants we defined above, as well as additional variants and cross builds:"
+msgstr "Das erreichen Sie, indem Sie ein @dfn{Manifest} mit den Angaben schreiben (siehe @ref{Manifeste verfassen,,, guix.de, Referenzhandbuch zu GNU Guix}). Das Manifest, was wir für Guile haben, hat Einträge für die oben definierten Paketvarianten sowie zusätzliche Varianten und Cross-Erstellungen:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4624
+#, no-wrap
+msgid ""
+";; This is ‘.guix/manifest.scm’.\n"
+"\n"
+msgstr ""
+";; Dies ist ‚.guix/manifest.scm‘.\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4628
+#, no-wrap
+msgid ""
+"(use-modules (guix)\n"
+" (guix profiles)\n"
+" (guile-package)) ;import our own package module\n"
+"\n"
+msgstr ""
+"(use-modules (guix)\n"
+" (guix profiles)\n"
+" (guile-package)) ;unser eigenes Paketmodul importieren\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4642
+#, no-wrap
+msgid ""
+"(define* (package->manifest-entry* package system\n"
+" #:key target)\n"
+" \"Return a manifest entry for PACKAGE on SYSTEM, optionally cross-compiled to\n"
+"TARGET.\"\n"
+" (manifest-entry\n"
+" (inherit (package->manifest-entry package))\n"
+" (name (string-append (package-name package) \".\" system\n"
+" (if target\n"
+" (string-append \".\" target)\n"
+" \"\")))\n"
+" (item (with-parameters ((%current-system system)\n"
+" (%current-target-system target))\n"
+" package))))\n"
+"\n"
+msgstr ""
+"(define* (package->manifest-entry* package system\n"
+" #:key target)\n"
+" \"Gibt einen Manifest-Eintrag für das Paket PACKAGE für SYSTEM\n"
+"zurück. Optional wird für das Zielsystem TARGET cross-kompiliert.\"\n"
+" (manifest-entry\n"
+" (inherit (package->manifest-entry package))\n"
+" (name (string-append (package-name package) \".\" system\n"
+" (if target\n"
+" (string-append \".\" target)\n"
+" \"\")))\n"
+" (item (with-parameters ((%current-system system)\n"
+" (%current-target-system target))\n"
+" package))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4647
+#, no-wrap
+msgid ""
+"(define native-builds\n"
+" (manifest\n"
+" (append (map (lambda (system)\n"
+" (package->manifest-entry* guile system))\n"
+"\n"
+msgstr ""
+"(define native-builds\n"
+" (manifest\n"
+" (append (map (lambda (system)\n"
+" (package->manifest-entry* guile system))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4664
+#, no-wrap
+msgid ""
+" '(\"x86_64-linux\" \"i686-linux\"\n"
+" \"aarch64-linux\" \"armhf-linux\"\n"
+" \"powerpc64le-linux\"))\n"
+" (map (lambda (guile)\n"
+" (package->manifest-entry* guile \"x86_64-linux\"))\n"
+" (cons (package\n"
+" (inherit (package-with-c-toolchain\n"
+" guile\n"
+" `((\"clang-toolchain\"\n"
+" ,(specification->package\n"
+" \"clang-toolchain\")))))\n"
+" (name \"guile-clang\"))\n"
+" (list guile-without-threads\n"
+" guile-without-networking\n"
+" guile-debug\n"
+" guile-strict-typing))))))\n"
+"\n"
+msgstr ""
+" '(\"x86_64-linux\" \"i686-linux\"\n"
+" \"aarch64-linux\" \"armhf-linux\"\n"
+" \"powerpc64le-linux\"))\n"
+" (map (lambda (guile)\n"
+" (package->manifest-entry* guile \"x86_64-linux\"))\n"
+" (cons (package\n"
+" (inherit (package-with-c-toolchain\n"
+" guile\n"
+" `((\"clang-toolchain\"\n"
+" ,(specification->package\n"
+" \"clang-toolchain\")))))\n"
+" (name \"guile-clang\"))\n"
+" (list guile-without-threads\n"
+" guile-without-networking\n"
+" guile-debug\n"
+" guile-strict-typing))))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4675
+#, no-wrap
+msgid ""
+"(define cross-builds\n"
+" (manifest\n"
+" (map (lambda (target)\n"
+" (package->manifest-entry* guile \"x86_64-linux\"\n"
+" #:target target))\n"
+" '(\"i586-pc-gnu\"\n"
+" \"aarch64-linux-gnu\"\n"
+" \"riscv64-linux-gnu\"\n"
+" \"i686-w64-mingw32\"\n"
+" \"x86_64-linux-gnu\"))))\n"
+"\n"
+msgstr ""
+"(define cross-builds\n"
+" (manifest\n"
+" (map (lambda (target)\n"
+" (package->manifest-entry* guile \"x86_64-linux\"\n"
+" #:target target))\n"
+" '(\"i586-pc-gnu\"\n"
+" \"aarch64-linux-gnu\"\n"
+" \"riscv64-linux-gnu\"\n"
+" \"i686-w64-mingw32\"\n"
+" \"x86_64-linux-gnu\"))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4677
+#, no-wrap
+msgid "(concatenate-manifests (list native-builds cross-builds))\n"
+msgstr "(concatenate-manifests (list native-builds cross-builds))\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4683
+msgid "We won't go into the details of this manifest; suffice to say that it provides additional flexibility. We now need to tell Cuirass to build this manifest, which is done with a spec slightly different from the previous one:"
+msgstr "Wir gehen nicht auf die Details dieses Manifests ein; es genügt zu wissen, dass wir dadurch mehr Flexibilität haben. Wir müssen jetzt Cuirass die Information geben, dass damit dieses Manifest erstellt werden soll; dazu verwenden wir eine leicht abgeänderte Spezifikation verglichen mit vorher:"
+
+#. type: lisp
+#: doc/guix-cookbook.texi:4695
+#, no-wrap
+msgid ""
+";; Cuirass spec file to build all the packages of the ‘guile’ channel.\n"
+"(list (specification\n"
+" (name \"guile\")\n"
+" (build '(manifest \".guix/manifest.scm\"))\n"
+" (channels\n"
+" (append (list (channel\n"
+" (name 'guile)\n"
+" (url \"https://git.savannah.gnu.org/git/guile.git\")\n"
+" (branch \"main\")))\n"
+" %default-channels))))\n"
+msgstr ""
+";; Cuirass-Spezifikationsdatei, um alle Pakete des ‚guile‘-Kanals zu erstellen.\n"
+"(list (specification\n"
+" (name \"guile\")\n"
+" (build '(manifest \".guix/manifest.scm\"))\n"
+" (channels\n"
+" (append (list (channel\n"
+" (name 'guile)\n"
+" (url \"https://git.savannah.gnu.org/git/guile.git\")\n"
+" (branch \"main\")))\n"
+" %default-channels))))\n"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4700
+msgid "We changed the @code{(build @dots{})} part of the spec to @code{'(manifest \".guix/manifest.scm\")} so that it would pick our manifest, and that's it!"
+msgstr "Wir haben im Teil @code{(build …)} der Spezifikation jetzt @code{'(manifest \".guix/manifest.scm\")} verwendet, damit unser Manifest genommen wird, und das war schon alles!"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4706
+msgid "We picked Guile as the running example in this chapter and you can see the result here:"
+msgstr "In diesem Kapitel haben wir die Vorgehensweise auf Guile angewandt und das Ergebnis lässt sich hier bestaunen:"
+
+#. type: itemize
+#: doc/guix-cookbook.texi:4710
+msgid "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix-channel?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix-channel}};"
+msgstr "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix-channel?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix-channel}},"
+
+#. type: itemize
+#: doc/guix-cookbook.texi:4713
+msgid "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix/modules/guile-package.scm?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix/modules/guile-package.scm}} with the top-level @file{guix.scm} symlink;"
+msgstr "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix/modules/guile-package.scm?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix/modules/guile-package.scm}} auch symbolisch verknüpft als @file{guix.scm} auf der oberstem Verzeichnisebene,"
+
+#. type: itemize
+#: doc/guix-cookbook.texi:4715
+msgid "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix/manifest.scm?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix/manifest.scm}}."
+msgstr "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix/manifest.scm?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix/manifest.scm}}."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4724
+msgid "These days, repositories are commonly peppered with dot files for various tools: @code{.envrc}, @code{.gitlab-ci.yml}, @code{.github/workflows}, @code{Dockerfile}, @code{.buildpacks}, @code{Aptfile}, @code{requirements.txt}, and whatnot. It may sound like we're proposing a bunch of @emph{additional} files, but in fact those files are expressive enough to @emph{supersede} most or all of those listed above."
+msgstr "Heutzutage werden Repositorys gemeinhin mit Dotfiles für vielerlei Werkzeuge angereichert: @code{.envrc}, @code{.gitlab-ci.yml}, @code{.github/workflows}, @code{Dockerfile}, @code{.buildpacks}, @code{Aptfile}, @code{requirements.txt} und Weiteres. Es wirkt so, als würden wir Sie zu @emph{noch mehr} Dateien überreden, jedoch können Sie mit diesen Dateien so viel ausdrücken, dass sie die meisten oder alle der oben genannten Dateien @emph{ersetzen}."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4726
+msgid "With a couple of files, we get support for:"
+msgstr "Mit wenigen Dateien bekommen wir Unterstützung für:"
+
+#. type: itemize
+#: doc/guix-cookbook.texi:4730
+msgid "development environments (@command{guix shell});"
+msgstr "Entwicklungsumgebungen (@command{guix shell}),"
+
+#. type: itemize
+#: doc/guix-cookbook.texi:4733
+msgid "pristine test builds, including for package variants and for cross-compilation (@command{guix build});"
+msgstr "Test-Erstellungen in naturbelassener Umgebung, auch für Paketvarianten und cross-kompiliert (@command{guix build}),"
+
+#. type: itemize
+#: doc/guix-cookbook.texi:4735
+msgid "continuous integration (with Cuirass or with some other tool);"
+msgstr "kontinuierliche Integration (ob mit Cuirass oder mit einem anderen Werkzeug),"
+
+#. type: itemize
+#: doc/guix-cookbook.texi:4738
+msgid "continuous delivery to users (@emph{via} the channel and with pre-built binaries);"
+msgstr "kontinuierliche Auslieferung an Nutzer (über den Kanal und mit vorerstellten Binärdateien),"
+
+#. type: itemize
+#: doc/guix-cookbook.texi:4741
+msgid "generation of derivative build artifacts such as Docker images or Deb/RPM packages (@command{guix pack})."
+msgstr "abgeleitete Erstellungsartefakte wie Docker-Abbildern oder Deb-/RPM-Pakete (@command{guix pack})."
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4746
+msgid "This a nice (in our view!) unified tool set for reproducible software deployment, and an illustration of how you as a developer can benefit from it!"
+msgstr "Das ist (wie wir es sehen) ein Schweizer Taschenmesser für reproduzierbare Software-Auslieferung und diese Erklärung sollte aufgezeigt haben, welchen Nutzen Sie als Entwickler daraus gewinnen können!"
+
+#. type: Plain text
+#: doc/guix-cookbook.texi:4754
msgid "Guix provides multiple tools to manage environment. This chapter demonstrate such utilities."
msgstr "Guix liefert mehrere Werkzeuge mit, um die Umgebung zu verwalten. Dieses Kapitel zeigt solche Werkzeuge."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3818
+#: doc/guix-cookbook.texi:4765
msgid "Guix provides a @samp{direnv} package, which could extend shell after directory change. This tool could be used to prepare a pure Guix environment."
msgstr "Guix stellt ein @samp{direnv}-Paket zur Verfügung, mit der die Shell nach einem Verzeichniswechsel erweitert werden kann. Dieses Werkzeug kann benutzt werden, um eine reine, „pure“ Guix-Umgebung vorzubereiten."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3824
+#: doc/guix-cookbook.texi:4771
msgid "The following example provides a shell function for @file{~/.direnvrc} file, which could be used from Guix Git repository in @file{~/src/guix/.envrc} file to setup a build environment similar to described in @pxref{Building from Git,,, guix, GNU Guix Reference Manual}."
msgstr "Das folgende Beispiel zeigt eine Shell-Funktion für die @file{~/.direnvrc}-Datei, die in einer Datei @file{~/src/guix/.envrc} in Guix’ Git-Repository benutzt werden kann, um eine zur Beschreibung im @ref{Erstellung aus dem Git,,, guix.de, Referenzhandbuch zu GNU Guix} ähnliche Erstellungsumgebung herzustellen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3826
+#: doc/guix-cookbook.texi:4773
msgid "Create a @file{~/.direnvrc} with a Bash code:"
msgstr "Erstellen Sie eine @file{~/.direnvrc} mit einem Bash-Code darin:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3844
+#: doc/guix-cookbook.texi:4791
#, no-wrap
msgid ""
"# Thanks <https://github.com/direnv/direnv/issues/73#issuecomment-152284914>\n"
@@ -6763,7 +8622,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3849
+#: doc/guix-cookbook.texi:4796
#, no-wrap
msgid ""
"use_guix()\n"
@@ -6779,7 +8638,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3852
+#: doc/guix-cookbook.texi:4799
#, no-wrap
msgid ""
" # Unset 'GUIX_PACKAGE_PATH'.\n"
@@ -6791,7 +8650,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3861
+#: doc/guix-cookbook.texi:4808
#, no-wrap
msgid ""
" # Recreate a garbage collector root.\n"
@@ -6815,7 +8674,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3876
+#: doc/guix-cookbook.texi:4823
#, no-wrap
msgid ""
" # Miscellaneous packages.\n"
@@ -6851,7 +8710,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3879
+#: doc/guix-cookbook.texi:4826
#, no-wrap
msgid ""
" # Environment packages.\n"
@@ -6863,7 +8722,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3882
+#: doc/guix-cookbook.texi:4829
#, no-wrap
msgid ""
" # Thanks <https://lists.gnu.org/archive/html/guix-devel/2016-09/msg00859.html>\n"
@@ -6875,7 +8734,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3889
+#: doc/guix-cookbook.texi:4836
#, no-wrap
msgid ""
" # Predefine configure flags.\n"
@@ -6895,7 +8754,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3900
+#: doc/guix-cookbook.texi:4847
#, no-wrap
msgid ""
" # Run make and optionally build something.\n"
@@ -6923,7 +8782,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3907
+#: doc/guix-cookbook.texi:4854
#, no-wrap
msgid ""
" # Predefine push Git command.\n"
@@ -6943,7 +8802,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3910
+#: doc/guix-cookbook.texi:4857
#, no-wrap
msgid ""
" clear # Clean up the screen.\n"
@@ -6955,7 +8814,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3918
+#: doc/guix-cookbook.texi:4865
#, no-wrap
msgid ""
" # Show commands help.\n"
@@ -6975,81 +8834,81 @@ msgstr ""
"@}\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3922
+#: doc/guix-cookbook.texi:4869
msgid "Every project containing @file{.envrc} with a string @code{use guix} will have predefined environment variables and procedures."
msgstr "Jedes Projekt, das eine @file{.envrc} mit einer Zeichenkette @code{use guix} enthält, wird vordefinierte Umgebungsvariable und Prozeduren verwenden."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3924
+#: doc/guix-cookbook.texi:4871
msgid "Run @command{direnv allow} to setup the environment for the first time."
msgstr "Führen Sie @command{direnv allow} aus, um die Umgebung bei der ersten Nutzung einzurichten."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:3930
+#: doc/guix-cookbook.texi:4877
#, no-wrap
msgid "cluster installation"
msgstr "Installation auf einem Cluster"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:3931
+#: doc/guix-cookbook.texi:4878
#, no-wrap
msgid "high-performance computing, HPC"
msgstr "Hochleistungsrechnen (HPC)"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:3932
+#: doc/guix-cookbook.texi:4879
#, no-wrap
msgid "HPC, high-performance computing"
msgstr "HPC, Hochleistungsrechnen"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3938
+#: doc/guix-cookbook.texi:4885
msgid "Guix is appealing to scientists and @acronym{HPC, high-performance computing} practitioners: it makes it easy to deploy potentially complex software stacks, and it lets you do so in a reproducible fashion---you can redeploy the exact same software on different machines and at different points in time."
msgstr "Guix eignet sich sehr für Forscher und jene, die sich mit Hochleistungsrechnen (@acronym{HPC, High-Performance Computing}) befassen: Komplexe Software-Stacks lassen sich leicht aufspielen und deren Zusammenstellung ist auch noch reproduzierbar@tie{}– Sie können genau die gleiche Software für andere Maschinen und zu einem späteren Zeitpunkt wieder installieren."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3944
+#: doc/guix-cookbook.texi:4891
msgid "In this chapter we look at how a cluster sysadmin can install Guix for system-wide use, such that it can be used on all the cluster nodes, and discuss the various tradeoffs@footnote{This chapter is adapted from a @uref{https://hpc.guix.info/blog/2017/11/installing-guix-on-a-cluster/, blog post published on the Guix-HPC web site in 2017}.}."
msgstr "In diesem Kapitel wird erörtert, wie der Systemadministrator eines Clusters auf diesem systemweit Guix zur Verfügung stellen kann, so dass es auf allen Knoten im Cluster benutzt werden kann. Außerdem gehen wir auf mögliche Probleme ein@footnote{Das Kapitel ist eine aufgearbeitete Fassung eines @uref{https://hpc.guix.info/blog/2017/11/installing-guix-on-a-cluster/, Blog-Eintrags auf dem Guix-HPC-Webauftritt von 2017}.}."
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:3948
+#: doc/guix-cookbook.texi:4895
msgid "Here we assume that the cluster is running a GNU/Linux distro other than Guix System and that we are going to install Guix on top of it."
msgstr "Wir gehen hier davon aus, dass auf dem Cluster eine andere GNU/Linux-Distribution als Guix System läuft und wir Guix auf dieser installieren werden."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3964
+#: doc/guix-cookbook.texi:4911
msgid "The recommended approach is to set up one @emph{head node} running @command{guix-daemon} and exporting @file{/gnu/store} over NFS to compute nodes."
msgstr "Unsere Empfehlung ist, eine Maschine zum Zentralrechner zu ernennen (als „Head Node“) und auf dieser @command{guix-daemon} auszuführen, wobei @file{/gnu/store} über NFS mit den Arbeitsrechnern („Compute Nodes“) geteilt wird."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3974
+#: doc/guix-cookbook.texi:4921
msgid "Remember that @command{guix-daemon} is responsible for spawning build processes and downloads on behalf of clients (@pxref{Invoking guix-daemon,,, guix, GNU Guix Reference Manual}), and more generally accessing @file{/gnu/store}, which contains all the package binaries built by all the users (@pxref{The Store,,, guix, GNU Guix Reference Manual}). ``Client'' here refers to all the Guix commands that users see, such as @code{guix install}. On a cluster, these commands may be running on the compute nodes and we'll want them to talk to the head node's @code{guix-daemon} instance."
msgstr "Zur Erinnerung: @command{guix-daemon} ist das Hintergrundprogramm, mit dem für Clients Erstellungsprozesse angelegt und Dateien heruntergeladen werden können (siehe @ref{Aufruf des guix-daemon,,, guix.de, Referenzhandbuch zu GNU Guix}), und das allgemein auf @file{/gnu/store} zugreift. Dort liegen dann alle Paket-Binärdateien, die irgendeiner der Nutzer erstellen lassen hat (siehe @ref{Der Store,,, guix.de, Referenzhandbuch zu GNU Guix}). Mit „Clients“ meinen wir die Guix-Befehle, die Benutzer aufgerufen haben, wie etwa @code{guix install}. Auf einem Cluster können diese Befehle auf den Arbeitsrechnern aufgerufen werden und dennoch werden wir sie mit der zentralen @code{guix-daemon}-Instanz sprechen lassen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3979
+#: doc/guix-cookbook.texi:4926
msgid "To begin with, the head node can be installed following the usual binary installation instructions (@pxref{Binary Installation,,, guix, GNU Guix Reference Manual}). Thanks to the installation script, this should be quick. Once installation is complete, we need to make some adjustments."
msgstr "Legen wir los. Für den Anfang folgen wir auf dem Zentralrechner der Anleitung zur Installation aus einer Binärdatei (siehe @ref{Aus Binärdatei installieren,,, guix.de, Referenzhandbuch zu GNU Guix}). Zum Glück gibt es das Installationsskript, so dass das schnell gehen dürfte. Wenn die Installation dann abgeschlossen ist, müssen wir daran Anpassungen vornehmen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3987
+#: doc/guix-cookbook.texi:4934
msgid "Since we want @code{guix-daemon} to be reachable not just from the head node but also from the compute nodes, we need to arrange so that it listens for connections over TCP/IP. To do that, we'll edit the systemd startup file for @command{guix-daemon}, @file{/etc/systemd/system/guix-daemon.service}, and add a @code{--listen} argument to the @code{ExecStart} line so that it looks something like this:"
msgstr "Weil wir möchten, dass @code{guix-daemon} @emph{nicht} nur auf dem Zentralrechner zugänglich ist, sondern von jedem der Arbeitsrechner erreicht wird, richten wir es so ein, dass er auf Verbindungen über TCP/IP lauscht. Dazu bearbeiten wir die systemd-Datei zum Start von @command{guix-daemon}, @file{/etc/systemd/system/guix-daemon.service}, und fügen ein Argument @code{--listen} zur @code{ExecStart}-Zeile hinzu. Diese sieht jetzt ungefähr so aus:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3990
+#: doc/guix-cookbook.texi:4937
#, no-wrap
msgid "ExecStart=/var/guix/profiles/per-user/root/current-guix/bin/guix-daemon --build-users-group=guixbuild --listen=/var/guix/daemon-socket/socket --listen=0.0.0.0\n"
msgstr "ExecStart=/var/guix/profiles/per-user/root/current-guix/bin/guix-daemon --build-users-group=guixbuild --listen=/var/guix/daemon-socket/socket --listen=0.0.0.0\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3993
+#: doc/guix-cookbook.texi:4940
msgid "For these changes to take effect, the service needs to be restarted:"
msgstr "Die Änderungen wirken sich erst aus, wenn der Dienst neu gestartet wurde:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3997
+#: doc/guix-cookbook.texi:4944
#, no-wrap
msgid ""
"systemctl daemon-reload\n"
@@ -7059,17 +8918,17 @@ msgstr ""
"systemctl restart guix-daemon\n"
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:4006
+#: doc/guix-cookbook.texi:4953
msgid "The @code{--listen=0.0.0.0} bit means that @code{guix-daemon} will process @emph{all} incoming TCP connections on port 44146 (@pxref{Invoking guix-daemon,,, guix, GNU Guix Reference Manual}). This is usually fine in a cluster setup where the head node is reachable exclusively from the cluster's local area network---you don't want that to be exposed to the Internet!"
msgstr "Mit @code{--listen=0.0.0.0} ist gemeint, dass @code{guix-daemon} @emph{alle} auf Port 44146 eingehenden TCP-Verbindungen annimmt (siehe @ref{Aufruf des guix-daemon,,, guix.de, Referenzhandbuch zu GNU Guix}). Das ist normalerweise auf Rechen-Clustern in Ordnung, weil der Zentralrechner für gewöhnlich ausschließlich vom lokalen Netzwerk des Clusters aus erreichbar ist@tie{}– unter keinen Umständen darf er für das gesamte Internet zugänglich sein!"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4011
+#: doc/guix-cookbook.texi:4958
msgid "The next step is to define our NFS exports in @uref{https://linux.die.net/man/5/exports,@file{/etc/exports}} by adding something along these lines:"
msgstr "Als Nächstes müssen wir unsere NFS-Freigaben in @uref{https://linux.die.net/man/5/exports,@file{/etc/exports}} definieren. Dazu fügen wir etwas wie hier hinzu:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4016
+#: doc/guix-cookbook.texi:4963
#, no-wrap
msgid ""
"/gnu/store *(ro)\n"
@@ -7081,33 +8940,33 @@ msgstr ""
"/var/log/guix *(ro)\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4023
+#: doc/guix-cookbook.texi:4970
msgid "The @file{/gnu/store} directory can be exported read-only since only @command{guix-daemon} on the master node will ever modify it. @file{/var/guix} contains @emph{user profiles} as managed by @code{guix package}; thus, to allow users to install packages with @code{guix package}, this must be read-write."
msgstr "Es genügt, das Verzeichnis @file{/gnu/store} nur lesbar zu exportieren, weil es nur durch @command{guix-daemon} auf dem Hauptknoten jemals verändert wird. In @file{/var/guix} befinden sich @emph{Benutzerprofile}, die man mit @command{guix package} anlegen kann. Damit Benutzer also Pakete mit @command{guix package} installieren können, muss Lese- und Schreibzugriff ermöglicht werden."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4033
+#: doc/guix-cookbook.texi:4980
msgid "Users can create as many profiles as they like in addition to the default profile, @file{~/.guix-profile}. For instance, @code{guix package -p ~/dev/python-dev -i python} installs Python in a profile reachable from the @code{~/dev/python-dev} symlink. To make sure that this profile is protected from garbage collection---i.e., that Python will not be removed from @file{/gnu/store} while this profile exists---, @emph{home directories should be mounted on the head node} as well so that @code{guix-daemon} knows about these non-standard profiles and avoids collecting software they refer to."
msgstr "Nutzer können so viele Profile anlegen, wie sie möchten, zusätzlich zum Standardprofil, @file{~/.guix-profile}. Zum Beispiel bekommt jemand, die @code{guix package -p ~/dev/python-dev -i python} ausführt, Python in einem Profil installiert, das über die symbolische Verknüpfung @code{~/dev/python-dev} erreichbar ist. Damit dieses Profil @emph{nicht} irgendwann vom Müllsammler weggeräumt wird@tie{}– d.h.@: damit Python nicht aus @file{/gnu/store} entfernt wird, solange dieses Profil existiert@tie{}–, @emph{müssen die Persönlichen Verzeichnisse in @file{/home} auch auf dem Zentralrechner eingebunden sein}. Wir wollen, dass @code{guix-daemon} über solche Nicht-Standard-Profile weiß, dass die darin referenzierte Software noch gebraucht wird."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4038
+#: doc/guix-cookbook.texi:4985
msgid "It may be a good idea to periodically remove unused bits from @file{/gnu/store} by running @command{guix gc} (@pxref{Invoking guix gc,,, guix, GNU Guix Reference Manual}). This can be done by adding a crontab entry on the head node:"
msgstr "Es kann allerdings sinnvoll sein, Software die @emph{nicht} gebraucht wird, regelmäßig aus @file{/gnu/store} zu löschen. Verwenden Sie dazu @command{guix gc} (siehe @ref{Aufruf von guix gc,,, guix.de, Referenzhandbuch zu GNU Guix}). Dazu können Sie so einen crontab-Eintrag auf dem Zentralknoten vornehmen:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4041
+#: doc/guix-cookbook.texi:4988
#, no-wrap
msgid "root@@master# crontab -e\n"
msgstr "root@@master# crontab -e\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4045
+#: doc/guix-cookbook.texi:4992
msgid "... with something like this:"
msgstr "… und schreiben Sie etwa:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4050
+#: doc/guix-cookbook.texi:4997
#, no-wrap
msgid ""
"# Every day at 5AM, run the garbage collector to make sure\n"
@@ -7119,17 +8978,17 @@ msgstr ""
"0 5 * * 1 /usr/local/bin/guix gc -F10G\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4053
+#: doc/guix-cookbook.texi:5000
msgid "We're done with the head node! Let's look at compute nodes now."
msgstr "So viel zum Zentralrechner! Jetzt geht’s an die Arbeitsknoten."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4060
+#: doc/guix-cookbook.texi:5007
msgid "First of all, we need compute nodes to mount those NFS directories that the head node exports. This can be done by adding the following lines to @uref{https://linux.die.net/man/5/fstab,@file{/etc/fstab}}:"
msgstr "Zunächst einmal müssen die Arbeitsknoten auch die NFS-Verzeichnisse einbinden, die vom Zentralrechner angeboten werden. Dafür müssen die folgenden Zeilen in @uref{https://linux.die.net/man/5/fstab,@file{/etc/fstab}} hinzugefügt werden:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4065
+#: doc/guix-cookbook.texi:5012
#, no-wrap
msgid ""
"@var{head-node}:/gnu/store /gnu/store nfs defaults,_netdev,vers=3 0 0\n"
@@ -7141,17 +9000,17 @@ msgstr ""
"@var{zentralrechner}:/var/log/guix /var/log/guix nfs defaults,_netdev,vers=3 0 0\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4071
+#: doc/guix-cookbook.texi:5018
msgid "... where @var{head-node} is the name or IP address of your head node. From there on, assuming the mount points exist, you should be able to mount each of these on the compute nodes."
msgstr "… wobei Sie anstelle von @var{zentralrechner} den Namen oder die IP-Adresse Ihres Zentralrechners hinterlegen. Von da an sollten Sie diese Verzeichnisse, wenn die Einhängepunkte auch existieren, jeweils auf den Arbeitsknoten einbinden können."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4077
+#: doc/guix-cookbook.texi:5024
msgid "Next, we need to provide a default @command{guix} command that users can run when they first connect to the cluster (eventually they will invoke @command{guix pull}, which will provide them with their ``own'' @command{guix} command). Similar to what the binary installation script did on the head node, we'll store that in @file{/usr/local/bin}:"
msgstr "Zudem müssen wir unseren Benutzern einen @command{guix}-Befehl vorinstallieren, den sie verwenden können, wenn sie sich zum ersten Mal mit dem Cluster verbinden (damit werden sie @command{guix pull} aufrufen, wodurch ihnen ihr „eigener“ @command{guix}-Befehl zur Verfügung gestellt wird). Analog zum Installationsskript der Guix-Binärdatei auf dem Zentralrechner werden wir unser @command{guix} ebenfalls in @file{/usr/local/bin} unterbringen:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4082
+#: doc/guix-cookbook.texi:5029
#, no-wrap
msgid ""
"mkdir -p /usr/local/bin\n"
@@ -7163,12 +9022,12 @@ msgstr ""
" /usr/local/bin/guix\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4086
+#: doc/guix-cookbook.texi:5033
msgid "We then need to tell @code{guix} to talk to the daemon running on our master node, by adding these lines to @code{/etc/profile}:"
msgstr "Wir müssen dafür sorgen, dass sich @code{guix} mit dem Daemon auf dem Zentralrechner verbindet, indem wir diese Zeilen zu @code{/etc/profile} hinzufügen:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4090
+#: doc/guix-cookbook.texi:5037
#, no-wrap
msgid ""
"GUIX_DAEMON_SOCKET=\"guix://@var{head-node}\"\n"
@@ -7178,12 +9037,12 @@ msgstr ""
"export GUIX_DAEMON_SOCKET\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4095
+#: doc/guix-cookbook.texi:5042
msgid "To avoid warnings and make sure @code{guix} uses the right locale, we need to tell it to use locale data provided by Guix (@pxref{Application Setup,,, guix, GNU Guix Reference Manual}):"
msgstr "Damit unseren Benutzern keine Warnungen angezeigt werden und damit @code{guix} die richtigen Locale-Spracheinstellungen benutzen kann, müssen wir angeben, wo die von Guix bereitgestellten Locale-Daten zu finden sind (siehe @ref{Anwendungen einrichten,,, guix.de, Referenzhandbuch zu GNU Guix}):"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4099
+#: doc/guix-cookbook.texi:5046
#, no-wrap
msgid ""
"GUIX_LOCPATH=/var/guix/profiles/per-user/root/guix-profile/lib/locale\n"
@@ -7195,7 +9054,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4104
+#: doc/guix-cookbook.texi:5051
#, no-wrap
msgid ""
"# Here we must use a valid locale name. Try \"ls $GUIX_LOCPATH/*\"\n"
@@ -7209,12 +9068,12 @@ msgstr ""
"export LC_ALL\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4111
+#: doc/guix-cookbook.texi:5058
msgid "For convenience, @code{guix package} automatically generates @file{~/.guix-profile/etc/profile}, which defines all the environment variables necessary to use the packages---@code{PATH}, @code{C_INCLUDE_PATH}, @code{PYTHONPATH}, etc. Thus it's a good idea to source it from @code{/etc/profile}:"
msgstr "Um die Nutzung zu vereinfachen, legt @code{guix package} selbstständig die Datei @file{~/.guix-profile/etc/profile} an, worin alle Umgebungsvariablen definiert sind, um die Pakete zu benutzen@tie{}– @code{PATH}, @code{C_INCLUDE_PATH}, @code{PYTHONPATH}, etc. Diese Definitionen sollten Sie daher in @code{/etc/profile} mit @code{source} laden lassen:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4117
+#: doc/guix-cookbook.texi:5064
#, no-wrap
msgid ""
"GUIX_PROFILE=\"$HOME/.guix-profile\"\n"
@@ -7228,65 +9087,65 @@ msgstr ""
"fi\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4121
+#: doc/guix-cookbook.texi:5068
msgid "Last but not least, Guix provides command-line completion notably for Bash and zsh. In @code{/etc/bashrc}, consider adding this line:"
msgstr "Zu guter Letzt können Guix-Befehle durch Bash und zsh ergänzt werden. In @code{/etc/bashrc} fügen Sie dazu diese Zeile hinzu:"
#. type: verbatim
-#: guix-git/doc/guix-cookbook.texi:4124
+#: doc/guix-cookbook.texi:5071
#, no-wrap
msgid ". /var/guix/profiles/per-user/root/current-guix/etc/bash_completion.d/guix\n"
msgstr ". /var/guix/profiles/per-user/root/current-guix/etc/bash_completion.d/guix\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4127
+#: doc/guix-cookbook.texi:5074
msgid "Voilà!"
msgstr "Erledigt!"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4130
+#: doc/guix-cookbook.texi:5077
msgid "You can check that everything's in place by logging in on a compute node and running:"
msgstr "Überprüfen Sie, dass alles klappt, indem Sie sich auf einem der Arbeitsrechner anmelden und dies ausführen:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4133
+#: doc/guix-cookbook.texi:5080
#, no-wrap
msgid "guix install hello\n"
msgstr "guix install hello\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4139
+#: doc/guix-cookbook.texi:5086
msgid "The daemon on the head node should download pre-built binaries on your behalf and unpack them in @file{/gnu/store}, and @command{guix install} should create @file{~/.guix-profile} containing the @file{~/.guix-profile/bin/hello} command."
msgstr "Daraufhin sollte der Daemon auf dem Zentralrechner für Sie die vorerstellten Binärdateien herunterladen und nach @file{/gnu/store} entpacken, wonach @command{guix install} dann @file{~/.guix-profile} anlegt und darin wird der Befehl @file{~/.guix-profile/bin/hello} zu finden sein."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:4141
+#: doc/guix-cookbook.texi:5088
#, no-wrap
msgid "Network Access"
msgstr "Netzwerkzugriff"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4146
+#: doc/guix-cookbook.texi:5093
msgid "Guix requires network access to download source code and pre-built binaries. The good news is that only the head node needs that since compute nodes simply delegate to it."
msgstr "Guix setzt voraus, dass Netzwerkzugriff besteht, um Quellcode und vorerstellte Binärdateien herunterzuladen. Die gute Nachricht ist, dass nur der Zentralrechner Netzwerkzugriff braucht, weil die Arbeitsrechner an diesen delegieren."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4152
+#: doc/guix-cookbook.texi:5099
msgid "It is customary for cluster nodes to have access at best to a @emph{white list} of hosts. Our head node needs at least @code{ci.guix.gnu.org} in this white list since this is where it gets pre-built binaries from by default, for all the packages that are in Guix proper."
msgstr "Üblicherweise haben Knoten im Cluster höchstens Zugriff auf eine ausgesuchte „Positivliste“ erlaubter Kommunikationspartner. Für den Zentralrechner muss zumindest @code{ci.guix.gnu.org} auf dieser Positivliste stehen, denn von dort stammen in der Vorgabeeinstellung die vorerstellten Binärdateien für alle Pakete, die das eigentliche Guix kennt."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4157
+#: doc/guix-cookbook.texi:5104
msgid "Incidentally, @code{ci.guix.gnu.org} also serves as a @emph{content-addressed mirror} of the source code of those packages. Consequently, it is sufficient to have @emph{only} @code{ci.guix.gnu.org} in that white list."
msgstr "Nebenbei ist @code{ci.guix.gnu.org} außerdem ein inhaltsadressierbarer Spiegelserver für die Quelldateien all dieser Pakete. Daher ist es ausreichend, wenn Sie @emph{nur} @code{ci.guix.gnu.org} auf die Positivliste setzen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4166
+#: doc/guix-cookbook.texi:5113
msgid "Software packages maintained in a separate repository such as one of the various @uref{https://hpc.guix.info/channels, HPC channels} are of course unavailable from @code{ci.guix.gnu.org}. For these packages, you may want to extend the white list such that source and pre-built binaries (assuming this-party servers provide binaries for these packages) can be downloaded. As a last resort, users can always download source on their workstation and add it to the cluster's @file{/gnu/store}, like this:"
msgstr "Software-Pakete, die in einem getrennten Repository angeboten werden wie beispielsweise den @uref{https://hpc.guix.info/channels, HPC-Kanälen}, können natürlich nicht von @code{ci.guix.gnu.org} bezogen werden. Für diese Pakete möchten Sie unter Umständen weitere Server auf die Positivliste setzen, von denen für die fremden Pakete Quell- und Binärdateien heruntergeladen werden können (vorausgesetzt jemand stellt vorerstellte Binärdateien für sie zur Verfügung). Wenn nicht, können Benutzer als Ausweg auch den Quellcode auf ihre Workstations herunterladen und dann in @file{/gnu/store} auf dem Cluster hochladen. Das geht so:"
#. type: verbatim
-#: guix-git/doc/guix-cookbook.texi:4170
+#: doc/guix-cookbook.texi:5117
#, no-wrap
msgid ""
"GUIX_DAEMON_SOCKET=ssh://compute-node.example.org \\\n"
@@ -7296,17 +9155,17 @@ msgstr ""
" guix download http://starpu.gforge.inria.fr/files/starpu-1.2.3/starpu-1.2.3.tar.gz\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4174
+#: doc/guix-cookbook.texi:5121
msgid "The above command downloads @code{starpu-1.2.3.tar.gz} @emph{and} sends it to the cluster's @code{guix-daemon} instance over SSH."
msgstr "Der obige Befehl lädt @code{starpu-1.2.3.tar.gz} herunter @emph{und} lässt es über SSH durch die @code{guix-daemon}-Instanz auf dem Cluster speichern."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4181
+#: doc/guix-cookbook.texi:5128
msgid "Air-gapped clusters require more work. At the moment, our suggestion would be to download all the necessary source code on a workstation running Guix. For instance, using the @option{--sources} option of @command{guix build} (@pxref{Invoking guix build,,, guix, GNU Guix Reference Manual}), the example below downloads all the source code the @code{openmpi} package depends on:"
msgstr "Wenn Ihr Cluster gänzlich von der Außenwelt abgeschnitten ist („air-gapped“), ist es aufwendiger. In diesem Fall würden wir dazu raten, dass sie sämtlichen nötigen Quellcode auf eine Workstation herunterladen, auf der Guix läuft. Dafür gibt es zum Beispiel die Befehlszeilenoption @option{--sources} für @command{guix build} (siehe @ref{Aufruf von guix build,,, guix.de, Referenzhandbuch zu GNU Guix}); folgendes Beispiel zeigt, wie Sie sämtlichen Quellcode, von dem das @code{openmpi}-Paket abhängt, herunterladen:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4184
+#: doc/guix-cookbook.texi:5131
#, no-wrap
msgid ""
"$ guix build --sources=transitive openmpi\n"
@@ -7316,7 +9175,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4186
+#: doc/guix-cookbook.texi:5133
#, no-wrap
msgid ""
"@dots{}\n"
@@ -7326,7 +9185,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4198
+#: doc/guix-cookbook.texi:5145
#, no-wrap
msgid ""
"/gnu/store/xc17sm60fb8nxadc4qy0c7rqph499z8s-openmpi-1.10.7.tar.bz2\n"
@@ -7354,17 +9213,17 @@ msgstr ""
"…\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4202
+#: doc/guix-cookbook.texi:5149
msgid "(In case you're wondering, that's more than 320@ MiB of @emph{compressed} source code.)"
msgstr "(Wenn Sie es genauer wissen wollen, haben wir hier mehr als 320@ MiB @emph{komprimierten} Quellcodes.)"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4205
+#: doc/guix-cookbook.texi:5152
msgid "We can then make a big archive containing all of this (@pxref{Invoking guix archive,,, guix, GNU Guix Reference Manual}):"
msgstr "Daraus lässt sich ein gesammeltes Archiv für all den Quellcode basteln (siehe @ref{Aufruf von guix archive,,, guix.de, Referenzhandbuch zu GNU Guix}):"
#. type: verbatim
-#: guix-git/doc/guix-cookbook.texi:4210
+#: doc/guix-cookbook.texi:5157
#, no-wrap
msgid ""
"$ guix archive --export \\\n"
@@ -7376,71 +9235,71 @@ msgstr ""
" > openmpi-quellcode.nar\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4214
+#: doc/guix-cookbook.texi:5161
msgid "@dots{} and we can eventually transfer that archive to the cluster on removable storage and unpack it there:"
msgstr "… und dieses Archiv können wir dann mittels Wechseldatenträgern auf den Cluster transportieren und dort entpacken:"
#. type: verbatim
-#: guix-git/doc/guix-cookbook.texi:4217
+#: doc/guix-cookbook.texi:5164
#, no-wrap
msgid "$ guix archive --import < openmpi-source-code.nar\n"
msgstr "$ guix archive --import < openmpi-quellcode.nar\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4221
+#: doc/guix-cookbook.texi:5168
msgid "This process has to be repeated every time new source code needs to be brought to the cluster."
msgstr "Wiederholen Sie diesen Vorgang, wann immer Sie neuen Quellcode auf den Cluster schaffen müssen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4225
+#: doc/guix-cookbook.texi:5172
msgid "As we write this, the research institutes involved in Guix-HPC do not have air-gapped clusters though. If you have experience with such setups, we would like to hear feedback and suggestions."
msgstr "Wir schreiben das, aber zum jetzigen Zeitpunkt haben die Forschungsinstitute, die mit Guix-HPC arbeiten, gar keinen Cluster mit Air Gap. Wenn Sie Erfahrung damit haben, freuen wir uns über Rückmeldungen und Vorschläge."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:4227
+#: doc/guix-cookbook.texi:5174
#, no-wrap
msgid "Disk Usage"
msgstr "Speicherplatz"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:4229
+#: doc/guix-cookbook.texi:5176
#, no-wrap
msgid "disk usage, on a cluster"
msgstr "Speicherplatz, auf einem Cluster"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4236
+#: doc/guix-cookbook.texi:5183
msgid "A common concern of sysadmins' is whether this is all going to eat a lot of disk space. If anything, if something is going to exhaust disk space, it's going to be scientific data sets rather than compiled software---that's our experience with almost ten years of Guix usage on HPC clusters. Nevertheless, it's worth taking a look at how Guix contributes to disk usage."
msgstr "Systemadministratoren sind oft besorgt, ob Guix nicht Unmengen an Plattenplatz verschlingen wird. Aber wenn überhaupt, werden wissenschaftliche Datensätze und nicht kompilierte Software die Speicherplatzfresser sein@tie{}– unserer Erfahrung nach, da wir schon fast zehn Jahre lang Guix auf HPC-Clustern betreiben. Trotzdem lohnt sich ein Blick, wie Guix zum Speicherplatzverbrauch beiträgt."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4241
+#: doc/guix-cookbook.texi:5188
msgid "First, having several versions or variants of a given package in @file{/gnu/store} does not necessarily cost much, because @command{guix-daemon} implements deduplication of identical files, and package variants are likely to have a number of common files."
msgstr "Zunächst einmal kostet es @emph{nicht} unbedingt viel, wenn mehrere Versionen oder Varianten eines bestimmten Pakets in @file{/gnu/store} liegen, weil @command{guix-daemon} gleiche Dateien dedupliziert und weil Paketvarianten in der Regel viele Dateien gemeinsam haben."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4248
+#: doc/guix-cookbook.texi:5195
msgid "As mentioned above, we recommend having a cron job to run @code{guix gc} periodically, which removes @emph{unused} software from @file{/gnu/store}. However, there's always a possibility that users will keep lots of software in their profiles, or lots of old generations of their profiles, which is ``live'' and cannot be deleted from the viewpoint of @command{guix gc}."
msgstr "Dann ist es, wie oben beschrieben, unsere Empfehlung, mit einem „Cron-Job“ regelmäßig @code{guix gc} aufzurufen, was @emph{nicht benutzte} Software aus @file{/gnu/store} löscht. Dennoch kann es sein, dass Benutzer eine ganze Menge Software in ihren Profilen übrig lassen oder dass sie viele alte Generationen ihrer Profile horten, die dann „lebendig“ sind und aus Sicht von @command{guix gc} @emph{nicht} gelöscht werden dürfen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4252
+#: doc/guix-cookbook.texi:5199
msgid "The solution to this is for users to regularly remove old generations of their profile. For instance, the following command removes generations that are more than two-month old:"
msgstr "Die Lösung besteht darin, dass Nutzer die alten Generationen ihrer Profile regelmäßig entfernen. Zum Beispiel werden mit folgendem Befehl alle Generationen entfernt, die älter als zwei Monate sind:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4255
+#: doc/guix-cookbook.texi:5202
#, no-wrap
msgid "guix package --delete-generations=2m\n"
msgstr "guix package --delete-generations=2m\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4260
+#: doc/guix-cookbook.texi:5207
msgid "Likewise, it's a good idea to invite users to regularly upgrade their profile, which can reduce the number of variants of a given piece of software stored in @file{/gnu/store}:"
msgstr "Ebenso ist es eine gute Idee, den Nutzern nahezulegen, dass sie ihre Profile regelmäßig auf den neuesten Stand aktualisieren, weil dann weniger Varianten einer Software in @file{/gnu/store} bleiben müssen:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4264
+#: doc/guix-cookbook.texi:5211
#, no-wrap
msgid ""
"guix pull\n"
@@ -7450,80 +9309,98 @@ msgstr ""
"guix upgrade\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4270
+#: doc/guix-cookbook.texi:5217
msgid "As a last resort, it is always possible for sysadmins to do some of this on behalf of their users. Nevertheless, one of the strengths of Guix is the freedom and control users get on their software environment, so we strongly recommend leaving users in control."
msgstr "Notfalls können Systemadministratoren die Profile teilweise anstelle der Nutzer bereinigen. Das widerspricht allerdings einem Vorteil von Guix, dass Benutzer viel Freiheit und Kontrolle über ihre Software-Umgebungen bekommen. Wir empfehlen deutlich, die Kontrolle bei den Benutzern zu lassen."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:4272
+#: doc/guix-cookbook.texi:5219
#, no-wrap
msgid "Security Considerations"
msgstr "Sicherheitsüberlegungen"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:4274
+#: doc/guix-cookbook.texi:5221
#, no-wrap
msgid "security, on a cluster"
msgstr "Sicherheit, auf einem Cluster"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4279
+#: doc/guix-cookbook.texi:5226
msgid "On an HPC cluster, Guix is typically used to manage scientific software. Security-critical software such as the operating system kernel and system services such as @code{sshd} and the batch scheduler remain under control of sysadmins."
msgstr "Auf einem Hochleistungs-Cluster wird mit Guix normalerweise wissenschaftliche Software verwaltet. Über sicherheitskritische Software wie den Betriebssystem-Kernel und Systemdienste wie @code{sshd} und „Batch“-Auftragsplaner haben weiterhin die Systemadministratoren die Kontrolle."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4284
+#: doc/guix-cookbook.texi:5231
msgid "The Guix project has a good track record delivering security updates in a timely fashion (@pxref{Security Updates,,, guix, GNU Guix Reference Manual}). To get security updates, users have to run @code{guix pull && guix upgrade}."
msgstr "Das Guix-Projekt kümmert sich zügig um Sicherheitsaktualisierungen (siehe @ref{Sicherheitsaktualisierungen,,, guix.de, Referenzhandbuch zu GNU Guix}). Um die Sicherheitsaktualisierungen zu bekommen, müssen Nutzer @command{guix pull && guix upgrade} ausführen."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4290
+#: doc/guix-cookbook.texi:5237
msgid "Because Guix uniquely identifies software variants, it is easy to see if a vulnerable piece of software is in use. For instance, to check whether the glibc@ 2.25 variant without the mitigation patch against ``@uref{https://www.qualys.com/2017/06/19/stack-clash/stack-clash.txt,Stack Clash}'', one can check whether user profiles refer to it at all:"
msgstr "Weil in Guix Software-Varianten eine eindeutige Bezeichnung haben, lässt es sich einfach überprüfen, ob jemand eine von Schwachstellen betroffene Software verwendet. Zum Beispiel kann man für die Variante von glibc@ 2.25, die den Patch zur Behebung der Sicherheitslücke namens „@uref{https://www.qualys.com/2017/06/19/stack-clash/stack-clash.txt,Stack Clash}“ noch nicht hat, prüfen, ob sie überhaupt in einem Benutzerprofil verwendet wird:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4293
+#: doc/guix-cookbook.texi:5240
#, no-wrap
msgid "guix gc --referrers /gnu/store/…-glibc-2.25\n"
msgstr "guix gc --referrers /gnu/store/…-glibc-2.25\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4297
+#: doc/guix-cookbook.texi:5244
msgid "This will report whether profiles exist that refer to this specific glibc variant."
msgstr "Dadurch werden Profile gemeldet, die diese bestimmte glibc-Variante verwenden."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4310
+#: doc/guix-cookbook.texi:5257
msgid "Guix is based on the @uref{https://nixos.org/nix/, Nix package manager}, which was designed and implemented by Eelco Dolstra, with contributions from other people (see the @file{nix/AUTHORS} file in Guix.) Nix pioneered functional package management, and promoted unprecedented features, such as transactional package upgrades and rollbacks, per-user profiles, and referentially transparent build processes. Without this work, Guix would not exist."
msgstr "Guix baut auf dem @uref{https://nixos.org/nix/, Nix-Paketverwaltungsprogramm} auf, das von Eelco Dolstra entworfen und entwickelt wurde, mit Beiträgen von anderen Leuten (siehe die Datei @file{nix/AUTHORS} in Guix). Nix hat für die funktionale Paketverwaltung die Pionierarbeit geleistet und noch nie dagewesene Funktionalitäten vorangetrieben wie transaktionsbasierte Paketaktualisierungen und die Rücksetzbarkeit selbiger, eigene Paketprofile für jeden Nutzer und referenziell transparente Erstellungsprozesse. Ohne diese Arbeit gäbe es Guix nicht.<"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4313
+#: doc/guix-cookbook.texi:5260
msgid "The Nix-based software distributions, Nixpkgs and NixOS, have also been an inspiration for Guix."
msgstr "Die Nix-basierten Software-Distributionen Nixpkgs und NixOS waren auch eine Inspiration für Guix."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4319
+#: doc/guix-cookbook.texi:5266
msgid "GNU@tie{}Guix itself is a collective work with contributions from a number of people. See the @file{AUTHORS} file in Guix for more information on these fine people. The @file{THANKS} file lists people who have helped by reporting bugs, taking care of the infrastructure, providing artwork and themes, making suggestions, and more---thank you!"
msgstr "GNU@tie{}Guix ist selbst das Produkt kollektiver Arbeit mit Beiträgen durch eine Vielzahl von Leuten. Siehe die Datei @file{AUTHORS} in Guix für mehr Informationen, wer diese wunderbaren Menschen sind. In der Datei @file{THANKS} finden Sie eine Liste der Leute, die uns geholfen haben, indem Sie Fehler gemeldet, sich um unsere Infrastruktur gekümmert, künstlerische Arbeit und schön gestaltete Themen beigesteuert, Vorschläge gemacht und noch vieles mehr getan haben@tie{}– vielen Dank!"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4324
+#: doc/guix-cookbook.texi:5271
msgid "This document includes adapted sections from articles that have previously been published on the Guix blog at @uref{https://guix.gnu.org/blog} and on the Guix-HPC blog at @uref{https://hpc.guix.info/blog}."
msgstr "Dieses Dokument enthält angepasste Abschnitte aus Einträgen, die zuvor auf dem Blog von Guix unter @uref{https://guix.gnu.org/blog} und dem Guix-HPC-Blog unter @uref{https://hpc.guix.info/blog} veröffentlicht wurden."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:4329
+#: doc/guix-cookbook.texi:5276
#, no-wrap
msgid "license, GNU Free Documentation License"
msgstr "Lizenz, GNU-Lizenz für freie Dokumentation"
#. type: include
-#: guix-git/doc/guix-cookbook.texi:4330
+#: doc/guix-cookbook.texi:5277
#, no-wrap
msgid "fdl-1.3.texi"
msgstr "fdl-1.3.texi"
+#~ msgid "Let's take an example:"
+#~ msgstr "Schauen wir uns ein Beispiel an:"
+
+#~ msgid "We have an environment for hacking on a project for which there isn't a Guix package yet. We build the environment using a manifest, and then run @code{guix environment -m manifest.scm}. So far so good."
+#~ msgstr "Wir haben eine Umgebung, in der wir an einem Projekt hacken können, für das es noch kein Guix-Paket gibt. Wir richten die Umgebung mit einem Manifest ein und führen dann @code{guix environment -m manifest.scm} aus. So weit so gut."
+
+#~ msgid "Many weeks pass and we have run a couple of @code{guix pull} in the mean time. Maybe a dependency from our manifest has been updated; or we may have run @code{guix gc} and some packages needed by our manifest have been garbage-collected."
+#~ msgstr "Nach vielen Wochen haben wir in der Zwischenzeit schon ein paarmal @code{guix pull} laufen lassen. Vielleicht wurde eine Abhängigkeit aus unserem Manifest aktualisiert oder wir könnten @code{guix gc} ausgeführt haben, so dass manche Pakete, die von unserem Manifest gebraucht würden, vom Müllsammler geholt worden sind."
+
+#~ msgid "Eventually, we set to work on that project again, so we run @code{guix shell -m manifest.scm}. But now we have to wait for Guix to build and install stuff!"
+#~ msgstr "Schließlich fangen wir wieder an, an dem Projekt zu arbeiten, also fÜhren wir @code{guix shell -m manifest.scm} aus. Aber jetzt müssen wir warten, bis Guix lauter Dinge erstellt und installiert hat!"
+
+#~ msgid "a manifest,"
+#~ msgstr "ein Manifest und"
+
+#~ msgid "a Guix channel specification."
+#~ msgstr "eine Kanalspezifikation für Guix."
+
#, fuzzy
#~| msgid "A ``Hello World'' package"
#~ msgid "A ``Hello World'' package::"
diff --git a/po/doc/guix-cookbook.fr.po b/po/doc/guix-cookbook.fr.po
index dc97c23946..8b00e0aa34 100644
--- a/po/doc/guix-cookbook.fr.po
+++ b/po/doc/guix-cookbook.fr.po
@@ -4,20 +4,21 @@
# Julien Lepiller <fedora-account@lepiller.eu>, 2021, 2022, 2023.
# Francois Polito <francois@polito.se>, 2021.
# tisse vert <tissevert+fedora@marvid.fr>, 2021.
+# Florian Pelz <pelzflorian@pelzflorian.de>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: guix manual checkout\n"
"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
-"POT-Creation-Date: 2023-09-02 03:18+0000\n"
-"PO-Revision-Date: 2023-09-08 17:21+0000\n"
-"Last-Translator: Julien Lepiller <fedora-account@lepiller.eu>\n"
+"POT-Creation-Date: 2023-10-25 03:18+0000\n"
+"PO-Revision-Date: 2023-10-31 21:52+0000\n"
+"Last-Translator: Florian Pelz <pelzflorian@pelzflorian.de>\n"
"Language-Team: French <https://translate.fedoraproject.org/projects/guix/documentation-cookbook/fr/>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.18.2\n"
+"X-Generator: Weblate 5.1.1\n"
#. type: Plain text
#: guix-git/doc/guix-cookbook.texi:7
@@ -36,7 +37,7 @@ msgstr "Livre de recettes de GNU Guix"
#. type: copying
#: guix-git/doc/guix-cookbook.texi:27
-msgid "Copyright @copyright{} 2019, 2022 Ricardo Wurmus@* Copyright @copyright{} 2019 Efraim Flashner@* Copyright @copyright{} 2019 Pierre Neidhardt@* Copyright @copyright{} 2020 Oleg Pykhalov@* Copyright @copyright{} 2020 Matthew Brooks@* Copyright @copyright{} 2020 Marcin Karpezo@* Copyright @copyright{} 2020 Brice Waegeneire@* Copyright @copyright{} 2020 André Batista@* Copyright @copyright{} 2020 Christine Lemmer-Webber@* Copyright @copyright{} 2021 Joshua Branson@* Copyright @copyright{} 2022, 2023 Maxim Cournoyer@* Copyright @copyright{} 2023 Ludovic Courtès Copyright @copyright{} 2023 Thomas Ieong"
+msgid "Copyright @copyright{} 2019, 2022 Ricardo Wurmus@* Copyright @copyright{} 2019 Efraim Flashner@* Copyright @copyright{} 2019 Pierre Neidhardt@* Copyright @copyright{} 2020 Oleg Pykhalov@* Copyright @copyright{} 2020 Matthew Brooks@* Copyright @copyright{} 2020 Marcin Karpezo@* Copyright @copyright{} 2020 Brice Waegeneire@* Copyright @copyright{} 2020 André Batista@* Copyright @copyright{} 2020 Christine Lemmer-Webber@* Copyright @copyright{} 2021 Joshua Branson@* Copyright @copyright{} 2022, 2023 Maxim Cournoyer@* Copyright @copyright{} 2023 Ludovic Courtès@* Copyright @copyright{} 2023 Thomas Ieong"
msgstr ""
"Copyright @copyright{} 2019, 2022 Ricardo Wurmus@*\n"
"Copyright @copyright{} 2019 Efraim Flashner@*\n"
@@ -103,636 +104,648 @@ msgid "This manual is also available in French (@pxref{Top,,, guix-cookbook.fr,
msgstr "Ce manuel est aussi disponible en anglais (@pxref{Top,,, guix-cookbook, GNU Guix Cookbook}), en allemand (@pxref{Top,,, guix-cookbook.de, GNU-Guix-Kochbuch}) et en slovaque (@pxref{Top,,, guix-cookbook.sk, Receptár GNU Guix}). Si vous désirez traduire ce document dans votre langue maternelle, rejoignez @uref{https://translate.fedoraproject.org/projects/guix/documentation-cookbook, Weblate} (@pxref{Traduire Guix,,, guix.fr, le manuel de référence de Guix})."
#. type: chapter
-#: guix-git/doc/guix-cookbook.texi:83 guix-git/doc/guix-cookbook.texi:92
-#: guix-git/doc/guix-cookbook.texi:185 guix-git/doc/guix-cookbook.texi:186
+#: guix-git/doc/guix-cookbook.texi:84 guix-git/doc/guix-cookbook.texi:93
+#: guix-git/doc/guix-cookbook.texi:186 guix-git/doc/guix-cookbook.texi:187
#, no-wrap
msgid "Scheme tutorials"
msgstr "Didacticiels pour Scheme"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:83
+#: guix-git/doc/guix-cookbook.texi:84
msgid "Meet your new favorite language!"
msgstr "Découvrez votre nouveau langage préféré !"
#. type: chapter
-#: guix-git/doc/guix-cookbook.texi:83 guix-git/doc/guix-cookbook.texi:96
-#: guix-git/doc/guix-cookbook.texi:478 guix-git/doc/guix-cookbook.texi:479
+#: guix-git/doc/guix-cookbook.texi:84 guix-git/doc/guix-cookbook.texi:97
+#: guix-git/doc/guix-cookbook.texi:479 guix-git/doc/guix-cookbook.texi:480
#, no-wrap
msgid "Packaging"
msgstr "Empaquetage"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:83
+#: guix-git/doc/guix-cookbook.texi:84
msgid "Packaging tutorials"
msgstr "Didacticiel d'empaquetage"
#. type: chapter
-#: guix-git/doc/guix-cookbook.texi:83 guix-git/doc/guix-cookbook.texi:123
-#: guix-git/doc/guix-cookbook.texi:1561 guix-git/doc/guix-cookbook.texi:1562
+#: guix-git/doc/guix-cookbook.texi:84 guix-git/doc/guix-cookbook.texi:124
+#: guix-git/doc/guix-cookbook.texi:1562 guix-git/doc/guix-cookbook.texi:1563
#, no-wrap
msgid "System Configuration"
msgstr "Configuration du système"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:83
+#: guix-git/doc/guix-cookbook.texi:84
msgid "Customizing the GNU System"
msgstr "Personnalisation du système GNU"
#. type: chapter
-#: guix-git/doc/guix-cookbook.texi:83 guix-git/doc/guix-cookbook.texi:148
-#: guix-git/doc/guix-cookbook.texi:3292 guix-git/doc/guix-cookbook.texi:3293
+#: guix-git/doc/guix-cookbook.texi:84 guix-git/doc/guix-cookbook.texi:149
+#: guix-git/doc/guix-cookbook.texi:3293 guix-git/doc/guix-cookbook.texi:3294
#, no-wrap
msgid "Containers"
msgstr "Conteneurs"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:83
+#: guix-git/doc/guix-cookbook.texi:84
msgid "Isolated environments and nested systems"
msgstr "Environnements isolés et systèmes imbriqués"
#. type: chapter
-#: guix-git/doc/guix-cookbook.texi:83 guix-git/doc/guix-cookbook.texi:158
-#: guix-git/doc/guix-cookbook.texi:3696 guix-git/doc/guix-cookbook.texi:3697
+#: guix-git/doc/guix-cookbook.texi:84 guix-git/doc/guix-cookbook.texi:159
+#: guix-git/doc/guix-cookbook.texi:3697 guix-git/doc/guix-cookbook.texi:3698
#, no-wrap
msgid "Advanced package management"
msgstr "Gestion avancée des paquets"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:83
+#: guix-git/doc/guix-cookbook.texi:84
msgid "Power to the users!"
msgstr "Le pouvoir aux utilisateurs !"
#. type: chapter
-#: guix-git/doc/guix-cookbook.texi:83 guix-git/doc/guix-cookbook.texi:170
-#: guix-git/doc/guix-cookbook.texi:4103 guix-git/doc/guix-cookbook.texi:4104
+#: guix-git/doc/guix-cookbook.texi:84 guix-git/doc/guix-cookbook.texi:4100
+#: guix-git/doc/guix-cookbook.texi:4101
+#, no-wrap
+msgid "Software Development"
+msgstr "Développement logiciel"
+
+#. type: menuentry
+#: guix-git/doc/guix-cookbook.texi:84
+msgid "Environments, continuous integration, etc."
+msgstr "Environnements, intégration continue, etc."
+
+#. type: chapter
+#: guix-git/doc/guix-cookbook.texi:84 guix-git/doc/guix-cookbook.texi:171
+#: guix-git/doc/guix-cookbook.texi:4749 guix-git/doc/guix-cookbook.texi:4750
#, no-wrap
msgid "Environment management"
msgstr "Gestion de l'environnement"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:83
+#: guix-git/doc/guix-cookbook.texi:84
msgid "Control environment"
msgstr "Environnement de contrôle"
#. type: chapter
-#: guix-git/doc/guix-cookbook.texi:83 guix-git/doc/guix-cookbook.texi:174
-#: guix-git/doc/guix-cookbook.texi:4228 guix-git/doc/guix-cookbook.texi:4229
+#: guix-git/doc/guix-cookbook.texi:84 guix-git/doc/guix-cookbook.texi:175
+#: guix-git/doc/guix-cookbook.texi:4874 guix-git/doc/guix-cookbook.texi:4875
#, no-wrap
msgid "Installing Guix on a Cluster"
msgstr "Installer Guix sur une grappe de calcul"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:83
+#: guix-git/doc/guix-cookbook.texi:84
msgid "High-performance computing."
msgstr "Calcul haute-performance."
#. type: chapter
-#: guix-git/doc/guix-cookbook.texi:87 guix-git/doc/guix-cookbook.texi:4601
-#: guix-git/doc/guix-cookbook.texi:4602
+#: guix-git/doc/guix-cookbook.texi:88 guix-git/doc/guix-cookbook.texi:5247
+#: guix-git/doc/guix-cookbook.texi:5248
#, no-wrap
msgid "Acknowledgments"
msgstr "Remerciements"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:87
+#: guix-git/doc/guix-cookbook.texi:88
msgid "Thanks!"
msgstr "Merci !"
#. type: appendix
-#: guix-git/doc/guix-cookbook.texi:87 guix-git/doc/guix-cookbook.texi:4628
-#: guix-git/doc/guix-cookbook.texi:4629
+#: guix-git/doc/guix-cookbook.texi:88 guix-git/doc/guix-cookbook.texi:5274
+#: guix-git/doc/guix-cookbook.texi:5275
#, no-wrap
msgid "GNU Free Documentation License"
msgstr "La licence GNU Free Documentation"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:87
+#: guix-git/doc/guix-cookbook.texi:88
msgid "The license of this document."
msgstr "La licence de ce document."
#. type: unnumbered
-#: guix-git/doc/guix-cookbook.texi:87 guix-git/doc/guix-cookbook.texi:4634
-#: guix-git/doc/guix-cookbook.texi:4635
+#: guix-git/doc/guix-cookbook.texi:88 guix-git/doc/guix-cookbook.texi:5280
+#: guix-git/doc/guix-cookbook.texi:5281
#, no-wrap
msgid "Concept Index"
msgstr "Index des concepts"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:87
+#: guix-git/doc/guix-cookbook.texi:88
msgid "Concepts."
msgstr "Les concepts."
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:90
+#: guix-git/doc/guix-cookbook.texi:91
msgid "--- The Detailed Node Listing ---"
msgstr "--- Liste détaillée des nœuds ---"
#. type: section
-#: guix-git/doc/guix-cookbook.texi:94 guix-git/doc/guix-cookbook.texi:201
-#: guix-git/doc/guix-cookbook.texi:203 guix-git/doc/guix-cookbook.texi:204
+#: guix-git/doc/guix-cookbook.texi:95 guix-git/doc/guix-cookbook.texi:202
+#: guix-git/doc/guix-cookbook.texi:204 guix-git/doc/guix-cookbook.texi:205
#, no-wrap
msgid "A Scheme Crash Course"
msgstr "Cours accéléré du langage Scheme"
#. type: section
-#: guix-git/doc/guix-cookbook.texi:98 guix-git/doc/guix-cookbook.texi:100
-#: guix-git/doc/guix-cookbook.texi:490 guix-git/doc/guix-cookbook.texi:492
-#: guix-git/doc/guix-cookbook.texi:493
+#: guix-git/doc/guix-cookbook.texi:99 guix-git/doc/guix-cookbook.texi:101
+#: guix-git/doc/guix-cookbook.texi:491 guix-git/doc/guix-cookbook.texi:493
+#: guix-git/doc/guix-cookbook.texi:494
#, no-wrap
msgid "Packaging Tutorial"
msgstr "Didacticiel d'empaquetage"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:98 guix-git/doc/guix-cookbook.texi:490
+#: guix-git/doc/guix-cookbook.texi:99 guix-git/doc/guix-cookbook.texi:491
msgid "A tutorial on how to add packages to Guix."
msgstr "Un didacticiel sur la manière d'ajouter des paquets à Guix."
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:109 guix-git/doc/guix-cookbook.texi:540
-#: guix-git/doc/guix-cookbook.texi:542 guix-git/doc/guix-cookbook.texi:543
+#: guix-git/doc/guix-cookbook.texi:110 guix-git/doc/guix-cookbook.texi:541
+#: guix-git/doc/guix-cookbook.texi:543 guix-git/doc/guix-cookbook.texi:544
#, no-wrap
msgid "A ``Hello World'' package"
msgstr "Un paquet « hello world »"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:109 guix-git/doc/guix-cookbook.texi:111
-#: guix-git/doc/guix-cookbook.texi:540 guix-git/doc/guix-cookbook.texi:733
-#: guix-git/doc/guix-cookbook.texi:734
+#: guix-git/doc/guix-cookbook.texi:110 guix-git/doc/guix-cookbook.texi:112
+#: guix-git/doc/guix-cookbook.texi:541 guix-git/doc/guix-cookbook.texi:734
+#: guix-git/doc/guix-cookbook.texi:735
#, no-wrap
msgid "Setup"
msgstr "Configuration"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:109 guix-git/doc/guix-cookbook.texi:540
-#: guix-git/doc/guix-cookbook.texi:973 guix-git/doc/guix-cookbook.texi:974
+#: guix-git/doc/guix-cookbook.texi:110 guix-git/doc/guix-cookbook.texi:541
+#: guix-git/doc/guix-cookbook.texi:974 guix-git/doc/guix-cookbook.texi:975
#, no-wrap
msgid "Extended example"
msgstr "Exemple avancé"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:109 guix-git/doc/guix-cookbook.texi:540
-#: guix-git/doc/guix-cookbook.texi:1377 guix-git/doc/guix-cookbook.texi:1378
+#: guix-git/doc/guix-cookbook.texi:110 guix-git/doc/guix-cookbook.texi:541
+#: guix-git/doc/guix-cookbook.texi:1378 guix-git/doc/guix-cookbook.texi:1379
#, no-wrap
msgid "Other build systems"
msgstr "Autres systèmes de construction"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:109 guix-git/doc/guix-cookbook.texi:117
-#: guix-git/doc/guix-cookbook.texi:540 guix-git/doc/guix-cookbook.texi:1395
-#: guix-git/doc/guix-cookbook.texi:1396
+#: guix-git/doc/guix-cookbook.texi:110 guix-git/doc/guix-cookbook.texi:118
+#: guix-git/doc/guix-cookbook.texi:541 guix-git/doc/guix-cookbook.texi:1396
+#: guix-git/doc/guix-cookbook.texi:1397
#, no-wrap
msgid "Programmable and automated package definition"
msgstr "Définition programmable et automatisée"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:109 guix-git/doc/guix-cookbook.texi:540
-#: guix-git/doc/guix-cookbook.texi:1512 guix-git/doc/guix-cookbook.texi:1513
+#: guix-git/doc/guix-cookbook.texi:110 guix-git/doc/guix-cookbook.texi:541
+#: guix-git/doc/guix-cookbook.texi:1513 guix-git/doc/guix-cookbook.texi:1514
#, no-wrap
msgid "Getting help"
msgstr "Se faire aider"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:109 guix-git/doc/guix-cookbook.texi:540
-#: guix-git/doc/guix-cookbook.texi:1525 guix-git/doc/guix-cookbook.texi:1526
+#: guix-git/doc/guix-cookbook.texi:110 guix-git/doc/guix-cookbook.texi:541
+#: guix-git/doc/guix-cookbook.texi:1526 guix-git/doc/guix-cookbook.texi:1527
#, no-wrap
msgid "Conclusion"
msgstr "Conclusion"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:109 guix-git/doc/guix-cookbook.texi:540
-#: guix-git/doc/guix-cookbook.texi:1546 guix-git/doc/guix-cookbook.texi:1547
+#: guix-git/doc/guix-cookbook.texi:110 guix-git/doc/guix-cookbook.texi:541
+#: guix-git/doc/guix-cookbook.texi:1547 guix-git/doc/guix-cookbook.texi:1548
#, no-wrap
msgid "References"
msgstr "Références"
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:115 guix-git/doc/guix-cookbook.texi:751
-#: guix-git/doc/guix-cookbook.texi:753 guix-git/doc/guix-cookbook.texi:754
+#: guix-git/doc/guix-cookbook.texi:116 guix-git/doc/guix-cookbook.texi:752
+#: guix-git/doc/guix-cookbook.texi:754 guix-git/doc/guix-cookbook.texi:755
#, no-wrap
msgid "Local file"
msgstr "Fichier local"
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:115 guix-git/doc/guix-cookbook.texi:751
-#: guix-git/doc/guix-cookbook.texi:773 guix-git/doc/guix-cookbook.texi:774
+#: guix-git/doc/guix-cookbook.texi:116 guix-git/doc/guix-cookbook.texi:752
+#: guix-git/doc/guix-cookbook.texi:774 guix-git/doc/guix-cookbook.texi:775
#, no-wrap
msgid "Channels"
msgstr "Canaux"
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:115 guix-git/doc/guix-cookbook.texi:751
-#: guix-git/doc/guix-cookbook.texi:887 guix-git/doc/guix-cookbook.texi:888
+#: guix-git/doc/guix-cookbook.texi:116 guix-git/doc/guix-cookbook.texi:752
+#: guix-git/doc/guix-cookbook.texi:888 guix-git/doc/guix-cookbook.texi:889
#, no-wrap
msgid "Direct checkout hacking"
msgstr "Bidouillage direct dans le dépôt git"
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:121 guix-git/doc/guix-cookbook.texi:1407
-#: guix-git/doc/guix-cookbook.texi:1409 guix-git/doc/guix-cookbook.texi:1410
+#: guix-git/doc/guix-cookbook.texi:122 guix-git/doc/guix-cookbook.texi:1408
+#: guix-git/doc/guix-cookbook.texi:1410 guix-git/doc/guix-cookbook.texi:1411
#, no-wrap
msgid "Recursive importers"
msgstr "Les importateurs récursifs"
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:121 guix-git/doc/guix-cookbook.texi:1407
-#: guix-git/doc/guix-cookbook.texi:1468 guix-git/doc/guix-cookbook.texi:1469
+#: guix-git/doc/guix-cookbook.texi:122 guix-git/doc/guix-cookbook.texi:1408
+#: guix-git/doc/guix-cookbook.texi:1469 guix-git/doc/guix-cookbook.texi:1470
#, no-wrap
msgid "Automatic update"
msgstr "Mise à jour automatique"
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:121 guix-git/doc/guix-cookbook.texi:1407
-#: guix-git/doc/guix-cookbook.texi:1486 guix-git/doc/guix-cookbook.texi:1487
+#: guix-git/doc/guix-cookbook.texi:122 guix-git/doc/guix-cookbook.texi:1408
+#: guix-git/doc/guix-cookbook.texi:1487 guix-git/doc/guix-cookbook.texi:1488
#, no-wrap
msgid "Inheritance"
msgstr "Héritage"
#. type: section
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
-#: guix-git/doc/guix-cookbook.texi:1587 guix-git/doc/guix-cookbook.texi:1588
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
+#: guix-git/doc/guix-cookbook.texi:1588 guix-git/doc/guix-cookbook.texi:1589
#, no-wrap
msgid "Auto-Login to a Specific TTY"
msgstr "Connexion automatique à un TTY donné"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
msgid "Automatically Login a User to a Specific TTY"
msgstr "Connecter automatiquement un utilisateur sur un TTY donné"
#. type: section
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
-#: guix-git/doc/guix-cookbook.texi:1632 guix-git/doc/guix-cookbook.texi:1633
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
+#: guix-git/doc/guix-cookbook.texi:1633 guix-git/doc/guix-cookbook.texi:1634
#, no-wrap
msgid "Customizing the Kernel"
msgstr "Personnalisation du noyau"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
msgid "Creating and using a custom Linux kernel on Guix System."
msgstr "Créer et utiliser un noyau Linux personnalisé sur le système Guix."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
-#: guix-git/doc/guix-cookbook.texi:1870 guix-git/doc/guix-cookbook.texi:1871
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
+#: guix-git/doc/guix-cookbook.texi:1871 guix-git/doc/guix-cookbook.texi:1872
#, no-wrap
msgid "Guix System Image API"
msgstr "L'API de création d'images du système Guix"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
msgid "Customizing images to target specific platforms."
msgstr "Personnaliser des images pour des plateformes particulières."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
-#: guix-git/doc/guix-cookbook.texi:2087 guix-git/doc/guix-cookbook.texi:2088
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
+#: guix-git/doc/guix-cookbook.texi:2088 guix-git/doc/guix-cookbook.texi:2089
#, no-wrap
msgid "Using security keys"
msgstr "Utiliser des clés de sécurité"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
msgid "How to use security keys with Guix System."
msgstr "Comment utiliser des clés de sécurité avec le système Guix."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
-#: guix-git/doc/guix-cookbook.texi:2209 guix-git/doc/guix-cookbook.texi:2210
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
+#: guix-git/doc/guix-cookbook.texi:2210 guix-git/doc/guix-cookbook.texi:2211
#, no-wrap
msgid "Dynamic DNS mcron job"
msgstr "Tâche mcron pour le DNS dynamique"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
msgid "Job to update the IP address behind a DuckDNS host name."
msgstr "Tâche pour mettre à jour l'adresse IP derrière un nom d'hôte DuckDNS."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
-#: guix-git/doc/guix-cookbook.texi:2262 guix-git/doc/guix-cookbook.texi:2263
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
+#: guix-git/doc/guix-cookbook.texi:2263 guix-git/doc/guix-cookbook.texi:2264
#, no-wrap
msgid "Connecting to Wireguard VPN"
msgstr "Se connecter à un VPN Wireguard"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
msgid "Connecting to a Wireguard VPN."
msgstr "Se connecter à un VPN Wireguard."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:139
-#: guix-git/doc/guix-cookbook.texi:1585 guix-git/doc/guix-cookbook.texi:2339
-#: guix-git/doc/guix-cookbook.texi:2340
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:140
+#: guix-git/doc/guix-cookbook.texi:1586 guix-git/doc/guix-cookbook.texi:2340
+#: guix-git/doc/guix-cookbook.texi:2341
#, no-wrap
msgid "Customizing a Window Manager"
msgstr "Personnaliser un gestionnaire de fenêtres"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
msgid "Handle customization of a Window manager on Guix System."
msgstr "Gérer la personnalisation d'un gestionnaire de fenêtres sur le système Guix."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
-#: guix-git/doc/guix-cookbook.texi:2442 guix-git/doc/guix-cookbook.texi:2443
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
+#: guix-git/doc/guix-cookbook.texi:2443 guix-git/doc/guix-cookbook.texi:2444
#, no-wrap
msgid "Running Guix on a Linode Server"
msgstr "Lancer Guix sur un serveur Linode"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
msgid "Running Guix on a Linode Server."
msgstr "Lancer Guix sur un serveur Linode."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
-#: guix-git/doc/guix-cookbook.texi:2685 guix-git/doc/guix-cookbook.texi:2686
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
+#: guix-git/doc/guix-cookbook.texi:2686 guix-git/doc/guix-cookbook.texi:2687
#, no-wrap
msgid "Running Guix on a Kimsufi Server"
msgstr "Lancer Guix sur un serveur Kimsufi"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
msgid "Running Guix on a Kimsufi Server."
msgstr "Lancer Guix sur un serveur Kimsufi."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
-#: guix-git/doc/guix-cookbook.texi:2932 guix-git/doc/guix-cookbook.texi:2933
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
+#: guix-git/doc/guix-cookbook.texi:2933 guix-git/doc/guix-cookbook.texi:2934
#, no-wrap
msgid "Setting up a bind mount"
msgstr "Mettre en place un montage dupliqué"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
msgid "Setting up a bind mount in the file-systems definition."
msgstr "Mettre en place un montage dupliqué dans une définition de système de fichiers."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
-#: guix-git/doc/guix-cookbook.texi:2981 guix-git/doc/guix-cookbook.texi:2982
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
+#: guix-git/doc/guix-cookbook.texi:2982 guix-git/doc/guix-cookbook.texi:2983
#, no-wrap
msgid "Getting substitutes from Tor"
msgstr "Récupérer des substituts via Tor"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
msgid "Configuring Guix daemon to get substitutes through Tor."
msgstr "Configurer le démon Guix pour récupérer les substituts via Tor."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
-#: guix-git/doc/guix-cookbook.texi:3045 guix-git/doc/guix-cookbook.texi:3046
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
+#: guix-git/doc/guix-cookbook.texi:3046 guix-git/doc/guix-cookbook.texi:3047
#, no-wrap
msgid "Setting up NGINX with Lua"
msgstr "Configurer NGINX avec Lua"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
msgid "Configuring NGINX web-server to load Lua modules."
msgstr "Configurer le serveur web NGINX pour qu'il charge des modules Lua."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
-#: guix-git/doc/guix-cookbook.texi:3102 guix-git/doc/guix-cookbook.texi:3103
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
+#: guix-git/doc/guix-cookbook.texi:3103 guix-git/doc/guix-cookbook.texi:3104
#, no-wrap
msgid "Music Server with Bluetooth Audio"
msgstr "Serveur de musique avec l'audio bluetooth"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:137 guix-git/doc/guix-cookbook.texi:1585
+#: guix-git/doc/guix-cookbook.texi:138 guix-git/doc/guix-cookbook.texi:1586
msgid "Headless music player with Bluetooth output."
msgstr "Lecteur de musique sans affichage avec entrée bluetooth."
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:142 guix-git/doc/guix-cookbook.texi:2346
-#: guix-git/doc/guix-cookbook.texi:2348 guix-git/doc/guix-cookbook.texi:2349
+#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:2347
+#: guix-git/doc/guix-cookbook.texi:2349 guix-git/doc/guix-cookbook.texi:2350
#, no-wrap
msgid "StumpWM"
msgstr "StumpWM"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:142 guix-git/doc/guix-cookbook.texi:144
-#: guix-git/doc/guix-cookbook.texi:2346 guix-git/doc/guix-cookbook.texi:2394
-#: guix-git/doc/guix-cookbook.texi:2395
+#: guix-git/doc/guix-cookbook.texi:143 guix-git/doc/guix-cookbook.texi:145
+#: guix-git/doc/guix-cookbook.texi:2347 guix-git/doc/guix-cookbook.texi:2395
+#: guix-git/doc/guix-cookbook.texi:2396
#, no-wrap
msgid "Session lock"
msgstr "Verrouillage de session"
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:146 guix-git/doc/guix-cookbook.texi:2405
-#: guix-git/doc/guix-cookbook.texi:2407 guix-git/doc/guix-cookbook.texi:2408
+#: guix-git/doc/guix-cookbook.texi:147 guix-git/doc/guix-cookbook.texi:2406
+#: guix-git/doc/guix-cookbook.texi:2408 guix-git/doc/guix-cookbook.texi:2409
#, no-wrap
msgid "Xorg"
msgstr "Xorg"
#. type: section
-#: guix-git/doc/guix-cookbook.texi:151 guix-git/doc/guix-cookbook.texi:3319
-#: guix-git/doc/guix-cookbook.texi:3321 guix-git/doc/guix-cookbook.texi:3322
+#: guix-git/doc/guix-cookbook.texi:152 guix-git/doc/guix-cookbook.texi:3320
+#: guix-git/doc/guix-cookbook.texi:3322 guix-git/doc/guix-cookbook.texi:3323
#, no-wrap
msgid "Guix Containers"
msgstr "Conteneurs Guix"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:151 guix-git/doc/guix-cookbook.texi:3319
+#: guix-git/doc/guix-cookbook.texi:152 guix-git/doc/guix-cookbook.texi:3320
msgid "Perfectly isolated environments"
msgstr "Environnements parfaitement isolés"
#. type: section
-#: guix-git/doc/guix-cookbook.texi:151 guix-git/doc/guix-cookbook.texi:153
-#: guix-git/doc/guix-cookbook.texi:3319 guix-git/doc/guix-cookbook.texi:3470
-#: guix-git/doc/guix-cookbook.texi:3471
+#: guix-git/doc/guix-cookbook.texi:152 guix-git/doc/guix-cookbook.texi:154
+#: guix-git/doc/guix-cookbook.texi:3320 guix-git/doc/guix-cookbook.texi:3471
+#: guix-git/doc/guix-cookbook.texi:3472
#, no-wrap
msgid "Guix System Containers"
msgstr "Conteneurs pour le système Guix"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:151 guix-git/doc/guix-cookbook.texi:3319
+#: guix-git/doc/guix-cookbook.texi:152 guix-git/doc/guix-cookbook.texi:3320
msgid "A system inside your system"
msgstr "Un système dans votre système"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:156 guix-git/doc/guix-cookbook.texi:3505
-#: guix-git/doc/guix-cookbook.texi:3507 guix-git/doc/guix-cookbook.texi:3508
+#: guix-git/doc/guix-cookbook.texi:157 guix-git/doc/guix-cookbook.texi:3506
+#: guix-git/doc/guix-cookbook.texi:3508 guix-git/doc/guix-cookbook.texi:3509
#, no-wrap
msgid "A Database Container"
msgstr "Un conteneur de base de données"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:156 guix-git/doc/guix-cookbook.texi:3505
-#: guix-git/doc/guix-cookbook.texi:3619 guix-git/doc/guix-cookbook.texi:3620
+#: guix-git/doc/guix-cookbook.texi:157 guix-git/doc/guix-cookbook.texi:3506
+#: guix-git/doc/guix-cookbook.texi:3620 guix-git/doc/guix-cookbook.texi:3621
#, no-wrap
msgid "Container Networking"
msgstr "Utilisation du réseau dans le conteneur"
#. type: section
-#: guix-git/doc/guix-cookbook.texi:160 guix-git/doc/guix-cookbook.texi:162
-#: guix-git/doc/guix-cookbook.texi:3710 guix-git/doc/guix-cookbook.texi:3712
-#: guix-git/doc/guix-cookbook.texi:3713
+#: guix-git/doc/guix-cookbook.texi:161 guix-git/doc/guix-cookbook.texi:163
+#: guix-git/doc/guix-cookbook.texi:3711 guix-git/doc/guix-cookbook.texi:3713
+#: guix-git/doc/guix-cookbook.texi:3714
#, no-wrap
msgid "Guix Profiles in Practice"
msgstr "Les profils Guix en pratique"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:160 guix-git/doc/guix-cookbook.texi:3710
+#: guix-git/doc/guix-cookbook.texi:161 guix-git/doc/guix-cookbook.texi:3711
msgid "Strategies for multiple profiles and manifests."
msgstr "Stratégies pour gérer plusieurs profils et manifestes."
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:168 guix-git/doc/guix-cookbook.texi:3794
-#: guix-git/doc/guix-cookbook.texi:3796 guix-git/doc/guix-cookbook.texi:3797
+#: guix-git/doc/guix-cookbook.texi:169 guix-git/doc/guix-cookbook.texi:3805
+#: guix-git/doc/guix-cookbook.texi:3807 guix-git/doc/guix-cookbook.texi:3808
#, no-wrap
msgid "Basic setup with manifests"
msgstr "Utilisation de base avec des manifestes"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:168 guix-git/doc/guix-cookbook.texi:3794
-#: guix-git/doc/guix-cookbook.texi:3929 guix-git/doc/guix-cookbook.texi:3930
+#: guix-git/doc/guix-cookbook.texi:169 guix-git/doc/guix-cookbook.texi:3805
+#: guix-git/doc/guix-cookbook.texi:3940 guix-git/doc/guix-cookbook.texi:3941
#, no-wrap
msgid "Required packages"
msgstr "Paquets requis"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:168 guix-git/doc/guix-cookbook.texi:3794
-#: guix-git/doc/guix-cookbook.texi:3957 guix-git/doc/guix-cookbook.texi:3958
+#: guix-git/doc/guix-cookbook.texi:169 guix-git/doc/guix-cookbook.texi:3805
+#: guix-git/doc/guix-cookbook.texi:3968 guix-git/doc/guix-cookbook.texi:3969
#, no-wrap
msgid "Default profile"
msgstr "Profil par défaut"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:168 guix-git/doc/guix-cookbook.texi:3794
-#: guix-git/doc/guix-cookbook.texi:3976 guix-git/doc/guix-cookbook.texi:3977
+#: guix-git/doc/guix-cookbook.texi:169 guix-git/doc/guix-cookbook.texi:3805
+#: guix-git/doc/guix-cookbook.texi:3987 guix-git/doc/guix-cookbook.texi:3988
#, no-wrap
msgid "The benefits of manifests"
msgstr "Les avantages des manifestes"
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:168 guix-git/doc/guix-cookbook.texi:3794
-#: guix-git/doc/guix-cookbook.texi:4066 guix-git/doc/guix-cookbook.texi:4067
+#: guix-git/doc/guix-cookbook.texi:169 guix-git/doc/guix-cookbook.texi:3805
+#: guix-git/doc/guix-cookbook.texi:4062 guix-git/doc/guix-cookbook.texi:4063
#, no-wrap
msgid "Reproducible profiles"
msgstr "Profils reproductibles"
#. type: section
-#: guix-git/doc/guix-cookbook.texi:172 guix-git/doc/guix-cookbook.texi:4111
-#: guix-git/doc/guix-cookbook.texi:4113 guix-git/doc/guix-cookbook.texi:4114
+#: guix-git/doc/guix-cookbook.texi:173 guix-git/doc/guix-cookbook.texi:4757
+#: guix-git/doc/guix-cookbook.texi:4759 guix-git/doc/guix-cookbook.texi:4760
#, no-wrap
msgid "Guix environment via direnv"
msgstr "Environnement Guix avec direnv"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:172 guix-git/doc/guix-cookbook.texi:4111
+#: guix-git/doc/guix-cookbook.texi:173 guix-git/doc/guix-cookbook.texi:4757
msgid "Setup Guix environment with direnv"
msgstr "Créer un environnement Guix avec direnv"
#. type: section
-#: guix-git/doc/guix-cookbook.texi:180 guix-git/doc/guix-cookbook.texi:4257
-#: guix-git/doc/guix-cookbook.texi:4259 guix-git/doc/guix-cookbook.texi:4260
+#: guix-git/doc/guix-cookbook.texi:181 guix-git/doc/guix-cookbook.texi:4903
+#: guix-git/doc/guix-cookbook.texi:4905 guix-git/doc/guix-cookbook.texi:4906
#, no-wrap
msgid "Setting Up a Head Node"
msgstr "Mettre en place un nœud principal"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:180 guix-git/doc/guix-cookbook.texi:4257
+#: guix-git/doc/guix-cookbook.texi:181 guix-git/doc/guix-cookbook.texi:4903
msgid "The node that runs the daemon."
msgstr "Le nœud qui fait tourner le démon."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:180 guix-git/doc/guix-cookbook.texi:4257
-#: guix-git/doc/guix-cookbook.texi:4355 guix-git/doc/guix-cookbook.texi:4356
+#: guix-git/doc/guix-cookbook.texi:181 guix-git/doc/guix-cookbook.texi:4903
+#: guix-git/doc/guix-cookbook.texi:5001 guix-git/doc/guix-cookbook.texi:5002
#, no-wrap
msgid "Setting Up Compute Nodes"
msgstr "Mettre en place des nœuds de calcul"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:180 guix-git/doc/guix-cookbook.texi:4257
+#: guix-git/doc/guix-cookbook.texi:181 guix-git/doc/guix-cookbook.texi:4903
msgid "Client nodes."
msgstr "Les nœuds clients."
#. type: node
-#: guix-git/doc/guix-cookbook.texi:180 guix-git/doc/guix-cookbook.texi:4257
-#: guix-git/doc/guix-cookbook.texi:4441
+#: guix-git/doc/guix-cookbook.texi:181 guix-git/doc/guix-cookbook.texi:4903
+#: guix-git/doc/guix-cookbook.texi:5087
#, no-wrap
msgid "Cluster Network Access"
msgstr "Accès réseau de la grappe"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:180 guix-git/doc/guix-cookbook.texi:4257
+#: guix-git/doc/guix-cookbook.texi:181 guix-git/doc/guix-cookbook.texi:4903
msgid "Dealing with network access restrictions."
msgstr "Gérer les restrictions d'accès réseau."
#. type: node
-#: guix-git/doc/guix-cookbook.texi:180 guix-git/doc/guix-cookbook.texi:4257
-#: guix-git/doc/guix-cookbook.texi:4527
+#: guix-git/doc/guix-cookbook.texi:181 guix-git/doc/guix-cookbook.texi:4903
+#: guix-git/doc/guix-cookbook.texi:5173
#, no-wrap
msgid "Cluster Disk Usage"
msgstr "Utilisation de disque de la grappe"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:180 guix-git/doc/guix-cookbook.texi:4257
+#: guix-git/doc/guix-cookbook.texi:181 guix-git/doc/guix-cookbook.texi:4903
msgid "Disk usage considerations."
msgstr "Considérations d'utilisation de l'espace disque."
#. type: node
-#: guix-git/doc/guix-cookbook.texi:180 guix-git/doc/guix-cookbook.texi:4257
-#: guix-git/doc/guix-cookbook.texi:4572
+#: guix-git/doc/guix-cookbook.texi:181 guix-git/doc/guix-cookbook.texi:4903
+#: guix-git/doc/guix-cookbook.texi:5218
#, no-wrap
msgid "Cluster Security Considerations"
msgstr "Considérations de sécurité de la grappe"
#. type: menuentry
-#: guix-git/doc/guix-cookbook.texi:180 guix-git/doc/guix-cookbook.texi:4257
+#: guix-git/doc/guix-cookbook.texi:181 guix-git/doc/guix-cookbook.texi:4903
msgid "Keeping the cluster secure."
msgstr "Garder votre grappe sécurisée."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:192
+#: guix-git/doc/guix-cookbook.texi:193
msgid "GNU@tie{}Guix is written in the general purpose programming language Scheme, and many of its features can be accessed and manipulated programmatically. You can use Scheme to generate package definitions, to modify them, to build them, to deploy whole operating systems, etc."
msgstr "GNU@tie{}Guix est écrit dans le langage de programmation Scheme. Nombre de ses fonctionnalités peuvent être consultées et manipulées par programmation. Vous pouvez utiliser Scheme entre autres pour générer des définitions de paquets, pour les modifier, pour les compiler ou pour déployer des systèmes d'exploitation entiers."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:196
+#: guix-git/doc/guix-cookbook.texi:197
msgid "Knowing the basics of how to program in Scheme will unlock many of the advanced features Guix provides --- and you don't even need to be an experienced programmer to use them!"
msgstr "Connaître les bases de la programmation en Scheme vous permettra d'utiliser de nombreuses fonctionnalités avancées de Guix --- et vous n'avez pas besoin d'être un·e programmeur·euse chevronné·e !"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:198
+#: guix-git/doc/guix-cookbook.texi:199
msgid "Let's get started!"
msgstr "C'est parti !"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:206
+#: guix-git/doc/guix-cookbook.texi:207
#, no-wrap
msgid "Scheme, crash course"
msgstr "Scheme, cours accéléré"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:212
+#: guix-git/doc/guix-cookbook.texi:213
msgid "Guix uses the Guile implementation of Scheme. To start playing with the language, install it with @code{guix install guile} and start a @dfn{REPL}---short for @uref{https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop, @dfn{read-eval-print loop}}---by running @code{guile} from the command line."
msgstr "Guix utilise l'implémentation Guile du langage Scheme. Pour commencer à jouer avec le langage, installez-le avec @code{guix install guile} et démarrer une @dfn{BLÉA} (@dfn{REPL} en anglais), une @uref{https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop, @dfn{boucle de lecture, évaluation, affichage}}, en lançant @code{guile} sur la ligne de commande."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:215
+#: guix-git/doc/guix-cookbook.texi:216
msgid "Alternatively you can also run @code{guix shell guile -- guile} if you'd rather not have Guile installed in your user profile."
msgstr "Vous pouvez également lancer la commande @code{guix shell guile -- guile} si vous préférez ne pas installer Guile dans votre profil utilisateur."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:221
+#: guix-git/doc/guix-cookbook.texi:222
msgid "In the following examples, lines show what you would type at the REPL; lines starting with ``@result{}'' show evaluation results, while lines starting with ``@print{}'' show things that get printed. @xref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}, for more details on the REPL."
msgstr "Dans les exemples suivants, les lignes montrent ce que vous devez taper sur la REPL ; les lignes commençant par « @result{} » montrent le résultat de l'évaluation, tandis que les lignes commençant par « @print{} » montrent ce qui est affiché. @xref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}, pour plus d'information sur la REPL."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:229
+#: guix-git/doc/guix-cookbook.texi:230
msgid "Scheme syntax boils down to a tree of expressions (or @emph{s-expression} in Lisp lingo). An expression can be a literal such as numbers and strings, or a compound which is a parenthesized list of compounds and literals. @code{#true} and @code{#false} (abbreviated @code{#t} and @code{#f}) stand for the Booleans ``true'' and ``false'', respectively."
msgstr "La syntaxe de Scheme se résume à un arbre d'expressions (ou une @emph{s-expression} dans le jargon Lisp). Une expression peut être un litéral comme un nombre ou une chaîne de caractères, ou composée d'une liste d'autres éléments composés et litéraux, entourée de parenthèses. @code{#true} et @code{#false} (abrégés @code{#t} et @code{#f}) correspondent aux booléens « vrai » et « faux »."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:231
+#: guix-git/doc/guix-cookbook.texi:232
msgid "Examples of valid expressions:"
msgstr "Voici des exemples d'expressions valides :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:235
+#: guix-git/doc/guix-cookbook.texi:236
#, no-wrap
msgid ""
"\"Hello World!\"\n"
@@ -744,7 +757,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:238
+#: guix-git/doc/guix-cookbook.texi:239
#, no-wrap
msgid ""
"17\n"
@@ -756,7 +769,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:242
+#: guix-git/doc/guix-cookbook.texi:243
#, no-wrap
msgid ""
"(display (string-append \"Hello \" \"Guix\" \"\\n\"))\n"
@@ -768,17 +781,17 @@ msgstr ""
"@result{} #<unspecified>\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:249
+#: guix-git/doc/guix-cookbook.texi:250
msgid "This last example is a function call nested in another function call. When a parenthesized expression is evaluated, the first term is the function and the rest are the arguments passed to the function. Every function returns the last evaluated expression as its return value."
msgstr "Ce dernier exemple est un appel de fonction imbriqué dans un autre appel de fonction. Lorsqu'une expression parenthésée est évaluée, le premier élément est la fonction et le reste sont les arguments passés à la fonction. Chaque fonction renvoie la dernière expression évaluée."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:253
+#: guix-git/doc/guix-cookbook.texi:254
msgid "Anonymous functions---@dfn{procedures} in Scheme parlance---are declared with the @code{lambda} term:"
msgstr "On peut déclarer des fonctions anonymes — des @dfn{procédures} en Scheme — avec le terme @code{lambda} :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:257
+#: guix-git/doc/guix-cookbook.texi:258
#, no-wrap
msgid ""
"(lambda (x) (* x x))\n"
@@ -788,12 +801,12 @@ msgstr ""
"@result{} #<procedure 120e348 at <unknown port>:24:0 (x)>\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:262
+#: guix-git/doc/guix-cookbook.texi:263
msgid "The above procedure returns the square of its argument. Since everything is an expression, the @code{lambda} expression returns an anonymous procedure, which can in turn be applied to an argument:"
msgstr "La procédure ci-dessus renvoie le carré de son argument. Comme tout est une expression, l'expression @code{lambda} renvoie une procédure anonyme, qui peut ensuite être appliquée à un argument :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:266
+#: guix-git/doc/guix-cookbook.texi:267
#, no-wrap
msgid ""
"((lambda (x) (* x x)) 3)\n"
@@ -803,17 +816,17 @@ msgstr ""
"@result{} 9\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:270
+#: guix-git/doc/guix-cookbook.texi:271
msgid "Procedures are regular values just like numbers, strings, Booleans, and so on."
msgstr "Les procédures sont des valeurs normales comme les nombres, les chaines de caractère, les booléens, etc."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:273
+#: guix-git/doc/guix-cookbook.texi:274
msgid "Anything can be assigned a global name with @code{define}:"
msgstr "On peut assigner un nom global à tout ce qu'on veut avec @code{define} :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:279
+#: guix-git/doc/guix-cookbook.texi:280
#, no-wrap
msgid ""
"(define a 3)\n"
@@ -827,23 +840,23 @@ msgstr ""
"@result{} 9\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:283
+#: guix-git/doc/guix-cookbook.texi:284
msgid "Procedures can be defined more concisely with the following syntax:"
msgstr "On peut définir des procédure de manière plus concise avec la syntaxe suivante :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:286
+#: guix-git/doc/guix-cookbook.texi:287
#, no-wrap
msgid "(define (square x) (* x x))\n"
msgstr "(define (square x) (* x x))\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:290
+#: guix-git/doc/guix-cookbook.texi:291
msgid "A list structure can be created with the @code{list} procedure:"
msgstr "On peut créer une structure de liste avec la procédure @code{list} :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:294
+#: guix-git/doc/guix-cookbook.texi:295
#, no-wrap
msgid ""
"(list 2 a 5 7)\n"
@@ -853,12 +866,12 @@ msgstr ""
"@result{} (2 3 5 7)\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:301
+#: guix-git/doc/guix-cookbook.texi:302
msgid "Standard procedures are provided by the @code{(srfi srfi-1)} module to create and process lists (@pxref{SRFI-1, list processing,, guile, GNU Guile Reference Manual}). Here are some of the most useful ones in action:"
msgstr "Des procédures standards sont fournies par le module @code{(srfi srfi-1)} pour créer et traiter des listes (@pxref{SRFI-1, list processing,, guile, le manuel de référence de GNU Guile}). Voici certaines des plus utiles en action :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:304
+#: guix-git/doc/guix-cookbook.texi:305
#, no-wrap
msgid ""
"(use-modules (srfi srfi-1)) ;import list processing procedures\n"
@@ -868,7 +881,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:307
+#: guix-git/doc/guix-cookbook.texi:308
#, no-wrap
msgid ""
"(append (list 1 2) (list 3 4))\n"
@@ -880,7 +893,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:310
+#: guix-git/doc/guix-cookbook.texi:311
#, no-wrap
msgid ""
"(map (lambda (x) (* x x)) (list 1 2 3 4))\n"
@@ -892,7 +905,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:315
+#: guix-git/doc/guix-cookbook.texi:316
#, no-wrap
msgid ""
"(delete 3 (list 1 2 3 4)) @result{} (1 2 4)\n"
@@ -906,23 +919,23 @@ msgstr ""
"(find number? (list \"a\" 42 \"b\")) @result{} 42\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:319
+#: guix-git/doc/guix-cookbook.texi:320
msgid "Notice how the first argument to @code{map}, @code{filter}, @code{remove}, and @code{find} is a procedure!"
msgstr "Remarquez que le premier argument de @code{map}, @code{filter}, @code{remove} et @code{find} est une procédure !"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:321
+#: guix-git/doc/guix-cookbook.texi:322
#, no-wrap
msgid "S-expression"
msgstr "S-expression"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:326
+#: guix-git/doc/guix-cookbook.texi:327
msgid "The @dfn{quote} disables evaluation of a parenthesized expression, also called an S-expression or ``s-exp'': the first term is not called over the other terms (@pxref{Expression Syntax, quote,, guile, GNU Guile Reference Manual}). Thus it effectively returns a list of terms."
msgstr "La @dfn{quote} (l'apostrophe) désactive l'évaluation d'une expression parenthésée, aussi appelée S-expression ou « s-exp » : le premier élément n'est pas appelé avec les autres éléments en argument (@pxref{Expression Syntax, quote,, guile, GNU Guile Reference Manual}). Donc, il renvoie une liste de termes."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:330
+#: guix-git/doc/guix-cookbook.texi:331
#, no-wrap
msgid ""
"'(display (string-append \"Hello \" \"Guix\" \"\\n\"))\n"
@@ -934,7 +947,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:333
+#: guix-git/doc/guix-cookbook.texi:334
#, no-wrap
msgid ""
"'(2 a 5 7)\n"
@@ -944,12 +957,12 @@ msgstr ""
"@result{} (2 a 5 7)\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:340
+#: guix-git/doc/guix-cookbook.texi:341
msgid "The @code{quasiquote} (@code{`}, a backquote) disables evaluation of a parenthesized expression until @code{unquote} (@code{,}, a comma) re-enables it. Thus it provides us with fine-grained control over what is evaluated and what is not."
msgstr "La @code{quasiquote} (@code{`}, l'apostrophe à l'envers) désactive l'évaluation d'une expression parenthésée jusqu'à ce qu'un @code{unquote} (@code{,}, une virgule) la réactive. De cette manière, on garde un contrôle fin sur ce qui est évalué et sur ce qui ne l'est pas."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:344
+#: guix-git/doc/guix-cookbook.texi:345
#, no-wrap
msgid ""
"`(2 a 5 7 (2 ,a 5 ,(+ a 4)))\n"
@@ -959,58 +972,58 @@ msgstr ""
"@result{} (2 a 5 7 (2 3 5 7))\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:348
+#: guix-git/doc/guix-cookbook.texi:349
msgid "Note that the above result is a list of mixed elements: numbers, symbols (here @code{a}) and the last element is a list itself."
msgstr "Remarquez que le résultat ci-dessus est une liste d'éléments mixtes : des nombres, des symboles (ici @code{a}) et le dernier élément est aussi une liste."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:350
+#: guix-git/doc/guix-cookbook.texi:351
#, no-wrap
msgid "G-expressions, syntax"
msgstr "G-expressions, syntaxe"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:351
+#: guix-git/doc/guix-cookbook.texi:352
#, no-wrap
msgid "gexps, syntax"
msgstr "gexps, syntaxe"
#. type: findex
-#: guix-git/doc/guix-cookbook.texi:352
+#: guix-git/doc/guix-cookbook.texi:353
#, no-wrap
msgid "#~"
msgstr "#~"
#. type: findex
-#: guix-git/doc/guix-cookbook.texi:353
+#: guix-git/doc/guix-cookbook.texi:354
#, no-wrap
msgid "#$"
msgstr "#$"
#. type: findex
-#: guix-git/doc/guix-cookbook.texi:354
+#: guix-git/doc/guix-cookbook.texi:355
#, no-wrap
msgid "gexp"
msgstr "gexp"
#. type: findex
-#: guix-git/doc/guix-cookbook.texi:355
+#: guix-git/doc/guix-cookbook.texi:356
#, no-wrap
msgid "ungexp"
msgstr "ungexp"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:361
+#: guix-git/doc/guix-cookbook.texi:362
msgid "Guix defines a variant of S-expressions on steroids called @dfn{G-expressions} or ``gexps'', which come with a variant of @code{quasiquote} and @code{unquote}: @code{#~} (or @code{gexp}) and @code{#$} (or @code{ungexp}). They let you @emph{stage code for later execution}."
msgstr "Guix définit une variante des S-expressions gonflées aux stéroïdes appelées @dfn{G-expressions} ou « gexps », qui fournit une variante de @code{quasiquote} et @code{unquote} : @code{#~} (ou @code{gexp}) et @code{#$} (ou @code{ungexp}). Elles vous permettent @emph{d'échelonner du code pour une future exécution}."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:365
+#: guix-git/doc/guix-cookbook.texi:366
msgid "For example, you'll encounter gexps in some package definitions where they provide code to be executed during the package build process. They look like this:"
msgstr "Par exemple, vous rencontrerez des gexps dans certaines définitions de paquets qui fournissent du code à exécuter pendant la construction du paquet. Elles ressemblent à ceci :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:369
+#: guix-git/doc/guix-cookbook.texi:370
#, no-wrap
msgid ""
"(use-modules (guix gexp) ;so we can write gexps\n"
@@ -1022,7 +1035,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:375
+#: guix-git/doc/guix-cookbook.texi:376
#, no-wrap
msgid ""
";; Below is a G-expression representing staged code.\n"
@@ -1040,7 +1053,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:378
+#: guix-git/doc/guix-cookbook.texi:379
#, no-wrap
msgid ""
" ;; Create this package's output directory.\n"
@@ -1050,17 +1063,17 @@ msgstr ""
" (mkdir #$output))\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:382
+#: guix-git/doc/guix-cookbook.texi:383
msgid "@xref{G-Expressions,,, guix, GNU Guix Reference Manual}, for more on gexps."
msgstr "@xref{G-Expressions,,, guix, le manuel de référence de GNU Guix}, pour plus de détails sur les gexps."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:386
+#: guix-git/doc/guix-cookbook.texi:387
msgid "Multiple variables can be named locally with @code{let} (@pxref{Local Bindings,,, guile, GNU Guile Reference Manual}):"
msgstr "On peut nommer localement plusieurs variables avec @code{let} (@pxref{Local Bindings,,, guile, GNU Guile Reference Manual}) :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:393
+#: guix-git/doc/guix-cookbook.texi:394
#, no-wrap
msgid ""
"(define x 10)\n"
@@ -1078,7 +1091,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:396
+#: guix-git/doc/guix-cookbook.texi:397
#, no-wrap
msgid ""
"x\n"
@@ -1090,7 +1103,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:399
+#: guix-git/doc/guix-cookbook.texi:400
#, no-wrap
msgid ""
"y\n"
@@ -1100,12 +1113,12 @@ msgstr ""
"@error{} In procedure module-lookup: Unbound variable: y\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:403
+#: guix-git/doc/guix-cookbook.texi:404
msgid "Use @code{let*} to allow later variable declarations to refer to earlier definitions."
msgstr "On peut utiliser @code{let*} pour permettre au déclarations de variables ultérieures d'utiliser les définitions précédentes."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:409
+#: guix-git/doc/guix-cookbook.texi:410
#, no-wrap
msgid ""
"(let* ((x 2)\n"
@@ -1119,22 +1132,22 @@ msgstr ""
"@result{} (2 6)\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:416
+#: guix-git/doc/guix-cookbook.texi:417
msgid "@dfn{Keywords} are typically used to identify the named parameters of a procedure. They are prefixed by @code{#:} (hash, colon) followed by alphanumeric characters: @code{#:like-this}. @xref{Keywords,,, guile, GNU Guile Reference Manual}."
msgstr "On utilise typiquement des @dfn{mot-clés} pour identifier les paramètres nommés d'une procédure. Ils sont précédés de @code{#:} (dièse, deux-points) suivi par des caractères alphanumériques : @code{#:comme-ça}. @xref{Keywords,,, guile, GNU Guile Reference Manual}."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:421
+#: guix-git/doc/guix-cookbook.texi:422
msgid "The percentage @code{%} is typically used for read-only global variables in the build stage. Note that it is merely a convention, like @code{_} in C. Scheme treats @code{%} exactly the same as any other letter."
msgstr "On utilise souvent le signe pourcent @code{%} pour les variables globales non modifiables à l'étape de construction. Remarquez que ce n'est qu'une convention, comme @code{_} en C. Scheme traite @code{%} de la même manière que les autres lettres."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:425
+#: guix-git/doc/guix-cookbook.texi:426
msgid "Modules are created with @code{define-module} (@pxref{Creating Guile Modules,,, guile, GNU Guile Reference Manual}). For instance"
msgstr "On peut créer des modules avec @code{define-module} (@pxref{Creating Guile Modules,,, guile, GNU Guile Reference Manual}). Par exemple :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:431
+#: guix-git/doc/guix-cookbook.texi:432
#, no-wrap
msgid ""
"(define-module (guix build-system ruby)\n"
@@ -1148,48 +1161,48 @@ msgstr ""
" ruby-build-system))\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:437
+#: guix-git/doc/guix-cookbook.texi:438
msgid "defines the module @code{guix build-system ruby} which must be located in @file{guix/build-system/ruby.scm} somewhere in the Guile load path. It depends on the @code{(guix store)} module and it exports two variables, @code{ruby-build} and @code{ruby-build-system}."
msgstr "défini le module @code{guix build-system ruby} qui doit se situer dans @file{guix/build-system/ruby.scm} quelque part dans le chemin de recherche de Guile. Il dépend du module @code{(guix store)} et exporte deux variables, @code{ruby-build} et @code{ruby-build-system}."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:440
+#: guix-git/doc/guix-cookbook.texi:441
msgid "@xref{Package Modules,,, guix, GNU Guix Reference Manual}, for info on modules that define packages."
msgstr "@xref{Package Modules,,, guix, le manuel de référence de GNU Guix}, pour plus d'information sur les modules qui définissent des paquets."
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:442
+#: guix-git/doc/guix-cookbook.texi:443
#, no-wrap
msgid "Going further"
msgstr "Pour aller plus loin"
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:446
+#: guix-git/doc/guix-cookbook.texi:447
msgid "Scheme is a language that has been widely used to teach programming and you'll find plenty of material using it as a vehicle. Here's a selection of documents to learn more about Scheme:"
msgstr "Scheme est un langage qui a été beaucoup utilisé pour enseigner la programmation et vous trouverez plein de supports qui l'utilisent. Voici une liste de documents qui vous en apprendront plus sur le Scheme :"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:451
+#: guix-git/doc/guix-cookbook.texi:452
msgid "@uref{https://spritely.institute/static/papers/scheme-primer.html, @i{A Scheme Primer}}, by Christine Lemmer-Webber and the Spritely Institute."
msgstr "@uref{https://spritely.institute/static/papers/scheme-primer.html, @i{A Scheme Primer}}, par Christine Lemmer-Webber et le Spritely Institute."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:455
+#: guix-git/doc/guix-cookbook.texi:456
msgid "@uref{http://www.troubleshooters.com/codecorn/scheme_guile/hello.htm, @i{Scheme at a Glance}}, by Steve Litt."
msgstr "@uref{http://www.troubleshooters.com/codecorn/scheme_guile/hello.htm, Scheme at a Glance}, par Steve Litt."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:462
+#: guix-git/doc/guix-cookbook.texi:463
msgid "@uref{https://sarabander.github.io/sicp/, @i{Structure and Interpretation of Computer Programs}}, by Harold Abelson and Gerald Jay Sussman, with Julie Sussman. Colloquially known as ``SICP'', this book is a reference."
msgstr "@uref{https://sarabander.github.io/sicp/, @i{Structure and Interpretation of Computer Programs}}, par Harold Abelson et Gerald Jay Sussman, avec Julie Sussman. Souvent appelé ``SICP'', ce livre est une référence."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:464
+#: guix-git/doc/guix-cookbook.texi:465
msgid "You can also install it and read it from your computer:"
msgstr "Vous pouvez aussi l'installer et le lire sur votre ordinateur :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:468
+#: guix-git/doc/guix-cookbook.texi:469
#, no-wrap
msgid ""
"guix install sicp info-reader\n"
@@ -1199,63 +1212,63 @@ msgstr ""
"info sicp\n"
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:474
+#: guix-git/doc/guix-cookbook.texi:475
msgid "You'll find more books, tutorials and other resources at @url{https://schemers.org/}."
msgstr "Vous trouverez plus de livres, de didacticiels et d'autres ressources sur @url{https://schemers.org/}."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:481
+#: guix-git/doc/guix-cookbook.texi:482
#, no-wrap
msgid "packaging"
msgstr "empaquetage"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:487
+#: guix-git/doc/guix-cookbook.texi:488
msgid "This chapter is dedicated to teaching you how to add packages to the collection of packages that come with GNU Guix. This involves writing package definitions in Guile Scheme, organizing them in package modules, and building them."
msgstr "Ce chapitre est conçu pour vous enseigner comment ajouter des paquets à la collection de paquets de GNU Guix. Pour cela, vous devrez écrire des définitions de paquets en Guile Scheme, les organiser en modules et les construire."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:501
+#: guix-git/doc/guix-cookbook.texi:502
msgid "GNU Guix stands out as the @emph{hackable} package manager, mostly because it uses @uref{https://www.gnu.org/software/guile/, GNU Guile}, a powerful high-level programming language, one of the @uref{https://en.wikipedia.org/wiki/Scheme_%28programming_language%29, Scheme} dialects from the @uref{https://en.wikipedia.org/wiki/Lisp_%28programming_language%29, Lisp family}."
msgstr "GNU Guix se démarque des autres gestionnaire de paquets en étant @emph{bidouillable}, surtout parce qu'il utilise @uref{https://www.gnu.org/software/guile/,GNU Guile}, un langage de programmation de haut-niveau puissant, l'un des dialectes @uref{https://fr.wikipedia.org/wiki/Scheme, Scheme} de @uref{https://fr.wikipedia.org/wiki/Lisp, la famille Lisp}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:505
+#: guix-git/doc/guix-cookbook.texi:506
msgid "Package definitions are also written in Scheme, which empowers Guix in some very unique ways, unlike most other package managers that use shell scripts or simple languages."
msgstr "Les définitions de paquets sont aussi écrites en Scheme, ce qui le rend plus puissant de manière assez unique par rapport aux autres gestionnaires de paquets qui utilisent des scripts shell ou des langages simples."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:510
+#: guix-git/doc/guix-cookbook.texi:511
msgid "Use functions, structures, macros and all of Scheme expressiveness for your package definitions."
msgstr "Vous pouvez utiliser des fonctions, des structures, des macros et toute l'expressivité de Scheme dans vos définitions de paquets."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:514
+#: guix-git/doc/guix-cookbook.texi:515
msgid "Inheritance makes it easy to customize a package by inheriting from it and modifying only what is needed."
msgstr "L'héritage facilite la personnalisation d'un paquet en héritant d'un autre et en modifiant uniquement les points nécessaires."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:524
+#: guix-git/doc/guix-cookbook.texi:525
msgid "Batch processing: the whole package collection can be parsed, filtered and processed. Building a headless server with all graphical interfaces stripped out? It's possible. Want to rebuild everything from source using specific compiler optimization flags? Pass the @code{#:make-flags \"...\"} argument to the list of packages. It wouldn't be a stretch to think @uref{https://wiki.gentoo.org/wiki/USE_flag, Gentoo USE flags} here, but this goes even further: the changes don't have to be thought out beforehand by the packager, they can be @emph{programmed} by the user!"
msgstr "Traitement par lot : la collection des paquets entière peut être analysée, filtrée et traitée. Vous voulez construire un serveur sans interface graphique ? C'est possible. Vous voulez tout reconstruire à partir des sources avec des drapeaux d'optimisation spécifiques ? Passez l'argument @code{#:make-flags \"…\"} à la liste des paquets. Ce ne serait pas aberrant de penser @uref{https://wiki.gentoo.org/wiki/USE_flag, au drapeau USE de Gentoo}, mais cela va plus loin : la personne qui crée les paquets n'a pas besoin de penser à l'avance à ces changements, ils peuvent être @emph{programmés} par l'utilisateur ou l'utilisatrice !"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:530
+#: guix-git/doc/guix-cookbook.texi:531
msgid "The following tutorial covers all the basics around package creation with Guix. It does not assume much knowledge of the Guix system nor of the Lisp language. The reader is only expected to be familiar with the command line and to have some basic programming knowledge."
msgstr "Le didacticiel suivant traite des bases de la création de paquets avec Guix. Il ne présuppose aucune connaissance du système Guix ni du langage Lisp. On ne s'attend qu'à ce que vous aillez une certaine familiarité avec la ligne de commande et des connaissances de base en programmation."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:548
+#: guix-git/doc/guix-cookbook.texi:549
msgid "The ``Defining Packages'' section of the manual introduces the basics of Guix packaging (@pxref{Defining Packages,,, guix, GNU Guix Reference Manual}). In the following section, we will partly go over those basics again."
msgstr "La section « Définir des paquets » du manuel explique les bases de l'empaquetage avec Guix (@pxref{Définir des paquets,,, guix.fr, le manuel de référence de GNU Guix}). Dans la section suivante, nous reparlerons en partie de ces bases."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:554
+#: guix-git/doc/guix-cookbook.texi:555
msgid "GNU@tie{}Hello is a dummy project that serves as an idiomatic example for packaging. It uses the GNU build system (@code{./configure && make && make install}). Guix already provides a package definition which is a perfect example to start with. You can look up its declaration with @code{guix edit hello} from the command line. Let's see how it looks:"
msgstr "GNU@tie{}Hello est un exemple de projet qui sert d'exemple idiomatique pour l'empaquetage. Il utilise le système de construction de GNU (@code{./configure && make && make install}). Guix fournit déjà une définition de paquet qui est un parfait exemple pour commencer. Vous pouvez voir sa déclaration avec @code{guix edit hello} depuis la ligne de commande. Voyons à quoi elle ressemble :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:575
+#: guix-git/doc/guix-cookbook.texi:576
#, no-wrap
msgid ""
"(define-public hello\n"
@@ -1299,137 +1312,137 @@ msgstr ""
" (license gpl3+)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:579
+#: guix-git/doc/guix-cookbook.texi:580
msgid "As you can see, most of it is rather straightforward. But let's review the fields together:"
msgstr "Comme vous pouvez le voir, la plus grosse partie est assez simple. Mais examinons les champs ensemble :"
#. type: item
-#: guix-git/doc/guix-cookbook.texi:581
+#: guix-git/doc/guix-cookbook.texi:582
#, no-wrap
msgid "name"
msgstr "name"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:584
+#: guix-git/doc/guix-cookbook.texi:585
msgid "The project name. Using Scheme conventions, we prefer to keep it lower case, without underscore and using dash-separated words."
msgstr "Le nom du projet. Avec les conventions de Scheme, on préfère le laisser en minuscule, sans tiret du bas, en séparant les mots par des tirets."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:585
+#: guix-git/doc/guix-cookbook.texi:586
#, no-wrap
msgid "source"
msgstr "source"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:588
+#: guix-git/doc/guix-cookbook.texi:589
msgid "This field contains a description of the source code origin. The @code{origin} record contains these fields:"
msgstr "Ce champ contient une description de l'origine du code source. L'enregistrement @code{origin} contient ces champs :"
#. type: item
-#: guix-git/doc/guix-cookbook.texi:590
+#: guix-git/doc/guix-cookbook.texi:591
#, no-wrap
msgid "The method, here @code{url-fetch} to download via HTTP/FTP, but other methods"
msgstr "La méthode, ici @code{url-fetch} pour télécharger via HTTP/FTP, mais d'autres méthodes"
#. type: enumerate
-#: guix-git/doc/guix-cookbook.texi:592
+#: guix-git/doc/guix-cookbook.texi:593
msgid "exist, such as @code{git-fetch} for Git repositories."
msgstr "existent, comme @code{git-fetch} pour les dépôts Git."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:592
+#: guix-git/doc/guix-cookbook.texi:593
#, no-wrap
msgid "The URI, which is typically some @code{https://} location for @code{url-fetch}. Here"
msgstr "L'URI, qui est typiquement un emplacement @code{https://} pour @code{url-fetch}. Ici"
#. type: enumerate
-#: guix-git/doc/guix-cookbook.texi:595
+#: guix-git/doc/guix-cookbook.texi:596
msgid "the special `mirror://gnu` refers to a set of well known locations, all of which can be used by Guix to fetch the source, should some of them fail."
msgstr "le code spécial « mirror://gnu » fait référence à une ensemble d'emplacements bien connus, qui peuvent tous être utilisés par Guix pour récupérer la source, si l'un d'entre eux échoue."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:595
+#: guix-git/doc/guix-cookbook.texi:596
#, no-wrap
msgid "The @code{sha256} checksum of the requested file. This is essential to ensure"
msgstr "La somme de contrôle @code{sha256} du fichier demandé. C'est essentiel pour s'assurer"
#. type: enumerate
-#: guix-git/doc/guix-cookbook.texi:598
+#: guix-git/doc/guix-cookbook.texi:599
msgid "the source is not corrupted. Note that Guix works with base32 strings, hence the call to the @code{base32} function."
msgstr "que la source n'est pas corrompue. Remarquez que Guix fonctionne avec des chaînes en base32, d'où l'appel à la fonction @code{base32}."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:600
+#: guix-git/doc/guix-cookbook.texi:601
#, no-wrap
msgid "build-system"
msgstr "build-system"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:609
+#: guix-git/doc/guix-cookbook.texi:610
msgid "This is where the power of abstraction provided by the Scheme language really shines: in this case, the @code{gnu-build-system} abstracts away the famous @code{./configure && make && make install} shell invocations. Other build systems include the @code{trivial-build-system} which does not do anything and requires from the packager to program all the build steps, the @code{python-build-system}, the @code{emacs-build-system}, and many more (@pxref{Build Systems,,, guix, GNU Guix Reference Manual})."
msgstr "C'est ici que la puissance d'abstraction du langage Scheme brille de toute sa splendeur : dans ce cas, le @code{gnu-build-system} permet d'abstraire les fameuses invocations shell @code{./configure && make && make install}. Parmi les autres systèmes de construction on trouve le @code{trivial-build-system} qui ne fait rien et demande de programmer toutes les étapes de construction, le @code{python-build-system}, @code{emacs-build-system} et bien d'autres (@pxref{Systèmes de construction,,, guix.fr, le manuel de référence de GNU Guix})."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:610
+#: guix-git/doc/guix-cookbook.texi:611
#, no-wrap
msgid "synopsis"
msgstr "synopsis"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:613
+#: guix-git/doc/guix-cookbook.texi:614
msgid "It should be a concise summary of what the package does. For many packages a tagline from the project's home page can be used as the synopsis."
msgstr "Le synopsis devrait être un résumé court de ce que fait le paquet. Pour beaucoup de paquets, le slogan de la page d'accueil du projet est approprié pour le synopsis."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:614
+#: guix-git/doc/guix-cookbook.texi:615
#, no-wrap
msgid "description"
msgstr "description"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:617
+#: guix-git/doc/guix-cookbook.texi:618
msgid "Same as for the synopsis, it's fine to re-use the project description from the homepage. Note that Guix uses Texinfo syntax."
msgstr "Comme le synopsis, vous pouvez réutiliser la description de la page d'accueil du projet. Remarquez que Guix utilise la syntaxe Texinfo."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:618
+#: guix-git/doc/guix-cookbook.texi:619
#, no-wrap
msgid "home-page"
msgstr "home-page"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:620
+#: guix-git/doc/guix-cookbook.texi:621
msgid "Use HTTPS if available."
msgstr "Utilisez l'adresse en HTTPS si elle est disponible."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:621
+#: guix-git/doc/guix-cookbook.texi:622
#, no-wrap
msgid "license"
msgstr "license"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:624
+#: guix-git/doc/guix-cookbook.texi:625
msgid "See @code{guix/licenses.scm} in the project source for a full list of available licenses."
msgstr "Voir @code{guix/licenses.scm} dans les sources du projet pour une liste complète des licences disponibles."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:628
+#: guix-git/doc/guix-cookbook.texi:629
msgid "Time to build our first package! Nothing fancy here for now: we will stick to a dummy @code{my-hello}, a copy of the above declaration."
msgstr "Il est temps de construire notre premier paquet ! Rien de bien compliqué pour l'instant : nous allons garder notre exemple avec @code{my-hello}, une copie de la déclaration montrée plus haut."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:632
+#: guix-git/doc/guix-cookbook.texi:633
msgid "As with the ritualistic ``Hello World'' taught with most programming languages, this will possibly be the most ``manual'' approach. We will work out an ideal setup later; for now we will go the simplest route."
msgstr "Comme avec le rituel « Hello World » enseigné avec la plupart des langages de programmation, ce sera sans doute l'approche la plus « manuelle » d'empaquetage que vous utiliserez. Nous vous montrerons une configuration idéale plus tard, pour l'instant nous allons suivre la voie la plus simple."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:634
+#: guix-git/doc/guix-cookbook.texi:635
msgid "Save the following to a file @file{my-hello.scm}."
msgstr "Enregistrez ce qui suit dans un fichier nommé @file{my-hello.scm}."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:640
+#: guix-git/doc/guix-cookbook.texi:641
#, no-wrap
msgid ""
"(use-modules (guix packages)\n"
@@ -1445,7 +1458,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:659
+#: guix-git/doc/guix-cookbook.texi:660
#, no-wrap
msgid ""
"(package\n"
@@ -1487,23 +1500,23 @@ msgstr ""
" (license gpl3+))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:662
+#: guix-git/doc/guix-cookbook.texi:663
msgid "We will explain the extra code in a moment."
msgstr "Nous allons expliquer le code supplémentaire dans un moment."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:669
+#: guix-git/doc/guix-cookbook.texi:670
msgid "Feel free to play with the different values of the various fields. If you change the source, you'll need to update the checksum. Indeed, Guix refuses to build anything if the given checksum does not match the computed checksum of the source code. To obtain the correct checksum of the package declaration, we need to download the source, compute the sha256 checksum and convert it to base32."
msgstr "Essayez de jouer avec les différentes valeurs des différents champs. Si vous changez la source, vous devrez mettre à jour la somme de contrôle. En fait, Guix refusera de construire quoi que ce soit si la somme de contrôle donnée ne correspond pas à la somme de contrôle calculée de la source téléchargée. Pour obtenir la bonne somme de contrôle pour une déclaration de paquet, vous devrez télécharger la source, calculer la somme de contrôle sha256 et la convertir en base32."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:672
+#: guix-git/doc/guix-cookbook.texi:673
msgid "Thankfully, Guix can automate this task for us; all we need is to provide the URI:"
msgstr "Heureusement, Guix peut automatiser cette tache pour nous ; tout ce qu'on doit faire est de lui fournir l'URI :"
#. This is example shell output.
#. type: example
-#: guix-git/doc/guix-cookbook.texi:676
+#: guix-git/doc/guix-cookbook.texi:677
#, no-wrap
msgid ""
"$ guix download mirror://gnu/hello/hello-2.10.tar.gz\n"
@@ -1513,7 +1526,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:683
+#: guix-git/doc/guix-cookbook.texi:684
#, no-wrap
msgid ""
"Starting download of /tmp/guix-file.JLYgL7\n"
@@ -1531,18 +1544,18 @@ msgstr ""
"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:688
+#: guix-git/doc/guix-cookbook.texi:689
msgid "In this specific case the output tells us which mirror was chosen. If the result of the above command is not the same as in the above snippet, update your @code{my-hello} declaration accordingly."
msgstr "Dans ce cas particulier, la sortie nous dit quel miroir a été choisi. Si le résultat de la commande au-dessus n'est pas le même que ce qui est montré, mettez à jour votre déclaration @code{my-hello} en fonction."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:692
+#: guix-git/doc/guix-cookbook.texi:693
msgid "Note that GNU package tarballs come with an OpenPGP signature, so you should definitely check the signature of this tarball with `gpg` to authenticate it before going further:"
msgstr "Remarquez que les archives des paquets GNU sont accompagnées de leur signature OpenPGP, donc vous devriez vérifier la signature de cette archive avec « gpg » pour l'authentifier avant d'aller plus loin :"
#. This is example shell output.
#. type: example
-#: guix-git/doc/guix-cookbook.texi:696
+#: guix-git/doc/guix-cookbook.texi:697
#, no-wrap
msgid ""
"$ guix download mirror://gnu/hello/hello-2.10.tar.gz.sig\n"
@@ -1552,7 +1565,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:711
+#: guix-git/doc/guix-cookbook.texi:712
#, no-wrap
msgid ""
"Starting download of /tmp/guix-file.03tFfb\n"
@@ -1585,25 +1598,25 @@ msgstr ""
"Empreinte de clef principale : 8ED3 96E3 7E38 D471 A005 30D3 A955 3245 FDE9 B739\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:714
+#: guix-git/doc/guix-cookbook.texi:715
msgid "You can then happily run"
msgstr "Vous pouvez ensuite lancer"
#. Do not translate this command
#. type: example
-#: guix-git/doc/guix-cookbook.texi:718
+#: guix-git/doc/guix-cookbook.texi:719
#, no-wrap
msgid "$ guix package --install-from-file=my-hello.scm\n"
msgstr "$ guix package --install-from-file=my-hello.scm\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:721
+#: guix-git/doc/guix-cookbook.texi:722
msgid "You should now have @code{my-hello} in your profile!"
msgstr "Vous devriez maintenant avoir @code{my-hello} dans votre profil !"
#. Do not translate this command
#. type: example
-#: guix-git/doc/guix-cookbook.texi:727
+#: guix-git/doc/guix-cookbook.texi:728
#, no-wrap
msgid ""
"$ guix package --list-installed=my-hello\n"
@@ -1615,37 +1628,37 @@ msgstr ""
"/gnu/store/f1db2mfm8syb8qvc357c53slbvf1g9m9-my-hello-2.10\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:732
+#: guix-git/doc/guix-cookbook.texi:733
msgid "We've gone as far as we could without any knowledge of Scheme. Before moving on to more complex packages, now is the right time to brush up on your Scheme knowledge. @pxref{A Scheme Crash Course} to get up to speed."
msgstr "Nous sommes allés aussi loin que possible sans aucune connaissance de Scheme. Avant de continuer sur des paquets plus complexes, il est maintenant temps de vous renforcer sur votre connaissance du langage Scheme. @pxref{A Scheme Crash Course} pour démarrer."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:739
+#: guix-git/doc/guix-cookbook.texi:740
msgid "In the rest of this chapter we will rely on some basic Scheme programming knowledge. Now let's detail the different possible setups for working on Guix packages."
msgstr "Dans le reste de ce chapitre, nous nous appuierons sur vos connaissances de base du langage Scheme. Maintenant voyons les différentes configurations possibles pour travailler sur des paquets Guix."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:741
+#: guix-git/doc/guix-cookbook.texi:742
msgid "There are several ways to set up a Guix packaging environment."
msgstr "Il y a plusieurs moyens de mettre en place un environnement d'empaquetage pour Guix."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:744
+#: guix-git/doc/guix-cookbook.texi:745
msgid "We recommend you work directly on the Guix source checkout since it makes it easier for everyone to contribute to the project."
msgstr "Nous vous recommandons de travailler directement dans le dépôt des sources de Guix car ça facilitera la contribution au projet."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:746
+#: guix-git/doc/guix-cookbook.texi:747
msgid "But first, let's look at other possibilities."
msgstr "Mais d'abord, voyons les autres possibilités."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:759
+#: guix-git/doc/guix-cookbook.texi:760
msgid "This is what we previously did with @samp{my-hello}. With the Scheme basics we've covered, we are now able to explain the leading chunks. As stated in @code{guix package --help}:"
msgstr "C'est ce que nous venons de faire avec @samp{my-hello}. Avec les bases de Scheme que nous vous avons présentées, nous pouvons maintenant éclairer le sens du début du fichier. Comme le dit @code{guix package --help} :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:764
+#: guix-git/doc/guix-cookbook.texi:765
#, no-wrap
msgid ""
" -f, --install-from-file=FILE\n"
@@ -1657,44 +1670,44 @@ msgstr ""
" FICHIER\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:768
+#: guix-git/doc/guix-cookbook.texi:769
msgid "Thus the last expression @emph{must} return a package, which is the case in our earlier example."
msgstr "Ainsi, la dernière expression @emph{doit} renvoyer un paquet, ce qui est le cas dans notre exemple précédent."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:772
+#: guix-git/doc/guix-cookbook.texi:773
msgid "The @code{use-modules} expression tells which of the modules we need in the file. Modules are a collection of values and procedures. They are commonly called ``libraries'' or ``packages'' in other programming languages."
msgstr "L'expression @code{use-modules} indique quels modules sont nécessaires dans le fichier. Les modules sont des collections de valeurs et de procédures. Ils sont souvent appelés « bibliothèques » ou « paquets » dans d'autres langages de programmation."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:776
+#: guix-git/doc/guix-cookbook.texi:777
#, no-wrap
msgid "channel"
msgstr "canal"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:782
+#: guix-git/doc/guix-cookbook.texi:783
msgid "Guix and its package collection can be extended through @dfn{channels}. A channel is a Git repository, public or not, containing @file{.scm} files that provide packages (@pxref{Defining Packages,,, guix, GNU Guix Reference Manual}) or services (@pxref{Defining Services,,, guix, GNU Guix Reference Manual})."
msgstr "Guix et sa collection de paquet peut être étendu par des @dfn{canaux}. Un canal est un dépôt Git public ou non, qui contient des fichiers @file{.scm} qui fournissent des paquets (@pxref{Définition des paquets,,, guix.fr, le manuel de référence de GNU Guix}) ou des services (@pxref{Définir des services,,, guix.fr, le manuel de référence de GNU Guix})."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:785
+#: guix-git/doc/guix-cookbook.texi:786
msgid "How would you go about creating a channel? First, create a directory that will contain your @file{.scm} files, say @file{~/my-channel}:"
msgstr "Comment créer un canal ? Tout d'abord, créez un répertoire qui contiendra vos fichiers @file{.scm}, disons @file{~/mon-canal} :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:788
+#: guix-git/doc/guix-cookbook.texi:789
#, no-wrap
msgid "mkdir ~/my-channel\n"
msgstr "mkdir ~/mon-canal\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:792
+#: guix-git/doc/guix-cookbook.texi:793
msgid "Suppose you want to add the @samp{my-hello} package we saw previously; it first needs some adjustments:"
msgstr "Imaginons que vous souhaitiez ajouter le paquet @samp{my-hello} que nous avons vu plus tôt. Il a d'abord besoin de quelques ajustement :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:799
+#: guix-git/doc/guix-cookbook.texi:800
#, no-wrap
msgid ""
"(define-module (my-hello)\n"
@@ -1712,7 +1725,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:819
+#: guix-git/doc/guix-cookbook.texi:820
#, no-wrap
msgid ""
"(define-public my-hello\n"
@@ -1756,17 +1769,17 @@ msgstr ""
" (license gpl3+)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:825
+#: guix-git/doc/guix-cookbook.texi:826
msgid "Note that we have assigned the package value to an exported variable name with @code{define-public}. This is effectively assigning the package to the @code{my-hello} variable so that it can be referenced, among other as dependency of other packages."
msgstr "Remarquez que nous avons assigné la valeur du paquet à un nom de variable exportée avec @code{define-public}. Cela assigne en fait le paquet à la variable @code{my-hello} pour qu'elle puisse être utilisée, par exemple en dépendance d'un autre paquet."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:830
+#: guix-git/doc/guix-cookbook.texi:831
msgid "If you use @code{guix package --install-from-file=my-hello.scm} on the above file, it will fail because the last expression, @code{define-public}, does not return a package. If you want to use @code{define-public} in this use-case nonetheless, make sure the file ends with an evaluation of @code{my-hello}:"
msgstr "Si vous utilisez @code{guix package --install-from-file=my-hello.scm} avec le fichier précédent, la commande échouera car la dernière expression, @code{define-public}, ne renvoie pas un paquet. Si vous voulez utiliser @code{define-public} dans ce cas tout de même, assurez-vous que le fichier termine par une évaluation de @code{my-hello} :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:836
+#: guix-git/doc/guix-cookbook.texi:837
#, no-wrap
msgid ""
";; ...\n"
@@ -1782,23 +1795,23 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:838
+#: guix-git/doc/guix-cookbook.texi:839
#, no-wrap
msgid "my-hello\n"
msgstr "my-hello\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:841
+#: guix-git/doc/guix-cookbook.texi:842
msgid "This last example is not very typical."
msgstr "Ce dernier exemple n'est pas très typique."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:845
+#: guix-git/doc/guix-cookbook.texi:846
msgid "Now how do you make that package visible to @command{guix} commands so you can test your packages? You need to add the directory to the search path using the @option{-L} command-line option, as in these examples:"
msgstr "Maintenant, comme rendre ce paquet visible pour les commandes @command{guix} afin de tester vos paquets ? Vous devez ajouter le répertoire au chemin de recherche avec l'option en ligne de commande @option{-L}, comme dans ces exemples :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:849
+#: guix-git/doc/guix-cookbook.texi:850
#, no-wrap
msgid ""
"guix show -L ~/my-channel my-hello\n"
@@ -1808,12 +1821,12 @@ msgstr ""
"guix build -L ~/mon-canal my-hello\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:855
+#: guix-git/doc/guix-cookbook.texi:856
msgid "The final step is to turn @file{~/my-channel} into an actual channel, making your package collection seamlessly available @i{via} any @command{guix} command. To do that, you first need to make it a Git repository:"
msgstr "L'étape finale consiste à transformer @file{~/mon-canal} en un vrai canal, pour rendre disponible votre collection de paquets via n'importe quelle commande @command{guix}. Pour cela, vous devez d'abord en faire un dépôt Git :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:861
+#: guix-git/doc/guix-cookbook.texi:862
#, no-wrap
msgid ""
"cd ~/my-channel\n"
@@ -1827,12 +1840,12 @@ msgstr ""
"git commit -m \"Premier commit sur mon canal.\"\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:869
+#: guix-git/doc/guix-cookbook.texi:870
msgid "And that's it, you have a channel! From there on, you can add this channel to your channel configuration in @file{~/.config/guix/channels.scm} (@pxref{Specifying Additional Channels,,, guix, GNU Guix Reference Manual}); assuming you keep your channel local for now, the @file{channels.scm} would look something like this:"
msgstr "Et voilà, vous avez un canal ! À partir de maintenant, vous pouvez ajouter ce canal à votre configuration des canaux dans @file{~/.config/guix/channels.scm} (@pxref{Spécifier des canaux supplémentaires,,, guix.fr, le manuel de référence de GNU Guix}). En supposant que vous gardez votre canal localement pour l'instant, le fichier @file{channels.scm} ressemblerait à quelque chose comme ça :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:876
+#: guix-git/doc/guix-cookbook.texi:877
#, no-wrap
msgid ""
"(append (list (channel\n"
@@ -1848,68 +1861,68 @@ msgstr ""
" %default-channels)\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:883
+#: guix-git/doc/guix-cookbook.texi:884
msgid "Next time you run @command{guix pull}, your channel will be picked up and the packages it defines will be readily available to all the @command{guix} commands, even if you do not pass @option{-L}. The @command{guix describe} command will show that Guix is, indeed, using both the @code{my-channel} and the @code{guix} channels."
msgstr "La prochaine fois que vous exécuterez @command{guix pull}, votre canal sera récupéré et les paquets qu'il définit seront directement disponibles pour toutes les commandes @command{guix}, même si vous n'utilisez pas @option{-L}. La commande @command{guix describe} vous montrera que Guix utilise effectivement à la fois @code{mon-canal} et les canaux @code{guix}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:886
+#: guix-git/doc/guix-cookbook.texi:887
msgid "@xref{Creating a Channel,,, guix, GNU Guix Reference Manual}, for details."
msgstr "@xref{Écrire de nouveaux de canaux,,, guix.fr, le manuel de référence de GNU Guix} pour des détails."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:893
+#: guix-git/doc/guix-cookbook.texi:894
msgid "Working directly on the Guix project is recommended: it reduces the friction when the time comes to submit your changes upstream to let the community benefit from your hard work!"
msgstr "Nous vous recommandons de travailler directement sur le projet Guix : cela réduit le travail nécessaire quand vous voudrez soumettre vos changements en amont pour que la communauté puisse bénéficier de votre dur labeur !"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:899
+#: guix-git/doc/guix-cookbook.texi:900
msgid "Unlike most software distributions, the Guix repository holds in one place both the tooling (including the package manager) and the package definitions. This choice was made so that it would give developers the flexibility to modify the API without breakage by updating all packages at the same time. This reduces development inertia."
msgstr "Contrairement à la plupart des distributions logiciels, le dépôt Guix contient à la fois les outils (dont le gestionnaire de paquets) et les définitions des paquets. Nous avons fait ce choix pour permettre aux développeurs et développeuses de profiter de plus de flexibilité pour changer l'API sans rien casser, en mettant à jour tous les paquets en même temps. Cela réduit l'inertie dans le développement."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:901
+#: guix-git/doc/guix-cookbook.texi:902
msgid "Check out the official @uref{https://git-scm.com/, Git} repository:"
msgstr "Clonez le dépôt @uref{https://git-scm.com/, Git} officiel :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:904
+#: guix-git/doc/guix-cookbook.texi:905
#, no-wrap
msgid "$ git clone https://git.savannah.gnu.org/git/guix.git\n"
msgstr "$ git clone https://git.savannah.gnu.org/git/guix.git\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:908
+#: guix-git/doc/guix-cookbook.texi:909
msgid "In the rest of this article, we use @samp{$GUIX_CHECKOUT} to refer to the location of the checkout."
msgstr "Dans le reste de cet article, nous utiliserons @samp{$GUIX_CHECKOUT} pour faire référence à l'emplacement de ce clone."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:912
+#: guix-git/doc/guix-cookbook.texi:913
msgid "Follow the instructions in the manual (@pxref{Contributing,,, guix, GNU Guix Reference Manual}) to set up the repository environment."
msgstr "Suivez les instructions du manuel (@pxref{Contribuer,,, guix.fr, le manuel de référence de GNU Guix}) pour mettre en place l'environnement du dépôt."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:915
+#: guix-git/doc/guix-cookbook.texi:916
msgid "Once ready, you should be able to use the package definitions from the repository environment."
msgstr "Une fois prêts, vous devriez pouvoir utiliser les définitions des paquets de l'environnement du dépôt."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:917
+#: guix-git/doc/guix-cookbook.texi:918
msgid "Feel free to edit package definitions found in @samp{$GUIX_CHECKOUT/gnu/packages}."
msgstr "N'ayez pas peur de modifier les définitions des paquets que vous trouverez dans @samp{$GUIX_CHECKOUT/gnu/packages}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:921
+#: guix-git/doc/guix-cookbook.texi:922
msgid "The @samp{$GUIX_CHECKOUT/pre-inst-env} script lets you use @samp{guix} over the package collection of the repository (@pxref{Running Guix Before It Is Installed,,, guix, GNU Guix Reference Manual})."
msgstr "Le script @samp{$GUIX_CHECKOUT/pre-inst-env} vous permet d'utiliser @samp{guix} sur la collection de paquets du dépôt (@pxref{Lancer Guix avant qu’il ne soit installé,,, guix.fr, le manuel de référence de GNU Guix})."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:925
+#: guix-git/doc/guix-cookbook.texi:926
msgid "Search packages, such as Ruby:"
msgstr "Recherchez des paquets, comme Ruby :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:932
+#: guix-git/doc/guix-cookbook.texi:933
#, no-wrap
msgid ""
" $ cd $GUIX_CHECKOUT\n"
@@ -1925,12 +1938,12 @@ msgstr ""
" ruby 2.2.2 out gnu/packages/ruby.scm:39:2\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:936
+#: guix-git/doc/guix-cookbook.texi:937
msgid "Build a package, here Ruby version 2.1:"
msgstr "Construisez un paquet, ici Ruby version 2.1 :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:940
+#: guix-git/doc/guix-cookbook.texi:941
#, no-wrap
msgid ""
" $ ./pre-inst-env guix build --keep-failed ruby@@2.1\n"
@@ -1940,59 +1953,59 @@ msgstr ""
" /gnu/store/c13v73jxmj2nir2xjqaz5259zywsa9zi-ruby-2.1.6\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:944
+#: guix-git/doc/guix-cookbook.texi:945
msgid "Install it to your user profile:"
msgstr "Installez-le dans votre profil utilisateur :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:947
+#: guix-git/doc/guix-cookbook.texi:948
#, no-wrap
msgid " $ ./pre-inst-env guix package --install ruby@@2.1\n"
msgstr " $ ./pre-inst-env guix package --install ruby@@2.1\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:951
+#: guix-git/doc/guix-cookbook.texi:952
msgid "Check for common mistakes:"
msgstr "Vérifiez que vous n'avez pas fait l'une des erreurs courantes :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:954
+#: guix-git/doc/guix-cookbook.texi:955
#, no-wrap
msgid " $ ./pre-inst-env guix lint ruby@@2.1\n"
msgstr " $ ./pre-inst-env guix lint ruby@@2.1\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:959
+#: guix-git/doc/guix-cookbook.texi:960
msgid "Guix strives at maintaining a high packaging standard; when contributing to the Guix project, remember to"
msgstr "Guix essaye de maintenir un bon standard d'empaquetage ; quand vous contribuez au projet Guix, rappelez-vous de"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:963
+#: guix-git/doc/guix-cookbook.texi:964
msgid "follow the coding style (@pxref{Coding Style,,, guix, GNU Guix Reference Manual}),"
msgstr "suivre le style de code (@pxref{Style de code,,, guix.fr, le manuel de référence de GNU Guix}),"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:965
+#: guix-git/doc/guix-cookbook.texi:966
msgid "and review the check list from the manual (@pxref{Submitting Patches,,, guix, GNU Guix Reference Manual})."
msgstr "et de vérifier la check-list du manuel (@pxref{Envoyer des correctifs,,, guix.fr, le manuel de référence de GNU Guix})."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:969
+#: guix-git/doc/guix-cookbook.texi:970
msgid "Once you are happy with the result, you are welcome to send your contribution to make it part of Guix. This process is also detailed in the manual. (@pxref{Contributing,,, guix, GNU Guix Reference Manual})"
msgstr "Une fois que vous êtes satisfait du résultat, vous pouvez envoyer votre contribution pour qu'elle rentre dans Guix. Ce processus est aussi détaillé dans le manuel (@pxref{Contribuer,,, guix.fr, le manuel de référence de GNU Guix})"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:972
+#: guix-git/doc/guix-cookbook.texi:973
msgid "It's a community effort so the more join in, the better Guix becomes!"
msgstr "Guix est un projet communautaire, donc plus on est de fous, plus on rit !"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:979
+#: guix-git/doc/guix-cookbook.texi:980
msgid "The above ``Hello World'' example is as simple as it goes. Packages can be more complex than that and Guix can handle more advanced scenarios. Let's look at another, more sophisticated package (slightly modified from the source):"
msgstr "L'exemple « Hello World » précédent est le plus simple possible. Les paquets peuvent devenir plus complexes que cela et Guix peut gérer des scénarios plus avancés. Voyons un autre paquet plus sophistiqué (légèrement modifié à partir des sources) :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:993
+#: guix-git/doc/guix-cookbook.texi:994
#, no-wrap
msgid ""
"(define-module (gnu packages version-control)\n"
@@ -2024,7 +2037,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1049
+#: guix-git/doc/guix-cookbook.texi:1050
#, no-wrap
msgid ""
"(define-public my-libgit2\n"
@@ -2140,43 +2153,43 @@ msgstr ""
" (license license:gpl2))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1054
+#: guix-git/doc/guix-cookbook.texi:1055
msgid "(In those cases were you only want to tweak a few fields from a package definition, you should rely on inheritance instead of copy-pasting everything. See below.)"
msgstr "(Dans les cas où vous voulez seulement changer quelques champs d'une définition de paquets, vous devriez utiliser l'héritage au lieu de tout copier-coller. Voir plus bas.)"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1056
+#: guix-git/doc/guix-cookbook.texi:1057
msgid "Let's discuss those fields in depth."
msgstr "Parlons maintenant de ces champs en détail."
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:1057
+#: guix-git/doc/guix-cookbook.texi:1058
#, no-wrap
msgid "@code{git-fetch} method"
msgstr "La méthode @code{git-fetch}"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1064
+#: guix-git/doc/guix-cookbook.texi:1065
msgid "Unlike the @code{url-fetch} method, @code{git-fetch} expects a @code{git-reference} which takes a Git repository and a commit. The commit can be any Git reference such as tags, so if the @code{version} is tagged, then it can be used directly. Sometimes the tag is prefixed with a @code{v}, in which case you'd use @code{(commit (string-append \"v\" version))}."
msgstr "Contrairement à la méthode @code{url-fetch}, @code{git-fetch} a besoin d'un @code{git-reference} qui prend un dépôt Git et un commit. Le commit peut être n'importe quelle référence Git comme des tags, donc si la @code{version} a un tag associé, vous pouvez l'utiliser directement. Parfois le tag est précédé de @code{v}, auquel cas vous pouvez utiliser @code{(commit (string-append \"v\" version))}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1068
+#: guix-git/doc/guix-cookbook.texi:1069
msgid "To ensure that the source code from the Git repository is stored in a directory with a descriptive name, we use @code{(file-name (git-file-name name version))}."
msgstr "Pour vous assurer que le code source du dépôt Git est stocké dans un répertoire avec un nom descriptif, utilisez @code{(file-name (git-file-name name version))}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1073
+#: guix-git/doc/guix-cookbook.texi:1074
msgid "The @code{git-version} procedure can be used to derive the version when packaging programs for a specific commit, following the Guix contributor guidelines (@pxref{Version Numbers,,, guix, GNU Guix Reference Manual})."
msgstr "Vous pouvez utiliser la procédure @code{git-version} pour calculer la version quand vous empaquetez des programmes pour un commit spécifique, en suivant le guide de contribution (@pxref{Numéros de version,,, guix.fr, le manuel de référence de GNU Guix})."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1077
+#: guix-git/doc/guix-cookbook.texi:1078
msgid "How does one obtain the @code{sha256} hash that's in there, you ask? By invoking @command{guix hash} on a checkout of the desired commit, along these lines:"
msgstr "Comment obtenir le hash @code{sha256}, vous demandez-vous ? En invoquant @command{guix hash} sur un clone du commit voulu, de cette manière :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1083
+#: guix-git/doc/guix-cookbook.texi:1084
#, no-wrap
msgid ""
"git clone https://github.com/libgit2/libgit2/\n"
@@ -2190,109 +2203,110 @@ msgstr ""
"guix hash -rx .\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1088
+#: guix-git/doc/guix-cookbook.texi:1089
msgid "@command{guix hash -rx} computes a SHA256 hash over the whole directory, excluding the @file{.git} sub-directory (@pxref{Invoking guix hash,,, guix, GNU Guix Reference Manual})."
msgstr "@command{guix hash -rx} calcul un SHA256 sur le répertoire entier, en excluant le sous-répertoire @file{.git} (@pxref{Invoquer guix hash,,, guix.fr, le manuel de référence de GNU Guix})."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1091
+#: guix-git/doc/guix-cookbook.texi:1092
msgid "In the future, @command{guix download} will hopefully be able to do these steps for you, just like it does for regular downloads."
msgstr "Dans le futur, @command{guix download} sera sans doute capable de faire cela pour vous, comme il le fait pour les téléchargements directs."
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:1092
+#: guix-git/doc/guix-cookbook.texi:1093
#, no-wrap
msgid "Snippets"
msgstr "Les bouts de code"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1098
+#: guix-git/doc/guix-cookbook.texi:1099
msgid "Snippets are quoted (i.e. non-evaluated) Scheme code that are a means of patching the source. They are a Guix-y alternative to the traditional @file{.patch} files. Because of the quote, the code in only evaluated when passed to the Guix daemon for building. There can be as many snippets as needed."
msgstr "Les bouts de code (snippet) sont des fragments quotés (c.-à-d. non évalués) de code Scheme utilisés pour modifier les sources. C'est une alternative aux fichiers @file{.patch} traditionnels, plus proche de l'esprit de Guix. À cause de la quote, le code n'est évalué que lorsqu'il est passé au démon Guix pour la construction. Il peut y avoir autant de bout de code que nécessaire."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1101
+#: guix-git/doc/guix-cookbook.texi:1102
msgid "Snippets might need additional Guile modules which can be imported from the @code{modules} field."
msgstr "Les bouts de code on parfois besoin de modules Guile supplémentaires qui peuvent être importés dans le champ @code{modules}."
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:1102
+#: guix-git/doc/guix-cookbook.texi:1103
#, no-wrap
msgid "Inputs"
msgstr "Entrées"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1105
+#: guix-git/doc/guix-cookbook.texi:1106
msgid "There are 3 different input types. In short:"
msgstr "Il y a trois types d'entrées. En résumé :"
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1107
+#: guix-git/doc/guix-cookbook.texi:1108
#, no-wrap
msgid "native-inputs"
msgstr "native-inputs"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1110
+#: guix-git/doc/guix-cookbook.texi:1111
msgid "Required for building but not runtime -- installing a package through a substitute won't install these inputs."
msgstr "Requis pour construire mais pas à l'exécution -- installer un paquet avec un substitut n'installera pas ces entrées."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1110
+#: guix-git/doc/guix-cookbook.texi:1111
#, no-wrap
msgid "inputs"
msgstr "inputs"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1113
+#: guix-git/doc/guix-cookbook.texi:1114
msgid "Installed in the store but not in the profile, as well as being present at build time."
msgstr "Installées dans le dépôt mais pas dans le profil, et présentes à la construction."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1113
+#: guix-git/doc/guix-cookbook.texi:1114
#, no-wrap
msgid "propagated-inputs"
msgstr "propagated-inputs"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1116
+#: guix-git/doc/guix-cookbook.texi:1117
msgid "Installed in the store and in the profile, as well as being present at build time."
msgstr "Installées dans le dépôt et dans le profil, et présentes à la construction."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1119
+#: guix-git/doc/guix-cookbook.texi:1120
msgid "@xref{package Reference,,, guix, GNU Guix Reference Manual} for more details."
msgstr "@xref{Référence de package,,, guix.fr, le manuel de référence de GNU Guix} pour plus de détails."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1123
+#: guix-git/doc/guix-cookbook.texi:1124
msgid "The distinction between the various inputs is important: if a dependency can be handled as an @emph{input} instead of a @emph{propagated input}, it should be done so, or else it ``pollutes'' the user profile for no good reason."
msgstr "La différence entre les différents types d'entrées est importante : si une dépendance peut être utilisée comme @emph{entrée} plutôt que comme @emph{entrée propagée}, il faut faire ça, sinon elle « polluera » le profil utilisateur sans raison."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1130
+#: guix-git/doc/guix-cookbook.texi:1131
msgid "For instance, a user installing a graphical program that depends on a command line tool might only be interested in the graphical part, so there is no need to force the command line tool into the user profile. The dependency is a concern to the package, not to the user. @emph{Inputs} make it possible to handle dependencies without bugging the user by adding undesired executable files (or libraries) to their profile."
msgstr "Par exemple, si vous installez un programme graphique qui dépend d'un outil en ligne de commande, vous êtes probablement intéressé uniquement par la partie graphique, donc inutile de forcer l'outil en ligne de commande à être présent dans le profil utilisateur. Les dépendances sont gérés par les paquets, pas par les utilisateurs et utilisatrices. Les @emph{entrées} permettent de gérer les dépendances sans ennuyer les utilisateurs et utilisatrices en ajoutant des fichiers exécutables (ou bibliothèque) inutiles dans leur profil."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1136
+#: guix-git/doc/guix-cookbook.texi:1137
msgid "Same goes for @emph{native-inputs}: once the program is installed, build-time dependencies can be safely garbage-collected. It also matters when a substitute is available, in which case only the @emph{inputs} and @emph{propagated inputs} will be fetched: the @emph{native inputs} are not required to install a package from a substitute."
msgstr "Pareil pour @emph{native-inputs} : une fois le programme installé, les dépendances à la construction peuvent être supprimées sans problème par le ramasse-miettes. Lorsqu'un substitut est disponible, seuls les @emph{entrées} et les @emph{entrées propagées} sont récupérées : les @emph{entrées natives} ne sont pas requises pour installer un paquet à partir d'un substitut."
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:1137 guix-git/doc/guix-cookbook.texi:2298
-#: guix-git/doc/guix-cookbook.texi:4246 guix-git/doc/guix-cookbook.texi:4300
+#: guix-git/doc/guix-cookbook.texi:1138 guix-git/doc/guix-cookbook.texi:2299
+#: guix-git/doc/guix-cookbook.texi:3725 guix-git/doc/guix-cookbook.texi:4892
+#: guix-git/doc/guix-cookbook.texi:4946
#, no-wrap
msgid "Note"
msgstr "Remarque"
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:1140
+#: guix-git/doc/guix-cookbook.texi:1141
msgid "You may see here and there snippets where package inputs are written quite differently, like so:"
msgstr "Vous trouverez ici et là des extraits où les entrées des paquets sont écrites assez différemment, comme ceci :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1147
+#: guix-git/doc/guix-cookbook.texi:1148
#, no-wrap
msgid ""
";; The \"old style\" for inputs.\n"
@@ -2308,69 +2322,69 @@ msgstr ""
" (\"python\" ,python-wrapper)))\n"
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:1153
+#: guix-git/doc/guix-cookbook.texi:1154
msgid "This is the ``old style'', where each input in the list is explicitly given a label (a string). It is still supported but we recommend using the style above instead. @xref{package Reference,,, guix, GNU Guix Reference Manual}, for more info."
msgstr "C'est « l'ancien style », où chaque entrée est une liste que donne une étiquette explicite (une chaine). C'est une méthode prise en charge mais nous vous recommandons plutôt d'utiliser le style présenté plus haut. @xref{Référence de package,,, guix.fr, le manuel de référence de GNU Guix}, pour plus d'informations."
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:1155
+#: guix-git/doc/guix-cookbook.texi:1156
#, no-wrap
msgid "Outputs"
msgstr "Sorties"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1159
+#: guix-git/doc/guix-cookbook.texi:1160
msgid "Just like how a package can have multiple inputs, it can also produce multiple outputs."
msgstr "De la même manière qu'un paquet peut avoir plusieurs entrées, il peut aussi avoir plusieurs sorties."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1161
+#: guix-git/doc/guix-cookbook.texi:1162
msgid "Each output corresponds to a separate directory in the store."
msgstr "Chaque sortie correspond à un répertoire différent dans le dépôt."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1164
+#: guix-git/doc/guix-cookbook.texi:1165
msgid "The user can choose which output to install; this is useful to save space or to avoid polluting the user profile with unwanted executables or libraries."
msgstr "Vous pouvez choisir quelle sortie installer ; c'est utile pour préserver l'espace disque et éviter de polluer le profil utilisateur avec des exécutables et des bibliothèques inutiles."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1167
+#: guix-git/doc/guix-cookbook.texi:1168
msgid "Output separation is optional. When the @code{outputs} field is left out, the default and only output (the complete package) is referred to as @code{\"out\"}."
msgstr "La séparation des sorties est facultative. Lorsque le champ @code{outputs} n'est pas spécifié, l'unique sortie par défaut (le paquet complet donc) est @code{\"out\"}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1169
+#: guix-git/doc/guix-cookbook.texi:1170
msgid "Typical separate output names include @code{debug} and @code{doc}."
msgstr "Les sorties séparées sont en général @code{debug} et @code{doc}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1173
+#: guix-git/doc/guix-cookbook.texi:1174
msgid "It's advised to separate outputs only when you've shown it's worth it: if the output size is significant (compare with @code{guix size}) or in case the package is modular."
msgstr "Vous devriez séparer les sorties seulement si vous pouvez montrer que c'est utile : si la taille de la sortie est importante (vous pouvez comparer avec @code{guix size}) ou si le paquet est modulaire."
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:1174
+#: guix-git/doc/guix-cookbook.texi:1175
#, no-wrap
msgid "Build system arguments"
msgstr "Arguments du système de construction"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1177
+#: guix-git/doc/guix-cookbook.texi:1178
msgid "The @code{arguments} is a keyword-value list used to configure the build process."
msgstr "Le champ @code{arguments} est une liste de mot-clés et de valeurs utilisés pour configurer le processus de construction."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1182
+#: guix-git/doc/guix-cookbook.texi:1183
msgid "The simplest argument @code{#:tests?} can be used to disable the test suite when building the package. This is mostly useful when the package does not feature any test suite. It's strongly recommended to keep the test suite on if there is one."
msgstr "L'argument le plus simple est @code{#:tests?} et on l'utilise pour désactiver la suite de tests pendant la construction du paquet. C'est surtout utile si le paquet n'a pas de suite de tests. Nous vous recommandons fortement de laisser tourner la suite de tests s'il y en a une."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1186
+#: guix-git/doc/guix-cookbook.texi:1187
msgid "Another common argument is @code{:make-flags}, which specifies a list of flags to append when running make, as you would from the command line. For instance, the following flags"
msgstr "Un autre argument courant est @code{#:make-flags}, qui spécifie une liste de drapeaux à ajouter en lançant make, comme ce que vous feriez sur la ligne de commande. Par exemple, les drapeaux suivants"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1190
+#: guix-git/doc/guix-cookbook.texi:1191
#, no-wrap
msgid ""
"#:make-flags (list (string-append \"prefix=\" (assoc-ref %outputs \"out\"))\n"
@@ -2380,44 +2394,44 @@ msgstr ""
" \"CC=gcc\")\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1193
+#: guix-git/doc/guix-cookbook.texi:1194
msgid "translate into"
msgstr "se traduisent en"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1196
+#: guix-git/doc/guix-cookbook.texi:1197
#, no-wrap
msgid "$ make CC=gcc prefix=/gnu/store/...-<out>\n"
msgstr "$ make CC=gcc prefix=/gnu/store/...-<out>\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1202
+#: guix-git/doc/guix-cookbook.texi:1203
msgid "This sets the C compiler to @code{gcc} and the @code{prefix} variable (the installation directory in Make parlance) to @code{(assoc-ref %outputs \"out\")}, which is a build-stage global variable pointing to the destination directory in the store (something like @file{/gnu/store/...-my-libgit2-20180408})."
msgstr "Cela indique que le compilateur C sera @code{gcc} et la variable @code{prefix} (le répertoire d'installation pour Make) sera @code{(assoc-ref %outputs \"out\")}, qui est une variable globale côté construction qui pointe vers le répertoire de destination dans le dépôt (quelque chose comme @file{/gnu/store/…-my-libgit2-20180408})."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1204
+#: guix-git/doc/guix-cookbook.texi:1205
msgid "Similarly, it's possible to set the configure flags:"
msgstr "De manière identique, vous pouvez indiquer les drapeaux de configuration :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1207
+#: guix-git/doc/guix-cookbook.texi:1208
#, no-wrap
msgid "#:configure-flags '(\"-DUSE_SHA1DC=ON\")\n"
msgstr "#:configure-flags '(\"-DUSE_SHA1DC=ON\")\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1211
+#: guix-git/doc/guix-cookbook.texi:1212
msgid "The @code{%build-inputs} variable is also generated in scope. It's an association table that maps the input names to their store directories."
msgstr "La variable @code{%build-inputs} est aussi générée dans cette portée. C'est une liste d'association qui fait correspondre les noms des entrées à leur répertoire dans le dépôt."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1216
+#: guix-git/doc/guix-cookbook.texi:1217
msgid "The @code{phases} keyword lists the sequential steps of the build system. Typically phases include @code{unpack}, @code{configure}, @code{build}, @code{install} and @code{check}. To know more about those phases, you need to work out the appropriate build system definition in @samp{$GUIX_CHECKOUT/guix/build/gnu-build-system.scm}:"
msgstr "Le mot-clé @code{phases} liste la séquence d'étapes du système de construction. Les phases usuelles sont @code{unpack}, @code{configure}, @code{build}, @code{install} et @code{check}. Pour en savoir plus, vous devez trouver la bonne définition du système de construction dans @samp{$GUIX_CHECKOUT/guix/build/gnu-build-system.scm} :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1235
+#: guix-git/doc/guix-cookbook.texi:1236
#, no-wrap
msgid ""
"(define %standard-phases\n"
@@ -2457,12 +2471,12 @@ msgstr ""
" compress-documentation)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1238
+#: guix-git/doc/guix-cookbook.texi:1239
msgid "Or from the REPL:"
msgstr "Ou depuis la REPL :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1244
+#: guix-git/doc/guix-cookbook.texi:1245
#, no-wrap
msgid ""
"(add-to-load-path \"/path/to/guix/checkout\")\n"
@@ -2476,17 +2490,17 @@ msgstr ""
"@result{} (set-SOURCE-DATE-EPOCH set-paths install-locale unpack bootstrap patch-usr-bin-file patch-source-shebangs configure patch-generated-file-shebangs build check install patch-shebangs strip validate-runpath validate-documentation-location delete-info-dir-file patch-dot-desktop-files install-license-files reset-gzip-timestamps compress-documentation)\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1248
+#: guix-git/doc/guix-cookbook.texi:1249
msgid "If you want to know more about what happens during those phases, consult the associated procedures."
msgstr "Si vous voulez en apprendre plus sur ce qui arrive pendant ces phases, consultez les procédures associées."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1251
+#: guix-git/doc/guix-cookbook.texi:1252
msgid "For instance, as of this writing the definition of @code{unpack} for the GNU build system is:"
msgstr "Par exemple, au moment d'écrire ces lignes, la définition de @code{unpack} dans le système de construction de GNU est :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1261
+#: guix-git/doc/guix-cookbook.texi:1262
#, no-wrap
msgid ""
"(define* (unpack #:key source #:allow-other-keys)\n"
@@ -2510,7 +2524,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1272
+#: guix-git/doc/guix-cookbook.texi:1273
#, no-wrap
msgid ""
" ;; Preserve timestamps (set to the Epoch) on the copied tree so that\n"
@@ -2536,42 +2550,42 @@ msgstr ""
" #true)\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1280
+#: guix-git/doc/guix-cookbook.texi:1281
msgid "Note the @code{chdir} call: it changes the working directory to where the source was unpacked. Thus every phase following the @code{unpack} will use the source as a working directory, which is why we can directly work on the source files. That is to say, unless a later phase changes the working directory to something else."
msgstr "Remarquez l'appel à @code{chdir} : il change de répertoire courant vers la source qui vient d'être décompressée. Ainsi toutes les phases suivantes utiliseront le répertoire des sources comme répertoire de travail, ce qui explique qu'on peut travailler directement sur les fichiers sources. Du moins, tant qu'une phase suivante ne change pas le répertoire de travail."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1284
+#: guix-git/doc/guix-cookbook.texi:1285
msgid "We modify the list of @code{%standard-phases} of the build system with the @code{modify-phases} macro as per the list of specified modifications, which may have the following forms:"
msgstr "Nous modifions la liste des @code{%standard-phases} du système de construction avec la macro @code{modify-phases} qui indique la liste des modifications, sous cette formes :"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:1288
+#: guix-git/doc/guix-cookbook.texi:1289
msgid "@code{(add-before @var{phase} @var{new-phase} @var{procedure})}: Run @var{procedure} named @var{new-phase} before @var{phase}."
msgstr "@code{(add-before @var{phase} @var{nouvelle-phase} @var{procédure})} : Lance une @var{procédure} nommée @var{nouvelle-phase} avant @var{phase}."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:1290
+#: guix-git/doc/guix-cookbook.texi:1291
msgid "@code{(add-after @var{phase} @var{new-phase} @var{procedure})}: Same, but afterwards."
msgstr "@code{(add-after @var{phase} @var{nouvelle-phase} @var{procédure})} : Pareil, mais après la @var{phase}."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:1292
+#: guix-git/doc/guix-cookbook.texi:1293
msgid "@code{(replace @var{phase} @var{procedure})}."
msgstr "@code{(replace @var{phase} @var{procédure})}."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:1294
+#: guix-git/doc/guix-cookbook.texi:1295
msgid "@code{(delete @var{phase})}."
msgstr "@code{(delete @var{phase})}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1301
+#: guix-git/doc/guix-cookbook.texi:1302
msgid "The @var{procedure} supports the keyword arguments @code{inputs} and @code{outputs}. Each input (whether @emph{native}, @emph{propagated} or not) and output directory is referenced by their name in those variables. Thus @code{(assoc-ref outputs \"out\")} is the store directory of the main output of the package. A phase procedure may look like this:"
msgstr "La @var{procédure} prend en charge les arguments @code{inputs} et @code{outputs} sous forme de mot-clés. Les entrées (@emph{natives}, @emph{propagées} et simples) et répertoires de sortie sont référencés par leur nom dans ces variables. Ainsi @code{(assoc-ref outputs \"out\")} est le répertoire du dépôt de la sortie principale du paquet. Une procédure de phase ressemble à cela :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1309
+#: guix-git/doc/guix-cookbook.texi:1310
#, no-wrap
msgid ""
"(lambda* (#:key inputs outputs #:allow-other-keys)\n"
@@ -2589,194 +2603,194 @@ msgstr ""
" #true))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1315
+#: guix-git/doc/guix-cookbook.texi:1316
msgid "The procedure must return @code{#true} on success. It's brittle to rely on the return value of the last expression used to tweak the phase because there is no guarantee it would be a @code{#true}. Hence the trailing @code{#true} to ensure the right value is returned on success."
msgstr "La procédure doit renvoyer @code{#true} si elle réussit. S'appuyer sur la valeur de retour de la dernière expression n'est pas très solide parce qu'il n'y a pas de garantie qu'elle sera @code{#true}. Donc le @code{#true} à la fin permet de s'assurer que la bonne valeur est renvoyée si la phase réussit."
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:1316
+#: guix-git/doc/guix-cookbook.texi:1317
#, no-wrap
msgid "Code staging"
msgstr "Échelonnage du code"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1322
+#: guix-git/doc/guix-cookbook.texi:1323
msgid "The astute reader may have noticed the quasi-quote and comma syntax in the argument field. Indeed, the build code in the package declaration should not be evaluated on the client side, but only when passed to the Guix daemon. This mechanism of passing code around two running processes is called @uref{https://arxiv.org/abs/1709.00833, code staging}."
msgstr "Si vous avez été attentif, vous aurez remarqué la quasi-quote et la virgule dans le champ argument. En effet, le code de construction dans la déclaration du paquet ne doit pas être évalué côté client, mais seulement après avoir été passé au démon Guix. Ce mécanisme de passage de code entre deux processus s'appelle @uref{https://arxiv.org/abs/1709.00833, l'échelonnage de code}."
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:1323
+#: guix-git/doc/guix-cookbook.texi:1324
#, no-wrap
msgid "Utility functions"
msgstr "Fonctions utilitaires"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1328
+#: guix-git/doc/guix-cookbook.texi:1329
msgid "When customizing @code{phases}, we often need to write code that mimics the equivalent system invocations (@code{make}, @code{mkdir}, @code{cp}, etc.)@: commonly used during regular ``Unix-style'' installations."
msgstr "Lorsque vous modifiez les @code{phases}, vous aurez souvent besoin d'écrire du code qui ressemble aux invocation équivalentes (@code{make}, @code{mkdir}, @code{cp}, etc) couramment utilisées durant une installatio plus standard dans le monde Unix."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1331
+#: guix-git/doc/guix-cookbook.texi:1332
msgid "Some like @code{chmod} are native to Guile. @xref{,,, guile, Guile reference manual} for a complete list."
msgstr "Certaines comme @code{chmod} sont natives dans Guile. @xref{,,, guile, Guile reference manual} pour une liste complète."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1334
+#: guix-git/doc/guix-cookbook.texi:1335
msgid "Guix provides additional helper functions which prove especially handy in the context of package management."
msgstr "Guix fournit des fonctions utilitaires supplémentaires qui sont particulièrement utiles pour la gestion des paquets."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1338
+#: guix-git/doc/guix-cookbook.texi:1339
msgid "Some of those functions can be found in @samp{$GUIX_CHECKOUT/guix/guix/build/utils.scm}. Most of them mirror the behaviour of the traditional Unix system commands:"
msgstr "Certaines de ces fonctions se trouvent dans @samp{$GUIX_CHECKOUT/guix/guix/build/utils.scm}. La plupart copient le comportement des commandes systèmes Unix traditionnelles :"
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1340
+#: guix-git/doc/guix-cookbook.texi:1341
#, no-wrap
msgid "which"
msgstr "which"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1342
+#: guix-git/doc/guix-cookbook.texi:1343
msgid "Like the @samp{which} system command."
msgstr "Fonctionne comme la commande système @samp{which}."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1342
+#: guix-git/doc/guix-cookbook.texi:1343
#, no-wrap
msgid "find-files"
msgstr "find-files"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1344
+#: guix-git/doc/guix-cookbook.texi:1345
msgid "Akin to the @samp{find} system command."
msgstr "Fonctionne un peu comme la commande @samp{find}."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1344
+#: guix-git/doc/guix-cookbook.texi:1345
#, no-wrap
msgid "mkdir-p"
msgstr "mkdir-p"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1346
+#: guix-git/doc/guix-cookbook.texi:1347
msgid "Like @samp{mkdir -p}, which creates all parents as needed."
msgstr "Fonctionne comme @samp{mkdir -p}, qui crée tous les parents si besoin."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1346
+#: guix-git/doc/guix-cookbook.texi:1347
#, no-wrap
msgid "install-file"
msgstr "install-file"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1350
+#: guix-git/doc/guix-cookbook.texi:1351
msgid "Similar to @samp{install} when installing a file to a (possibly non-existing) directory. Guile has @code{copy-file} which works like @samp{cp}."
msgstr "Fonctionne comme @samp{install} pour installer un fichier vers un répertoire (éventuellement non existant). Guile a @code{copy-file} qui fonctionne comme @samp{cp}."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1350
+#: guix-git/doc/guix-cookbook.texi:1351
#, no-wrap
msgid "copy-recursively"
msgstr "copy-recursively"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1352
+#: guix-git/doc/guix-cookbook.texi:1353
msgid "Like @samp{cp -r}."
msgstr "Fonctionne comme @samp{cp -r}."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1352
+#: guix-git/doc/guix-cookbook.texi:1353
#, no-wrap
msgid "delete-file-recursively"
msgstr "delete-file-recursively"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1354
+#: guix-git/doc/guix-cookbook.texi:1355
msgid "Like @samp{rm -rf}."
msgstr "Fonctionne comme @samp{rm -rf}."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1354
+#: guix-git/doc/guix-cookbook.texi:1355
#, no-wrap
msgid "invoke"
msgstr "invoke"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1356
+#: guix-git/doc/guix-cookbook.texi:1357
msgid "Run an executable. This should be used instead of @code{system*}."
msgstr "Lance un exécutable. Vous devriez utiliser cela à la place de @code{system*}."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1356
+#: guix-git/doc/guix-cookbook.texi:1357
#, no-wrap
msgid "with-directory-excursion"
msgstr "with-directory-excursion"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1359
+#: guix-git/doc/guix-cookbook.texi:1360
msgid "Run the body in a different working directory, then restore the previous working directory."
msgstr "Lance le corps dans un répertoire de travail différent, puis revient au répertoire de travail précédent."
#. type: item
-#: guix-git/doc/guix-cookbook.texi:1359
+#: guix-git/doc/guix-cookbook.texi:1360
#, no-wrap
msgid "substitute*"
msgstr "substitute*"
#. type: table
-#: guix-git/doc/guix-cookbook.texi:1361
+#: guix-git/doc/guix-cookbook.texi:1362
msgid "A ``@command{sed}-like'' function."
msgstr "Une fonction similaire à @command{sed}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1365
+#: guix-git/doc/guix-cookbook.texi:1366
msgid "@xref{Build Utilities,,, guix, GNU Guix Reference Manual}, for more information on these utilities."
msgstr "@xref{Utilitaires de construction,,, guix.fr, le manuel de référence de GNU Guix}, pour plus d'informations sur ces utilitaires."
#. type: subsubsection
-#: guix-git/doc/guix-cookbook.texi:1366
+#: guix-git/doc/guix-cookbook.texi:1367
#, no-wrap
msgid "Module prefix"
msgstr "Préfixe de module"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1376
+#: guix-git/doc/guix-cookbook.texi:1377
msgid "The license in our last example needs a prefix: this is because of how the @code{license} module was imported in the package, as @code{#:use-module ((guix licenses) #:prefix license:)}. The Guile module import mechanism (@pxref{Using Guile Modules,,, guile, Guile reference manual}) gives the user full control over namespacing: this is needed to avoid clashes between, say, the @samp{zlib} variable from @samp{licenses.scm} (a @emph{license} value) and the @samp{zlib} variable from @samp{compression.scm} (a @emph{package} value)."
msgstr "La licence dans notre dernier exemple a besoin d'un préfixe à cause de la manière dont le module @code{licenses} a été importé dans le paquet, avec @code{#:use-module ((guix licenses) #:prefix license:)}. Le mécanisme d'import de module de Guile (@pxref{Using Guile Modules,,, guile, Guile reference manual}) permet de contrôler complètement l'espace de nom. Cela évite les conflits entre, disons, la variable @samp{zlib} de @samp{licenses.scm} (un @emph{licence}) et la variable @samp{zlib} de @samp{compression.scm} (un @emph{paquet})."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1385
+#: guix-git/doc/guix-cookbook.texi:1386
msgid "What we've seen so far covers the majority of packages using a build system other than the @code{trivial-build-system}. The latter does not automate anything and leaves you to build everything manually. This can be more demanding and we won't cover it here for now, but thankfully it is rarely necessary to fall back on this system."
msgstr "Ce que nous avons vu jusqu'ici couvre la majeur partie des paquets qui utilisent un système de construction autre que @code{trivial-build-system}. Ce dernier n'automatise rien et vous laisse tout construire par vous-même. C'est plus exigeant et nous n'en parlerons pas pour l'instant, mais heureusement il est rarement nécessaire d'aller jusqu'à ces extrémités."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1389
+#: guix-git/doc/guix-cookbook.texi:1390
msgid "For the other build systems, such as ASDF, Emacs, Perl, Ruby and many more, the process is very similar to the GNU build system except for a few specialized arguments."
msgstr "Pour les autres systèmes de construction, comme ASDF, Emacs, Perl, Ruby et bien d'autres, le processus est très similaire à celui du système de construction de GNU en dehors de quelques arguments spécialisés."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1394
+#: guix-git/doc/guix-cookbook.texi:1395
msgid "@xref{Build Systems,,, guix, GNU Guix Reference Manual}, for more information on build systems, or check the source code in the @samp{$GUIX_CHECKOUT/guix/build} and @samp{$GUIX_CHECKOUT/guix/build-system} directories."
msgstr "@xref{Systèmes de construction,,, guix.fr, le manuel de référence de GNU Guix}, pour plus d'informations sur les systèmes de construction, ou voir le code source dans les répertoires @samp{$GUIX_CHECKOUT/guix/build} et @samp{$GUIX_CHECKOUT/guix/build-system}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1400
+#: guix-git/doc/guix-cookbook.texi:1401
msgid "We can't repeat it enough: having a full-fledged programming language at hand empowers us in ways that reach far beyond traditional package management."
msgstr "Nous ne le répéterons jamais assez : avoir un langage de programmation complet à disposition nous permet de faire bien plus de choses que la gestion de paquets traditionnelle."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1402
+#: guix-git/doc/guix-cookbook.texi:1403
msgid "Let's illustrate this with some awesome features of Guix!"
msgstr "Illustrons cela avec certaines fonctionnalités géniales de Guix !"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1417
+#: guix-git/doc/guix-cookbook.texi:1418
msgid "You might find some build systems good enough that there is little to do at all to write a package, to the point that it becomes repetitive and tedious after a while. A @emph{raison d'être} of computers is to replace human beings at those boring tasks. So let's tell Guix to do this for us and create the package definition of an R package from CRAN (the output is trimmed for conciseness):"
msgstr "Certains systèmes de constructions sont si bons qu'il n'y a presque rien à écrire pour créer un paquet, au point que cela devient rapidement répétitif et pénible. L'une des raisons d'être des ordinateurs est de remplacer les êtres humains pour ces taches barbantes. Disons donc à Guix de faire cela pour nous et de créer les définitions de paquets pour un paquet R venant de CRAN (la sortie est coupée par souci de place) :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1420
+#: guix-git/doc/guix-cookbook.texi:1421
#, no-wrap
msgid ""
"$ guix import cran --recursive walrus\n"
@@ -2786,7 +2800,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1424
+#: guix-git/doc/guix-cookbook.texi:1425
#, no-wrap
msgid ""
"(define-public r-mc2d\n"
@@ -2800,7 +2814,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1428
+#: guix-git/doc/guix-cookbook.texi:1429
#, no-wrap
msgid ""
"(define-public r-jmvcore\n"
@@ -2814,7 +2828,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1432
+#: guix-git/doc/guix-cookbook.texi:1433
#, no-wrap
msgid ""
"(define-public r-wrs2\n"
@@ -2828,7 +2842,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1458
+#: guix-git/doc/guix-cookbook.texi:1459
#, no-wrap
msgid ""
"(define-public r-walrus\n"
@@ -2884,44 +2898,44 @@ msgstr ""
" (license gpl3)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1462
+#: guix-git/doc/guix-cookbook.texi:1463
msgid "The recursive importer won't import packages for which Guix already has package definitions, except for the very first."
msgstr "L'importateur récursif n'importera pas les paquets pour lesquels Guix a déjà une définition, sauf pour le tout premier."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1467
+#: guix-git/doc/guix-cookbook.texi:1468
msgid "Not all applications can be packaged this way, only those relying on a select number of supported systems. Read about the full list of importers in the guix import section of the manual (@pxref{Invoking guix import,,, guix, GNU Guix Reference Manual})."
msgstr "Toutes les applications ne peuvent pas être empaquetées de cette manière, seules celles qui s'appuient sur un nombre restreint de systèmes pris en charge le peuvent. Vous trouverez la liste complète des importateurs dans la section dédiée du manuel (@pxref{Invoquer guix import,,, guix.fr, le manuel de référence de GNU})."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1473
+#: guix-git/doc/guix-cookbook.texi:1474
msgid "Guix can be smart enough to check for updates on systems it knows. It can report outdated package definitions with"
msgstr "Guix peut être assez intelligent pour vérifier s'il y a des mises à jour sur les systèmes qu'il connaît. Il peut rapporter les paquets anciens avec"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1476
+#: guix-git/doc/guix-cookbook.texi:1477
#, no-wrap
msgid "$ guix refresh hello\n"
msgstr "$ guix refresh hello\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1481
+#: guix-git/doc/guix-cookbook.texi:1482
msgid "In most cases, updating a package to a newer version requires little more than changing the version number and the checksum. Guix can do that automatically as well:"
msgstr "La plupart du temps, mettre à jour un paquet vers une nouvelle version ne demande pas beaucoup plus que de changer le numéro de version et la somme de contrôle. Guix peut aussi le faire automatiquement :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1484
+#: guix-git/doc/guix-cookbook.texi:1485
#, no-wrap
msgid "$ guix refresh hello --update\n"
msgstr "$ guix refresh hello --update\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1491
+#: guix-git/doc/guix-cookbook.texi:1492
msgid "If you've started browsing the existing package definitions, you might have noticed that a significant number of them have a @code{inherit} field:"
msgstr "Si vous avez commencé à regarder des définitions de paquets existantes, vous avez peut-être remarqué qu'un certain nombre d'entre elles ont un champ @code{inherit} :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1506
+#: guix-git/doc/guix-cookbook.texi:1507
#, no-wrap
msgid ""
"(define-public adwaita-icon-theme\n"
@@ -2953,82 +2967,82 @@ msgstr ""
" (native-inputs (list `(,gtk+ \"bin\")))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1511
+#: guix-git/doc/guix-cookbook.texi:1512
msgid "All unspecified fields are inherited from the parent package. This is very convenient to create alternative packages, for instance with different source, version or compilation options."
msgstr "Tous les champs non spécifiés héritent du paquet parent. C'est très pratique pour créer un paquet alternatif, par exemple avec une source, une version ou des options de compilation différentes."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1519
+#: guix-git/doc/guix-cookbook.texi:1520
msgid "Sadly, some applications can be tough to package. Sometimes they need a patch to work with the non-standard file system hierarchy enforced by the store. Sometimes the tests won't run properly. (They can be skipped but this is not recommended.) Other times the resulting package won't be reproducible."
msgstr "Malheureusement, certaines applications peuvent être difficiles à empaqueter. Parfois elles ont besoin d'un correctif pour fonctionner avec la hiérarchie du système de fichiers non standard imposée par de dépôt. Parfois les tests ne se lancent pas correctement (vous pouvez les passer mais ce n'est pas recommandé). Parfois le paquet n'est pas reproductible."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1522
+#: guix-git/doc/guix-cookbook.texi:1523
msgid "Should you be stuck, unable to figure out how to fix any sort of packaging issue, don't hesitate to ask the community for help."
msgstr "Si vous êtes bloqué·e, incapable de trouver comme corriger un problème d'empaquetage, n'hésitez pas à demander de l'aide à la communauté."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1524
+#: guix-git/doc/guix-cookbook.texi:1525
msgid "See the @uref{https://www.gnu.org/software/guix/contact/, Guix homepage} for information on the mailing lists, IRC, etc."
msgstr "voir la @uref{https://guix.gnu.org/fr/contact/,la page d'accueil de Guix} pour plus d'informations sur les listes de diffusion, IRC, etc."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1532
+#: guix-git/doc/guix-cookbook.texi:1533
msgid "This tutorial was a showcase of the sophisticated package management that Guix boasts. At this point we have mostly restricted this introduction to the @code{gnu-build-system} which is a core abstraction layer on which more advanced abstractions are based."
msgstr "Ce didacticiel vous a montré la gestion des paquets sophistiquée dont Guix se targue. Maintenant, nous avons restreint cette introduction au système @code{gnu-build-system} qui est un niveau d'abstraction essentiel sur lequel des niveaux d'abstraction plus avancés se reposent."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1537
+#: guix-git/doc/guix-cookbook.texi:1538
msgid "Where do we go from here? Next we ought to dissect the innards of the build system by removing all abstractions, using the @code{trivial-build-system}: this should give us a thorough understanding of the process before investigating some more advanced packaging techniques and edge cases."
msgstr "Comment continuer ? Nous devrions ensuite disséquer le fonctionnement interne des systèmes de construction en supprimant toutes les abstractions, avec le @code{trivial-build-system} : cela vous permettra de bien comprendre le processus avant de voir des techniques plus avancées et certains cas particuliers."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1540
+#: guix-git/doc/guix-cookbook.texi:1541
msgid "Other features worth exploring are the interactive editing and debugging capabilities of Guix provided by the Guile REPL@."
msgstr "D'autres fonctionnalités que vous devriez explorer sont l'édition interactive et les possibilités de débogage de Guix fournies par la REPL de Guile."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1545
+#: guix-git/doc/guix-cookbook.texi:1546
msgid "Those fancy features are completely optional and can wait; now is a good time to take a well-deserved break. With what we've introduced here you should be well armed to package lots of programs. You can get started right away and hopefully we will see your contributions soon!"
msgstr "Ces fonctionnalités avancées sont complètement facultatives et peuvent attendre ; maintenant vous devriez prendre une pause bien méritée. Avec ce dont nous venons de parler ici vous devriez être bien armé·e pour empaqueter de nombreux paquets. Vous pouvez commencer dès maintenant et on espère voir votre contribution bientôt !"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:1552
+#: guix-git/doc/guix-cookbook.texi:1553
msgid "The @uref{https://www.gnu.org/software/guix/manual/en/html_node/Defining-Packages.html, package reference in the manual}"
msgstr "La @uref{https://guix.gnu.org/manual/devel/fr/html_node/reference-de-package.html, référence des paquets dans le manuel}"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:1555
+#: guix-git/doc/guix-cookbook.texi:1556
msgid "@uref{https://gitlab.com/pjotrp/guix-notes/blob/master/HACKING.org, Pjotr’s hacking guide to GNU Guix}"
msgstr "@uref{https://gitlab.com/pjotrp/guix-notes/blob/master/HACKING.org, le guide de bidouillage de GNU Guix de Pjotr}"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:1558
+#: guix-git/doc/guix-cookbook.texi:1559
msgid "@uref{https://www.gnu.org/software/guix/guix-ghm-andreas-20130823.pdf, ``GNU Guix: Package without a scheme!''}, by Andreas Enge"
msgstr "@uref{https://www.gnu.org/software/guix/guix-ghm-andreas-20130823.pdf, « GNU Guix: Package without a scheme! »}, d'Andreas Enge"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1567
+#: guix-git/doc/guix-cookbook.texi:1568
msgid "Guix offers a flexible language for declaratively configuring your Guix System. This flexibility can at times be overwhelming. The purpose of this chapter is to demonstrate some advanced configuration concepts."
msgstr "Guix propose un langage flexible pour déclarer la configuration de votre système Guix. Cette flexibilité peut parfois paraître écrasante. Le but de ce chapitre est de vous montrer quelques concepts de configuration avancés."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1570
+#: guix-git/doc/guix-cookbook.texi:1571
msgid "@pxref{System Configuration,,, guix, GNU Guix Reference Manual} for a complete reference."
msgstr "@pxref{Configuration du système,,, guix.fr, le manuel de référence de GNU Guix} pour une référence complète."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1597
+#: guix-git/doc/guix-cookbook.texi:1598
msgid "While the Guix manual explains auto-login one user to @emph{all} TTYs ( @pxref{auto-login to TTY,,, guix, GNU Guix Reference Manual}), some might prefer a situation, in which one user is logged into one TTY with the other TTYs either configured to login different users or no one at all. Note that one can auto-login one user to any TTY, but it is usually advisable to avoid @code{tty1}, which, by default, is used to log warnings and errors."
msgstr "Tandis que le manuel de Guix explique comment connecter automatiquement un utilisateur sur @emph{tous} les TTY (@pxref{connexion automatique à un TTY,,, guix.fr, le manuel de référence de Guix}), vous pourriez préférer avoir un utilisateur connecté sur un TTY et configurer les autres TTY pour connecter d'autres utilisateurs ou personne. Remarquez que vous pouvez connecter automatiquement un utilisateur sur n'importe quel TTY, mais il est recommandé d'éviter @code{tty1}, car par défaut, il est utilisé pour afficher les avertissements et les erreurs des journaux systèmes."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1599
+#: guix-git/doc/guix-cookbook.texi:1600
msgid "Here is how one might set up auto login for one user to one tty:"
msgstr "Voici comment on peut configurer la connexion d'un utilisateur sur un tty :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1607
+#: guix-git/doc/guix-cookbook.texi:1608
#, no-wrap
msgid ""
"(define (auto-login-to-tty config tty user)\n"
@@ -3048,7 +3062,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1614
+#: guix-git/doc/guix-cookbook.texi:1615
#, no-wrap
msgid ""
"(define %my-services\n"
@@ -3068,7 +3082,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1618
+#: guix-git/doc/guix-cookbook.texi:1619
#, no-wrap
msgid ""
"(operating-system\n"
@@ -3080,37 +3094,37 @@ msgstr ""
" (services %my-services))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1623
+#: guix-git/doc/guix-cookbook.texi:1624
msgid "One could also @code{compose} (@pxref{Higher-Order Functions,,, guile, The Guile Reference Manual}) @code{auto-login-to-tty} to login multiple users to multiple ttys."
msgstr "On peut aussi utiliser @code{compose} (@pxref{Higher-Order Functions,,, guile, The Guile Reference Manual}) avec @code{auto-login-to-tty} pour connecter plusieurs utilisateurs sur différents ttys."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1630
+#: guix-git/doc/guix-cookbook.texi:1631
msgid "Finally, here is a note of caution. Setting up auto login to a TTY, means that anyone can turn on your computer and run commands as your regular user. However, if you have an encrypted root partition, and thus already need to enter a passphrase when the system boots, auto-login might be a convenient option."
msgstr "Enfin, une mise en garde. Configurer la connexion automatique à un TTY signifie que n'importe qui peut allumer votre ordinateur et lancer des commandes avec votre utilisateur normal. Cependant, si vous avez une partition racine chiffrée, et donc qu'il faut déjà saisir une phrase de passe au démarrage du système, la connexion automatique peut être un choix pratique."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1642
+#: guix-git/doc/guix-cookbook.texi:1643
msgid "Guix is, at its core, a source based distribution with substitutes (@pxref{Substitutes,,, guix, GNU Guix Reference Manual}), and as such building packages from their source code is an expected part of regular package installations and upgrades. Given this starting point, it makes sense that efforts are made to reduce the amount of time spent compiling packages, and recent changes and upgrades to the building and distribution of substitutes continues to be a topic of discussion within Guix."
msgstr "Guix est, en son cœur, une distribution source avec des substituts (@pxref{Substituts,,, guix.fr, le manuel de référence de GNU Guix}), et donc construire des paquets à partir de leur code source est normal pendant les installations et les mis à jour de paquets. Malgré tout, c'est aussi normal d'essayer de réduire le temps passé à compiler des paquets, et les changements récents et futurs concernant la construction et la distribution des substituts continue d'être un sujet de discussion dans le projet Guix."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1648
+#: guix-git/doc/guix-cookbook.texi:1649
msgid "The kernel, while not requiring an overabundance of RAM to build, does take a rather long time on an average machine. The official kernel configuration, as is the case with many GNU/Linux distributions, errs on the side of inclusiveness, and this is really what causes the build to take such a long time when the kernel is built from source."
msgstr "Le noyau, bien qu'il ne demande pas énormément de RAM pour être construit, prend assez long à construire sur une machine usuelle. La configuration du noyau officielle, comme avec la plupart des autres distributions GNU/Linux, penche du côté de l'inclusivité, et c'est vraiment ça qui rend la construction aussi longue à partir des sources."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1653
+#: guix-git/doc/guix-cookbook.texi:1654
msgid "The Linux kernel, however, can also just be described as a regular old package, and as such can be customized just like any other package. The procedure is a little bit different, although this is primarily due to the nature of how the package definition is written."
msgstr "Le noyau Linux, cependant, peut aussi être décrit comme un simple paquet comme les autres, et peut donc être personnalisé comme n'importe quel autre paquet. La procédure est un peu différente, même si c'est surtout dû à la nature de la définition du paquet."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1656
+#: guix-git/doc/guix-cookbook.texi:1657
msgid "The @code{linux-libre} kernel package definition is actually a procedure which creates a package."
msgstr "Le paquet du noyau @code{linux-libre} est en fait une procédure qui crée un paquet."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1667
+#: guix-git/doc/guix-cookbook.texi:1668
#, no-wrap
msgid ""
"(define* (make-linux-libre* version gnu-revision source supported-systems\n"
@@ -3134,12 +3148,12 @@ msgstr ""
" ...)\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1671
+#: guix-git/doc/guix-cookbook.texi:1672
msgid "The current @code{linux-libre} package is for the 5.15.x series, and is declared like this:"
msgstr "Le paquet @code{linux-libre} actuel pour la série 5.15.x, est déclaré comme ceci :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1679
+#: guix-git/doc/guix-cookbook.texi:1680
#, no-wrap
msgid ""
"(define-public linux-libre-5.15\n"
@@ -3157,17 +3171,17 @@ msgstr ""
" #:configuration-file kernel-config))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1686
+#: guix-git/doc/guix-cookbook.texi:1687
msgid "Any keys which are not assigned values inherit their default value from the @code{make-linux-libre} definition. When comparing the two snippets above, notice the code comment that refers to @code{#:configuration-file}. Because of this, it is not actually easy to include a custom kernel configuration from the definition, but don't worry, there are other ways to work with what we do have."
msgstr "Les clés qui n'ont pas de valeur associée prennent leur valeur par défaut dans la définition de @code{make-linux-libre}. Lorsque vous comparez les deux bouts de code ci-dessus, remarquez le commentaire qui correspond à @code{#:configuration-file}. À cause de cela, il n'est pas facile d'inclure une configuration personnalisée du noyau à partir de la définition, mais ne vous inquiétez pas, il y a d'autres moyens de travailler avec ce qu'on a."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1692
+#: guix-git/doc/guix-cookbook.texi:1693
msgid "There are two ways to create a kernel with a custom kernel configuration. The first is to provide a standard @file{.config} file during the build process by including an actual @file{.config} file as a native input to our custom kernel. The following is a snippet from the custom @code{'configure} phase of the @code{make-linux-libre} package definition:"
msgstr "Il y a deux manières de créer un noyau avec une configuration personnalisée. La première consiste à fournir un fichier @file{.config} standard au processus de construction en ajoutant un fichier @file{.config} comme entrée native de notre noyau. Voici un bout de code correspondant à la phase @code{'configure} de la définition de paquet @code{make-linux-libre} :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1696
+#: guix-git/doc/guix-cookbook.texi:1697
#, no-wrap
msgid ""
"(let ((build (assoc-ref %standard-phases 'build))\n"
@@ -3179,7 +3193,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1704
+#: guix-git/doc/guix-cookbook.texi:1705
#, no-wrap
msgid ""
" ;; Use a custom kernel configuration file or a default\n"
@@ -3199,12 +3213,12 @@ msgstr ""
" (invoke \"make\" ,defconfig)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1709
+#: guix-git/doc/guix-cookbook.texi:1710
msgid "Below is a sample kernel package. The @code{linux-libre} package is nothing special and can be inherited from and have its fields overridden like any other package:"
msgstr "Et voici un exemple de paquet de noyau. Le paquet @code{linux-libre} n'a rien de spécial, on peut en hériter et remplacer ses champs comme n'importe quel autre paquet :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1718
+#: guix-git/doc/guix-cookbook.texi:1719
#, no-wrap
msgid ""
"(define-public linux-libre/E2140\n"
@@ -3224,17 +3238,17 @@ msgstr ""
" (package-native-inputs linux-libre))))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1725
+#: guix-git/doc/guix-cookbook.texi:1726
msgid "In the same directory as the file defining @code{linux-libre-E2140} is a file named @file{E2140.config}, which is an actual kernel configuration file. The @code{defconfig} keyword of @code{make-linux-libre} is left blank here, so the only kernel configuration in the package is the one which was included in the @code{native-inputs} field."
msgstr "Dans le même répertoire que le fichier définissant @code{linux-libre-E2140} se trouve un fichier nommé @file{E2140.config}, qui est un fichier de configuration du noyau. Le mot-clé @code{defconfig} de @code{make-linux-libre} reste vide ici, donc la configuration du noyau dans le paquet est celle qui sera incluse dans le champ @code{native-inputs}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1730
+#: guix-git/doc/guix-cookbook.texi:1731
msgid "The second way to create a custom kernel is to pass a new value to the @code{extra-options} keyword of the @code{make-linux-libre} procedure. The @code{extra-options} keyword works with another function defined right below it:"
msgstr "La deuxième manière de créer un noyau personnalisé est de passer une nouvelle valeur au mot-clé @code{extra-options} de la procédure @code{make-linux-libre}. Le mot-clé @code{extra-options} fonctionne avec une autre fonction définie juste en dessous :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1746
+#: guix-git/doc/guix-cookbook.texi:1747
#, no-wrap
msgid ""
"(define %default-extra-linux-options\n"
@@ -3270,7 +3284,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1757
+#: guix-git/doc/guix-cookbook.texi:1758
#, no-wrap
msgid ""
"(define (config->string options)\n"
@@ -3296,12 +3310,12 @@ msgstr ""
" \"\\n\"))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1760
+#: guix-git/doc/guix-cookbook.texi:1761
msgid "And in the custom configure script from the `make-linux-libre` package:"
msgstr "Et dans le script configure personnalisé du paquet « make-linux-libre » :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1768
+#: guix-git/doc/guix-cookbook.texi:1769
#, no-wrap
msgid ""
";; Appending works even when the option wasn't in the\n"
@@ -3321,18 +3335,18 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1770
+#: guix-git/doc/guix-cookbook.texi:1771
#, no-wrap
msgid "(invoke \"make\" \"oldconfig\")\n"
msgstr "(invoke \"make\" \"oldconfig\")\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1775
+#: guix-git/doc/guix-cookbook.texi:1776
msgid "So by not providing a configuration-file the @file{.config} starts blank, and then we write into it the collection of flags that we want. Here's another custom kernel:"
msgstr "Donc, en ne fournissant pas de fichier de configuration le fichier @file{.config} est au départ vide et on écrit ensuite l'ensemble des drapeaux que l'on veut. Voici un autre noyau personnalisé :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1783
+#: guix-git/doc/guix-cookbook.texi:1784
#, no-wrap
msgid ""
"(define %macbook41-full-config\n"
@@ -3352,7 +3366,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1794
+#: guix-git/doc/guix-cookbook.texi:1795
#, no-wrap
msgid ""
"(define-public linux-libre-macbook41\n"
@@ -3378,55 +3392,55 @@ msgstr ""
" #:extra-options %macbook41-config-options))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1801
+#: guix-git/doc/guix-cookbook.texi:1802
msgid "In the above example @code{%file-systems} is a collection of flags enabling different file system support, @code{%efi-support} enables EFI support and @code{%emulation} enables a x86_64-linux machine to act in 32-bit mode also. @code{%default-extra-linux-options} are the ones quoted above, which had to be added in since they were replaced in the @code{extra-options} keyword."
msgstr "Dans l'exemple ci-dessus @code{%fale-systems} est un ensemble de drapeaux qui activent la prise en charge de différents systèmes de fichiers, @code{%efi-support} active la prise en charge de l'EFI et @code{%emulation} permet à une machine x86_64-linux de fonctionner aussi en mode 32-bits. @code{%default-extra-linux-options} sont l'ensemble de ces options et elles devaient être ajoutées puisqu'elles ont été remplacées dans le mot-clé @code{extra-options}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1810
+#: guix-git/doc/guix-cookbook.texi:1811
msgid "This all sounds like it should be doable, but how does one even know which modules are required for a particular system? Two places that can be helpful in trying to answer this question is the @uref{https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel, Gentoo Handbook} and the @uref{https://www.kernel.org/doc/html/latest/admin-guide/README.html?highlight=localmodconfig, documentation from the kernel itself}. From the kernel documentation, it seems that @code{make localmodconfig} is the command we want."
msgstr "Tout ça est bien beau, mais comment savoir quels modules sont requis pour un système en particulier ? Il y a deux ressources qui peuvent être utiles pour répondre à cette question : le @uref{https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel, manuel de Gentoo} et la @uref{https://www.kernel.org/doc/html/latest/admin-guide/README.html?highlight=localmodconfig, documentation du noyau}. D'après la documentation du noyau, il semble que la commande @code{make localmodconfig} soit la bonne."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1813
+#: guix-git/doc/guix-cookbook.texi:1814
msgid "In order to actually run @code{make localmodconfig} we first need to get and unpack the kernel source code:"
msgstr "Pour lancer @code{make localmodconfig} on doit d'abord récupérer et décompresser le code source du noyau :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1816
+#: guix-git/doc/guix-cookbook.texi:1817
#, no-wrap
msgid "tar xf $(guix build linux-libre --source)\n"
msgstr "tar xf $(guix build linux-libre --source)\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1823
+#: guix-git/doc/guix-cookbook.texi:1824
msgid "Once inside the directory containing the source code run @code{touch .config} to create an initial, empty @file{.config} to start with. @code{make localmodconfig} works by seeing what you already have in @file{.config} and letting you know what you're missing. If the file is blank then you're missing everything. The next step is to run:"
msgstr "Une fois dans le répertoire contenant le code source lancez @code{touch .config} pour créer un fichier @file{.config} initialement vide pour commencer. @code{make localmodconfig} fonctionne en remarquant que avec déjà un @file{.config} et en vous disant ce qu'il vous manque. Si le fichier est vide, il vous manquera tout ce qui est nécessaire. L'étape suivante consiste à lancer :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1826
+#: guix-git/doc/guix-cookbook.texi:1827
#, no-wrap
msgid "guix shell -D linux-libre -- make localmodconfig\n"
msgstr "guix shell -D linux-libre -- make localmodconfig\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1831
+#: guix-git/doc/guix-cookbook.texi:1832
msgid "and note the output. Do note that the @file{.config} file is still empty. The output generally contains two types of warnings. The first start with \"WARNING\" and can actually be ignored in our case. The second read:"
msgstr "et regardez la sortie. Remarquez que le fichier @file{.config} est toujours vide. La sortie contient en général deux types d'avertissements. Le premier commence par « WARNING » et peut être ignoré dans notre cas. Le deuxième dit :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1834
+#: guix-git/doc/guix-cookbook.texi:1835
#, no-wrap
msgid "module pcspkr did not have configs CONFIG_INPUT_PCSPKR\n"
msgstr "module pcspkr did not have configs CONFIG_INPUT_PCSPKR\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1839
+#: guix-git/doc/guix-cookbook.texi:1840
msgid "For each of these lines, copy the @code{CONFIG_XXXX_XXXX} portion into the @file{.config} in the directory, and append @code{=m}, so in the end it looks like this:"
msgstr "Pour chacune de ces lignes, copiez la partie @code{CONFIG_XXXX_XXXX} dans le @file{.config} du répertoire et ajoutez @code{=m} pour qu'à la fin il ressemble à cela :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1843
+#: guix-git/doc/guix-cookbook.texi:1844
#, no-wrap
msgid ""
"CONFIG_INPUT_PCSPKR=m\n"
@@ -3436,42 +3450,42 @@ msgstr ""
"CONFIG_VIRTIO=m\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1852
+#: guix-git/doc/guix-cookbook.texi:1853
msgid "After copying all the configuration options, run @code{make localmodconfig} again to make sure that you don't have any output starting with ``module''. After all of these machine specific modules there are a couple more left that are also needed. @code{CONFIG_MODULES} is necessary so that you can build and load modules separately and not have everything built into the kernel. @code{CONFIG_BLK_DEV_SD} is required for reading from hard drives. It is possible that there are other modules which you will need."
msgstr "Après avoir copié toutes les options de configuration, lancez @code{make localmodconfig} de nouveau pour vous assurer que vous n'avez pas de sortie commençant par « module ». Après tous ces modules spécifiques à la machine, il y en a encore quelques uns que nous devons aussi définir. @code{CONFIG_MODULES} est nécessaire pour que nous puissions construire et charger les modules séparément et ne pas tout construire dans le noyau. @code{CONFIG_BLK_DEV_SD} est requis pour lire les disques durs. Il est possible que vous aillez besoin de quelques autres modules."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1856
+#: guix-git/doc/guix-cookbook.texi:1857
msgid "This post does not aim to be a guide to configuring your own kernel however, so if you do decide to build a custom kernel you'll have to seek out other guides to create a kernel which is just right for your needs."
msgstr "Cet article n'a pas pour but de vous guider dans la configuration de votre propre noyau cependant, donc si vous décidez de construire un noyau personnalisé vous devrez chercher d'autres guides pour créer un noyau qui vous convient."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1864
+#: guix-git/doc/guix-cookbook.texi:1865
msgid "The second way to setup the kernel configuration makes more use of Guix's features and allows you to share configuration segments between different kernels. For example, all machines using EFI to boot have a number of EFI configuration flags that they need. It is likely that all the kernels will share a list of file systems to support. By using variables it is easier to see at a glance what features are enabled and to make sure you don't have features in one kernel but missing in another."
msgstr "La deuxième manière de configurer le noyau utilise un peu plus les fonctionnalités de Guix et vous permettent de partager des bouts de configuration entre différents noyaux. Par exemple, toutes les machines avec un démarrage EFI ont besoin d'un certain nombre de configurations. Tous les noyaux vont probablement partager une liste de systèmes de fichiers à prendre en charge. En utilisant des variables il est facile de voir du premier coup quelles fonctionnalités sont activées pour vous assurer que vous n'avez pas des fonctionnalités dans un noyau qui manquent dans un autre."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1869
+#: guix-git/doc/guix-cookbook.texi:1870
msgid "Left undiscussed however, is Guix's initrd and its customization. It is likely that you'll need to modify the initrd on a machine using a custom kernel, since certain modules which are expected to be built may not be available for inclusion into the initrd."
msgstr "Cependant, nous ne parlons pas de la personnalisation du disque de ram initial. Vous devrez sans doute modifier le disque de ram initial sur les machines qui utilisent un noyau personnalisé, puisque certains modules attendus peuvent ne pas être disponibles."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1876
+#: guix-git/doc/guix-cookbook.texi:1877
msgid "Historically, Guix System is centered around an @code{operating-system} structure. This structure contains various fields ranging from the bootloader and kernel declaration to the services to install."
msgstr "Historiquement, le système Guix est centré sur une structure @code{operating-system}. Cette structure contient divers champs qui vont du chargeur d'amorçage et à la déclaration du noyau aux services à installer."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1882
+#: guix-git/doc/guix-cookbook.texi:1883
msgid "Depending on the target machine, that can go from a standard @code{x86_64} machine to a small ARM single board computer such as the Pine64, the image constraints can vary a lot. The hardware manufacturers will impose different image formats with various partition sizes and offsets."
msgstr "En fonction de la machine cible, qui peut aller d'une machine @code{x86_64} standard à un petit ordinateur ARM sur carte unique comme le Pine64, les contraintes sur l'image varient beaucoup. Les fabricants imposent différents formats d'image avec plusieurs tailles de partitions et de positions."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1887
+#: guix-git/doc/guix-cookbook.texi:1888
msgid "To create images suitable for all those machines, a new abstraction is necessary: that's the goal of the @code{image} record. This record contains all the required information to be transformed into a standalone image, that can be directly booted on any target machine."
msgstr "Pour créer des images convenables pour toutes ces machines, une nouvelle abstraction est nécessaire : c'est le but de l'enregistrement @code{image}. Cet enregistrement contient toutes les informations requises pour être transformé en une image complète, qui peut être directement démarrée sur une machine cible."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1909
+#: guix-git/doc/guix-cookbook.texi:1910
#, no-wrap
msgid ""
"(define-record-type* <image>\n"
@@ -3517,46 +3531,46 @@ msgstr ""
" (default #t)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1915
+#: guix-git/doc/guix-cookbook.texi:1916
msgid "This record contains the operating-system to instantiate. The @code{format} field defines the image type and can be @code{efi-raw}, @code{qcow2} or @code{iso9660} for instance. In the future, it could be extended to @code{docker} or other image types."
msgstr "Cet enregistrement contient le système d'exploitation à instancier. Le champ @code{format} défini le type d'image et peut être @code{efi-raw}, @code{qcow2} ou @code{iso9660} par exemple. Plus tard, on prévoit de l'étendre à @code{docker} et aux autres types d'images."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1918
+#: guix-git/doc/guix-cookbook.texi:1919
msgid "A new directory in the Guix sources is dedicated to images definition. For now there are four files:"
msgstr "Un nouveau répertoire dans les sources de Guix est dédié aux définitions des images. Pour l'instant il y a quatre fichiers :"
#. type: file{#1}
-#: guix-git/doc/guix-cookbook.texi:1920
+#: guix-git/doc/guix-cookbook.texi:1921
#, no-wrap
msgid "gnu/system/images/hurd.scm"
msgstr "gnu/system/images/hurd.scm"
#. type: file{#1}
-#: guix-git/doc/guix-cookbook.texi:1921
+#: guix-git/doc/guix-cookbook.texi:1922
#, no-wrap
msgid "gnu/system/images/pine64.scm"
msgstr "gnu/system/images/pine64.scm"
#. type: file{#1}
-#: guix-git/doc/guix-cookbook.texi:1922
+#: guix-git/doc/guix-cookbook.texi:1923
#, no-wrap
msgid "gnu/system/images/novena.scm"
msgstr "gnu/system/images/novena.scm"
#. type: file{#1}
-#: guix-git/doc/guix-cookbook.texi:1923
+#: guix-git/doc/guix-cookbook.texi:1924
#, no-wrap
msgid "gnu/system/images/pinebook-pro.scm"
msgstr "gnu/system/images/pinebook-pro.scm"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1929
+#: guix-git/doc/guix-cookbook.texi:1930
msgid "Let's have a look to @file{pine64.scm}. It contains the @code{pine64-barebones-os} variable which is a minimal definition of an operating-system dedicated to the @b{Pine A64 LTS} board."
msgstr "Regardons le fichier @file{pine64.scm}. Il contient la variable @code{pine64-barebones-os} qui est une définition minimale d'un système d'exploitation dédié à la carte @b{Pine A64 LTS}."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1953
+#: guix-git/doc/guix-cookbook.texi:1954
#, no-wrap
msgid ""
"(define pine64-barebones-os\n"
@@ -3606,17 +3620,17 @@ msgstr ""
" %base-services))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1957
+#: guix-git/doc/guix-cookbook.texi:1958
msgid "The @code{kernel} and @code{bootloader} fields are pointing to packages dedicated to this board."
msgstr "Les champs @code{kernel} et @code{bootloader} pointent vers les paquets dédiés à cette carte."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1959
+#: guix-git/doc/guix-cookbook.texi:1960
msgid "Right below, the @code{pine64-image-type} variable is also defined."
msgstr "Ci-dessous, la variable @code{pine64-image-type} est ainsi définie."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1965
+#: guix-git/doc/guix-cookbook.texi:1966
#, no-wrap
msgid ""
"(define pine64-image-type\n"
@@ -3630,12 +3644,12 @@ msgstr ""
" (constructor (cut image-with-os arm64-disk-image <>))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1969
+#: guix-git/doc/guix-cookbook.texi:1970
msgid "It's using a record we haven't talked about yet, the @code{image-type} record, defined this way:"
msgstr "Elle utilise un enregistrement dont nous n'avons pas encore parlé, l'enregistrement @code{image-type}, défini de cette façon :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:1976
+#: guix-git/doc/guix-cookbook.texi:1977
#, no-wrap
msgid ""
"(define-record-type* <image-type>\n"
@@ -3651,39 +3665,39 @@ msgstr ""
" (constructor image-type-constructor)) ;<operating-system> -> <image>\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1982
+#: guix-git/doc/guix-cookbook.texi:1983
msgid "The main purpose of this record is to associate a name to a procedure transforming an @code{operating-system} to an image. To understand why it is necessary, let's have a look to the command producing an image from an @code{operating-system} configuration file:"
msgstr "Le but principal de cet enregistrement est d'associer un nom à une procédure transformant un @code{operating-system} en une image. Pour comprendre pourquoi c'est nécessaire, voyons la commande produisant une image à partir d'un fichier de configuration de type @code{operating-system} :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1985
+#: guix-git/doc/guix-cookbook.texi:1986
#, no-wrap
msgid "guix system image my-os.scm\n"
msgstr "guix system image my-os.scm\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:1991
+#: guix-git/doc/guix-cookbook.texi:1992
msgid "This command expects an @code{operating-system} configuration but how should we indicate that we want an image targeting a Pine64 board? We need to provide an extra information, the @code{image-type}, by passing the @code{--image-type} or @code{-t} flag, this way:"
msgstr "Cette commande demande une configuration de type @code{operating-system} mais comment indiquer que l'on veut cibler une carte Pine64 ? Nous devons fournir l'information supplémentaire, @code{image-type}, en passant le drapeau @code{--image-type} ou @code{-t}, de cette manière :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:1994
+#: guix-git/doc/guix-cookbook.texi:1995
#, no-wrap
msgid "guix system image --image-type=pine64-raw my-os.scm\n"
msgstr "guix system image --image-type=pine64-raw my-os.scm\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2000
+#: guix-git/doc/guix-cookbook.texi:2001
msgid "This @code{image-type} parameter points to the @code{pine64-image-type} defined above. Hence, the @code{operating-system} declared in @code{my-os.scm} will be applied the @code{(cut image-with-os arm64-disk-image <>)} procedure to turn it into an image."
msgstr "Ce paramètre @code{image-type} pointe vers le @code{pine64-image-type} défini plus haut. Ainsi, la déclaration @code{operating-system} dans @code{my-os.scm} se verra appliquée la procédure @code{[cut image-with-os arm64-disk-image <>)} pour la transformer en une image."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2002
+#: guix-git/doc/guix-cookbook.texi:2003
msgid "The resulting image looks like:"
msgstr "L'image qui en résulte ressemble à ceci :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2012
+#: guix-git/doc/guix-cookbook.texi:2013
#, no-wrap
msgid ""
"(image\n"
@@ -3705,22 +3719,22 @@ msgstr ""
" (offset root-offset)))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2016
+#: guix-git/doc/guix-cookbook.texi:2017
msgid "which is the aggregation of the @code{operating-system} defined in @code{my-os.scm} to the @code{arm64-disk-image} record."
msgstr "qui ajoute l'objet @code{operating-system} défini dans @code{my-os.scm} à l'enregistrement @code{arm64-disk-image}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2018
+#: guix-git/doc/guix-cookbook.texi:2019
msgid "But enough Scheme madness. What does this image API bring to the Guix user?"
msgstr "Mais assez de cette folie. Qu'est-ce que cette API pour les images apporte aux utilisateurs et utilisatrices ?"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2020
+#: guix-git/doc/guix-cookbook.texi:2021
msgid "One can run:"
msgstr "On peut lancer :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2024
+#: guix-git/doc/guix-cookbook.texi:2025
#, no-wrap
msgid ""
"mathieu@@cervin:~$ guix system --list-image-types\n"
@@ -3732,7 +3746,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2042
+#: guix-git/doc/guix-cookbook.texi:2043
#, no-wrap
msgid ""
" - unmatched-raw\n"
@@ -3772,12 +3786,12 @@ msgstr ""
" - efi32-raw\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2047
+#: guix-git/doc/guix-cookbook.texi:2048
msgid "and by writing an @code{operating-system} file based on @code{pine64-barebones-os}, you can customize your image to your preferences in a file (@file{my-pine-os.scm}) like this:"
msgstr "et en écrivant un fichier de type @code{operating-system} basé sur @code{pine64-barebones-os}, vous pouvez personnaliser votre image selon vos préférences dasn un fichier (@file{my-pine-os.scm}) de cette manière :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2051
+#: guix-git/doc/guix-cookbook.texi:2052
#, no-wrap
msgid ""
"(use-modules (gnu services linux)\n"
@@ -3789,7 +3803,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2062
+#: guix-git/doc/guix-cookbook.texi:2063
#, no-wrap
msgid ""
"(let ((base-os pine64-barebones-os))\n"
@@ -3815,89 +3829,89 @@ msgstr ""
" (operating-system-user-services base-os)))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2065
+#: guix-git/doc/guix-cookbook.texi:2066
msgid "run:"
msgstr "lancez :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2068
+#: guix-git/doc/guix-cookbook.texi:2069
#, no-wrap
msgid "guix system image --image-type=pine64-raw my-pine-os.scm\n"
msgstr "guix system image --image-type=pine64-raw my-pine-os.scm\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2071
+#: guix-git/doc/guix-cookbook.texi:2072
msgid "or,"
msgstr "ou bien,"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2074
+#: guix-git/doc/guix-cookbook.texi:2075
#, no-wrap
msgid "guix system image --image-type=hurd-raw my-hurd-os.scm\n"
msgstr "guix system image --image-type=hurd-raw my-hurd-os.scm\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2078
+#: guix-git/doc/guix-cookbook.texi:2079
msgid "to get an image that can be written directly to a hard drive and booted from."
msgstr "pour récupérer une image que vous pouvez écrire sur un disque dur pour démarrer dessus."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2080
+#: guix-git/doc/guix-cookbook.texi:2081
msgid "Without changing anything to @code{my-hurd-os.scm}, calling:"
msgstr "Sans rien changer à @code{my-hurd-os.scm}, en appelant :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2083
+#: guix-git/doc/guix-cookbook.texi:2084
#, no-wrap
msgid "guix system image --image-type=hurd-qcow2 my-hurd-os.scm\n"
msgstr "guix system image --image-type=hurd-qcow2 my-hurd-os.scm\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2086
+#: guix-git/doc/guix-cookbook.texi:2087
msgid "will instead produce a Hurd QEMU image."
msgstr "vous aurez une image QEMU pour le Hurd à la place."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2089
+#: guix-git/doc/guix-cookbook.texi:2090
#, no-wrap
msgid "2FA, two-factor authentication"
msgstr "2FA, authentification à double facteur"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2090
+#: guix-git/doc/guix-cookbook.texi:2091
#, no-wrap
msgid "U2F, Universal 2nd Factor"
msgstr "U2F, second facteur universel"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2091
+#: guix-git/doc/guix-cookbook.texi:2092
#, no-wrap
msgid "security key, configuration"
msgstr "clé de sécurité, configuration"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2098
+#: guix-git/doc/guix-cookbook.texi:2099
msgid "The use of security keys can improve your security by providing a second authentication source that cannot be easily stolen or copied, at least for a remote adversary (something that you have), to the main secret (a passphrase -- something that you know), reducing the risk of impersonation."
msgstr "L'utilisation de clés de sécurité peut améliorer votre sécurité en fournissant une seconde source d'authentification qui ne peut pas être facilement volée ni copiée, au moins pour les adversaires à distance (quelque chose que vous possédez) de votre secret principal (une phrase de passe — quelque chose que vous connaissez), ce qui réduit les risques de vol d'identité."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2103
+#: guix-git/doc/guix-cookbook.texi:2104
msgid "The example configuration detailed below showcases what minimal configuration needs to be made on your Guix System to allow the use of a Yubico security key. It is hoped the configuration can be useful for other security keys as well, with minor adjustments."
msgstr "L'exemple de configuration détaillée plus bas montre la configuration minimale dont vous avez besoin sur votre système Guix pour permettre l'utilisation d'une clé de sécurité Yubico. Nous espérons que la configuration puisse être utile pour d'autres clés de sécurité aussi, avec quelques ajustements."
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:2104
+#: guix-git/doc/guix-cookbook.texi:2105
#, no-wrap
msgid "Configuration for use as a two-factor authenticator (2FA)"
msgstr "Configuration pour l'utiliser comme authentification à double facteur (2FA)"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2112
+#: guix-git/doc/guix-cookbook.texi:2113
msgid "To be usable, the udev rules of the system should be extended with key-specific rules. The following shows how to extend your udev rules with the @file{lib/udev/rules.d/70-u2f.rules} udev rule file provided by the @code{libfido2} package from the @code{(gnu packages security-token)} module and add your user to the @samp{\"plugdev\"} group it uses:"
msgstr "Pour être utilisable, les règles udev du systèmes doivent être étendues avec des règles spécifiques à la clé. Ce qui suit montre comment étendre vos règles udev avec le fichier de règles @file{lib/udev/rules.d/70-u2f.rules} fournit par le paquet @code{libfido2} du module @code{(gnu packages security-token)} et ajouter votre utilisateur au groupe @samp{\"plugdev\"} qu'il utilise :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2131
+#: guix-git/doc/guix-cookbook.texi:2132
#, no-wrap
msgid ""
"(use-package-modules ... security-token ...)\n"
@@ -3937,73 +3951,73 @@ msgstr ""
" (udev-rules-service 'fido2 libfido2 #:groups '(\"plugdev\")))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2136
+#: guix-git/doc/guix-cookbook.texi:2137
msgid "After re-configuring your system and re-logging in your graphical session so that the new group is in effect for your user, you can verify that your key is usable by launching:"
msgstr "Après la reconfiguration de votre système et vous être authentifié dans votre session graphique pour que le nouveau groupe prenne effet pour votre utilisateur, vous pouvez vérifier que la clé est utilisable en exécutant :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2139
+#: guix-git/doc/guix-cookbook.texi:2140
#, no-wrap
msgid "guix shell ungoogled-chromium -- chromium chrome://settings/securityKeys\n"
msgstr "guix shell ungoogled-chromium -- chromium chrome://settings/securityKeys\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2145
+#: guix-git/doc/guix-cookbook.texi:2146
msgid "and validating that the security key can be reset via the ``Reset your security key'' menu. If it works, congratulations, your security key is ready to be used with applications supporting two-factor authentication (2FA)."
msgstr "et en validant que la clé de sécurité peut être remise à zéro via le menu « réinitialiser votre clé de sécurité ». Si cela fonctionne, bravo, votre clé de sécurité est prête à être utilisée avec les applications qui prennent en charge l'authentification à double facteur (2FA)."
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:2146
+#: guix-git/doc/guix-cookbook.texi:2147
#, no-wrap
msgid "Disabling OTP code generation for a Yubikey"
msgstr "Désactiver la génération de code OTP pour une Yubikey"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2147
+#: guix-git/doc/guix-cookbook.texi:2148
#, no-wrap
msgid "disabling yubikey OTP"
msgstr "désactiver l'OTP d'une yubikey"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2153
+#: guix-git/doc/guix-cookbook.texi:2154
msgid "If you use a Yubikey security key and are irritated by the spurious OTP codes it generates when inadvertently touching the key (e.g. causing you to become a spammer in the @samp{#guix} channel when discussing from your favorite IRC client!), you can disable it via the following @command{ykman} command:"
msgstr "Si vous utilisez une clé de sécurité Yubikey et que vous n'aimez pas les mauvais codes OTP qu'il génère lorsque vous touchez la clé par accident (p. ex. en vous faisant passer pour un spammer dans le canal @samp{#guix} alors que vous discutez depuis votre client IRC préféré !), vous pouvez les désactiver avec la commande @command{ykman} suivante :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2156
+#: guix-git/doc/guix-cookbook.texi:2157
#, no-wrap
msgid "guix shell python-yubikey-manager -- ykman config usb --force --disable OTP\n"
msgstr "guix shell python-yubikey-manager -- ykman config usb --force --disable OTP\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2163
+#: guix-git/doc/guix-cookbook.texi:2164
msgid "Alternatively, you could use the @command{ykman-gui} command provided by the @code{yubikey-manager-qt} package and either wholly disable the @samp{OTP} application for the USB interface or, from the @samp{Applications -> OTP} view, delete the slot 1 configuration, which comes pre-configured with the Yubico OTP application."
msgstr "Autrement, vous pouvez utiliser la commande @command{ykman-gui} fournie par le paquet @code{yubikey-manager-qt} et soit désactiver complètement l'application @samp{OTP} pour l'interface USB ou, depuis la vue @samp{Applications -> OTP}, supprimer la configuration du slot 1, qui est pré-configuré avec l'application Yubico OTP."
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:2164
+#: guix-git/doc/guix-cookbook.texi:2165
#, no-wrap
msgid "Requiring a Yubikey to open a KeePassXC database"
msgstr "Demander une Yubikey pour ouvrir une base de données KeePassXC"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2165
+#: guix-git/doc/guix-cookbook.texi:2166
#, no-wrap
msgid "yubikey, keepassxc integration"
msgstr "yubikey, intégration avec keepassxc"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2169
+#: guix-git/doc/guix-cookbook.texi:2170
msgid "The KeePassXC password manager application has support for Yubikeys, but it requires installing a udev rules for your Guix System and some configuration of the Yubico OTP application on the key."
msgstr "Le gestionnaire de mots de passe KeePassXC prend en charge les Yubikeys, mais cela nécessite d'installer des règles udev pour votre système Guix et de configurer l'application OTP Yubico sur la clé."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2172
+#: guix-git/doc/guix-cookbook.texi:2173
msgid "The necessary udev rules file comes from the @code{yubikey-personalization} package, and can be installed like:"
msgstr "Le fichier de règles udev nécessaire provient du paquet @code{yubikey-personalization} et peut être installé de cette manière :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2182
+#: guix-git/doc/guix-cookbook.texi:2183
#, no-wrap
msgid ""
"(use-package-modules ... security-token ...)\n"
@@ -4025,44 +4039,44 @@ msgstr ""
" (udev-rules-service 'yubikey yubikey-personalization))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2189
+#: guix-git/doc/guix-cookbook.texi:2190
msgid "After reconfiguring your system (and reconnecting your Yubikey), you'll then want to configure the OTP challenge/response application of your Yubikey on its slot 2, which is what KeePassXC uses. It's easy to do so via the Yubikey Manager graphical configuration tool, which can be invoked with:"
msgstr "Après avoir reconfiguré votre système (et avoir reconnecté votre Yubikey), vous voudrez ensuite configurer l'application de défi/réponse OTP do votre Yubikey sur le slot 2, qui est utilisé par KeePassXC. C'est facile à faire via l'outil de configuration graphique Yubikey Manager, qui peut s'invoquer de cette manière :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2192
+#: guix-git/doc/guix-cookbook.texi:2193
#, no-wrap
msgid "guix shell yubikey-manager-qt -- ykman-gui\n"
msgstr "guix shell yubikey-manager-qt -- ykman-gui\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2201
+#: guix-git/doc/guix-cookbook.texi:2202
msgid "First, ensure @samp{OTP} is enabled under the @samp{Interfaces} tab, then navigate to @samp{Applications -> OTP}, and click the @samp{Configure} button under the @samp{Long Touch (Slot 2)} section. Select @samp{Challenge-response}, input or generate a secret key, and click the @samp{Finish} button. If you have a second Yubikey you'd like to use as a backup, you should configure it the same way, using the @emph{same} secret key."
msgstr "Tout d'abord, assurez-vous d'avoir activé @samp{OTP} dans l'onglet @samp{Interfaces}, puis rendez-vous dans @samp{Applications -> OTP} et cliquez sur le bouton @samp{Configure} sous la section @samp{Long Touch (Slot 2)}. Choisissez @samp{Challenge-response}, saisissez ou générez une clé secrète, puis cliquez sur le bouton @samp{Finish}. Si vous avez une seconde Yubikey que vous voulez utiliser en réserve, vous devriez la configurer de la même manière avec la @emph{même} clé secrète."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2208
+#: guix-git/doc/guix-cookbook.texi:2209
msgid "Your Yubikey should now be detected by KeePassXC. It can be added to a database by navigating to KeePassXC's @samp{Database -> Database Security...} menu, then clicking the @samp{Add additional protection...} button, then @samp{Add Challenge-Response}, selecting the security key from the drop-down menu and clicking the @samp{OK} button to complete the setup."
msgstr "Votre Yubikey devrait maintenant être détectée par KeePassXC. Elle peut être ajoutée à la base de données en se rendant dans le menu @samp{Base de données -> Sécurité de la base de données...} de KeePassXC, puis en cliquant sur le bouton @samp{Ajouter une autre protection...} puis @samp{Ajouter une question-réponse}, en choisissant la clé de sécurité dans le menu déroulant et en cliquant sur le bouton @samp{OK} pour terminer la configuration."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2212
+#: guix-git/doc/guix-cookbook.texi:2213
#, no-wrap
msgid "dynamic DNS, DDNS"
msgstr "DNS dynamique, DDNS"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2222
+#: guix-git/doc/guix-cookbook.texi:2223
msgid "If your @acronym{ISP, Internet Service Provider} only provides dynamic IP addresses, it can be useful to setup a dynamic @acronym{DNS, Domain Name System} (also known as @acronym{DDNS, Dynamic DNS}) service to associate a static host name to a public but dynamic (often changing) IP address. There are multiple existing services that can be used for this; in the following mcron job, @url{https://duckdns.org, DuckDNS} is used. It should also work with other dynamic DNS services that offer a similar interface to update the IP address, such as @url{https://freedns.afraid.org/}, with minor adjustments."
msgstr "Si votre @acronym{FAI, fournisseur d'accès à internet} ne fournit que des adresse IP dynamiques, il peut être utile de mettre en place un service @acronym{DNS, Domain Name System} dynamique (aussi appelé @acronym{DDNS, Dynamic DNS}) pour associer un nom d'hôte statique à une adresse IP publique mais dynamique (qui change souvent). Il y a plusieurs services existants qui peuvent être utilisés pour cela ; dans la tâche mcron suivante, nous utilisons @url{https://duckdns.org, DuckDNS}. Cela devrait aussi fonctionner avec d'autres services DNS dynamiques qui fournissent une interface similaire pour mettre à jour l'adresse IP, comme @url{https://freedns.afraid.org/}, avec quelques petits ajustements."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2227
+#: guix-git/doc/guix-cookbook.texi:2228
msgid "The mcron job is provided below, where @var{DOMAIN} should be substituted for your own domain prefix, and the DuckDNS provided token associated to @var{DOMAIN} added to the @file{/etc/duckdns/@var{DOMAIN}.token} file."
msgstr "La tâche mcron est fournie plus bas, où @var{DOMAINE} doit être remplacé par votre propre préfixe de domaine, et le jeton fournit par DuckDNS associé à @var{DOMAINE} est à ajouter au fichier @file{/etc/duckdns/@var{DOMAINE}.token}."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2247
+#: guix-git/doc/guix-cookbook.texi:2248
#, no-wrap
msgid ""
"(define duckdns-job\n"
@@ -4104,12 +4118,12 @@ msgstr ""
" #:user \"nobody\"))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2251
+#: guix-git/doc/guix-cookbook.texi:2252
msgid "The job then needs to be added to the list of mcron jobs for your system, using something like:"
msgstr "La tâche a ensuite besoin d'être ajoutée à la liste des tâches mcron de votre système, avec quelque chose comme cela :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2260
+#: guix-git/doc/guix-cookbook.texi:2261
#, no-wrap
msgid ""
"(operating-system\n"
@@ -4129,17 +4143,17 @@ msgstr ""
" %base-services)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2268
+#: guix-git/doc/guix-cookbook.texi:2269
msgid "To connect to a Wireguard VPN server you need the kernel module to be loaded in memory and a package providing networking tools that support it (e.g. @code{wireguard-tools} or @code{network-manager})."
msgstr "Pour se connecter à un serveur VPN Wireguard, il faut que le module du noyau soit chargé en mémoire et qu'un paquet fournissant des outils de réseau le prenne en charge (par exemple, @code{wireguard-tools} ou @code{network-manager})."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2272
+#: guix-git/doc/guix-cookbook.texi:2273
msgid "Here is a configuration example for Linux-Libre < 5.6, where the module is out of tree and need to be loaded manually---following revisions of the kernel have it built-in and so don't need such configuration:"
msgstr "Voici un exemple de configuration pour Linux-Libre < 5.6, où le module est hors de l'arborescence des sources et doit être chargé manuellement--les révisions suivantes du noyau l'ont intégré et n'ont donc pas besoin d'une telle configuration :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2277
+#: guix-git/doc/guix-cookbook.texi:2278
#, no-wrap
msgid ""
"(use-modules (gnu))\n"
@@ -4153,7 +4167,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2286
+#: guix-git/doc/guix-cookbook.texi:2287
#, no-wrap
msgid ""
"(operating-system\n"
@@ -4175,44 +4189,44 @@ msgstr ""
" (kernel-loadable-modules (list wireguard-linux-compat)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2290
+#: guix-git/doc/guix-cookbook.texi:2291
msgid "After reconfiguring and restarting your system you can either use Wireguard tools or NetworkManager to connect to a VPN server."
msgstr "Après avoir reconfiguré et redémarré votre système, vous pouvez utiliser les outils Wireguard ou NetworkManager pour vous connecter à un serveur VPN."
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:2291
+#: guix-git/doc/guix-cookbook.texi:2292
#, no-wrap
msgid "Using Wireguard tools"
msgstr "Utilisation des outils Wireguard"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2297
+#: guix-git/doc/guix-cookbook.texi:2298
msgid "To test your Wireguard setup it is convenient to use @command{wg-quick}. Just give it a configuration file @command{wg-quick up ./wg0.conf}; or put that file in @file{/etc/wireguard} and run @command{wg-quick up wg0} instead."
msgstr "Pour tester votre configuration Wireguard, vous pouvez utiliser @command{wg-quick}. Donnez-lui simplement un fichier de configuration : @command{wg-quick up ./wg0.conf}, ou placez ce fichier dans @file{/etc/wireguard} et lancez @command{wg-quick up wg0} à la place."
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:2301
+#: guix-git/doc/guix-cookbook.texi:2302
msgid "Be warned that the author described this command as a: “[…] very quick and dirty bash script […]”."
msgstr "Soyez averti que l'auteur a décrit cette commande comme un : « [...] script bash écrit à la va-vite [...] »."
#. type: subsection
-#: guix-git/doc/guix-cookbook.texi:2303
+#: guix-git/doc/guix-cookbook.texi:2304
#, no-wrap
msgid "Using NetworkManager"
msgstr "En utilisant NetworkManager"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2311
+#: guix-git/doc/guix-cookbook.texi:2312
msgid "Thanks to NetworkManager support for Wireguard we can connect to our VPN using @command{nmcli} command. Up to this point this guide assumes that you're using Network Manager service provided by @code{%desktop-services}. Ortherwise you need to adjust your services list to load @code{network-manager-service-type} and reconfigure your Guix system."
msgstr "Grâce à la prise en charge de NetworkManager pour Wireguard, nous pouvons nous connecter à notre VPN en utilisant la commande @command{nmcli}. Jusqu'ici, ce guide suppose que vous utilisez le service Network Manager fourni par @code{%desktop-services}. Dans le cas contraire, vous devez ajuster votre liste de services pour charger @code{network-manager-service-type} et reconfigurer votre système Guix."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2313
+#: guix-git/doc/guix-cookbook.texi:2314
msgid "To import your VPN configuration execute nmcli import command:"
msgstr "Pour importer votre configuration VPN, exécutez la commande d'import de nmcli :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2317
+#: guix-git/doc/guix-cookbook.texi:2318
#, no-wrap
msgid ""
"# nmcli connection import type wireguard file wg0.conf\n"
@@ -4222,12 +4236,12 @@ msgstr ""
"Connection 'wg0' (edbee261-aa5a-42db-b032-6c7757c60fde) successfully added\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2322
+#: guix-git/doc/guix-cookbook.texi:2323
msgid "This will create a configuration file in @file{/etc/NetworkManager/wg0.nmconnection}. Next connect to the Wireguard server:"
msgstr "Cela va créer un fichier de configuration dans @file{/etc/NetworkManager/wg0.nmconnection}. Ensuite connectez-vous au serveur Wireguard :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2326
+#: guix-git/doc/guix-cookbook.texi:2327
#, no-wrap
msgid ""
"$ nmcli connection up wg0\n"
@@ -4237,45 +4251,45 @@ msgstr ""
"Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2330
+#: guix-git/doc/guix-cookbook.texi:2331
msgid "By default NetworkManager will connect automatically on system boot. To change that behaviour you need to edit your config:"
msgstr "Par défaut, NetworkManager se connectera automatiquement au démarrage du système. Pour changer ce comportement vous devez modifier votre configuration :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2333
+#: guix-git/doc/guix-cookbook.texi:2334
#, no-wrap
msgid "# nmcli connection modify wg0 connection.autoconnect no\n"
msgstr "# nmcli connection modify wg0 connection.autoconnect no\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2338
+#: guix-git/doc/guix-cookbook.texi:2339
msgid "For more specific information about NetworkManager and wireguard @uref{https://blogs.gnome.org/thaller/2019/03/15/wireguard-in-networkmanager/,see this post by thaller}."
msgstr "Pour des informations plus spécifiques sur NetworkManager et wireguard @uref{https://blogs.gnome.org/thaller/2019/03/15/wireguard-in-networkmanager/,voir ce billet par thaller}."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2341
+#: guix-git/doc/guix-cookbook.texi:2342
#, no-wrap
msgid "wm"
msgstr "wm"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2350
+#: guix-git/doc/guix-cookbook.texi:2351
#, no-wrap
msgid "stumpwm"
msgstr "stumpwm"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2355
+#: guix-git/doc/guix-cookbook.texi:2356
msgid "You could install StumpWM with a Guix system by adding @code{stumpwm} and optionally @code{`(,stumpwm \"lib\")} packages to a system configuration file, e.g.@: @file{/etc/config.scm}."
msgstr "Vous pouvez installer StumpWM sur un système Guix en ajoutant @code{stumwm} et éventuellement @code{`(,stumpwm \"lib\")} dans les paquets du fichier de système d'exploitation, p.@: ex.@: @file{/etc/config.scm}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2357
+#: guix-git/doc/guix-cookbook.texi:2358
msgid "An example configuration can look like this:"
msgstr "Voici un exemple de configuration :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2361
+#: guix-git/doc/guix-cookbook.texi:2362
#, no-wrap
msgid ""
"(use-modules (gnu))\n"
@@ -4287,7 +4301,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2366
+#: guix-git/doc/guix-cookbook.texi:2367
#, no-wrap
msgid ""
"(operating-system\n"
@@ -4301,18 +4315,18 @@ msgstr ""
" %base-packages)))\n"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2368
+#: guix-git/doc/guix-cookbook.texi:2369
#, no-wrap
msgid "stumpwm fonts"
msgstr "polices stumpwm"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2372
+#: guix-git/doc/guix-cookbook.texi:2373
msgid "By default StumpWM uses X11 fonts, which could be small or pixelated on your system. You could fix this by installing StumpWM contrib Lisp module @code{sbcl-ttf-fonts}, adding it to Guix system packages:"
msgstr "Par défaut StumpWM utilise les polices X11, qui peuvent être petites ou pixelisées sur votre système. Vous pouvez corriger cela en installant le module Lisp pour StumpWM @code{sbcl-ttf-fonts}, en l'ajoutant aux paquets de votre système :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2376
+#: guix-git/doc/guix-cookbook.texi:2377
#, no-wrap
msgid ""
"(use-modules (gnu))\n"
@@ -4324,7 +4338,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2381
+#: guix-git/doc/guix-cookbook.texi:2382
#, no-wrap
msgid ""
"(operating-system\n"
@@ -4338,12 +4352,12 @@ msgstr ""
" sbcl-ttf-fonts font-dejavu %base-packages)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2385
+#: guix-git/doc/guix-cookbook.texi:2386
msgid "Then you need to add the following code to a StumpWM configuration file @file{~/.stumpwm.d/init.lisp}:"
msgstr "Ensuite vous devrez ajouter le code suivant à au fichier de configuration de StumpWM @file{~/.stumpwm.d/init.lisp} :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2392
+#: guix-git/doc/guix-cookbook.texi:2393
#, no-wrap
msgid ""
"(require :ttf-fonts)\n"
@@ -4359,28 +4373,28 @@ msgstr ""
"(set-font (make-instance 'xft:font :family \"DejaVu Sans Mono\" :subfamily \"Book\" :size 11))\n"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2396
+#: guix-git/doc/guix-cookbook.texi:2397
#, no-wrap
msgid "sessionlock"
msgstr "verrouillage de session"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2402
+#: guix-git/doc/guix-cookbook.texi:2403
msgid "Depending on your environment, locking the screen of your session might come built in or it might be something you have to set up yourself. If you use a desktop environment like GNOME or KDE, it's usually built in. If you use a plain window manager like StumpWM or EXWM, you might have to set it up yourself."
msgstr "En fonction de votre environnement, le verrouillage de l'écran peut être inclus, ou vous devrez le configurer vous-même. La fonctionnalité est souvent intégrée aux environnements de bureau comme GNOME ou KDE. Si vous utilisez un gestionnaire de fenêtre comme StumpWM ou EXWM, vous devrez sans doute le configurer vous-même."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2414
+#: guix-git/doc/guix-cookbook.texi:2415
msgid "If you use Xorg, you can use the utility @uref{https://www.mankier.com/1/xss-lock, xss-lock} to lock the screen of your session. xss-lock is triggered by DPMS which since Xorg 1.8 is auto-detected and enabled if ACPI is also enabled at kernel runtime."
msgstr "Si vous utilisez Xorg, vous pouvez utiliser l'utilitaire @uref{https://www.mankier.com/1/xss-lock, xss-lock} pour verrouiller votre session. xss-lock est lancé par DPMS qui est détecté et activé automatiquement par Xorg 1.8 si ACPI est aussi activé à l'exécution dans le noyau."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2417
+#: guix-git/doc/guix-cookbook.texi:2418
msgid "To use xss-lock, you can simple execute it and put it into the background before you start your window manager from e.g. your @file{~/.xsession}:"
msgstr "Pour utiliser xss-lock, vous pouvez simplement l'exécuter et le laisser tourner en tache de fond avant de démarrer votre gestionnaire de fenêtre, par exemple dans votre @file{~/.xsession} :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2421
+#: guix-git/doc/guix-cookbook.texi:2422
#, no-wrap
msgid ""
"xss-lock -- slock &\n"
@@ -4390,17 +4404,17 @@ msgstr ""
"exec stumpwm\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2425
+#: guix-git/doc/guix-cookbook.texi:2426
msgid "In this example, xss-lock uses @code{slock} to do the actual locking of the screen when it determines it's appropriate, like when you suspend your device."
msgstr "Dans cet exemple, xss-lock utilise @code{slock} pour effectivement verrouiller l'écran quand il pense que c'est nécessaire, comme lorsque vous mettez votre machine en veille."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2429
+#: guix-git/doc/guix-cookbook.texi:2430
msgid "For slock to be allowed to be a screen locker for the graphical session, it needs to be made setuid-root so it can authenticate users, and it needs a PAM service. This can be achieved by adding the following service to your @file{config.scm}:"
msgstr "Pour que slock puisse verrouiller l'écran de la session graphique, il doit être en setuid-root pour qu'il puisse authentifier les utilisateurs, et il a besoin d'un service PAM. On peut y arriver en ajoutant le service suivant dans notre @file{config.scm} :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2435
+#: guix-git/doc/guix-cookbook.texi:2436
#, no-wrap
msgid ""
"(service screen-locker-services-type\n"
@@ -4414,115 +4428,115 @@ msgstr ""
" (program (file-append slock \"/bin/slock\"))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2441
+#: guix-git/doc/guix-cookbook.texi:2442
msgid "If you manually lock your screen, e.g. by directly calling slock when you want to lock your screen but not suspend it, it's a good idea to notify xss-lock about this so no confusion occurs. This can be done by executing @code{xset s activate} immediately before you execute slock."
msgstr "Si vous verrouillez l'écran manuellement, p.@: ex.@: en appelant slock directement si vous voulez verrouiller l'écran sans mettre l'ordinateur en veille, il vaut mieux notifier xss-lock pour éviter la confusion. Vous pouvez faire cela en exécutant @code{xset s activate} juste avant d'exécuter slock."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2444
+#: guix-git/doc/guix-cookbook.texi:2445
#, no-wrap
msgid "linode, Linode"
msgstr "linode, Linode"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2449
+#: guix-git/doc/guix-cookbook.texi:2450
msgid "To run Guix on a server hosted by @uref{https://www.linode.com, Linode}, start with a recommended Debian server. We recommend using the default distro as a way to bootstrap Guix. Create your SSH keys."
msgstr "Pour lancer Guix sur un serveur hébergé par @uref{https://www.linode.com, Linode}, commencez par un serveur Debian recommandé. Nous vous recommandons d'utiliser la distribution par défaut pour amorcer Guix. Créez vos clés SSH."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2452
+#: guix-git/doc/guix-cookbook.texi:2453
#, no-wrap
msgid "ssh-keygen\n"
msgstr "ssh-keygen\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2458
+#: guix-git/doc/guix-cookbook.texi:2459
msgid "Be sure to add your SSH key for easy login to the remote server. This is trivially done via Linode's graphical interface for adding SSH keys. Go to your profile and click add SSH Key. Copy into it the output of:"
msgstr "Assurez-vous d'ajouter votre clé SSH pour vous connecter facilement sur le serveur distant. C'est facilité par l'interface graphique de Linode. Allez sur votre profil et cliquez sur le bouton pour ajouter une clé SSH. Copiez la sortie de :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2461
+#: guix-git/doc/guix-cookbook.texi:2462
#, no-wrap
msgid "cat ~/.ssh/<username>_rsa.pub\n"
msgstr "cat ~/.ssh/<username>_rsa.pub\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2464
+#: guix-git/doc/guix-cookbook.texi:2465
msgid "Power the Linode down."
msgstr "Éteignez votre Linode."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2468
+#: guix-git/doc/guix-cookbook.texi:2469
msgid "In the Linode's Storage tab, resize the Debian disk to be smaller. 30 GB free space is recommended. Then click \"Add a disk\", and fill out the form with the following:"
msgstr "Dans l'onglet de stockage du Linode, modifiez la taille du disque Debian pour qu'il soit plus petit. Nous recommandons 30 Go d'espace libre. Ensuite, cliquez sur « Ajouter un disque » et remplissez le formulaire de cette manière :"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:2472
+#: guix-git/doc/guix-cookbook.texi:2473
msgid "Label: \"Guix\""
msgstr "Label: \"Guix\""
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:2475
+#: guix-git/doc/guix-cookbook.texi:2476
msgid "Filesystem: ext4"
msgstr "Filesystem: ext4"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:2478
+#: guix-git/doc/guix-cookbook.texi:2479
msgid "Set it to the remaining size"
msgstr "Donnez-lui la taille restante"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2483
+#: guix-git/doc/guix-cookbook.texi:2484
msgid "In the Configurations tab, press \"Edit\" on the default Debian profile. Under \"Block Device Assignment\" click \"Add a Device\". It should be @file{/dev/sdc} and you can select the \"Guix\" disk. Save Changes."
msgstr "Dans l'onglet de configuration, cliquez sur « modifier » sur le profil Debian par défaut. Dans « Block Device Assignment » cliquez sur « Add a Device ». Il devrait apparaître en tant que @file{/dev/sdc} et vous pouvez sélectionner le disque « Guix ». Sauvegardez les changements."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2485
+#: guix-git/doc/guix-cookbook.texi:2486
msgid "Now \"Add a Configuration\", with the following:"
msgstr "Maintenant « Add a Configuration », avec ce qui suit :"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:2488
+#: guix-git/doc/guix-cookbook.texi:2489
msgid "Label: Guix"
msgstr "Label: Guix"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:2491
+#: guix-git/doc/guix-cookbook.texi:2492
msgid "Kernel:GRUB 2 (it's at the bottom! This step is @b{IMPORTANT!})"
msgstr "Kernel: GRUB 2 (c'est à la toute fin ! Cette étape est @b{IMPORTANTE !})"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:2494
+#: guix-git/doc/guix-cookbook.texi:2495
msgid "Block device assignment:"
msgstr "Périphériques blocs assignés :"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:2497
+#: guix-git/doc/guix-cookbook.texi:2498
msgid "@file{/dev/sda}: Guix"
msgstr "@file{/dev/sda} : Guix"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:2500
+#: guix-git/doc/guix-cookbook.texi:2501
msgid "@file{/dev/sdb}: swap"
msgstr "@file{/dev/sdb} : swap"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:2503
+#: guix-git/doc/guix-cookbook.texi:2504
msgid "Root device: @file{/dev/sda}"
msgstr "Périphérique racine : @file{/dev/sda}"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:2506
+#: guix-git/doc/guix-cookbook.texi:2507
msgid "Turn off all the filesystem/boot helpers"
msgstr "Désactivez tous les programmes d'aide pour les systèmes de fichiers et le démarrage"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2513
+#: guix-git/doc/guix-cookbook.texi:2514
msgid "Now power it back up, booting with the Debian configuration. Once it's running, ssh to your server via @code{ssh root@@@var{<your-server-IP-here>}}. (You can find your server IP address in your Linode Summary section.) Now you can run the \"install guix from @pxref{Binary Installation,,, guix, GNU Guix}\" steps:"
msgstr "Maintenant démarrez le serveur avec la configuration Debian. Une fois lancé, connectez vous en ssh au serveur avec @code{ssh root@@@var{<IP-de-votre-serveur-ici>}}. (Vous pouvez trouver l'adresse IP de votre serveur dans la section résumé de Linode). Maintenant vous pouvez lancer les étapes d'installation de @pxref{Installation binaire,,, guix.fr, GNU Guix} :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2521
+#: guix-git/doc/guix-cookbook.texi:2522
#, no-wrap
msgid ""
"sudo apt-get install gpg\n"
@@ -4540,12 +4554,12 @@ msgstr ""
"guix pull\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2525
+#: guix-git/doc/guix-cookbook.texi:2526
msgid "Now it's time to write out a config for the server. The key information is below. Save the resulting file as @file{guix-config.scm}."
msgstr "Maintenant il est temps d'écrire une configuration pour le serveur. Voici ce que vous devrez obligatoirement écrire, en plus de vos propres configurations. Enregistrez le fichier avec le nom @file{guix-config.scm}."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2536
+#: guix-git/doc/guix-cookbook.texi:2537
#, no-wrap
msgid ""
"(use-modules (gnu)\n"
@@ -4571,7 +4585,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2553
+#: guix-git/doc/guix-cookbook.texi:2554
#, no-wrap
msgid ""
"(operating-system\n"
@@ -4611,7 +4625,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2556
+#: guix-git/doc/guix-cookbook.texi:2557
#, no-wrap
msgid ""
" (swap-devices (list \"/dev/sdb\"))\n"
@@ -4621,7 +4635,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2560
+#: guix-git/doc/guix-cookbook.texi:2561
#, no-wrap
msgid ""
" (initrd-modules (cons \"virtio_scsi\" ; Needed to find the disk\n"
@@ -4633,7 +4647,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2569
+#: guix-git/doc/guix-cookbook.texi:2570
#, no-wrap
msgid ""
" (users (cons (user-account\n"
@@ -4657,7 +4671,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2573
+#: guix-git/doc/guix-cookbook.texi:2574
#, no-wrap
msgid ""
" (packages (cons* nss-certs ;for HTTPS access\n"
@@ -4671,7 +4685,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2584
+#: guix-git/doc/guix-cookbook.texi:2585
#, no-wrap
msgid ""
" (services (cons*\n"
@@ -4697,12 +4711,12 @@ msgstr ""
" %base-services)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2587
+#: guix-git/doc/guix-cookbook.texi:2588
msgid "Replace the following fields in the above configuration:"
msgstr "Remplacez les champs suivants dans la configuration ci-dessus :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2595
+#: guix-git/doc/guix-cookbook.texi:2596
#, no-wrap
msgid ""
"(host-name \"my-server\") ; replace with your server name\n"
@@ -4722,17 +4736,17 @@ msgstr ""
"(\"root\" ,(local-file \"janedoe_rsa.pub\")) ; remplacez par votre clé ssh\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2602
+#: guix-git/doc/guix-cookbook.texi:2603
msgid "The last line in the above example lets you log into the server as root and set the initial root password (see the note at the end of this recipe about root login). After you have done this, you may delete that line from your configuration and reconfigure to prevent root login."
msgstr "Cette dernière ligne vous permet de vous connecter au serveur en root et de créer le mot de passe initial de root (voir la note à la fin de cette recette sur la connexion en root). Après avoir fait cela, vous pouvez supprimer cette ligne de votre configuration et reconfigurer pour empêcher la connexion directe en root."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2607
+#: guix-git/doc/guix-cookbook.texi:2608
msgid "Copy your ssh public key (eg: @file{~/.ssh/id_rsa.pub}) as @file{@var{<your-username-here>}_rsa.pub} and put @file{guix-config.scm} in the same directory. In a new terminal run these commands."
msgstr "Copiez votre clé ssh publique (ex : @file{~/.ssh/id_rsa.pub}) dans @file{@var{<votre-nom-d'utilisateur>}_rsa.pub} et ajoutez votre @file{guix-config.scm} au même répertoire. Dans un nouveau terminal lancez ces commandes."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2612
+#: guix-git/doc/guix-cookbook.texi:2613
#, no-wrap
msgid ""
"sftp root@@<remote server ip address>\n"
@@ -4744,12 +4758,12 @@ msgstr ""
"put /path/to/files/guix-config.scm .\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2615
+#: guix-git/doc/guix-cookbook.texi:2616
msgid "In your first terminal, mount the guix drive:"
msgstr "Dans votre premier terminal, montez le disque guix :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2619
+#: guix-git/doc/guix-cookbook.texi:2620
#, no-wrap
msgid ""
"mkdir /mnt/guix\n"
@@ -4759,12 +4773,12 @@ msgstr ""
"mount /dev/sdc /mnt/guix\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2624
+#: guix-git/doc/guix-cookbook.texi:2625
msgid "Due to the way we set up the bootloader section of the guix-config.scm, only the grub configuration file will be installed. So, we need to copy over some of the other GRUB stuff already installed on the Debian system:"
msgstr "À cause de la manière dont nous avons paramétré la section du chargeur d'amorçage dans le fichier guix-config.scm, nous installons seulement notre fichier de configuration grub. Donc on doit copier certains fichiers GRUB déjà installés sur le système Debian :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2628
+#: guix-git/doc/guix-cookbook.texi:2629
#, no-wrap
msgid ""
"mkdir -p /mnt/guix/boot/grub\n"
@@ -4774,28 +4788,28 @@ msgstr ""
"cp -r /boot/grub/* /mnt/guix/boot/grub/\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2631
+#: guix-git/doc/guix-cookbook.texi:2632
msgid "Now initialize the Guix installation:"
msgstr "Maintenant initialisez l'installation de Guix :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2634
+#: guix-git/doc/guix-cookbook.texi:2635
#, no-wrap
msgid "guix system init guix-config.scm /mnt/guix\n"
msgstr "guix system init guix-config.scm /mnt/guix\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2638
+#: guix-git/doc/guix-cookbook.texi:2639
msgid "Ok, power it down! Now from the Linode console, select boot and select \"Guix\"."
msgstr "Ok, éteignez maintenant le serveur ! Depuis la console Linode, démarrez et choisissez « Guix »."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2641
+#: guix-git/doc/guix-cookbook.texi:2642
msgid "Once it boots, you should be able to log in via SSH! (The server config will have changed though.) You may encounter an error like:"
msgstr "Une fois démarré, vous devriez pouvoir vous connecter en SSH ! (La configuration du serveur aura cependant changé). Vous pouvez rencontrer une erreur de ce type :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2657
+#: guix-git/doc/guix-cookbook.texi:2658
#, no-wrap
msgid ""
"$ ssh root@@<server ip address>\n"
@@ -4829,17 +4843,17 @@ msgstr ""
"Host key verification failed.\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2661
+#: guix-git/doc/guix-cookbook.texi:2662
msgid "Either delete @file{~/.ssh/known_hosts} file, or delete the offending line starting with your server IP address."
msgstr "Vous pouvez soit supprimer @file{~/.ssh/known_hosts}, soit supprimer la ligne qui pose problème, qui commence par l'adresse IP de votre serveur."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2663
+#: guix-git/doc/guix-cookbook.texi:2664
msgid "Be sure to set your password and root's password."
msgstr "Assurez-vous de configurer votre mot de passe et celui de root."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2668
+#: guix-git/doc/guix-cookbook.texi:2669
#, no-wrap
msgid ""
"ssh root@@<remote ip address>\n"
@@ -4851,43 +4865,43 @@ msgstr ""
"passwd <username> ; pour le mot de passe utilisateur\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2675
+#: guix-git/doc/guix-cookbook.texi:2676
msgid "You may not be able to run the above commands at this point. If you have issues remotely logging into your linode box via SSH, then you may still need to set your root and user password initially by clicking on the ``Launch Console'' option in your linode. Choose the ``Glish'' instead of ``Weblish''. Now you should be able to ssh into the machine."
msgstr "Il se peut que vous ne puissiez pas lancer les commandes précédentes si vous n'arrivez pas à vous connecter à distance via SSH, auquel cas vous devrez peut-être configurer vos mot de passes utilisateurs et root en cliquant sur « Launch Console » dans votre espace Linode. Choisissez « Glish » au lieu de « Weblish ». Maintenant vous devriez pouvoir vous connecter en ssh à la machine."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2679
+#: guix-git/doc/guix-cookbook.texi:2680
msgid "Hooray! At this point you can shut down the server, delete the Debian disk, and resize the Guix to the rest of the size. Congratulations!"
msgstr "Hourra ! Maintenant vous pouvez étendre le serveur, supprimer le disque Debian et redimensionner celui de Guix. Bravo !"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2684
+#: guix-git/doc/guix-cookbook.texi:2685
msgid "By the way, if you save it as a disk image right at this point, you'll have an easy time spinning up new Guix images! You may need to down-size the Guix image to 6144MB, to save it as an image. Then you can resize it again to the max size."
msgstr "Au fait, si vous sauvegardez le résultat dans une image disque maintenant, vous pourrez plus facilement démarrer de nouvelles images de guix ! Vous devrez peut-être réduire la taille de l'image Guix à 6144 Mo, pour la sauvegarder en tant qu'image. Ensuite vous pouvez redimensionner la partition à la taille maximum."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:2687
+#: guix-git/doc/guix-cookbook.texi:2688
#, no-wrap
msgid "kimsufi, Kimsufi, OVH"
msgstr "kimsufi, Kimsufi, OVH"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2691
+#: guix-git/doc/guix-cookbook.texi:2692
msgid "To run Guix on a server hosted by @uref{https://www.kimsufi.com/, Kimsufi}, click on the netboot tab then select rescue64-pro and restart."
msgstr "Pour lancer Guix sur un serveur hébergé par @uref{https://www.kimsufi.com/, Kimsufi}, cliquez sur l'onglet netboot puis choisissez rescue64-pro et redémarrez."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2693
+#: guix-git/doc/guix-cookbook.texi:2694
msgid "OVH will email you the credentials required to ssh into a Debian system."
msgstr "OVH vous enverra un courriel avec les identifiants requis pour vous connecter en ssh à un système Debian."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2696
+#: guix-git/doc/guix-cookbook.texi:2697
msgid "Now you can run the \"install guix from @pxref{Binary Installation,,, guix, GNU Guix}\" steps:"
msgstr "Maintenant vous pouvez exécuter les étapes de « installer guix de @pxref{Installation binaire,,, guix.fr, GNU Guix} » :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2702
+#: guix-git/doc/guix-cookbook.texi:2703
#, no-wrap
msgid ""
"wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh\n"
@@ -4901,12 +4915,12 @@ msgstr ""
"guix pull\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2705
+#: guix-git/doc/guix-cookbook.texi:2706
msgid "Partition the drives and format them, first stop the raid array:"
msgstr "Partitionnez les lecteurs et formatez-les, en commençant par arrêter la grappe raid :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2709
+#: guix-git/doc/guix-cookbook.texi:2710
#, no-wrap
msgid ""
"mdadm --stop /dev/md127\n"
@@ -4916,12 +4930,12 @@ msgstr ""
"mdadm --zero-superblock /dev/sda2 /dev/sdb2\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2713
+#: guix-git/doc/guix-cookbook.texi:2714
msgid "Then wipe the disks and set up the partitions, we will create a RAID 1 array."
msgstr "Ensuite, effacez les disques et créez les partitions. Nous allons créer une grappe RAID 1."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2717
+#: guix-git/doc/guix-cookbook.texi:2718
#, no-wrap
msgid ""
"wipefs -a /dev/sda\n"
@@ -4933,7 +4947,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2726
+#: guix-git/doc/guix-cookbook.texi:2727
#, no-wrap
msgid ""
"parted /dev/sda --align=opt -s -m -- mklabel gpt\n"
@@ -4957,7 +4971,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2735
+#: guix-git/doc/guix-cookbook.texi:2736
#, no-wrap
msgid ""
"parted /dev/sdb --align=opt -s -m -- mklabel gpt\n"
@@ -4979,12 +4993,12 @@ msgstr ""
"parted /dev/sdb --align=opt -s -m -- mkpart primary linux-swap 512MiB 100%\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2738
+#: guix-git/doc/guix-cookbook.texi:2739
msgid "Create the array:"
msgstr "Créez la grappe :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2742
+#: guix-git/doc/guix-cookbook.texi:2743
#, no-wrap
msgid ""
"mdadm --create /dev/md127 --level=1 --raid-disks=2 \\\n"
@@ -4994,12 +5008,12 @@ msgstr ""
" --metadata=0.90 /dev/sda2 /dev/sdb2\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2746
+#: guix-git/doc/guix-cookbook.texi:2747
msgid "Now create file systems on the relevant partitions, first the boot partitions:"
msgstr "Maintenant, créez les systèmes de fichiers sur les bonnes partitions, en commençant par la partition de démarrage :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2750
+#: guix-git/doc/guix-cookbook.texi:2751
#, no-wrap
msgid ""
"mkfs.ext4 /dev/sda1\n"
@@ -5009,23 +5023,23 @@ msgstr ""
"mkfs.ext4 /dev/sdb1\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2753
+#: guix-git/doc/guix-cookbook.texi:2754
msgid "Then the root partition:"
msgstr "Puis la partition racine :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2756
+#: guix-git/doc/guix-cookbook.texi:2757
#, no-wrap
msgid "mkfs.ext4 /dev/md127\n"
msgstr "mkfs.ext4 /dev/md127\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2759
+#: guix-git/doc/guix-cookbook.texi:2760
msgid "Initialize the swap partitions:"
msgstr "Initialisez les partitions d'échange :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2765
+#: guix-git/doc/guix-cookbook.texi:2766
#, no-wrap
msgid ""
"mkswap /dev/sda3\n"
@@ -5039,12 +5053,12 @@ msgstr ""
"swapon /dev/sdb3\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2768
+#: guix-git/doc/guix-cookbook.texi:2769
msgid "Mount the guix drive:"
msgstr "Montez le disque guix :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2772
+#: guix-git/doc/guix-cookbook.texi:2773
#, no-wrap
msgid ""
"mkdir /mnt/guix\n"
@@ -5054,12 +5068,12 @@ msgstr ""
"mount /dev/md127 /mnt/guix\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2776
+#: guix-git/doc/guix-cookbook.texi:2777
msgid "Now is time to write an operating system declaration @file{os.scm} file; here is a sample:"
msgstr "Maintenant vous pouvez écrire une déclaration de système d'exploitation dans un fichier @file{os.scm}. Voici un exemple :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2781
+#: guix-git/doc/guix-cookbook.texi:2782
#, no-wrap
msgid ""
"(use-modules (gnu) (guix))\n"
@@ -5073,7 +5087,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2784
+#: guix-git/doc/guix-cookbook.texi:2785
#, no-wrap
msgid ""
"(operating-system\n"
@@ -5085,7 +5099,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2789
+#: guix-git/doc/guix-cookbook.texi:2790
#, no-wrap
msgid ""
" (bootloader (bootloader-configuration\n"
@@ -5101,7 +5115,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2792
+#: guix-git/doc/guix-cookbook.texi:2793
#, no-wrap
msgid ""
" ;; Add a kernel module for RAID-1 (aka. \"mirror\").\n"
@@ -5113,7 +5127,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2798
+#: guix-git/doc/guix-cookbook.texi:2799
#, no-wrap
msgid ""
" (mapped-devices\n"
@@ -5131,7 +5145,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2804
+#: guix-git/doc/guix-cookbook.texi:2805
#, no-wrap
msgid ""
" (swap-devices\n"
@@ -5149,7 +5163,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2809
+#: guix-git/doc/guix-cookbook.texi:2810
#, no-wrap
msgid ""
" (issue\n"
@@ -5165,7 +5179,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2816
+#: guix-git/doc/guix-cookbook.texi:2817
#, no-wrap
msgid ""
" (file-systems (cons* (file-system\n"
@@ -5185,7 +5199,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2824
+#: guix-git/doc/guix-cookbook.texi:2825
#, no-wrap
msgid ""
" (users (cons (user-account\n"
@@ -5207,7 +5221,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2830
+#: guix-git/doc/guix-cookbook.texi:2831
#, no-wrap
msgid ""
" (sudoers-file\n"
@@ -5225,7 +5239,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2844
+#: guix-git/doc/guix-cookbook.texi:2845
#, no-wrap
msgid ""
" ;; Globally-installed packages.\n"
@@ -5259,7 +5273,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2846
+#: guix-git/doc/guix-cookbook.texi:2847
#, no-wrap
msgid ""
" (service unattended-upgrade-service-type)\n"
@@ -5269,7 +5283,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2861
+#: guix-git/doc/guix-cookbook.texi:2862
#, no-wrap
msgid ""
" (service openssh-service-type\n"
@@ -5303,48 +5317,48 @@ msgstr ""
"\t\t\t %default-sysctl-settings))))))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2866
+#: guix-git/doc/guix-cookbook.texi:2867
msgid "Don't forget to substitute the @var{server-ip-address}, @var{server-gateway}, @var{ssh-key-name} and @var{ssh-public-key-content} variables with your own values."
msgstr "N'oubliez pas de modifier les variables @var{adresse-ip-du-serveur}, @var{passerelle-du-serveur}, @var{nom-de-clé-ssh} et @var{contenu-de-clé-ssh} avec vos propres valeurs."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2870
+#: guix-git/doc/guix-cookbook.texi:2871
msgid "The gateway is the last usable IP in your block so if you have a server with an IP of @samp{37.187.79.10} then its gateway will be @samp{37.187.79.254}."
msgstr "La passerelle est la dernière IP utilisable dans votre bloc donc si vous avez un serveur avec l'IP @samp{37.187.79.10}, sa passerelle sera @samp{37.187.79.254}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2873
+#: guix-git/doc/guix-cookbook.texi:2874
msgid "Transfer your operating system declaration @file{os.scm} file on the server via the @command{scp} or @command{sftp} commands."
msgstr "Transférez votre déclaration de système d'exploitation @file{os.scm} sur le serveur via les commandes @command{scp} ou @command{sftp}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2876
+#: guix-git/doc/guix-cookbook.texi:2877
msgid "Now all that is left is to install Guix with a @code{guix system init} and restart."
msgstr "Maintenant, tout ce qu'il reste à faire est d'installer Guix avec @code{guix system init} et redémarrer."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2881
+#: guix-git/doc/guix-cookbook.texi:2882
msgid "However we first need to set up a chroot, because the root partition of the rescue system is mounted on an aufs partition and if you try to install Guix it will fail at the GRUB install step complaining about the canonical path of \"aufs\"."
msgstr "Cependant nous devons d'abord paramétrer un chroot, car la partition racine du système de secours est monté sur une partition aufs et si vous essayez d'installer Guix cela ne marchera pas à l'étape d'installation de GRUB. Il se plaindra du chemin canonique de « aufs »."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2883
+#: guix-git/doc/guix-cookbook.texi:2884
msgid "Install packages that will be used in the chroot:"
msgstr "Installez les paquets qui seront utilisés dans le chroot :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2886
+#: guix-git/doc/guix-cookbook.texi:2887
#, no-wrap
msgid "guix install bash-static parted util-linux-with-udev coreutils guix\n"
msgstr "guix install bash-static parted util-linux-with-udev coreutils guix\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2889
+#: guix-git/doc/guix-cookbook.texi:2890
msgid "Then run the following to create directories needed for the chroot:"
msgstr "Ensuite, exécutez ce qui suit pour créer les répertoires nécessaires au chroot :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2894
+#: guix-git/doc/guix-cookbook.texi:2895
#, no-wrap
msgid ""
"cd /mnt && \\\n"
@@ -5356,23 +5370,23 @@ msgstr ""
" var/guix proc sys dev\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2897
+#: guix-git/doc/guix-cookbook.texi:2898
msgid "Copy the host resolv.conf in the chroot:"
msgstr "Copiez le resolv.conf hôte dans le chroot :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2900
+#: guix-git/doc/guix-cookbook.texi:2901
#, no-wrap
msgid "cp /etc/resolv.conf etc/\n"
msgstr "cp /etc/resolv.conf etc/\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2903
+#: guix-git/doc/guix-cookbook.texi:2904
msgid "Mount block devices, the store and its database and the current guix config:"
msgstr "Montez les périphériques de type bloc, le dépôt et sa base de données et la configuration guix actuelle :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2913
+#: guix-git/doc/guix-cookbook.texi:2914
#, no-wrap
msgid ""
"mount --rbind /proc /mnt/proc\n"
@@ -5394,12 +5408,12 @@ msgstr ""
"mount --rbind /root/.guix-profile root/.guix-profile/\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2916
+#: guix-git/doc/guix-cookbook.texi:2917
msgid "Chroot in /mnt and install the system:"
msgstr "Entrez dans le chroot sur /mnt et installez le système :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2919
+#: guix-git/doc/guix-cookbook.texi:2920
#, no-wrap
msgid ""
"chroot /mnt/ /bin/bash\n"
@@ -5409,38 +5423,38 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:2921
+#: guix-git/doc/guix-cookbook.texi:2922
#, no-wrap
msgid "guix system init /root/os.scm /guix\n"
msgstr "guix system init /root/os.scm /guix\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2925
+#: guix-git/doc/guix-cookbook.texi:2926
msgid "Finally, from the web user interface (UI), change @samp{netboot} to @samp{boot to disk} and restart (also from the web UI)."
msgstr "Enfin, à partir de l'interface utilisateur web, modifiez @samp{netboot} en @samp{boot to disk} et redémarrez (également depuis l'interface web)."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2928
+#: guix-git/doc/guix-cookbook.texi:2929
msgid "Wait a few minutes and try to ssh with @code{ssh guix@@@var{server-ip-address>} -i @var{path-to-your-ssh-key}}"
msgstr "Attendez quelques minutes et essayez de vous connecter en ssh avec @code{ssh guix@@@var{adresse-ip-du-serveur>} -i @var{chemin-vers-votre-clé-ssh}}"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2931
+#: guix-git/doc/guix-cookbook.texi:2932
msgid "You should have a Guix system up and running on Kimsufi; congratulations!"
msgstr "Votre système Guix devrait être opérationnel sur Kimsufi. Félicitations !"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2940
+#: guix-git/doc/guix-cookbook.texi:2941
msgid "To bind mount a file system, one must first set up some definitions before the @code{operating-system} section of the system definition. In this example we will bind mount a folder from a spinning disk drive to @file{/tmp}, to save wear and tear on the primary SSD, without dedicating an entire partition to be mounted as @file{/tmp}."
msgstr "Pour dupliquer le montage d'un système de fichier (@i{bind mount}), on doit d'abord ajouter quelques définitions avant la section @code{operating-system} de la définition de système d'exploitation. Dans cet exemple nous allons dupliquer le montage d'un dossier d'un disque dur vers @file{/tmp}, pour éviter d'épuiser le SSD principal, sans dédier une partition entière à @file{/tmp}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2943
+#: guix-git/doc/guix-cookbook.texi:2944
msgid "First, the source drive that hosts the folder we wish to bind mount should be defined, so that the bind mount can depend on it."
msgstr "Déjà, le disque source qui héberge de dossier dont nous voulons dupliquer le montage doit être défini, pour que le montage dupliqué puisse en dépendre."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2950
+#: guix-git/doc/guix-cookbook.texi:2951
#, no-wrap
msgid ""
"(define source-drive ;; \"source-drive\" can be named anything you want.\n"
@@ -5456,23 +5470,23 @@ msgstr ""
" (type \"ext4\"))) ;; Assurez-vous d'indiquer le bon type pour la partition\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2954
+#: guix-git/doc/guix-cookbook.texi:2955
msgid "The source folder must also be defined, so that guix will know it's not a regular block device, but a folder."
msgstr "Le dossier source doit aussi être défini, pour que guix sache qu'il ne s'agit pas d'un périphérique bloc, mais d'un dossier."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2956
+#: guix-git/doc/guix-cookbook.texi:2957
#, no-wrap
msgid "(define (%source-directory) \"/path-to-spinning-disk-goes-here/tmp\") ;; \"source-directory\" can be named any valid variable name.\n"
msgstr "(define (%source-directory) \"/chemin-vers-le-disque-dur/tmp\") ;; vous pouvez nommer « source-directory » comme vous le souhaitez.\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2960
+#: guix-git/doc/guix-cookbook.texi:2961
msgid "Finally, inside the @code{file-systems} definition, we must add the mount itself."
msgstr "Enfin, dans la définition @code{file-systems}, on doit ajouter le montage lui-même."
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2963
+#: guix-git/doc/guix-cookbook.texi:2964
#, no-wrap
msgid ""
"(file-systems (cons*\n"
@@ -5482,7 +5496,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2965
+#: guix-git/doc/guix-cookbook.texi:2966
#, no-wrap
msgid ""
" ...<other drives omitted for clarity>...\n"
@@ -5492,7 +5506,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2967
+#: guix-git/doc/guix-cookbook.texi:2968
#, no-wrap
msgid ""
" source-drive ;; Must match the name you gave the source drive in the earlier definition.\n"
@@ -5502,7 +5516,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2975
+#: guix-git/doc/guix-cookbook.texi:2976
#, no-wrap
msgid ""
" (file-system\n"
@@ -5524,7 +5538,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2977
+#: guix-git/doc/guix-cookbook.texi:2978
#, no-wrap
msgid ""
" ...<other drives omitted for clarity>...\n"
@@ -5534,39 +5548,39 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:2979
+#: guix-git/doc/guix-cookbook.texi:2980
#, no-wrap
msgid " ))\n"
msgstr " ))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:2986
+#: guix-git/doc/guix-cookbook.texi:2987
msgid "Guix daemon can use a HTTP proxy to get substitutes, here we are configuring it to get them via Tor."
msgstr "Le démon Guix peut utiliser un mandataire HTTP pour récupérer des substituts. Nous le configurons ici pour les récupérer par Tor."
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:2987
+#: guix-git/doc/guix-cookbook.texi:2988
#, no-wrap
msgid "Warning"
msgstr "Attention"
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:2993
+#: guix-git/doc/guix-cookbook.texi:2994
msgid "@emph{Not all} Guix daemon's traffic will go through Tor! Only HTTP/HTTPS will get proxied; FTP, Git protocol, SSH, etc connections will still go through the clearnet. Again, this configuration isn't foolproof some of your traffic won't get routed by Tor at all. Use it at your own risk."
msgstr "@emph{Tout} le trafic du démon de passera @emph{pas} par Tor ! Seuls HTTP/HTTPS passer par le mandataire ; les connexions FTP, avec le protocol Git, SSH, etc, passeront toujours par le réseau en clair. De nouveau, cette configuration n'est pas parfaite et une partie de votre trafic ne sera pas routé par Tor du tout. Utilisez-la à vos risques et périls."
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:2999
+#: guix-git/doc/guix-cookbook.texi:3000
msgid "Also note that the procedure described here applies only to package substitution. When you update your guix distribution with @command{guix pull}, you still need to use @command{torsocks} if you want to route the connection to guix's git repository servers through Tor."
msgstr "Remarquez aussi que la procédure décrite ici ne s'applique qu'à la substitution de paquets. Lorsque vous mettez à jour la distribution avec @command{guix pull}, vous aurez encore besoin de @command{torsocks} si vous voulez router la connexion vers les serveurs de dépôts git à travers Tor."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3004
+#: guix-git/doc/guix-cookbook.texi:3005
msgid "Guix's substitute server is available as a Onion service, if you want to use it to get your substitutes through Tor configure your system as follow:"
msgstr "Le serveur de substitut de Guix est disponible sur un service Onion. Si vous voulez l'utiliser pour récupérer des substituts par Tor, configurez votre système de cette manière :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3008
+#: guix-git/doc/guix-cookbook.texi:3009
#, no-wrap
msgid ""
"(use-modules (gnu))\n"
@@ -5578,7 +5592,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3025
+#: guix-git/doc/guix-cookbook.texi:3026
#, no-wrap
msgid ""
"(operating-system\n"
@@ -5616,17 +5630,17 @@ msgstr ""
" (http-proxy \"http://localhost:9250\")))))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3034
+#: guix-git/doc/guix-cookbook.texi:3035
msgid "This will keep a tor process running that provides a HTTP CONNECT tunnel which will be used by @command{guix-daemon}. The daemon can use other protocols than HTTP(S) to get remote resources, request using those protocols won't go through Tor since we are only setting a HTTP tunnel here. Note that @code{substitutes-urls} is using HTTPS and not HTTP or it won't work, that's a limitation of Tor's tunnel; you may want to use @command{privoxy} instead to avoid such limitations."
msgstr "Cela fera tourner le processus tor et fournira un tunnel HTTP CONNECT qui sera utilisé par @command{guix-daemon}. Le démon peut utiliser d'autres protocoles que HTTP(S) pour récupérer des ressources distantes. Les requêtes utilisant ces protocoles ne passeront pas par Tor puisqu'il s'agit d'un tunnel HTTP uniquement. Remarquez que @code{substitutes-urls} doit utiliser HTTPS et non HTTP, sinon ça ne fonctionne pas. C'est une limite du tunnel de Tor ; vous voudrez peut-être utiliser @command{privoxy} à la place pour éviter ces limites."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3038
+#: guix-git/doc/guix-cookbook.texi:3039
msgid "If you don't want to always get substitutes through Tor but using it just some of the times, then skip the @code{guix-configuration}. When you want to get a substitute from the Tor tunnel run:"
msgstr "Si vous ne voulez pas toute le temps récupérer des substituts à travers Tor mais l'utiliser seulement de temps en temps, alors ne modifiez pas l'objet @code{guix-configuration}. Lorsque vous voulez récupérer un substitut par le tunnel Tor, lancez :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3043
+#: guix-git/doc/guix-cookbook.texi:3044
#, no-wrap
msgid ""
"sudo herd set-http-proxy guix-daemon http://localhost:9250\n"
@@ -5638,28 +5652,28 @@ msgstr ""
" --substitute-urls=@value{SUBSTITUTE-TOR-URL} @dots{}\n"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:3047
+#: guix-git/doc/guix-cookbook.texi:3048
#, no-wrap
msgid "nginx, lua, openresty, resty"
msgstr "nginx, lua, openresty, resty"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3050
+#: guix-git/doc/guix-cookbook.texi:3051
msgid "NGINX could be extended with Lua scripts."
msgstr "Les fonctionnalités de NGINX peuvent être étendues avec des scripts Lua."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3053
+#: guix-git/doc/guix-cookbook.texi:3054
msgid "Guix provides NGINX service with ability to load Lua module and specific Lua packages, and reply to requests by evaluating Lua scripts."
msgstr "Guix fournit un service NGINX qui est capable de charger des modules et des paquets Lua spécifiques, et de répondre aux requêtes en évaluant des scripts Lua."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3057
+#: guix-git/doc/guix-cookbook.texi:3058
msgid "The following example demonstrates system definition with configuration to evaluate @file{index.lua} Lua script on HTTP request to @uref{http://localhost/hello} endpoint:"
msgstr "L'exemple suivant montre une définition de système avec une configuration qui évalue le script Lua @file{index.lua} lors d'une requête HTTP à @uref{http://localhost/hello} :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3060
+#: guix-git/doc/guix-cookbook.texi:3061
#, no-wrap
msgid ""
"local shell = require \"resty.shell\"\n"
@@ -5669,7 +5683,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3064
+#: guix-git/doc/guix-cookbook.texi:3065
#, no-wrap
msgid ""
"local stdin = \"\"\n"
@@ -5683,7 +5697,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3067
+#: guix-git/doc/guix-cookbook.texi:3068
#, no-wrap
msgid ""
"local ok, stdout, stderr, reason, status =\n"
@@ -5695,13 +5709,13 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3069
+#: guix-git/doc/guix-cookbook.texi:3070
#, no-wrap
msgid "ngx.say(stdout)\n"
msgstr "ngx.say(stdout)\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3100
+#: guix-git/doc/guix-cookbook.texi:3101
#, no-wrap
msgid ""
"(use-modules (gnu))\n"
@@ -5763,45 +5777,45 @@ msgstr ""
" #$(local-file \"index.lua\"))))))))))))))\n"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:3104
+#: guix-git/doc/guix-cookbook.texi:3105
#, no-wrap
msgid "mpd"
msgstr "mpd"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:3105
+#: guix-git/doc/guix-cookbook.texi:3106
#, no-wrap
msgid "music server, headless"
msgstr "serveur de musique, sans affichage"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:3106
+#: guix-git/doc/guix-cookbook.texi:3107
#, no-wrap
msgid "bluetooth, ALSA configuration"
msgstr "bluetooth, configuration ALSA"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3113
+#: guix-git/doc/guix-cookbook.texi:3114
msgid "MPD, the Music Player Daemon, is a flexible server-side application for playing music. Client programs on different machines on the network --- a mobile phone, a laptop, a desktop workstation --- can connect to it to control the playback of audio files from your local music collection. MPD decodes the audio files and plays them back on one or many outputs."
msgstr "MPD, le démon lecteur de musique, est une application serveur flexible pour jouer de la musique. Les programmes clients sur différentes machines du réseau — un téléphone portable, un ordinateur portable, un ordinateur de bureau — peuvent s'y connecter pour contrôler la lecture de fichiers audio de votre collection musicale locale. MPD décode les fichiers audio et les joue sur une ou plusieurs sorties."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3120
+#: guix-git/doc/guix-cookbook.texi:3121
msgid "By default MPD will play to the default audio device. In the example below we make things a little more interesting by setting up a headless music server. There will be no graphical user interface, no Pulseaudio daemon, and no local audio output. Instead we will configure MPD with two outputs: a bluetooth speaker and a web server to serve audio streams to any streaming media player."
msgstr "Par défaut MPD jouera sur le périphérique audio par défaut. Dans l'exemple ci-dessous nous rendons les choses un peu plus intéressantes en configurant un serveur de musique sans affichage. Il n'y aura pas d'interface graphique, pas de démon Pulseaudio, ni de sortie audio locale. Au lieu de cela, nous configurons MPD avec deux sorties : un haut-parleur bluetooth et un serveur web pour servir des flux audio à n'importe quel lecture de musique."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3126
+#: guix-git/doc/guix-cookbook.texi:3127
msgid "Bluetooth is often rather frustrating to set up. You will have to pair your Bluetooth device and make sure that the device is automatically connected as soon as it powers on. The Bluetooth system service returned by the @code{bluetooth-service} procedure provides the infrastructure needed to set this up."
msgstr "Le Bluetooth est souvent frustrant à configurer. Vous devrez appairer vos périphériques Bluetooth et vous assurer que le périphérique se connecte automatiquement dès qu'il est branché. Le service système Bluetooth renvoyé par la procédure @code{bluetooth-service} fournit l'infrastructure requise pour cette configuration."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3129
+#: guix-git/doc/guix-cookbook.texi:3130
msgid "Reconfigure your system with at least the following services and packages:"
msgstr "Reconfigurez votre système avec au moins les services et les paquets suivants :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3139
+#: guix-git/doc/guix-cookbook.texi:3140
#, no-wrap
msgid ""
"(operating-system\n"
@@ -5823,12 +5837,12 @@ msgstr ""
" (bluetooth-service #:auto-enable? #t)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3146
+#: guix-git/doc/guix-cookbook.texi:3147
msgid "Start the @code{bluetooth} service and then use @command{bluetoothctl} to scan for Bluetooth devices. Try to identify your Bluetooth speaker and pick out its device ID from the resulting list of devices that is indubitably dominated by a baffling smorgasbord of your neighbors' home automation gizmos. This only needs to be done once:"
msgstr "Démarrez le service @code{bluetooth} puis utilisez @command{bluetoothctl} pour scanner les périphériques Bluetooth. Essayez d'identifier votre haut-parleur Bluetooth et choisissez son ID de périphérique dans la liste de périphériques qui est indubitablement polluée par une armée de gadgets connectés chez votre voisin. Vous ne devrez le faire qu'une seule fois :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3150
+#: guix-git/doc/guix-cookbook.texi:3151
#, no-wrap
msgid ""
"$ bluetoothctl \n"
@@ -5840,7 +5854,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3153
+#: guix-git/doc/guix-cookbook.texi:3154
#, no-wrap
msgid ""
"[bluetooth]# power on\n"
@@ -5852,7 +5866,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3156
+#: guix-git/doc/guix-cookbook.texi:3157
#, no-wrap
msgid ""
"[bluetooth]# agent on\n"
@@ -5864,7 +5878,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3159
+#: guix-git/doc/guix-cookbook.texi:3160
#, no-wrap
msgid ""
"[bluetooth]# default-agent\n"
@@ -5876,7 +5890,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3166
+#: guix-git/doc/guix-cookbook.texi:3167
#, no-wrap
msgid ""
"[bluetooth]# scan on\n"
@@ -5896,7 +5910,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3170
+#: guix-git/doc/guix-cookbook.texi:3171
#, no-wrap
msgid ""
"[bluetooth]# pair AA:BB:CC:A4:AA:CD\n"
@@ -5910,7 +5924,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3176
+#: guix-git/doc/guix-cookbook.texi:3177
#, no-wrap
msgid ""
"[My Bluetooth Speaker]# [CHG] Device AA:BB:CC:A4:AA:CD UUIDs: 0000110b-0000-1000-8000-00xxxxxxxxxx\n"
@@ -5928,7 +5942,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3178
+#: guix-git/doc/guix-cookbook.texi:3179
#, no-wrap
msgid ""
"[CHG] Device AA:BB:CC:A4:AA:CD Connected: no\n"
@@ -5938,7 +5952,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3183
+#: guix-git/doc/guix-cookbook.texi:3184
#, no-wrap
msgid ""
"[bluetooth]# \n"
@@ -5954,7 +5968,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3190
+#: guix-git/doc/guix-cookbook.texi:3191
#, no-wrap
msgid ""
"[bluetooth]# \n"
@@ -5974,7 +5988,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3195
+#: guix-git/doc/guix-cookbook.texi:3196
#, no-wrap
msgid ""
"[My Bluetooth Speaker]# scan off\n"
@@ -5988,27 +6002,27 @@ msgstr ""
"[CHG] Controller 00:11:22:33:95:7F Discovering: no\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3199
+#: guix-git/doc/guix-cookbook.texi:3200
msgid "Congratulations, you can now automatically connect to your Bluetooth speaker!"
msgstr "Félicitations, vous pouvez maintenant vous connecter automatiquement à votre haut-parleur Bluetooth !"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3209
+#: guix-git/doc/guix-cookbook.texi:3210
msgid "It is now time to configure ALSA to use the @emph{bluealsa} Bluetooth module, so that you can define an ALSA pcm device corresponding to your Bluetooth speaker. For a headless server using @emph{bluealsa} with a fixed Bluetooth device is likely simpler than configuring Pulseaudio and its stream switching behavior. We configure ALSA by crafting a custom @code{alsa-configuration} for the @code{alsa-service-type}. The configuration will declare a @code{pcm} type @code{bluealsa} from the @code{bluealsa} module provided by the @code{bluez-alsa} package, and then define a @code{pcm} device of that type for your Bluetooth speaker."
msgstr "Il est maintenant temps de configurer ALSA pour utiliser le module Bluetooth @emph{bluealsa}, pour que vous puissiez définir un périphérique pcm ALSA correspondant à votre haut-parleur Bluetooth. Un serveur sans affichage utilisant @emph{bluealsa} avec un périphérique fixe est probablement plus facile à configurer que Pulseaudio et son comportement de changement de flux. Nous configurons ALSA en créant un @code{alsa-configuration} personnalisé pour le service @code{alsa-service-type}. La configuration déclarera un type @code{pcm} @code{bluealsa} du module @code{bluealsa} fournit par le paquet @code{bluez-alsa}, puis définira un périphérique @code{pcm} de ce type pour le haut-parleur Bluetooth."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3216
+#: guix-git/doc/guix-cookbook.texi:3217
msgid "All that is left then is to make MPD send audio data to this ALSA device. We also add a secondary MPD output that makes the currently played audio files available as a stream through a web server on port 8080. When enabled a device on the network could listen to the audio stream by connecting any capable media player to the HTTP server on port 8080, independent of the status of the Bluetooth speaker."
msgstr "Tout ce qui reste à faire est de faire en sorte que MPD envoie les données audio à ce périphérique ALSA. Nous ajoutons aussi une sortie MPD secondaire qui rend les fichiers audio en lecture disponibles en streaming sur un serveur web sur le port 8080. Lorsque la sortie est activée, un appareil sur le réseau peut écouter le flux audio en se connectant avec n'importe quel lecteur multimédia au serveur HTTP sur le port 8080, indépendamment du statut du haut-parleur Bluetooth."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3219
+#: guix-git/doc/guix-cookbook.texi:3220
msgid "What follows is the outline of an @code{operating-system} declaration that should accomplish the above-mentioned tasks:"
msgstr "Voici les grandes lignes d'une déclaration @code{operating-system} qui devrait accomplir les tâches sus-mentionnées :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3267
+#: guix-git/doc/guix-cookbook.texi:3268
#, no-wrap
msgid ""
"(use-modules (gnu))\n"
@@ -6108,7 +6122,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3272
+#: guix-git/doc/guix-cookbook.texi:3273
#, no-wrap
msgid ""
"# Declare control device type \\\"bluealsa\\\" from the same module\n"
@@ -6124,7 +6138,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3279
+#: guix-git/doc/guix-cookbook.texi:3280
#, no-wrap
msgid ""
"# Define the actual Bluetooth audio device.\n"
@@ -6144,7 +6158,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3285
+#: guix-git/doc/guix-cookbook.texi:3286
#, no-wrap
msgid ""
"# Define an associated controller.\n"
@@ -6160,48 +6174,48 @@ msgstr ""
"\"))))))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3289
+#: guix-git/doc/guix-cookbook.texi:3290
msgid "Enjoy the music with the MPD client of your choice or a media player capable of streaming via HTTP!"
msgstr "Profitez de votre musique avec le client MPD de votre choix ou un lecteur multimédia capable de streamer en HTTP !"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3302
+#: guix-git/doc/guix-cookbook.texi:3303
msgid "The kernel Linux provides a number of shared facilities that are available to processes in the system. These facilities include a shared view on the file system, other processes, network devices, user and group identities, and a few others. Since Linux 3.19 a user can choose to @emph{unshare} some of these shared facilities for selected processes, providing them (and their child processes) with a different view on the system."
msgstr "Le noyau Linux fournit un certain nombre de dispositifs partagés qui sont disponibles pour les processus du système. Ces dispositifs sont entre autres un vue partagée du système de fichiers, des autres processus, des périphériques réseau, des identités de groupe et d'utilisateur et quelques autres. Depuis Linux 3.19 vous pouvez choisir de @emph{départager} certains de ces dispositifs partagés pour des processus choisis, en leur fournissant (ainsi qu'à leurs processus enfant) une vue différente du système."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3308
+#: guix-git/doc/guix-cookbook.texi:3309
msgid "A process with an unshared @code{mount} namespace, for example, has its own view on the file system --- it will only be able to see directories that have been explicitly bound in its mount namespace. A process with its own @code{proc} namespace will consider itself to be the only process running on the system, running as PID 1."
msgstr "Un processus avec un espace de nom de montage (@code{mount}) départagé par exemple, a sa propre vue du système de fichier — il ne pourra voir que les répertoires qui ont été explicitement liés à son espace de nom de montage. Un processus avec son propre espace de nom de processus (@code{proc}) considérera qu'il est le seul processus lancé sur le système, avec le PID 1."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3315
+#: guix-git/doc/guix-cookbook.texi:3316
msgid "Guix uses these kernel features to provide fully isolated environments and even complete Guix System containers, lightweight virtual machines that share the host system's kernel. This feature comes in especially handy when using Guix on a foreign distribution to prevent interference from foreign libraries or configuration files that are available system-wide."
msgstr "Guix utilise ces fonctionnalités du noyau pour fournir des environnement complètement isolés e même des conteneurs complets pour le système Guix, des machines virtuelles légères qui partagent le noyau de l'hôte. Cette fonctionnalité est particulièrement pratique si vous utilise Guix sur une distribution externe pour éviter les interférence avec les bibliothèques ou les fichiers de configuration externes disponibles sur l'ensemble du système."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3327
+#: guix-git/doc/guix-cookbook.texi:3328
msgid "The easiest way to get started is to use @command{guix shell} with the @option{--container} option. @xref{Invoking guix shell,,, guix, GNU Guix Reference Manual} for a reference of valid options."
msgstr "La manière la plus simple de démarrer est d'utiliser @command{guix shell} avec l'option @option{--container}. @xref{Invoquer guix shell,,, guix.fr, le manuel de référence de GNU Guix} pour la référence des options valides."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3334
+#: guix-git/doc/guix-cookbook.texi:3335
msgid "The following snippet spawns a minimal shell process with most namespaces unshared from the system. The current working directory is visible to the process, but anything else on the file system is unavailable. This extreme isolation can be very useful when you want to rule out any sort of interference from environment variables, globally installed libraries, or configuration files."
msgstr "Le bout de code suivant démarre un shell minimal avec la plupart des espaces de noms départagés du système. Le répertoire de travail actuel est visible pour le processus, mais tout le reste du système de fichiers est indisponible. Cette isolation extrême peut être très utile si vous voulez écarter toute interférence des variables d'environnement, des bibliothèques installées globalement ou des fichiers de configuration."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3337
+#: guix-git/doc/guix-cookbook.texi:3338
#, no-wrap
msgid "guix shell --container\n"
msgstr "guix shell --container\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3344
+#: guix-git/doc/guix-cookbook.texi:3345
msgid "It is a bleak environment, barren, desolate. You will find that not even the GNU coreutils are available here, so to explore this deserted wasteland you need to use built-in shell commands. Even the usually gigantic @file{/gnu/store} directory is reduced to a faint shadow of itself."
msgstr "C'est un environnement vierge, aride et désolé. Vous trouverez que même GNU coreutils n'y est pas disponible, donc pour explorer cet environnement désert vous devrez utiliser les commandes internes au shell. Même le répertoire @file{/gnu/store} habituellement énorme est réduit à peau de chagrin."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3354
+#: guix-git/doc/guix-cookbook.texi:3355
#, no-wrap
msgid ""
"$ echo /gnu/store/*\n"
@@ -6223,41 +6237,41 @@ msgstr ""
"/gnu/store/@dots{}-readline-8.1.1\n"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:3356
+#: guix-git/doc/guix-cookbook.texi:3357
#, no-wrap
msgid "exiting a container"
msgstr "quitter un conteneur"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3360
+#: guix-git/doc/guix-cookbook.texi:3361
msgid "There isn't much you can do in an environment like this other than exiting it. You can use @key{^D} or @command{exit} to terminate this limited shell environment."
msgstr "Vous ne pouvez pas faire grand chose de plus dans un environnement comme celui-ci à part en sortir. Vous pouvez utiliser @key{Ctrl-D} ou @command{exit} pour quitter cet environnement shell limité."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:3361
+#: guix-git/doc/guix-cookbook.texi:3362
#, no-wrap
msgid "exposing directories, container"
msgstr "exposer des répertoires, conteneur"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:3362
+#: guix-git/doc/guix-cookbook.texi:3363
#, no-wrap
msgid "sharing directories, container"
msgstr "partager des répertoires, conteneur"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:3363
+#: guix-git/doc/guix-cookbook.texi:3364
#, no-wrap
msgid "mapping locations, container"
msgstr "faire correspondre des emplacement, conteneur"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3372
+#: guix-git/doc/guix-cookbook.texi:3373
msgid "You can make other directories available inside of the container environment; use @option{--expose=DIRECTORY} to bind-mount the given directory as a read-only location inside the container, or use @option{--share=DIRECTORY} to make the location writable. With an additional mapping argument after the directory name you can control the name of the directory inside the container. In the following example we map @file{/etc} on the host system to @file{/the/host/etc} inside a container in which the GNU coreutils are installed."
msgstr "Vous pouvez rendre d'autres répertoires disponibles à l'intérieur de l'environnement du conteneur. Utilisez @option{--expose=RÉPERTOIRE} pour créer un montage lié au répertoire donné en lecture-seule à l'intérieur du conteneur, ou utilisez @option{--share=RÉPERTOIRE} pour rendre cet emplacement inscriptible. Avec un argument de correspondance supplémentaire après le nom du répertoire vous pouvez contrôler le nom du répertoire lié dans le conteneur. Dans l'exemple suivant nous faisons correspondre @file{/etc} du système hôte à @file{/l/hôte/etc} dans un conteneur dans lequel GNU coreutils est installé."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3376
+#: guix-git/doc/guix-cookbook.texi:3377
#, no-wrap
msgid ""
"$ guix shell --container --share=/etc=/the/host/etc coreutils\n"
@@ -6267,34 +6281,34 @@ msgstr ""
"$ ls /l/hôte/etc\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3383
+#: guix-git/doc/guix-cookbook.texi:3384
msgid "Similarly, you can prevent the current working directory from being mapped into the container with the @option{--no-cwd} option. Another good idea is to create a dedicated directory that will serve as the container's home directory, and spawn the container shell from that directory."
msgstr "De même, vous pouvez empêcher le répertoire actuel d'être ajouté au conteneur avec l'option @option{--no-cwd}. Une autre bonne idée est de créer un répertoire dédié qui servira de répertoire personnel dans le conteneur et de démarrer le shell du conteneur dans ce répertoire."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:3384
+#: guix-git/doc/guix-cookbook.texi:3385
#, no-wrap
msgid "hide system libraries, container"
msgstr "cacher les bibliothèques système, conteneur"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:3385
+#: guix-git/doc/guix-cookbook.texi:3386
#, no-wrap
msgid "avoid ABI mismatch, container"
msgstr "éviter les incompatibilités d'ABI, conteneur"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3395
+#: guix-git/doc/guix-cookbook.texi:3396
msgid "On a foreign system a container environment can be used to compile software that cannot possibly be linked with system libraries or with the system's compiler toolchain. A common use-case in a research context is to install packages from within an R session. Outside of a container environment there is a good chance that the foreign compiler toolchain and incompatible system libraries are found first, resulting in incompatible binaries that cannot be used by R. In a container shell this problem disappears, as system libraries and executables simply aren't available due to the unshared @code{mount} namespace."
msgstr "Sur un système externe un environnement de conteneur peut être utilisé pour compiler un logiciel qui ne peut pas être lié aux bibliothèques du système ou avec la chaine d'outils du système. Un cas d'utilisation courant dans le contexte de la recherche est l'installation de paquets à partir d'une session R. En dehors de l'environnement du conteneur il est fort probable que la chaine de compilation externe et les bibliothèques systèmes incompatibles soient trouvés en premier, ce qui créer des binaires incompatibles qui ne peuvent pas être utilisés dans R. Dans un conteneur ce problème disparait car les bibliothèques du système et les executables ne sont simplement pas disponibles à cause de l'espace de nom @code{mount} départagé."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3398
+#: guix-git/doc/guix-cookbook.texi:3399
msgid "Let's take a comprehensive manifest providing a comfortable development environment for use with R:"
msgstr "Prenons un manifeste complet pour fournir un environnement de développement confortable pour R :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3402
+#: guix-git/doc/guix-cookbook.texi:3403
#, no-wrap
msgid ""
"(specifications->manifest\n"
@@ -6306,7 +6320,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3407
+#: guix-git/doc/guix-cookbook.texi:3408
#, no-wrap
msgid ""
" ;; base packages\n"
@@ -6322,7 +6336,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3414
+#: guix-git/doc/guix-cookbook.texi:3415
#, no-wrap
msgid ""
" ;; Common command line tools lest the container is too empty.\n"
@@ -6342,7 +6356,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3417
+#: guix-git/doc/guix-cookbook.texi:3418
#, no-wrap
msgid ""
" ;; R markdown tools\n"
@@ -6354,7 +6368,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3433
+#: guix-git/doc/guix-cookbook.texi:3434
#, no-wrap
msgid ""
" ;; Toolchain and common libraries for \"install.packages\"\n"
@@ -6390,12 +6404,12 @@ msgstr ""
" \"zlib\"))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3439
+#: guix-git/doc/guix-cookbook.texi:3440
msgid "Let's use this to run R inside a container environment. For convenience we share the @code{net} namespace to use the host system's network interfaces. Now we can build R packages from source the traditional way without having to worry about ABI mismatch or incompatibilities."
msgstr "Utilisons cela pour lancer R dans un environnement de conteneur. Pour se simplifier la vie, nous partageons l'espace de nom @code{net} pour utiliser les interfaces réseau du système hôte. Maintenant nous pouvons construire des paquets R à partir des sources de la manière traditionnelle sans avoir à se soucier des incompatibilités d'ABI."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3442
+#: guix-git/doc/guix-cookbook.texi:3443
#, no-wrap
msgid ""
"$ guix shell --container --network --manifest=manifest.scm -- R\n"
@@ -6405,7 +6419,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3455
+#: guix-git/doc/guix-cookbook.texi:3456
#, no-wrap
msgid ""
"R version 4.2.1 (2022-06-23) -- \"Funny-Looking Kid\"\n"
@@ -6437,7 +6451,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3460
+#: guix-git/doc/guix-cookbook.texi:3461
#, no-wrap
msgid ""
"The downloaded source packages are in\n"
@@ -6451,32 +6465,32 @@ msgstr ""
"> # success!\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3468
+#: guix-git/doc/guix-cookbook.texi:3469
msgid "Using container shells is fun, but they can become a little cumbersome when you want to go beyond just a single interactive process. Some tasks become a lot easier when they sit on the rock solid foundation of a proper Guix System and its rich set of system services. The next section shows you how to launch a complete Guix System inside of a container."
msgstr "Utiliser des shells conteneurs est amusant, mais ils peuvent devenir un peu embêtant quand vous voulez plus qu'un seul processus interactif. Certaines tâches deviennent plus faciles lorsqu'elles se reposent sur les fondations solides d'un système Guix et de son riche ensemble de services systèmes. La section suivante vous montre comment lancer un système Guix complet à l'intérieur d'un conteneur."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3482
+#: guix-git/doc/guix-cookbook.texi:3483
msgid "The Guix System provides a wide array of interconnected system services that are configured declaratively to form a dependable stateless GNU System foundation for whatever tasks you throw at it. Even when using Guix on a foreign distribution you can benefit from the design of Guix System by running a system instance as a container. Using the same kernel features of unshared namespaces mentioned in the previous section, the resulting Guix System instance is isolated from the host system and only shares file system locations that you explicitly declare."
msgstr "Le système Guix fournit un large éventail de services systèmes interconnectés configurés déclarativement pour former les fondations d'un système GNU fiable et sans état pour n'importe quelle tâche que vous lui donnez. Même lorsque vous utilisez Guix sur une distribution externe, vous pouvez bénéficier de la conception du système Guix en lançant une instance du système dans un conteneur. Avec les mêmes fonctionnalités d'espaces de noms départagés mentionnés dans la section précédente, l'instance du système Guix qui en résulte est isolée du système hôte et ne partage que les emplacements de fichiers que vous avez explicitement déclarés."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3493
+#: guix-git/doc/guix-cookbook.texi:3494
msgid "A Guix System container differs from the shell process created by @command{guix shell --container} in a number of important ways. While in a container shell the containerized process is a Bash shell process, a Guix System container runs the Shepherd as PID 1. In a system container all system services (@pxref{Services,,, guix, GNU Guix Reference Manual}) are set up just as they would be on a Guix System in a virtual machine or on bare metal---this includes daemons managed by the GNU@tie{}Shepherd (@pxref{Shepherd Services,,, guix, GNU Guix Reference Manual}) as well as other kinds of extensions to the operating system (@pxref{Service Composition,,, guix, GNU Guix Reference Manual})."
msgstr "Un conteneur du système Guix est différent du processus shell créé par @command{guix shell --container} de plusieurs façons importantes. Dans un shell conteneur le processus de conteneurisation est le processus de shell Bash alors qu'une conteneur du système Guix fait tourner le Shepherd en PID 1. Dans un conteneur système tous les services systèmes (@pxref{Services,,, guix.fr, le manuel de référence de GNU Guix}) sont paramétrés de la même manière que sur un système Guix dans une machine virtuelle ou directement sur le matériel. Cela comprend les démons gérés par le GNU@tie{}Shepherd (@pxref{Services Shepherd,,, guix.fr, le manuel de référence de GNU Guix}) ainsi que d'autres types d'extensions du système d'exploitation (@pxref{Composition de services,,, guix.fr, le manuel de référence de GNU Guix})."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3500
+#: guix-git/doc/guix-cookbook.texi:3501
msgid "The perceived increase in complexity of running a Guix System container is easily justified when dealing with more complex applications that have higher or just more rigid requirements on their execution contexts---configuration files, dedicated user accounts, directories for caches or log files, etc. In Guix System the demands of this kind of software are satisfied through the deployment of system services."
msgstr "La complexité perçue comme croissante d'un conteneur du système Guix est facilement justifiée lorsque vous devez traiter avec des applications plus complexes qui ont des prérequis plus grands ou plus rigides sur leur contexte d'exécution — des fichiers de configuration, des comptes utilisateurs dédiés, des répertoires pour les le cache ou les fichiers journaux, etc. Sur le système Guix, la demande de ce genre de logiciels est satisfaite en déployant des services systèmes."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3513
+#: guix-git/doc/guix-cookbook.texi:3514
msgid "A good example might be a PostgreSQL database server. Much of the complexity of setting up such a database server is encapsulated in this deceptively short service declaration:"
msgstr "Un bon exemple pourrait être un serveur de base de données PostgreSQL. La majeure partie de la complexité de configuration d'un tel serveur de base de données est encapsulée dans cette déclaration trompeusement courtes :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3518
+#: guix-git/doc/guix-cookbook.texi:3519
#, no-wrap
msgid ""
"(service postgresql-service-type\n"
@@ -6488,12 +6502,12 @@ msgstr ""
" (postgresql postgresql-14)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3522
+#: guix-git/doc/guix-cookbook.texi:3523
msgid "A complete operating system declaration for use with a Guix System container would look something like this:"
msgstr "Une déclaration de système d'exploitation complète utilisable avec un conteneur du système Guix ressemblerait à ceci :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3527
+#: guix-git/doc/guix-cookbook.texi:3528
#, no-wrap
msgid ""
"(use-modules (gnu))\n"
@@ -6507,7 +6521,7 @@ msgstr ""
"\n"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3561
+#: guix-git/doc/guix-cookbook.texi:3562
#, no-wrap
msgid ""
"(operating-system\n"
@@ -6579,17 +6593,17 @@ msgstr ""
" %base-services)))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3569
+#: guix-git/doc/guix-cookbook.texi:3570
msgid "With @code{postgresql-role-service-type} we define a role ``test'' and create a matching database, so that we can test right away without any further manual setup. The @code{postgresql-config-file} settings allow a client from IP address 10.0.0.1 to connect without requiring authentication---a bad idea in production systems, but convenient for this example."
msgstr "Avec @code{postgresql-role-service-type} nous définissons un rôle « test » et créons une base de données correspondante, pour que nous puissions le tester immédiatement sans autre paramétrage manuel. Les paramètres de @code{postgresql-config-file} permettent à un client de se connecter à partir de l'adresse IP 10.0.0.1 sans authentification — une mauvaise idée en production, mais pratique pour cet exemple."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3575
+#: guix-git/doc/guix-cookbook.texi:3576
msgid "Let's build a script that will launch an instance of this Guix System as a container. Write the @code{operating-system} declaration above to a file @file{os.scm} and then use @command{guix system container} to build the launcher. (@pxref{Invoking guix system,,, guix, GNU Guix Reference Manual})."
msgstr "Construisons un script qui exécutera une instance de ce système Guix dans un conteneur. Écrivez la déclaration @code{operating-system} ci-dessus dans un fichier @file{os.scm} puis utilisez @command{guix system container} pour construire le lanceur (@pxref{Invoquer guix system,,, guix.fr, le manuel de référence de GNU Guix})."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3583
+#: guix-git/doc/guix-cookbook.texi:3584
#, no-wrap
msgid ""
"$ guix system container os.scm\n"
@@ -6607,12 +6621,12 @@ msgstr ""
"/gnu/store/@dots{}-run-container\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3589
+#: guix-git/doc/guix-cookbook.texi:3590
msgid "Now that we have a launcher script we can run it to spawn the new system with a running PostgreSQL service. Note that due to some as yet unresolved limitations we need to run the launcher as the root user, for example with @command{sudo}."
msgstr "Maintenant que nous avons le script de lancement nous pouvons le lancer pour démarrer le nouveau système avec un service PostgreSQL. Remarquez qu'à cause de limites non encore résolues, nous devons lancer le lanceur en root, par exemple avec @command{sudo}."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3594
+#: guix-git/doc/guix-cookbook.texi:3595
#, no-wrap
msgid ""
"$ sudo /gnu/store/@dots{}-run-container\n"
@@ -6624,12 +6638,12 @@ msgstr ""
"@dots{}\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3601
+#: guix-git/doc/guix-cookbook.texi:3602
msgid "Background the process with @key{Ctrl-z} followed by @command{bg}. Note the process ID in the output; we will need it to connect to the container later. You know what? Let's try attaching to the container right now. We will use @command{nsenter}, a tool provided by the @code{util-linux} package:"
msgstr "Mettez le processus en fond avec @key{Ctrl-z} suivie de @command{bg}. Prenez note de l'ID du processus dans la sortie ; nous en aurons besoin pour nous connecter au conteneur plus tard. Vous savez quoi ? Essayons de nous attacher au conteneur immédiatement. Nous utiliserons @command{nsenter}, un outil fournit par le paquet @code{util-linux} :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3614
+#: guix-git/doc/guix-cookbook.texi:3615
#, no-wrap
msgid ""
"$ guix shell util-linux\n"
@@ -6657,28 +6671,28 @@ msgstr ""
"root@@container /# exit\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3617
+#: guix-git/doc/guix-cookbook.texi:3618
msgid "The PostgreSQL service is running in the container!"
msgstr "Le service PostgreSQL tourne dans le conteneur !"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:3621
+#: guix-git/doc/guix-cookbook.texi:3622
#, no-wrap
msgid "container networking"
msgstr "configuration réseau d'un conteneur"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3627
+#: guix-git/doc/guix-cookbook.texi:3628
msgid "What good is a Guix System running a PostgreSQL database service as a container when we can only talk to it with processes originating in the container? It would be much better if we could talk to the database over the network."
msgstr "Que vaut un système Guix dans lequel tourne un service de bases de données PostgreSQL dans un conteneur si nous ne pouvons lui parler qu'avec des processus originaire de ce conteneur ? Il serait bien mieux de pouvoir parler à la base de données via le réseau."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3633
+#: guix-git/doc/guix-cookbook.texi:3634
msgid "The easiest way to do this is to create a pair of connected virtual Ethernet devices (known as @code{veth}). We move one of the devices (@code{ceth-test}) into the @code{net} namespace of the container and leave the other end (@code{veth-test}) of the connection on the host system."
msgstr "La manière la plus simple de faire cela est de créer une paire de périphérique Ethernet virtuels (connus sous le nom de @code{veth}). Nous déplaçons l'un des périphériques (@code{ceth-test}) dans l'espace de nom @code{net} du conteneur et laissons l'autre côté (@code{veth-test}) de la connexion sur le système hôte."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3639
+#: guix-git/doc/guix-cookbook.texi:3640
#, no-wrap
msgid ""
"pid=5983\n"
@@ -6694,7 +6708,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3642
+#: guix-git/doc/guix-cookbook.texi:3643
#, no-wrap
msgid ""
"# Attach the new net namespace \"guix-test\" to the container PID.\n"
@@ -6706,7 +6720,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3645
+#: guix-git/doc/guix-cookbook.texi:3646
#, no-wrap
msgid ""
"# Create the pair of devices\n"
@@ -6718,7 +6732,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3648
+#: guix-git/doc/guix-cookbook.texi:3649
#, no-wrap
msgid ""
"# Move the client device into the container's net namespace\n"
@@ -6728,12 +6742,12 @@ msgstr ""
"sudo ip link set $client netns $ns\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3651
+#: guix-git/doc/guix-cookbook.texi:3652
msgid "Then we configure the host side:"
msgstr "Puis nous configurons le côté de l'hôte :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3655
+#: guix-git/doc/guix-cookbook.texi:3656
#, no-wrap
msgid ""
"sudo ip link set $host up\n"
@@ -6743,12 +6757,12 @@ msgstr ""
"sudo ip addr add 10.0.0.1/24 dev $host\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3658
+#: guix-git/doc/guix-cookbook.texi:3659
msgid "@dots{}and then we configure the client side:"
msgstr "@dots{}puis nous configurons le côté client :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3663
+#: guix-git/doc/guix-cookbook.texi:3664
#, no-wrap
msgid ""
"sudo ip netns exec $ns ip link set lo up\n"
@@ -6760,12 +6774,12 @@ msgstr ""
"sudo ip netns exec $ns ip addr add 10.0.0.2/24 dev $client\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3669
+#: guix-git/doc/guix-cookbook.texi:3670
msgid "At this point the host can reach the container at IP address 10.0.0.2, and the container can reach the host at IP 10.0.0.1. This is all we need to talk to the database server inside the container from the host system on the outside."
msgstr "Maintenant l'hôte peut atteindre le conteneur à l'adresse IP 10.0.0.2 et le conteneur peut atteindre l'hôte à l'adresse IP 10.0.0.1. C'est tout ce dont nous avons besoin pour communiquer avec le serveur de bases de données dans le conteneur à partir du système hôte, à l'extérieur."
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3674
+#: guix-git/doc/guix-cookbook.texi:3675
#, no-wrap
msgid ""
"$ psql -h 10.0.0.2 -U test\n"
@@ -6779,7 +6793,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3684
+#: guix-git/doc/guix-cookbook.texi:3685
#, no-wrap
msgid ""
"test=> CREATE TABLE hello (who TEXT NOT NULL);\n"
@@ -6803,12 +6817,12 @@ msgstr ""
"(1 row)\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3687
+#: guix-git/doc/guix-cookbook.texi:3688
msgid "Now that we're done with this little demonstration let's clean up:"
msgstr "Maintenant que nous avons fini cette petite démonstration, nettoyons tout ça :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3692
+#: guix-git/doc/guix-cookbook.texi:3693
#, no-wrap
msgid ""
"sudo kill $pid\n"
@@ -6820,112 +6834,124 @@ msgstr ""
"sudo ip link del $host\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3704
+#: guix-git/doc/guix-cookbook.texi:3705
msgid "Guix is a functional package manager that offers many features beyond what more traditional package managers can do. To the uninitiated, those features might not have obvious use cases at first. The purpose of this chapter is to demonstrate some advanced package management concepts."
msgstr "Guix est un gestionnaire de paquets fonctionnel qui propose de nombreuses fonctionnalités en plus de ce que les gestionnaires de paquets traditionnels peuvent faire. Pour quelqu'un qui n'est pas initié, ces fonctionnalités peuvent ne pas paraître utiles au premier coup d'œil. Le but de ce chapitre est de vous montrer certains concepts avancés en gestion de paquets."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3707
+#: guix-git/doc/guix-cookbook.texi:3708
msgid "@pxref{Package Management,,, guix, GNU Guix Reference Manual} for a complete reference."
msgstr "@pxref{Gestion des paquets,,, guix.fr, le manuel de référence de GNU Guix} pour une référence complète."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3718
-msgid "Guix provides a very useful feature that may be quite foreign to newcomers: @emph{profiles}. They are a way to group package installations together and all users on the same system are free to use as many profiles as they want."
-msgstr "Guix fournit une fonctionnalité utile que peut être plutôt étrange pour les débutants et débutantes : les @emph{profils}. C'est une manière de regrouper l'installation de paquets ensemble et chaque utilisateur ou utilisatrice du même système peuvent avoir autant de profils que souhaité."
+#: guix-git/doc/guix-cookbook.texi:3719
+msgid "Guix provides a very useful feature that may be quite foreign to newcomers: @dfn{profiles}. They are a way to group package installations together and all users on the same system are free to use as many profiles as they want."
+msgstr "Guix fournit une fonctionnalité utile que peut être plutôt étrange pour les débutants et débutantes : les @dfn{profils}. C'est une manière de regrouper l'installation de paquets ensemble et chaque utilisateur ou utilisatrice du même système peuvent avoir autant de profils que souhaité."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3723
+#: guix-git/doc/guix-cookbook.texi:3724
msgid "Whether you're a developer or not, you may find that multiple profiles bring you great power and flexibility. While they shift the paradigm somewhat compared to @emph{traditional package managers}, they are very convenient to use once you've understood how to set them up."
msgstr "Que vous programmiez ou non, vous trouverez sans doute plus de flexibilité et de possibilité avec plusieurs profils. Bien qu'ils changent un peu du paradigme des @emph{gestionnaires de paquets traditionnels}, ils sont pratiques à utiliser une fois que vous avec saisi comment les configurer."
-#. type: Plain text
+#. type: quotation
#: guix-git/doc/guix-cookbook.texi:3729
+#, fuzzy
+#| msgid "The easiest way to get started is to use @command{guix shell} with the @option{--container} option. @xref{Invoking guix shell,,, guix, GNU Guix Reference Manual} for a reference of valid options."
+msgid "This section is an opinionated guide on the use of multiple profiles. It predates @command{guix shell} and its fast profile cache (@pxref{Invoking guix shell,,, guix, GNU Guix Reference Manual})."
+msgstr "La manière la plus simple de démarrer est d'utiliser @command{guix shell} avec l'option @option{--container}. @xref{Invoquer guix shell,,, guix.fr, le manuel de référence de GNU Guix} pour la référence des options valides."
+
+#. type: quotation
+#: guix-git/doc/guix-cookbook.texi:3733
+msgid "In many cases, you may find that using @command{guix shell} to set up the environment you need, when you need it, is less work that maintaining a dedicated profile. Your call!"
+msgstr "Dans de nombreux cas, vous trouverez qu'utiliser @command{guix shell} pour configurer l'environnement dont vous avez besoin, quand vous en avez besoin, représente moins de travail que de maintenir un profil dédié. À vous de choisir !"
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:3740
msgid "If you are familiar with Python's @samp{virtualenv}, you can think of a profile as a kind of universal @samp{virtualenv} that can hold any kind of software whatsoever, not just Python software. Furthermore, profiles are self-sufficient: they capture all the runtime dependencies which guarantees that all programs within a profile will always work at any point in time."
msgstr "Si vous connaissez @samp{virtualenv} de Python, vous pouvez conceptualiser un profil comme une sorte de @samp{virtualenv} universel qui peut contenir n'importe quel sorte de logiciel, pas seulement du code Python. En plus, les profils sont auto-suffisants : ils capturent toutes les dépendances à l'exécution qui garantissent que tous les programmes d'un profil fonctionneront toujours à tout instant."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3731
+#: guix-git/doc/guix-cookbook.texi:3742
msgid "Multiple profiles have many benefits:"
msgstr "Avoir plusieurs profils présente de nombreux intérêts :"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3735
+#: guix-git/doc/guix-cookbook.texi:3746
msgid "Clean semantic separation of the various packages a user needs for different contexts."
msgstr "Une séparation sémantique claire des divers paquets dont vous avez besoin pour différents contextes."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3739
+#: guix-git/doc/guix-cookbook.texi:3750
msgid "Multiple profiles can be made available into the environment either on login or within a dedicated shell."
msgstr "On peut rendre plusieurs profils disponibles dans l'environnement soit à la connexion, soit dans un shell dédié."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3743
+#: guix-git/doc/guix-cookbook.texi:3754
msgid "Profiles can be loaded on demand. For instance, the user can use multiple shells, each of them running different profiles."
msgstr "Les profils peuvent être chargés à la demande. Par exemple, vous pouvez utiliser plusieurs shells, chacun dans un profil différent."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3748
+#: guix-git/doc/guix-cookbook.texi:3759
msgid "Isolation: Programs from one profile will not use programs from the other, and the user can even install different versions of the same programs to the two profiles without conflict."
msgstr "L'isolation : les programmes d'un profil n'utiliseront pas ceux d'un autre, et vous pouvez même installe plusieurs versions d'un même programme dans deux profils différents, sans conflit."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3752
+#: guix-git/doc/guix-cookbook.texi:3763
msgid "Deduplication: Profiles share dependencies that happens to be the exact same. This makes multiple profiles storage-efficient."
msgstr "Déduplication : les profils partagent les dépendances qui sont exactement les mêmes. Avoir plusieurs profils ne gâche donc pas d'espace."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3760
+#: guix-git/doc/guix-cookbook.texi:3771
msgid "Reproducible: when used with declarative manifests, a profile can be fully specified by the Guix commit that was active when it was set up. This means that the exact same profile can be @uref{https://guix.gnu.org/blog/2018/multi-dimensional-transactions-and-rollbacks-oh-my/, set up anywhere and anytime}, with just the commit information. See the section on @ref{Reproducible profiles}."
msgstr "Reproductible : lorsque vous utilisez des manifestes déclaratifs, un profil peut être entièrement spécifié par le commit Guix qui a été utilisé pour le créer. Cela signifie que vous pouvez @uref{https://guix.gnu.org/blog/2018/multi-dimensional-transactions-and-rollbacks-oh-my/, recréer n'importe où et à n'importe quel moment} exactement le même profil, avec juste l'information du numéro de commit. Voir la section sur les @ref{Reproducible profiles}."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3764
+#: guix-git/doc/guix-cookbook.texi:3775
msgid "Easier upgrades and maintenance: Multiple profiles make it easy to keep package listings at hand and make upgrades completely frictionless."
msgstr "Des mises à jours et une maintenance plus faciles : avoir plusieurs profils facilite la gestion des listes de paquets à la main."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3767
+#: guix-git/doc/guix-cookbook.texi:3778
msgid "Concretely, here follows some typical profiles:"
msgstr "Concrètement voici des profils courants :"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3771
+#: guix-git/doc/guix-cookbook.texi:3782
msgid "The dependencies of a project you are working on."
msgstr "Les dépendances d'un projet sur lequel vous travaillez."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3774
+#: guix-git/doc/guix-cookbook.texi:3785
msgid "Your favourite programming language libraries."
msgstr "Des bibliothèques de votre langage de programmation favori."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3777
+#: guix-git/doc/guix-cookbook.texi:3788
msgid "Laptop-specific programs (like @samp{powertop}) that you don't need on a desktop."
msgstr "Des programmes spécifiques pour les ordinateurs portables (comme @samp{powertop}) dont vous n'avez pas besoin sur un ordinateur de bureau."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3781
+#: guix-git/doc/guix-cookbook.texi:3792
msgid "@TeX{}live (this one can be really useful when you need to install just one package for this one document you've just received over email)."
msgstr "@TeX{}live (il peut être bien pratique si vous avez besoin d'installer un seul paquet pour un document que vous avez reçu par courriel)."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3784
+#: guix-git/doc/guix-cookbook.texi:3795
msgid "Games."
msgstr "Jeux."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3787
+#: guix-git/doc/guix-cookbook.texi:3798
msgid "Let's dive in the set up!"
msgstr "Voyons cela de plus près !"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3802
+#: guix-git/doc/guix-cookbook.texi:3813
msgid "A Guix profile can be set up @i{via} a @dfn{manifest}. A manifest is a snippet of Scheme code that specifies the set of packages you want to have in your profile; it looks like this:"
msgstr "Un profil Guix peut être paramétré par un @dfn{manifeste}. Un manifeste est un bout de code Scheme qui spécifie l'ensemble des paquets que vous voulez avoir dans votre profil ; il ressemble à ceci :"
#. type: lisp
-#: guix-git/doc/guix-cookbook.texi:3812
+#: guix-git/doc/guix-cookbook.texi:3823
#, no-wrap
msgid ""
"(specifications->manifest\n"
@@ -6947,17 +6973,17 @@ msgstr ""
" \"package-N\"))\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3816
+#: guix-git/doc/guix-cookbook.texi:3827
msgid "@xref{Writing Manifests,,, guix, GNU Guix Reference Manual}, for more information about the syntax."
msgstr "@xref{Écrire un manifeste,,, guix.fr, le manuel de référence de GNU Guix}, pour plus d'informations sur la syntaxe."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3818
+#: guix-git/doc/guix-cookbook.texi:3829
msgid "We can create a manifest specification per profile and install them this way:"
msgstr "On peut créer une spécification de manifeste par profil et les installer de cette manière :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3823
+#: guix-git/doc/guix-cookbook.texi:3834
#, no-wrap
msgid ""
"GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles\n"
@@ -6969,38 +6995,38 @@ msgstr ""
"guix package --manifest=/path/to/guix-my-project-manifest.scm --profile=\"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3827
+#: guix-git/doc/guix-cookbook.texi:3838
msgid "Here we set an arbitrary variable @samp{GUIX_EXTRA_PROFILES} to point to the directory where we will store our profiles in the rest of this article."
msgstr "On spécifie ici une variable arbitraire @samp{GUIX_EXTRA_PROFILES} pour pointer vers le répertoire où seront stockés nos profils dans le reste de cet article."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3833
+#: guix-git/doc/guix-cookbook.texi:3844
msgid "Placing all your profiles in a single directory, with each profile getting its own sub-directory, is somewhat cleaner. This way, each sub-directory will contain all the symlinks for precisely one profile. Besides, ``looping over profiles'' becomes obvious from any programming language (e.g.@: a shell script) by simply looping over the sub-directories of @samp{$GUIX_EXTRA_PROFILES}."
msgstr "C'est un peu plus propre de placer tous vos profils dans un répertoire unique, où chaque profil a son propre sous-répertoire. De cette manière, chaque sous-répertoire contiendra tous les liens symboliques pour exactement un profil. En plus, il devient facile d'énumérer les profils depuis n'importe quel langage de programmation (p.@: ex.@: un script shell) en énumérant simplement les sous-répertoires de @samp{$GUIX_EXTRA_PROFILES}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3835
+#: guix-git/doc/guix-cookbook.texi:3846
msgid "Note that it's also possible to loop over the output of"
msgstr "Remarquez qu'il est aussi possible d'utiliser la sortie de"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3838
+#: guix-git/doc/guix-cookbook.texi:3849
#, no-wrap
msgid "guix package --list-profiles\n"
msgstr "guix package --list-profiles\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3841
+#: guix-git/doc/guix-cookbook.texi:3852
msgid "although you'll probably have to filter out @file{~/.config/guix/current}."
msgstr "même si vous devrez sans doute enlever @file{~/.config/guix/current}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3843
+#: guix-git/doc/guix-cookbook.texi:3854
msgid "To enable all profiles on login, add this to your @file{~/.bash_profile} (or similar):"
msgstr "Pour activer tous les profils à la connexion, ajoutez cela à votre @file{~/.bash_profile} (ou similaire) :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3853
+#: guix-git/doc/guix-cookbook.texi:3864
#, no-wrap
msgid ""
"for i in $GUIX_EXTRA_PROFILES/*; do\n"
@@ -7022,17 +7048,17 @@ msgstr ""
"done\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3858
+#: guix-git/doc/guix-cookbook.texi:3869
msgid "Note to Guix System users: the above reflects how your default profile @file{~/.guix-profile} is activated from @file{/etc/profile}, that latter being loaded by @file{~/.bashrc} by default."
msgstr "Remarque pour les utilisateurs du système Guix : ce qui précède ressemble à la manière dont votre profil par défaut @file{~/.guix-profile} est activé dans @file{/etc/profile}, ce dernier étant chargé par défaut par @file{~/.bashrc}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3860
+#: guix-git/doc/guix-cookbook.texi:3871
msgid "You can obviously choose to only enable a subset of them:"
msgstr "Vous pouvez évidemment choisir de n'en activer qu'une partie :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3870
+#: guix-git/doc/guix-cookbook.texi:3881
#, no-wrap
msgid ""
"for i in \"$GUIX_EXTRA_PROFILES\"/my-project-1 \"$GUIX_EXTRA_PROFILES\"/my-project-2; do\n"
@@ -7054,50 +7080,50 @@ msgstr ""
"done\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3874
+#: guix-git/doc/guix-cookbook.texi:3885
msgid "When a profile is off, it's straightforward to enable it for an individual shell without \"polluting\" the rest of the user session:"
msgstr "Lorsqu'un profil est désactivé, il est facile de l'activer pour un shell individuel sans « polluer » le reste de la session :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3877
+#: guix-git/doc/guix-cookbook.texi:3888
#, no-wrap
msgid "GUIX_PROFILE=\"path/to/my-project\" ; . \"$GUIX_PROFILE\"/etc/profile\n"
msgstr "GUIX_PROFILE=\"path/to/my-project\" ; . \"$GUIX_PROFILE\"/etc/profile\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3884
+#: guix-git/doc/guix-cookbook.texi:3895
msgid "The key to enabling a profile is to @emph{source} its @samp{etc/profile} file. This file contains shell code that exports the right environment variables necessary to activate the software contained in the profile. It is built automatically by Guix and meant to be sourced. It contains the same variables you would get if you ran:"
msgstr "Le secret pour activer un profil est de @emph{sourcer} son fichier @samp{etc/profile}. Ce fichier contient du code shell qui exporte les bonnes variables d'environnement nécessaires à activer les logiciels présents dans le profil. Il est créé automatiquement par Guix et doit être sourcé. Il contient les mêmes variables que ce que vous obtiendrez en lançant :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3887
+#: guix-git/doc/guix-cookbook.texi:3898
#, no-wrap
msgid "guix package --search-paths=prefix --profile=$my_profile\"\n"
msgstr "guix package --search-paths=prefix --profile=$my_profile\"\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3891
+#: guix-git/doc/guix-cookbook.texi:3902
msgid "Once again, see (@pxref{Invoking guix package,,, guix, GNU Guix Reference Manual}) for the command line options."
msgstr "Encore une fois, @xref{Invoquer guix package,,, guix.fr, le manuel de référence de GNU Guix} pour les options de la ligne de commande."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3893
+#: guix-git/doc/guix-cookbook.texi:3904
msgid "To upgrade a profile, simply install the manifest again:"
msgstr "Pour mettre à jour un profil, installez de nouveau le manifeste :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3896
+#: guix-git/doc/guix-cookbook.texi:3907
#, no-wrap
msgid "guix package -m /path/to/guix-my-project-manifest.scm -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n"
msgstr "guix package -m /path/to/guix-my-project-manifest.scm -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3902
+#: guix-git/doc/guix-cookbook.texi:3913
msgid "To upgrade all profiles, it's easy enough to loop over them. For instance, assuming your manifest specifications are stored in @file{~/.guix-manifests/guix-$profile-manifest.scm}, with @samp{$profile} being the name of the profile (e.g.@: \"project1\"), you could do the following in Bourne shell:"
msgstr "Pour mettre à jour tous les profils, vous pouvez simplement les énumérer. Par exemple, en supposant que vous spécifications sont dans @file{~/.guix-manifests/guix-$profile-manifest.scm}, où @samp{$profile} est le nom du profil (p.@: ex@: « projet1 »), vous pouvez utiliser ce qui suit dans le shell :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3907
+#: guix-git/doc/guix-cookbook.texi:3918
#, no-wrap
msgid ""
"for profile in \"$GUIX_EXTRA_PROFILES\"/*; do\n"
@@ -7109,34 +7135,34 @@ msgstr ""
"done\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3910
+#: guix-git/doc/guix-cookbook.texi:3921
msgid "Each profile has its own generations:"
msgstr "Chaque profil a ses propres générations :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3913
+#: guix-git/doc/guix-cookbook.texi:3924
#, no-wrap
msgid "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --list-generations\n"
msgstr "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --list-generations\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3916
+#: guix-git/doc/guix-cookbook.texi:3927
msgid "You can roll-back to any generation of a given profile:"
msgstr "Vous pouvez revenir à n'importe quelle génération d'un profil donné :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3919
+#: guix-git/doc/guix-cookbook.texi:3930
#, no-wrap
msgid "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --switch-generations=17\n"
msgstr "guix package -p \"$GUIX_EXTRA_PROFILES\"/my-project/my-project --switch-generations=17\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3923
+#: guix-git/doc/guix-cookbook.texi:3934
msgid "Finally, if you want to switch to a profile without inheriting from the current environment, you can activate it from an empty shell:"
msgstr "Enfin, si vous voulez passer à un profil sans hériter l'environnement actuel, vous pouvez l'activer dans un shell vide :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3927
+#: guix-git/doc/guix-cookbook.texi:3938
#, no-wrap
msgid ""
"env -i $(which bash) --login --noprofile --norc\n"
@@ -7146,58 +7172,58 @@ msgstr ""
". my-project/etc/profile\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3935
+#: guix-git/doc/guix-cookbook.texi:3946
msgid "Activating a profile essentially boils down to exporting a bunch of environmental variables. This is the role of the @samp{etc/profile} within the profile."
msgstr "Activer un profil consiste en substance à exporter un ensemble de variables d'environnement. C'est le rôle de @samp{etc/profile} dans le profil."
#. type: emph{#1}
-#: guix-git/doc/guix-cookbook.texi:3938
+#: guix-git/doc/guix-cookbook.texi:3949
msgid "Note: Only the environmental variables of the packages that consume them will be set."
msgstr "Remarque : seules les variables d'environnement des paquets qui les utilisent seront modifiées."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3942
+#: guix-git/doc/guix-cookbook.texi:3953
msgid "For instance, @samp{MANPATH} won't be set if there is no consumer application for man pages within the profile. So if you need to transparently access man pages once the profile is loaded, you've got two options:"
msgstr "Par exemple, @samp{MANPATH} ne sera pas modifié s'il n'y a pas d'application qui utilise les pages de manuel dans le profil. Donc si vous voulez pouvoir accéder aux pages de manuel facilement une fois le profil chargé, vous avez deux possibilités :"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3946
+#: guix-git/doc/guix-cookbook.texi:3957
msgid "Either export the variable manually, e.g."
msgstr "Exporter la variable manuellement, p.@: ex@:"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3948
+#: guix-git/doc/guix-cookbook.texi:3959
#, no-wrap
msgid "export MANPATH=/path/to/profile$@{MANPATH:+:@}$MANPATH\n"
msgstr "export MANPATH=/path/to/profile$@{MANPATH:+:@}$MANPATH\n"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:3952
+#: guix-git/doc/guix-cookbook.texi:3963
msgid "Or include @samp{man-db} to the profile manifest."
msgstr "Inclure @samp{man-db} dans le manifeste du profil."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3956
+#: guix-git/doc/guix-cookbook.texi:3967
msgid "The same is true for @samp{INFOPATH} (you can install @samp{info-reader}), @samp{PKG_CONFIG_PATH} (install @samp{pkg-config}), etc."
msgstr "Il en va de même pour @samp{INFOPATH} (vous pouvez installer @samp{info-reader}), @samp{PKG_CONFIG_PATH} (installer @samp{pkg-config}), etc."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3961
+#: guix-git/doc/guix-cookbook.texi:3972
msgid "What about the default profile that Guix keeps in @file{~/.guix-profile}?"
msgstr "Que faire du profil par défaut que Guix garder dans @file{~/.guix-profile} ?"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3964
+#: guix-git/doc/guix-cookbook.texi:3975
msgid "You can assign it the role you want. Typically you would install the manifest of the packages you want to use all the time."
msgstr "Vous pouvez lui assigner le rôle que vous souhaitez. Habituellement, vous y installerez un manifeste des paquets que vous voulez pouvoir utiliser dans toutes les situations."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3968
+#: guix-git/doc/guix-cookbook.texi:3979
msgid "Alternatively, you could keep it ``manifest-less'' for throw-away packages that you would just use for a couple of days. This way makes it convenient to run"
msgstr "Autrement, vous pouvez en faire un profil sans manifeste pour des paquets sans importance que vous voulez juste garder quelques jours. C'est une manière de pouvoir facilement lancer"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:3972
+#: guix-git/doc/guix-cookbook.texi:3983
#, no-wrap
msgid ""
"guix install package-foo\n"
@@ -7207,127 +7233,107 @@ msgstr ""
"guix upgrade package-bar\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3975
+#: guix-git/doc/guix-cookbook.texi:3986
msgid "without having to specify the path to a profile."
msgstr "sans avoir à spécifier un profil."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3981
-msgid "Manifests are a convenient way to keep your package lists around and, say, to synchronize them across multiple machines using a version control system."
-msgstr "Les manifestes sont pratiques pour garder la liste des paquets et, par exemple, les synchroniser entre plusieurs machines avec un système de gestion de versions."
+#: guix-git/doc/guix-cookbook.texi:3994
+msgid "Manifests let you @dfn{declare} the set of packages you'd like to have in a profile (@pxref{Writing Manifests,,, guix, GNU Guix Reference Manual}). They are a convenient way to keep your package lists around and, say, to synchronize them across multiple machines using a version control system."
+msgstr "Les manifestes vous permettent de @dfn{déclarer} l'ensemble de paquets que vous souhaitez voir dans un profil (@pxref{Écrire un manifeste,,, guix.fr, le manuel de référence de GNU Guix}). Ils sont pratiques pour garder la liste des paquets et, par exemple, les synchroniser entre plusieurs machines avec un système de gestion de versions."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3985
+#: guix-git/doc/guix-cookbook.texi:3998
msgid "A common complaint about manifests is that they can be slow to install when they contain large number of packages. This is especially cumbersome when you just want get an upgrade for one package within a big manifest."
msgstr "Les gens se plaignent souvent que les manifestes sont lents à installer quand ils contiennent beaucoup de paquets. C'est particulièrement embêtant quand vous voulez juste mettre à jour un paquet dans un gros manifeste."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3990
+#: guix-git/doc/guix-cookbook.texi:4003
msgid "This is one more reason to use multiple profiles, which happen to be just perfect to break down manifests into multiple sets of semantically connected packages. Using multiple, small profiles provides more flexibility and usability."
msgstr "C'est une raison de plus d'utiliser plusieurs profils, qui sont bien pratiques pour diviser les manifestes en plusieurs ensembles de paquets de même type. Plusieurs petits profils sont plus flexibles et plus maniables."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:3992
+#: guix-git/doc/guix-cookbook.texi:4005
msgid "Manifests come with multiple benefits. In particular, they ease maintenance:"
msgstr "Les manifestes ont de nombreux avantages. En particulier, ils facilitent la maintenance :"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:4000
+#: guix-git/doc/guix-cookbook.texi:4013
msgid "When a profile is set up from a manifest, the manifest itself is self-sufficient to keep a ``package listing'' around and reinstall the profile later or on a different system. For ad-hoc profiles, we would need to generate a manifest specification manually and maintain the package versions for the packages that don't use the default version."
msgstr "Lorsqu'un profil est créé à partir d'un manifeste, le manifeste lui-même est suffisant pour garder la liste des paquets sous le coude et réinstaller le profil plus tard sur un autre système. Pour les profils ad-hoc, il faudrait générer une spécification de manifeste à la main et noter les versions de paquets pour les paquets qui n'utilisent pas la version par défaut."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:4005
+#: guix-git/doc/guix-cookbook.texi:4018
msgid "@code{guix package --upgrade} always tries to update the packages that have propagated inputs, even if there is nothing to do. Guix manifests remove this problem."
msgstr "@code{guix package --upgrade} essaye toujours de mettre à jour les paquets qui ont des entrées propagées, même s'il n'y à rien à faire. Les manifestes de Guix résolvent ce problème."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:4011
+#: guix-git/doc/guix-cookbook.texi:4024
msgid "When partially upgrading a profile, conflicts may arise (due to diverging dependencies between the updated and the non-updated packages) and they can be annoying to resolve manually. Manifests remove this problem altogether since all packages are always upgraded at once."
msgstr "Lorsque vous mettez partiellement à jour un profil, des conflits peuvent survenir (à cause des dépendances différentes entre les paquets à jour et ceux qui ne le sont pas) et ça peut être embêtant à corriger à la main. Les manifestes suppriment ce problème puisque tous les paquets sont toujours mis à jour en même temps."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:4017
+#: guix-git/doc/guix-cookbook.texi:4030
msgid "As mentioned above, manifests allow for reproducible profiles, while the imperative @code{guix install}, @code{guix upgrade}, etc. do not, since they produce different profiles every time even when they hold the same packages. See @uref{https://issues.guix.gnu.org/issue/33285, the related discussion on the matter}."
msgstr "Comme on l'a mentionné plus haut, les manifestes permettent d'avoir des profils reproductibles, alors que les commandes impératives @code{guix install}, @code{guix upgrade}, etc, ne le peuvent pas, puisqu'elles produisent un profil différent à chaque fois qu'elles sont lancées, même avec les même paquets. Voir @uref{https://issues.guix.gnu.org/issue/33285, la discussion sur ce problème}."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:4025
+#: guix-git/doc/guix-cookbook.texi:4038
msgid "Manifest specifications are usable by other @samp{guix} commands. For example, you can run @code{guix weather -m manifest.scm} to see how many substitutes are available, which can help you decide whether you want to try upgrading today or wait a while. Another example: you can run @code{guix pack -m manifest.scm} to create a pack containing all the packages in the manifest (and their transitive references)."
msgstr "Les spécifications de manifestes sont utilisables par les autres commandes @samp{guix}. Par exemple, vous pouvez lancer @code{guix weather -m manifest} pour voir combien de substituts sont disponibles, ce qui peut vous aider à décider si vous voulez faire la mise à jour maintenant ou un peu plus tard. Un autre exemple : vous pouvez lancer @code{guix package -m manifest.scm} pour créer un lot contenant tous les paquets du manifeste (et leurs références transitives)."
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:4029
+#: guix-git/doc/guix-cookbook.texi:4042
msgid "Finally, manifests have a Scheme representation, the @samp{<manifest>} record type. They can be manipulated in Scheme and passed to the various Guix @uref{https://en.wikipedia.org/wiki/Api, APIs}."
msgstr "Enfin, les manifestes ont une représentation Scheme, le type d'enregistrement @samp{<manifest>}. Vous pouvez les manipuler en Scheme et les passer aux diverses @uref{https://fr.wikipedia.org/wiki/Api, API} de Guix."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4037
-msgid "It's important to understand that while manifests can be used to declare profiles, they are not strictly equivalent: profiles have the side effect that they ``pin'' packages in the store, which prevents them from being garbage-collected (@pxref{Invoking guix gc,,, guix, GNU Guix Reference Manual}) and ensures that they will still be available at any point in the future."
-msgstr "Vous devez bien comprendre que même si vous pouvez utiliser les manifestes pour déclarer des profils, les deux ne sont pas strictement équivalents : les profils pour l'effet de bord « d'épingler » les paquets dans le dépôt, ce qui évite qu'ils ne soient nettoyés (@pxref{Invoquer guix gc,,, guix.fr, le manuel de référence de GNU Guix}) et s'assure qu'ils seront toujours disponibles à n'importe quel moment dans le futur."
-
-#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4039
-msgid "Let's take an example:"
-msgstr "Voyons un exemple :"
-
-#. type: enumerate
-#: guix-git/doc/guix-cookbook.texi:4045
-msgid "We have an environment for hacking on a project for which there isn't a Guix package yet. We build the environment using a manifest, and then run @code{guix environment -m manifest.scm}. So far so good."
-msgstr "Vous avez un environnement pour bidouiller un projet pour lequel il n'y a pas encore de paquet Guix. Vous construisez l'environnement avec un manifeste puis lancez @code{guix environment -m manifest.scm}. Jusqu'ici tout va bien."
-
-#. type: enumerate
-#: guix-git/doc/guix-cookbook.texi:4051
-msgid "Many weeks pass and we have run a couple of @code{guix pull} in the mean time. Maybe a dependency from our manifest has been updated; or we may have run @code{guix gc} and some packages needed by our manifest have been garbage-collected."
-msgstr "Plusieurs semaines plus tard vous avez lancé quelques @code{guix pull} entre temps. Plusieurs dépendances du manifeste ont été mises à jour ; ou bien vous avez lancé @code{guix gc} et certains paquets requis par le manifeste ont été nettoyés."
-
-#. type: enumerate
-#: guix-git/doc/guix-cookbook.texi:4056
-msgid "Eventually, we set to work on that project again, so we run @code{guix shell -m manifest.scm}. But now we have to wait for Guix to build and install stuff!"
-msgstr "Finalement, vous vous remettez au travail sur ce projet, donc vous lancez @code{guix shell -m manifest.scm}. Mais maintenant vous devez attendre que Guix construise et installe des paquets !"
+#: guix-git/doc/guix-cookbook.texi:4053
+msgid "It's important to understand that while manifests can be used to declare profiles, they are not strictly equivalent: profiles have the side effect that they ``pin'' packages in the store, which prevents them from being garbage-collected (@pxref{Invoking guix gc,,, guix, GNU Guix Reference Manual}) and ensures that they will still be available at any point in the future. The @command{guix shell} command also protects recently-used profiles from garbage collection; profiles that have not been used for a while may be garbage-collected though, along with the packages they refer to."
+msgstr "Vous devez bien comprendre que même si vous pouvez utiliser les manifestes pour déclarer des profils, les deux ne sont pas strictement équivalents : les profils pour l'effet de bord « d'épingler » les paquets dans le dépôt, ce qui évite qu'ils ne soient nettoyés (@pxref{Invoquer guix gc,,, guix.fr, le manuel de référence de GNU Guix}) et s'assure qu'ils seront toujours disponibles à n'importe quel moment dans le futur. La commande @command{guix shell} protège également les profils récemment utilisés du ramasse-miettes : les profiles qui n'ont pas été utilisé pendant un certain temps peuvent être cependant être nettoyés, avec les paquets auxquels ils se réfèrent."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4062
-msgid "Ideally, we could spare the rebuild time. And indeed we can, all we need is to install the manifest to a profile and use @code{GUIX_PROFILE=/the/profile; . \"$GUIX_PROFILE\"/etc/profile} as explained above: this guarantees that our hacking environment will be available at all times."
-msgstr "Idéalement, vous voudriez éviter de perdre du temps à reconstruire. C'est en fait possible, tout ce dont on a besoin, c'est d'installer le manifeste dans un profil et d'utiliser @code{GUIX_PROFILE=/le/profil; . \"$GUIX_PROFILE\"/etc/profile} comme on l'a expliqué plus haut : cela garantie que l'environnement de bidouillage sera toujours disponible."
+#: guix-git/doc/guix-cookbook.texi:4058
+msgid "To be 100% sure that a given profile will never be collected, install the manifest to a profile and use @code{GUIX_PROFILE=/the/profile; . \"$GUIX_PROFILE\"/etc/profile} as explained above: this guarantees that our hacking environment will be available at all times."
+msgstr "Pour être sûr à 100 % qu'un profil donné ne sera pas nettoyé, installez le manifeste dans un profil et d'utiliser @code{GUIX_PROFILE=/le/profil; . \"$GUIX_PROFILE\"/etc/profile} comme on l'a expliqué plus haut : cela garantie que l'environnement de bidouillage sera toujours disponible."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4065
+#: guix-git/doc/guix-cookbook.texi:4061
msgid "@emph{Security warning:} While keeping old profiles around can be convenient, keep in mind that outdated packages may not have received the latest security fixes."
msgstr "@emph{Avertissement de sécurité :} bien que garder d'anciens profils soit pratique, gardez à l'esprit que les anciens paquets n'ont pas forcément reçu les dernières corrections de sécurité."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4070
+#: guix-git/doc/guix-cookbook.texi:4066
msgid "To reproduce a profile bit-for-bit, we need two pieces of information:"
msgstr "Pour reproduire un profil bit-à-bit, on a besoin de deux informations :"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:4074
-msgid "a manifest,"
-msgstr "un manifeste,"
+#: guix-git/doc/guix-cookbook.texi:4070
+msgid "a manifest (@pxref{Writing Manifests,,, guix, GNU Guix Reference Manual});"
+msgstr "un manifeste (@pxref{Écrire un manifeste,,, guix.fr, le manuel de référence de GNU Guix}),"
#. type: itemize
-#: guix-git/doc/guix-cookbook.texi:4076
-msgid "a Guix channel specification."
-msgstr "et une spécification de canaux Guix."
+#: guix-git/doc/guix-cookbook.texi:4073
+msgid "a Guix channel specification (@pxref{Replicating Guix,,, guix, GNU Guix Reference Manual})."
+msgstr "une spécification de canal Guix (@pxref{Répliquer Guix,,, guix.fr, le manuel de référence de GNU Guix})."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4080
+#: guix-git/doc/guix-cookbook.texi:4077
msgid "Indeed, manifests alone might not be enough: different Guix versions (or different channels) can produce different outputs for a given manifest."
msgstr "En effet, les manifestes seuls ne sont pas forcément suffisants : différentes versions de Guix (ou différents canaux) peuvent produire des sorties différentes avec le même manifeste."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4084
-msgid "You can output the Guix channel specification with @samp{guix describe --format=channels}. Save this to a file, say @samp{channel-specs.scm}."
-msgstr "Vous pouvez afficher la spécification de canaux Guix avec @samp{guix describe --format=channels}. Enregistrez-la dans un fichier, par exemple @samp{channel-specs.scm}."
+#: guix-git/doc/guix-cookbook.texi:4082
+msgid "You can output the Guix channel specification with @samp{guix describe --format=channels} (@pxref{Invoking guix describe,,, guix, GNU Guix Reference Manual}). Save this to a file, say @samp{channel-specs.scm}."
+msgstr "Vous pouvez afficher la spécification de canaux Guix avec @samp{guix describe --format=channels} (@pxref{Invoquer guix describe,,, guix.fr, le manuel de référence de GNU Guix}). Enregistrez-la dans un fichier, par exemple @samp{channel-specs.scm}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4087
+#: guix-git/doc/guix-cookbook.texi:4085
msgid "On another computer, you can use the channel specification file and the manifest to reproduce the exact same profile:"
msgstr "Sur un autre ordinateur, vous pouvez utiliser le fichier de spécification de canaux et le manifeste pour reproduire exactement le même profil :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4091
+#: guix-git/doc/guix-cookbook.texi:4089
#, no-wrap
msgid ""
"GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles\n"
@@ -7339,7 +7345,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4094
+#: guix-git/doc/guix-cookbook.texi:4092
#, no-wrap
msgid ""
"mkdir -p \"$GUIX_EXTRA\"/my-project\n"
@@ -7351,7 +7357,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4097
+#: guix-git/doc/guix-cookbook.texi:4095
#, no-wrap
msgid ""
"mkdir -p \"$GUIX_EXTRA_PROFILES/my-project\"\n"
@@ -7361,32 +7367,1014 @@ msgstr ""
"\"$GUIX_EXTRA\"/my-project/guix/bin/guix package --manifest=/path/to/guix-my-project-manifest.scm --profile=\"$GUIX_EXTRA_PROFILES\"/my-project/my-project\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4101
+#: guix-git/doc/guix-cookbook.texi:4099
msgid "It's safe to delete the Guix channel profile you've just installed with the channel specification, the project profile does not depend on it."
msgstr "Vous pouvez supprimer le profil des canaux Guix que vous venez d'installer avec la spécification de canaux, le profil du projet n'en dépend pas."
+#. type: cindex
+#: guix-git/doc/guix-cookbook.texi:4103
+#, no-wrap
+msgid "development, with Guix"
+msgstr ""
+
+#. type: cindex
+#: guix-git/doc/guix-cookbook.texi:4104
+#, no-wrap
+msgid "software development, with Guix"
+msgstr ""
+
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4108
+#: guix-git/doc/guix-cookbook.texi:4114
+msgid "Guix is a handy tool for developers; @command{guix shell}, in particular, gives a standalone development environment for your package, no matter what language(s) it's written in (@pxref{Invoking guix shell,,, guix, GNU Guix Reference Manual}). To benefit from it, you have to initially write a package definition and have it either in Guix proper, or in a channel, or directly in your project's source tree as a @file{guix.scm} file. This last option is appealing: all developers have to do to get set up is clone the project's repository and run @command{guix shell}, with no arguments."
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4124
+msgid "Development needs go beyond development environments though. How can developers perform continuous integration of their code in Guix build environments? How can they deliver their code straight to adventurous users? This chapter describes a set of files developers can add to their repository to set up Guix-based development environments, continuous integration, and continuous delivery---all at once@footnote{This chapter is adapted from a @uref{https://guix.gnu.org/en/blog/2023/from-development-environments-to-continuous-integrationthe-ultimate-guide-to-software-development-with-guix/, blog post} published in June 2023 on the Guix web site.}."
+msgstr ""
+
+#. type: section
+#: guix-git/doc/guix-cookbook.texi:4133 guix-git/doc/guix-cookbook.texi:4135
+#: guix-git/doc/guix-cookbook.texi:4136
+#, no-wrap
+msgid "Getting Started"
+msgstr "Guide de démarrage"
+
+#. type: menuentry
+#: guix-git/doc/guix-cookbook.texi:4133
+msgid "Step 0: using `guix shell'."
+msgstr ""
+
+#. type: node
+#: guix-git/doc/guix-cookbook.texi:4133 guix-git/doc/guix-cookbook.texi:4255
+#, no-wrap
+msgid "Building with Guix"
+msgstr ""
+
+#. type: menuentry
+#: guix-git/doc/guix-cookbook.texi:4133
+msgid "Step 1: building your code."
+msgstr ""
+
+#. type: node
+#: guix-git/doc/guix-cookbook.texi:4133 guix-git/doc/guix-cookbook.texi:4345
+#, no-wrap
+msgid "The Repository as a Channel"
+msgstr ""
+
+#. type: menuentry
+#: guix-git/doc/guix-cookbook.texi:4133
+msgid "Step 2: turning the repo in a channel."
+msgstr ""
+
+#. type: node
+#: guix-git/doc/guix-cookbook.texi:4133 guix-git/doc/guix-cookbook.texi:4481
+#, no-wrap
+msgid "Package Variants"
+msgstr "Variantes de paquets"
+
+#. type: menuentry
+#: guix-git/doc/guix-cookbook.texi:4133
+msgid "Bonus: Defining variants."
+msgstr ""
+
+#. type: node
+#: guix-git/doc/guix-cookbook.texi:4133 guix-git/doc/guix-cookbook.texi:4533
+#, no-wrap
+msgid "Setting Up Continuous Integration"
+msgstr ""
+
+#. type: menuentry
+#: guix-git/doc/guix-cookbook.texi:4133
+msgid "Step 3: continuous integration."
+msgstr ""
+
+#. type: node
+#: guix-git/doc/guix-cookbook.texi:4133 guix-git/doc/guix-cookbook.texi:4608
+#, fuzzy, no-wrap
+#| msgid "a manifest,"
+msgid "Build Manifest"
+msgstr "un manifeste,"
+
+#. type: menuentry
+#: guix-git/doc/guix-cookbook.texi:4133
+msgid "Bonus: Manifest."
+msgstr ""
+
+#. type: section
+#: guix-git/doc/guix-cookbook.texi:4133 guix-git/doc/guix-cookbook.texi:4701
+#: guix-git/doc/guix-cookbook.texi:4702
+#, no-wrap
+msgid "Wrapping Up"
+msgstr ""
+
+#. type: menuentry
+#: guix-git/doc/guix-cookbook.texi:4133
+msgid "Recap."
+msgstr "Récapitulatif"
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4147
+msgid "How do we go about ``Guixifying'' a repository? The first step, as we've seen, will be to add a @file{guix.scm} at the root of the repository in question. We'll take @uref{https://www.gnu.org/software/guile,Guile} as an example in this chapter: it's written in Scheme (mostly) and C, and has a number of dependencies---a C compilation tool chain, C libraries, Autoconf and its friends, LaTeX, and so on. The resulting @file{guix.scm} looks like the usual package definition (@pxref{Defining Packages,,, guix, GNU Guix Reference Manual}), just without the @code{define-public} bit:"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4150
+#, no-wrap
+msgid ""
+";; The ‘guix.scm’ file for Guile, for use by ‘guix shell’.\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4171
+#, no-wrap
+msgid ""
+"(use-modules (guix)\n"
+" (guix build-system gnu)\n"
+" ((guix licenses) #:prefix license:)\n"
+" (gnu packages autotools)\n"
+" (gnu packages base)\n"
+" (gnu packages bash)\n"
+" (gnu packages bdw-gc)\n"
+" (gnu packages compression)\n"
+" (gnu packages flex)\n"
+" (gnu packages gdb)\n"
+" (gnu packages gettext)\n"
+" (gnu packages gperf)\n"
+" (gnu packages libffi)\n"
+" (gnu packages libunistring)\n"
+" (gnu packages linux)\n"
+" (gnu packages pkg-config)\n"
+" (gnu packages readline)\n"
+" (gnu packages tex)\n"
+" (gnu packages texinfo)\n"
+" (gnu packages version-control))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4193
+#, no-wrap
+msgid ""
+"(package\n"
+" (name \"guile\")\n"
+" (version \"3.0.99-git\") ;funky version number\n"
+" (source #f) ;no source\n"
+" (build-system gnu-build-system)\n"
+" (native-inputs\n"
+" (append (list autoconf\n"
+" automake\n"
+" libtool\n"
+" gnu-gettext\n"
+" flex\n"
+" texinfo\n"
+" texlive-base ;for \"make pdf\"\n"
+" texlive-epsf\n"
+" gperf\n"
+" git\n"
+" gdb\n"
+" strace\n"
+" readline\n"
+" lzip\n"
+" pkg-config)\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4203
+#, no-wrap
+msgid ""
+" ;; When cross-compiling, a native version of Guile itself is\n"
+" ;; needed.\n"
+" (if (%current-target-system)\n"
+" (list this-package)\n"
+" '())))\n"
+" (inputs\n"
+" (list libffi bash-minimal))\n"
+" (propagated-inputs\n"
+" (list libunistring libgc))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4217
+#, no-wrap
+msgid ""
+" (native-search-paths\n"
+" (list (search-path-specification\n"
+" (variable \"GUILE_LOAD_PATH\")\n"
+" (files '(\"share/guile/site/3.0\")))\n"
+" (search-path-specification\n"
+" (variable \"GUILE_LOAD_COMPILED_PATH\")\n"
+" (files '(\"lib/guile/3.0/site-ccache\")))))\n"
+" (synopsis \"Scheme implementation intended especially for extensions\")\n"
+" (description\n"
+" \"Guile is the GNU Ubiquitous Intelligent Language for Extensions,\n"
+"and it's actually a full-blown Scheme implementation!\")\n"
+" (home-page \"https://www.gnu.org/software/guile/\")\n"
+" (license license:lgpl3+))\n"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4221
+msgid "Quite a bit of boilerplate, but now someone who'd like to hack on Guile now only needs to run:"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4224
+#, no-wrap
+msgid "guix shell\n"
+msgstr "guix shell\n"
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4230
+msgid "That gives them a shell containing all the dependencies of Guile: those listed above, but also @emph{implicit dependencies} such as the GCC tool chain, GNU@ Make, sed, grep, and so on. @xref{Invoking guix shell,,, guix, GNU Guix Reference Manual}, for more info on @command{guix shell}."
+msgstr ""
+
+#. type: quotation
+#: guix-git/doc/guix-cookbook.texi:4231
+#, no-wrap
+msgid "The chef's recommendation"
+msgstr ""
+
+#. type: quotation
+#: guix-git/doc/guix-cookbook.texi:4233
+msgid "Our suggestion is to create development environments like this:"
+msgstr ""
+
+#. type: example
+#: guix-git/doc/guix-cookbook.texi:4236
+#, fuzzy, no-wrap
+#| msgid "guix shell --container\n"
+msgid "guix shell --container --link-profile\n"
+msgstr "guix shell --container\n"
+
+#. type: quotation
+#: guix-git/doc/guix-cookbook.texi:4240
+msgid "... or, for short:"
+msgstr ""
+
+#. type: example
+#: guix-git/doc/guix-cookbook.texi:4243
+#, fuzzy, no-wrap
+#| msgid "guix shell --container\n"
+msgid "guix shell -CP\n"
+msgstr "guix shell --container\n"
+
+#. type: quotation
+#: guix-git/doc/guix-cookbook.texi:4253
+msgid "That gives a shell in an isolated container, and all the dependencies show up in @code{$HOME/.guix-profile}, which plays well with caches such as @file{config.cache} (@pxref{Cache Files,,, autoconf, Autoconf}) and absolute file names recorded in generated @code{Makefile}s and the likes. The fact that the shell runs in a container brings peace of mind: nothing but the current directory and Guile's dependencies is visible inside the container; nothing from the system can possibly interfere with your development."
+msgstr ""
+
+#. type: section
+#: guix-git/doc/guix-cookbook.texi:4256
+#, no-wrap
+msgid "Level 1: Building with Guix"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4263
+msgid "Now that we have a package definition (@pxref{Getting Started}), why not also take advantage of it so we can build Guile with Guix? We had left the @code{source} field empty, because @command{guix shell} above only cares about the @emph{inputs} of our package---so it can set up the development environment---not about the package itself."
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4266
+msgid "To build the package with Guix, we'll need to fill out the @code{source} field, along these lines:"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4271
+#, fuzzy, no-wrap
+#| msgid ""
+#| "(use-modules (guix packages)\n"
+#| " (guix download)\n"
+#| " (guix build-system gnu)\n"
+#| " (guix licenses))\n"
+#| "\n"
+msgid ""
+"(use-modules (guix)\n"
+" (guix git-download) ;for ‘git-predicate’\n"
+" @dots{})\n"
+"\n"
+msgstr ""
+"(use-modules (guix packages)\n"
+" (guix download)\n"
+" (guix build-system gnu)\n"
+" (guix licenses))\n"
+"\n"
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4276
+#, no-wrap
+msgid ""
+"(define vcs-file?\n"
+" ;; Return true if the given file is under version control.\n"
+" (or (git-predicate (current-source-directory))\n"
+" (const #t))) ;not in a Git checkout\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4284
+#, no-wrap
+msgid ""
+"(package\n"
+" (name \"guile\")\n"
+" (version \"3.0.99-git\") ;funky version number\n"
+" (source (local-file \".\" \"guile-checkout\"\n"
+" #:recursive? #t\n"
+" #:select? vcs-file?))\n"
+" @dots{})\n"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4287
+msgid "Here's what we changed compared to the previous section:"
+msgstr ""
+
+#. type: enumerate
+#: guix-git/doc/guix-cookbook.texi:4292
+msgid "We added @code{(guix git-download)} to our set of imported modules, so we can use its @code{git-predicate} procedure."
+msgstr ""
+
+#. type: enumerate
+#: guix-git/doc/guix-cookbook.texi:4296
+msgid "We defined @code{vcs-file?} as a procedure that returns true when passed a file that is under version control. For good measure, we add a fallback case for when we're not in a Git checkout: always return true."
+msgstr ""
+
+#. type: enumerate
+#: guix-git/doc/guix-cookbook.texi:4301
+msgid "We set @code{source} to a @uref{https://guix.gnu.org/manual/devel/en/html_node/G_002dExpressions.html#index-local_002dfile,@code{local-file}}---a recursive copy of the current directory (@code{\".\"}), limited to files under version control (the @code{#:select?} bit)."
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4308
+msgid "From there on, our @file{guix.scm} file serves a second purpose: it lets us build the software with Guix. The whole point of building with Guix is that it's a ``clean'' build---you can be sure nothing from your working tree or system interferes with the build result---and it lets you test a variety of things. First, you can do a plain native build:"
+msgstr ""
+
+#. type: example
+#: guix-git/doc/guix-cookbook.texi:4311
+#, no-wrap
+msgid "guix build -f guix.scm\n"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4318
+msgid "But you can also build for another system (possibly after setting up @pxref{Daemon Offload Setup, offloading,, guix, GNU Guix Reference Manual} or @pxref{Virtualization Services, transparent emulation,, guix, GNU Guix Reference Manual}):"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4321
+#, no-wrap
+msgid "guix build -f guix.scm -s aarch64-linux -s riscv64-linux\n"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4325
+msgid "@dots{} or cross-compile:"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4328
+#, no-wrap
+msgid "guix build -f guix.scm --target=x86_64-w64-mingw32\n"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4332
+msgid "You can also use @dfn{package transformations} to test package variants (@pxref{Package Transformations,,, guix, GNU Guix Reference Manual}):"
+msgstr ""
+
+#. type: example
+#: guix-git/doc/guix-cookbook.texi:4337
+#, no-wrap
+msgid ""
+"# What if we built with Clang instead of GCC?\n"
+"guix build -f guix.scm \\\n"
+" --with-c-toolchain=guile@@3.0.99-git=clang-toolchain\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: guix-git/doc/guix-cookbook.texi:4341
+#, no-wrap
+msgid ""
+"# What about that under-tested configure flag?\n"
+"guix build -f guix.scm \\\n"
+" --with-configure-flag=guile@@3.0.99-git=--disable-networking\n"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4344
+msgid "Handy!"
+msgstr ""
+
+#. type: section
+#: guix-git/doc/guix-cookbook.texi:4346
+#, no-wrap
+msgid "Level 2: The Repository as a Channel"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4353
+msgid "We now have a Git repository containing (among other things) a package definition (@pxref{Building with Guix}). Can't we turn it into a @dfn{channel} (@pxref{Channels,,, guix, GNU Guix Reference Manual})? After all, channels are designed to ship package definitions to users, and that's exactly what we're doing with our @file{guix.scm}."
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4360
+msgid "Turns out we can indeed turn it into a channel, but with one caveat: we must create a separate directory for the @code{.scm} file(s) of our channel so that @command{guix pull} doesn't load unrelated @code{.scm} files when someone pulls the channel---and in Guile, there are lots of them! So we'll start like this, keeping a top-level @file{guix.scm} symlink for the sake of @command{guix shell}:"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4365
+#, no-wrap
+msgid ""
+"mkdir -p .guix/modules\n"
+"mv guix.scm .guix/modules/guile-package.scm\n"
+"ln -s .guix/modules/guile-package.scm guix.scm\n"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4376
+msgid "To make it usable as part of a channel, we need to turn our @file{guix.scm} file into a @dfn{package module} (@pxref{Package Modules,,, guix, GNU Guix Reference Manual}): we do that by changing the @code{use-modules} form at the top to a @code{define-module} form. We also need to actually @emph{export} a package variable, with @code{define-public}, while still returning the package value at the end of the file so we can still use @command{guix shell} and @command{guix build -f guix.scm}. The end result looks like this (not repeating things that haven't changed):"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4382
+#, no-wrap
+msgid ""
+"(define-module (guile-package)\n"
+" #:use-module (guix)\n"
+" #:use-module (guix git-download) ;for ‘git-predicate’\n"
+" @dots{})\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4387
+#, no-wrap
+msgid ""
+"(define vcs-file?\n"
+" ;; Return true if the given file is under version control.\n"
+" (or (git-predicate (dirname (dirname (current-source-directory))))\n"
+" (const #t))) ;not in a Git checkout\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4396
+#, no-wrap
+msgid ""
+"(define-public guile\n"
+" (package\n"
+" (name \"guile\")\n"
+" (version \"3.0.99-git\") ;funky version number\n"
+" (source (local-file \"../..\" \"guile-checkout\"\n"
+" #:recursive? #t\n"
+" #:select? vcs-file?))\n"
+" @dots{}))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4399
+#, no-wrap
+msgid ""
+";; Return the package object define above at the end of the module.\n"
+"guile\n"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4404
+msgid "We need one last thing: a @uref{https://guix.gnu.org/manual/devel/en/html_node/Package-Modules-in-a-Sub_002ddirectory.html,@code{.guix-channel} file} so Guix knows where to look for package modules in our repository:"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4407
+#, no-wrap
+msgid ""
+";; This file lets us present this repo as a Guix channel.\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4411
+#, no-wrap
+msgid ""
+"(channel\n"
+" (version 0)\n"
+" (directory \".guix/modules\")) ;look for package modules under .guix/modules/\n"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4414
+msgid "To recap, we now have these files:"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4422
+#, no-wrap
+msgid ""
+".\n"
+"├── .guix-channel\n"
+"├── guix.scm → .guix/modules/guile-package.scm\n"
+"└── .guix\n"
+"    └── modules\n"
+"       └── guile-package.scm\n"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4431
+msgid "And that's it: we have a channel! (We could do better and support @uref{https://guix.gnu.org/manual/devel/en/html_node/Specifying-Channel-Authorizations.html,@emph{channel authentication}} so users know they're pulling genuine code. We'll spare you the details here but it's worth considering!) Users can pull from this channel by @uref{https://guix.gnu.org/manual/devel/en/html_node/Specifying-Additional-Channels.html,adding it to @code{~/.config/guix/channels.scm}}, along these lines:"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4438
+#, fuzzy, no-wrap
+#| msgid ""
+#| "(append (list (channel\n"
+#| " (name 'my-channel)\n"
+#| " (url (string-append \"file://\" (getenv \"HOME\")\n"
+#| " \"/my-channel\"))))\n"
+#| " %default-channels)\n"
+msgid ""
+"(append (list (channel\n"
+" (name 'guile)\n"
+" (url \"https://git.savannah.gnu.org/git/guile.git\")\n"
+" (branch \"main\")))\n"
+" %default-channels)\n"
+msgstr ""
+"(append (list (channel\n"
+" (name 'mon-canal)\n"
+" (url (string-append \"file://\" (getenv \"HOME\")\n"
+" \"/mon-canal\"))))\n"
+" %default-channels)\n"
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4441
+msgid "After running @command{guix pull}, we can see the new package:"
+msgstr ""
+
+#. type: example
+#: guix-git/doc/guix-cookbook.texi:4463
+#, no-wrap
+msgid ""
+"$ guix describe\n"
+"Generation 264 May 26 2023 16:00:35 (current)\n"
+" guile 36fd2b4\n"
+" repository URL: https://git.savannah.gnu.org/git/guile.git\n"
+" branch: main\n"
+" commit: 36fd2b4920ae926c79b936c29e739e71a6dff2bc\n"
+" guix c5bc698\n"
+" repository URL: https://git.savannah.gnu.org/git/guix.git\n"
+" commit: c5bc698e8922d78ed85989985cc2ceb034de2f23\n"
+"$ guix package -A ^guile$\n"
+"guile 3.0.99-git out,debug guile-package.scm:51:4\n"
+"guile 3.0.9 out,debug gnu/packages/guile.scm:317:2\n"
+"guile 2.2.7 out,debug gnu/packages/guile.scm:258:2\n"
+"guile 2.2.4 out,debug gnu/packages/guile.scm:304:2\n"
+"guile 2.0.14 out,debug gnu/packages/guile.scm:148:2\n"
+"guile 1.8.8 out gnu/packages/guile.scm:77:2\n"
+"$ guix build guile@@3.0.99-git\n"
+"[@dots{}]\n"
+"/gnu/store/axnzbl89yz7ld78bmx72vpqp802dwsar-guile-3.0.99-git-debug\n"
+"/gnu/store/r34gsij7f0glg2fbakcmmk0zn4v62s5w-guile-3.0.99-git\n"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4468
+msgid "That's how, as a developer, you get your software delivered directly into the hands of users! No intermediaries, yet no loss of transparency and provenance tracking."
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4472
+msgid "With that in place, it also becomes trivial for anyone to create Docker images, Deb/RPM packages, or a plain tarball with @command{guix pack} (@pxref{Invoking guix pack,,, guix, GNU Guix Reference Manual}):"
+msgstr ""
+
+#. type: example
+#: guix-git/doc/guix-cookbook.texi:4476
+#, no-wrap
+msgid ""
+"# How about a Docker image of our Guile snapshot?\n"
+"guix pack -f docker -S /bin=bin guile@@3.0.99-git\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: guix-git/doc/guix-cookbook.texi:4479
+#, no-wrap
+msgid ""
+"# And a relocatable RPM?\n"
+"guix pack -f rpm -R -S /bin=bin guile@@3.0.99-git\n"
+msgstr ""
+
+#. type: section
+#: guix-git/doc/guix-cookbook.texi:4482
+#, no-wrap
+msgid "Bonus: Package Variants"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4490
+msgid "We now have an actual channel, but it contains only one package (@pxref{The Repository as a Channel}). While we're at it, we can define @dfn{package variants} (@pxref{Defining Package Variants,,, guix, GNU Guix Reference Manual}) in our @file{guile-package.scm} file, variants that we want to be able to test as Guile developers---similar to what we did above with transformation options. We can add them like so:"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4493
+#, no-wrap
+msgid ""
+";; This is the ‘.guix/modules/guile-package.scm’ file.\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4496
+#, fuzzy, no-wrap
+#| msgid ""
+#| "(use-modules (gnu))\n"
+#| "(use-package-modules fonts wm)\n"
+#| "\n"
+msgid ""
+"(define-module (guile-package)\n"
+" @dots{})\n"
+"\n"
+msgstr ""
+"(use-modules (gnu))\n"
+"(use-package-modules fonts wm)\n"
+"\n"
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4499
+#, no-wrap
+msgid ""
+"(define-public guile\n"
+" @dots{})\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4507
+#, no-wrap
+msgid ""
+"(define (package-with-configure-flags p flags)\n"
+" \"Return P with FLAGS as additional 'configure' flags.\"\n"
+" (package/inherit p\n"
+" (arguments\n"
+" (substitute-keyword-arguments (package-arguments p)\n"
+" ((#:configure-flags original-flags #~(list))\n"
+" #~(append #$original-flags #$flags))))))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4513
+#, no-wrap
+msgid ""
+"(define-public guile-without-threads\n"
+" (package\n"
+" (inherit (package-with-configure-flags guile\n"
+" #~(list \"--without-threads\")))\n"
+" (name \"guile-without-threads\")))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4519
+#, no-wrap
+msgid ""
+"(define-public guile-without-networking\n"
+" (package\n"
+" (inherit (package-with-configure-flags guile\n"
+" #~(list \"--disable-networking\")))\n"
+" (name \"guile-without-networking\")))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4523
+#, no-wrap
+msgid ""
+";; Return the package object defined above at the end of the module.\n"
+"guile\n"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4528
+msgid "We can build these variants as regular packages once we've pulled the channel. Alternatively, from a checkout of Guile, we can run a command like this one from the top level:"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4531
+#, no-wrap
+msgid "guix build -L $PWD/.guix/modules guile-without-threads\n"
+msgstr ""
+
+#. type: section
+#: guix-git/doc/guix-cookbook.texi:4534
+#, no-wrap
+msgid "Level 3: Setting Up Continuous Integration"
+msgstr ""
+
+#. type: cindex
+#: guix-git/doc/guix-cookbook.texi:4536
+#, no-wrap
+msgid "continuous integration (CI)"
+msgstr "intégration continue (CI)"
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4541
+msgid "The channel we defined above (@pxref{The Repository as a Channel}) becomes even more interesting once we set up @uref{https://en.wikipedia.org/wiki/Continuous_integration, @dfn{continuous integration}} (CI). There are several ways to do that."
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4547
+msgid "You can use one of the mainstream continuous integration tools, such as GitLab-CI. To do that, you need to make sure you run jobs in a Docker image or virtual machine that has Guix installed. If we were to do that in the case of Guile, we'd have a job that runs a shell command like this one:"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4550
+#, no-wrap
+msgid "guix build -L $PWD/.guix/modules guile@@3.0.99-git\n"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4554
+msgid "Doing this works great and has the advantage of being easy to achieve on your favorite CI platform."
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4563
+msgid "That said, you'll really get the most of it by using @uref{https://guix.gnu.org/en/cuirass,Cuirass}, a CI tool designed for and tightly integrated with Guix. Using it is more work than using a hosted CI tool because you first need to set it up, but that setup phase is greatly simplified if you use its Guix System service (@pxref{Continuous Integration,,, guix, GNU Guix Reference Manual}). Going back to our example, we give Cuirass a spec file that goes like this:"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4575
+#, no-wrap
+msgid ""
+";; Cuirass spec file to build all the packages of the ‘guile’ channel.\n"
+"(list (specification\n"
+" (name \"guile\")\n"
+" (build '(channels guile))\n"
+" (channels\n"
+" (append (list (channel\n"
+" (name 'guile)\n"
+" (url \"https://git.savannah.gnu.org/git/guile.git\")\n"
+" (branch \"main\")))\n"
+" %default-channels))))\n"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4578
+msgid "It differs from what you'd do with other CI tools in two important ways:"
+msgstr ""
+
+#. type: itemize
+#: guix-git/doc/guix-cookbook.texi:4587
+msgid "Cuirass knows it's tracking @emph{two} channels, @code{guile} and @code{guix}. Indeed, our own @code{guile} package depends on many packages provided by the @code{guix} channel---GCC, the GNU libc, libffi, and so on. Changes to packages from the @code{guix} channel can potentially influence our @code{guile} build and this is something we'd like to see as soon as possible as Guile developers."
+msgstr ""
+
+#. type: itemize
+#: guix-git/doc/guix-cookbook.texi:4592
+msgid "Build results are not thrown away: they can be distributed as @dfn{substitutes} so that users of our @code{guile} channel transparently get pre-built binaries! (@pxref{Substitutes,,, guix, GNU Guix Reference Manual}, for background info on substitutes.)"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4600
+msgid "From a developer's viewpoint, the end result is this @uref{https://ci.guix.gnu.org/jobset/guile,status page} listing @emph{evaluations}: each evaluation is a combination of commits of the @code{guix} and @code{guile} channels providing a number of @emph{jobs}---one job per package defined in @file{guile-package.scm} times the number of target architectures."
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4607
+msgid "As for substitutes, they come for free! As an example, since our @code{guile} jobset is built on ci.guix.gnu.org, which runs @command{guix publish} (@pxref{Invoking guix publish,,, guix, GNU Guix Reference Manual}) in addition to Cuirass, one automatically gets substitutes for @code{guile} builds from ci.guix.gnu.org; no additional work is needed for that."
+msgstr ""
+
+#. type: section
+#: guix-git/doc/guix-cookbook.texi:4609
+#, no-wrap
+msgid "Bonus: Build manifest"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4616
+msgid "The Cuirass spec above is convenient: it builds every package in our channel, which includes a few variants (@pxref{Setting Up Continuous Integration}). However, this might be insufficiently expressive in some cases: one might want specific cross-compilation jobs, transformations, Docker images, RPM/Deb packages, or even system tests."
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4621
+msgid "To achieve that, you can write a @dfn{manifest} (@pxref{Writing Manifests,,, guix, GNU Guix Reference Manual}). The one we have for Guile has entries for the package variants we defined above, as well as additional variants and cross builds:"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4624
+#, no-wrap
+msgid ""
+";; This is ‘.guix/manifest.scm’.\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4628
+#, fuzzy, no-wrap
+#| msgid ""
+#| "(use-modules (guix gexp) ;so we can write gexps\n"
+#| " (gnu packages base)) ;for 'coreutils'\n"
+#| "\n"
+msgid ""
+"(use-modules (guix)\n"
+" (guix profiles)\n"
+" (guile-package)) ;import our own package module\n"
+"\n"
+msgstr ""
+"(use-modules (guix gexp) ;pour qu'on puisse écrire des gexps\n"
+" (gnu packages base)) ;pour « coreutils »\n"
+"\n"
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4642
+#, no-wrap
+msgid ""
+"(define* (package->manifest-entry* package system\n"
+" #:key target)\n"
+" \"Return a manifest entry for PACKAGE on SYSTEM, optionally cross-compiled to\n"
+"TARGET.\"\n"
+" (manifest-entry\n"
+" (inherit (package->manifest-entry package))\n"
+" (name (string-append (package-name package) \".\" system\n"
+" (if target\n"
+" (string-append \".\" target)\n"
+" \"\")))\n"
+" (item (with-parameters ((%current-system system)\n"
+" (%current-target-system target))\n"
+" package))))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4647
+#, no-wrap
+msgid ""
+"(define native-builds\n"
+" (manifest\n"
+" (append (map (lambda (system)\n"
+" (package->manifest-entry* guile system))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4664
+#, no-wrap
+msgid ""
+" '(\"x86_64-linux\" \"i686-linux\"\n"
+" \"aarch64-linux\" \"armhf-linux\"\n"
+" \"powerpc64le-linux\"))\n"
+" (map (lambda (guile)\n"
+" (package->manifest-entry* guile \"x86_64-linux\"))\n"
+" (cons (package\n"
+" (inherit (package-with-c-toolchain\n"
+" guile\n"
+" `((\"clang-toolchain\"\n"
+" ,(specification->package\n"
+" \"clang-toolchain\")))))\n"
+" (name \"guile-clang\"))\n"
+" (list guile-without-threads\n"
+" guile-without-networking\n"
+" guile-debug\n"
+" guile-strict-typing))))))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4675
+#, no-wrap
+msgid ""
+"(define cross-builds\n"
+" (manifest\n"
+" (map (lambda (target)\n"
+" (package->manifest-entry* guile \"x86_64-linux\"\n"
+" #:target target))\n"
+" '(\"i586-pc-gnu\"\n"
+" \"aarch64-linux-gnu\"\n"
+" \"riscv64-linux-gnu\"\n"
+" \"i686-w64-mingw32\"\n"
+" \"x86_64-linux-gnu\"))))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4677
+#, no-wrap
+msgid "(concatenate-manifests (list native-builds cross-builds))\n"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4683
+msgid "We won't go into the details of this manifest; suffice to say that it provides additional flexibility. We now need to tell Cuirass to build this manifest, which is done with a spec slightly different from the previous one:"
+msgstr ""
+
+#. type: lisp
+#: guix-git/doc/guix-cookbook.texi:4695
+#, no-wrap
+msgid ""
+";; Cuirass spec file to build all the packages of the ‘guile’ channel.\n"
+"(list (specification\n"
+" (name \"guile\")\n"
+" (build '(manifest \".guix/manifest.scm\"))\n"
+" (channels\n"
+" (append (list (channel\n"
+" (name 'guile)\n"
+" (url \"https://git.savannah.gnu.org/git/guile.git\")\n"
+" (branch \"main\")))\n"
+" %default-channels))))\n"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4700
+msgid "We changed the @code{(build @dots{})} part of the spec to @code{'(manifest \".guix/manifest.scm\")} so that it would pick our manifest, and that's it!"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4706
+msgid "We picked Guile as the running example in this chapter and you can see the result here:"
+msgstr ""
+
+#. type: itemize
+#: guix-git/doc/guix-cookbook.texi:4710
+msgid "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix-channel?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix-channel}};"
+msgstr ""
+
+#. type: itemize
+#: guix-git/doc/guix-cookbook.texi:4713
+msgid "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix/modules/guile-package.scm?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix/modules/guile-package.scm}} with the top-level @file{guix.scm} symlink;"
+msgstr ""
+
+#. type: itemize
+#: guix-git/doc/guix-cookbook.texi:4715
+msgid "@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix/manifest.scm?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix/manifest.scm}}."
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4724
+msgid "These days, repositories are commonly peppered with dot files for various tools: @code{.envrc}, @code{.gitlab-ci.yml}, @code{.github/workflows}, @code{Dockerfile}, @code{.buildpacks}, @code{Aptfile}, @code{requirements.txt}, and whatnot. It may sound like we're proposing a bunch of @emph{additional} files, but in fact those files are expressive enough to @emph{supersede} most or all of those listed above."
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4726
+msgid "With a couple of files, we get support for:"
+msgstr ""
+
+#. type: itemize
+#: guix-git/doc/guix-cookbook.texi:4730
+msgid "development environments (@command{guix shell});"
+msgstr ""
+
+#. type: itemize
+#: guix-git/doc/guix-cookbook.texi:4733
+msgid "pristine test builds, including for package variants and for cross-compilation (@command{guix build});"
+msgstr ""
+
+#. type: itemize
+#: guix-git/doc/guix-cookbook.texi:4735
+msgid "continuous integration (with Cuirass or with some other tool);"
+msgstr ""
+
+#. type: itemize
+#: guix-git/doc/guix-cookbook.texi:4738
+msgid "continuous delivery to users (@emph{via} the channel and with pre-built binaries);"
+msgstr ""
+
+#. type: itemize
+#: guix-git/doc/guix-cookbook.texi:4741
+msgid "generation of derivative build artifacts such as Docker images or Deb/RPM packages (@command{guix pack})."
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4746
+msgid "This a nice (in our view!) unified tool set for reproducible software deployment, and an illustration of how you as a developer can benefit from it!"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/guix-cookbook.texi:4754
msgid "Guix provides multiple tools to manage environment. This chapter demonstrate such utilities."
msgstr "Guix fournit plusieurs outils pour gérer l'environnement. Ce chapitre vous montre ces outils."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4119
+#: guix-git/doc/guix-cookbook.texi:4765
msgid "Guix provides a @samp{direnv} package, which could extend shell after directory change. This tool could be used to prepare a pure Guix environment."
msgstr "Guix fournit un paquet @samp{direnv}, qui peut étendre le shell après avoir changé de répertoire de travail. Vous pouvez utiliser cet outil pour préparer un environnement Guix pur."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4125
+#: guix-git/doc/guix-cookbook.texi:4771
msgid "The following example provides a shell function for @file{~/.direnvrc} file, which could be used from Guix Git repository in @file{~/src/guix/.envrc} file to setup a build environment similar to described in @pxref{Building from Git,,, guix, GNU Guix Reference Manual}."
msgstr "L'exemple suivant fournit une fonction shell dans @file{~/.direnvrc}, qui peut être utilisée dans le dépôt Git de Guix dans @file{~/src/guix/.envrc} pour créer un environnement de construction similaire à celui décrit dans @ref{Construire depuis Git,,, guix.fr, le manuel de référence de GNU Guix}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4127
+#: guix-git/doc/guix-cookbook.texi:4773
msgid "Create a @file{~/.direnvrc} with a Bash code:"
msgstr "Créez un fichier @file{~/.direnv} avec le code Bash suivant :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4145
+#: guix-git/doc/guix-cookbook.texi:4791
#, no-wrap
msgid ""
"# Thanks <https://github.com/direnv/direnv/issues/73#issuecomment-152284914>\n"
@@ -7426,7 +8414,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4150
+#: guix-git/doc/guix-cookbook.texi:4796
#, no-wrap
msgid ""
"use_guix()\n"
@@ -7442,7 +8430,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4153
+#: guix-git/doc/guix-cookbook.texi:4799
#, no-wrap
msgid ""
" # Unset 'GUIX_PACKAGE_PATH'.\n"
@@ -7454,7 +8442,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4162
+#: guix-git/doc/guix-cookbook.texi:4808
#, no-wrap
msgid ""
" # Recreate a garbage collector root.\n"
@@ -7478,7 +8466,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4177
+#: guix-git/doc/guix-cookbook.texi:4823
#, no-wrap
msgid ""
" # Miscellaneous packages.\n"
@@ -7514,7 +8502,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4180
+#: guix-git/doc/guix-cookbook.texi:4826
#, no-wrap
msgid ""
" # Environment packages.\n"
@@ -7526,7 +8514,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4183
+#: guix-git/doc/guix-cookbook.texi:4829
#, no-wrap
msgid ""
" # Thanks <https://lists.gnu.org/archive/html/guix-devel/2016-09/msg00859.html>\n"
@@ -7538,7 +8526,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4190
+#: guix-git/doc/guix-cookbook.texi:4836
#, no-wrap
msgid ""
" # Predefine configure flags.\n"
@@ -7558,7 +8546,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4201
+#: guix-git/doc/guix-cookbook.texi:4847
#, no-wrap
msgid ""
" # Run make and optionally build something.\n"
@@ -7586,7 +8574,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4208
+#: guix-git/doc/guix-cookbook.texi:4854
#, no-wrap
msgid ""
" # Predefine push Git command.\n"
@@ -7606,7 +8594,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4211
+#: guix-git/doc/guix-cookbook.texi:4857
#, no-wrap
msgid ""
" clear # Clean up the screen.\n"
@@ -7618,7 +8606,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4219
+#: guix-git/doc/guix-cookbook.texi:4865
#, no-wrap
msgid ""
" # Show commands help.\n"
@@ -7638,81 +8626,81 @@ msgstr ""
"@}\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4223
+#: guix-git/doc/guix-cookbook.texi:4869
msgid "Every project containing @file{.envrc} with a string @code{use guix} will have predefined environment variables and procedures."
msgstr "Tous les projets contenant un @file{.envrc} avec une chaine @code{use guix} aura des variables d'environnement et des procédures prédéfinies."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4225
+#: guix-git/doc/guix-cookbook.texi:4871
msgid "Run @command{direnv allow} to setup the environment for the first time."
msgstr "Lancez @command{direnv allow} pour mettre en place l'environnement pour la première fois."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:4231
+#: guix-git/doc/guix-cookbook.texi:4877
#, no-wrap
msgid "cluster installation"
msgstr "installation d'une grappe de calcul"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:4232
+#: guix-git/doc/guix-cookbook.texi:4878
#, no-wrap
msgid "high-performance computing, HPC"
msgstr "calcul haute-performance, HPC"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:4233
+#: guix-git/doc/guix-cookbook.texi:4879
#, no-wrap
msgid "HPC, high-performance computing"
msgstr "HPC, calcul haute-performance"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4239
+#: guix-git/doc/guix-cookbook.texi:4885
msgid "Guix is appealing to scientists and @acronym{HPC, high-performance computing} practitioners: it makes it easy to deploy potentially complex software stacks, and it lets you do so in a reproducible fashion---you can redeploy the exact same software on different machines and at different points in time."
msgstr "Guix est intéressant pour les scientifiques et les professionnels du @acronym{HPC, calcul haute-performance}. Il facilite en effet le déploiement de piles logicielles complexes et vous permet de le faire de manière reproductible — vous pouvez redéployer exactement le même logiciel sur des machines différentes et à des moments différents."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4245
+#: guix-git/doc/guix-cookbook.texi:4891
msgid "In this chapter we look at how a cluster sysadmin can install Guix for system-wide use, such that it can be used on all the cluster nodes, and discuss the various tradeoffs@footnote{This chapter is adapted from a @uref{https://hpc.guix.info/blog/2017/11/installing-guix-on-a-cluster/, blog post published on the Guix-HPC web site in 2017}.}."
msgstr "Dans ce chapitre nous allons voir comment l'administrateur·ice système d'une grappe peut installer Guix sur le système, de sorte qu'il puisse être utilisé sur tous les nœuds de la grappe, et nous discuterons de différents compromis possibles@footnote{Ce chapitre est adapté d'un @uref{https://hpc.guix.info/blog/2017/11/installing-guix-on-a-cluster/, billet de blog publié sur le site web de Guix-HPC en 2017}.}."
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:4249
+#: guix-git/doc/guix-cookbook.texi:4895
msgid "Here we assume that the cluster is running a GNU/Linux distro other than Guix System and that we are going to install Guix on top of it."
msgstr "Nous supposons ici que la grappe utilise une distribution GNU/Linux autre que le Système Guix et que nous allons installer Guix par-dessus."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4265
+#: guix-git/doc/guix-cookbook.texi:4911
msgid "The recommended approach is to set up one @emph{head node} running @command{guix-daemon} and exporting @file{/gnu/store} over NFS to compute nodes."
msgstr "L'approche recommandée est d'installer un @emph{nœud principal} qui exécuterait @command{guix-daemon} et exporterait @file{/gnu/store} sur NFS vers les nœuds de calcul."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4275
+#: guix-git/doc/guix-cookbook.texi:4921
msgid "Remember that @command{guix-daemon} is responsible for spawning build processes and downloads on behalf of clients (@pxref{Invoking guix-daemon,,, guix, GNU Guix Reference Manual}), and more generally accessing @file{/gnu/store}, which contains all the package binaries built by all the users (@pxref{The Store,,, guix, GNU Guix Reference Manual}). ``Client'' here refers to all the Guix commands that users see, such as @code{guix install}. On a cluster, these commands may be running on the compute nodes and we'll want them to talk to the head node's @code{guix-daemon} instance."
msgstr "Rappelez-vous que @command{guix-daemon} est responsable du démarrage des constructions et des téléchargements pour ses clients (@pxref{Invoquer guix-daemon,,, guix'fr, le manuel de référence de GNU Guix}), et plus généralement de l'accès à @file{/gnu/store} qui contient tous les binaires des paquets construits par tous les utilisateur·ices (@pxref{Le dépôt,,, guix.fr, le manuel de référence de GNU Guix}). Les « clients » signifient toutes les commandes Guix que voient les utilisateurs et utilisatrices, comme @command{guix install}. Sur une grappe, ces commandes peuvent être lancées sur les nœuds de calcul et l'on souhaiterait qu'elles parlent au @code{guix-daemon} du nœud principal."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4280
+#: guix-git/doc/guix-cookbook.texi:4926
msgid "To begin with, the head node can be installed following the usual binary installation instructions (@pxref{Binary Installation,,, guix, GNU Guix Reference Manual}). Thanks to the installation script, this should be quick. Once installation is complete, we need to make some adjustments."
msgstr "Pour commencer, le nœud principal peut être installé suivant les instructions d'installation binaires habituelles (@pxref{Installation binaire,,, guix.fr, le manuel de référence de GNU Guix}). Grâce au script d'installation, cela devrait être rapide. Une fois l'installation terminée, nous devons faire quelques ajustements."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4288
+#: guix-git/doc/guix-cookbook.texi:4934
msgid "Since we want @code{guix-daemon} to be reachable not just from the head node but also from the compute nodes, we need to arrange so that it listens for connections over TCP/IP. To do that, we'll edit the systemd startup file for @command{guix-daemon}, @file{/etc/systemd/system/guix-daemon.service}, and add a @code{--listen} argument to the @code{ExecStart} line so that it looks something like this:"
msgstr "Comme nous voulons que @code{guix-daemon} soit joignable non seulement depuis le nœud principal, mais aussi depuis les nœuds de calcul, nous devons nous arranger pour qu'il se mette en écoute de connexions sur TCP/IP. Pour ce faire, nous allons modifier le fichier de démarrage systemd de @command{guix-daemon}, @file{/etc/systemd/system/guix-daemon.service}, et ajouter un argument @code{--listen} à la ligne @code{ExecStart} ur qu'elle ressemble à quelque chose comme :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4291
+#: guix-git/doc/guix-cookbook.texi:4937
#, no-wrap
msgid "ExecStart=/var/guix/profiles/per-user/root/current-guix/bin/guix-daemon --build-users-group=guixbuild --listen=/var/guix/daemon-socket/socket --listen=0.0.0.0\n"
msgstr "ExecStart=/var/guix/profiles/per-user/root/current-guix/bin/guix-daemon --build-users-group=guixbuild --listen=/var/guix/daemon-socket/socket --listen=0.0.0.0\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4294
+#: guix-git/doc/guix-cookbook.texi:4940
msgid "For these changes to take effect, the service needs to be restarted:"
msgstr "Pour que ces changements fassent effet, le service doit être redémarré :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4298
+#: guix-git/doc/guix-cookbook.texi:4944
#, no-wrap
msgid ""
"systemctl daemon-reload\n"
@@ -7722,17 +8710,17 @@ msgstr ""
"systemctl restart guix-daemon\n"
#. type: quotation
-#: guix-git/doc/guix-cookbook.texi:4307
+#: guix-git/doc/guix-cookbook.texi:4953
msgid "The @code{--listen=0.0.0.0} bit means that @code{guix-daemon} will process @emph{all} incoming TCP connections on port 44146 (@pxref{Invoking guix-daemon,,, guix, GNU Guix Reference Manual}). This is usually fine in a cluster setup where the head node is reachable exclusively from the cluster's local area network---you don't want that to be exposed to the Internet!"
msgstr "@code{--listen=0.0.0.0} indique que @code{guix-daemon} traitera @emph{toutes} les connexions TCP entrantes sur le port 44146 (@pxref{Invoquer guix-daemon,,, guix.fr, le manuel de référence de GNU Guix}). C'est généralement acceptable sur une grappe dont le nœud principal est exclusivement accessible à partir du réseau local de la grappe. Vous ne voulez pas l'exposer sur Internet !"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4312
+#: guix-git/doc/guix-cookbook.texi:4958
msgid "The next step is to define our NFS exports in @uref{https://linux.die.net/man/5/exports,@file{/etc/exports}} by adding something along these lines:"
msgstr "L'étape suivante consiste à définir nos exports NFS dans @uref{https://linux.die.net/man/5/exports,@file{/etc/exports}} en ajoutant quelque chose comme :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4317
+#: guix-git/doc/guix-cookbook.texi:4963
#, no-wrap
msgid ""
"/gnu/store *(ro)\n"
@@ -7744,33 +8732,33 @@ msgstr ""
"/var/log/guix *(ro)\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4324
+#: guix-git/doc/guix-cookbook.texi:4970
msgid "The @file{/gnu/store} directory can be exported read-only since only @command{guix-daemon} on the master node will ever modify it. @file{/var/guix} contains @emph{user profiles} as managed by @code{guix package}; thus, to allow users to install packages with @code{guix package}, this must be read-write."
msgstr "Le répertoire @file{/gnu/store} peut être exporté en lecture-seule car seul le @command{guix-daemon} du nœud principal le modifiera jamais. @file{/var/guix} contient les @emph{profils utilisateurs} gérés par @code{guix package}. Ainsi, pour permettre à tout le monde d'installer des paquets avec @code{guix package}, il doit être en lecture-écriture."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4334
+#: guix-git/doc/guix-cookbook.texi:4980
msgid "Users can create as many profiles as they like in addition to the default profile, @file{~/.guix-profile}. For instance, @code{guix package -p ~/dev/python-dev -i python} installs Python in a profile reachable from the @code{~/dev/python-dev} symlink. To make sure that this profile is protected from garbage collection---i.e., that Python will not be removed from @file{/gnu/store} while this profile exists---, @emph{home directories should be mounted on the head node} as well so that @code{guix-daemon} knows about these non-standard profiles and avoids collecting software they refer to."
msgstr "Les utilisateurs et utilisatrices peuvent créer autant de profils qu'ils et elles le souhaitent en plus du profil par défaut, @file{~/.guix-profile}. Par exemple, @code{guix package -p ~/dev/python-dev -i python} installe Python dans un profil accessible depuis le lien symbolique @code{~/dev/python-dev}. Pour vous assurer que ce profil est protégé contre le ramasse-miettes, c.-à-d.@: que Python ne sera pas supprimé de @file{/gnu/store} alors que le profil existe, @emph{les répertoires personnels devraient également être montés sur le nœud principal} pour que @code{guix-daemon} connaisse ces profils non standards et évite de supprimer les logiciels auxquels ils se réfèrent."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4339
+#: guix-git/doc/guix-cookbook.texi:4985
msgid "It may be a good idea to periodically remove unused bits from @file{/gnu/store} by running @command{guix gc} (@pxref{Invoking guix gc,,, guix, GNU Guix Reference Manual}). This can be done by adding a crontab entry on the head node:"
msgstr "Vous devriez régulièrement supprimer les paquets inutilisés de @file{/gnu/store} en exécutant @command{guix gc} (@pxref{Invoquer guix gc,,, guix.fr, le manuel de référence de GNU Guix}). Vous pouvez le faire en ajoutant une entrée à la crontab du nœud principal :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4342
+#: guix-git/doc/guix-cookbook.texi:4988
#, no-wrap
msgid "root@@master# crontab -e\n"
msgstr "root@@master# crontab -e\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4346
+#: guix-git/doc/guix-cookbook.texi:4992
msgid "... with something like this:"
msgstr "… avec quelque chose comme cela :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4351
+#: guix-git/doc/guix-cookbook.texi:4997
#, no-wrap
msgid ""
"# Every day at 5AM, run the garbage collector to make sure\n"
@@ -7782,17 +8770,17 @@ msgstr ""
"0 5 * * 1 /usr/local/bin/guix gc -F10G\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4354
+#: guix-git/doc/guix-cookbook.texi:5000
msgid "We're done with the head node! Let's look at compute nodes now."
msgstr "Nous en avons terminé avec le nœud principal ! Voyons maintenant les nœuds de calcul."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4361
+#: guix-git/doc/guix-cookbook.texi:5007
msgid "First of all, we need compute nodes to mount those NFS directories that the head node exports. This can be done by adding the following lines to @uref{https://linux.die.net/man/5/fstab,@file{/etc/fstab}}:"
msgstr "Tout d'abord, les nœuds de calcul doivent monter les répertoires NFS exportés par le nœud principal. Vous pouvez le faire en ajoutant les lignes suivantes à @uref{https://linux.die.net/man/5/fstab,@file{/etc/fstab}} :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4366
+#: guix-git/doc/guix-cookbook.texi:5012
#, no-wrap
msgid ""
"@var{head-node}:/gnu/store /gnu/store nfs defaults,_netdev,vers=3 0 0\n"
@@ -7804,17 +8792,17 @@ msgstr ""
"@var{head-node}:/var/log/guix /var/log/guix nfs defaults,_netdev,vers=3 0 0\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4372
+#: guix-git/doc/guix-cookbook.texi:5018
msgid "... where @var{head-node} is the name or IP address of your head node. From there on, assuming the mount points exist, you should be able to mount each of these on the compute nodes."
msgstr "… où @var{head-node} est le nom ou l'IP de votre nœud principal. À partir de là, en supposant que les points de montage existent, vous devriez pouvoir monter tous ces répertoires sur chaque nœud de calcul."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4378
+#: guix-git/doc/guix-cookbook.texi:5024
msgid "Next, we need to provide a default @command{guix} command that users can run when they first connect to the cluster (eventually they will invoke @command{guix pull}, which will provide them with their ``own'' @command{guix} command). Similar to what the binary installation script did on the head node, we'll store that in @file{/usr/local/bin}:"
msgstr "Ensuite, nous devons fournir une commande @command{guix} par défaut que les utilisateur·ices peuvent exécuter lors de leur première connexion à la grappe (ils et elles finiront par invoquer @command{guix pull}, qui leur fournira leur propre commande @command{guix}). Comme l'a fait le script d'installation sur le nœud principal, nous le stockons dans @file{/usr/local/bin} :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4383
+#: guix-git/doc/guix-cookbook.texi:5029
#, no-wrap
msgid ""
"mkdir -p /usr/local/bin\n"
@@ -7826,12 +8814,12 @@ msgstr ""
" /usr/local/bin/guix\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4387
+#: guix-git/doc/guix-cookbook.texi:5033
msgid "We then need to tell @code{guix} to talk to the daemon running on our master node, by adding these lines to @code{/etc/profile}:"
msgstr "Nous devons ensuite dire à @code{guix} de parler au démon qui s'exécute sur notre nœud principal, en ajoutant ces lignes à @code{/etc/profile} :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4391
+#: guix-git/doc/guix-cookbook.texi:5037
#, no-wrap
msgid ""
"GUIX_DAEMON_SOCKET=\"guix://@var{head-node}\"\n"
@@ -7841,12 +8829,12 @@ msgstr ""
"export GUIX_DAEMON_SOCKET\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4396
+#: guix-git/doc/guix-cookbook.texi:5042
msgid "To avoid warnings and make sure @code{guix} uses the right locale, we need to tell it to use locale data provided by Guix (@pxref{Application Setup,,, guix, GNU Guix Reference Manual}):"
msgstr "Pour éviter des avertissements et vous assurer que @code{guix} utilise le bon environnement linguistique, nous devons lui dire d'utiliser les données linguistiques fournies par Guix (@pxref{Application Setup,,, guix.fr, le manuel de référence de GNU Guix Reference Manual}) :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4400
+#: guix-git/doc/guix-cookbook.texi:5046
#, no-wrap
msgid ""
"GUIX_LOCPATH=/var/guix/profiles/per-user/root/guix-profile/lib/locale\n"
@@ -7858,7 +8846,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4405
+#: guix-git/doc/guix-cookbook.texi:5051
#, no-wrap
msgid ""
"# Here we must use a valid locale name. Try \"ls $GUIX_LOCPATH/*\"\n"
@@ -7872,12 +8860,12 @@ msgstr ""
"export LC_ALL\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4412
+#: guix-git/doc/guix-cookbook.texi:5058
msgid "For convenience, @code{guix package} automatically generates @file{~/.guix-profile/etc/profile}, which defines all the environment variables necessary to use the packages---@code{PATH}, @code{C_INCLUDE_PATH}, @code{PYTHONPATH}, etc. Thus it's a good idea to source it from @code{/etc/profile}:"
msgstr "Pour votre confort, @code{guix package} génère automatiquement @file{~/.guix-profile/etc/profile}, qui définit toutes les variables d'environnement nécessaires pour utiliser les paquets : @code{PATH}, @code{C_INCLUDE_PATH}, @code{PYTHONPATH}, etc. Ainsi, il vaut mieux le sourcer à partir de @code{/etc/profile} :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4418
+#: guix-git/doc/guix-cookbook.texi:5064
#, no-wrap
msgid ""
"GUIX_PROFILE=\"$HOME/.guix-profile\"\n"
@@ -7891,65 +8879,65 @@ msgstr ""
"fi\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4422
+#: guix-git/doc/guix-cookbook.texi:5068
msgid "Last but not least, Guix provides command-line completion notably for Bash and zsh. In @code{/etc/bashrc}, consider adding this line:"
msgstr "Enfin, Guix propose la complétion des commandes notamment pour Bash et zsh. Dans @code{/etc/bashrc}, pensez à ajouter cette ligne :"
#. type: verbatim
-#: guix-git/doc/guix-cookbook.texi:4425
+#: guix-git/doc/guix-cookbook.texi:5071
#, no-wrap
msgid ". /var/guix/profiles/per-user/root/current-guix/etc/bash_completion.d/guix\n"
msgstr ". /var/guix/profiles/per-user/root/current-guix/etc/bash_completion.d/guix\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4428
+#: guix-git/doc/guix-cookbook.texi:5074
msgid "Voilà!"
msgstr "Et voilà !"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4431
+#: guix-git/doc/guix-cookbook.texi:5077
msgid "You can check that everything's in place by logging in on a compute node and running:"
msgstr "Vous pouvez vérifier que tout est en place en vous connectant à un nœud de calcul et en exécutant :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4434
+#: guix-git/doc/guix-cookbook.texi:5080
#, no-wrap
msgid "guix install hello\n"
msgstr "guix install hello\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4440
+#: guix-git/doc/guix-cookbook.texi:5086
msgid "The daemon on the head node should download pre-built binaries on your behalf and unpack them in @file{/gnu/store}, and @command{guix install} should create @file{~/.guix-profile} containing the @file{~/.guix-profile/bin/hello} command."
msgstr "Le démon sur le nœud principal devrait télécharger les binaires préconstruits pour vous et les déballer dans @file{/gnu/store} et @command{guix install} devrait créer un @file{~/.guix-profile} contenant la commande @file{~/.guix-profile/bin/hello}."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:4442
+#: guix-git/doc/guix-cookbook.texi:5088
#, no-wrap
msgid "Network Access"
msgstr "Accès réseau"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4447
+#: guix-git/doc/guix-cookbook.texi:5093
msgid "Guix requires network access to download source code and pre-built binaries. The good news is that only the head node needs that since compute nodes simply delegate to it."
msgstr "Guix a besoin d'un accès réseau pour télécharger le code source et les binaires préconstruits. La bonne nouvelle, c'est que seul le nœud principal en a besoin car les nœuds de calcul lui délèguent cette tâche."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4453
+#: guix-git/doc/guix-cookbook.texi:5099
msgid "It is customary for cluster nodes to have access at best to a @emph{white list} of hosts. Our head node needs at least @code{ci.guix.gnu.org} in this white list since this is where it gets pre-built binaries from by default, for all the packages that are in Guix proper."
msgstr "Les nœuds d'une grappe ont traditionnellement accès au mieux à une liste blanche d'hôtes. Notre nœud principal a besoin au minimum que @code{ci.guix.gnu.org} soit dans cette liste car c'est là qu'il récupère les binaires préconstruits par défaut, pour tous les paquets dans Guix lui-même."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4458
+#: guix-git/doc/guix-cookbook.texi:5104
msgid "Incidentally, @code{ci.guix.gnu.org} also serves as a @emph{content-addressed mirror} of the source code of those packages. Consequently, it is sufficient to have @emph{only} @code{ci.guix.gnu.org} in that white list."
msgstr "Au passage, @code{ci.guix.gnu.org} sert également de @emph{miroir addressé par le contenu} du code source de ces paquets. En conséquence, il suffit d'avoir @emph{uniquement} @code{ci.guix.gnu.org} dans cette liste blanche."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4467
+#: guix-git/doc/guix-cookbook.texi:5113
msgid "Software packages maintained in a separate repository such as one of the various @uref{https://hpc.guix.info/channels, HPC channels} are of course unavailable from @code{ci.guix.gnu.org}. For these packages, you may want to extend the white list such that source and pre-built binaries (assuming this-party servers provide binaries for these packages) can be downloaded. As a last resort, users can always download source on their workstation and add it to the cluster's @file{/gnu/store}, like this:"
msgstr "Les paquets logiciels maintenus dans un dépôt séparé comme ceux des divers @uref{https://hpc.guix.info/channels, canaux HPC} ne sont bien sur pas disponibles sur @code{ci.guix.gnu.org}. Pour ces paquets, vous devriez étendre la liste blanche pour que les sources et les binaires préconstruits (en supposant que des serveurs tiers fournissent des binaires pour ces paquets) puissent être téléchargés. En dernier recours, les utilisateur·ices peuvent toujours télécharger les sources sur leur machine de travail et les ajouter au @file{/gnu/store} de la grappe, de cette manière :"
#. type: verbatim
-#: guix-git/doc/guix-cookbook.texi:4471
+#: guix-git/doc/guix-cookbook.texi:5117
#, no-wrap
msgid ""
"GUIX_DAEMON_SOCKET=ssh://compute-node.example.org \\\n"
@@ -7959,17 +8947,17 @@ msgstr ""
" guix download http://starpu.gforge.inria.fr/files/starpu-1.2.3/starpu-1.2.3.tar.gz\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4475
+#: guix-git/doc/guix-cookbook.texi:5121
msgid "The above command downloads @code{starpu-1.2.3.tar.gz} @emph{and} sends it to the cluster's @code{guix-daemon} instance over SSH."
msgstr "La commande ci-dessus télécharge @code{starpu-1.2.3.tar.gz} @emph{et} l'envoie à l'instance @code{guix-daemon} du nœud principal par SSH."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4482
+#: guix-git/doc/guix-cookbook.texi:5128
msgid "Air-gapped clusters require more work. At the moment, our suggestion would be to download all the necessary source code on a workstation running Guix. For instance, using the @option{--sources} option of @command{guix build} (@pxref{Invoking guix build,,, guix, GNU Guix Reference Manual}), the example below downloads all the source code the @code{openmpi} package depends on:"
msgstr "Les grappes sans connexion nécessitent plus de travail. Pour le moment, notre suggestion est de télécharger tout le code source nécessaire sur une station de travail qui exécute Guix. Par exemple, avec l'option @option{--sources} de @command{guix build} (@pxref{Invoquer guix build,,, guix.fr, le manuel de référence de GNU Guix}), l'exemple ci-dessous télécharge tout le code source dont dépend le paquet @code{openmpi} :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4485
+#: guix-git/doc/guix-cookbook.texi:5131
#, no-wrap
msgid ""
"$ guix build --sources=transitive openmpi\n"
@@ -7979,7 +8967,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4487
+#: guix-git/doc/guix-cookbook.texi:5133
#, no-wrap
msgid ""
"@dots{}\n"
@@ -7989,7 +8977,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4499
+#: guix-git/doc/guix-cookbook.texi:5145
#, no-wrap
msgid ""
"/gnu/store/xc17sm60fb8nxadc4qy0c7rqph499z8s-openmpi-1.10.7.tar.bz2\n"
@@ -8017,17 +9005,17 @@ msgstr ""
"…\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4503
+#: guix-git/doc/guix-cookbook.texi:5149
msgid "(In case you're wondering, that's more than 320@ MiB of @emph{compressed} source code.)"
msgstr "(Si vous vous posez la question, c'est plus de 320 Mio de code source compressé)"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4506
+#: guix-git/doc/guix-cookbook.texi:5152
msgid "We can then make a big archive containing all of this (@pxref{Invoking guix archive,,, guix, GNU Guix Reference Manual}):"
msgstr "Nous pouvons ensuite créer une grosse archive contenant tout cela (@pxref{Invoquer guix archive,,, guix.fr, le manuel de référence de GNU Guix}) :"
#. type: verbatim
-#: guix-git/doc/guix-cookbook.texi:4511
+#: guix-git/doc/guix-cookbook.texi:5157
#, no-wrap
msgid ""
"$ guix archive --export \\\n"
@@ -8039,71 +9027,71 @@ msgstr ""
" > openmpi-source-code.nar\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4515
+#: guix-git/doc/guix-cookbook.texi:5161
msgid "@dots{} and we can eventually transfer that archive to the cluster on removable storage and unpack it there:"
msgstr "@dots{} et nous pouvons enfin transférer cette archive vers la grappe avec une clé usb et la déballer :"
#. type: verbatim
-#: guix-git/doc/guix-cookbook.texi:4518
+#: guix-git/doc/guix-cookbook.texi:5164
#, no-wrap
msgid "$ guix archive --import < openmpi-source-code.nar\n"
msgstr "$ guix archive --import < openmpi-source-code.nar\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4522
+#: guix-git/doc/guix-cookbook.texi:5168
msgid "This process has to be repeated every time new source code needs to be brought to the cluster."
msgstr "Ce processus doit être répété chaque fois qu'un nouveau code source doit être apporté à la grappe."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4526
+#: guix-git/doc/guix-cookbook.texi:5172
msgid "As we write this, the research institutes involved in Guix-HPC do not have air-gapped clusters though. If you have experience with such setups, we would like to hear feedback and suggestions."
msgstr "Au moment d'écrire ces lignes, les instituts de recherche qui participent à Guix-HPC n'ont pas de grappe déconnectées. Si vous avez de l'expérience avec ce genre de configuration, nous aimerions entendre vos retours et vos suggestions."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:4528
+#: guix-git/doc/guix-cookbook.texi:5174
#, no-wrap
msgid "Disk Usage"
msgstr "Utilisation du disque"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:4530
+#: guix-git/doc/guix-cookbook.texi:5176
#, no-wrap
msgid "disk usage, on a cluster"
msgstr "utilisation du disque, sur une grappe de calcul"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4537
+#: guix-git/doc/guix-cookbook.texi:5183
msgid "A common concern of sysadmins' is whether this is all going to eat a lot of disk space. If anything, if something is going to exhaust disk space, it's going to be scientific data sets rather than compiled software---that's our experience with almost ten years of Guix usage on HPC clusters. Nevertheless, it's worth taking a look at how Guix contributes to disk usage."
msgstr "Une inquiétude courante des administrateur·ices systèmes est de savoir si cela va prendre beaucoup de place. Si cela doit avoir lieu, les jeux de données scientifiques prendront plus probablement toute la place, plutôt que les logiciels compilés. C'est notre expérience après presque dix ans d'utilisation de Guix sur des grappes HPC. Néanmoins, il vaut mieux jeter un œil à la manière dont Guix contribue à l'utilisation du disque."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4542
+#: guix-git/doc/guix-cookbook.texi:5188
msgid "First, having several versions or variants of a given package in @file{/gnu/store} does not necessarily cost much, because @command{guix-daemon} implements deduplication of identical files, and package variants are likely to have a number of common files."
msgstr "Tout d'abord, avoir plusieurs versions ou variantes d'un paquet donné dans @file{/gnu/store} ne coûte pas forcément très cher, car @command{guix-daemon} implémente la déduplication des fichiers identiques et les variantes de paquets ont tendance à avoir de nombreux fichiers en commun."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4549
+#: guix-git/doc/guix-cookbook.texi:5195
msgid "As mentioned above, we recommend having a cron job to run @code{guix gc} periodically, which removes @emph{unused} software from @file{/gnu/store}. However, there's always a possibility that users will keep lots of software in their profiles, or lots of old generations of their profiles, which is ``live'' and cannot be deleted from the viewpoint of @command{guix gc}."
msgstr "Comme nous l'avons mentionné plus haut, nous recommandons d'utiliser une tâche cron pour exécuter @code{guix gc} régulièrement, pour supprimer les logiciels @emph{inutilisés} de @file{/gnu/store}. Cependant, il est toujours possible que les utilisateur·ices gardent de nombreux logiciels dans leurs profils, qui sont « vivants » et ne peuvent pas être supprimés du point de vu de @command{guix gc}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4553
+#: guix-git/doc/guix-cookbook.texi:5199
msgid "The solution to this is for users to regularly remove old generations of their profile. For instance, the following command removes generations that are more than two-month old:"
msgstr "La solution à ce problème est de demander aux utilisateur·ices de régulièrement supprimer les anciennes générations de leurs profils. Par exemple, la commande suivante supprime les générations de plus de deux mois :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4556
+#: guix-git/doc/guix-cookbook.texi:5202
#, no-wrap
msgid "guix package --delete-generations=2m\n"
msgstr "guix package --delete-generations=2m\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4561
+#: guix-git/doc/guix-cookbook.texi:5207
msgid "Likewise, it's a good idea to invite users to regularly upgrade their profile, which can reduce the number of variants of a given piece of software stored in @file{/gnu/store}:"
msgstr "De même, il vaut mieux inviter les utilisateur·ices à régulièrement mettre à jour leur profil, ce qui peut réduire le nombre de variantes d'un logiciel donnés stockés dans @file{/gnu/store} :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4565
+#: guix-git/doc/guix-cookbook.texi:5211
#, no-wrap
msgid ""
"guix pull\n"
@@ -8113,80 +9101,98 @@ msgstr ""
"guix upgrade\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4571
+#: guix-git/doc/guix-cookbook.texi:5217
msgid "As a last resort, it is always possible for sysadmins to do some of this on behalf of their users. Nevertheless, one of the strengths of Guix is the freedom and control users get on their software environment, so we strongly recommend leaving users in control."
msgstr "En dernier recours, il est toujours possibles pour les administrateur·ices systèmes de le faire pour leurs utilisateur·ices. Néanmoins, l'une des forces de Guix est la liberté et le contrôle que ses utilisateur·ices ont sur leur environnement logiciel, donc nous vous recommandons fortement de les laisser aux manettes."
#. type: section
-#: guix-git/doc/guix-cookbook.texi:4573
+#: guix-git/doc/guix-cookbook.texi:5219
#, no-wrap
msgid "Security Considerations"
msgstr "Considérations de sécurité"
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:4575
+#: guix-git/doc/guix-cookbook.texi:5221
#, no-wrap
msgid "security, on a cluster"
msgstr "sécurité, sur une grappe"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4580
+#: guix-git/doc/guix-cookbook.texi:5226
msgid "On an HPC cluster, Guix is typically used to manage scientific software. Security-critical software such as the operating system kernel and system services such as @code{sshd} and the batch scheduler remain under control of sysadmins."
msgstr "Sur un grappe PC, guix est généralement utilisé pour gérer des logiciels scientifiques. Les logiciels critiques pour la sécurité comme le noyau du système d'exploitation et les services systèmes comme @code{sshd} et l'ordonnanceur par lot restent sous votre contrôle."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4585
+#: guix-git/doc/guix-cookbook.texi:5231
msgid "The Guix project has a good track record delivering security updates in a timely fashion (@pxref{Security Updates,,, guix, GNU Guix Reference Manual}). To get security updates, users have to run @code{guix pull && guix upgrade}."
msgstr "Le projet Guix a un bon historique de délivrance de mises à jour de sécurité à temps (@pxref{Mises à jour de sécurité,,, guix.fr, le manuel de référence de GNU Guix}). Pour récupérer les mises à jour de sécurité, les utilisateur·ices doivent exécuter @code{guix pull && guix upgrade}."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4591
+#: guix-git/doc/guix-cookbook.texi:5237
msgid "Because Guix uniquely identifies software variants, it is easy to see if a vulnerable piece of software is in use. For instance, to check whether the glibc@ 2.25 variant without the mitigation patch against ``@uref{https://www.qualys.com/2017/06/19/stack-clash/stack-clash.txt,Stack Clash}'', one can check whether user profiles refer to it at all:"
msgstr "Comme Guix identifie de manière unique les variantes des logiciels, il est facile de voir si un logiciel vulnérable est utilisé. Par exemple, pour vérifier si la variante glibc@@2.25 sans correctif d'atténuation de « @uref{https://www.qualys.com/2017/06/19/stack-clash/stack-clash.txt,Stack Clash} », on peut vérifier si les profils des utilisateur·ices s'y réfèrent ou non :"
#. type: example
-#: guix-git/doc/guix-cookbook.texi:4594
+#: guix-git/doc/guix-cookbook.texi:5240
#, no-wrap
msgid "guix gc --referrers /gnu/store/…-glibc-2.25\n"
msgstr "guix gc --referrers /gnu/store/…-glibc-2.25\n"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4598
+#: guix-git/doc/guix-cookbook.texi:5244
msgid "This will report whether profiles exist that refer to this specific glibc variant."
msgstr "Cela rapportera si des profils qui se réfèrent à cette variante spécifique de glibc existent."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4611
+#: guix-git/doc/guix-cookbook.texi:5257
msgid "Guix is based on the @uref{https://nixos.org/nix/, Nix package manager}, which was designed and implemented by Eelco Dolstra, with contributions from other people (see the @file{nix/AUTHORS} file in Guix.) Nix pioneered functional package management, and promoted unprecedented features, such as transactional package upgrades and rollbacks, per-user profiles, and referentially transparent build processes. Without this work, Guix would not exist."
msgstr "Guix se base sur le @uref{https://nixos.org/nix/ gestionnaire de paquets Nix} conçu et implémenté par Eelco Dolstra, avec des contributions d'autres personnes (voir le fichier @file{nix/AUTHORS} dans Guix). Nix a inventé la gestion de paquet fonctionnelle et promu des fonctionnalités sans précédents comme les mises à jour de paquets transactionnelles et les retours en arrière, les profils par utilisateurs et les processus de constructions transparents pour les références. Sans ce travail, Guix n'existerait pas."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4614
+#: guix-git/doc/guix-cookbook.texi:5260
msgid "The Nix-based software distributions, Nixpkgs and NixOS, have also been an inspiration for Guix."
msgstr "Les distributions logicielles basées sur Nix, Nixpkgs et NixOS, ont aussi été une inspiration pour Guix."
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4620
+#: guix-git/doc/guix-cookbook.texi:5266
msgid "GNU@tie{}Guix itself is a collective work with contributions from a number of people. See the @file{AUTHORS} file in Guix for more information on these fine people. The @file{THANKS} file lists people who have helped by reporting bugs, taking care of the infrastructure, providing artwork and themes, making suggestions, and more---thank you!"
msgstr "GNU@tie{}Guix lui-même est un travail collectif avec des contributions d'un grand nombre de personnes. Voyez le fichier @file{AUTHORS} dans Guix pour plus d'information sur ces personnes de qualité. Le fichier @file{THANKS} liste les personnes qui ont aidé en rapportant des bogues, en prenant soin de l'infrastructure, en fournissant des images et des thèmes, en faisant des suggestions et bien plus. Merci !"
#. type: Plain text
-#: guix-git/doc/guix-cookbook.texi:4625
+#: guix-git/doc/guix-cookbook.texi:5271
msgid "This document includes adapted sections from articles that have previously been published on the Guix blog at @uref{https://guix.gnu.org/blog} and on the Guix-HPC blog at @uref{https://hpc.guix.info/blog}."
msgstr "Ce document contient des sections adaptées d'articles précédemment publiés sur le blog de Guix sur @uref{https://guix.gnu.org/blog} et le blog de Guix-HPC sur @uref{https://hpc.guix.info/blog}."
#. type: cindex
-#: guix-git/doc/guix-cookbook.texi:4630
+#: guix-git/doc/guix-cookbook.texi:5276
#, no-wrap
msgid "license, GNU Free Documentation License"
msgstr "licence, GNU Free Documentation License"
#. type: include
-#: guix-git/doc/guix-cookbook.texi:4631
+#: guix-git/doc/guix-cookbook.texi:5277
#, no-wrap
msgid "fdl-1.3.texi"
msgstr "fdl-1.3.texi"
+#~ msgid "Let's take an example:"
+#~ msgstr "Voyons un exemple :"
+
+#~ msgid "We have an environment for hacking on a project for which there isn't a Guix package yet. We build the environment using a manifest, and then run @code{guix environment -m manifest.scm}. So far so good."
+#~ msgstr "Vous avez un environnement pour bidouiller un projet pour lequel il n'y a pas encore de paquet Guix. Vous construisez l'environnement avec un manifeste puis lancez @code{guix environment -m manifest.scm}. Jusqu'ici tout va bien."
+
+#~ msgid "Many weeks pass and we have run a couple of @code{guix pull} in the mean time. Maybe a dependency from our manifest has been updated; or we may have run @code{guix gc} and some packages needed by our manifest have been garbage-collected."
+#~ msgstr "Plusieurs semaines plus tard vous avez lancé quelques @code{guix pull} entre temps. Plusieurs dépendances du manifeste ont été mises à jour ; ou bien vous avez lancé @code{guix gc} et certains paquets requis par le manifeste ont été nettoyés."
+
+#~ msgid "Eventually, we set to work on that project again, so we run @code{guix shell -m manifest.scm}. But now we have to wait for Guix to build and install stuff!"
+#~ msgstr "Finalement, vous vous remettez au travail sur ce projet, donc vous lancez @code{guix shell -m manifest.scm}. Mais maintenant vous devez attendre que Guix construise et installe des paquets !"
+
+#~ msgid "a manifest,"
+#~ msgstr "un manifeste,"
+
+#~ msgid "a Guix channel specification."
+#~ msgstr "et une spécification de canaux Guix."
+
#, fuzzy
#~| msgid "A ``Hello World'' package"
#~ msgid "A ``Hello World'' package::"
diff --git a/po/doc/guix-manual.de.po b/po/doc/guix-manual.de.po
index fb36d56040..8e5cc792f9 100644
--- a/po/doc/guix-manual.de.po
+++ b/po/doc/guix-manual.de.po
@@ -2,19 +2,18 @@
# Copyright (C) 2012-2020 the authors of Guix (msgids) and the following authors (msgstr)
# This file is distributed under the same license as the guix manual package.
# Mario Blättermann <mario.blaettermann@gmail.com>, 2018.
-# Florian Pelz <pelzflorian@pelzflorian.de>, 2018, 2019, 2020, 2021, 2022, 2023.
+# Florian Pelz <pelzflorian@pelzflorian.de>, 2018, 2019, 2020, 2021, 2022.
# Jonathan Brielmaier <jonathan.brielmaier@web.de>, 2019.
# Adina Wagner <adina.wagner@t-online.de>, 2021.
# Ettore Atalan <atalanttore@googlemail.com>, 2021.
# Xinglu Chen <public@yoctocell.xyz>, 2021.
# Ricardo Wurmus <bugs@elephly.net>, 2022.
-# Jens Maucher <jensmaucher@gmail.com>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: guix-manual 1.2.0-pre3\n"
"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
-"POT-Creation-Date: 2023-09-27 03:18+0000\n"
-"PO-Revision-Date: 2023-09-30 15:23+0000\n"
+"POT-Creation-Date: 2023-10-24 03:18+0000\n"
+"PO-Revision-Date: 2023-10-31 08:42+0100\n"
"Last-Translator: Florian Pelz <pelzflorian@pelzflorian.de>\n"
"Language-Team: German <https://translate.fedoraproject.org/projects/guix/documentation-manual/de/>\n"
"Language: de\n"
@@ -22,7 +21,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.0.2\n"
+"X-Generator: Weblate 4.15\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
#. #-#-#-#-# contributing.pot (guix manual checkout) #-#-#-#-#
@@ -63,161 +62,174 @@ msgid "Contributors are not required to use their legal name in patches and on-l
msgstr "Von Mitwirkenden wird nicht erwartet, dass sie in Patches oder in der Online-Kommunikation ihre echten Namen preisgeben. Sie können einen beliebigen Namen oder ein Pseudonym ihrer Wahl verwenden."
#. type: section
-#: guix-git/doc/contributing.texi:34 guix-git/doc/contributing.texi:36
-#: guix-git/doc/contributing.texi:37
+#: guix-git/doc/contributing.texi:35 guix-git/doc/contributing.texi:37
+#: guix-git/doc/contributing.texi:38
#, no-wrap
msgid "Building from Git"
msgstr "Erstellung aus dem Git"
#. type: menuentry
-#: guix-git/doc/contributing.texi:34
+#: guix-git/doc/contributing.texi:35
msgid "The latest and greatest."
msgstr "Das Neueste und Beste."
#. type: section
-#: guix-git/doc/contributing.texi:34 guix-git/doc/contributing.texi:201
-#: guix-git/doc/contributing.texi:202
+#: guix-git/doc/contributing.texi:35 guix-git/doc/contributing.texi:202
+#: guix-git/doc/contributing.texi:203
#, no-wrap
msgid "Running Guix Before It Is Installed"
msgstr "Guix vor der Installation ausführen"
#. type: menuentry
-#: guix-git/doc/contributing.texi:34
+#: guix-git/doc/contributing.texi:35
msgid "Hacker tricks."
msgstr "Hacker-Tricks."
#. type: section
-#: guix-git/doc/contributing.texi:34 guix-git/doc/contributing.texi:291
-#: guix-git/doc/contributing.texi:292
+#: guix-git/doc/contributing.texi:35 guix-git/doc/contributing.texi:292
+#: guix-git/doc/contributing.texi:293
#, no-wrap
msgid "The Perfect Setup"
msgstr "Perfekt eingerichtet"
#. type: menuentry
-#: guix-git/doc/contributing.texi:34
+#: guix-git/doc/contributing.texi:35
msgid "The right tools."
msgstr "Die richtigen Werkzeuge."
#. type: section
-#: guix-git/doc/contributing.texi:34 guix-git/doc/contributing.texi:456
-#: guix-git/doc/contributing.texi:457
+#: guix-git/doc/contributing.texi:35 guix-git/doc/contributing.texi:461
+#: guix-git/doc/contributing.texi:462
+#, fuzzy, no-wrap
+#| msgid "interactive use"
+msgid "Alternative Setups"
+msgstr "interaktiv benutzen"
+
+#. type: menuentry
+#: guix-git/doc/contributing.texi:35
+msgid "Other posible tools that do the job."
+msgstr ""
+
+#. type: section
+#: guix-git/doc/contributing.texi:35 guix-git/doc/contributing.texi:538
+#: guix-git/doc/contributing.texi:539
#, no-wrap
msgid "Packaging Guidelines"
msgstr "Paketrichtlinien"
#. type: menuentry
-#: guix-git/doc/contributing.texi:34
+#: guix-git/doc/contributing.texi:35
msgid "Growing the distribution."
msgstr "Die Distribution wachsen lassen."
#. type: section
-#: guix-git/doc/contributing.texi:34 guix-git/doc/contributing.texi:1177
-#: guix-git/doc/contributing.texi:1178
+#: guix-git/doc/contributing.texi:35 guix-git/doc/contributing.texi:1259
+#: guix-git/doc/contributing.texi:1260
#, no-wrap
msgid "Coding Style"
msgstr "Programmierstil"
#. type: menuentry
-#: guix-git/doc/contributing.texi:34
+#: guix-git/doc/contributing.texi:35
msgid "Hygiene of the contributor."
msgstr "Wie Mitwirkende hygienisch arbeiten."
#. type: section
-#: guix-git/doc/contributing.texi:34 guix-git/doc/contributing.texi:1275
-#: guix-git/doc/contributing.texi:1276
+#: guix-git/doc/contributing.texi:35 guix-git/doc/contributing.texi:1361
+#: guix-git/doc/contributing.texi:1362
#, no-wrap
msgid "Submitting Patches"
msgstr "Einreichen von Patches"
#. type: menuentry
-#: guix-git/doc/contributing.texi:34
+#: guix-git/doc/contributing.texi:35
msgid "Share your work."
msgstr "Teilen Sie Ihre Arbeit."
#. type: section
-#: guix-git/doc/contributing.texi:34 guix-git/doc/contributing.texi:1669
-#: guix-git/doc/contributing.texi:1670
+#: guix-git/doc/contributing.texi:35 guix-git/doc/contributing.texi:1763
+#: guix-git/doc/contributing.texi:1764
#, no-wrap
msgid "Tracking Bugs and Changes"
msgstr "Überblick über gemeldete Fehler und Änderungen"
#. type: menuentry
-#: guix-git/doc/contributing.texi:34
+#: guix-git/doc/contributing.texi:35
msgid "Keeping it all organized."
msgstr "Die Ordnung bewahren."
#. type: section
-#: guix-git/doc/contributing.texi:34 guix-git/doc/contributing.texi:1929
-#: guix-git/doc/contributing.texi:1930
+#: guix-git/doc/contributing.texi:35 guix-git/doc/contributing.texi:2061
+#: guix-git/doc/contributing.texi:2062
#, no-wrap
msgid "Commit Access"
msgstr "Commit-Zugriff"
#. type: menuentry
-#: guix-git/doc/contributing.texi:34
+#: guix-git/doc/contributing.texi:35
msgid "Pushing to the official repository."
msgstr "Auf die offiziellen Repositorys pushen."
#. type: section
-#: guix-git/doc/contributing.texi:34 guix-git/doc/contributing.texi:2154
-#: guix-git/doc/contributing.texi:2155
+#: guix-git/doc/contributing.texi:35 guix-git/doc/contributing.texi:2286
+#: guix-git/doc/contributing.texi:2287
#, no-wrap
msgid "Updating the Guix Package"
msgstr "Das Guix-Paket aktualisieren"
#. type: menuentry
-#: guix-git/doc/contributing.texi:34
+#: guix-git/doc/contributing.texi:35
msgid "Updating the Guix package definition."
msgstr "Die Paketdefinition für Guix erneuern."
#. type: section
-#: guix-git/doc/contributing.texi:34 guix-git/doc/contributing.texi:2192
-#: guix-git/doc/contributing.texi:2193
+#: guix-git/doc/contributing.texi:35 guix-git/doc/contributing.texi:2324
+#: guix-git/doc/contributing.texi:2325
#, no-wrap
msgid "Writing Documentation"
msgstr "Dokumentation schreiben"
#. type: menuentry
-#: guix-git/doc/contributing.texi:34
+#: guix-git/doc/contributing.texi:35
msgid "Improving documentation in GNU Guix."
msgstr "Die Dokumentation in GNU Guix verbessern."
#. type: section
-#: guix-git/doc/contributing.texi:34 guix-git/doc/contributing.texi:2236
-#: guix-git/doc/contributing.texi:2237
+#: guix-git/doc/contributing.texi:35 guix-git/doc/contributing.texi:2368
+#: guix-git/doc/contributing.texi:2369
#, no-wrap
msgid "Translating Guix"
msgstr "Guix übersetzen."
#. type: menuentry
-#: guix-git/doc/contributing.texi:34
+#: guix-git/doc/contributing.texi:35
msgid "Make Guix speak your native language."
msgstr "Bring Guix deine Muttersprache bei."
#. type: Plain text
-#: guix-git/doc/contributing.texi:41
+#: guix-git/doc/contributing.texi:42
msgid "If you want to hack Guix itself, it is recommended to use the latest version from the Git repository:"
msgstr "Wenn Sie an Guix selbst hacken wollen, ist es empfehlenswert, dass Sie die neueste Version aus dem Git-Softwarebestand verwenden:"
#. type: example
-#: guix-git/doc/contributing.texi:44
+#: guix-git/doc/contributing.texi:45
#, no-wrap
msgid "git clone https://git.savannah.gnu.org/git/guix.git\n"
msgstr "git clone https://git.savannah.gnu.org/git/guix.git\n"
#. type: cindex
-#: guix-git/doc/contributing.texi:46
+#: guix-git/doc/contributing.texi:47
#, no-wrap
msgid "authentication, of a Guix checkout"
msgstr "Authentifizieren, eines Guix-Checkouts"
#. type: Plain text
-#: guix-git/doc/contributing.texi:51
+#: guix-git/doc/contributing.texi:52
msgid "How do you ensure that you obtained a genuine copy of the repository? To do that, run @command{guix git authenticate}, passing it the commit and OpenPGP fingerprint of the @dfn{channel introduction} (@pxref{Invoking guix git authenticate}):"
msgstr "Doch wie können Sie sichergehen, dass sie eine unverfälschte Kopie des Repositorys erhalten haben? Dazu müssen Sie @command{guix git authenticate} ausführen, wobei Sie den Commit und den OpenPGP-Fingerabdruck der @dfn{Kanaleinführung} angeben (siehe @ref{Invoking guix git authenticate}):"
#. type: example
-#: guix-git/doc/contributing.texi:58
+#: guix-git/doc/contributing.texi:59
#, no-wrap
msgid ""
"git fetch origin keyring:keyring\n"
@@ -229,155 +241,155 @@ msgstr ""
" \"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA\"\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:63
+#: guix-git/doc/contributing.texi:64
msgid "This command completes with exit code zero on success; it prints an error message and exits with a non-zero code otherwise."
msgstr "Dieser Befehl gibt bei Erfolg am Ende null als Exit-Status zurück, ansonsten wird eine Fehlermeldung ausgegeben und ein anderer Exit-Status zurückgegeben."
#. type: Plain text
-#: guix-git/doc/contributing.texi:70
+#: guix-git/doc/contributing.texi:71
msgid "As you can see, there is a chicken-and-egg problem: you first need to have Guix installed. Typically you would install Guix System (@pxref{System Installation}) or Guix on top of another distro (@pxref{Binary Installation}); in either case, you would verify the OpenPGP signature on the installation medium. This ``bootstraps'' the trust chain."
msgstr "Wie Sie sehen können, liegt hier ein Henne-Ei-Problem vor: Sie müssen Guix zuvor bereits installiert haben. Üblicherweise würden Sie Guix System erst auf einem anderen System installieren (siehe @ref{System Installation}) oder Guix auf einer anderen Distribution installieren (siehe @ref{Binary Installation}); in beiden Fällen würden Sie die OpenPGP-Signatur auf dem Installationsmedium prüfen. Damit haben Sie ein „Bootstrapping“ der Vertrauenskette durchgeführt."
#. type: Plain text
-#: guix-git/doc/contributing.texi:75
+#: guix-git/doc/contributing.texi:76
msgid "The easiest way to set up a development environment for Guix is, of course, by using Guix! The following command starts a new shell where all the dependencies and appropriate environment variables are set up to hack on Guix:"
msgstr "Der einfachste Weg, eine Entwicklungsumgebung für Guix einzurichten, ist natürlich, Guix zu benutzen! Der folgende Befehl startet eine neue Shell, in der alle Abhängigkeiten und Umgebungsvariablen bereits eingerichtet sind, um an Guix zu arbeiten:"
#. type: example
-#: guix-git/doc/contributing.texi:78
+#: guix-git/doc/contributing.texi:79
#, no-wrap
msgid "guix shell -D guix --pure\n"
msgstr "guix shell -D guix --pure\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:81
+#: guix-git/doc/contributing.texi:82
msgid "or even, from within a Git worktree for Guix:"
msgstr "Oder kürzer, aus einem Git-Arbeitsverzeichnis von Guix heraus:"
#. type: example
-#: guix-git/doc/contributing.texi:84
+#: guix-git/doc/contributing.texi:85
#, no-wrap
msgid "guix shell --pure\n"
msgstr "guix shell --pure\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:87
+#: guix-git/doc/contributing.texi:88
msgid "@xref{Invoking guix shell}, for more information on that command."
msgstr "Siehe @ref{Invoking guix shell} für weitere Informationen zu diesem Befehl."
#. type: Plain text
-#: guix-git/doc/contributing.texi:91
+#: guix-git/doc/contributing.texi:92
msgid "If you are unable to use Guix when building Guix from a checkout, the following are the required packages in addition to those mentioned in the installation instructions (@pxref{Requirements})."
msgstr "Wenn Sie Guix nicht benutzen können, wenn Sie es aus einem Checkout erstellen, werden die folgenden Pakete zusätzlich zu denen benötigt, die in den Installationsanweisungen angegeben sind (siehe @ref{Requirements})."
#. type: item
-#: guix-git/doc/contributing.texi:93
+#: guix-git/doc/contributing.texi:94
#, no-wrap
msgid "@url{https://gnu.org/software/autoconf/, GNU Autoconf};"
msgstr "@url{https://gnu.org/software/autoconf/, GNU Autoconf},"
#. type: item
-#: guix-git/doc/contributing.texi:94
+#: guix-git/doc/contributing.texi:95
#, no-wrap
msgid "@url{https://gnu.org/software/automake/, GNU Automake};"
msgstr "@url{https://gnu.org/software/automake/, GNU Automake},"
#. type: item
-#: guix-git/doc/contributing.texi:95
+#: guix-git/doc/contributing.texi:96
#, no-wrap
msgid "@url{https://gnu.org/software/gettext/, GNU Gettext};"
msgstr "@url{https://gnu.org/software/gettext/, GNU Gettext},"
#. type: item
-#: guix-git/doc/contributing.texi:96
+#: guix-git/doc/contributing.texi:97
#, no-wrap
msgid "@url{https://gnu.org/software/texinfo/, GNU Texinfo};"
msgstr "@url{https://gnu.org/software/texinfo/, GNU Texinfo},"
#. type: item
-#: guix-git/doc/contributing.texi:97
+#: guix-git/doc/contributing.texi:98
#, no-wrap
msgid "@url{https://www.graphviz.org/, Graphviz};"
msgstr "@url{https://www.graphviz.org/, Graphviz},"
#. type: item
-#: guix-git/doc/contributing.texi:98
+#: guix-git/doc/contributing.texi:99
#, no-wrap
msgid "@url{https://www.gnu.org/software/help2man/, GNU Help2man (optional)}."
msgstr "@url{https://www.gnu.org/software/help2man/, GNU Help2man (optional)}."
#. type: Plain text
-#: guix-git/doc/contributing.texi:103
+#: guix-git/doc/contributing.texi:104
msgid "On Guix, extra dependencies can be added by instead running @command{guix shell}:"
msgstr "Auf Guix können zusätzliche Abhängigkeiten hinzugefügt werden, indem Sie stattdessen @command{guix shell} ausführen:"
#. type: example
-#: guix-git/doc/contributing.texi:106
+#: guix-git/doc/contributing.texi:107
#, no-wrap
msgid "guix shell -D guix help2man git strace --pure\n"
msgstr "guix shell -D guix help2man git strace --pure\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:110
+#: guix-git/doc/contributing.texi:111
msgid "From there you can generate the build system infrastructure using Autoconf and Automake:"
msgstr "Damit können Sie die Infrastruktur des Erstellungssystems mit Autoconf und Automake erzeugen."
#. type: example
-#: guix-git/doc/contributing.texi:113
+#: guix-git/doc/contributing.texi:114
#, no-wrap
msgid "./bootstrap\n"
msgstr "./bootstrap\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:116
+#: guix-git/doc/contributing.texi:117
msgid "If you get an error like this one:"
msgstr "Möglicherweise erhalten Sie eine Fehlermeldung wie diese:"
#. type: example
-#: guix-git/doc/contributing.texi:119
+#: guix-git/doc/contributing.texi:120
#, no-wrap
msgid "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n"
msgstr "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:128
+#: guix-git/doc/contributing.texi:129
msgid "it probably means that Autoconf couldn’t find @file{pkg.m4}, which is provided by pkg-config. Make sure that @file{pkg.m4} is available. The same holds for the @file{guile.m4} set of macros provided by Guile. For instance, if you installed Automake in @file{/usr/local}, it wouldn’t look for @file{.m4} files in @file{/usr/share}. In that case, you have to invoke the following command:"
msgstr "Das bedeutet wahrscheinlich, dass Autoconf @file{pkg.m4} nicht finden konnte, welches von pkg-config bereitgestellt wird. Stellen Sie sicher, dass @file{pkg.m4} verfügbar ist. Gleiches gilt für den von Guile bereitgestellten Makrosatz @file{guile.m4}. Wenn Sie beispielsweise Automake in @file{/usr/local} installiert haben, würde in @file{/usr/share} nicht nach @file{.m4}-Dateien geschaut. In einem solchen Fall müssen Sie folgenden Befehl aufrufen:"
#. type: example
-#: guix-git/doc/contributing.texi:131
+#: guix-git/doc/contributing.texi:132
#, no-wrap
msgid "export ACLOCAL_PATH=/usr/share/aclocal\n"
msgstr "export ACLOCAL_PATH=/usr/share/aclocal\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:135
+#: guix-git/doc/contributing.texi:136
msgid "@xref{Macro Search Path,,, automake, The GNU Automake Manual}, for more information."
msgstr "In @ref{Macro Search Path,,, automake, The GNU Automake Manual} finden Sie weitere Informationen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:137
+#: guix-git/doc/contributing.texi:138
msgid "Then, run:"
msgstr "Anschließend führen Sie dies aus:"
#. type: example
-#: guix-git/doc/contributing.texi:140
+#: guix-git/doc/contributing.texi:141
#, no-wrap
msgid "./configure --localstatedir=/var --sysconfdir=/etc\n"
msgstr "./configure --localstatedir=/var --sysconfdir=/etc\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:149
+#: guix-git/doc/contributing.texi:150
msgid "... where @file{/var} is the normal @code{localstatedir} value (@pxref{The Store}, for information about this) and @file{/etc} is the normal @code{sysconfdir} value. Note that you will probably not run @command{make install} at the end (you don't have to) but it's still important to pass the right @code{localstatedir} and @code{sysconfdir} values, which get recorded in the @code{(guix config)} Guile module."
msgstr "Dabei ist @file{/var} der normale @code{localstatedir}-Wert (weitere Informationen siehe @ref{The Store}) und @file{/etc} der normale @code{sysconfdir}-Wert. Denken Sie daran, dass Sie am Ende wahrscheinlich @emph{nicht} @command{make install} ausführen möchten (müssen Sie auch nicht), aber es ist dennoch wichtig, die richtige @code{localstatedir} und @code{sysconfdir} zu übergeben, welche im Guile-Modul @code{(guix config)} festgehalten werden."
#. type: Plain text
-#: guix-git/doc/contributing.texi:152
+#: guix-git/doc/contributing.texi:153
msgid "Finally, you can build Guix and, if you feel so inclined, run the tests (@pxref{Running the Test Suite}):"
msgstr "Schließlich können Sie Guix erstellen und, wenn Sie möchten, die Tests ausführen (siehe @ref{Running the Test Suite}):"
#. type: example
-#: guix-git/doc/contributing.texi:156
+#: guix-git/doc/contributing.texi:157
#, no-wrap
msgid ""
"make\n"
@@ -387,91 +399,91 @@ msgstr ""
"make check\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:162
+#: guix-git/doc/contributing.texi:163
msgid "If anything fails, take a look at installation instructions (@pxref{Installation}) or send a message to the @email{guix-devel@@gnu.org, mailing list}."
msgstr "Falls etwas fehlschlägt, werfen Sie einen Blick auf die Installationsanweisungen (siehe @ref{Installation}) oder senden Sie eine E-Mail an die @email{guix-devel@@gnu.org, Mailingliste}."
#. type: Plain text
-#: guix-git/doc/contributing.texi:165
+#: guix-git/doc/contributing.texi:166
msgid "From there on, you can authenticate all the commits included in your checkout by running:"
msgstr "Von da an können Sie alle Commits in Ihrem Checkout authentifizieren, indem Sie dies ausführen:"
#. type: example
-#: guix-git/doc/contributing.texi:168 guix-git/doc/contributing.texi:2044
+#: guix-git/doc/contributing.texi:169 guix-git/doc/contributing.texi:2176
#, no-wrap
msgid "make authenticate\n"
msgstr "make authenticate\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:171
+#: guix-git/doc/contributing.texi:172
msgid "The first run takes a couple of minutes, but subsequent runs are faster."
msgstr "Die erste Ausführung dauert ein paar Minuten, aber nachfolgende Ausführungen gehen schneller."
#. type: Plain text
-#: guix-git/doc/contributing.texi:177
+#: guix-git/doc/contributing.texi:178
msgid "Or, when your configuration for your local Git repository doesn't match the default one, you can provide the reference for the @code{keyring} branch through the variable @code{GUIX_GIT_KEYRING}. The following example assumes that you have a Git remote called @samp{myremote} pointing to the official repository:"
msgstr "Für den Fall, dass die Konfiguration Ihres lokal verfügbaren Git-Repositorys nicht der voreingestellten entspricht, können Sie die Referenz für den @code{keyring}-Branch über die Variable @code{GUIX_GIT_KEYRING} angeben. Im folgenden Beispiel nehmen wir an, Sie haben ein Remote-Repository namens @samp{myremote} eingerichtet, das auf das offizielle Guix-Repository verweist:"
#. type: example
-#: guix-git/doc/contributing.texi:180
+#: guix-git/doc/contributing.texi:181
#, no-wrap
msgid "make authenticate GUIX_GIT_KEYRING=myremote/keyring\n"
msgstr "make authenticate GUIX_GIT_KEYRING=myremote/keyring\n"
#. type: quotation
-#: guix-git/doc/contributing.texi:182 guix-git/doc/contributing.texi:915
-#: guix-git/doc/contributing.texi:1509 guix-git/doc/contributing.texi:1554
-#: guix-git/doc/contributing.texi:2017 guix-git/doc/guix.texi:688
+#: guix-git/doc/contributing.texi:183 guix-git/doc/contributing.texi:997
+#: guix-git/doc/contributing.texi:1603 guix-git/doc/contributing.texi:1648
+#: guix-git/doc/contributing.texi:2149 guix-git/doc/guix.texi:688
#: guix-git/doc/guix.texi:737 guix-git/doc/guix.texi:941
-#: guix-git/doc/guix.texi:1505 guix-git/doc/guix.texi:1578
-#: guix-git/doc/guix.texi:1965 guix-git/doc/guix.texi:2181
-#: guix-git/doc/guix.texi:2243 guix-git/doc/guix.texi:2440
-#: guix-git/doc/guix.texi:2662 guix-git/doc/guix.texi:2874
-#: guix-git/doc/guix.texi:4107 guix-git/doc/guix.texi:4496
-#: guix-git/doc/guix.texi:5022 guix-git/doc/guix.texi:5036
-#: guix-git/doc/guix.texi:5110 guix-git/doc/guix.texi:5125
-#: guix-git/doc/guix.texi:5183 guix-git/doc/guix.texi:5413
-#: guix-git/doc/guix.texi:6267 guix-git/doc/guix.texi:6296
-#: guix-git/doc/guix.texi:6918 guix-git/doc/guix.texi:7197
-#: guix-git/doc/guix.texi:7318 guix-git/doc/guix.texi:7347
-#: guix-git/doc/guix.texi:7388 guix-git/doc/guix.texi:7443
-#: guix-git/doc/guix.texi:8871 guix-git/doc/guix.texi:11110
-#: guix-git/doc/guix.texi:11252 guix-git/doc/guix.texi:11322
-#: guix-git/doc/guix.texi:13200 guix-git/doc/guix.texi:13240
-#: guix-git/doc/guix.texi:13340 guix-git/doc/guix.texi:13565
-#: guix-git/doc/guix.texi:13577 guix-git/doc/guix.texi:16347
-#: guix-git/doc/guix.texi:17053 guix-git/doc/guix.texi:17159
-#: guix-git/doc/guix.texi:18136 guix-git/doc/guix.texi:18695
-#: guix-git/doc/guix.texi:19197 guix-git/doc/guix.texi:21375
-#: guix-git/doc/guix.texi:22299 guix-git/doc/guix.texi:22482
-#: guix-git/doc/guix.texi:22995 guix-git/doc/guix.texi:27722
-#: guix-git/doc/guix.texi:28331 guix-git/doc/guix.texi:31719
-#: guix-git/doc/guix.texi:35840 guix-git/doc/guix.texi:39202
-#: guix-git/doc/guix.texi:40337 guix-git/doc/guix.texi:40411
-#: guix-git/doc/guix.texi:40453 guix-git/doc/guix.texi:40750
-#: guix-git/doc/guix.texi:40920 guix-git/doc/guix.texi:41088
-#: guix-git/doc/guix.texi:41195 guix-git/doc/guix.texi:41241
-#: guix-git/doc/guix.texi:41298 guix-git/doc/guix.texi:41325
-#: guix-git/doc/guix.texi:41663 guix-git/doc/guix.texi:42871
-#: guix-git/doc/guix.texi:42946 guix-git/doc/guix.texi:42996
-#: guix-git/doc/guix.texi:43046 guix-git/doc/guix.texi:43153
-#: guix-git/doc/guix.texi:44947
+#: guix-git/doc/guix.texi:1488 guix-git/doc/guix.texi:1513
+#: guix-git/doc/guix.texi:1586 guix-git/doc/guix.texi:1973
+#: guix-git/doc/guix.texi:2189 guix-git/doc/guix.texi:2251
+#: guix-git/doc/guix.texi:2448 guix-git/doc/guix.texi:2670
+#: guix-git/doc/guix.texi:2882 guix-git/doc/guix.texi:4002
+#: guix-git/doc/guix.texi:4391 guix-git/doc/guix.texi:4917
+#: guix-git/doc/guix.texi:4931 guix-git/doc/guix.texi:5005
+#: guix-git/doc/guix.texi:5020 guix-git/doc/guix.texi:5078
+#: guix-git/doc/guix.texi:5308 guix-git/doc/guix.texi:6162
+#: guix-git/doc/guix.texi:6191 guix-git/doc/guix.texi:6813
+#: guix-git/doc/guix.texi:7092 guix-git/doc/guix.texi:7216
+#: guix-git/doc/guix.texi:7245 guix-git/doc/guix.texi:7286
+#: guix-git/doc/guix.texi:7341 guix-git/doc/guix.texi:8841
+#: guix-git/doc/guix.texi:11101 guix-git/doc/guix.texi:11243
+#: guix-git/doc/guix.texi:11313 guix-git/doc/guix.texi:13191
+#: guix-git/doc/guix.texi:13231 guix-git/doc/guix.texi:13331
+#: guix-git/doc/guix.texi:13556 guix-git/doc/guix.texi:13568
+#: guix-git/doc/guix.texi:16338 guix-git/doc/guix.texi:17061
+#: guix-git/doc/guix.texi:17167 guix-git/doc/guix.texi:18144
+#: guix-git/doc/guix.texi:18703 guix-git/doc/guix.texi:19205
+#: guix-git/doc/guix.texi:21469 guix-git/doc/guix.texi:22393
+#: guix-git/doc/guix.texi:22576 guix-git/doc/guix.texi:23089
+#: guix-git/doc/guix.texi:27816 guix-git/doc/guix.texi:28425
+#: guix-git/doc/guix.texi:31813 guix-git/doc/guix.texi:36005
+#: guix-git/doc/guix.texi:39367 guix-git/doc/guix.texi:40502
+#: guix-git/doc/guix.texi:40576 guix-git/doc/guix.texi:40618
+#: guix-git/doc/guix.texi:40915 guix-git/doc/guix.texi:41085
+#: guix-git/doc/guix.texi:41253 guix-git/doc/guix.texi:41360
+#: guix-git/doc/guix.texi:41406 guix-git/doc/guix.texi:41463
+#: guix-git/doc/guix.texi:41490 guix-git/doc/guix.texi:41828
+#: guix-git/doc/guix.texi:43205 guix-git/doc/guix.texi:43255
+#: guix-git/doc/guix.texi:43305 guix-git/doc/guix.texi:43412
+#: guix-git/doc/guix.texi:45206
#, no-wrap
msgid "Note"
msgstr "Anmerkung"
#. type: quotation
-#: guix-git/doc/contributing.texi:186
+#: guix-git/doc/contributing.texi:187
msgid "You are advised to run @command{make authenticate} after every @command{git pull} invocation. This ensures you keep receiving valid changes to the repository."
msgstr "Wir raten Ihnen dazu, nach jedem Aufruf von @command{git pull} auch @command{make authenticate} auszuführen. Das stellt sicher, dass Sie weiterhin nur gültige Änderungen in Ihr Repository übernehmen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:190
+#: guix-git/doc/contributing.texi:191
msgid "After updating the repository, @command{make} might fail with an error similar to the following example:"
msgstr "Wenn Sie das Repository einmal aktualisieren, kann es passieren, dass @command{make} mit einer Fehlermeldung ähnlich wie dieser fehlschlägt:"
#. type: example
-#: guix-git/doc/contributing.texi:194
+#: guix-git/doc/contributing.texi:195
#, no-wrap
msgid ""
"error: failed to load 'gnu/packages/dunst.scm':\n"
@@ -481,35 +493,35 @@ msgstr ""
"ice-9/eval.scm:293:34: In procedure abi-check: #<record-type <origin>>: record ABI mismatch; recompilation needed\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:200
+#: guix-git/doc/contributing.texi:201
msgid "This means that one of the record types that Guix defines (in this example, the @code{origin} record) has changed, and all of guix needs to be recompiled to take that change into account. To do so, run @command{make clean-go} followed by @command{make}."
msgstr "Das bedeutet, dass sich einer der in Guix definierten Verbundstypen (in diesem Beispiel der @code{origin}-Verbundstyp) geändert hat und alle Teile von Guix für diese Änderung neu kompiliert werden müssen. Um das zu veranlassen, führen Sie @command{make clean-go} aus, gefolgt von @command{make}."
#. type: Plain text
-#: guix-git/doc/contributing.texi:208
+#: guix-git/doc/contributing.texi:209
msgid "In order to keep a sane working environment, you will find it useful to test the changes made in your local source tree checkout without actually installing them. So that you can distinguish between your ``end-user'' hat and your ``motley'' costume."
msgstr "Um eine gesunde Arbeitsumgebung zu erhalten, ist es hilfreich, die im lokalen Quellbaum vorgenommenen Änderungen zunächst zu testen, ohne sie tatsächlich zu installieren. So können Sie zwischen Ihrem Endnutzer-„Straßenanzug“ und Ihrem „Faschingskostüm“ unterscheiden."
#. type: Plain text
-#: guix-git/doc/contributing.texi:218
+#: guix-git/doc/contributing.texi:219
#, fuzzy
#| msgid "To that end, all the command-line tools can be used even if you have not run @code{make install}. To do that, you first need to have an environment with all the dependencies available (@pxref{Building from Git}), and then simply prefix each command with @command{./pre-inst-env} (the @file{pre-inst-env} script lives in the top build tree of Guix; it is generated by running @command{./bootstrap} followed by @command{./configure}). As an example, here is how you would build the @code{hello} package as defined in your working tree (this assumes @command{guix-daemon} is already running on your system; it's OK if it's a different version):"
msgid "To that end, all the command-line tools can be used even if you have not run @code{make install}. To do that, you first need to have an environment with all the dependencies available (@pxref{Building from Git}), and then simply prefix each command with @command{./pre-inst-env} (the @file{pre-inst-env} script lives in the top build tree of Guix; @pxref{Building from Git} to generate it). As an example, here is how you would build the @code{hello} package as defined in your working tree (this assumes @command{guix-daemon} is already running on your system; it's OK if it's a different version):"
msgstr "Zu diesem Zweck können alle Befehlszeilenwerkzeuge auch schon benutzt werden, ohne dass Sie @code{make install} laufen lassen. Dazu müssen Sie sich in einer Umgebung befinden, in der alle Abhängigkeiten von Guix verfügbar sind (siehe @ref{Building from Git}) und darin einfach vor jeden Befehl @command{./pre-inst-env} schreiben (das Skript @file{pre-inst-env} befindet sich auf oberster Ebene im Verzeichnis, wo Guix erstellt wird; es wird durch Ausführung von @command{./bootstrap} gefolgt von @command{./configure} erzeugt). Zum Beispiel würden Sie so das Paket @code{hello} erstellen lassen, so wie es in der gegenwärtigen Kopie des Guix-Quellbaums definiert wurde (es wird angenommen, dass @command{guix-daemon} auf Ihrem System bereits läuft, auch wenn es eine andere Version ist):"
#. type: example
-#: guix-git/doc/contributing.texi:221
+#: guix-git/doc/contributing.texi:222
#, no-wrap
msgid "$ ./pre-inst-env guix build hello\n"
msgstr "$ ./pre-inst-env guix build hello\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:225
+#: guix-git/doc/contributing.texi:226
msgid "Similarly, an example for a Guile session using the Guix modules:"
msgstr "Entsprechend würden Sie dies eingeben, um eine Guile-Sitzung zu öffnen, die die Guix-Module benutzt:"
#. type: example
-#: guix-git/doc/contributing.texi:228
+#: guix-git/doc/contributing.texi:229
#, no-wrap
msgid ""
"$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n"
@@ -519,30 +531,30 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/contributing.texi:230
+#: guix-git/doc/contributing.texi:231
#, no-wrap
msgid ";;; (\"x86_64-linux\")\n"
msgstr ";;; (\"x86_64-linux\")\n"
#. type: cindex
-#: guix-git/doc/contributing.texi:233
+#: guix-git/doc/contributing.texi:234
#, no-wrap
msgid "REPL"
msgstr "REPL"
#. type: cindex
-#: guix-git/doc/contributing.texi:234
+#: guix-git/doc/contributing.texi:235
#, no-wrap
msgid "read-eval-print loop"
msgstr "Lese-Auswerten-Schreiben-Schleife"
#. type: Plain text
-#: guix-git/doc/contributing.texi:236
+#: guix-git/doc/contributing.texi:237
msgid "@dots{} and for a REPL (@pxref{Using Guix Interactively}):"
msgstr "…@: und auf einer REPL (siehe @ref{Using Guix Interactively}):"
#. type: example
-#: guix-git/doc/contributing.texi:251
+#: guix-git/doc/contributing.texi:252
#, no-wrap
msgid ""
"$ ./pre-inst-env guile\n"
@@ -574,33 +586,33 @@ msgstr ""
"$1 = 361\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:259
+#: guix-git/doc/contributing.texi:260
msgid "If you are hacking on the daemon and its supporting code or if @command{guix-daemon} is not already running on your system, you can launch it straight from the build tree@footnote{The @option{-E} flag to @command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set such that @command{guix-daemon} and the tools it uses can find the Guile modules they need.}:"
msgstr "Wenn Sie am Daemon und damit zu tun habendem Code hacken oder wenn @command{guix-daemon} nicht bereits auf Ihrem System läuft, können Sie ihn direkt aus dem Verzeichnis heraus starten, wo Sie Guix erstellen lassen@footnote{Die Befehlszeilenoption @option{-E} von @command{sudo} stellt sicher, dass @code{GUILE_LOAD_PATH} richtig gesetzt wird, damit @command{guix-daemon} und die davon benutzten Werkzeuge die von ihnen benötigten Guile-Module finden können.}:"
#. type: example
-#: guix-git/doc/contributing.texi:262
+#: guix-git/doc/contributing.texi:263
#, no-wrap
msgid "$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
msgstr "$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:266
+#: guix-git/doc/contributing.texi:267
msgid "The @command{pre-inst-env} script sets up all the environment variables necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}."
msgstr "Das @command{pre-inst-env}-Skript richtet alle Umgebungsvariablen ein, die nötig sind, um dies zu ermöglichen, einschließlich @env{PATH} und @env{GUILE_LOAD_PATH}."
#. type: Plain text
-#: guix-git/doc/contributing.texi:271
+#: guix-git/doc/contributing.texi:272
msgid "Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the local source tree; it simply updates the @file{~/.config/guix/current} symlink (@pxref{Invoking guix pull}). Run @command{git pull} instead if you want to upgrade your local source tree."
msgstr "Beachten Sie, dass @command{./pre-inst-env guix pull} den lokalen Quellbaum @emph{nicht} aktualisiert; es aktualisiert lediglich die symbolische Verknüpfung @file{~/.config/guix/current} (siehe @ref{Invoking guix pull}). Um Ihren lokalen Quellbaum zu aktualisieren, müssen Sie stattdessen @command{git pull} benutzen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:275
+#: guix-git/doc/contributing.texi:276
msgid "Sometimes, especially if you have recently updated your repository, running @command{./pre-inst-env} will print a message similar to the following example:"
msgstr "Manchmal, insbesondere wenn Sie das Repository aktualisiert haben, wird beim Ausführen mit @command{./pre-inst-env} eine Nachricht ähnlich wie in diesem Beispiel erscheinen:"
#. type: example
-#: guix-git/doc/contributing.texi:279
+#: guix-git/doc/contributing.texi:280
#, no-wrap
msgid ""
";;; note: source file /home/user/projects/guix/guix/progress.scm\n"
@@ -610,61 +622,61 @@ msgstr ""
";;; newer than compiled /home/user/projects/guix/guix/progress.go\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:285
+#: guix-git/doc/contributing.texi:286
msgid "This is only a note and you can safely ignore it. You can get rid of the message by running @command{make -j4}. Until you do, Guile will run slightly slower because it will interpret the code instead of using prepared Guile object (@file{.go}) files."
msgstr "Es handelt sich lediglich um einen Hinweis und Sie können ihn getrost ignorieren. Los werden Sie die Nachricht, indem Sie @command{make -j4} ausführen. Bis dahin läuft Guile etwas langsamer als sonst, weil es den Quellcode interpretieren muss und nicht auf vorbereitete Guile-Objekt-Dateien (@file{.go}) zurückgreifen kann."
#. type: Plain text
-#: guix-git/doc/contributing.texi:290
+#: guix-git/doc/contributing.texi:291
msgid "You can run @command{make} automatically as you work using @command{watchexec} from the @code{watchexec} package. For example, to build again each time you update a package file, run @samp{watchexec -w gnu/packages -- make -j4}."
msgstr "Sie können @command{make} automatisch ausführen lassen, während Sie am Code arbeiten, nämlich mit @command{watchexec} aus dem Paket @code{watchexec}. Um zum Beispiel jedes Mal neu zu erstellen, wenn Sie etwas an einer Paketdatei ändern, führen Sie @samp{watchexec -w gnu/packages -- make -j4} aus."
#. type: Plain text
-#: guix-git/doc/contributing.texi:299
+#: guix-git/doc/contributing.texi:300
msgid "The Perfect Setup to hack on Guix is basically the perfect setup used for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference Manual}). First, you need more than an editor, you need @url{https://www.gnu.org/software/emacs, Emacs}, empowered by the wonderful @url{https://nongnu.org/geiser/, Geiser}. To set that up, run:"
msgstr "Um perfekt für das Hacken an Guix eingerichtet zu sein, brauchen Sie an sich dasselbe wie um perfekt für das Hacken mit Guile (siehe @ref{Using Guile in Emacs,,, guile, Guile-Referenzhandbuch}). Zunächst brauchen Sie mehr als ein Textverarbeitungsprogramm, Sie brauchen @url{https://www.gnu.org/software/emacs, Emacs} zusammen mit den vom wunderbaren @url{https://nongnu.org/geiser/, Geiser} verliehenen Kräften. Um diese zu installieren, können Sie Folgendes ausführen:"
#. type: example
-#: guix-git/doc/contributing.texi:302
+#: guix-git/doc/contributing.texi:303
#, no-wrap
msgid "guix install emacs guile emacs-geiser emacs-geiser-guile\n"
msgstr "guix install emacs guile emacs-geiser emacs-geiser-guile\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:312
+#: guix-git/doc/contributing.texi:313
msgid "Geiser allows for interactive and incremental development from within Emacs: code compilation and evaluation from within buffers, access to on-line documentation (docstrings), context-sensitive completion, @kbd{M-.} to jump to an object definition, a REPL to try out your code, and more (@pxref{Introduction,,, geiser, Geiser User Manual}). If you allow Emacs to load the @file{.dir-locals.el} file at the root of the project checkout, it will cause Geiser to automatically add the local Guix sources to the Guile load path."
msgstr "Geiser ermöglicht interaktive und inkrementelle Entwicklung aus Emacs heraus: Code kann in Puffern kompiliert und ausgewertet werden. Zugang zu Online-Dokumentation (Docstrings) steht ebenso zur Verfügung wie kontextabhängige Vervollständigung, @kbd{M-.} um zu einer Objektdefinition zu springen, eine REPL, um Ihren Code auszuprobieren, und mehr (siehe @ref{Introduction,,, geiser, Geiser User Manual}). Wenn Sie Emacs die Erlaubnis erteilen, die Datei @file{.dir-locals.el} im obersten Verzeichnis Ihres Guix-Checkouts zu laden, wird Geiser die lokalen Guix-Quelldateien automatisch zu Guiles Ladepfad ergänzen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:319
+#: guix-git/doc/contributing.texi:320
msgid "To actually edit the code, Emacs already has a neat Scheme mode. But in addition to that, you must not miss @url{https://www.emacswiki.org/emacs/ParEdit, Paredit}. It provides facilities to directly operate on the syntax tree, such as raising an s-expression or wrapping it, swallowing or rejecting the following s-expression, etc."
msgstr "Um den Code tatsächlich zu bearbeiten, bietet Emacs schon einen netten Scheme-Modus. Aber Sie dürfen auch @url{https://www.emacswiki.org/emacs/ParEdit, Paredit} nicht verpassen. Es bietet Hilfsmittel, um direkt mit dem Syntaxbaum zu arbeiten, und kann so zum Beispiel einen S-Ausdruck hochheben oder ihn umhüllen, ihn verschlucken oder den nachfolgenden S-Ausdruck verwerfen, etc."
#. type: cindex
-#: guix-git/doc/contributing.texi:320
+#: guix-git/doc/contributing.texi:321
#, no-wrap
msgid "code snippets"
msgstr "Code-Schnipsel"
#. type: cindex
-#: guix-git/doc/contributing.texi:321
+#: guix-git/doc/contributing.texi:322
#, no-wrap
msgid "templates"
msgstr "Vorlagen"
#. type: cindex
-#: guix-git/doc/contributing.texi:322
+#: guix-git/doc/contributing.texi:323
#, no-wrap
msgid "reducing boilerplate"
msgstr "Tipparbeit sparen"
#. type: Plain text
-#: guix-git/doc/contributing.texi:332
+#: guix-git/doc/contributing.texi:333
msgid "We also provide templates for common git commit messages and package definitions in the @file{etc/snippets} directory. These templates can be used to expand short trigger strings to interactive text snippets. If you use @url{https://joaotavora.github.io/yasnippet/, YASnippet}, you may want to add the @file{etc/snippets/yas} snippets directory to the @var{yas-snippet-dirs} variable. If you use @url{https://github.com/minad/tempel/, Tempel}, you may want to add the @file{etc/snippets/tempel/*} path to the @var{tempel-path} variable in Emacs."
msgstr "Wir bieten auch Vorlagen an für häufige Git-Commit-Nachrichten und Paketdefinitionen im Verzeichnis @file{etc/snippets}. Diese Vorlagen können benutzt werden, um kurze Auslöse-Zeichenketten zu interaktiven Textschnipseln umzuschreiben. Wenn Sie dazu @url{https://joaotavora.github.io/yasnippet/, YASnippet} verwenden, möchten Sie vielleicht das Schnipselverzeichnis @file{etc/snippets/yas} zu Ihrer @var{yas-snippet-dirs}-Variablen in Emacs hinzufügen. Wenn Sie @url{https://github.com/minad/tempel/, Tempel} verwenden, fügen Sie stattdessen den Pfad @file{etc/snippets/tempel/*} zur Emacs-Variablen @var{tempel-path} hinzu."
#. type: lisp
-#: guix-git/doc/contributing.texi:344
+#: guix-git/doc/contributing.texi:345
#, no-wrap
msgid ""
";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
@@ -690,40 +702,40 @@ msgstr ""
" (add-to-list 'tempel-path \"~/src/guix/etc/snippets/tempel/*\"))\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:352
+#: guix-git/doc/contributing.texi:353
msgid "The commit message snippets depend on @url{https://magit.vc/, Magit} to display staged files. When editing a commit message type @code{add} followed by @kbd{TAB} to insert a commit message template for adding a package; type @code{update} followed by @kbd{TAB} to insert a template for updating a package; type @code{https} followed by @kbd{TAB} to insert a template for changing the home page URI of a package to HTTPS."
msgstr "Die Schnipsel für Commit-Nachrichten setzen @url{https://magit.vc/, Magit} voraus, um zum Commit vorgemerkte Dateien anzuzeigen. Wenn Sie eine Commit-Nachricht bearbeiten, können Sie @code{add} gefolgt von @kbd{TAB} eintippen, um eine Commit-Nachrichten-Vorlage für das Hinzufügen eines Pakets zu erhalten; tippen Sie @code{update} gefolgt von @kbd{TAB} ein, um eine Vorlage zum Aktualisieren eines Pakets zu bekommen; tippen Sie @code{https} gefolgt von @kbd{TAB} ein, um eine Vorlage zum Ändern der Homepage-URI eines Pakets auf HTTPS einzufügen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:358
+#: guix-git/doc/contributing.texi:359
msgid "The main snippet for @code{scheme-mode} is triggered by typing @code{package...} followed by @kbd{TAB}. This snippet also inserts the trigger string @code{origin...}, which can be expanded further. The @code{origin} snippet in turn may insert other trigger strings ending on @code{...}, which also can be expanded further."
msgstr "Das Hauptschnipsel für @code{scheme-mode} wird ausgelöst, indem Sie @code{package...} gefolgt von @kbd{TAB} eintippen. Dieses Snippet fügt auch die Auslöse-Zeichenkette @code{origin...} ein, die danach weiter umgeschrieben werden kann. Das @code{origin}-Schnipsel kann wiederum andere Auslöse-Zeichenketten einfügen, die alle auf @code{...} enden, was selbst wieder weiter umgeschrieben werden kann."
#. type: cindex
-#: guix-git/doc/contributing.texi:359
+#: guix-git/doc/contributing.texi:360
#, no-wrap
msgid "insert or update copyright"
msgstr "Copyright einfügen oder aktualisieren"
#. type: code{#1}
-#: guix-git/doc/contributing.texi:360
+#: guix-git/doc/contributing.texi:361
#, no-wrap
msgid "M-x guix-copyright"
msgstr "M-x guix-copyright"
#. type: code{#1}
-#: guix-git/doc/contributing.texi:361
+#: guix-git/doc/contributing.texi:362
#, no-wrap
msgid "M-x copyright-update"
msgstr "M-x copyright-update"
#. type: Plain text
-#: guix-git/doc/contributing.texi:365
+#: guix-git/doc/contributing.texi:366
msgid "We additionally provide insertion and automatic update of a copyright in @file{etc/copyright.el}. You may want to set your full name, mail, and load a file."
msgstr "Außerden stellen wir automatisches Einfügen und Aktualisieren von Urheberrechtsinformationen („Copyright“) über @file{etc/copyright.el} zur Verfügung. Dazu müssten Sie Ihren vollständigen Namen mit E-Mail-Adresse festlegen und eine Datei laden."
#. type: lisp
-#: guix-git/doc/contributing.texi:371
+#: guix-git/doc/contributing.texi:372
#, no-wrap
msgid ""
"(setq user-full-name \"Alice Doe\")\n"
@@ -737,17 +749,17 @@ msgstr ""
"(load-file \"~/src/guix/etc/copyright.el\")\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:374
+#: guix-git/doc/contributing.texi:375
msgid "To insert a copyright at the current line invoke @code{M-x guix-copyright}."
msgstr "Um an der aktuellen Zeile Copyright-Informationen einzufügen, rufen Sie @code{M-x guix-copyright} auf."
#. type: Plain text
-#: guix-git/doc/contributing.texi:376
+#: guix-git/doc/contributing.texi:377
msgid "To update a copyright you need to specify a @code{copyright-names-regexp}."
msgstr "Um Copyright-Informationen aktualisieren zu können, müssen Sie einen regulären Ausdruck @code{copyright-names-regexp} angeben."
#. type: lisp
-#: guix-git/doc/contributing.texi:380
+#: guix-git/doc/contributing.texi:381
#, no-wrap
msgid ""
"(setq copyright-names-regexp\n"
@@ -757,23 +769,23 @@ msgstr ""
" (format \"%s <%s>\" user-full-name user-mail-address))\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:386
+#: guix-git/doc/contributing.texi:387
msgid "You can check if your copyright is up to date by evaluating @code{M-x copyright-update}. If you want to do it automatically after each buffer save then add @code{(add-hook 'after-save-hook 'copyright-update)} in Emacs."
msgstr "Sie können prüfen, ob Ihre Urheberrechtsinformationen aktuell sind, indem Sie @code{M-x copyright-update} auswerten. Wenn Sie möchten, dass dies automatisch nach jedem Speichern des Puffers geschieht, fügen Sie @code{(add-hook 'after-save-hook 'copyright-update)} in Emacs hinzu."
#. type: subsection
-#: guix-git/doc/contributing.texi:387
+#: guix-git/doc/contributing.texi:388
#, no-wrap
msgid "Viewing Bugs within Emacs"
msgstr "Bugs mit Emacs anschauen"
#. type: Plain text
-#: guix-git/doc/contributing.texi:397
+#: guix-git/doc/contributing.texi:398
msgid "Emacs has a nice minor mode called @code{bug-reference}, which, when combined with @samp{emacs-debbugs} (the Emacs package), can be used to open links such as @samp{<https://bugs.gnu.org/58697>} or @samp{<https://issues.guix.gnu.org/58697>} as bug report buffers. From there you can easily consult the email thread via the Gnus interface, reply or modify the bug status, all without leaving the comfort of Emacs! Below is a sample configuration to add to your @file{~/.emacs} configuration file:"
msgstr ""
#. type: lisp
-#: guix-git/doc/contributing.texi:406
+#: guix-git/doc/contributing.texi:407
#, no-wrap
msgid ""
";;; Bug references.\n"
@@ -787,7 +799,7 @@ msgid ""
msgstr ""
#. type: lisp
-#: guix-git/doc/contributing.texi:434
+#: guix-git/doc/contributing.texi:439
#, no-wrap
msgid ""
";;; This extends the default expression (the top-most, first expression\n"
@@ -813,15 +825,19 @@ msgid ""
" (zero-or-one\n"
" (seq \"#\" (one-or-more\n"
" (char \"0-9\"))))))\n"
-" (seq \"<https://bugs.gnu.org/\"\n"
+" (seq (? \"<\") \"https://bugs.gnu.org/\"\n"
" (group-n 2 (one-or-more (char \"0-9\")))\n"
-" \">\")))))\n"
+" (? \">\"))\n"
+" (seq (? \"<\") \"https://issues.guix.gnu.org/\"\n"
+" (? \"issue/\")\n"
+" (group-n 2 (one-or-more (char \"0-9\")))\n"
+" (? \">\"))))))\n"
"(setq bug-reference-url-format \"https://issues.guix.gnu.org/%s\")\n"
"\n"
msgstr ""
#. type: lisp
-#: guix-git/doc/contributing.texi:439
+#: guix-git/doc/contributing.texi:444
#, no-wrap
msgid ""
"(require 'debbugs)\n"
@@ -832,7 +848,7 @@ msgid ""
msgstr ""
#. type: lisp
-#: guix-git/doc/contributing.texi:450
+#: guix-git/doc/contributing.texi:455
#, no-wrap
msgid ""
";; The following allows Emacs Debbugs user to open the issue directly within\n"
@@ -848,308 +864,417 @@ msgid ""
msgstr ""
#. type: Plain text
-#: guix-git/doc/contributing.texi:455
+#: guix-git/doc/contributing.texi:460
msgid "For more information, refer to @ref{Bug Reference,,, emacs, The GNU Emacs Manual} and @ref{Minor Mode,,, debbugs-ug, The Debbugs User Guide}."
msgstr ""
+#. type: Plain text
+#: guix-git/doc/contributing.texi:467
+msgid "Alternative setups than Emacs may let you work on Guix with a similar development experience and they might work better with the tools you currently use or help you make the transition to Emacs."
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/contributing.texi:473
+msgid "The options listed below only provide the alternatives to the Emacs based setup, which is the most widely used in the Guix community. If you want to really understand how is the perfect setup for Guix development supposed to work, we encourage you to read the section before this regardless the editor you choose to use."
+msgstr ""
+
+#. type: subsection
+#: guix-git/doc/contributing.texi:477 guix-git/doc/contributing.texi:479
+#: guix-git/doc/contributing.texi:480
+#, no-wrap
+msgid "Guile Studio"
+msgstr ""
+
+#. type: menuentry
+#: guix-git/doc/contributing.texi:477
+msgid "First step in your transition to Emacs."
+msgstr ""
+
+#. type: subsection
+#: guix-git/doc/contributing.texi:477 guix-git/doc/contributing.texi:492
+#: guix-git/doc/contributing.texi:493
+#, no-wrap
+msgid "Vim and NeoVim"
+msgstr ""
+
+#. type: menuentry
+#: guix-git/doc/contributing.texi:477
+msgid "When you are evil to the root."
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/contributing.texi:485
+msgid "Guile Studio is a pre-configured Emacs with mostly everything you need to start hacking in Guile. If you are not familiar with Emacs it makes the transition easier for you."
+msgstr ""
+
+#. type: example
+#: guix-git/doc/contributing.texi:488
+#, fuzzy, no-wrap
+#| msgid "guix install glib\n"
+msgid "guix install guile-studio\n"
+msgstr "guix install glib\n"
+
+#. type: Plain text
+#: guix-git/doc/contributing.texi:491
+msgid "Guile Studio comes with Geiser preinstalled and prepared for action."
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/contributing.texi:498
+msgid "Vim (and NeoVim) are also packaged in Guix, just in case you decided to go for the evil path."
+msgstr ""
+
+#. type: example
+#: guix-git/doc/contributing.texi:501
+#, fuzzy, no-wrap
+#| msgid "guix install glib\n"
+msgid "guix install vim\n"
+msgstr "guix install glib\n"
+
+#. type: Plain text
+#: guix-git/doc/contributing.texi:509
+msgid "If you want to enjoy a similar development experience to that in the perfect setup, you should install several plugins to configure the editor. Vim (and NeoVim) have the equivalent to Paredit, @uref{https://www.vim.org/scripts/script.php?script_id=3998, @code{paredit.vim}}, that will help you with the structural editing of Scheme files (the support for very large files is not great, though)."
+msgstr ""
+
+#. type: example
+#: guix-git/doc/contributing.texi:512
+#, fuzzy, no-wrap
+#| msgid "guix install emacs\n"
+msgid "guix install vim-paredit\n"
+msgstr "guix install emacs\n"
+
+#. type: Plain text
+#: guix-git/doc/contributing.texi:516
+msgid "We also recommend that you run @code{:set autoindent} so that your code is automatically indented as you type."
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/contributing.texi:520
+msgid "For the interaction with Git, @uref{https://www.vim.org/scripts/script.php?script_id=2975 @code{fugitive.vim}} is the most commonly used plugin:"
+msgstr ""
+
+#. type: example
+#: guix-git/doc/contributing.texi:523
+#, fuzzy, no-wrap
+#| msgid "guix install glib\n"
+msgid "guix install vim-fugitive\n"
+msgstr "guix install glib\n"
+
+#. type: Plain text
+#: guix-git/doc/contributing.texi:528
+msgid "And of course if you want to interact with Guix directly from inside of vim, using the built-in terminal emulator, we have our very own @code{guix.vim} package!"
+msgstr ""
+
+#. type: example
+#: guix-git/doc/contributing.texi:531
+#, fuzzy, no-wrap
+#| msgid "guix install emacs-guix\n"
+msgid "guix install vim-guix-vim\n"
+msgstr "guix install emacs-guix\n"
+
+#. type: Plain text
+#: guix-git/doc/contributing.texi:536
+msgid "In NeoVim you can even make a similar setup to Geiser using @url{https://conjure.fun/, Conjure} that lets you connect to a running Guile process and inject your code there live (sadly it's not packaged in Guix yet)."
+msgstr ""
+
#. type: cindex
-#: guix-git/doc/contributing.texi:459
+#: guix-git/doc/contributing.texi:541
#, no-wrap
msgid "packages, creating"
msgstr "Pakete definieren"
#. type: Plain text
-#: guix-git/doc/contributing.texi:463
+#: guix-git/doc/contributing.texi:545
msgid "The GNU distribution is nascent and may well lack some of your favorite packages. This section describes how you can help make the distribution grow."
msgstr "Die GNU-Distribution ist noch sehr jung und einige Ihrer Lieblingspakete könnten noch fehlen. Dieser Abschnitt beschreibt, wie Sie dabei helfen können, die Distribution wachsen zu lassen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:471
+#: guix-git/doc/contributing.texi:553
msgid "Free software packages are usually distributed in the form of @dfn{source code tarballs}---typically @file{tar.gz} files that contain all the source files. Adding a package to the distribution means essentially two things: adding a @dfn{recipe} that describes how to build the package, including a list of other packages required to build it, and adding @dfn{package metadata} along with that recipe, such as a description and licensing information."
msgstr "Pakete mit freier Software werden normalerweise in Form von @dfn{Tarballs mit dem Quellcode} angeboten@tie{}– typischerweise in @file{tar.gz}-Archivdateien, in denen alle Quelldateien enthalten sind. Ein Paket zur Distribution hinzuzufügen, bedeutet also zweierlei Dinge: Zum einen fügt man ein @dfn{Rezept} ein, das beschreibt, wie das Paket erstellt werden kann, einschließlich einer Liste von anderen Paketen, die für diese Erstellung gebraucht werden, zum anderen fügt man @dfn{Paketmetadaten} zum Rezept hinzu, wie zum Beispiel eine Beschreibung und Lizenzinformationen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:480
+#: guix-git/doc/contributing.texi:562
msgid "In Guix all this information is embodied in @dfn{package definitions}. Package definitions provide a high-level view of the package. They are written using the syntax of the Scheme programming language; in fact, for each package we define a variable bound to the package definition, and export that variable from a module (@pxref{Package Modules}). However, in-depth Scheme knowledge is @emph{not} a prerequisite for creating packages. For more information on package definitions, @pxref{Defining Packages}."
msgstr "In Guix sind all diese Informationen ein Teil der @dfn{Paketdefinitionen}. In Paketdefinitionen hat man eine abstrahierte, hochsprachliche Sicht auf das Paket. Sie werden in der Syntax der Scheme-Programmiersprache verfasst; tatsächlich definieren wir für jedes Paket eine Variable und binden diese an dessen Definition, um die Variable anschließend aus einem Modul heraus zu exportieren (siehe @ref{Package Modules}). Allerdings ist @emph{kein} tiefgehendes Wissen über Scheme erforderlich, um Pakete zu erstellen. Mehr Informationen über Paketdefinitionen finden Sie im Abschnitt @ref{Defining Packages}."
#. type: Plain text
-#: guix-git/doc/contributing.texi:486
+#: guix-git/doc/contributing.texi:568
msgid "Once a package definition is in place, stored in a file in the Guix source tree, it can be tested using the @command{guix build} command (@pxref{Invoking guix build}). For example, assuming the new package is called @code{gnew}, you may run this command from the Guix build tree (@pxref{Running Guix Before It Is Installed}):"
msgstr "Eine fertige Paketdefinition kann, nachdem sie in eine Datei im Quell-Verzeichnisbaum von Guix eingesetzt wurde, mit Hilfe des Befehls @command{guix build} getestet werden (siehe @ref{Invoking guix build}). Wenn das Paket zum Beispiel den Namen @code{gnew} trägt, können Sie folgenden Befehl aus dem Erstellungs-Verzeichnisbaum von Guix heraus ausführen (siehe @ref{Running Guix Before It Is Installed}):"
#. type: example
-#: guix-git/doc/contributing.texi:489
+#: guix-git/doc/contributing.texi:571
#, no-wrap
msgid "./pre-inst-env guix build gnew --keep-failed\n"
msgstr "./pre-inst-env guix build gnew --keep-failed\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:495
+#: guix-git/doc/contributing.texi:577
msgid "Using @code{--keep-failed} makes it easier to debug build failures since it provides access to the failed build tree. Another useful command-line option when debugging is @code{--log-file}, to access the build log."
msgstr "Wenn Sie @code{--keep-failed} benutzen, ist es leichter, fehlgeschlagene Erstellungen zu untersuchen, weil dann der Verzeichnisbaum der fehlgeschlagenen Erstellung zugänglich bleibt. Eine andere nützliche Befehlszeilenoption bei der Fehlersuche ist @code{--log-file}, womit das Erstellungsprotokoll eingesehen werden kann."
#. type: Plain text
-#: guix-git/doc/contributing.texi:500
+#: guix-git/doc/contributing.texi:582
msgid "If the package is unknown to the @command{guix} command, it may be that the source file contains a syntax error, or lacks a @code{define-public} clause to export the package variable. To figure it out, you may load the module from Guile to get more information about the actual error:"
msgstr "Wenn der @command{guix}-Befehl das Paket nicht erkennt, kann es daran liegen, dass die Quelldatei einen Syntaxfehler hat oder ihr eine @code{define-public}-Klausel fehlt, die die Paketvariable exportiert. Um das herauszufinden, können Sie das Modul aus Guile heraus laden, um mehr Informationen über den tatsächlichen Fehler zu bekommen:"
#. type: example
-#: guix-git/doc/contributing.texi:503
+#: guix-git/doc/contributing.texi:585
#, no-wrap
msgid "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n"
msgstr "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:510
+#: guix-git/doc/contributing.texi:592
msgid "Once your package builds correctly, please send us a patch (@pxref{Submitting Patches}). Well, if you need help, we will be happy to help you too. Once the patch is committed in the Guix repository, the new package automatically gets built on the supported platforms by @url{https://@value{SUBSTITUTE-SERVER-1}, our continuous integration system}."
msgstr "Sobald Ihr Paket erfolgreich erstellt werden kann, schicken Sie uns bitte einen Patch (siehe @ref{Submitting Patches}). Wenn Sie dabei Hilfe brauchen sollten, helfen wir gerne. Ab dem Zeitpunkt, zu dem der Patch als Commit ins Guix-Repository eingepflegt wurde, wird das neue Paket automatisch durch @url{https://@value{SUBSTITUTE-SERVER-1}, unser System zur Kontinuierlichen Integration} auf allen unterstützten Plattformen erstellt."
#. type: cindex
-#: guix-git/doc/contributing.texi:511
+#: guix-git/doc/contributing.texi:593
#, no-wrap
msgid "substituter"
msgstr "Substituierer"
#. type: Plain text
-#: guix-git/doc/contributing.texi:518
+#: guix-git/doc/contributing.texi:600
msgid "Users can obtain the new package definition simply by running @command{guix pull} (@pxref{Invoking guix pull}). When @code{@value{SUBSTITUTE-SERVER-1}} is done building the package, installing the package automatically downloads binaries from there (@pxref{Substitutes}). The only place where human intervention is needed is to review and apply the patch."
msgstr "Benutzern steht die neue Paketdefinition zur Verfügung, nachdem sie das nächste Mal @command{guix pull} ausgeführt haben (siehe @ref{Invoking guix pull}). Wenn @code{@value{SUBSTITUTE-SERVER-1}} selbst damit fertig ist, das Paket zu erstellen, werden bei der Installation automatisch Binärdateien von dort heruntergeladen (siehe @ref{Substitutes}). Menschliches Eingreifen muss nur stattfinden, um den Patch zu überprüfen und anzuwenden."
#. type: subsection
-#: guix-git/doc/contributing.texi:534 guix-git/doc/contributing.texi:536
-#: guix-git/doc/contributing.texi:537
+#: guix-git/doc/contributing.texi:616 guix-git/doc/contributing.texi:618
+#: guix-git/doc/contributing.texi:619
#, no-wrap
msgid "Software Freedom"
msgstr "Software-Freiheit"
#. type: menuentry
-#: guix-git/doc/contributing.texi:534
+#: guix-git/doc/contributing.texi:616
msgid "What may go into the distribution."
msgstr "Was in die Distribution aufgenommen werden darf."
#. type: subsection
-#: guix-git/doc/contributing.texi:534 guix-git/doc/contributing.texi:564
-#: guix-git/doc/contributing.texi:565
+#: guix-git/doc/contributing.texi:616 guix-git/doc/contributing.texi:646
+#: guix-git/doc/contributing.texi:647
#, no-wrap
msgid "Package Naming"
msgstr "Paketbenennung"
#. type: menuentry
-#: guix-git/doc/contributing.texi:534
+#: guix-git/doc/contributing.texi:616
msgid "What's in a name?"
msgstr "Was macht einen Namen aus?"
#. type: subsection
-#: guix-git/doc/contributing.texi:534 guix-git/doc/contributing.texi:597
-#: guix-git/doc/contributing.texi:598
+#: guix-git/doc/contributing.texi:616 guix-git/doc/contributing.texi:679
+#: guix-git/doc/contributing.texi:680
#, no-wrap
msgid "Version Numbers"
msgstr "Versionsnummern"
#. type: menuentry
-#: guix-git/doc/contributing.texi:534
+#: guix-git/doc/contributing.texi:616
msgid "When the name is not enough."
msgstr "Wenn der Name noch nicht genug ist."
#. type: subsection
-#: guix-git/doc/contributing.texi:534 guix-git/doc/contributing.texi:704
-#: guix-git/doc/contributing.texi:705
+#: guix-git/doc/contributing.texi:616 guix-git/doc/contributing.texi:786
+#: guix-git/doc/contributing.texi:787
#, no-wrap
msgid "Synopses and Descriptions"
msgstr "Zusammenfassungen und Beschreibungen"
#. type: menuentry
-#: guix-git/doc/contributing.texi:534
+#: guix-git/doc/contributing.texi:616
msgid "Helping users find the right package."
msgstr "Den Nutzern helfen, das richtige Paket zu finden."
#. type: subsection
-#: guix-git/doc/contributing.texi:534 guix-git/doc/contributing.texi:783
-#: guix-git/doc/contributing.texi:784
+#: guix-git/doc/contributing.texi:616 guix-git/doc/contributing.texi:865
+#: guix-git/doc/contributing.texi:866
#, no-wrap
msgid "Snippets versus Phases"
msgstr "„Snippets“ oder Phasen"
#. type: menuentry
-#: guix-git/doc/contributing.texi:534
+#: guix-git/doc/contributing.texi:616
msgid "Whether to use a snippet, or a build phase."
msgstr "Benutzt man Code-Schnipsel oder eine Erstellungsphase?"
#. type: subsection
-#: guix-git/doc/contributing.texi:534 guix-git/doc/contributing.texi:798
-#: guix-git/doc/contributing.texi:799
+#: guix-git/doc/contributing.texi:616 guix-git/doc/contributing.texi:880
+#: guix-git/doc/contributing.texi:881
#, fuzzy, no-wrap
#| msgid "Declaring Channel Dependencies"
msgid "Cyclic Module Dependencies"
msgstr "Kanalabhängigkeiten deklarieren"
#. type: menuentry
-#: guix-git/doc/contributing.texi:534
+#: guix-git/doc/contributing.texi:616
#, fuzzy
#| msgid "Going further"
msgid "Going full circle."
msgstr "Vertiefung"
#. type: subsection
-#: guix-git/doc/contributing.texi:534 guix-git/doc/contributing.texi:853
-#: guix-git/doc/contributing.texi:854 guix-git/doc/guix.texi:2162
+#: guix-git/doc/contributing.texi:616 guix-git/doc/contributing.texi:935
+#: guix-git/doc/contributing.texi:936 guix-git/doc/guix.texi:2170
#, no-wrap
msgid "Emacs Packages"
msgstr "Emacs-Pakete"
#. type: menuentry
-#: guix-git/doc/contributing.texi:534
+#: guix-git/doc/contributing.texi:616
msgid "Your Elisp fix."
msgstr "Für Ihren Elisp-Bedarf."
#. type: subsection
-#: guix-git/doc/contributing.texi:534 guix-git/doc/contributing.texi:893
-#: guix-git/doc/contributing.texi:894
+#: guix-git/doc/contributing.texi:616 guix-git/doc/contributing.texi:975
+#: guix-git/doc/contributing.texi:976
#, no-wrap
msgid "Python Modules"
msgstr "Python-Module"
#. type: menuentry
-#: guix-git/doc/contributing.texi:534
+#: guix-git/doc/contributing.texi:616
msgid "A touch of British comedy."
msgstr "Ein Touch britischer Comedy."
#. type: subsection
-#: guix-git/doc/contributing.texi:534 guix-git/doc/contributing.texi:988
-#: guix-git/doc/contributing.texi:989
+#: guix-git/doc/contributing.texi:616 guix-git/doc/contributing.texi:1070
+#: guix-git/doc/contributing.texi:1071
#, no-wrap
msgid "Perl Modules"
msgstr "Perl-Module"
#. type: menuentry
-#: guix-git/doc/contributing.texi:534
+#: guix-git/doc/contributing.texi:616
msgid "Little pearls."
msgstr "Kleine Perlen."
#. type: subsection
-#: guix-git/doc/contributing.texi:534 guix-git/doc/contributing.texi:1004
-#: guix-git/doc/contributing.texi:1005
+#: guix-git/doc/contributing.texi:616 guix-git/doc/contributing.texi:1086
+#: guix-git/doc/contributing.texi:1087
#, no-wrap
msgid "Java Packages"
msgstr "Java-Pakete"
#. type: menuentry
-#: guix-git/doc/contributing.texi:534
+#: guix-git/doc/contributing.texi:616
msgid "Coffee break."
msgstr "Kaffeepause."
#. type: subsection
-#: guix-git/doc/contributing.texi:534 guix-git/doc/contributing.texi:1024
-#: guix-git/doc/contributing.texi:1025
+#: guix-git/doc/contributing.texi:616 guix-git/doc/contributing.texi:1106
+#: guix-git/doc/contributing.texi:1107
#, no-wrap
msgid "Rust Crates"
msgstr "Rust-Crates"
#. type: menuentry
-#: guix-git/doc/contributing.texi:534
+#: guix-git/doc/contributing.texi:616
msgid "Beware of oxidation."
msgstr "Umgang mit Oxidation."
#. type: subsection
-#: guix-git/doc/contributing.texi:534 guix-git/doc/contributing.texi:1058
-#: guix-git/doc/contributing.texi:1059
+#: guix-git/doc/contributing.texi:616 guix-git/doc/contributing.texi:1140
+#: guix-git/doc/contributing.texi:1141
#, no-wrap
msgid "Elm Packages"
msgstr "Elm-Pakete"
#. type: menuentry
-#: guix-git/doc/contributing.texi:534
+#: guix-git/doc/contributing.texi:616
msgid "Trees of browser code"
msgstr "Bäume aus Browser-Code."
#. type: subsection
-#: guix-git/doc/contributing.texi:534 guix-git/doc/contributing.texi:1139
-#: guix-git/doc/contributing.texi:1140
+#: guix-git/doc/contributing.texi:616 guix-git/doc/contributing.texi:1221
+#: guix-git/doc/contributing.texi:1222
#, no-wrap
msgid "Fonts"
msgstr "Schriftarten"
#. type: menuentry
-#: guix-git/doc/contributing.texi:534
+#: guix-git/doc/contributing.texi:616
msgid "Fond of fonts."
msgstr "Schriften verschriftlicht."
#. type: cindex
-#: guix-git/doc/contributing.texi:540
+#: guix-git/doc/contributing.texi:622
#, no-wrap
msgid "free software"
msgstr "freie Software"
#. type: Plain text
-#: guix-git/doc/contributing.texi:548
+#: guix-git/doc/contributing.texi:630
msgid "The GNU operating system has been developed so that users can have freedom in their computing. GNU is @dfn{free software}, meaning that users have the @url{https://www.gnu.org/philosophy/free-sw.html,four essential freedoms}: to run the program, to study and change the program in source code form, to redistribute exact copies, and to distribute modified versions. Packages found in the GNU distribution provide only software that conveys these four freedoms."
msgstr "Das GNU-Betriebssystem wurde entwickelt, um Menschen Freiheit zu ermöglichen, wie sie ihre Rechengeräte benutzen. GNU ist @dfn{freie Software}, was bedeutet, dass Benutzer die @url{https://www.gnu.org/philosophy/free-sw.de.html,vier wesentlichen Freiheiten} haben: das Programm auszuführen, es zu untersuchen, das Programm in Form seines Quellcodes anzupassen und exakte Kopien ebenso wie modifizierte Versionen davon an andere weiterzugeben. Die Pakete, die Sie in der GNU-Distribution finden, stellen ausschließlich solche Software zur Verfügung, die Ihnen diese vier Freiheiten gewährt."
#. type: Plain text
-#: guix-git/doc/contributing.texi:554
+#: guix-git/doc/contributing.texi:636
msgid "In addition, the GNU distribution follow the @url{https://www.gnu.org/distros/free-system-distribution-guidelines.html,free software distribution guidelines}. Among other things, these guidelines reject non-free firmware, recommendations of non-free software, and discuss ways to deal with trademarks and patents."
msgstr "Außerdem befolgt die GNU-Distribution die @url{https://www.gnu.org/distros/free-system-distribution-guidelines.de.html,Richtlinien für freie Systemverteilungen}. Unter anderem werden unfreie Firmware sowie Empfehlungen von unfreier Software abgelehnt und Möglichkeiten zum Umgang mit Markenzeichen und Patenten werden diskutiert."
#. type: Plain text
-#: guix-git/doc/contributing.texi:562
+#: guix-git/doc/contributing.texi:644
msgid "Some otherwise free upstream package sources contain a small and optional subset that violates the above guidelines, for instance because this subset is itself non-free code. When that happens, the offending items are removed with appropriate patches or code snippets in the @code{origin} form of the package (@pxref{Defining Packages}). This way, @code{guix build --source} returns the ``freed'' source rather than the unmodified upstream source."
msgstr "Ansonsten freier Paketquellcode von manchen Anbietern enthält einen kleinen und optionalen Teil, der diese Richtlinien verletzt. Zum Beispiel kann dieser Teil selbst unfreier Code sein. Wenn das vorkommt, wird der sie verletzende Teil mit angemessenen Patches oder Code-Schnipseln innerhalb der @code{origin}-Form des Pakets entfernt (siehe @ref{Defining Packages}). Dadurch liefert Ihnen @code{guix build --source} nur den „befreiten“ Quellcode und nicht den unmodifizierten Quellcode des Anbieters."
#. type: cindex
-#: guix-git/doc/contributing.texi:567
+#: guix-git/doc/contributing.texi:649
#, no-wrap
msgid "package name"
msgstr "Paketname"
#. type: Plain text
-#: guix-git/doc/contributing.texi:575
+#: guix-git/doc/contributing.texi:657
msgid "A package actually has two names associated with it. First, there is the name of the @emph{Scheme variable}, the one following @code{define-public}. By this name, the package can be made known in the Scheme code, for instance as input to another package. Second, there is the string in the @code{name} field of a package definition. This name is used by package management commands such as @command{guix package} and @command{guix build}."
msgstr "Tatsächlich sind mit jedem Paket zwei Namen assoziiert: Zum einen gibt es den Namen der @emph{Scheme-Variablen}, der direkt nach @code{define-public} im Code steht. Mit diesem Namen kann das Paket im Scheme-Code nutzbar gemacht und zum Beispiel als Eingabe eines anderen Pakets benannt werden. Zum anderen gibt es die Zeichenkette im @code{name}-Feld einer Paketdefinition. Dieser Name wird von Paketverwaltungsbefehlen wie @command{guix package} und @command{guix build} benutzt."
#. type: Plain text
-#: guix-git/doc/contributing.texi:580
+#: guix-git/doc/contributing.texi:662
msgid "Both are usually the same and correspond to the lowercase conversion of the project name chosen upstream, with underscores replaced with hyphens. For instance, GNUnet is available as @code{gnunet}, and SDL_net as @code{sdl-net}."
msgstr "Meistens sind die beiden identisch und ergeben sich aus einer Umwandlung des vom Anbieter verwendeten Projektnamens in Kleinbuchstaben, bei der Unterstriche durch Bindestriche ersetzt werden. Zum Beispiel wird GNUnet unter dem Paketnamen @code{gnunet} angeboten und SDL_net als @code{sdl-net}."
#. type: Plain text
-#: guix-git/doc/contributing.texi:588
+#: guix-git/doc/contributing.texi:670
msgid "A noteworthy exception to this rule is when the project name is only a single character, or if an older maintained project with the same name already exists---regardless of whether it has already been packaged for Guix. Use common sense to make such names unambiguous and meaningful. For example, Guix's package for the shell called ``s'' upstream is @code{s-shell} and @emph{not} @code{s}. Feel free to ask your fellow hackers for inspiration."
msgstr "Es gibt eine nennenswerte Ausnahme zu dieser Regel, nämlich wenn der Projektname nur ein einzelnes Zeichen ist oder auch wenn es bereits ein älteres, aktives Projekt mit demselben Namen gibt, egal ob es schon für Guix verpackt wurde. Lassen Sie Ihren gesunden Menschenverstand einen eindeutigen und sprechenden Namen auswählen. Zum Beispiel wurde die Shell, die bei ihrem Anbieter „s“ heißt, @code{s-shell} genannt und @emph{nicht} @code{s}. Sie sind eingeladen, Ihre Hackerkollegen um Inspiration zu bitten."
#. type: Plain text
-#: guix-git/doc/contributing.texi:593
+#: guix-git/doc/contributing.texi:675
msgid "We do not add @code{lib} prefixes for library packages, unless these are already part of the official project name. But @pxref{Python Modules} and @ref{Perl Modules} for special rules concerning modules for the Python and Perl languages."
msgstr "An Bibliothekspakete hängen wir vorne kein @code{lib} als Präfix an, solange es nicht Teil des offiziellen Projektnamens ist. Beachten Sie aber die Abschnitte @ref{Python Modules} und @ref{Perl Modules}, in denen Sonderregeln für Module der Programmiersprachen Python und Perl beschrieben sind."
#. type: Plain text
-#: guix-git/doc/contributing.texi:595
+#: guix-git/doc/contributing.texi:677
msgid "Font package names are handled differently, @pxref{Fonts}."
msgstr "Auch Pakete mit Schriftarten werden anders behandelt, siehe @ref{Fonts}."
#. type: cindex
-#: guix-git/doc/contributing.texi:600
+#: guix-git/doc/contributing.texi:682
#, no-wrap
msgid "package version"
msgstr "Paketversion"
#. type: Plain text
-#: guix-git/doc/contributing.texi:609
+#: guix-git/doc/contributing.texi:691
msgid "We usually package only the latest version of a given free software project. But sometimes, for instance for incompatible library versions, two (or more) versions of the same package are needed. These require different Scheme variable names. We use the name as defined in @ref{Package Naming} for the most recent version; previous versions use the same name, suffixed by @code{-} and the smallest prefix of the version number that may distinguish the two versions."
msgstr "Normalerweise stellen wir nur für die neueste Version eines Freie-Software-Projekts ein Paket bereit. Manchmal gibt es allerdings Fälle wie zum Beispiel untereinander inkompatible Bibliotheksversionen, so dass zwei (oder mehr) Versionen desselben Pakets angeboten werden müssen. In diesem Fall müssen wir verschiedene Scheme-Variablennamen benutzen. Wir benutzen dann für die neueste Version den Namen, wie er im Abschnitt @ref{Package Naming} festgelegt wird, und geben vorherigen Versionen denselben Namen mit einem zusätzlichen Suffix aus @code{-} gefolgt vom kürzesten Präfix der Versionsnummer, mit dem noch immer zwei Versionen unterschieden werden können."
#. type: Plain text
-#: guix-git/doc/contributing.texi:612
+#: guix-git/doc/contributing.texi:694
msgid "The name inside the package definition is the same for all versions of a package and does not contain any version number."
msgstr "Der Name innerhalb der Paketdefinition ist hingegen derselbe für alle Versionen eines Pakets und enthält keine Versionsnummer."
#. type: Plain text
-#: guix-git/doc/contributing.texi:614
+#: guix-git/doc/contributing.texi:696
msgid "For instance, the versions 2.24.20 and 3.9.12 of GTK+ may be packaged as follows:"
msgstr "Zum Beispiel können für GTK in den Versionen 2.24.20 und 3.9.12 Pakete wie folgt geschrieben werden:"
#. type: lisp
-#: guix-git/doc/contributing.texi:626
+#: guix-git/doc/contributing.texi:708
#, no-wrap
msgid ""
"(define-public gtk+\n"
@@ -1175,12 +1300,12 @@ msgstr ""
" …))\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:628
+#: guix-git/doc/contributing.texi:710
msgid "If we also wanted GTK+ 3.8.2, this would be packaged as"
msgstr "Wenn wir auch GTK 3.8.2 wollten, würden wir das Paket schreiben als"
#. type: lisp
-#: guix-git/doc/contributing.texi:634
+#: guix-git/doc/contributing.texi:716
#, no-wrap
msgid ""
"(define-public gtk+-3.8\n"
@@ -1196,23 +1321,23 @@ msgstr ""
" …))\n"
#. type: cindex
-#: guix-git/doc/contributing.texi:638
+#: guix-git/doc/contributing.texi:720
#, no-wrap
msgid "version number, for VCS snapshots"
msgstr "Versionsnummer, bei Snapshots aus Versionskontrolle"
#. type: Plain text
-#: guix-git/doc/contributing.texi:644
+#: guix-git/doc/contributing.texi:726
msgid "Occasionally, we package snapshots of upstream's version control system (VCS) instead of formal releases. This should remain exceptional, because it is up to upstream developers to clarify what the stable release is. Yet, it is sometimes necessary. So, what should we put in the @code{version} field?"
msgstr "Gelegentlich fügen wir auch Pakete für Snapshots aus dem Versionskontrollsystem des Anbieters statt formaler Veröffentlichungen zur Distribution hinzu. Das sollte die Ausnahme bleiben, weil die Entwickler selbst klarstellen sollten, welche Version als die stabile Veröffentlichung gelten sollte, ab und zu ist es jedoch notwendig. Was also sollten wir dann im @code{version}-Feld eintragen?"
#. type: Plain text
-#: guix-git/doc/contributing.texi:652
+#: guix-git/doc/contributing.texi:734
msgid "Clearly, we need to make the commit identifier of the VCS snapshot visible in the version string, but we also need to make sure that the version string is monotonically increasing so that @command{guix package --upgrade} can determine which version is newer. Since commit identifiers, notably with Git, are not monotonically increasing, we add a revision number that we increase each time we upgrade to a newer snapshot. The resulting version string looks like this:"
msgstr "Offensichtlich muss der Bezeichner des Commits, den wir als Snapshot aus dem Versionskontrollsystem nehmen, in der Versionszeichenkette zu erkennen sein, aber wir müssen auch sicherstellen, dass die Version monoton steigend ist, damit @command{guix package --upgrade} feststellen kann, welche Version die neuere ist. Weil Commit-Bezeichner, insbesondere bei Git, nicht monoton steigen, müssen wir eine Revisionsnummer hinzufügen, die wir jedes Mal erhöhen, wenn wir das Paket auf einen neueren Snapshot aktualisieren. Die sich ergebende Versionszeichenkette sieht dann so aus:"
#. type: example
-#: guix-git/doc/contributing.texi:661
+#: guix-git/doc/contributing.texi:743
#, no-wrap
msgid ""
"2.0.11-3.cabba9e\n"
@@ -1232,12 +1357,12 @@ msgstr ""
"die neueste Version, die der Anbieter veröffentlicht hat\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:671
+#: guix-git/doc/contributing.texi:753
msgid "It is a good idea to strip commit identifiers in the @code{version} field to, say, 7 digits. It avoids an aesthetic annoyance (assuming aesthetics have a role to play here) as well as problems related to OS limits such as the maximum shebang length (127 bytes for the Linux kernel). There are helper functions for doing this for packages using @code{git-fetch} or @code{hg-fetch} (see below). It is best to use the full commit identifiers in @code{origin}s, though, to avoid ambiguities. A typical package definition may look like this:"
msgstr "Es ist eine gute Idee, die Commit-Bezeichner im @code{version}-Feld auf, sagen wir, 7 Ziffern zu beschränken. Das sieht besser aus (wenn das hier eine Rolle spielen sollte) und vermeidet Probleme, die mit der maximalen Länge von Shebangs zu tun haben (127 Bytes beim Linux-Kernel). Bei Paketen, die @code{git-fetch} oder @code{hg-fetch} benutzen, können Sie dafür Hilfsfunktionen nutzen (siehe unten). Am besten benutzen Sie in @code{origin}s jedoch den vollständigen Commit-Bezeichner, um Mehrdeutigkeiten zu vermeiden. Eine typische Paketdefinition könnte so aussehen:"
#. type: lisp
-#: guix-git/doc/contributing.texi:688
+#: guix-git/doc/contributing.texi:770
#, no-wrap
msgid ""
"(define my-package\n"
@@ -1271,18 +1396,18 @@ msgstr ""
" )))\n"
#. type: deffn
-#: guix-git/doc/contributing.texi:690
+#: guix-git/doc/contributing.texi:772
#, no-wrap
msgid "{Procedure} git-version @var{VERSION} @var{REVISION} @var{COMMIT}"
msgstr "{Prozedur} git-version @var{VERSION} @var{REVISION} @var{COMMIT}"
#. type: deffn
-#: guix-git/doc/contributing.texi:692
+#: guix-git/doc/contributing.texi:774
msgid "Return the version string for packages using @code{git-fetch}."
msgstr "Liefert die Zeichenkette für die Version bei Paketen, die @code{git-fetch} benutzen."
#. type: lisp
-#: guix-git/doc/contributing.texi:696
+#: guix-git/doc/contributing.texi:778
#, no-wrap
msgid ""
"(git-version \"0.2.3\" \"0\" \"93818c936ee7e2f1ba1b315578bde363a7d43d05\")\n"
@@ -1292,71 +1417,71 @@ msgstr ""
"@result{} \"0.2.3-0.93818c9\"\n"
#. type: deffn
-#: guix-git/doc/contributing.texi:699
+#: guix-git/doc/contributing.texi:781
#, no-wrap
msgid "{Procedure} hg-version @var{VERSION} @var{REVISION} @var{CHANGESET}"
msgstr "{Prozedur} hg-version @var{VERSION} @var{REVISION} @var{ÄNDERUNGSSATZ}"
#. type: deffn
-#: guix-git/doc/contributing.texi:702
+#: guix-git/doc/contributing.texi:784
msgid "Return the version string for packages using @code{hg-fetch}. It works in the same way as @code{git-version}."
msgstr "Liefert die Zeichenkette für die Version bei Paketen, die @code{hg-fetch} benutzen.<"
#. type: cindex
-#: guix-git/doc/contributing.texi:707
+#: guix-git/doc/contributing.texi:789
#, no-wrap
msgid "package description"
msgstr "Paketbeschreibung"
#. type: cindex
-#: guix-git/doc/contributing.texi:708
+#: guix-git/doc/contributing.texi:790
#, no-wrap
msgid "package synopsis"
msgstr "Paketzusammenfassung"
#. type: Plain text
-#: guix-git/doc/contributing.texi:715
+#: guix-git/doc/contributing.texi:797
msgid "As we have seen before, each package in GNU@tie{}Guix includes a synopsis and a description (@pxref{Defining Packages}). Synopses and descriptions are important: They are what @command{guix package --search} searches, and a crucial piece of information to help users determine whether a given package suits their needs. Consequently, packagers should pay attention to what goes into them."
msgstr "Wie wir bereits gesehen haben, enthält jedes Paket in GNU@tie{}Guix eine (im Code englischsprachige) Zusammenfassung (englisch: Synopsis) und eine Beschreibung (englisch: Description; siehe @ref{Defining Packages}). Zusammenfassungen und Beschreibungen sind wichtig: Sie werden mit @command{guix package --search} durchsucht und stellen eine entscheidende Informationsquelle für Nutzer dar, die entscheiden wollen, ob das Paket Ihren Bedürfnissen entspricht, daher sollten Paketentwickler achtgeben, was sie dort eintragen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:723
+#: guix-git/doc/contributing.texi:805
msgid "Synopses must start with a capital letter and must not end with a period. They must not start with ``a'' or ``the'', which usually does not bring anything; for instance, prefer ``File-frobbing tool'' over ``A tool that frobs files''. The synopsis should say what the package is---e.g., ``Core GNU utilities (file, text, shell)''---or what it is used for---e.g., the synopsis for GNU@tie{}grep is ``Print lines matching a pattern''."
msgstr "Zusammenfassungen müssen mit einem Großbuchstaben beginnen und dürfen nicht mit einem Punkt enden. Sie dürfen nicht mit den Artikeln „a“ oder „the“ beginnen, die meistens ohnehin nichts zum Verständnis beitragen. Zum Beispiel sollte „File-frobbing tool“ gegenüber „A tool that frobs files“ vorgezogen werden. Die Zusammenfassung sollte aussagen, um was es sich beim Paket handelt@tie{}– z.B.@: „Core GNU utilities (file, text, shell)“@tie{}–, oder aussagen, wofür es benutzt wird@tie{}– z.B.@: ist die Zusammenfassung für GNU@tie{}grep „Print lines matching a pattern“."
#. type: Plain text
-#: guix-git/doc/contributing.texi:733
+#: guix-git/doc/contributing.texi:815
msgid "Keep in mind that the synopsis must be meaningful for a very wide audience. For example, ``Manipulate alignments in the SAM format'' might make sense for a seasoned bioinformatics researcher, but might be fairly unhelpful or even misleading to a non-specialized audience. It is a good idea to come up with a synopsis that gives an idea of the application domain of the package. In this example, this might give something like ``Manipulate nucleotide sequence alignments'', which hopefully gives the user a better idea of whether this is what they are looking for."
msgstr "Beachten Sie, dass die Zusammenfassung für eine sehr große Leserschaft einen Sinn ergeben muss. Zum Beispiel würde „Manipulate alignments in the SAM format“ vielleicht von einem erfahrenen Forscher in der Bioinformatik verstanden, könnte für die Nicht-Spezialisten in Guix’ Zielgruppe aber wenig hilfreich sein oder würde diesen sogar eine falsche Vorstellung geben. Es ist eine gute Idee, sich eine Zusammenfassung zu überlegen, die eine Vorstellung von der Anwendungsdomäne des Pakets vermittelt. Im Beispiel hier würden sich die Nutzer mit „Manipulate nucleotide sequence alignments“ hoffentlich ein besseres Bild davon machen können, ob das Paket ist, wonach sie suchen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:741
+#: guix-git/doc/contributing.texi:823
msgid "Descriptions should take between five and ten lines. Use full sentences, and avoid using acronyms without first introducing them. Please avoid marketing phrases such as ``world-leading'', ``industrial-strength'', and ``next-generation'', and avoid superlatives like ``the most advanced''---they are not helpful to users looking for a package and may even sound suspicious. Instead, try to be factual, mentioning use cases and features."
msgstr "Beschreibungen sollten zwischen fünf und zehn Zeilen lang sein. Benutzen Sie vollständige Sätze und vermeiden Sie Abkürzungen, die Sie nicht zuvor eingeführt haben. Vermeiden Sie bitte Marketing-Phrasen wie „world-leading“ („weltweit führend“), „industrial-strength“ („industrietauglich“) und „next-generation“ („der nächsten Generation“) ebenso wie Superlative wie „the most advanced“ („das fortgeschrittenste“)@tie{}– davon haben Nutzer nichts, wenn sie ein Paket suchen, und es könnte sogar verdächtig klingen. Versuchen Sie stattdessen, bei den Fakten zu bleiben und dabei Anwendungszwecke und Funktionalitäten zu erwähnen."
#. type: cindex
-#: guix-git/doc/contributing.texi:742
+#: guix-git/doc/contributing.texi:824
#, no-wrap
msgid "Texinfo markup, in package descriptions"
msgstr "Texinfo-Auszeichnungen, in Paketbeschreibungen"
#. type: Plain text
-#: guix-git/doc/contributing.texi:751
+#: guix-git/doc/contributing.texi:833
msgid "Descriptions can include Texinfo markup, which is useful to introduce ornaments such as @code{@@code} or @code{@@dfn}, bullet lists, or hyperlinks (@pxref{Overview,,, texinfo, GNU Texinfo}). However you should be careful when using some characters for example @samp{@@} and curly braces which are the basic special characters in Texinfo (@pxref{Special Characters,,, texinfo, GNU Texinfo}). User interfaces such as @command{guix show} take care of rendering it appropriately."
msgstr "Beschreibungen können wie bei Texinfo ausgezeichneten Text enthalten. Das bedeutet, Text kann Verzierungen wie @code{@@code} oder @code{@@dfn}, Auflistungen oder Hyperlinks enthalten (siehe @ref{Overview,,, texinfo, GNU Texinfo}). Sie sollten allerdings vorsichtig sein, wenn Sie bestimmte Zeichen wie @samp{@@} und geschweifte Klammern schreiben, weil es sich dabei um die grundlegenden Sonderzeichen in Texinfo handelt (siehe @ref{Special Characters,,, texinfo, GNU Texinfo}). Benutzungsschnittstellen wie @command{guix show} kümmern sich darum, solche Auszeichnungen angemessen darzustellen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:757
+#: guix-git/doc/contributing.texi:839
msgid "Synopses and descriptions are translated by volunteers @uref{https://translate.fedoraproject.org/projects/guix/packages, at Weblate} so that as many users as possible can read them in their native language. User interfaces search them and display them in the language specified by the current locale."
msgstr "Zusammenfassungen und Beschreibungen werden von Freiwilligen @uref{https://translate.fedoraproject.org/projects/guix/packages, bei Weblate} übersetzt, damit so viele Nutzer wie möglich sie in ihrer Muttersprache lesen können. Mit Schnittstellen für Benutzer können sie in der von der aktuell eingestellten Locale festgelegten Sprache durchsucht und angezeigt werden."
#. type: Plain text
-#: guix-git/doc/contributing.texi:762
+#: guix-git/doc/contributing.texi:844
msgid "To allow @command{xgettext} to extract them as translatable strings, synopses and descriptions @emph{must be literal strings}. This means that you cannot use @code{string-append} or @code{format} to construct these strings:"
msgstr "Damit @command{xgettext} sie als übersetzbare Zeichenketten extrahieren kann, @emph{müssen} Zusammenfassungen und Beschreibungen einfache Zeichenketten-Literale sein. Das bedeutet, dass Sie diese Zeichenketten nicht mit Prozeduren wie @code{string-append} oder @code{format} konstruieren können:"
#. type: lisp
-#: guix-git/doc/contributing.texi:768
+#: guix-git/doc/contributing.texi:850
#, no-wrap
msgid ""
"(package\n"
@@ -1370,12 +1495,12 @@ msgstr ""
" (description (string-append \"This is \" \"*not*\" \" translatable.\")))\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:776
+#: guix-git/doc/contributing.texi:858
msgid "Translation is a lot of work so, as a packager, please pay even more attention to your synopses and descriptions as every change may entail additional work for translators. In order to help them, it is possible to make recommendations or instructions visible to them by inserting special comments like this (@pxref{xgettext Invocation,,, gettext, GNU Gettext}):"
msgstr "Übersetzen ist viel Arbeit, also passen Sie als Paketentwickler bitte umso mehr auf, wenn Sie Ihre Zusammenfassungen und Beschreibungen formulieren, weil jede Änderung zusätzliche Arbeit für Übersetzer bedeutet. Um den Übersetzern zu helfen, können Sie Empfehlungen und Anweisungen für diese sichtbar machen, indem Sie spezielle Kommentare wie in diesem Beispiel einfügen (siehe @ref{xgettext Invocation,,, gettext, GNU Gettext}):"
#. type: lisp
-#: guix-git/doc/contributing.texi:781
+#: guix-git/doc/contributing.texi:863
#, no-wrap
msgid ""
";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n"
@@ -1387,54 +1512,54 @@ msgstr ""
"for the X11 resize-and-rotate (RandR) extension. …\")\n"
#. type: cindex
-#: guix-git/doc/contributing.texi:786
+#: guix-git/doc/contributing.texi:868
#, no-wrap
msgid "snippets, when to use"
msgstr "snippet-Feld, wann man es benutzt"
#. type: Plain text
-#: guix-git/doc/contributing.texi:797
+#: guix-git/doc/contributing.texi:879
msgid "The boundary between using an origin snippet versus a build phase to modify the sources of a package can be elusive. Origin snippets are typically used to remove unwanted files such as bundled libraries, nonfree sources, or to apply simple substitutions. The source derived from an origin should produce a source that can be used to build the package on any system that the upstream package supports (i.e., act as the corresponding source). In particular, origin snippets must not embed store items in the sources; such patching should rather be done using build phases. Refer to the @code{origin} record documentation for more information (@pxref{origin Reference})."
msgstr "Die Grenze, wann man Code-Schnipsel im @code{origin}-„@code{snippet}“-Feld gegenüber einer Erstellungsphase für Änderungen an den Quelldateien eines Pakets bevorzugen sollte, ist fließend. Schnipsel im Paketursprung werden meistens dazu benutzt, unerwünschte Dateien wie z.B.@: gebündelte Bibliotheken oder unfreie Quelldateien zu entfernen, oder um einfache Textersetzungen durchzuführen. Die Quelle, die sich aus einem Paketursprung ableitet, sollte Quellcode erzeugen, um das Paket auf jedem vom Anbieter unterstützten System zu erstellen (d.h.@: um als dessen „corresponding source“, „korrespondierender Quelltext“, herzuhalten). Insbesondere dürfen Snippets im Paketursprung keine Store-Objekte in den Quelldateien einbetten; solche Anpassungen sollten besser in Erstellungsphasen stattfinden. Schauen Sie in die Dokumentation des @code{origin}-Verbundsobjekts für weitere Informationen (siehe @ref{origin Reference})."
#. type: Plain text
-#: guix-git/doc/contributing.texi:805
+#: guix-git/doc/contributing.texi:887
msgid "While there cannot be circular dependencies between packages, Guile's lax module loading mechanism allows circular dependencies between Guile modules, which doesn't cause problems as long as the following conditions are followed for two modules part of a dependency cycle:"
msgstr ""
#. type: cindex
-#: guix-git/doc/contributing.texi:806
+#: guix-git/doc/contributing.texi:888
#, no-wrap
msgid "rules to cope with circular module dependencies"
msgstr ""
#. type: enumerate
-#: guix-git/doc/contributing.texi:810
+#: guix-git/doc/contributing.texi:892
msgid "Macros are not shared between the co-dependent modules"
msgstr ""
#. type: enumerate
-#: guix-git/doc/contributing.texi:814
+#: guix-git/doc/contributing.texi:896
msgid "Top-level variables are only referenced in delayed (@i{thunked}) package fields: @code{arguments}, @code{native-inputs}, @code{inputs}, @code{propagated-inputs} or @code{replacement}"
msgstr ""
#. type: enumerate
-#: guix-git/doc/contributing.texi:817
+#: guix-git/doc/contributing.texi:899
msgid "Procedures referencing top-level variables from another module are not called at the top level of a module themselves."
msgstr ""
#. type: Plain text
-#: guix-git/doc/contributing.texi:823
+#: guix-git/doc/contributing.texi:905
msgid "Straying away from the above rules may work while there are no dependency cycles between modules, but given such cycles are confusing and difficult to troubleshoot, it is best to follow the rules to avoid introducing problems down the line."
msgstr ""
#. type: Plain text
-#: guix-git/doc/contributing.texi:826
+#: guix-git/doc/contributing.texi:908
msgid "Here is a common trap to avoid:"
msgstr ""
#. type: lisp
-#: guix-git/doc/contributing.texi:832
+#: guix-git/doc/contributing.texi:914
#, no-wrap
msgid ""
"(define-public avr-binutils\n"
@@ -1444,12 +1569,12 @@ msgid ""
msgstr ""
#. type: Plain text
-#: guix-git/doc/contributing.texi:841
+#: guix-git/doc/contributing.texi:923
msgid "In the above example, the @code{avr-binutils} package was defined in the module @code{(gnu packages avr)}, and the @code{cross-binutils} procedure in @code{(gnu packages cross-base)}. Because the @code{inherit} field is not delayed (thunked), it is evaluated at the top level at load time, which is problematic in the presence of module dependency cycles. This could be resolved by turning the package into a procedure instead, like:"
msgstr ""
#. type: lisp
-#: guix-git/doc/contributing.texi:847
+#: guix-git/doc/contributing.texi:929
#, no-wrap
msgid ""
"(define (make-avr-binutils)\n"
@@ -1459,254 +1584,254 @@ msgid ""
msgstr ""
#. type: Plain text
-#: guix-git/doc/contributing.texi:852
+#: guix-git/doc/contributing.texi:934
msgid "Care would need to be taken to ensure the above procedure is only ever used in a package delayed fields or within another procedure also not called at the top level."
msgstr ""
#. type: cindex
-#: guix-git/doc/contributing.texi:856
+#: guix-git/doc/contributing.texi:938
#, no-wrap
msgid "emacs, packaging"
msgstr "emacs, Pakete dafür schreiben"
#. type: cindex
-#: guix-git/doc/contributing.texi:857
+#: guix-git/doc/contributing.texi:939
#, no-wrap
msgid "elisp, packaging"
msgstr "elisp, Pakete dafür schreiben"
#. type: Plain text
-#: guix-git/doc/contributing.texi:869
+#: guix-git/doc/contributing.texi:951
msgid "Emacs packages should preferably use the Emacs build system (@pxref{emacs-build-system}), for uniformity and the benefits provided by its build phases, such as the auto-generation of the autoloads file and the byte compilation of the sources. Because there is no standardized way to run a test suite for Emacs packages, tests are disabled by default. When a test suite is available, it should be enabled by setting the @code{#:tests?} argument to @code{#true}. By default, the command to run the test is @command{make check}, but any command can be specified via the @code{#:test-command} argument. The @code{#:test-command} argument expects a list containing a command and its arguments, to be invoked during the @code{check} phase."
msgstr "Für Emacs-Pakete sollte man bevorzugt das Emacs-Erstellungssystem benutzen (siehe @ref{emacs-build-system}), wegen der Einheitlichkeit und der Vorteile durch seine Erstellungsphasen. Dazu gehören das automatische Erzeugen der Autoloads-Datei und das Kompilieren des Quellcodes zu Bytecode (Byte Compilation). Weil es keinen Standard gibt, wie ein Testkatalog eines Emacs-Pakets ausgeführt wird, sind Tests nach Vorgabe abgeschaltet. Wenn es einen Testkatalog gibt, sollte er aktiviert werden, indem Sie das Argument @code{#:tests?} auf @code{#true} setzen. Vorgegeben ist, die Tests mit dem Befehl @command{make check} auszuführen, aber mit dem Argument @code{#:test-command} kann ein beliebiger anderer Befehl festgelegt werden. Für das Argument @code{#:test-command} wird eine Liste aus dem Befehl und den Argumenten an den Befehl erwartet. Er wird während der @code{check}-Phase aufgerufen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:874
+#: guix-git/doc/contributing.texi:956
msgid "The Elisp dependencies of Emacs packages are typically provided as @code{propagated-inputs} when required at run time. As for other packages, build or test dependencies should be specified as @code{native-inputs}."
msgstr "Die Elisp-Abhängigkeiten von Emacs-Paketen werden typischerweise als @code{propagated-inputs} bereitgestellt, wenn sie zur Laufzeit benötigt werden. Wie bei anderen Paketen sollten Abhängigkeiten zum Erstellen oder Testen als @code{native-inputs} angegeben werden."
#. type: Plain text
-#: guix-git/doc/contributing.texi:883
+#: guix-git/doc/contributing.texi:965
msgid "Emacs packages sometimes depend on resources directories that should be installed along the Elisp files. The @code{#:include} argument can be used for that purpose, by specifying a list of regexps to match. The best practice when using the @code{#:include} argument is to extend rather than override its default value (accessible via the @code{%default-include} variable). As an example, a yasnippet extension package typically include a @file{snippets} directory, which could be copied to the installation directory using:"
msgstr "Manchmal hängen Emacs-Pakete von Ressourcenverzeichnissen ab, die zusammen mit den Elisp-Dateien installiert werden sollten. Diese lassen sich mit dem Argument @code{#:include} kennzeichnen, indem eine Liste dazu passender regulärer Ausdrücke angegeben wird. Idealerweise ergänzen Sie den Vorgabewert des @code{#:include}-Arguments (aus der Variablen @code{%default-include}), statt ihn zu ersetzen. Zum Beispiel enthält ein yasnippet-Erweiterungspaket typischerweise ein @file{snippets}-Verzeichnis, das wie folgt in das Installationsverzeichnis kopiert werden könnte:"
#. type: lisp
-#: guix-git/doc/contributing.texi:886
+#: guix-git/doc/contributing.texi:968
#, no-wrap
msgid "#:include (cons \"^snippets/\" %default-include)\n"
msgstr "#:include (cons \"^snippets/\" %default-include)\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:892
+#: guix-git/doc/contributing.texi:974
msgid "When encountering problems, it is wise to check for the presence of the @code{Package-Requires} extension header in the package main source file, and whether any dependencies and their versions listed therein are satisfied."
msgstr "Wenn Sie auf Probleme stoßen, ist es ratsam, auf eine Kopfzeile @code{Package-Requires} in der Hauptquellcodedatei des Pakets zu achten, ob allen Abhängigkeiten und deren dort gelisteten Versionen genügt wird."
#. type: cindex
-#: guix-git/doc/contributing.texi:896
+#: guix-git/doc/contributing.texi:978
#, no-wrap
msgid "python"
msgstr "python"
#. type: Plain text
-#: guix-git/doc/contributing.texi:902
+#: guix-git/doc/contributing.texi:984
msgid "We currently package Python 2 and Python 3, under the Scheme variable names @code{python-2} and @code{python} as explained in @ref{Version Numbers}. To avoid confusion and naming clashes with other programming languages, it seems desirable that the name of a package for a Python module contains the word @code{python}."
msgstr "Zurzeit stellen wir ein Paket für Python 2 und eines für Python 3 jeweils über die Scheme-Variablen mit den Namen @code{python-2} und @code{python} zur Verfügung, entsprechend der Erklärungen im Abschnitt @ref{Version Numbers}. Um Verwirrungen und Namenskollisionen mit anderen Programmiersprachen zu vermeiden, erscheint es als wünschenswert, dass der Name eines Pakets für ein Python-Modul auch das Wort @code{python} enthält."
#. type: Plain text
-#: guix-git/doc/contributing.texi:908
+#: guix-git/doc/contributing.texi:990
msgid "Some modules are compatible with only one version of Python, others with both. If the package Foo is compiled with Python 3, we name it @code{python-foo}. If it is compiled with Python 2, we name it @code{python2-foo}. Python 2 packages are being removed from the distribution; please do no not submit any new Python 2 packages."
msgstr "Manche Module sind nur mit einer Version von Python kompatibel, andere mit beiden. Wenn das Paket Foo mit Python 3 kompiliert wird, geben wir ihm den Namen @code{python-foo}. Wenn es mit Python 2 kompiliert wird, wählen wir den Namen @code{python2-foo}. Wir sind dabei, Python-2-Pakete aus der Distribution zu entfernen; bitte reichen Sie keine neuen Python-2-Pakete mehr ein."
#. type: Plain text
-#: guix-git/doc/contributing.texi:914
+#: guix-git/doc/contributing.texi:996
msgid "If a project already contains the word @code{python}, we drop this; for instance, the module python-dateutil is packaged under the names @code{python-dateutil} and @code{python2-dateutil}. If the project name starts with @code{py} (e.g.@: @code{pytz}), we keep it and prefix it as described above."
msgstr "Wenn ein Projekt bereits das Wort @code{python} im Namen hat, lassen wir es weg; zum Beispiel ist das Modul python-dateutil unter den Namen @code{python-dateutil} und @code{python2-dateutil} verfügbar. Wenn der Projektname mit @code{py} beginnt (z.B.@: @code{pytz}), behalten wir ihn bei und stellen das oben beschriebene Präfix voran."
#. type: quotation
-#: guix-git/doc/contributing.texi:928
+#: guix-git/doc/contributing.texi:1010
msgid "Currently there are two different build systems for Python packages in Guix: @var{python-build-system} and @var{pyproject-build-system}. For the longest time, Python packages were built from an informally specified @file{setup.py} file. That worked amazingly well, considering Python's success, but was difficult to build tooling around. As a result, a host of alternative build systems emerged and the community eventually settled on a @url{https://peps.python.org/pep-0517/, formal standard} for specifying build requirements. @var{pyproject-build-system} is Guix's implementation of this standard. It is considered ``experimental'' in that it does not yet support all the various PEP-517 @emph{build backends}, but you are encouraged to try it for new Python packages and report any problems. It will eventually be deprecated and merged into @var{python-build-system}."
msgstr "Im Moment sind gleich zwei verschiedene Erstellungssysteme für Python-Pakete in Guix in Umlauf: @var{python-build-system} und @var{pyproject-build-system}. Lange Zeit hat man sein Python-Paket aus einer Datei @file{setup.py} heraus erstellt, deren gewachsene Struktur @emph{nicht} formell festgelegt war. Das lief überraschend gut, wenn man sich den Erfolg von Python anschaut, allerdings ließen sich nur schwer Werkzeuge zur Handhabung schreiben. Daraus ergab sich eine Vielzahl alternativer Erstellungssysteme, bis sich die Gemeinschaft auf einen @url{https://peps.python.org/pep-0517/, formellen Standard} zum Festlegen der Erstellungsanforderungen geeinigt hatte. @var{pyproject-build-system} ist die Implementierung dieses Standards in Guix. Wir stufen es als „experimentell“ ein, insofern als dass es noch nicht all die @emph{Build Backends} für PEP-517 unterstützt. Dennoch würden wir es begrüßen, wenn Sie es für neue Python-Pakete verwenden und Probleme melden würden. Schlussendlich wird es für veraltet erklärt werden und in @var{python-build-system} aufgehen."
#. type: subsubsection
-#: guix-git/doc/contributing.texi:930
+#: guix-git/doc/contributing.texi:1012
#, no-wrap
msgid "Specifying Dependencies"
msgstr "Abhängigkeiten angeben"
#. type: cindex
-#: guix-git/doc/contributing.texi:931
+#: guix-git/doc/contributing.texi:1013
#, no-wrap
msgid "inputs, for Python packages"
msgstr "Eingaben, für Python-Pakete"
#. type: Plain text
-#: guix-git/doc/contributing.texi:938
+#: guix-git/doc/contributing.texi:1020
msgid "Dependency information for Python packages is usually available in the package source tree, with varying degrees of accuracy: in the @file{pyproject.toml} file, the @file{setup.py} file, in @file{requirements.txt}, or in @file{tox.ini} (the latter mostly for test dependencies)."
msgstr "Informationen über Abhängigkeiten von Python-Paketen, welche mal mehr und mal weniger stimmen, finden sich normalerweise im Verzeichnisbaum des Paketquellcodes: in der Datei @file{pyproject.toml}, der Datei @file{setup.py}, in @file{requirements.txt} oder in @file{tox.ini} (letztere beherbergt hauptsächlich Abhängigkeiten für Tests)."
#. type: Plain text
-#: guix-git/doc/contributing.texi:944
+#: guix-git/doc/contributing.texi:1026
msgid "Your mission, when writing a recipe for a Python package, is to map these dependencies to the appropriate type of ``input'' (@pxref{package Reference, inputs}). Although the @code{pypi} importer normally does a good job (@pxref{Invoking guix import}), you may want to check the following check list to determine which dependency goes where."
msgstr "Wenn Sie ein Rezept für ein Python-Paket schreiben, lautet Ihr Auftrag, diese Abhängigkeiten auf angemessene Arten von „Eingaben“ abzubilden (siehe @ref{package Reference, Eingaben}). Obwohl der @code{pypi}-Importer hier normalerweise eine gute Arbeit leistet (siehe @ref{Invoking guix import}), könnten Sie die folgende Prüfliste durchgehen wollen, um zu bestimmen, wo welche Abhängigkeit eingeordnet werden sollte."
#. type: itemize
-#: guix-git/doc/contributing.texi:951
+#: guix-git/doc/contributing.texi:1033
msgid "We currently package Python with @code{setuptools} and @code{pip} installed per default. This is about to change, and users are encouraged to use @code{python-toolchain} if they want a build environment for Python."
msgstr "Derzeit ist unser Python-Paket so geschrieben, dass es @code{setuptools} und @code{pip} mitinstalliert. Das wird sich bald ändern und wir möchten unseren Nutzern nahelegen, für Python-Entwicklungsumgebungen @code{python-toolchain} zu verwenden."
#. type: itemize
-#: guix-git/doc/contributing.texi:954
+#: guix-git/doc/contributing.texi:1036
msgid "@command{guix lint} will warn if @code{setuptools} or @code{pip} are added as native-inputs because they are generally not necessary."
msgstr "@command{guix lint} wird Sie mit einer Warnung darauf aufmerksam machen, wenn @code{setuptools} oder @code{pip} zu den nativen Eingaben hinzugefügt wurden, weil man im Allgemeinen keines der beiden anzugeben braucht."
#. type: itemize
-#: guix-git/doc/contributing.texi:960
+#: guix-git/doc/contributing.texi:1042
msgid "Python dependencies required at run time go into @code{propagated-inputs}. They are typically defined with the @code{install_requires} keyword in @file{setup.py}, or in the @file{requirements.txt} file."
msgstr "Python-Abhängigkeiten, die zur Laufzeit gebraucht werden, stehen im @code{propagated-inputs}-Feld. Solche werden typischerweise mit dem Schlüsselwort @code{install_requires} in @file{setup.py} oder in der Datei @file{requirements.txt} definiert."
#. type: itemize
-#: guix-git/doc/contributing.texi:969
+#: guix-git/doc/contributing.texi:1051
msgid "Python packages required only at build time---e.g., those listed under @code{build-system.requires} in @file{pyproject.toml} or with the @code{setup_requires} keyword in @file{setup.py}---or dependencies only for testing---e.g., those in @code{tests_require} or @file{tox.ini}---go into @code{native-inputs}. The rationale is that (1) they do not need to be propagated because they are not needed at run time, and (2) in a cross-compilation context, it's the ``native'' input that we'd want."
msgstr "Python-Pakete, die nur zur Erstellungszeit gebraucht werden@tie{}– z.B.@: jene, die in @file{pyproject.toml} unter @code{build-system.requires} stehen oder die mit dem Schlüsselwort @code{setup_requires} in @file{setup.py} aufgeführt sind@tie{}– oder Abhängigkeiten, die nur zum Testen gebraucht werden@tie{}– also die in @code{tests_require} oder in der @file{tox.ini}@tie{}–, schreibt man in @code{native-inputs}. Die Begründung ist, dass (1) sie nicht propagiert werden müssen, weil sie zur Laufzeit nicht gebraucht werden, und (2) wir beim Cross-Kompilieren die „native“ Eingabe des Wirtssystems wollen."
#. type: itemize
-#: guix-git/doc/contributing.texi:973
+#: guix-git/doc/contributing.texi:1055
msgid "Examples are the @code{pytest}, @code{mock}, and @code{nose} test frameworks. Of course if any of these packages is also required at run-time, it needs to go to @code{propagated-inputs}."
msgstr "Beispiele sind die Testrahmen @code{pytest}, @code{mock} und @code{nose}. Wenn natürlich irgendeines dieser Pakete auch zur Laufzeit benötigt wird, muss es doch in @code{propagated-inputs} stehen."
#. type: itemize
-#: guix-git/doc/contributing.texi:978
+#: guix-git/doc/contributing.texi:1060
msgid "Anything that does not fall in the previous categories goes to @code{inputs}, for example programs or C libraries required for building Python packages containing C extensions."
msgstr "Alles, was nicht in die bisher genannten Kategorien fällt, steht in @code{inputs}, zum Beispiel Programme oder C-Bibliotheken, die zur Erstellung von Python-Paketen mit enthaltenen C-Erweiterungen gebraucht werden."
#. type: itemize
-#: guix-git/doc/contributing.texi:984
+#: guix-git/doc/contributing.texi:1066
msgid "If a Python package has optional dependencies (@code{extras_require}), it is up to you to decide whether to add them or not, based on their usefulness/overhead ratio (@pxref{Submitting Patches, @command{guix size}})."
msgstr "Wenn ein Python-Paket optionale Abhängigkeiten hat (@code{extras_require}), ist es Ihnen überlassen, sie hinzuzufügen oder nicht hinzuzufügen, je nachdem wie es um deren Verhältnis von Nützlichkeit zu anderen Nachteilen steht (siehe @ref{Submitting Patches, @command{guix size}})."
#. type: cindex
-#: guix-git/doc/contributing.texi:991
+#: guix-git/doc/contributing.texi:1073
#, no-wrap
msgid "perl"
msgstr "perl"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1002
+#: guix-git/doc/contributing.texi:1084
msgid "Perl programs standing for themselves are named as any other package, using the lowercase upstream name. For Perl packages containing a single class, we use the lowercase class name, replace all occurrences of @code{::} by dashes and prepend the prefix @code{perl-}. So the class @code{XML::Parser} becomes @code{perl-xml-parser}. Modules containing several classes keep their lowercase upstream name and are also prepended by @code{perl-}. Such modules tend to have the word @code{perl} somewhere in their name, which gets dropped in favor of the prefix. For instance, @code{libwww-perl} becomes @code{perl-libwww}."
msgstr "Eigenständige Perl-Programme bekommen einen Namen wie jedes andere Paket, unter Nutzung des Namens beim Anbieter in Kleinbuchstaben. Für Perl-Pakete, die eine einzelne Klasse enthalten, ersetzen wir alle Vorkommen von @code{::} durch Striche und hängen davor das Präfix @code{perl-} an. Die Klasse @code{XML::Parser} wird also zu @code{perl-xml-parser}. Module, die mehrere Klassen beinhalten, behalten ihren Namen beim Anbieter, in Kleinbuchstaben gesetzt, und auch an sie wird vorne das Präfix @code{perl-} angehängt. Es gibt die Tendenz, solche Module mit dem Wort @code{perl} irgendwo im Namen zu versehen, das wird zu Gunsten des Präfixes weggelassen. Zum Beispiel wird aus @code{libwww-perl} bei uns @code{perl-libwww}."
#. type: cindex
-#: guix-git/doc/contributing.texi:1007
+#: guix-git/doc/contributing.texi:1089
#, no-wrap
msgid "java"
msgstr "java"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1010
+#: guix-git/doc/contributing.texi:1092
msgid "Java programs standing for themselves are named as any other package, using the lowercase upstream name."
msgstr "Eigenständige Java-Programme werden wie jedes andere Paket benannt, d.h.@: mit ihrem in Kleinbuchstaben geschriebenen Namen beim Anbieter."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1016
+#: guix-git/doc/contributing.texi:1098
msgid "To avoid confusion and naming clashes with other programming languages, it is desirable that the name of a package for a Java package is prefixed with @code{java-}. If a project already contains the word @code{java}, we drop this; for instance, the package @code{ngsjava} is packaged under the name @code{java-ngs}."
msgstr "Um Verwirrungen und Namenskollisionen mit anderen Programmiersprachen zu vermeiden, ist es wünschenswert, dass dem Namem eines Pakets zu einem Java-Paket das Präfix @code{java-} vorangestellt wird. Wenn ein Projekt bereits das Wort @code{java} im Namen trägt, lassen wir es weg; zum Beispiel befindet sich das Java-Paket @code{ngsjava} in einem Paket namens @code{java-ngs}."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1022
+#: guix-git/doc/contributing.texi:1104
msgid "For Java packages containing a single class or a small class hierarchy, we use the lowercase class name, replace all occurrences of @code{.} by dashes and prepend the prefix @code{java-}. So the class @code{apache.commons.cli} becomes package @code{java-apache-commons-cli}."
msgstr "Bei Java-Paketen, die eine einzelne Klasse oder eine kleine Klassenhierarchie enthalten, benutzen wir den Klassennamen in Kleinbuchstaben und ersetzen dabei alle Vorkommen von @code{.} durch Striche und setzen das Präfix @code{java-} davor. Die Klasse @code{apache.commons.cli} wird also zum Paket @code{java-apache-commons-cli}."
#. type: cindex
-#: guix-git/doc/contributing.texi:1027
+#: guix-git/doc/contributing.texi:1109
#, no-wrap
msgid "rust"
msgstr "rust"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1030
+#: guix-git/doc/contributing.texi:1112
msgid "Rust programs standing for themselves are named as any other package, using the lowercase upstream name."
msgstr "Eigenständige Rust-Programme werden wie jedes andere Paket benannt, d.h.@: mit ihrem in Kleinbuchstaben geschriebenen Namen beim Anbieter."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1034
+#: guix-git/doc/contributing.texi:1116
msgid "To prevent namespace collisions we prefix all other Rust packages with the @code{rust-} prefix. The name should be changed to lowercase as appropriate and dashes should remain in place."
msgstr "Um Namensraumkollisionen vorzubeugen, versehen wir alle anderen Rust-Pakete mit dem Präfix @code{rust-}. Der Name sollte wie sonst in Kleinbuchstaben geschrieben werden und Bindestriche dort bleiben, wo sie sind."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1040
+#: guix-git/doc/contributing.texi:1122
msgid "In the rust ecosystem it is common for multiple incompatible versions of a package to be used at any given time, so all package definitions should have a versioned suffix. The versioned suffix is the left-most non-zero digit (and any leading zeros, of course). This follows the ``caret'' version scheme intended by Cargo. Examples@: @code{rust-clap-2}, @code{rust-rand-0.6}."
msgstr "Im Rust-Ökosystem werden oft mehrere inkompatible Versionen desselben Pakets gleichzeitig benutzt, daher sollte allen Paketdefinitionen ein die Version angebendes Suffix gegeben werden. Das Versionssuffix besteht aus der am weitesten links stehenden Ziffer, die @emph{nicht} null ist (natürlich mit allen führenden Nullen). Dabei folgen wir dem von Cargo gewollten „Caret“-Versionsschema. Beispiele: @code{rust-clap-2}, @code{rust-rand-0.6}."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1050
+#: guix-git/doc/contributing.texi:1132
msgid "Because of the difficulty in reusing rust packages as pre-compiled inputs for other packages the Cargo build system (@pxref{Build Systems, @code{cargo-build-system}}) presents the @code{#:cargo-inputs} and @code{cargo-development-inputs} keywords as build system arguments. It would be helpful to think of these as similar to @code{propagated-inputs} and @code{native-inputs}. Rust @code{dependencies} and @code{build-dependencies} should go in @code{#:cargo-inputs}, and @code{dev-dependencies} should go in @code{#:cargo-development-inputs}. If a Rust package links to other libraries then the standard placement in @code{inputs} and the like should be used."
msgstr "Weil die Verwendung von Rust-Paketen als vorab kompilierte Eingaben für andere Pakete besondere Schwierigkeiten macht, gibt es im Cargo-Erstellungssystem (siehe @ref{Build Systems, @code{cargo-build-system}}) die Schlüsselwörter @code{#:cargo-inputs} und @code{#:cargo-development-inputs} als Argumente an das Erstellungssystem. Es ist hilfreich, sie sich ähnlich wie @code{propagated-inputs} und @code{native-inputs} vorzustellen. Was in Rust @code{dependencies} und @code{build-dependencies} sind, sollte unter @code{#:cargo-inputs} aufgeführt werden, während @code{dev-dependencies} zu den @code{#:cargo-development-inputs} gehören. Wenn ein Rust-Paket andere Bibliotheken einbindet, gilt die normale Einordnung in @code{inputs} usw.@: wie anderswo auch."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1056
+#: guix-git/doc/contributing.texi:1138
msgid "Care should be taken to ensure the correct version of dependencies are used; to this end we try to refrain from skipping the tests or using @code{#:skip-build?} when possible. Of course this is not always possible, as the package may be developed for a different Operating System, depend on features from the Nightly Rust compiler, or the test suite may have atrophied since it was released."
msgstr "Man sollte aufpassen, dass man die richtige Version von Abhängigkeiten benutzt. Deswegen versuchen wir, Tests nicht mit @code{#:skip-build?} zu überspringen, wenn es möglich ist. Natürlich geht das nicht immer, vielleicht weil das Paket für ein anderes Betriebssystem entwickelt wurde, Funktionalitäten der allerneuesten „Nightly“-Version des Rust-Compilers voraussetzt oder weil der Testkatalog seit seiner Veröffentlichung verkümmert ist."
#. type: cindex
-#: guix-git/doc/contributing.texi:1061
+#: guix-git/doc/contributing.texi:1143
#, no-wrap
msgid "Elm"
msgstr "Elm"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1064
+#: guix-git/doc/contributing.texi:1146
msgid "Elm applications can be named like other software: their names need not mention Elm."
msgstr "Sie dürfen Elm-Anwendungen Namen geben wie bei anderer Software: Elm muss @emph{nicht} im Namen vorkommen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1070
+#: guix-git/doc/contributing.texi:1152
msgid "Packages in the Elm sense (see @code{elm-build-system} under @ref{Build Systems}) are required use names of the format @var{author}@code{/}@var{project}, where both the @var{author} and the @var{project} may contain hyphens internally, and the @var{author} sometimes contains uppercase letters."
msgstr "Die Namen dessen, was bei Elm als Paket bekannt ist (siehe @code{elm-build-system} im Unterabschnitt @ref{Build Systems}), müssen dagegen diesem Format folgen: @var{Autor}@code{/}@var{Projekt}, wo sowohl im @var{Autor} als auch im @var{Projekt} Bindestriche vorkommen können, und manchmal im @var{Autor} sogar Großbuchstaben enthalten sind."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1074
+#: guix-git/doc/contributing.texi:1156
msgid "To form the Guix package name from the upstream name, we follow a convention similar to Python packages (@pxref{Python Modules}), adding an @code{elm-} prefix unless the name would already begin with @code{elm-}."
msgstr "Um daraus einen Guix-Paketnamen zu bilden, folgen wir einer ähnlichen Konvention wie bei Python-Paketen (siehe @ref{Python Modules}), d.h.@: vorne kommt ein Präfix @code{elm-}, außer der Name beginnt ohnehin mit @code{elm-}."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1081
+#: guix-git/doc/contributing.texi:1163
msgid "In many cases we can reconstruct an Elm package's upstream name heuristically, but, since conversion to a Guix-style name involves a loss of information, this is not always possible. Care should be taken to add the @code{'upstream-name} property when necessary so that @samp{guix import elm} will work correctly (@pxref{Invoking guix import}). The most notable scenarios when explicitly specifying the upstream name is necessary are:"
msgstr "In vielen Fällen lässt sich der Name eines Elm-Pakets, den es beim Anbieter trägt, heuristisch rekonstruieren, aber @emph{nicht} immer, denn bei der Umwandlung in einen Namen im Guix-Stil geht Information verloren. Also achten Sie darauf, in solchen Fällen eine Eigenschaft @code{'upstream-name} anzugeben, damit @samp{guix import elm} funktionieren kann (siehe @ref{Invoking guix import}). Insbesondere ist es nötig, den Namen beim Anbieter ausdrücklich anzugeben, wenn:"
#. type: enumerate
-#: guix-git/doc/contributing.texi:1086
+#: guix-git/doc/contributing.texi:1168
msgid "When the @var{author} is @code{elm} and the @var{project} contains one or more hyphens, as with @code{elm/virtual-dom}; and"
msgstr "Der @var{Autor} gleich @code{elm} ist und in @var{Projekt} ein oder mehrere Bindestriche auftauchen, wie bei @code{elm/virtual-dom}, oder wenn"
#. type: enumerate
-#: guix-git/doc/contributing.texi:1093
+#: guix-git/doc/contributing.texi:1175
msgid "When the @var{author} contains hyphens or uppercase letters, as with @code{Elm-Canvas/raster-shapes}---unless the @var{author} is @code{elm-explorations}, which is handled as a special case, so packages like @code{elm-explorations/markdown} do @emph{not} need to use the @code{'upstream-name} property."
msgstr "In @var{Autor} Bindestriche oder Großbuchstaben auftauchen, z.B.@: @code{Elm-Canvas/raster-shapes}@tie{}– sofern @var{Autor} nicht @code{elm-explorations} ist, was eine Sonderbehandlung bekommt, so dass Pakete wie @code{elm-explorations/markdown} die Eigenschaft @code{'upstream-name} @emph{nicht} zu haben brauchen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1097
+#: guix-git/doc/contributing.texi:1179
msgid "The module @code{(guix build-system elm)} provides the following utilities for working with names and related conventions:"
msgstr "Im Modul @code{(guix build-system elm)} finden Sie folgende Werkzeuge, mit denen Sie mit den Konventionen für Namen und Ähnliches umgehen können:"
#. type: deffn
-#: guix-git/doc/contributing.texi:1098
+#: guix-git/doc/contributing.texi:1180
#, no-wrap
msgid "{Procedure} elm-package-origin @var{elm-name} @var{version} @"
msgstr "{Prozedur} elm-package-origin @var{Elm-Name} @var{Version} @"
#. type: deffn
-#: guix-git/doc/contributing.texi:1103
+#: guix-git/doc/contributing.texi:1185
msgid "@var{hash} Returns a Git origin using the repository naming and tagging regime required for a published Elm package with the upstream name @var{elm-name} at version @var{version} with sha256 checksum @var{hash}."
msgstr "@var{Hash} Liefert einen Git-Paketursprung nach den Regeln für Repository-Name und Tags, die für öffentliche Elm-Pakete vorgeschrieben sind. Der Name für den Paketursprung ergibt sich aus @var{Elm-Name}, das ist der Name beim Anbieter, mit der Version @var{Version} und SHA256-Prüfsumme @var{Hash}."
#. type: deffn
-#: guix-git/doc/contributing.texi:1105 guix-git/doc/guix.texi:35707
-#: guix-git/doc/guix.texi:39588
+#: guix-git/doc/contributing.texi:1187 guix-git/doc/guix.texi:35862
+#: guix-git/doc/guix.texi:39753
msgid "For example:"
msgstr "Zum Beispiel:"
#. type: lisp
-#: guix-git/doc/contributing.texi:1115
+#: guix-git/doc/contributing.texi:1197
#, no-wrap
msgid ""
"(package\n"
@@ -1730,298 +1855,292 @@ msgstr ""
" …)\n"
#. type: deffn
-#: guix-git/doc/contributing.texi:1118
+#: guix-git/doc/contributing.texi:1200
#, no-wrap
msgid "{Procedure} elm->package-name @var{elm-name}"
msgstr "{Prozedur} elm->package-name @var{Elm-Name}"
#. type: deffn
-#: guix-git/doc/contributing.texi:1121
+#: guix-git/doc/contributing.texi:1203
msgid "Returns the Guix-style package name for an Elm package with upstream name @var{elm-name}."
msgstr "Liefert den Paketnamen im Guix-Stil für ein Elm-Paket, das dort @var{Elm-Name} heißt."
#. type: deffn
-#: guix-git/doc/contributing.texi:1124
+#: guix-git/doc/contributing.texi:1206
msgid "Note that there is more than one possible @var{elm-name} for which @code{elm->package-name} will produce a given result."
msgstr "Achtung, @code{elm->package-name} kann unterschiedliche @var{Elm-Name} auf dasselbe Ergebnis abbilden."
#. type: deffn
-#: guix-git/doc/contributing.texi:1126
+#: guix-git/doc/contributing.texi:1208
#, no-wrap
msgid "{Procedure} guix-package->elm-name @var{package}"
msgstr "{Prozedur} guix-package->elm-name @var{Paket}"
#. type: deffn
-#: guix-git/doc/contributing.texi:1130
+#: guix-git/doc/contributing.texi:1212
msgid "Given an Elm @var{package}, returns the possibly-inferred upstream name, or @code{#f} the upstream name is not specified via the @code{'upstream-name} property and can not be inferred by @code{infer-elm-package-name}."
msgstr "Für ein Elm-Paket @var{Paket} wird ermittelt, welchen Namen es beim Anbieter trägt, oder @code{#f}, wenn dieser Anbietername weder in den unter @var{properties} aufgeführten Paketeigenschaften steht noch sich mit @code{infer-elm-package-name} ableiten lässt."
#. type: deffn
-#: guix-git/doc/contributing.texi:1132
+#: guix-git/doc/contributing.texi:1214
#, no-wrap
msgid "{Procedure} infer-elm-package-name @var{guix-name}"
msgstr "{Prozedur} infer-elm-package-name @var{guix-name}"
#. type: deffn
-#: guix-git/doc/contributing.texi:1137
+#: guix-git/doc/contributing.texi:1219
msgid "Given the @var{guix-name} of an Elm package, returns the inferred upstream name, or @code{#f} if the upstream name can't be inferred. If the result is not @code{#f}, supplying it to @code{elm->package-name} would produce @var{guix-name}."
msgstr "Liefert für den @var{guix-name} eines Elm-Pakets den daraus abgeleiteten Namen beim Anbieter oder @code{#f}, wenn er sich nicht ableiten lässt. Wenn das Ergebnis etwas anderes als @code{#f} ist, können wir es an @code{elm->package-name} übergeben und bekommen wieder @var{guix-name} heraus."
#. type: cindex
-#: guix-git/doc/contributing.texi:1142 guix-git/doc/guix.texi:2097
+#: guix-git/doc/contributing.texi:1224 guix-git/doc/guix.texi:2105
#, no-wrap
msgid "fonts"
msgstr "Schriftarten"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1148
+#: guix-git/doc/contributing.texi:1230
msgid "For fonts that are in general not installed by a user for typesetting purposes, or that are distributed as part of a larger software package, we rely on the general packaging rules for software; for instance, this applies to the fonts delivered as part of the X.Org system or fonts that are part of TeX Live."
msgstr "Wenn Schriftarten in der Regel nicht von Nutzern zur Textbearbeitung installiert werden oder als Teil eines größeren Software-Pakets mitgeliefert werden, gelten dafür die allgemeinen Paketrichtlinien für Software. Zum Beispiel trifft das auf als Teil des X.Org-Systems ausgelieferte Schriftarten zu, oder auf Schriftarten, die ein Teil von TeX Live sind."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1152
+#: guix-git/doc/contributing.texi:1234
msgid "To make it easier for a user to search for fonts, names for other packages containing only fonts are constructed as follows, independently of the upstream package name."
msgstr "Damit es Nutzer leichter haben, nach Schriftarten zu suchen, konstruieren wir die Namen von anderen Paketen, die nur Schriftarten enthalten, nach dem folgenden Schema, egal was der Paketname beim Anbieter ist."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1160
+#: guix-git/doc/contributing.texi:1242
msgid "The name of a package containing only one font family starts with @code{font-}; it is followed by the foundry name and a dash @code{-} if the foundry is known, and the font family name, in which spaces are replaced by dashes (and as usual, all upper case letters are transformed to lower case). For example, the Gentium font family by SIL is packaged under the name @code{font-sil-gentium}."
msgstr "Der Name eines Pakets, das nur eine Schriftfamilie enthält, beginnt mit @code{font-}. Darauf folgt der Name des Schriftenherstellers und ein Strich @code{-}, sofern bekannt ist, wer der Schriftenhersteller ist, und dann der Name der Schriftfamilie, in dem Leerzeichen durch Striche ersetzt werden (und wie immer mit Großbuchstaben statt Kleinbuchstaben). Zum Beispiel befindet sich die von SIL hergestellte Gentium-Schriftfamilie im Paket mit dem Namen @code{font-sil-gentium}."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1169
+#: guix-git/doc/contributing.texi:1251
msgid "For a package containing several font families, the name of the collection is used in the place of the font family name. For instance, the Liberation fonts consist of three families, Liberation Sans, Liberation Serif and Liberation Mono. These could be packaged separately under the names @code{font-liberation-sans} and so on; but as they are distributed together under a common name, we prefer to package them together as @code{font-liberation}."
msgstr "Wenn ein Paket mehrere Schriftfamilien enthält, wird der Name der Sammlung anstelle des Schriftfamiliennamens benutzt. Zum Beispiel umfassen die Liberation-Schriftarten drei Familien: Liberation Sans, Liberation Serif und Liberation Mono. Man könnte sie getrennt voneinander mit den Namen @code{font-liberation-sans} und so weiter in Pakete einteilen. Da sie aber unter einem gemeinsamen Namen angeboten werden, packen wir sie lieber zusammen in ein Paket mit dem Namen @code{font-liberation}."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1175
+#: guix-git/doc/contributing.texi:1257
msgid "In the case where several formats of the same font family or font collection are packaged separately, a short form of the format, prepended by a dash, is added to the package name. We use @code{-ttf} for TrueType fonts, @code{-otf} for OpenType fonts and @code{-type1} for PostScript Type 1 fonts."
msgstr "Für den Fall, dass mehrere Formate derselben Schriftfamilie oder Schriftartensammlung in separate Pakete kommen, wird ein Kurzname für das Format mit einem Strich vorne zum Paketnamen hinzugefügt. Wir benutzen @code{-ttf} für TrueType-Schriftarten, @code{-otf} für OpenType-Schriftarten und @code{-type1} für PostScript-Typ-1-Schriftarten."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1183
+#: guix-git/doc/contributing.texi:1265
msgid "In general our code follows the GNU Coding Standards (@pxref{Top,,, standards, GNU Coding Standards}). However, they do not say much about Scheme, so here are some additional rules."
msgstr "Im Allgemeinen folgt unser Code den GNU Coding Standards (siehe @ref{Top,,, standards, GNU Coding Standards}). Da diese aber nicht viel über Scheme zu sagen haben, folgen hier einige zusätzliche Regeln."
#. type: subsection
-#: guix-git/doc/contributing.texi:1189 guix-git/doc/contributing.texi:1191
-#: guix-git/doc/contributing.texi:1192
+#: guix-git/doc/contributing.texi:1271 guix-git/doc/contributing.texi:1273
+#: guix-git/doc/contributing.texi:1274
#, no-wrap
msgid "Programming Paradigm"
msgstr "Programmierparadigmen"
#. type: menuentry
-#: guix-git/doc/contributing.texi:1189
+#: guix-git/doc/contributing.texi:1271
msgid "How to compose your elements."
msgstr "Wie Sie Ihre Elemente zusammenstellen."
#. type: subsection
-#: guix-git/doc/contributing.texi:1189 guix-git/doc/contributing.texi:1198
-#: guix-git/doc/contributing.texi:1199
+#: guix-git/doc/contributing.texi:1271 guix-git/doc/contributing.texi:1280
+#: guix-git/doc/contributing.texi:1281
#, no-wrap
msgid "Modules"
msgstr "Module"
#. type: menuentry
-#: guix-git/doc/contributing.texi:1189
+#: guix-git/doc/contributing.texi:1271
msgid "Where to store your code?"
msgstr "Wo Sie Ihren Code unterbringen."
#. type: subsection
-#: guix-git/doc/contributing.texi:1189 guix-git/doc/contributing.texi:1209
-#: guix-git/doc/contributing.texi:1210
+#: guix-git/doc/contributing.texi:1271 guix-git/doc/contributing.texi:1291
+#: guix-git/doc/contributing.texi:1292
#, no-wrap
msgid "Data Types and Pattern Matching"
msgstr "Datentypen und Mustervergleich"
#. type: menuentry
-#: guix-git/doc/contributing.texi:1189
+#: guix-git/doc/contributing.texi:1271
msgid "Implementing data structures."
msgstr "Implementierung von Datenstrukturen."
#. type: subsection
-#: guix-git/doc/contributing.texi:1189 guix-git/doc/contributing.texi:1229
-#: guix-git/doc/contributing.texi:1230
+#: guix-git/doc/contributing.texi:1271 guix-git/doc/contributing.texi:1322
+#: guix-git/doc/contributing.texi:1323
#, no-wrap
msgid "Formatting Code"
msgstr "Formatierung von Code"
#. type: menuentry
-#: guix-git/doc/contributing.texi:1189
+#: guix-git/doc/contributing.texi:1271
msgid "Writing conventions."
msgstr "Schreibkonventionen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1197
+#: guix-git/doc/contributing.texi:1279
msgid "Scheme code in Guix is written in a purely functional style. One exception is code that involves input/output, and procedures that implement low-level concepts, such as the @code{memoize} procedure."
msgstr "Scheme-Code wird in Guix auf rein funktionale Weise geschrieben. Eine Ausnahme ist Code, der mit Ein- und Ausgabe zu tun hat, und Prozeduren, die grundlegende Konzepte implementieren, wie zum Beispiel die Prozedur @code{memoize}."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1205
+#: guix-git/doc/contributing.texi:1287
msgid "Guile modules that are meant to be used on the builder side must live in the @code{(guix build @dots{})} name space. They must not refer to other Guix or GNU modules. However, it is OK for a ``host-side'' module to use a build-side module."
msgstr "Guile-Module, die beim Erstellen nutzbar sein sollen, müssen im Namensraum @code{(guix build …)} leben. Sie dürfen auf keine anderen Guix- oder GNU-Module Bezug nehmen. Jedoch ist es in Ordnung, wenn ein „wirtsseitiges“ Modul ein erstellungsseitiges Modul benutzt."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1208
+#: guix-git/doc/contributing.texi:1290
msgid "Modules that deal with the broader GNU system should be in the @code{(gnu @dots{})} name space rather than @code{(guix @dots{})}."
msgstr "Module, die mit dem weiteren GNU-System zu tun haben, sollten im Namensraum @code{(gnu …)} und nicht in @code{(guix …)} stehen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1217
+#: guix-git/doc/contributing.texi:1299
msgid "The tendency in classical Lisp is to use lists to represent everything, and then to browse them ``by hand'' using @code{car}, @code{cdr}, @code{cadr}, and co. There are several problems with that style, notably the fact that it is hard to read, error-prone, and a hindrance to proper type error reports."
msgstr "Im klassischen Lisp gibt es die Tendenz, Listen zur Darstellung von allem zu benutzen, und diese dann „händisch“ zu durchlaufen mit @code{car}, @code{cdr}, @code{cadr} und so weiter. Dieser Stil ist aus verschiedenen Gründen problematisch, insbesondere wegen der Tatsache, dass er schwer zu lesen, schnell fehlerbehaftet und ein Hindernis beim Melden von Typfehlern ist."
#. type: findex
-#: guix-git/doc/contributing.texi:1218
+#: guix-git/doc/contributing.texi:1300
#, no-wrap
msgid "define-record-type*"
msgstr "define-record-type*"
#. type: findex
-#: guix-git/doc/contributing.texi:1219
+#: guix-git/doc/contributing.texi:1301
#, no-wrap
msgid "match-record"
msgstr "match-record"
#. type: cindex
-#: guix-git/doc/contributing.texi:1220
+#: guix-git/doc/contributing.texi:1302
#, no-wrap
msgid "pattern matching"
msgstr "Mustervergleich"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1228
+#: guix-git/doc/contributing.texi:1310
msgid "Guix code should define appropriate data types (for instance, using @code{define-record-type*}) rather than abuse lists. In addition, it should use pattern matching, via Guile’s @code{(ice-9 match)} module, especially when matching lists (@pxref{Pattern Matching,,, guile, GNU Guile Reference Manual}); pattern matching for records is better done using @code{match-record} from @code{(guix records)}, which, unlike @code{match}, verifies field names at macro-expansion time."
msgstr "Guix-Code sollte angemessene Datentypen definieren (zum Beispiel mit @code{define-record-type*}), statt Listen zu missbrauchen. Außerdem sollte er das @code{(ice-9 match)}-Modul von Guile zum Mustervergleich benutzen, besonders mit Listen (siehe @ref{Pattern Matching,,, guile, Referenzhandbuch zu GNU Guile}), während bei Verbundstypen @code{match-record} aus dem Modul @code{(guix records)} angemessener ist, womit, anders als bei @code{match}, bereits bei der Makroumschreibung sichergestellt wird, dass die Feldnamen richtig sind."
+#. type: Plain text
+#: guix-git/doc/contributing.texi:1321
+msgid "When defining a new record type, keep the @dfn{record type descriptor} (RTD) private (@pxref{Records,,, guile, GNU Guile Reference Manual}, for more on records and RTDs). As an example, the @code{(guix packages)} module defines @code{<package>} as the RTD for package records but it does not export it; instead, it exports a type predicate, a constructor, and field accessors. Exporting RTDs would make it harder to change the application binary interface (because code in other modules might be matching fields by position) and would make it trivial for users to forge records of that type, bypassing any checks we may have in the official constructor (such as ``field sanitizers'')."
+msgstr ""
+
#. type: cindex
-#: guix-git/doc/contributing.texi:1232
+#: guix-git/doc/contributing.texi:1325
#, no-wrap
msgid "formatting code"
msgstr "Formatierung von Code"
#. type: cindex
-#: guix-git/doc/contributing.texi:1233
+#: guix-git/doc/contributing.texi:1326
#, no-wrap
msgid "coding style"
msgstr "Code-Stil"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1240
+#: guix-git/doc/contributing.texi:1333
msgid "When writing Scheme code, we follow common wisdom among Scheme programmers. In general, we follow the @url{https://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp Style Rules}. This document happens to describe the conventions mostly used in Guile’s code too. It is very thoughtful and well written, so please do read it."
msgstr "Beim Schreiben von Scheme-Code halten wir uns an die üblichen Gepflogenheiten unter Scheme-Programmierern. Im Allgemeinen bedeutet das, dass wir uns an @url{https://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp Style Rules} halten. Es hat sich ergeben, dass dieses Dokument auch die Konventionen beschreibt, die im Code von Guile hauptsächlich verwendet werden. Es ist gut durchdacht und schön geschrieben, also lesen Sie es bitte."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1247
+#: guix-git/doc/contributing.texi:1340
msgid "Some special forms introduced in Guix, such as the @code{substitute*} macro, have special indentation rules. These are defined in the @file{.dir-locals.el} file, which Emacs automatically uses. Also note that Emacs-Guix provides @code{guix-devel-mode} mode that indents and highlights Guix code properly (@pxref{Development,,, emacs-guix, The Emacs-Guix Reference Manual})."
msgstr "Ein paar in Guix eingeführte Sonderformen, wie zum Beispiel das @code{substitute*}-Makro, haben abweichende Regeln für die Einrückung. Diese sind in der Datei @file{.dir-locals.el} definiert, die Emacs automatisch benutzt. Beachten Sie auch, dass Emacs-Guix einen Modus namens @code{guix-devel-mode} bereitstellt, der Guix-Code richtig einrückt und hervorhebt (siehe @ref{Development,,, emacs-guix, Referenzhandbuch von Emacs-Guix})."
#. type: cindex
-#: guix-git/doc/contributing.texi:1248
+#: guix-git/doc/contributing.texi:1341
#, no-wrap
msgid "indentation, of code"
msgstr "Einrückung, Code-"
#. type: cindex
-#: guix-git/doc/contributing.texi:1249
+#: guix-git/doc/contributing.texi:1342
#, no-wrap
msgid "formatting, of code"
msgstr "Formatierung, Code-"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1252
+#: guix-git/doc/contributing.texi:1345
msgid "If you do not use Emacs, please make sure to let your editor knows these rules. To automatically indent a package definition, you can also run:"
msgstr "Falls Sie nicht Emacs verwenden, sollten Sie sicherstellen, dass Ihr Editor diese Regeln kennt. Um eine Paketdefinition automatisch einzurücken, können Sie auch Folgendes ausführen:"
#. type: example
-#: guix-git/doc/contributing.texi:1255
+#: guix-git/doc/contributing.texi:1348
#, no-wrap
msgid "./pre-inst-env guix style @var{package}\n"
msgstr "./pre-inst-env guix style @var{Paket}\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1259
+#: guix-git/doc/contributing.texi:1352
msgid "@xref{Invoking guix style}, for more information."
msgstr "Siehe @ref{Invoking guix style} für weitere Informationen."
-#. type: cindex
-#: guix-git/doc/contributing.texi:1260
-#, no-wrap
-msgid "Vim, Scheme code editing"
-msgstr "Vim, zum Editieren von Scheme-Code"
-
-#. type: Plain text
-#: guix-git/doc/contributing.texi:1266
-msgid "If you are editing code with Vim, we recommend that you run @code{:set autoindent} so that your code is automatically indented as you type. Additionally, @uref{https://www.vim.org/scripts/script.php?script_id=3998, @code{paredit.vim}} may help you deal with all these parentheses."
-msgstr "Wenn Sie Code mit Vim bearbeiten, empfehlen wir, dass Sie @code{:set autoindent} ausführen, damit Ihr Code automatisch eingerückt wird, während Sie ihn schreiben. Außerdem könnte Ihnen @uref{https://www.vim.org/scripts/script.php?script_id=3998, @code{paredit.vim}} dabei helfen, mit all diesen Klammern fertigzuwerden."
-
#. type: Plain text
-#: guix-git/doc/contributing.texi:1270
+#: guix-git/doc/contributing.texi:1356
msgid "We require all top-level procedures to carry a docstring. This requirement can be relaxed for simple private procedures in the @code{(guix build @dots{})} name space, though."
msgstr "Wir fordern von allen Prozeduren auf oberster Ebene, dass sie über einen Docstring verfügen. Diese Voraussetzung kann jedoch bei einfachen, privaten Prozeduren im Namensraum @code{(guix build …)} aufgeweicht werden."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1273
+#: guix-git/doc/contributing.texi:1359
msgid "Procedures should not have more than four positional parameters. Use keyword parameters for procedures that take more than four parameters."
msgstr "Prozeduren sollten nicht mehr als vier positionsbestimmte Parameter haben. Benutzen Sie Schlüsselwort-Parameter für Prozeduren, die mehr als vier Parameter entgegennehmen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1287
+#: guix-git/doc/contributing.texi:1373
msgid "Development is done using the Git distributed version control system. Thus, access to the repository is not strictly necessary. We welcome contributions in the form of patches as produced by @code{git format-patch} sent to the @email{guix-patches@@gnu.org} mailing list (@pxref{Submitting patches to a project,,, git, Git User Manual}). Contributors are encouraged to take a moment to set some Git repository options (@pxref{Configuring Git}) first, which can improve the readability of patches. Seasoned Guix developers may also want to look at the section on commit access (@pxref{Commit Access})."
msgstr "Die Entwicklung wird mit Hilfe des verteilten Versionskontrollsystems Git durchgeführt. Daher ist eine ständige Verbindung zum Repository nicht unbedingt erforderlich. Wir begrüßen Beiträge in Form von Patches, die mittels @code{git format-patch} erstellt und an die Mailingliste @email{guix-patches@@gnu.org} geschickt werden (siehe @ref{Submitting patches to a project,,, git, Git-Benutzerhandbuch}). In diesem Fall möchten wir Ihnen nahelegen, zunächst einige Git-Repository-Optionen festzulegen (siehe @ref{Configuring Git}), damit Ihr Patch leichter lesbar wird. Erfahrene Guix-Entwickler möchten vielleicht auch einen Blick auf den Abschnitt über Commit-Zugriff werfen (siehe @ref{Commit Access})."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1294
+#: guix-git/doc/contributing.texi:1380
msgid "This mailing list is backed by a Debbugs instance, which allows us to keep track of submissions (@pxref{Tracking Bugs and Changes}). Each message sent to that mailing list gets a new tracking number assigned; people can then follow up on the submission by sending email to @code{@var{ISSUE_NUMBER}@@debbugs.gnu.org}, where @var{ISSUE_NUMBER} is the tracking number (@pxref{Sending a Patch Series})."
msgstr "Diese Mailing-Liste setzt auf einer Debbugs-Instanz auf, wodurch wir den Überblick über Eingereichtes behalten können (siehe @ref{Tracking Bugs and Changes}). Jede an diese Mailing-Liste gesendete Nachricht bekommt eine neue Folgenummer zugewiesen, so dass man eine Folge-E-Mail zur Einreichung an @code{@var{FEHLERNUMMER}@@debbugs.gnu.org} senden kann, wobei @var{FEHLERNUMMER} für die Folgenummer steht (siehe @ref{Sending a Patch Series})."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1298
+#: guix-git/doc/contributing.texi:1384
msgid "Please write commit logs in the ChangeLog format (@pxref{Change Logs,,, standards, GNU Coding Standards}); you can check the commit history for examples."
msgstr "Bitte schreiben Sie Commit-Logs im ChangeLog-Format (siehe @ref{Change Logs,,, standards, GNU Coding Standards}); dazu finden Sie Beispiele unter den bisherigen Commits."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1308
+#: guix-git/doc/contributing.texi:1394
msgid "You can help make the review process more efficient, and increase the chance that your patch will be reviewed quickly, by describing the context of your patch and the impact you expect it to have. For example, if your patch is fixing something that is broken, describe the problem and how your patch fixes it. Tell us how you have tested your patch. Will users of the code changed by your patch have to adjust their workflow at all? If so, tell us how. In general, try to imagine what questions a reviewer will ask, and answer those questions in advance."
msgstr "Sie können dabei helfen, dass die Überprüfung Ihres Patches schneller vonstattengeht und die Wahrscheinlichkeit erhöhen, dass sich bald jemand den Patch anschaut: Beschreiben Sie die Umstände des Patches und wie er sich auswirken dürfte. Zum Beispiel, wenn etwas kaputt ist und der Patch das behebt, dann beschreiben Sie das Problem und wie es in Ihrem Patch behoben wird. Müssen die Verwender des betroffenen Codes dazu ihre Arbeitsweise ändern oder nicht? Wenn doch, schreiben Sie wie. Allgemein sollten Sie sich vorstellen, welche Fragen ein Überprüfender stellen würde, und diese im Voraus beantworten."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1311
+#: guix-git/doc/contributing.texi:1397
msgid "Before submitting a patch that adds or modifies a package definition, please run through this check list:"
msgstr "Bevor Sie einen Patch einreichen, der eine Paketdefinition hinzufügt oder verändert, gehen Sie bitte diese Prüfliste durch:"
#. type: enumerate
-#: guix-git/doc/contributing.texi:1318
+#: guix-git/doc/contributing.texi:1404
msgid "If the authors of the packaged software provide a cryptographic signature for the release tarball, make an effort to verify the authenticity of the archive. For a detached GPG signature file this would be done with the @code{gpg --verify} command."
msgstr "Wenn die Autoren der verpackten Software eine kryptografische Signatur bzw. Beglaubigung für den Tarball der Veröffentlichung anbieten, so machen Sie sich bitte die Mühe, die Echtheit des Archivs zu überprüfen. Für eine abgetrennte GPG-Signaturdatei würden Sie das mit dem Befehl @code{gpg --verify} tun."
#. type: enumerate
-#: guix-git/doc/contributing.texi:1322
+#: guix-git/doc/contributing.texi:1408
msgid "Take some time to provide an adequate synopsis and description for the package. @xref{Synopses and Descriptions}, for some guidelines."
msgstr "Nehmen Sie sich die Zeit, eine passende Zusammenfassung und Beschreibung für das Paket zu verfassen. Unter @ref{Synopses and Descriptions} finden Sie dazu einige Richtlinien."
#. type: enumerate
-#: guix-git/doc/contributing.texi:1327
+#: guix-git/doc/contributing.texi:1413
msgid "Run @code{guix lint @var{package}}, where @var{package} is the name of the new or modified package, and fix any errors it reports (@pxref{Invoking guix lint})."
msgstr "Verwenden Sie @code{guix lint @var{Paket}}, wobei @var{Paket} das neue oder geänderte Paket bezeichnet, und beheben Sie alle gemeldeten Fehler (siehe @ref{Invoking guix lint})."
#. type: enumerate
-#: guix-git/doc/contributing.texi:1331
+#: guix-git/doc/contributing.texi:1417
msgid "Run @code{guix style @var{package}} to format the new package definition according to the project's conventions (@pxref{Invoking guix style})."
msgstr "Verwenden Sie @code{guix style @var{Paket}}, um die neue Paketdefinition gemäß den Konventionen des Guix-Projekts zu formatieren (siehe @ref{Invoking guix style})."
#. type: enumerate
-#: guix-git/doc/contributing.texi:1335
+#: guix-git/doc/contributing.texi:1421
msgid "Make sure the package builds on your platform, using @code{guix build @var{package}}."
msgstr "Stellen Sie sicher, dass das Paket auf Ihrer Plattform erstellt werden kann, indem Sie @code{guix build @var{Paket}} ausführen."
#. type: enumerate
-#: guix-git/doc/contributing.texi:1343
+#: guix-git/doc/contributing.texi:1429
msgid "We recommend you also try building the package on other supported platforms. As you may not have access to actual hardware platforms, we recommend using the @code{qemu-binfmt-service-type} to emulate them. In order to enable it, add the @code{virtualization} service module and the following service to the list of services in your @code{operating-system} configuration:"
msgstr "Wir empfehlen, dass Sie auch versuchen, das Paket auf anderen unterstützten Plattformen zu erstellen. Da Sie vielleicht keinen Zugang zu echter Hardware für diese Plattformen haben, empfehlen wir, den @code{qemu-binfmt-service-type} zu benutzen, um sie zu emulieren. Um ihn zu aktivieren, fügen Sie @code{virtualization} zu @code{use-service-modules} und den folgenden Dienst in die Liste der Dienste („services“) in Ihrer @code{operating-system}-Konfiguration ein:"
#. type: lisp
-#: guix-git/doc/contributing.texi:1348
+#: guix-git/doc/contributing.texi:1434
#, no-wrap
msgid ""
"(service qemu-binfmt-service-type\n"
@@ -2033,17 +2152,17 @@ msgstr ""
" (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))))\n"
#. type: enumerate
-#: guix-git/doc/contributing.texi:1351
+#: guix-git/doc/contributing.texi:1437
msgid "Then reconfigure your system."
msgstr "Rekonfigurieren Sie anschließend Ihr System."
#. type: enumerate
-#: guix-git/doc/contributing.texi:1356
+#: guix-git/doc/contributing.texi:1442
msgid "You can then build packages for different platforms by specifying the @code{--system} option. For example, to build the \"hello\" package for the armhf or aarch64 architectures, you would run the following commands, respectively:"
msgstr "Sie können Pakete für andere Plattformen erstellen lassen, indem Sie die Befehlszeilenoption @code{--system} angeben. Um zum Beispiel das Paket „hello“ für die Architekturen armhf oder aarch64 erstellen zu lassen, würden Sie jeweils die folgenden Befehle angeben:"
#. type: example
-#: guix-git/doc/contributing.texi:1359
+#: guix-git/doc/contributing.texi:1445
#, no-wrap
msgid ""
"guix build --system=armhf-linux --rounds=2 hello\n"
@@ -2053,243 +2172,249 @@ msgstr ""
"guix build --system=aarch64-linux --rounds=2 hello\n"
#. type: cindex
-#: guix-git/doc/contributing.texi:1362
+#: guix-git/doc/contributing.texi:1448
#, no-wrap
msgid "bundling"
msgstr "gebündelt"
#. type: enumerate
-#: guix-git/doc/contributing.texi:1365
+#: guix-git/doc/contributing.texi:1451
msgid "Make sure the package does not use bundled copies of software already available as separate packages."
msgstr "Achten Sie darauf, dass im Paket keine Software gebündelt mitgeliefert wird, die bereits in separaten Paketen zur Verfügung steht."
#. type: enumerate
-#: guix-git/doc/contributing.texi:1374
+#: guix-git/doc/contributing.texi:1460
msgid "Sometimes, packages include copies of the source code of their dependencies as a convenience for users. However, as a distribution, we want to make sure that such packages end up using the copy we already have in the distribution, if there is one. This improves resource usage (the dependency is built and stored only once), and allows the distribution to make transverse changes such as applying security updates for a given software package in a single place and have them affect the whole system---something that bundled copies prevent."
msgstr "Manchmal enthalten Pakete Kopien des Quellcodes ihrer Abhängigkeiten, um Nutzern die Installation zu erleichtern. Als eine Distribution wollen wir jedoch sicherstellen, dass solche Pakete die schon in der Distribution verfügbare Fassung benutzen, sofern es eine gibt. Dadurch wird sowohl der Ressourcenverbrauch optimiert (die Abhängigkeit wird so nur einmal erstellt und gespeichert) als auch der Distribution die Möglichkeit gegeben, ergänzende Änderungen durchzuführen, um beispielsweise Sicherheitsaktualisierungen für ein bestimmtes Paket an nur einem Ort einzuspielen, die aber das gesamte System betreffen@tie{}– gebündelt mitgelieferte Kopien würden dies verhindern."
#. type: enumerate
-#: guix-git/doc/contributing.texi:1383
+#: guix-git/doc/contributing.texi:1469
msgid "Take a look at the profile reported by @command{guix size} (@pxref{Invoking guix size}). This will allow you to notice references to other packages unwillingly retained. It may also help determine whether to split the package (@pxref{Packages with Multiple Outputs}), and which optional dependencies should be used. In particular, avoid adding @code{texlive} as a dependency: because of its extreme size, use @code{texlive-updmap.cfg} procedure instead."
msgstr "Schauen Sie sich das von @command{guix size} ausgegebene Profil an (siehe @ref{Invoking guix size}). Dadurch können Sie Referenzen auf andere Pakete finden, die ungewollt vorhanden sind. Dies kann auch dabei helfen, zu entscheiden, ob das Paket aufgespalten werden sollte (siehe @ref{Packages with Multiple Outputs}) und welche optionalen Abhängigkeiten verwendet werden sollten. Dabei sollten Sie es wegen seiner enormen Größe insbesondere vermeiden, @code{texlive} als eine Abhängigkeit hinzuzufügen; benutzen Sie stattdessen die Prozedur @code{texlive-updmap.cfg}."
#. type: enumerate
-#: guix-git/doc/contributing.texi:1388
+#: guix-git/doc/contributing.texi:1474
msgid "Check that dependent packages (if applicable) are not affected by the change; @code{guix refresh --list-dependent @var{package}} will help you do that (@pxref{Invoking guix refresh})."
msgstr "Achten Sie darauf, dass abhängige Pakete (falls vorhanden) nicht von der Änderung beeinträchtigt werden; @code{guix refresh --list-dependent @var{Paket}} hilft Ihnen dabei (siehe @ref{Invoking guix refresh})."
#. type: cindex
-#: guix-git/doc/contributing.texi:1390
+#: guix-git/doc/contributing.texi:1476
#, no-wrap
msgid "determinism, of build processes"
msgstr "Determinismus, von Erstellungsprozessen"
#. type: cindex
-#: guix-git/doc/contributing.texi:1391
+#: guix-git/doc/contributing.texi:1477
#, no-wrap
msgid "reproducible builds, checking"
msgstr "Reproduzierbare Erstellungen, Überprüfung"
#. type: enumerate
-#: guix-git/doc/contributing.texi:1395
+#: guix-git/doc/contributing.texi:1481
msgid "Check whether the package's build process is deterministic. This typically means checking whether an independent build of the package yields the exact same result that you obtained, bit for bit."
msgstr "Überprüfen Sie, ob der Erstellungsprozess deterministisch ist. Dazu prüfen Sie typischerweise, ob eine unabhängige Erstellung des Pakets genau dasselbe Ergebnis wie Ihre Erstellung hat, Bit für Bit."
#. type: enumerate
-#: guix-git/doc/contributing.texi:1398
+#: guix-git/doc/contributing.texi:1484
msgid "A simple way to do that is by building the same package several times in a row on your machine (@pxref{Invoking guix build}):"
msgstr "Dies können Sie leicht tun, indem Sie dasselbe Paket mehrere Male hintereinander auf Ihrer Maschine erstellen (siehe @ref{Invoking guix build}):"
#. type: example
-#: guix-git/doc/contributing.texi:1401
+#: guix-git/doc/contributing.texi:1487
#, no-wrap
msgid "guix build --rounds=2 my-package\n"
msgstr "guix build --rounds=2 mein-paket\n"
#. type: enumerate
-#: guix-git/doc/contributing.texi:1405
+#: guix-git/doc/contributing.texi:1491
msgid "This is enough to catch a class of common non-determinism issues, such as timestamps or randomly-generated output in the build result."
msgstr "Dies reicht aus, um eine ganze Klasse häufiger Ursachen von Nichtdeterminismus zu finden, wie zum Beispiel Zeitstempel oder zufallsgenerierte Ausgaben im Ergebnis der Erstellung."
#. type: enumerate
-#: guix-git/doc/contributing.texi:1415
+#: guix-git/doc/contributing.texi:1501
msgid "Another option is to use @command{guix challenge} (@pxref{Invoking guix challenge}). You may run it once the package has been committed and built by @code{@value{SUBSTITUTE-SERVER-1}} to check whether it obtains the same result as you did. Better yet: Find another machine that can build it and run @command{guix publish}. Since the remote build machine is likely different from yours, this can catch non-determinism issues related to the hardware---e.g., use of different instruction set extensions---or to the operating system kernel---e.g., reliance on @code{uname} or @file{/proc} files."
msgstr "Eine weitere Möglichkeit ist, @command{guix challenge} (siehe @ref{Invoking guix challenge}) zu benutzen. Sie können es ausführen, sobald ein Paket commitet und von @code{@value{SUBSTITUTE-SERVER-1}} erstellt wurde, um zu sehen, ob dort dasselbe Ergebnis wie bei Ihnen geliefert wurde. Noch besser: Finden Sie eine andere Maschine, die das Paket erstellen kann, und führen Sie @command{guix publish} aus. Da sich die entfernte Erstellungsmaschine wahrscheinlich von Ihrer unterscheidet, können Sie auf diese Weise Probleme durch Nichtdeterminismus erkennen, die mit der Hardware zu tun haben@tie{}– zum Beispiel die Nutzung anderer Befehlssatzerweiterungen@tie{}– oder mit dem Betriebssystem-Kernel@tie{}– zum Beispiel, indem @code{uname} oder @file{/proc}-Dateien verwendet werden."
# Hier gehe ich mal davon aus, dass Dokumentation generell zuerst in Englisch geschrieben wird, daher, werden solche Begriffe auch hier nicht übersetzt.
#. type: enumerate
-#: guix-git/doc/contributing.texi:1421
+#: guix-git/doc/contributing.texi:1507
msgid "When writing documentation, please use gender-neutral wording when referring to people, such as @uref{https://en.wikipedia.org/wiki/Singular_they, singular ``they''@comma{} ``their''@comma{} ``them''}, and so forth."
msgstr "Beim Schreiben von Dokumentation achten Sie bitte auf eine geschlechtsneutrale Wortwahl, wenn Sie sich auf Personen beziehen, wie @uref{https://en.wikipedia.org/wiki/Singular_they, „they“@comma{} „their“@comma{} „them“ im Singular} und so weiter."
#. type: enumerate
-#: guix-git/doc/contributing.texi:1425
+#: guix-git/doc/contributing.texi:1511
msgid "Verify that your patch contains only one set of related changes. Bundling unrelated changes together makes reviewing harder and slower."
msgstr "Stellen Sie sicher, dass Ihr Patch nur einen Satz zusammengehöriger Änderungen umfasst. Das Zusammenfassen nicht zusammengehöriger Änderungen erschwert und bremst das Durchsehen Ihres Patches."
#. type: enumerate
-#: guix-git/doc/contributing.texi:1428
+#: guix-git/doc/contributing.texi:1514
msgid "Examples of unrelated changes include the addition of several packages, or a package update along with fixes to that package."
msgstr "Beispiele für nicht zusammengehörige Änderungen sind das Hinzufügen mehrerer Pakete auf einmal, oder das Aktualisieren eines Pakets auf eine neue Version zusammen mit Fehlerbehebungen für das Paket."
#. type: enumerate
-#: guix-git/doc/contributing.texi:1433
+#: guix-git/doc/contributing.texi:1519
msgid "Please follow our code formatting rules, possibly running @command{guix style} script to do that automatically for you (@pxref{Formatting Code})."
msgstr "Bitte befolgen Sie unsere Richtlinien für die Code-Formatierung; womöglich wollen Sie dies automatisch tun lassen durch das Skript @command{guix style} (siehe @ref{Formatting Code})."
#. type: enumerate
-#: guix-git/doc/contributing.texi:1441
+#: guix-git/doc/contributing.texi:1527
msgid "When possible, use mirrors in the source URL (@pxref{Invoking guix download}). Use reliable URLs, not generated ones. For instance, GitHub archives are not necessarily identical from one generation to the next, so in this case it's often better to clone the repository. Don't use the @command{name} field in the URL: it is not very useful and if the name changes, the URL will probably be wrong."
msgstr "Benutzen Sie, wenn möglich, Spiegelserver (Mirrors) in der Quell-URL (siehe @ref{Invoking guix download}). Verwenden Sie verlässliche URLs, keine automatisch generierten. Zum Beispiel sind Archive von GitHub nicht immer identisch von einer Generation auf die nächste, daher ist es in diesem Fall besser, als Quelle einen Klon des Repositorys zu verwenden. Benutzen Sie @emph{nicht} das @command{name}-Feld beim Angeben der URL; er hilft nicht wirklich und wenn sich der Name ändert, stimmt die URL nicht mehr."
#. type: enumerate
-#: guix-git/doc/contributing.texi:1445
+#: guix-git/doc/contributing.texi:1531
msgid "Check if Guix builds (@pxref{Building from Git}) and address the warnings, especially those about use of undefined symbols."
msgstr "Überprüfen Sie, ob Guix erstellt werden kann (siehe @ref{Building from Git}) und kümmern Sie sich um die Warnungen, besonders um solche über nicht definierte Symbole."
#. type: enumerate
-#: guix-git/doc/contributing.texi:1448
+#: guix-git/doc/contributing.texi:1534
msgid "Make sure your changes do not break Guix and simulate a @code{guix pull} with:"
msgstr "Stellen Sie sicher, dass Ihre Änderungen Guix nicht beeinträchtigen, und simulieren Sie eine Ausführung von @code{guix pull} über den Befehl:"
#. type: example
-#: guix-git/doc/contributing.texi:1450
+#: guix-git/doc/contributing.texi:1536
#, no-wrap
msgid "guix pull --url=/path/to/your/checkout --profile=/tmp/guix.master\n"
msgstr "guix pull --url=/pfad/zu/ihrem/checkout --profile=/tmp/guix.master\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1458
+#: guix-git/doc/contributing.texi:1544
msgid "When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as a subject, if your patch is to be applied on a branch other than @code{master}, say @code{core-updates}, specify it in the subject like @samp{[PATCH core-updates] @dots{}}."
msgstr "Bitte benutzen Sie @samp{[PATCH] …} als Betreff, wenn Sie einen Patch an die Mailing-Liste schicken. Soll Ihr Patch auf einen anderen Branch als @code{master} angewandt werden, z.B.@: @code{core-updates}, geben Sie dies im Betreff an als @samp{[PATCH core-updates] …}."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1464
+#: guix-git/doc/contributing.texi:1550
msgid "You may use your email client or the @command{git send-email} command (@pxref{Sending a Patch Series}). We prefer to get patches in plain text messages, either inline or as MIME attachments. You are advised to pay attention if your email client changes anything like line breaks or indentation which could potentially break the patches."
msgstr "Sie können dazu Ihr E-Mail-Programm oder den Befehl @command{git send-email} benutzen (siehe @ref{Sending a Patch Series}). Wir bevorzugen es, Patches als reine Textnachrichten zu erhalten, entweder eingebettet (inline) oder als MIME-Anhänge. Sie sind dazu angehalten, zu überprüfen, ob Ihr Mail-Programm solche Dinge wie Zeilenumbrüche oder die Einrückung verändert, wodurch die Patches womöglich nicht mehr funktionieren."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1469
+#: guix-git/doc/contributing.texi:1555
msgid "Expect some delay when you submit your very first patch to @email{guix-patches@@gnu.org}. You have to wait until you get an acknowledgement with the assigned tracking number. Future acknowledgements should not be delayed."
msgstr "Rechnen Sie damit, dass es etwas dauert, bis Ihr erster Patch an @email{guix-patches@@gnu.org} zu sehen ist. Sie werden warten müssen, bis Sie eine Bestätigung mit der zugewiesenen Folgenummer bekommen. Spätere Bestätigungen sollten sofort kommen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1472
+#: guix-git/doc/contributing.texi:1558
msgid "When a bug is resolved, please close the thread by sending an email to @email{@var{ISSUE_NUMBER}-done@@debbugs.gnu.org}."
msgstr "Wenn dadurch ein Fehler behoben wurde, schließen Sie bitte den Thread, indem Sie eine E-Mail an @email{@var{FEHLERNUMMER}-done@@debbugs.gnu.org} senden."
#. type: subsection
-#: guix-git/doc/contributing.texi:1477 guix-git/doc/contributing.texi:1479
-#: guix-git/doc/contributing.texi:1480
+#: guix-git/doc/contributing.texi:1563 guix-git/doc/contributing.texi:1565
+#: guix-git/doc/contributing.texi:1566
#, no-wrap
msgid "Configuring Git"
msgstr "Git einrichten"
#. type: subsection
-#: guix-git/doc/contributing.texi:1477 guix-git/doc/contributing.texi:1495
-#: guix-git/doc/contributing.texi:1496
+#: guix-git/doc/contributing.texi:1563 guix-git/doc/contributing.texi:1589
+#: guix-git/doc/contributing.texi:1590
#, no-wrap
msgid "Sending a Patch Series"
msgstr "Senden einer Patch-Reihe"
#. type: subsection
-#: guix-git/doc/contributing.texi:1477 guix-git/doc/contributing.texi:1631
-#: guix-git/doc/contributing.texi:1632
+#: guix-git/doc/contributing.texi:1563 guix-git/doc/contributing.texi:1725
+#: guix-git/doc/contributing.texi:1726
#, no-wrap
msgid "Teams"
msgstr "Teams"
#. type: cindex
-#: guix-git/doc/contributing.texi:1481
+#: guix-git/doc/contributing.texi:1567
#, no-wrap
msgid "git configuration"
msgstr "Git-Konfiguration"
#. type: code{#1}
-#: guix-git/doc/contributing.texi:1482 guix-git/doc/contributing.texi:1499
+#: guix-git/doc/contributing.texi:1568 guix-git/doc/contributing.texi:1593
#, no-wrap
msgid "git format-patch"
msgstr "git format-patch"
#. type: code{#1}
-#: guix-git/doc/contributing.texi:1483 guix-git/doc/contributing.texi:1498
+#: guix-git/doc/contributing.texi:1569 guix-git/doc/contributing.texi:1592
#, no-wrap
msgid "git send-email"
msgstr "git send-email"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1491
+#: guix-git/doc/contributing.texi:1577
msgid "If you have not done so already, you may wish to set a name and email that will be associated with your commits (@pxref{telling git your name, , Telling Git your name, git, Git User Manual}). If you wish to use a different name or email just for commits in this repository, you can use @command{git config --local}, or edit @file{.git/config} in the repository instead of @file{~/.gitconfig}."
msgstr "Wenn es noch nicht geschehen ist, wollen Sie vielleicht den Namen und die E-Mail-Adresse festlegen, mit der Ihre Commits ausgestellt werden (siehe @ref{telling git your name, , Telling Git your name, git, Git-Benutzerhandbuch}). Wenn Sie einen anderen Namen oder eine andere E-Mail-Adresse nur für Commits in diesem Repository verwenden möchten, können Sie @command{git config --local} benutzen oder Änderungen in der Datei @file{.git/config} im Repository statt in @file{~/.gitconfig} durchführen."
+#. type: cindex
+#: guix-git/doc/contributing.texi:1578
+#, no-wrap
+msgid "commit-msg hook"
+msgstr ""
+
#. type: Plain text
-#: guix-git/doc/contributing.texi:1494
-msgid "Other important Git configuration will automatically be configured when building the project (@pxref{Building from Git})."
-msgstr "Andere wichtige Einstellungen für Git werden automatisch eingestellt, wenn Sie das Projekt kompilieren (siehe @ref{Building from Git})."
+#: guix-git/doc/contributing.texi:1588
+msgid "Other important Git configuration will automatically be configured when building the project (@pxref{Building from Git}). A @file{.git/hooks/commit-msg} hook will be installed that embeds @samp{Change-Id} Git @emph{trailers} in your commit messages for traceability purposes. It is important to preserve these when editing your commit messages, particularly if a first version of your proposed changes was already submitted for review. If you have a @file{commit-msg} hook of your own you would like to use with Guix, you can place it under the @file{.git/hooks/commit-msg.d/} directory."
+msgstr ""
#. type: cindex
-#: guix-git/doc/contributing.texi:1497
+#: guix-git/doc/contributing.texi:1591
#, no-wrap
msgid "patch series"
msgstr "Patch-Reihe"
#. type: anchor{#1}
-#: guix-git/doc/contributing.texi:1501 guix-git/doc/contributing.texi:1508
+#: guix-git/doc/contributing.texi:1595 guix-git/doc/contributing.texi:1602
#, no-wrap
msgid "Single Patches"
msgstr "Einzelne Patches"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1508
+#: guix-git/doc/contributing.texi:1602
msgid "The @command{git send-email} command is the best way to send both single patches and patch series (@pxref{Multiple Patches}) to the Guix mailing list. Sending patches as email attachments may make them difficult to review in some mail clients, and @command{git diff} does not store commit metadata."
msgstr "Der Befehl @command{git send-email} ist die beste Art, wie Sie sowohl einzelne Patches als auch Patch-Reihen (siehe @ref{Multiple Patches}) an die Guix-Mailing-Liste schicken können. Würden Sie Patches als E-Mail-Anhänge schicken, wäre es in manchen Mailprogrammen umständlich, diese zu überprüfen. Und wenn Sie aus @command{git diff} kopierten, würden die Metadaten des Commits fehlen."
#. type: quotation
-#: guix-git/doc/contributing.texi:1512
+#: guix-git/doc/contributing.texi:1606
msgid "The @command{git send-email} command is provided by the @code{send-email} output of the @code{git} package, i.e. @code{git:send-email}."
msgstr "Der Befehl @command{git send-email} ist in der Ausgabe namens @code{send-email} des @code{git}-Pakets enthalten, also @code{git:send-email}."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1519
+#: guix-git/doc/contributing.texi:1613
msgid "The following command will create a patch email from the latest commit, open it in your @var{EDITOR} or @var{VISUAL} for editing, and send it to the Guix mailing list to be reviewed and merged. Assuming you have already configured Git according to @xref{Configuring Git}, you can simply use:"
msgstr "Mit dem folgenden Befehl erzeugen Sie eine E-Mail mit dem Patch aus dem neuesten Commit, öffnen diese in Ihrem gewählten @var{EDITOR} oder @var{VISUAL}, um sie zu bearbeiten, und schicken sie an die Guix-Mailing-Liste, damit jemand sie überprüft und merget. Vorausgesetzt Sie haben Git bereits so eingerichtet wie in Abschnitt @ref{Configuring Git} beschrieben, können Sie einfach dies benutzen:"
#. type: example
-#: guix-git/doc/contributing.texi:1522
+#: guix-git/doc/contributing.texi:1616
#, no-wrap
msgid "$ git send-email --annotate -1\n"
msgstr "$ git send-email --annotate -1\n"
#. type: quotation
-#: guix-git/doc/contributing.texi:1524 guix-git/doc/guix.texi:19915
-#: guix-git/doc/guix.texi:19923 guix-git/doc/guix.texi:33432
+#: guix-git/doc/contributing.texi:1618 guix-git/doc/guix.texi:19954
+#: guix-git/doc/guix.texi:19962 guix-git/doc/guix.texi:33527
#, no-wrap
msgid "Tip"
msgstr "Tipp"
#. type: quotation
-#: guix-git/doc/contributing.texi:1530
+#: guix-git/doc/contributing.texi:1624
msgid "To add a prefix to the subject of your patch, you may use the @option{--subject-prefix} option. The Guix project uses this to specify that the patch is intended for a branch or repository other than the @code{master} branch of @url{https://git.savannah.gnu.org/cgit/guix.git}."
msgstr "Wenn Sie in der Betreffzeile zu Ihrem Patch ein zusätzliches Präfix mitgeben möchten, können Sie die Befehlszeilenoption @option{--subject-prefix} benutzen. Beim Guix-Projekt wird so angegeben, dass der Patch für einen bestimmten Branch oder ein anderes Repository bestimmt ist, statt für den @code{master}-Branch von @url{https://git.savannah.gnu.org/cgit/guix.git}."
#. type: example
-#: guix-git/doc/contributing.texi:1533
+#: guix-git/doc/contributing.texi:1627
#, no-wrap
msgid "git send-email --annotate --subject-prefix='PATCH core-updates' -1\n"
msgstr "git send-email --annotate --subject-prefix='PATCH core-updates' -1\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1540
+#: guix-git/doc/contributing.texi:1634
msgid "The patch email contains a three-dash separator line after the commit message. You may ``annotate'' the patch with explanatory text by adding it under this line. If you do not wish to annotate the email, you may drop the @option{--annotate} option."
msgstr "In der Patch-E-Mail finden Sie eine Trennlinie aus drei Bindestrichen unter der Commit-Nachricht. Sie dürfen erklärende Bemerkungen zum Patch unterhalb dieser Linie anbringen. Wenn Sie keine solchen Annotationen in der E-Mail schreiben möchten, können Sie oben auf die Befehlszeilenoption @option{--annotate} verzichten."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1547
+#: guix-git/doc/contributing.texi:1641
msgid "If you need to send a revised patch, don't resend it like this or send a ``fix'' patch to be applied on top of the last one; instead, use @command{git commit --amend} or @url{https://git-rebase.io, @command{git rebase}} to modify the commit, and use the @email{@var{ISSUE_NUMBER}@@debbugs.gnu.org} address and the @option{-v} flag with @command{git send-email}."
msgstr "Wenn Sie einen überarbeiteten Patch schicken müssen, geht das anders. Machen Sie es @emph{nicht} so und schicken Sie @emph{keinen} Patch mit einem „Fix“, der als Nächstes angewandt werden müsste, sondern verwenden Sie stattdessen @command{git commit --amend} oder @url{https://git-rebase.io, @command{git rebase}}, um den alten Commit zu verändern, und schicken den an die Adresse @email{@var{FEHLERNUMMER}@@debbugs.gnu.org}, wobei Sie außerdem die Befehlszeilenoption @option{-v} von @command{git send-email} angeben."
#. type: example
-#: guix-git/doc/contributing.texi:1552
+#: guix-git/doc/contributing.texi:1646
#, no-wrap
msgid ""
"$ git commit --amend\n"
@@ -2301,56 +2426,56 @@ msgstr ""
" --to=@var{FEHLERNUMMER}@@debbugs.gnu.org -1\n"
#. type: quotation
-#: guix-git/doc/contributing.texi:1558
+#: guix-git/doc/contributing.texi:1652
msgid "Due to an apparent bug in @command{git send-email}, @option{-v @var{REVISION}} (with the space) will not work; you @emph{must} use @option{-v@var{REVISION}}."
msgstr "Offenbar gibt es einen Fehler in @command{git send-email}, wodurch Sie @emph{nicht} @option{-v @var{REVISION}} (mit einem Leerzeichen) schreiben dürfen; lediglich @option{-v@var{REVISION}} funktioniert."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1564
+#: guix-git/doc/contributing.texi:1658
msgid "You can find out @var{ISSUE_NUMBER} either by searching on the mumi interface at @url{https://issues.guix.gnu.org} for the name of your patch or reading the acknowledgement email sent automatically by Debbugs in reply to incoming bugs and patches, which contains the bug number."
msgstr "Die @var{FEHLERNUMMER} finden Sie heraus, indem Sie entweder auf der Mumi-Oberfläche auf @url{https://issues.guix.gnu.org} nach dem Namen Ihres Patches suchen oder indem Sie in Ihren E-Mails auf die Eingangsbestätigung schauen, die Debbugs Ihnen automatisch als Antwort auf eingehende Fehlerberichte (Bugs) und Patches hat zukommen lassen. Darin finden Sie die Fehlernummer."
#. type: anchor{#1}
-#: guix-git/doc/contributing.texi:1565 guix-git/doc/contributing.texi:1567
+#: guix-git/doc/contributing.texi:1659 guix-git/doc/contributing.texi:1661
#, no-wrap
msgid "Notifying Teams"
msgstr "Teams ansprechen"
#. type: cindex
-#: guix-git/doc/contributing.texi:1567 guix-git/doc/contributing.texi:1633
+#: guix-git/doc/contributing.texi:1661 guix-git/doc/contributing.texi:1727
#, no-wrap
msgid "teams"
msgstr "Teams"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1576
+#: guix-git/doc/contributing.texi:1670
msgid "If your git checkout has been correctly configured (@pxref{Configuring Git}), the @command{git send-email} command will automatically notify the appropriate team members, based on the scope of your changes. This relies on the @file{etc/teams.scm} script, which can also be invoked manually if you do not use the preferred @command{git send-email} command to submit patches. To list the available actions of the script, you can invoke it via the @command{etc/teams.scm help} command. For more information regarding teams, see @xref{Teams}."
msgstr "Wenn Ihr Git-Ckeckout richtig eingerichtet ist (siehe @ref{Configuring Git}), wird der Befehl @command{git send-email} automatisch die Mitglieder des zuständigen Teams benachrichtigen. Dazu analysiert das Skript @file{etc/teams.scm} Ihre Änderungen. Sie können es auch selbst aufrufen, wenn Sie den zum Einreichen von Patches bevorzugten Befehl @command{git send-email} meiden. Um die verfügbaren Aktionen für dieses Skript zu lesen, können Sie es mit dem Befehl @command{etc/teams.scm help} aufrufen. Für weitere Informationen über Teams siehe den Abschnitt @ref{Teams}."
#. type: anchor{#1}
-#: guix-git/doc/contributing.texi:1577 guix-git/doc/contributing.texi:1579
+#: guix-git/doc/contributing.texi:1671 guix-git/doc/contributing.texi:1673
#, no-wrap
msgid "Multiple Patches"
msgstr "Mehrere Patches"
#. type: cindex
-#: guix-git/doc/contributing.texi:1579
+#: guix-git/doc/contributing.texi:1673
#, no-wrap
msgid "cover letter"
msgstr "Deckblatt (Cover Letter)"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1585
+#: guix-git/doc/contributing.texi:1679
msgid "While @command{git send-email} alone will suffice for a single patch, an unfortunate flaw in Debbugs means you need to be more careful when sending multiple patches: if you send them all to the @email{guix-patches@@gnu.org} address, a new issue will be created for each patch!"
msgstr "Obwohl @command{git send-email} allein für einen einzelnen Patch genügt, führt eine Unzulänglichkeit in Debbugs dazu, dass Sie beim Versenden mehrerer Patches achtgeben müssen: Wenn Sie alle auf einmal an die Adresse @email{guix-patches@@gnu.org} schicken würden, würde für jeden Patch jeweils ein Fehlerbericht eröffnet!"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1591
+#: guix-git/doc/contributing.texi:1685
msgid "When sending a series of patches, it's best to send a Git ``cover letter'' first, to give reviewers an overview of the patch series. We can create a directory called @file{outgoing} containing both our patch series and a cover letter called @file{0000-cover-letter.patch} with @command{git format-patch}."
msgstr "Wenn Sie die Patches aber als Patch-Reihe abschicken wollen, sollten Sie als Erstes mit Git ein „Deckblatt“ schicken, das den Gutachtern einen Überblick über die Patch-Reihe gibt. Zum Beispiel können Sie ein Verzeichnis namens @file{ausgehend} anlegen und darin sowohl Ihre Patch-Reihe als auch ein Deckblatt namens @file{0000-cover-letter.patch} platzieren, indem Sie @command{git format-patch} aufrufen."
#. type: example
-#: guix-git/doc/contributing.texi:1595
+#: guix-git/doc/contributing.texi:1689
#, no-wrap
msgid ""
"$ git format-patch -@var{NUMBER_COMMITS} -o outgoing \\\n"
@@ -2360,12 +2485,12 @@ msgstr ""
" --cover-letter --base=auto\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1600
+#: guix-git/doc/contributing.texi:1694
msgid "We can now send @emph{just} the cover letter to the @email{guix-patches@@gnu.org} address, which will create an issue that we can send the rest of the patches to."
msgstr "Jetzt schicken Sie @emph{nur} das Deckblatt an die Adresse @email{guix-patches@@gnu.org}, so dass ein Fehlerbericht aufgemacht wird, an den wir dann die restlichen Patches schicken können."
#. type: example
-#: guix-git/doc/contributing.texi:1604
+#: guix-git/doc/contributing.texi:1698
#, no-wrap
msgid ""
"$ git send-email outgoing/0000-cover-letter.patch --annotate\n"
@@ -2375,17 +2500,17 @@ msgstr ""
"$ rm ausgehend/0000-cover-letter.patch # nicht nochmal schicken!\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1609
+#: guix-git/doc/contributing.texi:1703
msgid "Ensure you edit the email to add an appropriate subject line and blurb before sending it. Note the automatically generated shortlog and diffstat below the blurb."
msgstr "Passen Sie auf und bearbeiten die E-Mail nochmal, um ihr vor dem Abschicken eine angemessene Betreffzeile (Subject) und anstelle von Blurb Ihren Text mitzugeben. Sie werden bemerken, dass unterhalb des Textes automatisch ein Shortlog und Diffstat aufgelistet wurden."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1612
+#: guix-git/doc/contributing.texi:1706
msgid "Once the Debbugs mailer has replied to your cover letter email, you can send the actual patches to the newly-created issue address."
msgstr "Sobald Sie vom Debbugs-Mailer eine Antwort auf Ihre Deckblatt-E-Mail erhalten haben, können Sie die eigentlichen Patches an die neu erzeugte Adresse für diesen Fehlerbericht senden."
#. type: example
-#: guix-git/doc/contributing.texi:1616
+#: guix-git/doc/contributing.texi:1710
#, no-wrap
msgid ""
"$ git send-email outgoing/*.patch --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org\n"
@@ -2395,12 +2520,12 @@ msgstr ""
"$ rm -rf ausgehend # wir sind damit fertig\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1621
+#: guix-git/doc/contributing.texi:1715
msgid "Thankfully, this @command{git format-patch} dance is not necessary to send an amended patch series, since an issue already exists for the patchset."
msgstr "Zum Glück können wir uns diesen Tanz mit @command{git format-patch} danach sparen, wenn wir eine überarbeitete Patch-Reihe schicken, weil wir die Fehlernummer dann bereits haben."
#. type: example
-#: guix-git/doc/contributing.texi:1625
+#: guix-git/doc/contributing.texi:1719
#, no-wrap
msgid ""
"$ git send-email -@var{NUMBER_COMMITS} -v@var{REVISION} \\\n"
@@ -2410,17 +2535,17 @@ msgstr ""
" --to=@var{FEHLERNUMMER}@@debbugs.gnu.org\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1630
+#: guix-git/doc/contributing.texi:1724
msgid "If need be, you may use @option{--cover-letter --annotate} to send another cover letter, e.g. for explaining what's changed since the last revision, and these changes are necessary."
msgstr "Wenn nötig, können Sie mit @option{--cover-letter --annotate} auch dann ein weiteres Deckblatt mitschicken, z.B.@: um zu erklären, was die Änderungen seit der letzten Revision sind und warum sie nötig waren."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1637
+#: guix-git/doc/contributing.texi:1731
msgid "There are several teams mentoring different parts of the Guix source code. To list all those teams, you can run from a Guix checkout:"
msgstr "Der Quellcode von Guix ist unter mehreren Mentorenteams aufgeteilt. Um sich eine Liste aller Teams anzeigen zu lassen, führen Sie aus einem Guix-Checkout Folgendes aus:"
#. type: example
-#: guix-git/doc/contributing.texi:1650
+#: guix-git/doc/contributing.texi:1744
#, no-wrap
msgid ""
"$ ./etc/teams.scm list-teams\n"
@@ -2448,12 +2573,12 @@ msgstr ""
"…\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1654
+#: guix-git/doc/contributing.texi:1748
msgid "You can run the following command to have the @code{Mentors} team put in CC of a patch series:"
msgstr "Sie können den folgenden Befehl benutzen, um das Team @code{Mentors} bei einer Patch-Reihe in CC zu setzen:"
#. type: example
-#: guix-git/doc/contributing.texi:1658
+#: guix-git/doc/contributing.texi:1752
#, no-wrap
msgid ""
"$ git send-email --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org \\\n"
@@ -2463,12 +2588,12 @@ msgstr ""
" --header-cmd='etc/teams.scm cc-mentors-header-cmd' *.patch\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1663
+#: guix-git/doc/contributing.texi:1757
msgid "The appropriate team or teams can also be inferred from the modified files. For instance, if you want to send the two latest commits of the current Git repository to review, you can run:"
msgstr "Das zuständige Team kann auch automatisch anhand der geänderten Dateien ermittelt werden. Wenn Sie zum Beispiel für die letzten zwei Commits im aktuellen Git-Repository um Überprüfung bitten möchten, führen Sie dies aus:"
#. type: example
-#: guix-git/doc/contributing.texi:1667
+#: guix-git/doc/contributing.texi:1761
#, no-wrap
msgid ""
"$ guix shell -D guix\n"
@@ -2478,201 +2603,213 @@ msgstr ""
"[env]$ git send-email --to=@var{FEHLERNUMMER}@@debbugs.gnu.org -2\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1674
+#: guix-git/doc/contributing.texi:1768
msgid "This section describes how the Guix project tracks its bug reports, patch submissions and topic branches."
msgstr "Dieser Abschnitt beschreibt, wie das Guix-Projekt Fehlerberichte, eingereichte Patches und Topic-Branches verwaltet."
#. type: subsection
-#: guix-git/doc/contributing.texi:1680 guix-git/doc/contributing.texi:1682
-#: guix-git/doc/contributing.texi:1683
+#: guix-git/doc/contributing.texi:1775 guix-git/doc/contributing.texi:1777
+#: guix-git/doc/contributing.texi:1778
#, no-wrap
msgid "The Issue Tracker"
msgstr "Der Issue-Tracker"
#. type: menuentry
-#: guix-git/doc/contributing.texi:1680
+#: guix-git/doc/contributing.texi:1775
msgid "The official bug and patch tracker."
msgstr "Die offizielle Übersicht über Bugs und Patches."
#. type: subsection
-#: guix-git/doc/contributing.texi:1680 guix-git/doc/contributing.texi:1696
-#: guix-git/doc/contributing.texi:1697
+#: guix-git/doc/contributing.texi:1775 guix-git/doc/contributing.texi:1791
+#: guix-git/doc/contributing.texi:1792
#, no-wrap
msgid "Managing Patches and Branches"
msgstr "Umgang mit Patches und Branches"
#. type: menuentry
-#: guix-git/doc/contributing.texi:1680
+#: guix-git/doc/contributing.texi:1775
msgid "How changes to Guix are managed."
msgstr "Wie mit Änderungen für Guix verfahren wird."
#. type: subsection
-#: guix-git/doc/contributing.texi:1680 guix-git/doc/contributing.texi:1756
-#: guix-git/doc/contributing.texi:1757
+#: guix-git/doc/contributing.texi:1775 guix-git/doc/contributing.texi:1851
+#: guix-git/doc/contributing.texi:1852
#, no-wrap
msgid "Debbugs User Interfaces"
msgstr "Debbugs-Benutzerschnittstellen"
#. type: menuentry
-#: guix-git/doc/contributing.texi:1680
+#: guix-git/doc/contributing.texi:1775
msgid "Ways to interact with Debbugs."
msgstr "Möglichkeiten, mit Debbugs umzugehen."
#. type: subsection
-#: guix-git/doc/contributing.texi:1680 guix-git/doc/contributing.texi:1880
-#: guix-git/doc/contributing.texi:1881
+#: guix-git/doc/contributing.texi:1775 guix-git/doc/contributing.texi:1975
+#: guix-git/doc/contributing.texi:1976
#, no-wrap
msgid "Debbugs Usertags"
msgstr "Debbugs-Usertags"
#. type: menuentry
-#: guix-git/doc/contributing.texi:1680
+#: guix-git/doc/contributing.texi:1775
msgid "Tag reports with custom labels."
msgstr "Meldungen mit eigenen Kennzeichen versehen."
+#. type: subsection
+#: guix-git/doc/contributing.texi:1775 guix-git/doc/contributing.texi:2024
+#: guix-git/doc/contributing.texi:2025
+#, no-wrap
+msgid "Cuirass Build Notifications"
+msgstr ""
+
+#. type: menuentry
+#: guix-git/doc/contributing.texi:1775
+msgid "Be alerted of any breakage via RSS feeds."
+msgstr ""
+
#. type: cindex
-#: guix-git/doc/contributing.texi:1685
+#: guix-git/doc/contributing.texi:1780
#, no-wrap
msgid "bug reports, tracking"
msgstr "Bug-Meldungen, Überblick"
#. type: cindex
-#: guix-git/doc/contributing.texi:1686
+#: guix-git/doc/contributing.texi:1781
#, no-wrap
msgid "patch submissions, tracking"
msgstr "Patch-Einreichungen, Überblick"
#. type: cindex
-#: guix-git/doc/contributing.texi:1687
+#: guix-git/doc/contributing.texi:1782
#, no-wrap
msgid "issue tracking"
msgstr "gemeldete Fehler überblicken"
#. type: cindex
-#: guix-git/doc/contributing.texi:1688
+#: guix-git/doc/contributing.texi:1783
#, no-wrap
msgid "Debbugs, issue tracking system"
msgstr "Debbugs, System zum Überblicken gemeldeter Fehler"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1695
+#: guix-git/doc/contributing.texi:1790
msgid "Bug reports and patch submissions are currently tracked using the Debbugs instance at @uref{https://bugs.gnu.org}. Bug reports are filed against the @code{guix} ``package'' (in Debbugs parlance), by sending email to @email{bug-guix@@gnu.org}, while patch submissions are filed against the @code{guix-patches} package by sending email to @email{guix-patches@@gnu.org} (@pxref{Submitting Patches})."
msgstr "Einen Überblick über gemeldete Fehler („Bugs“) und eingereichte Patches finden Sie derzeit auf der Debbugs-Instanz unter @uref{https://bugs.gnu.org}. Fehler werden für das „Paket“ (so sagt man im Sprachgebrauch von Debbugs) namens @code{guix} gemeldet, indem Sie eine E-Mail an @email{bug-guix@@gnu.org} schicken. Dagegen werden Patches für das Paket @code{guix-patches} eingereicht, indem Sie eine E-Mail an @email{guix-patches@@gnu.org} schicken (siehe @ref{Submitting Patches})."
#. type: cindex
-#: guix-git/doc/contributing.texi:1698
+#: guix-git/doc/contributing.texi:1793
#, no-wrap
msgid "branching strategy"
msgstr "Branching-Strategie"
#. type: cindex
-#: guix-git/doc/contributing.texi:1699
+#: guix-git/doc/contributing.texi:1794
#, no-wrap
msgid "rebuild scheduling strategy"
msgstr "Neuerstellungs-Zeitplan"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1708
+#: guix-git/doc/contributing.texi:1803
msgid "Changes should be posted to @email{guix-patches@@gnu.org}. This mailing list fills the patch-tracking database (@pxref{The Issue Tracker}). It also allows patches to be picked up and tested by the quality assurance tooling; the result of that testing eventually shows up on the dashboard at @indicateurl{https://qa.guix.gnu.org/issue/@var{ISSUE_NUMBER}}, where @var{ISSUE_NUMBER} is the number assigned by the issue tracker. Leave time for a review, without committing anything."
msgstr "Änderungen sollten an @email{guix-patches@@gnu.org} geschickt werden. Was an diese Mailing-Liste geschickt wird, steht danach in der Patch-Datenbank (siehe @ref{The Issue Tracker}). Auch springen daraufhin weitere Werkzeuge zur Qualitätssicherung an; sobald diese die Änderung überprüft haben, wird auf @indicateurl{https://qa.guix.gnu.org/issue/@var{FEHLERNUMMER}} das Ergebnis präsentiert; dabei ist mit @var{FEHLERNUMMER} die Zahl gemeint, die vom Issue-Tracker zugewiesen wurde. Warten Sie ab, bis ein Mensch die Änderung überprüft hat, ohne etwas zu commiten."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1714
+#: guix-git/doc/contributing.texi:1809
msgid "As an exception, some changes considered ``trivial'' or ``obvious'' may be pushed directly to the @code{master} branch. This includes changes to fix typos and reverting commits that caused immediate problems. This is subject to being adjusted, allowing individuals to commit directly on non-controversial changes on parts they’re familiar with."
msgstr "Eine Ausnahme machen wir bei „trivialen“ oder „offensichtlichen“ Änderungen. Diese darf man direkt auf den @code{master}-Branch pushen. Zu den trivialen Änderungen gehört zum Beispiel das Beheben von Schreibfehlern oder unmittelbar problematische Änderungen rückgängig zu machen. Die letzten Anweisungen werden wir vielleicht noch ändern, damit man unstrittige Änderungen direkt commiten kann, wenn man mit von Änderungen betroffenen Teilen vertraut ist."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1722
+#: guix-git/doc/contributing.texi:1817
msgid "Changes which affect more than 300 dependent packages (@pxref{Invoking guix refresh}) should first be pushed to a topic branch other than @code{master}; the set of changes should be consistent---e.g., ``GNOME update'', ``NumPy update'', etc. This allows for testing: the branch will automatically show up at @indicateurl{https://qa.guix.gnu.org/branch/@var{branch}}, with an indication of its build status on various platforms."
msgstr ""
#. type: cindex
-#: guix-git/doc/contributing.texi:1723
+#: guix-git/doc/contributing.texi:1818
#, no-wrap
msgid "feature branches, coordination"
msgstr ""
#. type: Plain text
-#: guix-git/doc/contributing.texi:1728
+#: guix-git/doc/contributing.texi:1823
msgid "To help coordinate the merging of branches, you must create a new guix-patches issue each time you wish to merge a branch (@pxref{The Issue Tracker}). The title of the issue requesting to merge a branch should have the following format:"
msgstr ""
#. type: cindex
-#: guix-git/doc/contributing.texi:1729
+#: guix-git/doc/contributing.texi:1824
#, no-wrap
msgid "merge requests, template"
msgstr ""
#. type: example
-#: guix-git/doc/contributing.texi:1732
+#: guix-git/doc/contributing.texi:1827
#, no-wrap
msgid "Request for merging \"@var{name}\" branch\n"
msgstr ""
#. type: Plain text
-#: guix-git/doc/contributing.texi:1738
+#: guix-git/doc/contributing.texi:1833
msgid "The @url{https://qa.guix.gnu.org/, QA infrastructure} recognizes such issues and lists the merge requests on its main page. Normally branches will be merged in a ``first come, first merged'' manner, tracked through the guix-patches issues."
msgstr ""
#. type: Plain text
-#: guix-git/doc/contributing.texi:1749
+#: guix-git/doc/contributing.texi:1844
msgid "If you agree on a different order with those involved, you can track this by updating which issues block@footnote{You can mark an issue as blocked by another by emailing @email{control@@debbugs.gnu.org} with the following line in the body of the email: @code{block XXXXX by YYYYY}. Where @code{XXXXX} is the number for the blocked issue, and @code{YYYYY} is the number for the issue blocking it.} which other issues. Therefore, to know which branch is at the front of the queue, look for the oldest issue, or the issue that isn't @dfn{blocked} by any other branch merges. An ordered list of branches with the open issues is available at @url{https://qa.guix.gnu.org}."
msgstr ""
#. type: Plain text
-#: guix-git/doc/contributing.texi:1755
+#: guix-git/doc/contributing.texi:1850
msgid "Once a branch is at the front of the queue, wait until sufficient time has passed for the build farms to have processed the changes, and for the necessary testing to have happened. For example, you can check @indicateurl{https://qa.guix.gnu.org/branch/@var{branch}} to see information on some builds and substitute availability."
msgstr ""
#. type: subsubsection
-#: guix-git/doc/contributing.texi:1759
+#: guix-git/doc/contributing.texi:1854
#, no-wrap
msgid "Web interface"
msgstr "Weboberfläche"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1763
+#: guix-git/doc/contributing.texi:1858
msgid "A web interface (actually @emph{two} web interfaces!) are available to browse issues:"
msgstr "Ihnen steht eine Weboberfläche (tatsächlich sogar @emph{zwei} Weboberflächen!) zur Verfügung, um die Fehlerdatenbank zu durchsuchen:"
#. type: itemize
-#: guix-git/doc/contributing.texi:1772
+#: guix-git/doc/contributing.texi:1867
msgid "@url{https://issues.guix.gnu.org} provides a pleasant interface@footnote{The web interface at @url{https://issues.guix.gnu.org} is powered by Mumi, a nice piece of software written in Guile, and you can help! See @url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.} to browse bug reports and patches, and to participate in discussions;"
msgstr "@url{https://issues.guix.gnu.org} erlaubt es Ihnen, über eine hübsche Schnittstelle @footnote{Die Weboberfläche unter @url{https://issues.guix.gnu.org} läuft über das Programm Mumi, ein schönes Stück in Guile geschriebene Software, bei der Sie uns helfen können! Siehe @url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.} eingesendete Fehlerberichte („Bug Reports“) und Patches einzusehen und an Diskussionen teilzunehmen."
#. type: itemize
-#: guix-git/doc/contributing.texi:1774
+#: guix-git/doc/contributing.texi:1869
msgid "@url{https://bugs.gnu.org/guix} lists bug reports;"
msgstr "Auf @url{https://bugs.gnu.org/guix} werden gemeldete Fehler aufgeführt,"
#. type: itemize
-#: guix-git/doc/contributing.texi:1776
+#: guix-git/doc/contributing.texi:1871
msgid "@url{https://bugs.gnu.org/guix-patches} lists patch submissions."
msgstr "auf @url{https://bugs.gnu.org/guix-patches} eingereichte Patches."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1781
+#: guix-git/doc/contributing.texi:1876
msgid "To view discussions related to issue number @var{n}, go to @indicateurl{https://issues.guix.gnu.org/@var{n}} or @indicateurl{https://bugs.gnu.org/@var{n}}."
msgstr "Um Diskussionen zum Fehler mit Fehlernummer @var{n} einzusehen, schauen Sie auf @indicateurl{https://issues.guix.gnu.org/@var{n}} oder @indicateurl{https://bugs.gnu.org/@var{n}}."
#. type: subsubsection
-#: guix-git/doc/contributing.texi:1782
+#: guix-git/doc/contributing.texi:1877
#, no-wrap
msgid "Command-line interface"
msgstr "Befehlszeilenschnittstelle"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1788
+#: guix-git/doc/contributing.texi:1883
msgid "Mumi also comes with a command-line interface that can be used to search existing issues, open new issues and send patches. You do not need to use Emacs to use the mumi command-line client. You interact with it only on the command-line."
msgstr ""
#. type: Plain text
-#: guix-git/doc/contributing.texi:1792
+#: guix-git/doc/contributing.texi:1887
msgid "To use the mumi command-line interface, navigate to a local clone of the Guix git repository, and drop into a shell with mumi, git and git:send-email installed."
msgstr ""
#. type: example
-#: guix-git/doc/contributing.texi:1796
+#: guix-git/doc/contributing.texi:1891
#, no-wrap
msgid ""
"$ cd guix\n"
@@ -2680,12 +2817,12 @@ msgid ""
msgstr ""
#. type: Plain text
-#: guix-git/doc/contributing.texi:1799
+#: guix-git/doc/contributing.texi:1894
msgid "To search for issues, say all open issues about \"zig\", run"
msgstr ""
#. type: example
-#: guix-git/doc/contributing.texi:1802
+#: guix-git/doc/contributing.texi:1897
#, no-wrap
msgid ""
"~/guix [env]$ mumi search zig is:open\n"
@@ -2693,7 +2830,7 @@ msgid ""
msgstr ""
#. type: example
-#: guix-git/doc/contributing.texi:1813
+#: guix-git/doc/contributing.texi:1908
#, no-wrap
msgid ""
"#60889 Add zig-build-system\n"
@@ -2709,12 +2846,12 @@ msgid ""
msgstr ""
#. type: Plain text
-#: guix-git/doc/contributing.texi:1816
+#: guix-git/doc/contributing.texi:1911
msgid "Pick an issue and make it the \"current\" issue."
msgstr ""
#. type: example
-#: guix-git/doc/contributing.texi:1819
+#: guix-git/doc/contributing.texi:1914
#, no-wrap
msgid ""
"~/guix [env]$ mumi current 61036\n"
@@ -2722,7 +2859,7 @@ msgid ""
msgstr ""
#. type: example
-#: guix-git/doc/contributing.texi:1822
+#: guix-git/doc/contributing.texi:1917
#, no-wrap
msgid ""
"#61036 [PATCH 0/3] Update zig to 0.10.1\n"
@@ -2730,12 +2867,12 @@ msgid ""
msgstr ""
#. type: Plain text
-#: guix-git/doc/contributing.texi:1826
+#: guix-git/doc/contributing.texi:1921
msgid "Once an issue is the current issue, you can easily create and send patches to it using"
msgstr ""
#. type: example
-#: guix-git/doc/contributing.texi:1830
+#: guix-git/doc/contributing.texi:1925
#, no-wrap
msgid ""
"~/guix [env]$ git format-patch origin/master\n"
@@ -2743,104 +2880,104 @@ msgid ""
msgstr ""
#. type: Plain text
-#: guix-git/doc/contributing.texi:1835
+#: guix-git/doc/contributing.texi:1930
msgid "Note that you do not have to pass in @samp{--to} or @samp{--cc} arguments to @command{git format-patch}. @command{mumi send-email} will put them in correctly when sending the patches."
msgstr ""
#. type: Plain text
-#: guix-git/doc/contributing.texi:1837
+#: guix-git/doc/contributing.texi:1932
msgid "To open a new issue, run"
msgstr ""
#. type: example
-#: guix-git/doc/contributing.texi:1840
+#: guix-git/doc/contributing.texi:1935
#, no-wrap
msgid "~/guix [env]$ mumi new\n"
msgstr ""
#. type: Plain text
-#: guix-git/doc/contributing.texi:1843
+#: guix-git/doc/contributing.texi:1938
msgid "and send patches"
msgstr "und senden Sie Patches"
#. type: example
-#: guix-git/doc/contributing.texi:1846
+#: guix-git/doc/contributing.texi:1941
#, no-wrap
msgid "~/guix [env]$ mumi send-email foo.patch bar.patch\n"
msgstr ""
#. type: Plain text
-#: guix-git/doc/contributing.texi:1853
+#: guix-git/doc/contributing.texi:1948
msgid "@command{mumi send-email} is really a wrapper around @command{git send-email} that automates away all the nitty-gritty of sending patches. It uses the current issue state to automatically figure out the correct @samp{To} address to send to, other participants to @samp{Cc}, headers to add, etc."
msgstr ""
#. type: Plain text
-#: guix-git/doc/contributing.texi:1861
+#: guix-git/doc/contributing.texi:1956
msgid "Also note that, unlike @command{git send-email}, @command{mumi send-email} works perfectly well with single and multiple patches alike. It automates away the debbugs dance of sending the first patch, waiting for a response from debbugs and sending the remaining patches. It does so by sending the first patch, polling the server for a response, and then sending the remaining patches. This polling can unfortunately take a few minutes. So, please be patient."
msgstr ""
#. type: subsubsection
-#: guix-git/doc/contributing.texi:1862
+#: guix-git/doc/contributing.texi:1957
#, no-wrap
msgid "Emacs interface"
msgstr "Emacs-Schnittstelle"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1866
+#: guix-git/doc/contributing.texi:1961
msgid "If you use Emacs, you may find it more convenient to interact with issues using @file{debbugs.el}, which you can install with:"
msgstr "Wenn Sie Emacs benutzen, finden Sie es vielleicht bequemer, sich durch Nutzung von @file{debbugs.el} mit Fehlern zu befassen, was Sie mit folgendem Befehl installieren können:"
#. type: example
-#: guix-git/doc/contributing.texi:1869
+#: guix-git/doc/contributing.texi:1964
#, no-wrap
msgid "guix install emacs-debbugs\n"
msgstr "guix install emacs-debbugs\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1872
+#: guix-git/doc/contributing.texi:1967
msgid "For example, to list all open issues on @code{guix-patches}, hit:"
msgstr "Um zum Beispiel alle noch ausstehenden, „offenen“ Fehler bezüglich @code{guix-patches} anzusehen, geben Sie dies ein:"
#. type: example
-#: guix-git/doc/contributing.texi:1875
+#: guix-git/doc/contributing.texi:1970
#, no-wrap
msgid "@kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y\n"
msgstr "@kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1879
+#: guix-git/doc/contributing.texi:1974
msgid "@xref{Top,,, debbugs-ug, Debbugs User Guide}, for more information on this nifty tool!"
msgstr "Siehe @ref{Top,,, debbugs-ug, Debbugs User Guide} für weitere Informationen zu diesem raffinierten Werkzeug."
#. type: cindex
-#: guix-git/doc/contributing.texi:1883
+#: guix-git/doc/contributing.texi:1978
#, no-wrap
msgid "usertags, for debbugs"
msgstr "Usertags, für Debbugs"
#. type: cindex
-#: guix-git/doc/contributing.texi:1884
+#: guix-git/doc/contributing.texi:1979
#, no-wrap
msgid "Debbugs usertags"
msgstr "Debbugs-Usertags"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1890
+#: guix-git/doc/contributing.texi:1985
msgid "Debbugs provides a feature called @dfn{usertags} that allows any user to tag any bug with an arbitrary label. Bugs can be searched by usertag, so this is a handy way to organize bugs@footnote{The list of usertags is public information, and anyone can modify any user's list of usertags, so keep that in mind if you choose to use this feature.}."
msgstr "Debbugs bietet die Möglichkeit, sogenannte @dfn{Usertags} zu vergeben, d.h.@: jeder Benutzer kann jedem Fehlerbericht beliebige Kennzeichnungen zuweisen. Die gemeldeten Fehler können anhand der Usertags gesucht werden, deshalb lassen sich die Meldungen so gut organisieren@footnote{Die Liste der Usertags ist öffentlich zugänglich und jeder kann die Usertag-Liste jedes anderen Nutzers ändern. Sie sollten daran denken, wenn Sie diese Funktionalität gebrauchen möchten.}."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1896
+#: guix-git/doc/contributing.texi:1991
msgid "For example, to view all the bug reports (or patches, in the case of @code{guix-patches}) tagged with the usertag @code{powerpc64le-linux} for the user @code{guix}, open a URL like the following in a web browser: @url{https://debbugs.gnu.org/cgi-bin/pkgreport.cgi?tag=powerpc64le-linux;users=guix}."
msgstr "Wenn Sie sich zum Beispiel alle Fehlerberichte (oder Patches, wenn Sie @code{guix-patches} betrachten) mit dem Usertag @code{powerpc64le-linux} für Benutzer @code{guix} ansehen möchten, öffnen Sie eine URL wie die folgende in einem Webbrowser: @url{https://debbugs.gnu.org/cgi-bin/pkgreport.cgi?tag=powerpc64le-linux;users=guix}."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1900
+#: guix-git/doc/contributing.texi:1995
msgid "For more information on how to use usertags, please refer to the documentation for Debbugs or the documentation for whatever tool you use to interact with Debbugs."
msgstr "Mehr Informationen, wie Sie Usertags benutzen können, finden Sie in der Dokumentation von Debbugs bzw.@: wenn Sie ein externes Programm benutzen, um mit Debbugs zu interagieren, in der Dokumentation dieses Programms."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1905
+#: guix-git/doc/contributing.texi:2000
msgid "In Guix, we are experimenting with usertags to keep track of architecture-specific issues. To facilitate collaboration, all our usertags are associated with the single user @code{guix}. The following usertags currently exist for that user:"
msgstr "In Guix experimentieren wir damit, Usertags zum Beobachten von Fehlern zu verwenden, die nur bestimmte Architekturen betreffen. Zur leichteren Zusammenarbeit verbinden wir all unsere Usertags einzig mit dem Benutzer @code{guix}. Für diesen Benutzer gibt es zurzeit folgende Usertags:"
@@ -2848,14 +2985,14 @@ msgstr "In Guix experimentieren wir damit, Usertags zum Beobachten von Fehlern z
#. type: item
#. #-#-#-#-# guix.pot (guix manual checkout) #-#-#-#-#
#. type: defvar
-#: guix-git/doc/contributing.texi:1908 guix-git/doc/guix.texi:640
-#: guix-git/doc/guix.texi:45305
+#: guix-git/doc/contributing.texi:2003 guix-git/doc/guix.texi:640
+#: guix-git/doc/guix.texi:45564
#, no-wrap
msgid "powerpc64le-linux"
msgstr "powerpc64le-linux"
#. type: table
-#: guix-git/doc/contributing.texi:1916
+#: guix-git/doc/contributing.texi:2011
msgid "The purpose of this usertag is to make it easy to find the issues that matter most for the @code{powerpc64le-linux} system type. Please assign this usertag to bugs or patches that affect @code{powerpc64le-linux} but not other system types. In addition, you may use it to identify issues that for some reason are particularly important for the @code{powerpc64le-linux} system type, even if the issue affects other system types, too."
msgstr "Mit diesem Usertag wollen wir es leichter machen, die Fehler zu finden, die für den Systemtyp @code{powerpc64le-linux} am wichtigsten sind. Bitte weisen Sie ihn solchen Bugs oder Patches zu, die nur @code{powerpc64le-linux} und keine anderen Systemtypen betreffen. Des Weiteren können Sie damit Probleme kennzeichnen, die für den Systemtyp @code{powerpc64le-linux} besonders bedeutsam sind, selbst wenn das Problem sich auch bei anderen Systemtypen zeigt."
@@ -2863,135 +3000,193 @@ msgstr "Mit diesem Usertag wollen wir es leichter machen, die Fehler zu finden,
#. type: item
#. #-#-#-#-# guix.pot (guix manual checkout) #-#-#-#-#
#. type: cindex
-#: guix-git/doc/contributing.texi:1917 guix-git/doc/guix.texi:3386
-#: guix-git/doc/guix.texi:5307
+#: guix-git/doc/contributing.texi:2012 guix-git/doc/guix.texi:3281
+#: guix-git/doc/guix.texi:5202
#, no-wrap
msgid "reproducibility"
msgstr "Reproduzierbarkeit"
#. type: table
-#: guix-git/doc/contributing.texi:1921
+#: guix-git/doc/contributing.texi:2016
msgid "For issues related to reproducibility. For example, it would be appropriate to assign this usertag to a bug report for a package that fails to build reproducibly."
msgstr "Verwenden Sie den Usertag @code{reproducibility} für Fehler in der Reproduzierbarkeit einer Erstellung. Es wäre zum Beispiel angemessen, den Usertag für einen Fehlerbericht zu einem Paket zuzuweisen, das nicht reproduzierbar erstellt wird."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1928
+#: guix-git/doc/contributing.texi:2023
msgid "If you're a committer and you want to add a usertag, just start using it with the @code{guix} user. If the usertag proves useful to you, consider updating this section of the manual so that others will know what your usertag means."
msgstr "Wenn Sie Commit-Zugriff haben und einen neuen Usertag verwenden möchten, dann fangen Sie einfach an, ihn mit dem Benutzer @code{guix} zu benutzen. Erweist sich der Usertag für Sie als nützlich, sollten Sie vielleicht diesen Handbuchabschnitt ergänzen, um andere in Kenntnis zu setzen, was Ihr Usertag bedeutet."
#. type: cindex
-#: guix-git/doc/contributing.texi:1932
+#: guix-git/doc/contributing.texi:2027
+#, no-wrap
+msgid "build event notifications, RSS feed"
+msgstr ""
+
+#. type: cindex
+#: guix-git/doc/contributing.texi:2028
+#, fuzzy, no-wrap
+#| msgid "container, build environment"
+msgid "notifications, build events"
+msgstr "Container, Erstellungsumgebung"
+
+#. type: Plain text
+#: guix-git/doc/contributing.texi:2037
+msgid "Cuirass includes @acronym{RSS, Really Simple Syndication} feeds as one of its features (@pxref{Notifications,,,cuirass}). Since @url{https://ci.guix.gnu.org/, Berlin} runs an instance of Cuirass, this feature can be used to keep track of recently broken or fixed packages caused by changes pushed to the Guix git repository. Any RSS client can be used. A good one, included with Emacs, is @xref{Gnus,,,gnus}. To register the feed, copy its URL, then from the main Gnus buffer, @samp{*Group*}, do the following:"
+msgstr ""
+
+#. type: cindex
+#: guix-git/doc/contributing.texi:2038
+#, no-wrap
+msgid "Gnus, configuration to read CI RSS feeds"
+msgstr ""
+
+#. type: cindex
+#: guix-git/doc/contributing.texi:2039
+#, fuzzy, no-wrap
+#| msgid "SSH client, configuration"
+msgid "RSS feeds, Gnus configuration"
+msgstr "SSH-Client, Konfiguration"
+
+#. type: example
+#: guix-git/doc/contributing.texi:2043
+#, no-wrap
+msgid ""
+"@kbd{G R} https://ci.guix.gnu.org/events/rss/?specification=master RET\n"
+"Guix CI - master RET Build events for specification master. RET\n"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/contributing.texi:2050
+msgid "Then, back at the @samp{*Group*} buffer, press @kbd{s} to save the newly added RSS group. As for any other Gnus group, you can update its content by pressing the @kbd{g} key. You should now receive notifications that read like:"
+msgstr ""
+
+#. type: example
+#: guix-git/doc/contributing.texi:2055
+#, no-wrap
+msgid ""
+" . [ ?: Cuirass ] Build tree-sitter-meson.aarch64-linux on master is fixed.\n"
+" . [ ?: Cuirass ] Build rust-pbkdf2.aarch64-linux on master is fixed.\n"
+" . [ ?: Cuirass ] Build rust-pbkdf2.x86_64-linux on master is fixed.\n"
+msgstr ""
+
+#. type: Plain text
+#: guix-git/doc/contributing.texi:2060
+msgid "where each RSS entry contains a link to the Cuirass build details page of the associated build."
+msgstr ""
+
+#. type: cindex
+#: guix-git/doc/contributing.texi:2064
#, no-wrap
msgid "commit access, for developers"
msgstr "Commit-Zugriff, für Entwickler"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1948
+#: guix-git/doc/contributing.texi:2080
msgid "Everyone can contribute to Guix without having commit access (@pxref{Submitting Patches}). However, for frequent contributors, having write access to the repository can be convenient. As a rule of thumb, a contributor should have accumulated fifty (50) reviewed commits to be considered as a committer and have sustained their activity in the project for at least 6 months. This ensures enough interactions with the contributor, which is essential for mentoring and assessing whether they are ready to become a committer. Commit access should not be thought of as a ``badge of honor'' but rather as a responsibility a contributor is willing to take to help the project. It is expected from all contributors, and even more so from committers, to help build consensus and make decisions based on consensus. To learn what consensus decision making means and understand its finer details, you are encouraged to read @url{https://www.seedsforchange.org.uk/consensus}."
msgstr "Jeder kann bei Guix mitmachen, auch ohne Commit-Zugriff zu haben (siehe @ref{Submitting Patches}). Für Leute, die häufig zu Guix beitragen, kann es jedoch praktischer sein, Schreibzugriff auf das Repository zu haben. Als Daumenregel sollte ein Mitwirkender 50-mal überprüfte Commits eingebracht haben, um als Committer zu gelten, und schon mindestens 6 Monate im Projekt aktiv sein. Dadurch gab es genug Zusammenarbeit, um Mitwirkende einzuarbeiten und einzuschätzen, ob sie so weit sind, Committer zu werden. Dieser Commit-Zugriff sollte nicht als Auszeichnung verstanden werden, sondern als Verantwortung, die ein Mitwirkender auf sich nimmt, um dem Projekt zu helfen. Von allen Mitwirkenden wird erwartet, und erst recht von Committern, zu einer Konsensbildung beizutragen und Entscheidungen mit Konsens zu treffen. Wir ermutigen Sie dazu, @url{https://www.seedsforchange.org.uk/consensus} zu lesen, um ein Verständnis für Konsensentscheidungen zu entwickeln und Einzelheiten zu meistern."
#. type: Plain text
-#: guix-git/doc/contributing.texi:1952
+#: guix-git/doc/contributing.texi:2084
msgid "The following sections explain how to get commit access, how to be ready to push commits, and the policies and community expectations for commits pushed upstream."
msgstr "Im folgenden Abschnitt wird beschrieben, wie jemand Commit-Zugriff bekommt, was man tun muss, bevor man zum ersten Mal einen Commit pusht, und welche Richtlinien und Erwartungen die Gemeinschaft an Commits richtet, die auf das offizielle Repository gepusht werden."
#. type: subsection
-#: guix-git/doc/contributing.texi:1953
+#: guix-git/doc/contributing.texi:2085
#, no-wrap
msgid "Applying for Commit Access"
msgstr "Um Commit-Zugriff bewerben"
#. type: Plain text
-#: guix-git/doc/contributing.texi:1957
+#: guix-git/doc/contributing.texi:2089
msgid "When you deem it necessary, consider applying for commit access by following these steps:"
msgstr "Wenn Sie es für angemessen halten, dann sollten Sie in Erwägung ziehen, sich wie folgt um Commit-Zugriff zu bewerben:"
#. type: enumerate
-#: guix-git/doc/contributing.texi:1966
+#: guix-git/doc/contributing.texi:2098
msgid "Find three committers who would vouch for you. You can view the list of committers at @url{https://savannah.gnu.org/project/memberlist.php?group=guix}. Each of them should email a statement to @email{guix-maintainers@@gnu.org} (a private alias for the collective of maintainers), signed with their OpenPGP key."
msgstr "Finden Sie drei Committer, die für Sie eintreten. Sie können die Liste der Committer unter @url{https://savannah.gnu.org/project/memberlist.php?group=guix} finden. Jeder von ihnen sollte eine entsprechende Erklärung per E-Mail an @email{guix-maintainers@@gnu.org} schicken (eine private Alias-Adresse für das Kollektiv aus allen Betreuern bzw.@: Maintainern), die jeweils mit ihrem OpenPGP-Schlüssel signiert wurde."
#. type: enumerate
-#: guix-git/doc/contributing.texi:1972
+#: guix-git/doc/contributing.texi:2104
msgid "Committers are expected to have had some interactions with you as a contributor and to be able to judge whether you are sufficiently familiar with the project's practices. It is @emph{not} a judgment on the value of your work, so a refusal should rather be interpreted as ``let's try again later''."
msgstr "Von den Committern wird erwartet, dass sie bereits mit Ihnen als Mitwirkendem zu tun hatten und beurteilen können, ob Sie mit den Richtlinien des Projekts hinreichend vertraut sind. Dabei geht es @emph{nicht} darum, wie wertvoll Ihre Beiträge sind, daher sollte eine Ablehnung mehr als „schauen wir später nochmal“ verstanden werden."
#. type: enumerate
-#: guix-git/doc/contributing.texi:1979
+#: guix-git/doc/contributing.texi:2111
msgid "Send @email{guix-maintainers@@gnu.org} a message stating your intent, listing the three committers who support your application, signed with the OpenPGP key you will use to sign commits, and giving its fingerprint (see below). See @uref{https://emailselfdefense.fsf.org/en/}, for an introduction to public-key cryptography with GnuPG."
msgstr "Senden Sie eine Nachricht an @email{guix-maintainers@@gnu.org}, in der Sie Ihre Bereitschaft darlegen und die Namen der drei Committer nennen, die Ihre Bewerbung unterstützen. Die Nachricht sollte mit dem OpenPGP-Schlüssel signiert sein, mit dem Sie später auch Ihre Commits signieren, und Sie sollten den Fingerabdruck hinterlegen (siehe unten). Siehe @uref{https://emailselfdefense.fsf.org/de/} für eine Einführung in asymmetrische Kryptografie („Public-Key“) mit GnuPG."
#. type: enumerate
-#: guix-git/doc/contributing.texi:1985
+#: guix-git/doc/contributing.texi:2117
msgid "Set up GnuPG such that it never uses the SHA1 hash algorithm for digital signatures, which is known to be unsafe since 2019, for instance by adding the following line to @file{~/.gnupg/gpg.conf} (@pxref{GPG Esoteric Options,,, gnupg, The GNU Privacy Guard Manual}):"
msgstr "Richten Sie GnuPG so ein, dass es niemals den SHA1-Hashalgorithmus für digitale Signaturen verwendet, der seit 2019 bekanntlich unsicher ist. Fügen Sie dazu zum Beispiel folgende Zeile in @file{~/.gnupg/gpg.conf} ein (siehe @ref{GPG Esoteric Options,,, gnupg, The GNU Privacy Guard Manual}):"
#. type: example
-#: guix-git/doc/contributing.texi:1988
+#: guix-git/doc/contributing.texi:2120
#, no-wrap
msgid "digest-algo sha512\n"
msgstr "digest-algo sha512\n"
#. type: enumerate
-#: guix-git/doc/contributing.texi:1993
+#: guix-git/doc/contributing.texi:2125
msgid "Maintainers ultimately decide whether to grant you commit access, usually following your referrals' recommendation."
msgstr "Betreuer entscheiden letztendlich darüber, ob Ihnen Commit-Zugriff gegeben wird, folgen dabei aber normalerweise der Empfehlung Ihrer Fürsprecher."
#. type: cindex
-#: guix-git/doc/contributing.texi:1995
+#: guix-git/doc/contributing.texi:2127
#, no-wrap
msgid "OpenPGP, signed commits"
msgstr "OpenPGP, signierte Commits"
#. type: enumerate
-#: guix-git/doc/contributing.texi:2000
+#: guix-git/doc/contributing.texi:2132
msgid "If and once you've been given access, please send a message to @email{guix-devel@@gnu.org} to say so, again signed with the OpenPGP key you will use to sign commits (do that before pushing your first commit). That way, everyone can notice and ensure you control that OpenPGP key."
msgstr "Wenn und sobald Ihnen Zugriff gewährt wurde, senden Sie bitte eine Nachricht an @email{guix-devel@@gnu.org}, um dies bekanntzugeben, die Sie erneut mit dem OpenPGP-Schlüssel signiert haben, mit dem Sie Commits signieren (tun Sie das, bevor Sie Ihren ersten Commit pushen). Auf diese Weise kann jeder Ihren Beitritt mitbekommen und nachprüfen, dass dieser OpenPGP-Schlüssel wirklich Ihnen gehört."
#. type: quotation
-#: guix-git/doc/contributing.texi:2001 guix-git/doc/guix.texi:21105
-#: guix-git/doc/guix.texi:34436
+#: guix-git/doc/contributing.texi:2133 guix-git/doc/guix.texi:21199
+#: guix-git/doc/guix.texi:34535
#, no-wrap
msgid "Important"
msgstr "Wichtig"
#. type: quotation
-#: guix-git/doc/contributing.texi:2003
+#: guix-git/doc/contributing.texi:2135
msgid "Before you can push for the first time, maintainers must:"
msgstr "Bevor Sie zum ersten Mal pushen dürfen, müssen die Betreuer:"
#. type: enumerate
-#: guix-git/doc/contributing.texi:2007
+#: guix-git/doc/contributing.texi:2139
msgid "add your OpenPGP key to the @code{keyring} branch;"
msgstr "Ihren OpenPGP-Schlüssel zum @code{keyring}-Branch hinzugefügt haben,"
#. type: enumerate
-#: guix-git/doc/contributing.texi:2010
+#: guix-git/doc/contributing.texi:2142
msgid "add your OpenPGP fingerprint to the @file{.guix-authorizations} file of the branch(es) you will commit to."
msgstr "Ihren OpenPGP-Fingerabdruck in die Datei @file{.guix-authorizations} derjenigen Branches eingetragen haben, auf die Sie commiten möchten."
#. type: enumerate
-#: guix-git/doc/contributing.texi:2015
+#: guix-git/doc/contributing.texi:2147
msgid "Make sure to read the rest of this section and... profit!"
msgstr "Wenn Sie den Rest dieses Abschnitts jetzt auch noch lesen, steht Ihrer Karriere nichts mehr im Weg!"
#. type: quotation
-#: guix-git/doc/contributing.texi:2021
+#: guix-git/doc/contributing.texi:2153
msgid "Maintainers are happy to give commit access to people who have been contributing for some time and have a track record---don't be shy and don't underestimate your work!"
msgstr "Betreuer geben gerne anderen Leuten Commit-Zugriff, die schon einige Zeit dabei waren und ihre Eignung unter Beweis gestellt haben. Seien Sie nicht schüchtern und unterschätzen Sie Ihre Arbeit nicht!"
#. type: quotation
-#: guix-git/doc/contributing.texi:2025
+#: guix-git/doc/contributing.texi:2157
msgid "However, note that the project is working towards a more automated patch review and merging system, which, as a consequence, may lead us to have fewer people with commit access to the main repository. Stay tuned!"
msgstr "Sie sollten sich bewusst sein, dass unser Projekt auf ein besser automatisiertes System hinarbeitet, um Patches zu überprüfen und zu mergen. Als Folge davon werden wir vielleicht weniger Leuten Commit-Zugriff auf das Haupt-Repository geben. Bleiben Sie auf dem Laufenden!"
#. type: Plain text
-#: guix-git/doc/contributing.texi:2032
+#: guix-git/doc/contributing.texi:2164
msgid "All commits that are pushed to the central repository on Savannah must be signed with an OpenPGP key, and the public key should be uploaded to your user account on Savannah and to public key servers, such as @code{keys.openpgp.org}. To configure Git to automatically sign commits, run:"
msgstr "Alle Commits, die auf das zentrale Repository auf Savannah gepusht werden, müssen mit einem OpenPGP-Schlüssel signiert worden sein, und diesen öffentlichen Schlüssel sollten Sie auf Ihr Benutzerkonto auf Savannah und auf öffentliche Schlüsselserver wie @code{keys.openpgp.org} hochladen. Um Git so zu konfigurieren, dass es Commits automatisch signiert, führen Sie diese Befehle aus:"
#. type: example
-#: guix-git/doc/contributing.texi:2035
+#: guix-git/doc/contributing.texi:2167
#, no-wrap
msgid ""
"git config commit.gpgsign true\n"
@@ -3001,7 +3196,7 @@ msgstr ""
"\n"
#. type: example
-#: guix-git/doc/contributing.texi:2038
+#: guix-git/doc/contributing.texi:2170
#, no-wrap
msgid ""
"# Substitute the fingerprint of your public PGP key.\n"
@@ -3011,179 +3206,179 @@ msgstr ""
"git config user.signingkey CABBA6EA1DC0FF33\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:2041
+#: guix-git/doc/contributing.texi:2173
msgid "To check that commits are signed with correct key, use:"
msgstr "Um zu prüfen, ob Commits mit dem richtigen Schlüssel signiert wurden, benutzen Sie:"
#. type: Plain text
-#: guix-git/doc/contributing.texi:2049
+#: guix-git/doc/contributing.texi:2181
msgid "To avoid accidentally pushing unsigned or signed with the wrong key commits to Savannah, make sure to configure Git according to @xref{Configuring Git}."
msgstr "Als Vorsichtsmaßnahme, um @emph{nicht} versehentlich unsignierte oder mit dem falschen Schlüssel signierte Commits auf Savannah zu pushen, sollten Sie Git so eingerichtet haben, wie es in @ref{Configuring Git} vorgeschrieben ist."
#. type: subsection
-#: guix-git/doc/contributing.texi:2050
+#: guix-git/doc/contributing.texi:2182
#, no-wrap
msgid "Commit Policy"
msgstr "Commit-Richtlinie"
#. type: Plain text
-#: guix-git/doc/contributing.texi:2055
+#: guix-git/doc/contributing.texi:2187
msgid "If you get commit access, please make sure to follow the policy below (discussions of the policy can take place on @email{guix-devel@@gnu.org})."
msgstr "Wenn Sie Commit-Zugriff erhalten, passen Sie bitte auf, dass Sie der folgenden Richtlinie folgen (Diskussionen über die Richtlinie können wir auf @email{guix-devel@@gnu.org} führen)."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2059
+#: guix-git/doc/contributing.texi:2191
msgid "Ensure you're aware of how the changes should be handled (@pxref{Managing Patches and Branches}) prior to being pushed to the repository, especially for the @code{master} branch."
msgstr ""
#. type: Plain text
-#: guix-git/doc/contributing.texi:2064
+#: guix-git/doc/contributing.texi:2196
msgid "If you're committing and pushing your own changes, try and wait at least one week (two weeks for more significant changes) after you send them for review. After this, if no one else is available to review them and if you're confident about the changes, it's OK to commit."
-msgstr "Wenn es Ihre eigenen Änderungen sind, die Sie commiten und pushen, lassen Sie mindestens eine Woche Zeit, damit andere Ihre Änderungen begutachten können (zwei Wochen bei nennenswerten Änderungen), nachdem Sie sie zum Überprüfen eingeschickt haben. Wenn danach niemand anders die Zeit zum Prüfen findet und Sie von den Änderungen überzeugt sind, ist es in Ordnung, sie zu commiten."
+msgstr "Wenn es Ihre eigenen Änderungen sind, die Sie commiten und pushen, lassen Sie mindestens eine Woche Zeit, damit andere Ihre Änderungen begutachten können (zwei Wochen bei nennenswerten Änderungen), nachdem Sie sie zum Überprüfen eingeschickt haben. Wenn danach niemand anders die Zeit zum Prüfen findet und Sie von den Änderungen überzeugt sind, ist es in Ordnung, sie zu commiten. "
#. type: Plain text
-#: guix-git/doc/contributing.texi:2069
+#: guix-git/doc/contributing.texi:2201
msgid "When pushing a commit on behalf of somebody else, please add a @code{Signed-off-by} line at the end of the commit log message---e.g., with @command{git am --signoff}. This improves tracking of who did what."
msgstr "Wenn Sie einen Commit für jemand anderen pushen, fügen Sie bitte eine @code{Signed-off-by}-Zeile am Ende der Commit-Log-Nachricht hinzu@tie{}– z.B.@: mit @command{git am --signoff}. Dadurch lässt es sich leichter überblicken, wer was getan hat."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2073
+#: guix-git/doc/contributing.texi:2205
msgid "When adding channel news entries (@pxref{Channels, Writing Channel News}), make sure they are well-formed by running the following command right before pushing:"
msgstr "Wenn Sie Kanalneuigkeiten hinzufügen (siehe @ref{Channels, Kanalneuigkeiten verfassen}), dann sollten Sie prüfen, dass diese wohlgeformt sind, indem Sie den folgenden Befehl direkt vor dem Pushen ausführen:"
#. type: example
-#: guix-git/doc/contributing.texi:2076
+#: guix-git/doc/contributing.texi:2208
#, no-wrap
msgid "make check-channel-news\n"
msgstr "make check-channel-news\n"
#. type: subsection
-#: guix-git/doc/contributing.texi:2078
+#: guix-git/doc/contributing.texi:2210
#, no-wrap
msgid "Addressing Issues"
msgstr "Mit Fehlern umgehen"
#. type: Plain text
-#: guix-git/doc/contributing.texi:2089
+#: guix-git/doc/contributing.texi:2221
msgid "Peer review (@pxref{Submitting Patches}) and tools such as @command{guix lint} (@pxref{Invoking guix lint}) and the test suite (@pxref{Running the Test Suite}) should catch issues before they are pushed. Yet, commits that ``break'' functionality might occasionally go through. When that happens, there are two priorities: mitigating the impact, and understanding what happened to reduce the chance of similar incidents in the future. The responsibility for both these things primarily lies with those involved, but like everything this is a group effort."
msgstr "Durch Begutachten der von anderen eingereichten Patches („Peer-Review“, siehe @ref{Submitting Patches}) und durch Werkzeuge wie @command{guix lint} (siehe @ref{Invoking guix lint}) und den Testkatalog (siehe @ref{Running the Test Suite}) sollten Sie Fehler finden können, ehe sie gepusht wurden. Trotz allem kann es gelegentlich vorkommen, dass nicht bemerkt wird, wenn nach einem Commit etwas in Guix nicht mehr funktioniert. Wenn das passiert, haben zwei Dinge Vorrang: Schadensbegrenzung und Verstehen, was passiert ist, damit es nicht wieder zu vergleichbaren Fehlern kommt. Die Verantwortung dafür tragen in erster Linie die Beteiligten, aber wie bei allem anderen handelt es sich um eine Aufgabe der Gruppe."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2094
+#: guix-git/doc/contributing.texi:2226
msgid "Some issues can directly affect all users---for instance because they make @command{guix pull} fail or break core functionality, because they break major packages (at build time or run time), or because they introduce known security vulnerabilities."
msgstr "Manche Fehler können sofort alle Nutzer betreffen, etwa wenn @command{guix pull} dadurch nicht mehr funktioniert oder Kernfunktionen von Guix ausfallen, wenn wichtige Pakete nicht mehr funktionieren (zur Erstellungs- oder zur Laufzeit) oder wenn bekannte Sicherheitslücken eingeführt werden."
#. type: cindex
-#: guix-git/doc/contributing.texi:2095
+#: guix-git/doc/contributing.texi:2227
#, no-wrap
msgid "reverting commits"
msgstr "Revert von Commits"
#. type: Plain text
-#: guix-git/doc/contributing.texi:2101
+#: guix-git/doc/contributing.texi:2233
msgid "The people involved in authoring, reviewing, and pushing such commit(s) should be at the forefront to mitigate their impact in a timely fashion: by pushing a followup commit to fix it (if possible), or by reverting it to leave time to come up with a proper fix, and by communicating with other developers about the problem."
msgstr "Die am Verfassen, Begutachten und Pushen von Commits Beteiligten sollten zu den ersten gehören, die für zeitnahe Schadensbegrenzung sorgen, indem sie mit einem nachfolgenden Commit („Follow-up“) den Fehler falls möglich beseitigen oder den vorherigen Commit rückgängig machen („Revert“), damit Zeit ist, das Problem auf ordentliche Weise zu beheben. Auch sollten sie das Problem mit anderen Entwicklern bereden."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2107
+#: guix-git/doc/contributing.texi:2239
msgid "If these persons are unavailable to address the issue in time, other committers are entitled to revert the commit(s), explaining in the commit log and on the mailing list what the problem was, with the goal of leaving time to the original committer, reviewer(s), and author(s) to propose a way forward."
msgstr "Wenn diese Personen nicht verfügbar sind, um den Fehler zeitnah zu beheben, steht es anderen Committern zu, deren Commit(s) zu reverten und im Commit-Log und auf der Mailingliste zu erklären, was das Problem war. Ziel ist, dem oder den ursprünglichen Committer(n), Begutachter(n) und Autoren mit mehr Zeit Gelegenheit zu geben, einen Vorschlag zum weiteren Vorgehen zu machen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2116
+#: guix-git/doc/contributing.texi:2248
msgid "Once the problem has been dealt with, it is the responsibility of those involved to make sure the situation is understood. If you are working to understand what happened, focus on gathering information and avoid assigning any blame. Do ask those involved to describe what happened, do not ask them to explain the situation---this would implicitly blame them, which is unhelpful. Accountability comes from a consensus about the problem, learning from it and improving processes so that it's less likely to reoccur."
msgstr "Wenn das Problem erledigt wurde, müssen die Beteiligten ein Verständnis für die Situation sicherstellen. Während Sie sich um Verständnis bemühen, legen Sie den Fokus auf das Sammeln von Informationen und vermeiden Sie Schuldzuweisungen. Lassen Sie die Beteiligten beschreiben, was passiert ist, aber bitten Sie sie nicht, die Situation zu erklären, weil ihnen das implizit Schuld zuspricht, was nicht hilfreich ist. Verantwortung ergibt sich aus Einigkeit über das Problem, dass man daraus lernt und die Prozesse verbessert, damit es nicht wieder vorkommt."
#. type: subsection
-#: guix-git/doc/contributing.texi:2117
+#: guix-git/doc/contributing.texi:2249
#, no-wrap
msgid "Commit Revocation"
msgstr "Entzug des Commit-Zugriffs"
#. type: Plain text
-#: guix-git/doc/contributing.texi:2124
+#: guix-git/doc/contributing.texi:2256
msgid "In order to reduce the possibility of mistakes, committers will have their Savannah account removed from the Guix Savannah project and their key removed from @file{.guix-authorizations} after 12 months of inactivity; they can ask to regain commit access by emailing the maintainers, without going through the vouching process."
msgstr "Damit es weniger wahrscheinlich ist, dass Fehler passieren, werden wir das Savannah-Konto von Committern nach 12 Monaten der Inaktivität aus dem Guix-Projekt bei Savannah löschen und ihren Schlüssel aus @file{.guix-authorizations} entfernen. Solche Committer können den Betreuern eine E-Mail schicken, um ohne einen Durchlauf des Fürsprecherprozesses wieder Commit-Zugriff zu bekommen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2134
+#: guix-git/doc/contributing.texi:2266
msgid "Maintainers@footnote{See @uref{https://guix.gnu.org/en/about} for the current list of maintainers. You can email them privately at @email{guix-maintainers@@gnu.org}.} may also revoke an individual's commit rights, as a last resort, if cooperation with the rest of the community has caused too much friction---even within the bounds of the project's code of conduct (@pxref{Contributing}). They would only do so after public or private discussion with the individual and a clear notice. Examples of behavior that hinders cooperation and could lead to such a decision include:"
msgstr "Betreuer@footnote{Siehe @uref{https://guix.gnu.org/en/about} für eine Liste der Betreuer. Sie können ihnen eine private E-Mail schicken an @email{guix-maintainers@@gnu.org}.} dürfen als letzten Ausweg auch jemandem die Commit-Berechtigung entziehen, wenn die Zusammenarbeit mit der übrigen Gemeinde zu viel Reibung erzeugt hat@tie{}– selbst wenn sich alles im Rahmen der Verhaltensregeln abgespielt hat (siehe @ref{Contributing}). Davon machen Betreuer nur Gebrauch nach öffentlichen oder privaten Diskussionen mit der betroffenen Person und nach eindeutiger Ankündigung. Beispiele für Verhalten, das die Zusammenarbeit behindert und zu so einer Entscheidung führen könnte, sind:"
#. type: item
-#: guix-git/doc/contributing.texi:2136
+#: guix-git/doc/contributing.texi:2268
#, no-wrap
msgid "repeated violation of the commit policy stated above;"
msgstr "wiederholte Verletzung der oben beschriebenen Commit-Richtlinie,"
#. type: item
-#: guix-git/doc/contributing.texi:2137
+#: guix-git/doc/contributing.texi:2269
#, no-wrap
msgid "repeated failure to take peer criticism into account;"
msgstr "wiederholtes Ignorieren von Kritik anderer Entwickler,"
#. type: item
-#: guix-git/doc/contributing.texi:2138
+#: guix-git/doc/contributing.texi:2270
#, no-wrap
msgid "breaching trust through a series of grave incidents."
msgstr "verletztes Vertrauen durch mehrere schwere Vorkommnisse in Folge."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2145
+#: guix-git/doc/contributing.texi:2277
msgid "When maintainers resort to such a decision, they notify developers on @email{guix-devel@@gnu.org}; inquiries may be sent to @email{guix-maintainers@@gnu.org}. Depending on the situation, the individual may still be welcome to contribute."
msgstr "Wenn Betreuer diesen Entschluss treffen, benachrichtigen sie die Entwickler auf @email{guix-devel@@gnu.org}; Anfragen können an @email{guix-maintainers@@gnu.org} gesendet werden. Abhängig von der Situation wird ein Mitwirken der Betroffenen trotzdem weiterhin gerne gesehen."
#. type: subsection
-#: guix-git/doc/contributing.texi:2146
+#: guix-git/doc/contributing.texi:2278
#, no-wrap
msgid "Helping Out"
msgstr "Aushelfen"
#. type: Plain text
-#: guix-git/doc/contributing.texi:2153
+#: guix-git/doc/contributing.texi:2285
msgid "One last thing: the project keeps moving forward because committers not only push their own awesome changes, but also offer some of their time @emph{reviewing} and pushing other people's changes. As a committer, you're welcome to use your expertise and commit rights to help other contributors, too!"
msgstr "Eine Sache noch: Das Projekt entwickelt sich nicht nur deswegen schnell, weil Committer ihre eigenen tollen Änderungen pushen, sondern auch, weil sie sich Zeit nehmen, die Änderungen anderer Leute in „Reviews“ zu @emph{überprüfen} und zu pushen. Wir begrüßen es, wenn Sie als Committer Ihre Expertise und Commit-Rechte dafür einsetzen, auch anderen Mitwirkenden zu helfen!"
#. type: cindex
-#: guix-git/doc/contributing.texi:2157
+#: guix-git/doc/contributing.texi:2289
#, no-wrap
msgid "update-guix-package, updating the guix package"
msgstr "update-guix-package, Guix-Paket aktualisieren"
#. type: Plain text
-#: guix-git/doc/contributing.texi:2163
+#: guix-git/doc/contributing.texi:2295
msgid "It is sometimes desirable to update the @code{guix} package itself (the package defined in @code{(gnu packages package-management)}), for example to make new daemon features available for use by the @code{guix-service-type} service type. In order to simplify this task, the following command can be used:"
msgstr "Manchmal möchte man die für das Paket @code{guix} (wie es in @code{(gnu packages package-management)} definiert ist) verwendete Version auf eine neuere Version aktualisieren, zum Beispiel um neue Funktionalitäten des Daemons dem Diensttyp @code{guix-service-type} zugänglich zu machen. Um diese Arbeit zu erleichtern, kann folgender Befehl benutzt werden:"
#. type: example
-#: guix-git/doc/contributing.texi:2166
+#: guix-git/doc/contributing.texi:2298
#, no-wrap
msgid "make update-guix-package\n"
msgstr "make update-guix-package\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:2173
+#: guix-git/doc/contributing.texi:2305
msgid "The @code{update-guix-package} make target will use the last known @emph{commit} corresponding to @code{HEAD} in your Guix checkout, compute the hash of the Guix sources corresponding to that commit and update the @code{commit}, @code{revision} and hash of the @code{guix} package definition."
msgstr "Das make-Ziel @code{update-guix-package} wird den neuesten bekannten @emph{Commit}, also den, der @code{HEAD} in Ihrem Guix-Checkout entspricht, verwenden, den Hash des zugehörigen Quellbaums berechnen und die Einträge für @code{commit}, @code{revision} und den Hash in der Paketdefinition von @code{guix} anpassen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2177
+#: guix-git/doc/contributing.texi:2309
msgid "To validate that the updated @code{guix} package hashes are correct and that it can be built successfully, the following command can be run from the directory of your Guix checkout:"
msgstr "Um zu prüfen, dass das aktualisierte @code{guix}-Paket die richtigen Hashes benutzt und erfolgreich erstellt werden kann, können Sie den folgenden Befehl aus dem Verzeichnis Ihres Guix-Checkouts heraus ausführen:"
#. type: example
-#: guix-git/doc/contributing.texi:2180
+#: guix-git/doc/contributing.texi:2312
#, no-wrap
msgid "./pre-inst-env guix build guix\n"
msgstr "./pre-inst-env guix build guix\n"
#. type: Plain text
-#: guix-git/doc/contributing.texi:2185
+#: guix-git/doc/contributing.texi:2317
msgid "To guard against accidentally updating the @code{guix} package to a commit that others can't refer to, a check is made that the commit used has already been pushed to the Savannah-hosted Guix git repository."
msgstr "Als Schutz vor einer versehentlichen Aktualisierung des @code{guix}-Pakets auf einen Commit, den andere Leute gar nicht haben, wird dabei geprüft, ob der benutzte Commit bereits im bei Savannah angebotenen Guix-Git-Repository vorliegt."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2190
+#: guix-git/doc/contributing.texi:2322
msgid "This check can be disabled, @emph{at your own peril}, by setting the @code{GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT} environment variable. When this variable is set, the updated package source is also added to the store. This is used as part of the release process of Guix."
msgstr "Diese Prüfung können Sie @emph{auf eigene Gefahr hin} abschalten, indem Sie die Umgebungsvariable @code{GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT} setzen. Wenn diese Variable gesetzt ist, wird der aktualisierte Paketquellcode außerdem in den Store eingefügt. Dies stellt einen Teil des Prozesses zur Veröffentlichung neuer Versionen von Guix dar."
@@ -3191,225 +3386,225 @@ msgstr "Diese Prüfung können Sie @emph{auf eigene Gefahr hin} abschalten, inde
#. type: cindex
#. #-#-#-#-# guix.pot (guix manual checkout) #-#-#-#-#
#. type: item
-#: guix-git/doc/contributing.texi:2191 guix-git/doc/guix.texi:4402
-#: guix-git/doc/guix.texi:42290 guix-git/doc/guix.texi:42347
+#: guix-git/doc/contributing.texi:2323 guix-git/doc/guix.texi:4297
+#: guix-git/doc/guix.texi:42455 guix-git/doc/guix.texi:42512
#, no-wrap
msgid "documentation"
msgstr "documentation"
#. type: Plain text
-#: guix-git/doc/contributing.texi:2198
+#: guix-git/doc/contributing.texi:2330
msgid "Guix is documented using the Texinfo system. If you are not yet familiar with it, we accept contributions for documentation in most formats. That includes plain text, Markdown, Org, etc."
msgstr "Die Dokumentation für Guix wird mit dem Texinfo-System bereitgestellt. Wenn Sie damit noch nicht vertraut sind, nehmen wir auch Beiträge zur Dokumentation in den meisten anderen Formaten an. Reine Textdateien, Markdown, Org und so weiter sind alle in Ordnung."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2202
+#: guix-git/doc/contributing.texi:2334
msgid "Documentation contributions can be sent to @email{guix-patches@@gnu.org}. Prepend @samp{[DOCUMENTATION]} to the subject."
msgstr "Schicken Sie Beiträge zur Dokumentation an @email{guix-patches@@gnu.org}. Der Betreff sollte mit @samp{[DOCUMENTATION]} beginnen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2207
+#: guix-git/doc/contributing.texi:2339
msgid "When you need to make more than a simple addition to the documentation, we prefer that you send a proper patch as opposed to sending an email as described above. @xref{Submitting Patches} for more information on how to send your patches."
msgstr "Wenn es um mehr als eine kleine Erweiterung der Dokumentation geht, ist es uns allerdings lieber, wenn Sie einen ordentlichen Patch und keine solche E-Mail schicken. Siehe @ref{Submitting Patches} für mehr Informationen, wie Sie Patches abschicken."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2216
+#: guix-git/doc/contributing.texi:2348
msgid "To modify the documentation, you need to edit @file{doc/guix.texi} and @file{doc/contributing.texi} (which contains this documentation section), or @file{doc/guix-cookbook.texi} for the cookbook. If you compiled the Guix repository before, you will have many more @file{.texi} files that are translations of these documents. Do not modify them, the translation is managed through @uref{https://translate.fedoraproject.org/projects/guix, Weblate}. @xref{Translating Guix} for more information."
msgstr "Änderungen an der Dokumentation können Sie vornehmen, indem Sie @file{doc/guix.texi} und @file{doc/contributing.texi} bearbeiten (letztere enthält diesen Mitwirkungsteil der Dokumentation) oder indem Sie @file{doc/guix-cookbook.texi} bearbeiten, worin Sie das Kochbuch finden. Wenn Sie schon einmal die Dateien im Guix-Repository kompiliert haben, werden dort auch viele weitere @file{.texi}-Dateien zu finden sein; es handelt sich um übersetzte Fassungen dieser Dokumente. Verändern Sie diese @emph{nicht}, denn die Übersetzung organisieren wir über @uref{https://translate.fedoraproject.org/projects/guix, Weblate}. Siehe @ref{Translating Guix} für weitere Informationen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2221
+#: guix-git/doc/contributing.texi:2353
msgid "To render documentation, you must first make sure that you ran @command{./configure} in your source tree (@pxref{Running Guix Before It Is Installed}). After that you can run one of the following commands:"
msgstr "Um die Dokumentation in lesefreundlichere Formate zu übertragen, ist der erste Schritt, @command{./configure} in Ihrem Guix-Quellbaum laufen zu lassen, wenn es noch nicht geschehen ist (siehe @ref{Running Guix Before It Is Installed}). Danach geht es mit diesen Befehlen weiter:"
#. type: item
-#: guix-git/doc/contributing.texi:2223
+#: guix-git/doc/contributing.texi:2355
#, no-wrap
msgid "@samp{make doc/guix.info} to compile the Info manual."
msgstr "@samp{make doc/guix.info}, um das Handbuch im Info-Format zu kompilieren."
#. type: itemize
-#: guix-git/doc/contributing.texi:2225
+#: guix-git/doc/contributing.texi:2357
msgid "You can check it with @command{info doc/guix.info}."
msgstr "Sie können es mit @command{info doc/guix.info} überprüfen."
#. type: item
-#: guix-git/doc/contributing.texi:2225
+#: guix-git/doc/contributing.texi:2357
#, no-wrap
msgid "@samp{make doc/guix.html} to compile the HTML version."
msgstr "@samp{make doc/guix.html}, um die HTML-Version zu kompilieren."
#. type: itemize
-#: guix-git/doc/contributing.texi:2228
+#: guix-git/doc/contributing.texi:2360
msgid "You can point your browser to the relevant file in the @file{doc/guix.html} directory."
msgstr "Lassen Sie Ihren Browser die entsprechende Datei im Verzeichnis @file{doc/guix.html} anzeigen."
#. type: item
-#: guix-git/doc/contributing.texi:2228
+#: guix-git/doc/contributing.texi:2360
#, no-wrap
msgid "@samp{make doc/guix-cookbook.info} for the cookbook Info manual."
msgstr "@samp{make doc/guix-cookbook.info}, so kompilieren Sie das Kochbuch im Info-Format."
#. type: item
-#: guix-git/doc/contributing.texi:2229
+#: guix-git/doc/contributing.texi:2361
#, no-wrap
msgid "@samp{make doc/guix-cookbook.html} for the cookbook HTML version."
msgstr "@samp{make doc/guix-cookbook.html}, das kompiliert die HTML-Version des Kochbuchs."
#. type: cindex
-#: guix-git/doc/contributing.texi:2232
+#: guix-git/doc/contributing.texi:2364
#, no-wrap
msgid "translation"
msgstr "Übersetzung"
#. type: cindex
-#: guix-git/doc/contributing.texi:2233
+#: guix-git/doc/contributing.texi:2365
#, no-wrap
msgid "l10n"
msgstr "l10n"
#. type: cindex
-#: guix-git/doc/contributing.texi:2234
+#: guix-git/doc/contributing.texi:2366
#, no-wrap
msgid "i18n"
msgstr "i18n"
#. type: cindex
-#: guix-git/doc/contributing.texi:2235
+#: guix-git/doc/contributing.texi:2367
#, no-wrap
msgid "native language support"
msgstr "Native Language Support"
#. type: Plain text
-#: guix-git/doc/contributing.texi:2245
+#: guix-git/doc/contributing.texi:2377
msgid "Writing code and packages is not the only way to provide a meaningful contribution to Guix. Translating to a language you speak is another example of a valuable contribution you can make. This section is designed to describe the translation process. It gives you advice on how you can get involved, what can be translated, what mistakes you should avoid and what we can do to help you!"
msgstr "Softwareentwicklung und Paketierung sind nicht die einzigen Möglichkeiten, um bedeutsam zu Guix beizutragen. Übersetzungen in andere Sprachen sind auch ein wertvoller Beitrag. In diesem Abschnitt ist der Übersetzungsprozess beschrieben, mit Hinweisen dazu wie du mitmachen kannst, was übersetzt werden kann, welche Fehler du vermeiden solltest und wie wir dich unterstützen können."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2251
+#: guix-git/doc/contributing.texi:2383
msgid "Guix is a big project that has multiple components that can be translated. We coordinate the translation effort on a @uref{https://translate.fedoraproject.org/projects/guix/,Weblate instance} hosted by our friends at Fedora. You will need an account to submit translations."
msgstr "Guix ist ein großes Projekt und hat mehrere Komponenten, die übersetzt werden können. Wir koordinieren die Arbeit an der Übersetzung auf einer @uref{https://translate.fedoraproject.org/projects/guix/,Weblate-Instanz}, die von unseren Freunden bei Fedora zur Verfügung gestellt wird. Sie brauchen dort ein Konto, um Übersetzungen einzureichen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2258
+#: guix-git/doc/contributing.texi:2390
msgid "Some of the software packaged in Guix also contain translations. We do not host a translation platform for them. If you want to translate a package provided by Guix, you should contact their developers or find the information on their website. As an example, you can find the homepage of the @code{hello} package by typing @code{guix show hello}. On the ``homepage'' line, you will see @url{https://www.gnu.org/software/hello/} as the homepage."
msgstr "Manche mit Guix auslieferbaren Pakete verfügen auch über Übersetzungen. An deren Übersetzungsplattform sind wir nicht beteiligt. Wenn Sie ein in Guix angebotenes Paket übersetzen möchten, sollten Sie mit dessen Entwicklern in Kontakt treten oder auf deren Webauftritt nach Informationen suchen. Sie können die Homepage zum Beispiel des @code{hello}-Pakets finden, indem Sie @code{guix show hello} ausführen. Auf der Zeile „homepage“ sehen Sie, dass @url{https://www.gnu.org/software/hello/} die Homepage ist."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2263
+#: guix-git/doc/contributing.texi:2395
msgid "Many GNU and non-GNU packages can be translated on the @uref{https://translationproject.org,Translation Project}. Some projects with multiple components have their own platform. For instance, GNOME has its own platform, @uref{https://l10n.gnome.org/,Damned Lies}."
msgstr "Viele GNU-Pakete und Nicht-GNU-Pakete können beim @uref{https://translationproject.org,Translation Project} übersetzt werden. Manche Projekte, die aus mehreren Komponenten bestehen, haben ihre eigene Plattform. Zum Beispiel hat GNOME die Übersetzungsplattform @uref{https://l10n.gnome.org/,Damned Lies}."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2265
+#: guix-git/doc/contributing.texi:2397
msgid "Guix has five components hosted on Weblate."
msgstr "Guix hat fünf Komponenten, die auf Weblate übersetzt werden können."
#. type: item
-#: guix-git/doc/contributing.texi:2267
+#: guix-git/doc/contributing.texi:2399
#, no-wrap
msgid "@code{guix} contains all the strings from the Guix software (the"
msgstr "@code{guix} umfasst alle Zeichenketten der Guix-Software (also das"
#. type: itemize
-#: guix-git/doc/contributing.texi:2269
+#: guix-git/doc/contributing.texi:2401
msgid "guided system installer, the package manager, etc), excluding packages."
msgstr "geführte Installationsprogramm, die Paketverwaltung etc.) außer den Paketen."
#. type: item
-#: guix-git/doc/contributing.texi:2269
+#: guix-git/doc/contributing.texi:2401
#, no-wrap
msgid "@code{packages} contains the synopsis (single-sentence description"
msgstr "@code{packages} enthält die Zusammenfassungen (einzeilige Kurzbeschreibung)"
#. type: itemize
-#: guix-git/doc/contributing.texi:2271
+#: guix-git/doc/contributing.texi:2403
msgid "of a package) and description (longer description) of packages in Guix."
msgstr "und die ausführlicheren Beschreibungen der Pakete in Guix."
#. type: item
-#: guix-git/doc/contributing.texi:2271
+#: guix-git/doc/contributing.texi:2403
#, no-wrap
msgid "@code{website} contains the official Guix website, except for"
msgstr "@code{website} enthält den offiziellen Webauftritt von Guix außer"
#. type: itemize
-#: guix-git/doc/contributing.texi:2273
+#: guix-git/doc/contributing.texi:2405
msgid "blog posts and multimedia content."
msgstr "Blogeinträgen und Multimedia."
#. type: item
-#: guix-git/doc/contributing.texi:2273
+#: guix-git/doc/contributing.texi:2405
#, no-wrap
msgid "@code{documentation-manual} corresponds to this manual."
msgstr "@code{documentation-manual} entspricht diesem Handbuch."
#. type: item
-#: guix-git/doc/contributing.texi:2274
+#: guix-git/doc/contributing.texi:2406
#, no-wrap
msgid "@code{documentation-cookbook} is the component for the cookbook."
msgstr "@code{documentation-cookbook} ist die Komponente für das Kochbuch."
#. type: subsubheading
-#: guix-git/doc/contributing.texi:2277
+#: guix-git/doc/contributing.texi:2409
#, no-wrap
msgid "General Directions"
msgstr "Wie Sie allgemein vorgehen"
#. type: Plain text
-#: guix-git/doc/contributing.texi:2285
+#: guix-git/doc/contributing.texi:2417
msgid "Once you get an account, you should be able to select a component from @uref{https://translate.fedoraproject.org/projects/guix/,the guix project}, and select a language. If your language does not appear in the list, go to the bottom and click on the ``Start new translation'' button. Select the language you want to translate to from the list, to start your new translation."
msgstr "Sobald Sie ein Konto haben, sollten Sie eine Komponente des @uref{https://translate.fedoraproject.org/projects/guix/,Guix-Projekts} und eine Sprache auswählen können. Wenn Ihre Sprache in der Liste fehlt, gehen Sie ans Ende und klicken Sie auf den „Neue Übersetzung starten“-Knopf. Nachdem Sie die Sprache, in die Sie übersetzen möchten, ausgewählt haben, wird eine neue Übersetzung angelegt."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2290
+#: guix-git/doc/contributing.texi:2422
msgid "Like lots of other free software packages, Guix uses @uref{https://www.gnu.org/software/gettext,GNU Gettext} for its translations, with which translatable strings are extracted from the source code to so-called PO files."
msgstr "Wie zahlreiche andere Freie-Software-Pakete benutzt Guix @uref{https://www.gnu.org/software/gettext,GNU Gettext} für seine Übersetzungen. Damit werden übersetzbare Zeichenketten aus dem Quellcode in sogenannte PO-Dateien extrahiert."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2301
+#: guix-git/doc/contributing.texi:2433
msgid "Even though PO files are text files, changes should not be made with a text editor but with PO editing software. Weblate integrates PO editing functionality. Alternatively, translators can use any of various free-software tools for filling in translations, of which @uref{https://poedit.net/,Poedit} is one example, and (after logging in) @uref{https://docs.weblate.org/en/latest/user/files.html,upload} the changed file. There is also a special @uref{https://www.emacswiki.org/emacs/PoMode,PO editing mode} for users of GNU Emacs. Over time translators find out what software they are happy with and what features they need."
msgstr "Obwohl es sich bei PO-Dateien um Textdateien handelt, sollten Änderungen nicht mit einem Texteditor vorgenommen werden, sondern mit Software eigens zum Bearbeiten von PO-Dateien. In Weblate sind PO-Bearbeitungsfunktionen integriert. Alternativ haben Übersetzer die Wahl zwischen vielen Freie-Software-Werkzeugen zum Eintragen von Übersetzungen; ein Beispiel ist @uref{https://poedit.net/,Poedit}. Nachdem Sie sich angemeldet haben, @uref{https://docs.weblate.org/en/latest/user/files.html,laden} Sie die geänderte Datei in Weblate hoch. Es gibt auch einen speziellen @uref{https://www.emacswiki.org/emacs/PoMode,PO-Bearbeitungsmodus} für Nutzer von GNU Emacs. Mit der Zeit finden Übersetzer heraus, welche Software sie bevorzugen und welche die Funktionen bietet, die sie brauchen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2306
+#: guix-git/doc/contributing.texi:2438
msgid "On Weblate, you will find various links to the editor, that will show various subsets (or all) of the strings. Have a look around and at the @uref{https://docs.weblate.org/en/latest/,documentation} to familiarize yourself with the platform."
msgstr "In Weblate finden Sie an vielen Stellen Verweise auf den Editor, um Teilmengen der Zeichenketten oder alle davon zu übersetzen. Sehen Sie sich um und werfen Sie einen Blick auf Weblates @uref{https://docs.weblate.org/en/latest/,Dokumentation}, um sich mit der Plattform vertraut zu machen."
#. type: subsubheading
-#: guix-git/doc/contributing.texi:2307
+#: guix-git/doc/contributing.texi:2439
#, no-wrap
msgid "Translation Components"
msgstr "Übersetzungskomponenten"
#. type: Plain text
-#: guix-git/doc/contributing.texi:2312
+#: guix-git/doc/contributing.texi:2444
msgid "In this section, we provide more detailed guidance on the translation process, as well as details on what you should or should not do. When in doubt, please contact us, we will be happy to help!"
msgstr "In diesem Abschnitt erklären wir den Übersetzungsprozess genau und geben Details, was Sie tun sollten und was nicht. Im Zweifelsfall kontaktieren Sie uns bitte; wir helfen gerne!"
#. type: item
-#: guix-git/doc/contributing.texi:2314 guix-git/doc/guix.texi:11281
+#: guix-git/doc/contributing.texi:2446 guix-git/doc/guix.texi:11272
#, no-wrap
msgid "guix"
msgstr "guix"
#. type: table
-#: guix-git/doc/contributing.texi:2319
+#: guix-git/doc/contributing.texi:2451
msgid "Guix is written in the Guile programming language, and some strings contain special formatting that is interpreted by Guile. These special formatting should be highlighted by Weblate. They start with @code{~} followed by one or more characters."
msgstr "Guix ist in der Programmiersprache Guile geschrieben und manche Zeichenketten enthalten besondere Formatzeichen, die von Guile interpretiert werden. Weblate sollte diese besonderen Formatzeichen hervorheben. Sie beginnen mit @code{~} gefolgt von einem oder mehreren Zeichen."
#. type: table
-#: guix-git/doc/contributing.texi:2328
+#: guix-git/doc/contributing.texi:2460
msgid "When printing the string, Guile replaces the special formatting symbols with actual values. For instance, the string @samp{ambiguous package specification `~a'} would be substituted to contain said package specification instead of @code{~a}. To properly translate this string, you must keep the formatting code in your translation, although you can place it where it makes sense in your language. For instance, the French translation says @samp{spécification du paquet « ~a » ambiguë} because the adjective needs to be placed in the end of the sentence."
msgstr "Beim Anzeigen der Zeichenkette ersetzt Guile die speziellen Formatierungsmuster durch echte Werte. Zum Beispiel würde in die Zeichenkette @samp{ambiguous package specification `~a'} die Paketspezifikation anstelle von @code{~a} eingesetzt. Um die Zeichenkette richtig zu übersetzen, müssen Sie den Formatierungscode in Ihrer Übersetzung erhalten, aber Sie können ihn an die in Ihrer Sprache passenden Stelle in der Übersetzung verlegen. Die französische Übersetzung ist zum Beispiel @samp{spécification du paquet « ~a » ambiguë}, weil das Adjektiv dort ans Ende vom Satz gehört."
#. type: table
-#: guix-git/doc/contributing.texi:2332
+#: guix-git/doc/contributing.texi:2464
msgid "If there are multiple formatting symbols, make sure to respect the order. Guile does not know in which order you intended the string to be read, so it will substitute the symbols in the same order as the English sentence."
msgstr "Wenn mehrere Formatsymbole vorkommen, sollten Sie darauf achten, die Reihenfolge beizubehalten. Guile weiß nicht, in welcher Reihenfolge die eingesetzten Symbole auftauchen sollen, also setzt es sie in derselben Abfolge wie im englischen Satz ein."
#. type: table
-#: guix-git/doc/contributing.texi:2340
+#: guix-git/doc/contributing.texi:2472
msgid "As an example, you cannot translate @samp{package '~a' has been superseded by '~a'} by @samp{'~a' superseeds package '~a'}, because the meaning would be reversed. If @var{foo} is superseded by @var{bar}, the translation would read @samp{'foo' superseeds package 'bar'}. To work around this problem, it is possible to use more advanced formatting to select a given piece of data, instead of following the default English order. @xref{Formatted Output,,, guile, GNU Guile Reference Manual}, for more information on formatting in Guile."
msgstr "Es geht zum Beispiel @emph{nicht}, den Satz @samp{package '~a' has been superseded by '~a'} wie @samp{'~a' superseeds package '~a'} zu übersetzen, weil die Bedeutung umgekehrt wäre. Wenn @var{foo} durch @var{bar} abgelöst wird, würde die Übersetzung behaupten, @samp{„foo“ löst Paket „bar“ ab}. Um dieses Problem zu umgehen, ist es möglich, fortgeschrittene Formatierung einzusetzen, mit der ein bestimmtes Datum ausgewählt wird statt der englischen Reihenfolge zu folgen. Siehe @ref{Formatted Output,,, guile, Referenzhandbuch zu GNU Guile} für weitere Informationen zu formatierter Ausgabe in Guile."
@@ -3417,98 +3612,98 @@ msgstr "Es geht zum Beispiel @emph{nicht}, den Satz @samp{package '~a' has been
#. type: item
#. #-#-#-#-# guix.pot (guix manual checkout) #-#-#-#-#
#. type: cindex
-#: guix-git/doc/contributing.texi:2341 guix-git/doc/guix.texi:3303
+#: guix-git/doc/contributing.texi:2473 guix-git/doc/guix.texi:3198
#, no-wrap
msgid "packages"
msgstr "Pakete"
#. type: table
-#: guix-git/doc/contributing.texi:2346
+#: guix-git/doc/contributing.texi:2478
msgid "Package descriptions occasionally contain Texinfo markup (@pxref{Synopses and Descriptions}). Texinfo markup looks like @samp{@@code@{rm -rf@}}, @samp{@@emph@{important@}}, etc. When translating, please leave markup as is."
msgstr "Manchmal trifft man in einer Paketbeschreibung auf in Texinfo-Markup ausgezeichnete Wörter (siehe @ref{Synopses and Descriptions}). Texinfo-Auszeichnungen sehen aus wie @samp{@@code@{rm -rf@}}, @samp{@@emph@{important@}} usw. Wenn Sie übersetzen, belassen Sie Auszeichnungen bitte, wie sie sind."
#. type: table
-#: guix-git/doc/contributing.texi:2355
+#: guix-git/doc/contributing.texi:2487
msgid "The characters after ``@@'' form the name of the markup, and the text between ``@{'' and ``@}'' is its content. In general, you should not translate the content of markup like @code{@@code}, as it contains literal code that do not change with language. You can translate the content of formatting markup such as @code{@@emph}, @code{@@i}, @code{@@itemize}, @code{@@item}. However, do not translate the name of the markup, or it will not be recognized. Do not translate the word after @code{@@end}, it is the name of the markup that is closed at this position (e.g.@: @code{@@itemize ... @@end itemize})."
msgstr "Die „@@“ nachfolgenden Zeichen bilden den Namen der Auszeichnung und der Text zwischen „@{“ und „@}“ ist deren Inhalt. Im Allgemeinen sollten Sie @emph{nicht} den Inhalt von Auszeichnungen wie @code{@@code} übersetzen, weil Code wortwörtlich so aussehen muss und sich @emph{nicht} mit der Sprache ändert. Dagegen können Sie den Inhalt von zur Formatierung dienenden Auszeichnungen wie @code{@@emph}, @code{@@i}, @code{@@itemize}, @code{@@item} durchaus ändern. Übersetzen Sie aber @emph{nicht} den Namen der Auszeichnung, sonst wird sie nicht erkannt. Übersetzen Sie @emph{nicht} das auf @code{@@end} folgende Wort, denn es ist der Name der Auszeichnung, die an dieser Position geschlossen wird (z.B.@: @code{@@itemize … @@end itemize})."
#. type: item
-#: guix-git/doc/contributing.texi:2356
+#: guix-git/doc/contributing.texi:2488
#, no-wrap
msgid "documentation-manual and documentation-cookbook"
msgstr "documentation-manual und documentation-cookbook"
#. type: table
-#: guix-git/doc/contributing.texi:2360
+#: guix-git/doc/contributing.texi:2492
msgid "The first step to ensure a successful translation of the manual is to find and translate the following strings @emph{first}:"
msgstr "Der erste Schritt für eine erfolgreiche Übersetzung des Handbuchs ist, folgende Zeichenketten @emph{als Erstes} zu finden und zu übersetzen:"
#. type: item
-#: guix-git/doc/contributing.texi:2362
+#: guix-git/doc/contributing.texi:2494
#, no-wrap
msgid "@code{version.texi}: Translate this string as @code{version-xx.texi},"
msgstr "@code{version.texi}: Übersetzen Sie diese Zeichenkette mit @code{version-xx.texi}"
#. type: itemize
-#: guix-git/doc/contributing.texi:2365
+#: guix-git/doc/contributing.texi:2497
msgid "where @code{xx} is your language code (the one shown in the URL on weblate)."
msgstr "wobei @code{xx} Ihr Sprachcode ist (wie er in der URL auf Weblate steht)."
#. type: item
-#: guix-git/doc/contributing.texi:2365
+#: guix-git/doc/contributing.texi:2497
#, no-wrap
msgid "@code{contributing.texi}: Translate this string as"
msgstr "@code{contributing.texi}: Übersetzen Sie diese Zeichenkette mit"
#. type: itemize
-#: guix-git/doc/contributing.texi:2367
+#: guix-git/doc/contributing.texi:2499
msgid "@code{contributing.xx.texi}, where @code{xx} is the same language code."
msgstr "@code{contributing.xx.texi}, wobei @code{xx} derselbe Sprachcode ist."
#. type: item
-#: guix-git/doc/contributing.texi:2367
+#: guix-git/doc/contributing.texi:2499
#, no-wrap
msgid "@code{Top}: Do not translate this string, it is important for Texinfo."
msgstr "@code{Top}: Übersetzen Sie diese Zeichenkette @emph{nicht}; sie ist wichtig für Texinfo."
#. type: itemize
-#: guix-git/doc/contributing.texi:2370
+#: guix-git/doc/contributing.texi:2502
msgid "If you translate it, the document will be empty (missing a Top node). Please look for it, and register @code{Top} as its translation."
msgstr "Würden Sie sie übersetzen, würde das Dokument leer (weil ein Top-Knoten fehlt). Bitte suchen Sie die Zeichenkette und tragen Sie @code{Top} als Übersetzung ein."
#. type: table
-#: guix-git/doc/contributing.texi:2375
+#: guix-git/doc/contributing.texi:2507
msgid "Translating these strings first ensure we can include your translation in the guix repository without breaking the make process or the @command{guix pull} machinery."
msgstr "Wenn diese Zeichenketten als erste ausgefüllt wurden, ist gewährleistet, dass wir die Übersetzung ins Guix-Repository übernehmen können, ohne dass der make-Vorgang oder die Maschinerie hinter @command{guix pull} zusammenbricht."
#. type: table
-#: guix-git/doc/contributing.texi:2382
+#: guix-git/doc/contributing.texi:2514
msgid "The manual and the cookbook both use Texinfo. As for @code{packages}, please keep Texinfo markup as is. There are more possible markup types in the manual than in the package descriptions. In general, do not translate the content of @code{@@code}, @code{@@file}, @code{@@var}, @code{@@value}, etc. You should translate the content of formatting markup such as @code{@@emph}, @code{@@i}, etc."
msgstr "Das Handbuch und das Kochbuch verwenden beide Texinfo. Wie bei @code{packages} belassen Sie Texinfo-Auszeichnungen bitte so, wie sie sind. Im Handbuch gibt es mehr mögliche Auszeichnungstypen als in den Paketbeschreibungen. Im Allgemeinen sollten Sie den Inhalt von @code{@@code}, @code{@@file}, @code{@@var}, @code{@@value} usw.@: @emph{nicht} übersetzen. Sie sollten aber den Inhalt von Formatierungsauszeichnungen wie @code{@@emph}, @code{@@i} usw.@: übersetzen."
#. type: table
-#: guix-git/doc/contributing.texi:2390
+#: guix-git/doc/contributing.texi:2522
msgid "The manual contains sections that can be referred to by name by @code{@@ref}, @code{@@xref} and @code{@@pxref}. We have a mechanism in place so you do not have to translate their content. If you keep the English title, we will automatically replace it with your translation of that title. This ensures that Texinfo will always be able to find the node. If you decide to change the translation of the title, the references will automatically be updated and you will not have to update them all yourself."
msgstr "Das Handbuch enthält Abschnitte, auf die man anhand ihres Namens mit @code{@@ref}, @code{@@xref} und @code{@@pxref} verweisen kann. Wir haben einen Mechanismus eingebaut, damit Sie deren Inhalt @emph{nicht} übersetzen müssen. Lassen Sie einfach den englischen Titel stehen, dann werden wir ihn automatisch durch Ihre Übersetzung des Titels ersetzen. So wird garantiert, dass Texinfo den Knoten auf jeden Fall finden kann. Wenn Sie später die Übersetzung ändern, ändern sich die Verweise darauf automatisch mit und Sie müssen sie nicht alle selbst anpassen."
#. type: table
-#: guix-git/doc/contributing.texi:2400
+#: guix-git/doc/contributing.texi:2532
msgid "When translating references from the cookbook to the manual, you need to replace the name of the manual and the name of the section. For instance, to translate @code{@@pxref@{Defining Packages,,, guix, GNU Guix Reference Manual@}}, you would replace @code{Defining Packages} with the title of that section in the translated manual @emph{only} if that title is translated. If the title is not translated in your language yet, do not translate it here, or the link will be broken. Replace @code{guix} with @code{guix.xx} where @code{xx} is your language code. @code{GNU Guix Reference Manual} is the text of the link. You can translate it however you wish."
msgstr "Nur wenn Sie Verweise vom Kochbuch auf das Handbuch übersetzen, dann müssen Sie den Namen des Handbuchs und den Namen des Abschnitts ersetzen. Zum Beispiel übersetzen Sie @code{@@pxref@{Defining Packages,,, guix, GNU Guix Reference Manual@}}, indem Sie @code{Defining Packages} durch den Titel dieses Abschnittes im übersetzten Handbuch ersetzen, aber @emph{nur dann}, wenn der Titel bereits übersetzt wurde. Wenn er nicht übersetzt wurde, dann übersetzen Sie ihn auch hier @emph{nicht}, sonst funktioniert der Verweis nicht. Schreiben Sie @code{guix.xx} statt @code{guix}, wobei @code{xx} Ihr Sprachcode ist. Bei @code{GNU Guix Reference Manual} handelt es sich um den Text, mit dem der Verweis angezeigt wird. Übersetzen Sie ihn wie immer Sie mögen."
#. type: item
-#: guix-git/doc/contributing.texi:2401
+#: guix-git/doc/contributing.texi:2533
#, no-wrap
msgid "website"
msgstr "website"
#. type: table
-#: guix-git/doc/contributing.texi:2408
+#: guix-git/doc/contributing.texi:2540
msgid "The website pages are written using SXML, an s-expression version of HTML, the basic language of the web. We have a process to extract translatable strings from the source, and replace complex s-expressions with a more familiar XML markup, where each markup is numbered. Translators can arbitrarily change the ordering, as in the following example."
msgstr "Die Seiten des Webauftritts sind in SXML geschrieben, einer Version von HTML, der Grundlage des Webs, aber mit S-Ausdrücken. Wir haben einen Prozess, um übersetzbare Zeichenketten aus dem Quellcode zu extrahieren und komplexe S-Ausdrücke als vertrautere XML-Auszeichnungen darzustellen. Dabei werden die Auszeichnungen nummeriert. Übersetzer können deren Reihenfolge nach Belieben ändern, wie im folgenden Beispiel zu sehen ist."
#. type: example
-#: guix-git/doc/contributing.texi:2415
+#: guix-git/doc/contributing.texi:2547
#, no-wrap
msgid ""
"#. TRANSLATORS: Defining Packages is a section name\n"
@@ -3524,159 +3719,159 @@ msgstr ""
"msgstr \"Pakete werden als reine <2>Guile</2>-Module <1>definiert<1.1>de</1.1><1.2>Pakete-definieren.html</1.2></1>.\"\n"
#. type: table
-#: guix-git/doc/contributing.texi:2418
+#: guix-git/doc/contributing.texi:2550
msgid "Note that you need to include the same markups. You cannot skip any."
msgstr "Allerdings müssen Sie dieselben Auszeichnungen verwenden. Sie können keine weglassen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2426
+#: guix-git/doc/contributing.texi:2558
msgid "In case you make a mistake, the component might fail to build properly with your language, or even make guix pull fail. To prevent that, we have a process in place to check the content of the files before pushing to our repository. We will not be able to update the translation for your language in Guix, so we will notify you (through weblate and/or by email) so you get a chance to fix the issue."
msgstr "Wenn Ihnen ein Fehler unterläuft, kann die Komponente in Ihrer Sprache womöglich @emph{nicht} erstellt werden oder guix pull kann sogar fehlschlagen. Um dies zu verhindern, haben wir einen Prozess, um den Inhalt der Dateien vor einem Push auf das Repository zu überprüfen. In so einem Fall werden wir die Übersetzung für Ihre Sprache @emph{nicht} aktualisieren können und werden Sie deshalb benachrichtigen (über Weblate und/oder eine E-Mail), damit Sie die Möglichkeit bekommen, das Problem zu beheben."
#. type: subsubheading
-#: guix-git/doc/contributing.texi:2427
+#: guix-git/doc/contributing.texi:2559
#, no-wrap
msgid "Outside of Weblate"
msgstr "Abseits von Weblate"
#. type: Plain text
-#: guix-git/doc/contributing.texi:2430
+#: guix-git/doc/contributing.texi:2562
msgid "Currently, some parts of Guix cannot be translated on Weblate, help wanted!"
msgstr "Momentan können manche Teile von Guix noch nicht mit Weblate übersetzt werden. Wir freuen uns über Hilfe!"
#. type: item
-#: guix-git/doc/contributing.texi:2432
+#: guix-git/doc/contributing.texi:2564
#, no-wrap
msgid "@command{guix pull} news can be translated in @file{news.scm}, but is not"
msgstr "Bei @command{guix pull} angezeigte Neuigkeiten können in @file{news.scm}"
#. type: itemize
-#: guix-git/doc/contributing.texi:2438
+#: guix-git/doc/contributing.texi:2570
msgid "available from Weblate. If you want to provide a translation, you can prepare a patch as described above, or simply send us your translation with the name of the news entry you translated and your language. @xref{Writing Channel News}, for more information about channel news."
msgstr "übersetzt werden, jedoch @emph{nicht} über Weblate. Wenn Sie eine Übersetzung bereitstellen wollen, können Sie uns einen Patch wie oben beschrieben schicken oder uns einfach die Übersetzung zusammen mit Ihrer Sprache und dem Namen des Neuigkeiteneintrags, den Sie übersetzt haben, zukommen lassen. Siehe @ref{Writing Channel News} für weitere Informationen zu Neuigkeiten über Kanäle."
#. type: item
-#: guix-git/doc/contributing.texi:2438
+#: guix-git/doc/contributing.texi:2570
#, no-wrap
msgid "Guix blog posts cannot currently be translated."
msgstr "Blogeinträge zu Guix können derzeit @emph{nicht} übersetzt werden."
#. type: item
-#: guix-git/doc/contributing.texi:2439
+#: guix-git/doc/contributing.texi:2571
#, no-wrap
msgid "The installer script (for foreign distributions) is entirely in English."
msgstr "Das Installations-Skript (für Fremddistributionen) gibt es nur auf Englisch."
#. type: item
-#: guix-git/doc/contributing.texi:2440
+#: guix-git/doc/contributing.texi:2572
#, no-wrap
msgid "Some of the libraries Guix uses cannot be translated or are translated"
msgstr "Manche der Bibliotheken, die Guix benutzt, können @emph{nicht} übersetzt"
#. type: itemize
-#: guix-git/doc/contributing.texi:2442
+#: guix-git/doc/contributing.texi:2574
msgid "outside of the Guix project. Guile itself is not internationalized."
msgstr "werden oder sie werden außerhalb von Guix übersetzt. Guile selbst ist @emph{nicht} internationalisiert."
#. type: item
-#: guix-git/doc/contributing.texi:2442
+#: guix-git/doc/contributing.texi:2574
#, no-wrap
msgid "Other manuals linked from this manual or the cookbook might not be"
msgstr "Andere Handbücher, auf die vom Handbuch oder Kochbuch aus verwiesen"
#. type: itemize
-#: guix-git/doc/contributing.texi:2444
+#: guix-git/doc/contributing.texi:2576
msgid "translated."
msgstr "wird, sind oft @emph{nicht} übersetzt."
#. type: subsubheading
-#: guix-git/doc/contributing.texi:2446
+#: guix-git/doc/contributing.texi:2578
#, no-wrap
msgid "Conditions for Inclusion"
msgstr "Bedingungen für die Aufnahme"
#. type: Plain text
-#: guix-git/doc/contributing.texi:2453
+#: guix-git/doc/contributing.texi:2585
msgid "There are no conditions for adding new translations of the @code{guix} and @code{guix-packages} components, other than they need at least one translated string. New languages will be added to Guix as soon as possible. The files may be removed if they fall out of sync and have no more translated strings."
msgstr "Es müssen keine Bedingungen erfüllt werden, damit neue Übersetzungen der Komponenten @code{guix} und @code{guix-packages} übernommen werden, außer dass sie mindestens eine übersetzte Zeichenkette enthalten. Neue Sprachen werden so bald wie möglich aufgenommen. Die Dateien können wieder entfernt werden, wenn sie keine Übersetzungen mehr enthalten, weil die Zeichenketten, die übersetzt wurden, nicht mehr mit den in Guix verwendeten übereinstimmen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2459
+#: guix-git/doc/contributing.texi:2591
msgid "Given that the web site is dedicated to new users, we want its translation to be as complete as possible before we include it in the language menu. For a new language to be included, it needs to reach at least 80% completion. When a language is included, it may be removed in the future if it stays out of sync and falls below 60% completion."
msgstr "Aufgrund dessen, dass sich der Webauftritt an neue Benutzer richtet, möchten wir, dass dessen Übersetzung so vollständig wie möglich ist, bevor wir sie ins Menü zur Sprachauswahl aufnehmen. Eine neue Sprache muss dazu zumindest zu 80% vollständig sein. Einmal aufgenommen kann eine Sprache dann wieder entfernt werden, wenn sie eine Zeit lang nicht mehr übereinstimmt und zu weniger als 60% übersetzt ist."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2467
+#: guix-git/doc/contributing.texi:2599
msgid "The manual and cookbook are automatically added in the default compilation target. Every time we synchronize translations, developers need to recompile all the translated manuals and cookbooks. This is useless for what is essentially the English manual or cookbook. Therefore, we will only include a new language when it reaches 10% completion in the component. When a language is included, it may be removed in the future if it stays out of sync and falls below 5% completion."
msgstr "Handbuch und Kochbuch sind automatisch Teil des Standard-Ziels beim Kompilieren. Jedes Mal, wenn wir die Übersetzungen in Guix mit Weblate abgleichen, müssen die Entwickler alle übersetzten Hand- und Kochbücher neu kompilieren. Das lohnt sich nicht, wenn so wenig übersetzt wurde, dass wir größtenteils wieder das englische Hand- oder Kochbuch vor uns haben. Aus diesem Grund nehmen wir eine neue Sprache hier nur auf, wenn mindestens 10% der jeweiligen Komponente übersetzt sind. Eine bereits aufgenommene Sprache, die eine Zeit lang nicht übereinstimmt und wo weniger als 5% übersetzt sind, kann entfernt werden."
#. type: subsubheading
-#: guix-git/doc/contributing.texi:2468
+#: guix-git/doc/contributing.texi:2600
#, no-wrap
msgid "Translation Infrastructure"
msgstr "Übersetzungsinfrastruktur"
#. type: Plain text
-#: guix-git/doc/contributing.texi:2479
+#: guix-git/doc/contributing.texi:2611
msgid "Weblate is backed by a git repository from which it discovers new strings to translate and pushes new and updated translations. Normally, it would be enough to give it commit access to our repositories. However, we decided to use a separate repository for two reasons. First, we would have to give Weblate commit access and authorize its signing key, but we do not trust it in the same way we trust guix developers, especially since we do not manage the instance ourselves. Second, if translators mess something up, it can break the generation of the website and/or guix pull for all our users, independently of their language."
msgstr "Hinter Weblate steht ein Git-Repository, aus dem die Weblate-Instanz neue zu übersetzende Zeichenketten bezieht und in das sie die neuen und aktualisierten Übersetzungen pusht. Normalerweise würde es ausreichen, Weblate Commit-Zugriff auf unsere Repositorys zu geben, aber wir haben uns aus zwei Gründen dagegen entschieden. Erstens müssten wir sonst Weblate Commit-Zugriff geben und seinen Signierschlüssel autorisieren, aber wir haben in Weblate nicht auf gleiche Art Vertrauen wie in die Guix-Entwickler, besonders weil wir die Instanz nicht selbst verwalten. Zweitens könnten durch ein Missgeschick der Übersetzer dann das Erzeugen des Webauftritts und/oder guix-pull-Aufrufe für all unsere Nutzer aufhören zu funktionieren, ganz gleich was deren Spracheinstellungen sind."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2483
+#: guix-git/doc/contributing.texi:2615
msgid "For these reasons, we use a dedicated repository to host translations, and we synchronize it with our guix and artworks repositories after checking no issue was introduced in the translation."
msgstr "Daher haben wir ein separates Repository für die Übersetzungen, das wir mit unseren guix- und guix-artwork-Repositorys abgleichen, nachdem wir geprüft haben, dass es durch die Übersetzung zu keinem Fehler kommt."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2489
+#: guix-git/doc/contributing.texi:2621
msgid "Developers can download the latest PO files from weblate in the Guix repository by running the @command{make download-po} command. It will automatically download the latest files from weblate, reformat them to a canonical form, and check they do not contain issues. The manual needs to be built again to check for additional issues that might crash Texinfo."
msgstr "Entwickler können die neuesten PO-Dateien von Weblate in ihr Guix-Repository laden, indem sie den Befehl @command{make download-po} ausführen. Er wird die neuesten Dateien von Weblate automatisch herunterladen, in eine kanonische Form bringen und überprüfen, dass sie keine Fehler verursachen. Das Handbuch muss neu erstellt werden, um sicherzugehen, dass keine neuen Probleme zum Absturz von Texinfo führen."
#. type: Plain text
-#: guix-git/doc/contributing.texi:2493
+#: guix-git/doc/contributing.texi:2625
msgid "Before pushing new translation files, developers should add them to the make machinery so the translations are actually available. The process differs for the various components."
msgstr "Bevor sie neue Übersetzungsdateien pushen, sollten Entwickler achtgeben, dass jene Dateien eingetragen sind, damit die Make-Maschinerie die Übersetzungen auch tatsächlich bereitstellt. Der Prozess dafür unterscheidet sich je nach Komponente."
#. type: item
-#: guix-git/doc/contributing.texi:2495
+#: guix-git/doc/contributing.texi:2627
#, no-wrap
msgid "New po files for the @code{guix} and @code{packages} components must"
msgstr "Neue PO-Dateien für die Komponenten @code{guix} und @code{packages}"
#. type: itemize
-#: guix-git/doc/contributing.texi:2498
+#: guix-git/doc/contributing.texi:2630
msgid "be registered by adding the new language to @file{po/guix/LINGUAS} or @file{po/packages/LINGUAS}."
msgstr "müssen registriert werden, indem man die neue Sprache in @file{po/guix/LINGUAS} oder @file{po/packages/LINGUAS} hinzufügt."
#. type: item
-#: guix-git/doc/contributing.texi:2498
+#: guix-git/doc/contributing.texi:2630
#, no-wrap
msgid "New po files for the @code{documentation-manual} component must be"
msgstr "Neue PO-Dateien für die Komponente @code{documentation-manual} müssen"
#. type: itemize
-#: guix-git/doc/contributing.texi:2504
+#: guix-git/doc/contributing.texi:2636
msgid "registered by adding the file name to @code{DOC_PO_FILES} in @file{po/doc/local.mk}, the generated @file{%D%/guix.xx.texi} manual to @code{info_TEXINFOS} in @file{doc/local.mk} and the generated @file{%D%/guix.xx.texi} and @file{%D%/contributing.xx.texi} to @code{TRANSLATED_INFO} also in @file{doc/local.mk}."
msgstr "registriert werden, indem man deren Dateinamen zu @code{DOC_PO_FILES} in @file{po/doc/local.mk} hinzufügt, die erzeugte Handbuchdatei @file{%D%/guix.xx.texi} zu @code{info_TEXINFOS} in @file{doc/local.mk} hinzufügt und sowohl die erzeugte @file{%D%/guix.xx.texi} als auch @file{%D%/contributing.xx.texi} zu @code{TRANSLATED_INFO} auch wieder in @file{doc/local.mk} hinzufügt."
#. type: item
-#: guix-git/doc/contributing.texi:2504
+#: guix-git/doc/contributing.texi:2636
#, no-wrap
msgid "New po files for the @code{documentation-cookbook} component must be"
msgstr "Neue PO-Dateien für die Komponente @code{documentation-cookbook} müssen"
#. type: itemize
-#: guix-git/doc/contributing.texi:2510
+#: guix-git/doc/contributing.texi:2642
msgid "registered by adding the file name to @code{DOC_COOKBOOK_PO_FILES} in @file{po/doc/local.mk}, the generated @file{%D%/guix-cookbook.xx.texi} manual to @code{info_TEXINFOS} in @file{doc/local.mk} and the generated @file{%D%/guix-cookbook.xx.texi} to @code{TRANSLATED_INFO} also in @file{doc/local.mk}."
msgstr "registriert werden, indem man deren Dateinamen zu @code{DOC_COOKBOOK_PO_FILES} in @file{po/doc/local.mk} hinzufügt, die erzeugte Handbuchdatei @file{%D%/guix-cookbook.xx.texi} zu @code{info_TEXINFOS} in @file{doc/local.mk} hinzufügt und die erzeugte @file{%D%/guix-cookbook.xx.texi} zu @code{TRANSLATED_INFO} auch wieder in @file{doc/local.mk} hinzufügt."
#. type: item
-#: guix-git/doc/contributing.texi:2510
+#: guix-git/doc/contributing.texi:2642
#, no-wrap
msgid "New po files for the @code{website} component must be added to the"
msgstr "Neue PO-Dateien für die Komponente @code{website} müssen zum Repository"
#. type: itemize
-#: guix-git/doc/contributing.texi:2515
+#: guix-git/doc/contributing.texi:2647
msgid "@code{guix-artwork} repository, in @file{website/po/}. @file{website/po/LINGUAS} and @file{website/po/ietf-tags.scm} must be updated accordingly (see @file{website/i18n-howto.txt} for more information on the process)."
msgstr "@code{guix-artwork} ins dortige Verzeichnis @file{website/po/} hinzugefügt werden. @file{website/po/LINGUAS} und @file{website/po/ietf-tags.scm} müssen entsprechend aktualisiert werden (siehe @file{website/i18n-howto.txt} für Details zum Prozess)."
@@ -3888,7 +4083,7 @@ msgstr "Guix installieren."
#. type: chapter
#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:238
-#: guix-git/doc/guix.texi:2232 guix-git/doc/guix.texi:2233
+#: guix-git/doc/guix.texi:2240 guix-git/doc/guix.texi:2241
#, no-wrap
msgid "System Installation"
msgstr "Systeminstallation"
@@ -3899,20 +4094,8 @@ msgid "Installing the whole operating system."
msgstr "Das ganze Betriebssystem installieren."
#. type: chapter
-#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:255
-#: guix-git/doc/guix.texi:2976 guix-git/doc/guix.texi:2977
-#, no-wrap
-msgid "System Troubleshooting Tips"
-msgstr "Problembehandlung bei Guix System"
-
-#. type: menuentry
-#: guix-git/doc/guix.texi:207
-msgid "When things don't go as planned."
-msgstr "Wenn es mal nicht so läuft."
-
-#. type: chapter
-#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:3092
-#: guix-git/doc/guix.texi:3093
+#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:2983
+#: guix-git/doc/guix.texi:2984
#, no-wrap
msgid "Getting Started"
msgstr "Einstieg in Guix"
@@ -3923,8 +4106,8 @@ msgid "Your first steps."
msgstr "Ihre ersten Schritte."
#. type: chapter
-#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:259
-#: guix-git/doc/guix.texi:3300 guix-git/doc/guix.texi:3301
+#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:255
+#: guix-git/doc/guix.texi:3195 guix-git/doc/guix.texi:3196
#, no-wrap
msgid "Package Management"
msgstr "Paketverwaltung"
@@ -3935,8 +4118,8 @@ msgid "Package installation, upgrade, etc."
msgstr "Pakete installieren, aktualisieren usw."
#. type: chapter
-#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:283
-#: guix-git/doc/guix.texi:5592 guix-git/doc/guix.texi:5593
+#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:279
+#: guix-git/doc/guix.texi:5487 guix-git/doc/guix.texi:5488
#, no-wrap
msgid "Channels"
msgstr "Kanäle"
@@ -3947,8 +4130,8 @@ msgid "Customizing the package collection."
msgstr "Die Paketsammlung anpassen."
#. type: chapter
-#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:297
-#: guix-git/doc/guix.texi:6232 guix-git/doc/guix.texi:6233
+#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:293
+#: guix-git/doc/guix.texi:6127 guix-git/doc/guix.texi:6128
#, no-wrap
msgid "Development"
msgstr "Entwicklung"
@@ -3959,8 +4142,8 @@ msgid "Guix-aided software development."
msgstr "Von Guix unterstützte Softwareentwicklung."
#. type: chapter
-#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:305
-#: guix-git/doc/guix.texi:7716 guix-git/doc/guix.texi:7717
+#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:301
+#: guix-git/doc/guix.texi:7614 guix-git/doc/guix.texi:7615
#, no-wrap
msgid "Programming Interface"
msgstr "Programmierschnittstelle"
@@ -3971,8 +4154,8 @@ msgid "Using Guix in Scheme."
msgstr "Guix in Scheme verwenden."
#. type: chapter
-#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:327
-#: guix-git/doc/guix.texi:12775 guix-git/doc/guix.texi:12776
+#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:323
+#: guix-git/doc/guix.texi:12766 guix-git/doc/guix.texi:12767
#, no-wrap
msgid "Utilities"
msgstr "Zubehör"
@@ -3983,8 +4166,8 @@ msgid "Package management commands."
msgstr "Befehle zur Paketverwaltung."
#. type: chapter
-#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:353
-#: guix-git/doc/guix.texi:16627 guix-git/doc/guix.texi:16628
+#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:349
+#: guix-git/doc/guix.texi:16618 guix-git/doc/guix.texi:16619
#, no-wrap
msgid "Foreign Architectures"
msgstr "Fremde Architekturen"
@@ -3995,8 +4178,8 @@ msgid "Build for foreign architectures."
msgstr "Erstellen für fremde Architekturen."
#. type: chapter
-#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:358
-#: guix-git/doc/guix.texi:16789 guix-git/doc/guix.texi:16790
+#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:354
+#: guix-git/doc/guix.texi:16780 guix-git/doc/guix.texi:16781
#, no-wrap
msgid "System Configuration"
msgstr "Systemkonfiguration"
@@ -4007,8 +4190,20 @@ msgid "Configuring the operating system."
msgstr "Das Betriebssystem konfigurieren."
#. type: chapter
+#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:427
+#: guix-git/doc/guix.texi:43006 guix-git/doc/guix.texi:43007
+#, no-wrap
+msgid "System Troubleshooting Tips"
+msgstr "Problembehandlung bei Guix System"
+
+#. type: menuentry
+#: guix-git/doc/guix.texi:207
+msgid "When things don't go as planned."
+msgstr "Wenn es mal nicht so läuft."
+
+#. type: chapter
#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:431
-#: guix-git/doc/guix.texi:42856 guix-git/doc/guix.texi:42857
+#: guix-git/doc/guix.texi:43121 guix-git/doc/guix.texi:43122
#, no-wrap
msgid "Home Configuration"
msgstr "Persönliche Konfiguration"
@@ -4019,8 +4214,8 @@ msgid "Configuring the home environment."
msgstr "Persönliche Home-Umgebungen konfigurieren."
#. type: chapter
-#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:45161
-#: guix-git/doc/guix.texi:45162
+#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:45420
+#: guix-git/doc/guix.texi:45421
#, no-wrap
msgid "Documentation"
msgstr "Dokumentation"
@@ -4032,7 +4227,7 @@ msgstr "Wie man Nutzerhandbücher von Software liest."
#. type: chapter
#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:457
-#: guix-git/doc/guix.texi:45227 guix-git/doc/guix.texi:45228
+#: guix-git/doc/guix.texi:45486 guix-git/doc/guix.texi:45487
#, no-wrap
msgid "Platforms"
msgstr "Plattformen"
@@ -4043,7 +4238,7 @@ msgid "Defining platforms."
msgstr "Plattformen definieren."
#. type: node
-#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:45336
+#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:45595
#, no-wrap
msgid "System Images"
msgstr "Systemabbilder"
@@ -4055,7 +4250,7 @@ msgstr "System-Images erzeugen."
#. type: chapter
#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:473
-#: guix-git/doc/guix.texi:45872 guix-git/doc/guix.texi:45873
+#: guix-git/doc/guix.texi:46132 guix-git/doc/guix.texi:46133
#, no-wrap
msgid "Installing Debugging Files"
msgstr "Dateien zur Fehlersuche installieren"
@@ -4066,7 +4261,7 @@ msgid "Feeding the debugger."
msgstr "Den Debugger füttern."
#. type: node
-#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:46027
+#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:46287
#, no-wrap
msgid "Using TeX and LaTeX"
msgstr "TeX und LaTeX gebrauchen"
@@ -4077,8 +4272,8 @@ msgid "Typesetting."
msgstr "Texte setzen."
#. type: chapter
-#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:46146
-#: guix-git/doc/guix.texi:46147
+#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:46406
+#: guix-git/doc/guix.texi:46407
#, no-wrap
msgid "Security Updates"
msgstr "Sicherheitsaktualisierungen"
@@ -4090,7 +4285,7 @@ msgstr "Sicherheits-Patches schnell einspielen."
#. type: chapter
#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:478
-#: guix-git/doc/guix.texi:46261 guix-git/doc/guix.texi:46262
+#: guix-git/doc/guix.texi:46521 guix-git/doc/guix.texi:46522
#, no-wrap
msgid "Bootstrapping"
msgstr "Bootstrapping"
@@ -4101,7 +4296,7 @@ msgid "GNU/Linux built from scratch."
msgstr "GNU/Linux von Grund auf selbst erstellen."
#. type: node
-#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:46560
+#: guix-git/doc/guix.texi:207 guix-git/doc/guix.texi:46820
#, no-wrap
msgid "Porting"
msgstr "Portierung"
@@ -4117,8 +4312,8 @@ msgid "Your help needed!"
msgstr "Ihre Hilfe ist nötig!"
#. type: chapter
-#: guix-git/doc/guix.texi:212 guix-git/doc/guix.texi:46610
-#: guix-git/doc/guix.texi:46611
+#: guix-git/doc/guix.texi:212 guix-git/doc/guix.texi:46870
+#: guix-git/doc/guix.texi:46871
#, no-wrap
msgid "Acknowledgments"
msgstr "Danksagungen"
@@ -4129,8 +4324,8 @@ msgid "Thanks!"
msgstr "Danke!"
#. type: appendix
-#: guix-git/doc/guix.texi:212 guix-git/doc/guix.texi:46632
-#: guix-git/doc/guix.texi:46633
+#: guix-git/doc/guix.texi:212 guix-git/doc/guix.texi:46892
+#: guix-git/doc/guix.texi:46893
#, no-wrap
msgid "GNU Free Documentation License"
msgstr "GNU-Lizenz für freie Dokumentation"
@@ -4141,8 +4336,8 @@ msgid "The license of this manual."
msgstr "Die Lizenz dieses Handbuchs."
#. type: unnumbered
-#: guix-git/doc/guix.texi:212 guix-git/doc/guix.texi:46638
-#: guix-git/doc/guix.texi:46639
+#: guix-git/doc/guix.texi:212 guix-git/doc/guix.texi:46898
+#: guix-git/doc/guix.texi:46899
#, no-wrap
msgid "Concept Index"
msgstr "Konzeptverzeichnis"
@@ -4153,8 +4348,8 @@ msgid "Concepts."
msgstr "Konzepte."
#. type: unnumbered
-#: guix-git/doc/guix.texi:212 guix-git/doc/guix.texi:46642
-#: guix-git/doc/guix.texi:46643
+#: guix-git/doc/guix.texi:212 guix-git/doc/guix.texi:46902
+#: guix-git/doc/guix.texi:46903
#, no-wrap
msgid "Programming Index"
msgstr "Programmierverzeichnis"
@@ -4244,7 +4439,7 @@ msgstr "Die Umgebung des Erstellungs-Daemons vorbereiten."
#. type: node
#: guix-git/doc/guix.texi:230 guix-git/doc/guix.texi:723
-#: guix-git/doc/guix.texi:1673
+#: guix-git/doc/guix.texi:1681
#, no-wrap
msgid "Invoking guix-daemon"
msgstr "Aufruf des guix-daemon"
@@ -4256,7 +4451,7 @@ msgstr "Den Erstellungs-Daemon laufen lassen."
#. type: section
#: guix-git/doc/guix.texi:230 guix-git/doc/guix.texi:723
-#: guix-git/doc/guix.texi:1979 guix-git/doc/guix.texi:1980
+#: guix-git/doc/guix.texi:1987 guix-git/doc/guix.texi:1988
#, no-wrap
msgid "Application Setup"
msgstr "Anwendungen einrichten"
@@ -4268,7 +4463,7 @@ msgstr "Anwendungsspezifische Einstellungen."
#. type: section
#: guix-git/doc/guix.texi:230 guix-git/doc/guix.texi:723
-#: guix-git/doc/guix.texi:2195 guix-git/doc/guix.texi:2196
+#: guix-git/doc/guix.texi:2203 guix-git/doc/guix.texi:2204
#, no-wrap
msgid "Upgrading Guix"
msgstr "Aktualisieren von Guix"
@@ -4304,7 +4499,7 @@ msgstr "Erstellungen auf entfernte Maschinen auslagern."
#. type: subsection
#: guix-git/doc/guix.texi:236 guix-git/doc/guix.texi:1193
-#: guix-git/doc/guix.texi:1563 guix-git/doc/guix.texi:1564
+#: guix-git/doc/guix.texi:1571 guix-git/doc/guix.texi:1572
#, no-wrap
msgid "SELinux Support"
msgstr "SELinux-Unterstützung"
@@ -4315,2104 +4510,2104 @@ msgid "Using an SELinux policy for the daemon."
msgstr "Wie man eine SELinux-Richtlinie für den Daemon einrichtet."
#. type: section
-#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:1618
-#: guix-git/doc/guix.texi:2266 guix-git/doc/guix.texi:2268
-#: guix-git/doc/guix.texi:2269
+#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:1626
+#: guix-git/doc/guix.texi:2274 guix-git/doc/guix.texi:2276
+#: guix-git/doc/guix.texi:2277
#, no-wrap
msgid "Limitations"
msgstr "Einschränkungen"
#. type: menuentry
-#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2266
+#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2274
msgid "What you can expect."
msgstr "Was Sie erwarten dürfen."
#. type: section
-#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2266
-#: guix-git/doc/guix.texi:2294 guix-git/doc/guix.texi:2295
+#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2274
+#: guix-git/doc/guix.texi:2302 guix-git/doc/guix.texi:2303
#, no-wrap
msgid "Hardware Considerations"
msgstr "Hardware-Überlegungen"
#. type: menuentry
-#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2266
+#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2274
msgid "Supported hardware."
msgstr "Unterstützte Hardware."
#. type: section
-#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2266
-#: guix-git/doc/guix.texi:2332 guix-git/doc/guix.texi:2333
+#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2274
+#: guix-git/doc/guix.texi:2340 guix-git/doc/guix.texi:2341
#, no-wrap
msgid "USB Stick and DVD Installation"
msgstr "Installation von USB-Stick oder DVD"
#. type: menuentry
-#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2266
+#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2274
msgid "Preparing the installation medium."
msgstr "Das Installationsmedium vorbereiten."
#. type: section
-#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2266
-#: guix-git/doc/guix.texi:2423 guix-git/doc/guix.texi:2424
+#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2274
+#: guix-git/doc/guix.texi:2431 guix-git/doc/guix.texi:2432
#, no-wrap
msgid "Preparing for Installation"
msgstr "Vor der Installation"
#. type: menuentry
-#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2266
+#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2274
msgid "Networking, partitioning, etc."
msgstr "Netzwerkanbindung, Partitionierung usw."
#. type: section
-#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2266
-#: guix-git/doc/guix.texi:2446 guix-git/doc/guix.texi:2447
+#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2274
+#: guix-git/doc/guix.texi:2454 guix-git/doc/guix.texi:2455
#, no-wrap
msgid "Guided Graphical Installation"
msgstr "Geführte grafische Installation"
#. type: menuentry
-#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2266
+#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2274
msgid "Easy graphical installation."
msgstr "Leichte grafische Installation."
#. type: section
#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:250
-#: guix-git/doc/guix.texi:2266 guix-git/doc/guix.texi:2477
-#: guix-git/doc/guix.texi:2478
+#: guix-git/doc/guix.texi:2274 guix-git/doc/guix.texi:2485
+#: guix-git/doc/guix.texi:2486
#, no-wrap
msgid "Manual Installation"
msgstr "Manuelle Installation"
#. type: menuentry
-#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2266
+#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2274
msgid "Manual installation for wizards."
msgstr "Manuelle Installation für Zauberer."
#. type: section
-#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2266
-#: guix-git/doc/guix.texi:2857 guix-git/doc/guix.texi:2858
+#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2274
+#: guix-git/doc/guix.texi:2865 guix-git/doc/guix.texi:2866
#, no-wrap
msgid "After System Installation"
msgstr "Nach der Systeminstallation"
#. type: menuentry
-#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2266
+#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2274
msgid "When installation succeeded."
msgstr "Wenn die Installation erfolgreich war."
#. type: node
-#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2266
-#: guix-git/doc/guix.texi:2891
+#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2274
+#: guix-git/doc/guix.texi:2899
#, no-wrap
msgid "Installing Guix in a VM"
msgstr "Guix in einer VM installieren"
#. type: menuentry
-#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2266
+#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2274
msgid "Guix System playground."
msgstr "Ein „Guix System“-Spielplatz."
#. type: section
-#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2266
-#: guix-git/doc/guix.texi:2942 guix-git/doc/guix.texi:2943
+#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2274
+#: guix-git/doc/guix.texi:2950 guix-git/doc/guix.texi:2951
#, no-wrap
msgid "Building the Installation Image"
msgstr "Ein Abbild zur Installation erstellen"
#. type: menuentry
-#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2266
+#: guix-git/doc/guix.texi:248 guix-git/doc/guix.texi:2274
msgid "How this comes to be."
msgstr "Wie ein solches entsteht."
# Commas in node names would prevent the terminal info viewer from following links.
#. type: node
-#: guix-git/doc/guix.texi:253 guix-git/doc/guix.texi:2495
-#: guix-git/doc/guix.texi:2497
+#: guix-git/doc/guix.texi:253 guix-git/doc/guix.texi:2503
+#: guix-git/doc/guix.texi:2505
#, no-wrap
msgid "Keyboard Layout and Networking and Partitioning"
msgstr "Tastaturbelegung und Netzwerkanbindung und Partitionierung"
#. type: menuentry
-#: guix-git/doc/guix.texi:253 guix-git/doc/guix.texi:2495
+#: guix-git/doc/guix.texi:253 guix-git/doc/guix.texi:2503
msgid "Initial setup."
msgstr "Vorab."
#. type: subsection
-#: guix-git/doc/guix.texi:253 guix-git/doc/guix.texi:2495
-#: guix-git/doc/guix.texi:2768 guix-git/doc/guix.texi:2769
+#: guix-git/doc/guix.texi:253 guix-git/doc/guix.texi:2503
+#: guix-git/doc/guix.texi:2776 guix-git/doc/guix.texi:2777
#, no-wrap
msgid "Proceeding with the Installation"
msgstr "Fortfahren mit der Installation"
#. type: menuentry
-#: guix-git/doc/guix.texi:253 guix-git/doc/guix.texi:2495
+#: guix-git/doc/guix.texi:253 guix-git/doc/guix.texi:2503
msgid "Installing."
msgstr "Installieren."
#. type: section
-#: guix-git/doc/guix.texi:257 guix-git/doc/guix.texi:2993
-#: guix-git/doc/guix.texi:2995 guix-git/doc/guix.texi:2996
-#, no-wrap
-msgid "Chrooting into an existing system"
-msgstr "Chroot ins vorliegende System"
-
-#. type: section
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:3333
-#: guix-git/doc/guix.texi:3335 guix-git/doc/guix.texi:3336
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:3228
+#: guix-git/doc/guix.texi:3230 guix-git/doc/guix.texi:3231
#, no-wrap
msgid "Features"
msgstr "Funktionalitäten"
#. type: menuentry
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:3333
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:3228
msgid "How Guix will make your life brighter."
msgstr "Wie Guix Ihr Leben schöner machen wird."
#. type: node
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:3333
-#: guix-git/doc/guix.texi:3425
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:3228
+#: guix-git/doc/guix.texi:3320
#, no-wrap
msgid "Invoking guix package"
msgstr "Aufruf von guix package"
#. type: menuentry
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:3333
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:3228
msgid "Package installation, removal, etc."
msgstr "Pakete installieren, entfernen usw."
#. type: section
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:273
-#: guix-git/doc/guix.texi:3333 guix-git/doc/guix.texi:4038
-#: guix-git/doc/guix.texi:4039
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:269
+#: guix-git/doc/guix.texi:3228 guix-git/doc/guix.texi:3933
+#: guix-git/doc/guix.texi:3934
#, no-wrap
msgid "Substitutes"
msgstr "Substitute"
#. type: menuentry
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:3333
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:3228
msgid "Downloading pre-built binaries."
msgstr "Vorerstelle Binärdateien herunterladen."
#. type: section
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:3333
-#: guix-git/doc/guix.texi:4374 guix-git/doc/guix.texi:4375
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:3228
+#: guix-git/doc/guix.texi:4269 guix-git/doc/guix.texi:4270
#, no-wrap
msgid "Packages with Multiple Outputs"
msgstr "Pakete mit mehreren Ausgaben."
#. type: menuentry
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:3333
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:3228
msgid "Single source package, multiple outputs."
msgstr "Ein Quellpaket, mehrere Ausgaben."
#. type: node
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:3333
-#: guix-git/doc/guix.texi:4447
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:3228
+#: guix-git/doc/guix.texi:4342
#, no-wrap
msgid "Invoking guix locate"
msgstr "Aufruf von guix locate"
#. type: menuentry
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:3333
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:3228
msgid "Locating packages that provide a file."
msgstr "Pakete finden, die eine Datei enthalten."
#. type: node
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:3333
-#: guix-git/doc/guix.texi:4577
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:3228
+#: guix-git/doc/guix.texi:4472
#, no-wrap
msgid "Invoking guix gc"
msgstr "Aufruf von guix gc"
#. type: menuentry
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:3333
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:3228
msgid "Running the garbage collector."
msgstr "Den Müllsammler laufen lassen."
#. type: node
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:3333
-#: guix-git/doc/guix.texi:4801
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:3228
+#: guix-git/doc/guix.texi:4696
#, no-wrap
msgid "Invoking guix pull"
msgstr "Aufruf von guix pull"
#. type: menuentry
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:3333
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:3228
msgid "Fetching the latest Guix and distribution."
msgstr "Das neueste Guix samt Distribution laden."
#. type: node
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:3333
-#: guix-git/doc/guix.texi:5059
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:3228
+#: guix-git/doc/guix.texi:4954
#, no-wrap
msgid "Invoking guix time-machine"
msgstr "Aufruf von time-machine"
#. type: menuentry
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:3333
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:3228
msgid "Running an older revision of Guix."
msgstr "Alte Guix-Versionen verwenden."
#. type: section
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:3333
-#: guix-git/doc/guix.texi:5179 guix-git/doc/guix.texi:5180
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:3228
+#: guix-git/doc/guix.texi:5074 guix-git/doc/guix.texi:5075
#, no-wrap
msgid "Inferiors"
msgstr "Untergeordnete"
#. type: menuentry
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:3333
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:3228
msgid "Interacting with another revision of Guix."
msgstr "Mit einer anderen Version von Guix interagieren."
#. type: node
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:3333
-#: guix-git/doc/guix.texi:5304
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:3228
+#: guix-git/doc/guix.texi:5199
#, no-wrap
msgid "Invoking guix describe"
msgstr "Aufruf von guix describe"
#. type: menuentry
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:3333
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:3228
msgid "Display information about your Guix revision."
msgstr "Informationen über Ihre Guix-Version anzeigen."
#. type: node
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:3333
-#: guix-git/doc/guix.texi:5400
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:3228
+#: guix-git/doc/guix.texi:5295
#, no-wrap
msgid "Invoking guix archive"
msgstr "Aufruf von guix archive"
#. type: menuentry
-#: guix-git/doc/guix.texi:271 guix-git/doc/guix.texi:3333
+#: guix-git/doc/guix.texi:267 guix-git/doc/guix.texi:3228
msgid "Exporting and importing store files."
msgstr "Import und Export von Store-Dateien."
#. type: subsection
-#: guix-git/doc/guix.texi:281 guix-git/doc/guix.texi:4062
-#: guix-git/doc/guix.texi:4064 guix-git/doc/guix.texi:4065
+#: guix-git/doc/guix.texi:277 guix-git/doc/guix.texi:3957
+#: guix-git/doc/guix.texi:3959 guix-git/doc/guix.texi:3960
#, no-wrap
msgid "Official Substitute Servers"
msgstr "Offizielle Substitut-Server"
#. type: menuentry
-#: guix-git/doc/guix.texi:281 guix-git/doc/guix.texi:4062
+#: guix-git/doc/guix.texi:277 guix-git/doc/guix.texi:3957
msgid "One particular source of substitutes."
msgstr "Eine besondere Quelle von Substituten."
#. type: subsection
-#: guix-git/doc/guix.texi:281 guix-git/doc/guix.texi:4062
-#: guix-git/doc/guix.texi:4094 guix-git/doc/guix.texi:4095
+#: guix-git/doc/guix.texi:277 guix-git/doc/guix.texi:3957
+#: guix-git/doc/guix.texi:3989 guix-git/doc/guix.texi:3990
#, no-wrap
msgid "Substitute Server Authorization"
msgstr "Substitut-Server autorisieren"
#. type: menuentry
-#: guix-git/doc/guix.texi:281 guix-git/doc/guix.texi:4062
+#: guix-git/doc/guix.texi:277 guix-git/doc/guix.texi:3957
msgid "How to enable or disable substitutes."
msgstr "Wie man Substitute an- und abschaltet."
#. type: subsection
-#: guix-git/doc/guix.texi:281 guix-git/doc/guix.texi:4062
-#: guix-git/doc/guix.texi:4164 guix-git/doc/guix.texi:4165
+#: guix-git/doc/guix.texi:277 guix-git/doc/guix.texi:3957
+#: guix-git/doc/guix.texi:4059 guix-git/doc/guix.texi:4060
#, no-wrap
msgid "Getting Substitutes from Other Servers"
msgstr "Substitute von anderen Servern holen"
#. type: menuentry
-#: guix-git/doc/guix.texi:281 guix-git/doc/guix.texi:4062
+#: guix-git/doc/guix.texi:277 guix-git/doc/guix.texi:3957
msgid "Substitute diversity."
msgstr "Substitutevielfalt."
#. type: subsection
-#: guix-git/doc/guix.texi:281 guix-git/doc/guix.texi:4062
-#: guix-git/doc/guix.texi:4269 guix-git/doc/guix.texi:4270
+#: guix-git/doc/guix.texi:277 guix-git/doc/guix.texi:3957
+#: guix-git/doc/guix.texi:4164 guix-git/doc/guix.texi:4165
#, no-wrap
msgid "Substitute Authentication"
msgstr "Substitutauthentifizierung"
#. type: menuentry
-#: guix-git/doc/guix.texi:281 guix-git/doc/guix.texi:4062
+#: guix-git/doc/guix.texi:277 guix-git/doc/guix.texi:3957
msgid "How Guix verifies substitutes."
msgstr "Wie Guix Substitute verifiziert."
#. type: subsection
-#: guix-git/doc/guix.texi:281 guix-git/doc/guix.texi:4062
-#: guix-git/doc/guix.texi:4304 guix-git/doc/guix.texi:4305
+#: guix-git/doc/guix.texi:277 guix-git/doc/guix.texi:3957
+#: guix-git/doc/guix.texi:4199 guix-git/doc/guix.texi:4200
#, no-wrap
msgid "Proxy Settings"
msgstr "Proxy-Einstellungen"
#. type: menuentry
-#: guix-git/doc/guix.texi:281 guix-git/doc/guix.texi:4062
+#: guix-git/doc/guix.texi:277 guix-git/doc/guix.texi:3957
msgid "How to get substitutes via proxy."
msgstr "Wie Sie Substitute über einen Proxy beziehen."
#. type: subsection
-#: guix-git/doc/guix.texi:281 guix-git/doc/guix.texi:4062
-#: guix-git/doc/guix.texi:4316 guix-git/doc/guix.texi:4317
+#: guix-git/doc/guix.texi:277 guix-git/doc/guix.texi:3957
+#: guix-git/doc/guix.texi:4211 guix-git/doc/guix.texi:4212
#, no-wrap
msgid "Substitution Failure"
msgstr "Fehler bei der Substitution"
#. type: menuentry
-#: guix-git/doc/guix.texi:281 guix-git/doc/guix.texi:4062
+#: guix-git/doc/guix.texi:277 guix-git/doc/guix.texi:3957
msgid "What happens when substitution fails."
msgstr "Was passiert, wenn die Substitution fehlschlägt."
#. type: subsection
-#: guix-git/doc/guix.texi:281 guix-git/doc/guix.texi:4062
-#: guix-git/doc/guix.texi:4344 guix-git/doc/guix.texi:4345
+#: guix-git/doc/guix.texi:277 guix-git/doc/guix.texi:3957
+#: guix-git/doc/guix.texi:4239 guix-git/doc/guix.texi:4240
#, no-wrap
msgid "On Trusting Binaries"
msgstr "Vom Vertrauen gegenüber Binärdateien"
#. type: menuentry
-#: guix-git/doc/guix.texi:281 guix-git/doc/guix.texi:4062
+#: guix-git/doc/guix.texi:277 guix-git/doc/guix.texi:3957
msgid "How can you trust that binary blob?"
msgstr "Wie können Sie diesem binären Blob trauen?"
#. type: section
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
-#: guix-git/doc/guix.texi:5625 guix-git/doc/guix.texi:5626
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
+#: guix-git/doc/guix.texi:5520 guix-git/doc/guix.texi:5521
#, no-wrap
msgid "Specifying Additional Channels"
msgstr "Weitere Kanäle angeben"
#. type: menuentry
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
msgid "Extending the package collection."
msgstr "Die Paketsammlung erweitern."
#. type: section
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
-#: guix-git/doc/guix.texi:5671 guix-git/doc/guix.texi:5672
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
+#: guix-git/doc/guix.texi:5566 guix-git/doc/guix.texi:5567
#, no-wrap
msgid "Using a Custom Guix Channel"
msgstr "Eigenen Guix-Kanal benutzen"
#. type: menuentry
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
msgid "Using a customized Guix."
msgstr "Ein angepasstes Guix benutzen."
#. type: section
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
-#: guix-git/doc/guix.texi:5712 guix-git/doc/guix.texi:5713
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
+#: guix-git/doc/guix.texi:5607 guix-git/doc/guix.texi:5608
#, no-wrap
msgid "Replicating Guix"
msgstr "Guix nachbilden"
#. type: menuentry
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
msgid "Running the @emph{exact same} Guix."
msgstr "Haargenau dasselbe Guix bekommen."
#. type: section
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
-#: guix-git/doc/guix.texi:5772 guix-git/doc/guix.texi:5773
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
+#: guix-git/doc/guix.texi:5667 guix-git/doc/guix.texi:5668
#, no-wrap
msgid "Channel Authentication"
msgstr "Kanalauthentifizierung"
#. type: menuentry
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
msgid "How Guix verifies what it fetches."
msgstr "Wie Guix seine Aktualisierung verifiziert."
#. type: section
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
-#: guix-git/doc/guix.texi:5812 guix-git/doc/guix.texi:5813
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
+#: guix-git/doc/guix.texi:5707 guix-git/doc/guix.texi:5708
#, no-wrap
msgid "Channels with Substitutes"
msgstr "Kanäle mit Substituten"
#. type: menuentry
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
msgid "Using channels with available substitutes."
msgstr "Kanäle nutzen, für die es Substitute gibt."
#. type: section
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
-#: guix-git/doc/guix.texi:5837 guix-git/doc/guix.texi:5838
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
+#: guix-git/doc/guix.texi:5732 guix-git/doc/guix.texi:5733
#, no-wrap
msgid "Creating a Channel"
msgstr "Einen Kanal erstellen"
#. type: menuentry
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
msgid "How to write your custom channel."
msgstr "Wie Sie Ihren eigenen Kanal schreiben."
#. type: section
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
-#: guix-git/doc/guix.texi:5968 guix-git/doc/guix.texi:5969
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
+#: guix-git/doc/guix.texi:5863 guix-git/doc/guix.texi:5864
#, no-wrap
msgid "Package Modules in a Sub-directory"
msgstr "Paketmodule in einem Unterverzeichnis"
#. type: menuentry
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
msgid "Specifying the channel's package modules location."
msgstr "Den Ort der Paketmodule des Kanals angeben."
#. type: section
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
-#: guix-git/doc/guix.texi:5994 guix-git/doc/guix.texi:5995
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
+#: guix-git/doc/guix.texi:5889 guix-git/doc/guix.texi:5890
#, no-wrap
msgid "Declaring Channel Dependencies"
msgstr "Kanalabhängigkeiten deklarieren"
#. type: menuentry
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
msgid "How to depend on other channels."
msgstr "Abhängigkeiten von anderen Kanälen festlegen."
#. type: section
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
-#: guix-git/doc/guix.texi:6036 guix-git/doc/guix.texi:6037
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
+#: guix-git/doc/guix.texi:5931 guix-git/doc/guix.texi:5932
#, no-wrap
msgid "Specifying Channel Authorizations"
-msgstr "Weitere Kanalautorisierungen angeben"
+msgstr "Kanalautorisierungen angeben"
#. type: menuentry
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
msgid "Defining channel authors authorizations."
msgstr "Autorisierungen von Kanalautoren definieren."
#. type: section
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
-#: guix-git/doc/guix.texi:6139 guix-git/doc/guix.texi:6140
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
+#: guix-git/doc/guix.texi:6034 guix-git/doc/guix.texi:6035
#, no-wrap
msgid "Primary URL"
msgstr "Primäre URL"
#. type: menuentry
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
msgid "Distinguishing mirror to original."
msgstr "Spiegelserver vom Original unterscheiden."
#. type: section
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
-#: guix-git/doc/guix.texi:6162 guix-git/doc/guix.texi:6163
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
+#: guix-git/doc/guix.texi:6057 guix-git/doc/guix.texi:6058
#, no-wrap
msgid "Writing Channel News"
msgstr "Kanalneuigkeiten verfassen"
#. type: menuentry
-#: guix-git/doc/guix.texi:295 guix-git/doc/guix.texi:5623
+#: guix-git/doc/guix.texi:291 guix-git/doc/guix.texi:5518
msgid "Communicating information to channel's users."
msgstr "Den Kanalnutzern Informationen mitteilen."
#. type: node
-#: guix-git/doc/guix.texi:303 guix-git/doc/guix.texi:6252
-#: guix-git/doc/guix.texi:6254
+#: guix-git/doc/guix.texi:299 guix-git/doc/guix.texi:6147
+#: guix-git/doc/guix.texi:6149
#, no-wrap
msgid "Invoking guix shell"
msgstr "Aufruf von guix shell"
#. type: menuentry
-#: guix-git/doc/guix.texi:303 guix-git/doc/guix.texi:6252
+#: guix-git/doc/guix.texi:299 guix-git/doc/guix.texi:6147
msgid "Spawning one-off software environments."
msgstr "Software-Umgebungen für den Moment."
#. type: node
-#: guix-git/doc/guix.texi:303 guix-git/doc/guix.texi:6252
-#: guix-git/doc/guix.texi:6790
+#: guix-git/doc/guix.texi:299 guix-git/doc/guix.texi:6147
+#: guix-git/doc/guix.texi:6685
#, no-wrap
msgid "Invoking guix environment"
msgstr "Aufruf von guix environment"
#. type: menuentry
-#: guix-git/doc/guix.texi:303 guix-git/doc/guix.texi:6252
+#: guix-git/doc/guix.texi:299 guix-git/doc/guix.texi:6147
msgid "Setting up development environments."
msgstr "Entwicklungsumgebungen einrichten."
#. type: node
-#: guix-git/doc/guix.texi:303 guix-git/doc/guix.texi:6252
-#: guix-git/doc/guix.texi:7187
+#: guix-git/doc/guix.texi:299 guix-git/doc/guix.texi:6147
+#: guix-git/doc/guix.texi:7082
#, no-wrap
msgid "Invoking guix pack"
msgstr "Aufruf von guix pack"
#. type: menuentry
-#: guix-git/doc/guix.texi:303 guix-git/doc/guix.texi:6252
+#: guix-git/doc/guix.texi:299 guix-git/doc/guix.texi:6147
msgid "Creating software bundles."
msgstr "Software-Bündel erstellen."
#. type: section
-#: guix-git/doc/guix.texi:303 guix-git/doc/guix.texi:6252
-#: guix-git/doc/guix.texi:7626 guix-git/doc/guix.texi:7627
+#: guix-git/doc/guix.texi:299 guix-git/doc/guix.texi:6147
+#: guix-git/doc/guix.texi:7524 guix-git/doc/guix.texi:7525
#, no-wrap
msgid "The GCC toolchain"
msgstr "GCC-Toolchain"
#. type: menuentry
-#: guix-git/doc/guix.texi:303 guix-git/doc/guix.texi:6252
+#: guix-git/doc/guix.texi:299 guix-git/doc/guix.texi:6147
msgid "Working with languages supported by GCC."
msgstr "Arbeiten mit vom GCC unterstützten Sprachen."
#. type: node
-#: guix-git/doc/guix.texi:303 guix-git/doc/guix.texi:6252
-#: guix-git/doc/guix.texi:7652
+#: guix-git/doc/guix.texi:299 guix-git/doc/guix.texi:6147
+#: guix-git/doc/guix.texi:7550
#, no-wrap
msgid "Invoking guix git authenticate"
msgstr "Aufruf von guix git authenticate"
#. type: menuentry
-#: guix-git/doc/guix.texi:303 guix-git/doc/guix.texi:6252
+#: guix-git/doc/guix.texi:299 guix-git/doc/guix.texi:6147
msgid "Authenticating Git repositories."
msgstr "Git-Repositorys authentifizieren."
#. type: section
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
-#: guix-git/doc/guix.texi:7761 guix-git/doc/guix.texi:7762
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
+#: guix-git/doc/guix.texi:7659 guix-git/doc/guix.texi:7660
#, no-wrap
msgid "Package Modules"
msgstr "Paketmodule"
#. type: menuentry
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
msgid "Packages from the programmer's viewpoint."
msgstr "Pakete aus Sicht des Programmierers."
#. type: section
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:322
-#: guix-git/doc/guix.texi:7759 guix-git/doc/guix.texi:7823
-#: guix-git/doc/guix.texi:7824
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:318
+#: guix-git/doc/guix.texi:7657 guix-git/doc/guix.texi:7721
+#: guix-git/doc/guix.texi:7722
#, no-wrap
msgid "Defining Packages"
msgstr "Pakete definieren"
#. type: menuentry
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
msgid "Defining new packages."
msgstr "Wie Sie neue Pakete definieren."
#. type: section
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
-#: guix-git/doc/guix.texi:8528 guix-git/doc/guix.texi:8529
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
+#: guix-git/doc/guix.texi:8498 guix-git/doc/guix.texi:8499
#, no-wrap
msgid "Defining Package Variants"
msgstr "Paketvarianten definieren"
#. type: menuentry
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
msgid "Customizing packages."
msgstr "Pakete anpassen."
#. type: section
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
-#: guix-git/doc/guix.texi:8800 guix-git/doc/guix.texi:8801
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
+#: guix-git/doc/guix.texi:8770 guix-git/doc/guix.texi:8771
#, no-wrap
msgid "Writing Manifests"
msgstr "Manifeste verfassen"
#. type: menuentry
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
msgid "The bill of materials of your environment."
msgstr "Woraus Ihre Umgebung besteht."
#. type: section
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
-#: guix-git/doc/guix.texi:9105 guix-git/doc/guix.texi:9106
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
+#: guix-git/doc/guix.texi:9075 guix-git/doc/guix.texi:9076
#, no-wrap
msgid "Build Systems"
msgstr "Erstellungssysteme"
#. type: menuentry
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
msgid "Specifying how packages are built."
msgstr "Angeben, wie Pakete erstellt werden."
#. type: subsection
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
-#: guix-git/doc/guix.texi:10344 guix-git/doc/guix.texi:10345
-#: guix-git/doc/guix.texi:10876
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
+#: guix-git/doc/guix.texi:10335 guix-git/doc/guix.texi:10336
+#: guix-git/doc/guix.texi:10867
#, no-wrap
msgid "Build Phases"
msgstr "Erstellungsphasen"
#. type: menuentry
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
msgid "Phases of the build process of a package."
msgstr "Die Phasen im Erstellungsprozess eines Pakets."
#. type: section
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
-#: guix-git/doc/guix.texi:10564 guix-git/doc/guix.texi:10565
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
+#: guix-git/doc/guix.texi:10555 guix-git/doc/guix.texi:10556
#, no-wrap
msgid "Build Utilities"
msgstr "Werkzeuge zur Erstellung"
#. type: menuentry
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
msgid "Helpers for your package definitions and more."
msgstr "Helferlein für Ihre Paketdefinitionen und anderes."
#. type: section
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
-#: guix-git/doc/guix.texi:11033 guix-git/doc/guix.texi:11034
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
+#: guix-git/doc/guix.texi:11024 guix-git/doc/guix.texi:11025
#, no-wrap
msgid "Search Paths"
msgstr "Suchpfade"
#. type: menuentry
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
msgid "Declaring search path environment variables."
msgstr "Umgebungsvariable mit Suchpfaden deklarieren."
#. type: section
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
-#: guix-git/doc/guix.texi:11230 guix-git/doc/guix.texi:11231
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
+#: guix-git/doc/guix.texi:11221 guix-git/doc/guix.texi:11222
#, no-wrap
msgid "The Store"
msgstr "Der Store"
#. type: menuentry
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
msgid "Manipulating the package store."
msgstr "Den Paket-Store verändern."
#. type: section
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
-#: guix-git/doc/guix.texi:11382 guix-git/doc/guix.texi:11383
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
+#: guix-git/doc/guix.texi:11373 guix-git/doc/guix.texi:11374
#, no-wrap
msgid "Derivations"
msgstr "Ableitungen"
#. type: menuentry
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
msgid "Low-level interface to package derivations."
msgstr "Systemnahe Schnittstelle für Paketableitungen."
#. type: section
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
-#: guix-git/doc/guix.texi:11575 guix-git/doc/guix.texi:11576
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
+#: guix-git/doc/guix.texi:11566 guix-git/doc/guix.texi:11567
#, no-wrap
msgid "The Store Monad"
msgstr "Die Store-Monade"
#. type: menuentry
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
msgid "Purely functional interface to the store."
msgstr "Rein funktionale Schnittstelle zum Store."
#. type: section
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
-#: guix-git/doc/guix.texi:11897 guix-git/doc/guix.texi:11898
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
+#: guix-git/doc/guix.texi:11888 guix-git/doc/guix.texi:11889
#, no-wrap
msgid "G-Expressions"
msgstr "G-Ausdrücke"
#. type: menuentry
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
msgid "Manipulating build expressions."
msgstr "Erstellungsausdrücke verarbeiten."
#. type: node
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
-#: guix-git/doc/guix.texi:12531
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
+#: guix-git/doc/guix.texi:12522
#, no-wrap
msgid "Invoking guix repl"
msgstr "Aufruf von guix repl"
#. type: menuentry
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
msgid "Programming Guix in Guile"
msgstr "Guix in Guile programmieren."
#. type: section
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
-#: guix-git/doc/guix.texi:12648 guix-git/doc/guix.texi:12649
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
+#: guix-git/doc/guix.texi:12639 guix-git/doc/guix.texi:12640
#, no-wrap
msgid "Using Guix Interactively"
msgstr "Interaktiv mit Guix arbeiten"
#. type: menuentry
-#: guix-git/doc/guix.texi:320 guix-git/doc/guix.texi:7759
+#: guix-git/doc/guix.texi:316 guix-git/doc/guix.texi:7657
msgid "Fine-grain interaction at the REPL."
msgstr "Genau steuern auf der REPL."
#. type: node
-#: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:8027
-#: guix-git/doc/guix.texi:8030
+#: guix-git/doc/guix.texi:321 guix-git/doc/guix.texi:7925
+#: guix-git/doc/guix.texi:7928
#, no-wrap
msgid "package Reference"
msgstr "„package“-Referenz"
#. type: menuentry
-#: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:8027
+#: guix-git/doc/guix.texi:321 guix-git/doc/guix.texi:7925
msgid "The package data type."
msgstr "Der Datentyp für Pakete."
#. type: node
-#: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:8027
-#: guix-git/doc/guix.texi:8338
+#: guix-git/doc/guix.texi:321 guix-git/doc/guix.texi:7925
+#: guix-git/doc/guix.texi:8236
#, no-wrap
msgid "origin Reference"
msgstr "„origin“-Referenz"
#. type: menuentry
-#: guix-git/doc/guix.texi:325 guix-git/doc/guix.texi:8027
+#: guix-git/doc/guix.texi:321 guix-git/doc/guix.texi:7925
msgid "The origin data type."
msgstr "Datentyp für Paketursprünge."
#. type: node
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
-#: guix-git/doc/guix.texi:12802
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
+#: guix-git/doc/guix.texi:12793
#, no-wrap
msgid "Invoking guix build"
msgstr "Aufruf von guix build"
#. type: menuentry
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
msgid "Building packages from the command line."
msgstr "Pakete aus der Befehlszeile heraus erstellen."
#. type: node
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
-#: guix-git/doc/guix.texi:13760
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
+#: guix-git/doc/guix.texi:13751
#, no-wrap
msgid "Invoking guix edit"
msgstr "Aufruf von guix edit"
#. type: menuentry
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
msgid "Editing package definitions."
msgstr "Paketdefinitionen bearbeiten."
#. type: node
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
-#: guix-git/doc/guix.texi:13790
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
+#: guix-git/doc/guix.texi:13781
#, no-wrap
msgid "Invoking guix download"
msgstr "Aufruf von guix download"
#. type: menuentry
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
msgid "Downloading a file and printing its hash."
msgstr "Eine Datei herunterladen und ihre Hash-Prüfsumme ausgeben."
#. type: node
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
-#: guix-git/doc/guix.texi:13848
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
+#: guix-git/doc/guix.texi:13839
#, no-wrap
msgid "Invoking guix hash"
msgstr "Aufruf von guix hash"
#. type: menuentry
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
msgid "Computing the cryptographic hash of a file."
msgstr "Die kryptografische Prüfsumme einer Datei berechnen."
#. type: node
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
-#: guix-git/doc/guix.texi:13939
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
+#: guix-git/doc/guix.texi:13930
#, no-wrap
msgid "Invoking guix import"
msgstr "Aufruf von guix import"
#. type: menuentry
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
msgid "Importing package definitions."
msgstr "Paketdefinitionen importieren."
#. type: node
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
-#: guix-git/doc/guix.texi:14547
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
+#: guix-git/doc/guix.texi:14538
#, no-wrap
msgid "Invoking guix refresh"
msgstr "Aufruf von guix refresh"
#. type: menuentry
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
msgid "Updating package definitions."
msgstr "Paketdefinitionen aktualisieren."
#. type: node
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
-#: guix-git/doc/guix.texi:15003
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
+#: guix-git/doc/guix.texi:14994
#, no-wrap
msgid "Invoking guix style"
msgstr "Aufruf von guix style"
#. type: menuentry
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
msgid "Styling package definitions."
msgstr "Paketdefinitionen umgestalten."
#. type: node
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
-#: guix-git/doc/guix.texi:15205
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
+#: guix-git/doc/guix.texi:15196
#, no-wrap
msgid "Invoking guix lint"
msgstr "Aufruf von guix lint"
#. type: menuentry
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
msgid "Finding errors in package definitions."
msgstr "Fehler in Paketdefinitionen finden."
#. type: node
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
-#: guix-git/doc/guix.texi:15391
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
+#: guix-git/doc/guix.texi:15382
#, no-wrap
msgid "Invoking guix size"
msgstr "Aufruf von guix size"
#. type: menuentry
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
msgid "Profiling disk usage."
msgstr "Plattenplatzverbrauch profilieren."
#. type: node
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
-#: guix-git/doc/guix.texi:15535
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
+#: guix-git/doc/guix.texi:15526
#, no-wrap
msgid "Invoking guix graph"
msgstr "Aufruf von guix graph"
#. type: menuentry
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
msgid "Visualizing the graph of packages."
msgstr "Den Paketgraphen visualisieren."
#. type: node
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
-#: guix-git/doc/guix.texi:15816
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
+#: guix-git/doc/guix.texi:15807
#, no-wrap
msgid "Invoking guix publish"
msgstr "Aufruf von guix publish"
#. type: menuentry
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
msgid "Sharing substitutes."
msgstr "Substitute teilen."
#. type: node
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
-#: guix-git/doc/guix.texi:16090
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
+#: guix-git/doc/guix.texi:16081
#, no-wrap
msgid "Invoking guix challenge"
msgstr "Aufruf von guix challenge"
#. type: menuentry
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
msgid "Challenging substitute servers."
msgstr "Die Substitut-Server anfechten."
#. type: node
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
-#: guix-git/doc/guix.texi:16279
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
+#: guix-git/doc/guix.texi:16270
#, no-wrap
msgid "Invoking guix copy"
msgstr "Aufruf von guix copy"
#. type: menuentry
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
msgid "Copying to and from a remote store."
msgstr "Mit einem entfernten Store Dateien austauschen."
#. type: node
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
-#: guix-git/doc/guix.texi:16343
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
+#: guix-git/doc/guix.texi:16334
#, no-wrap
msgid "Invoking guix container"
msgstr "Aufruf von guix container"
#. type: menuentry
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
msgid "Process isolation."
msgstr "Prozesse isolieren."
#. type: node
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
-#: guix-git/doc/guix.texi:16397
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
+#: guix-git/doc/guix.texi:16388
#, no-wrap
msgid "Invoking guix weather"
msgstr "Aufruf von guix weather"
#. type: menuentry
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
msgid "Assessing substitute availability."
msgstr "Die Verfügbarkeit von Substituten einschätzen."
#. type: node
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
-#: guix-git/doc/guix.texi:16528
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
+#: guix-git/doc/guix.texi:16519
#, no-wrap
msgid "Invoking guix processes"
msgstr "Aufruf von guix processes"
#. type: menuentry
-#: guix-git/doc/guix.texi:344 guix-git/doc/guix.texi:12800
+#: guix-git/doc/guix.texi:340 guix-git/doc/guix.texi:12791
msgid "Listing client processes."
msgstr "Auflisten der Client-Prozesse"
#. type: section
-#: guix-git/doc/guix.texi:346 guix-git/doc/guix.texi:12803
+#: guix-git/doc/guix.texi:342 guix-git/doc/guix.texi:12794
#, no-wrap
msgid "Invoking @command{guix build}"
msgstr "Aufruf von @command{guix build}"
#. type: subsection
-#: guix-git/doc/guix.texi:351 guix-git/doc/guix.texi:12854
-#: guix-git/doc/guix.texi:12856 guix-git/doc/guix.texi:12857
+#: guix-git/doc/guix.texi:347 guix-git/doc/guix.texi:12845
+#: guix-git/doc/guix.texi:12847 guix-git/doc/guix.texi:12848
#, no-wrap
msgid "Common Build Options"
msgstr "Gemeinsame Erstellungsoptionen"
#. type: menuentry
-#: guix-git/doc/guix.texi:351 guix-git/doc/guix.texi:12854
+#: guix-git/doc/guix.texi:347 guix-git/doc/guix.texi:12845
msgid "Build options for most commands."
msgstr "Erstellungsoptionen für die meisten Befehle."
#. type: subsection
-#: guix-git/doc/guix.texi:351 guix-git/doc/guix.texi:12854
-#: guix-git/doc/guix.texi:13011 guix-git/doc/guix.texi:13012
+#: guix-git/doc/guix.texi:347 guix-git/doc/guix.texi:12845
+#: guix-git/doc/guix.texi:13002 guix-git/doc/guix.texi:13003
#, no-wrap
msgid "Package Transformation Options"
msgstr "Paketumwandlungsoptionen"
#. type: menuentry
-#: guix-git/doc/guix.texi:351 guix-git/doc/guix.texi:12854
+#: guix-git/doc/guix.texi:347 guix-git/doc/guix.texi:12845
msgid "Creating variants of packages."
msgstr "Varianten von Paketen erzeugen."
#. type: subsection
-#: guix-git/doc/guix.texi:351 guix-git/doc/guix.texi:12854
-#: guix-git/doc/guix.texi:13434 guix-git/doc/guix.texi:13435
+#: guix-git/doc/guix.texi:347 guix-git/doc/guix.texi:12845
+#: guix-git/doc/guix.texi:13425 guix-git/doc/guix.texi:13426
#, no-wrap
msgid "Additional Build Options"
msgstr "Zusätzliche Erstellungsoptionen"
#. type: menuentry
-#: guix-git/doc/guix.texi:351 guix-git/doc/guix.texi:12854
+#: guix-git/doc/guix.texi:347 guix-git/doc/guix.texi:12845
msgid "Options specific to 'guix build'."
msgstr "Optionen spezifisch für „guix build“."
#. type: subsection
-#: guix-git/doc/guix.texi:351 guix-git/doc/guix.texi:12854
-#: guix-git/doc/guix.texi:13680 guix-git/doc/guix.texi:13681
+#: guix-git/doc/guix.texi:347 guix-git/doc/guix.texi:12845
+#: guix-git/doc/guix.texi:13671 guix-git/doc/guix.texi:13672
#, no-wrap
msgid "Debugging Build Failures"
msgstr "Fehlschläge beim Erstellen untersuchen"
#. type: menuentry
-#: guix-git/doc/guix.texi:351 guix-git/doc/guix.texi:12854
+#: guix-git/doc/guix.texi:347 guix-git/doc/guix.texi:12845
msgid "Real life packaging experience."
msgstr "Praxiserfahrung beim Paketeschreiben."
#. type: section
-#: guix-git/doc/guix.texi:356 guix-git/doc/guix.texi:16651
-#: guix-git/doc/guix.texi:16653 guix-git/doc/guix.texi:16654
+#: guix-git/doc/guix.texi:352 guix-git/doc/guix.texi:16642
+#: guix-git/doc/guix.texi:16644 guix-git/doc/guix.texi:16645
#, no-wrap
msgid "Cross-Compilation"
msgstr "Cross-Kompilieren"
#. type: menuentry
-#: guix-git/doc/guix.texi:356 guix-git/doc/guix.texi:16651
+#: guix-git/doc/guix.texi:352 guix-git/doc/guix.texi:16642
msgid "Cross-compiling for another architecture."
msgstr "Cross-Kompilieren für eine andere Architektur."
#. type: section
-#: guix-git/doc/guix.texi:356 guix-git/doc/guix.texi:16651
-#: guix-git/doc/guix.texi:16701 guix-git/doc/guix.texi:16702
+#: guix-git/doc/guix.texi:352 guix-git/doc/guix.texi:16642
+#: guix-git/doc/guix.texi:16692 guix-git/doc/guix.texi:16693
#, no-wrap
msgid "Native Builds"
msgstr "Native Erstellungen"
#. type: menuentry
-#: guix-git/doc/guix.texi:356 guix-git/doc/guix.texi:16651
+#: guix-git/doc/guix.texi:352 guix-git/doc/guix.texi:16642
msgid "Targeting another architecture through native builds."
msgstr "Trotz anderer Architektur nativ erstellen."
#. type: section
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
-#: guix-git/doc/guix.texi:16835 guix-git/doc/guix.texi:16836
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
+#: guix-git/doc/guix.texi:16826 guix-git/doc/guix.texi:16827
#, no-wrap
msgid "Using the Configuration System"
msgstr "Das Konfigurationssystem nutzen"
#. type: menuentry
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
msgid "Customizing your GNU system."
msgstr "Ihr GNU-System anpassen."
#. type: node
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
-#: guix-git/doc/guix.texi:17103
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
+#: guix-git/doc/guix.texi:17111
#, no-wrap
msgid "operating-system Reference"
msgstr "„operating-system“-Referenz"
#. type: menuentry
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
msgid "Detail of operating-system declarations."
msgstr "Details der Betriebssystem-Deklarationen."
#. type: section
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:379
-#: guix-git/doc/guix.texi:16833 guix-git/doc/guix.texi:17321
-#: guix-git/doc/guix.texi:17322
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:375
+#: guix-git/doc/guix.texi:16824 guix-git/doc/guix.texi:17329
+#: guix-git/doc/guix.texi:17330
#, no-wrap
msgid "File Systems"
msgstr "Dateisysteme"
#. type: menuentry
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
msgid "Configuring file system mounts."
msgstr "Die Dateisystemeinbindungen konfigurieren."
#. type: section
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
-#: guix-git/doc/guix.texi:17684 guix-git/doc/guix.texi:17685
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
+#: guix-git/doc/guix.texi:17692 guix-git/doc/guix.texi:17693
#, no-wrap
msgid "Mapped Devices"
msgstr "Zugeordnete Geräte"
#. type: menuentry
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
msgid "Block device extra processing."
msgstr "Näheres zu blockorientierten Speichermedien."
#. type: section
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
-#: guix-git/doc/guix.texi:17833 guix-git/doc/guix.texi:17834
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
+#: guix-git/doc/guix.texi:17841 guix-git/doc/guix.texi:17842
#, no-wrap
msgid "Swap Space"
msgstr "Swap-Speicher"
#. type: menuentry
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
msgid "Backing RAM with disk space."
msgstr "Arbeitsspeicher auslagern."
#. type: section
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
-#: guix-git/doc/guix.texi:18015 guix-git/doc/guix.texi:18016
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
+#: guix-git/doc/guix.texi:18023 guix-git/doc/guix.texi:18024
#, no-wrap
msgid "User Accounts"
msgstr "Benutzerkonten"
#. type: menuentry
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
msgid "Specifying user accounts."
msgstr "Benutzerkonten festlegen."
#. type: section
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:2504
-#: guix-git/doc/guix.texi:16833 guix-git/doc/guix.texi:18196
-#: guix-git/doc/guix.texi:18197
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:2512
+#: guix-git/doc/guix.texi:16824 guix-git/doc/guix.texi:18204
+#: guix-git/doc/guix.texi:18205
#, no-wrap
msgid "Keyboard Layout"
msgstr "Tastaturbelegung"
#. type: menuentry
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
msgid "How the system interprets key strokes."
msgstr "Wie das System Tastendrücke interpretiert."
#. type: section
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:1987
-#: guix-git/doc/guix.texi:16833 guix-git/doc/guix.texi:18341
-#: guix-git/doc/guix.texi:18342
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:1995
+#: guix-git/doc/guix.texi:16824 guix-git/doc/guix.texi:18349
+#: guix-git/doc/guix.texi:18350
#, no-wrap
msgid "Locales"
msgstr "Locales"
#. type: menuentry
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
msgid "Language and cultural convention settings."
msgstr "Sprache und kulturelle Konventionen."
#. type: node
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:383
-#: guix-git/doc/guix.texi:16833 guix-git/doc/guix.texi:18481
-#: guix-git/doc/guix.texi:18482 guix-git/doc/guix.texi:33405
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:379
+#: guix-git/doc/guix.texi:16824 guix-git/doc/guix.texi:18489
+#: guix-git/doc/guix.texi:18490 guix-git/doc/guix.texi:33500
#, no-wrap
msgid "Services"
msgstr "Dienste"
#. type: menuentry
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
msgid "Specifying system services."
msgstr "Systemdienste festlegen."
#. type: section
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
-#: guix-git/doc/guix.texi:39784 guix-git/doc/guix.texi:39785
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
+#: guix-git/doc/guix.texi:39949 guix-git/doc/guix.texi:39950
#, no-wrap
msgid "Setuid Programs"
msgstr "Setuid-Programme"
#. type: menuentry
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
msgid "Programs running with elevated privileges."
msgstr "Mit erhöhten Berechtigungen startende Programme."
#. type: section
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:2151
-#: guix-git/doc/guix.texi:16833 guix-git/doc/guix.texi:39871
-#: guix-git/doc/guix.texi:39872
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:2159
+#: guix-git/doc/guix.texi:16824 guix-git/doc/guix.texi:40036
+#: guix-git/doc/guix.texi:40037
#, no-wrap
msgid "X.509 Certificates"
msgstr "X.509-Zertifikate"
#. type: menuentry
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
msgid "Authenticating HTTPS servers."
msgstr "HTTPS-Server authentifizieren."
#. type: section
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:2046
-#: guix-git/doc/guix.texi:16833 guix-git/doc/guix.texi:39935
-#: guix-git/doc/guix.texi:39936
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:2054
+#: guix-git/doc/guix.texi:16824 guix-git/doc/guix.texi:40100
+#: guix-git/doc/guix.texi:40101
#, no-wrap
msgid "Name Service Switch"
msgstr "Name Service Switch"
#. type: menuentry
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
msgid "Configuring libc's name service switch."
msgstr "Den Name Service Switch von libc konfigurieren."
#. type: section
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
-#: guix-git/doc/guix.texi:40073 guix-git/doc/guix.texi:40074
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
+#: guix-git/doc/guix.texi:40238 guix-git/doc/guix.texi:40239
#, no-wrap
msgid "Initial RAM Disk"
msgstr "Initiale RAM-Disk"
#. type: menuentry
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
msgid "Linux-Libre bootstrapping."
msgstr "Linux-libre hochfahren."
#. type: section
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
-#: guix-git/doc/guix.texi:40280 guix-git/doc/guix.texi:40281
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
+#: guix-git/doc/guix.texi:40445 guix-git/doc/guix.texi:40446
#, no-wrap
msgid "Bootloader Configuration"
msgstr "Bootloader-Konfiguration"
#. type: menuentry
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
msgid "Configuring the boot loader."
msgstr "Den Bootloader konfigurieren."
#. type: node
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
-#: guix-git/doc/guix.texi:40667
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
+#: guix-git/doc/guix.texi:40832
#, no-wrap
msgid "Invoking guix system"
msgstr "Aufruf von guix system"
#. type: menuentry
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
msgid "Instantiating a system configuration."
msgstr "Instanziierung einer Systemkonfiguration."
#. type: node
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
-#: guix-git/doc/guix.texi:41314
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
+#: guix-git/doc/guix.texi:41479
#, no-wrap
msgid "Invoking guix deploy"
msgstr "Aufruf von guix deploy"
#. type: menuentry
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
msgid "Deploying a system configuration to a remote host."
msgstr "Eine Systemkonfiguration auf einen entfernten Rechner aufspielen."
#. type: node
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
-#: guix-git/doc/guix.texi:41555
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
+#: guix-git/doc/guix.texi:41720
#, no-wrap
msgid "Running Guix in a VM"
msgstr "Guix in einer VM starten"
#. type: menuentry
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
msgid "How to run Guix System in a virtual machine."
msgstr "Wie man „Guix System“ in einer virtuellen Maschine startet."
#. type: section
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:423
-#: guix-git/doc/guix.texi:16833 guix-git/doc/guix.texi:41690
-#: guix-git/doc/guix.texi:41691
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:419
+#: guix-git/doc/guix.texi:16824 guix-git/doc/guix.texi:41855
+#: guix-git/doc/guix.texi:41856
#, no-wrap
msgid "Defining Services"
msgstr "Dienste definieren"
#. type: menuentry
-#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:16833
+#: guix-git/doc/guix.texi:373 guix-git/doc/guix.texi:16824
msgid "Adding new service definitions."
msgstr "Neue Dienstdefinitionen hinzufügen."
#. type: subsection
-#: guix-git/doc/guix.texi:381 guix-git/doc/guix.texi:17578
-#: guix-git/doc/guix.texi:17580 guix-git/doc/guix.texi:17581
+#: guix-git/doc/guix.texi:377 guix-git/doc/guix.texi:17586
+#: guix-git/doc/guix.texi:17588 guix-git/doc/guix.texi:17589
#, no-wrap
msgid "Btrfs file system"
msgstr "Btrfs-Dateisystem"
#. type: subsection
-#: guix-git/doc/guix.texi:421 guix-git/doc/guix.texi:18579
-#: guix-git/doc/guix.texi:18581 guix-git/doc/guix.texi:18582
+#: guix-git/doc/guix.texi:417 guix-git/doc/guix.texi:18587
+#: guix-git/doc/guix.texi:18589 guix-git/doc/guix.texi:18590
#, no-wrap
msgid "Base Services"
msgstr "Basisdienste"
#. type: menuentry
-#: guix-git/doc/guix.texi:421 guix-git/doc/guix.texi:18579
+#: guix-git/doc/guix.texi:417 guix-git/doc/guix.texi:18587
msgid "Essential system services."
msgstr "Essenzielle Systemdienste."
#. type: subsection
-#: guix-git/doc/guix.texi:421 guix-git/doc/guix.texi:18579
-#: guix-git/doc/guix.texi:19854 guix-git/doc/guix.texi:19855
+#: guix-git/doc/guix.texi:417 guix-git/doc/guix.texi:18587
+#: guix-git/doc/guix.texi:19893 guix-git/doc/guix.texi:19894
#, no-wrap
msgid "Scheduled Job Execution"
msgstr "Geplante Auftragsausführung"
#. type: menuentry
-#: guix-git/doc/guix.texi:421 guix-git/doc/guix.texi:18579
+#: guix-git/doc/guix.texi:417 guix-git/doc/guix.texi:18587
msgid "The mcron service."
msgstr "Der mcron-Dienst."
#. type: subsection
-#: guix-git/doc/guix.texi:421 guix-git/doc/guix.texi:18579
-#: guix-git/doc/guix.texi:20028 guix-git/doc/guix.texi:20029
+#: guix-git/doc/guix.texi:417 guix-git/doc/guix.texi:18587
+#: guix-git/doc/guix.texi:20067 guix-git/doc/guix.texi:20068
#, no-wrap
msgid "Log Rotation"
msgstr "Log-Rotation"
#. type: menuentry
-#: guix-git/doc/guix.texi:421 guix-git/doc/guix.texi:18579
+#: guix-git/doc/guix.texi:417 guix-git/doc/guix.texi:18587
msgid "The rottlog service."
msgstr "Der rottlog-Dienst."
#. type: subsection
-#: guix-git/doc/guix.texi:421 guix-git/doc/guix.texi:18579
-#: guix-git/doc/guix.texi:20249 guix-git/doc/guix.texi:20250
+#: guix-git/doc/guix.texi:417 guix-git/doc/guix.texi:18587
+#: guix-git/doc/guix.texi:20288 guix-git/doc/guix.texi:20289
#, no-wrap
msgid "Networking Setup"
msgstr "Netzwerkeinrichtung"
#. type: menuentry
-#: guix-git/doc/guix.texi:421 guix-git/doc/guix.texi:18579
+#: guix-git/doc/guix.texi:417 guix-git/doc/guix.texi:18587
msgid "Setting up network interfaces."
msgstr "Netzwerkschnittstellen verbinden."
#. type: subsection
-#: guix-git/doc/guix.texi:421 guix-git/doc/guix.texi:18579
-#: guix-git/doc/guix.texi:20694 guix-git/doc/guix.texi:20695
+#: guix-git/doc/guix.texi:417 guix-git/doc/guix.texi:18587
+#: guix-git/doc/guix.texi:20788 guix-git/doc/guix.texi:20789
#, no-wrap
msgid "Networking Services"
msgstr "Netzwerkdienste"
#. type: menuentry
-#: guix-git/doc/guix.texi:421 guix-git/doc/guix.texi:18579
+#: guix-git/doc/guix.texi:417 guix-git/doc/guix.texi:18587
msgid "Firewall, SSH daemon, etc."
msgstr "Firewall, SSH-Daemon etc."
#. type: subsection
-#: guix-git/doc/guix.texi:421 guix-git/doc/guix.texi:18579
-#: guix-git/doc/guix.texi:22168 guix-git/doc/guix.texi:22169
+#: guix-git/doc/guix.texi:417 guix-git/doc/guix.texi:18587
+#: guix-git/doc/guix.texi:22262 guix-git/doc/guix.texi:22263
#, no-wrap
msgid "Unattended Upgrades"
msgstr "Unbeaufsichtigte Aktualisierungen"
#. type: menuentry
-#: guix-git/doc/guix.texi:421 guix-git/doc/guix.texi:18579
+#: guix-git/doc/guix.texi:417 guix-git/doc/guix.texi:18587
msgid "Automated system upgrades."
msgstr "Automatische Systemaktualisierungen."
#. type: subsection
-#: guix-git/doc/guix.texi:421 guix-git/doc/guix.texi:18579
-#: guix-git/doc/guix.texi:22317 guix-git/doc/guix.texi:22318
+#: guix-git/doc/guix.texi:417 guix-git/doc/guix.texi:18587
+#: guix-git/doc/guix.texi:22411 guix-git/doc/guix.texi:22412
#, no-wrap
msgid "X Window"
msgstr "X Window"
#. type: menuentry
-#: guix-git/doc/guix.texi:421 guix-git/doc/guix.texi:18579
+#: guix-git/doc/guix.texi:417 guix-git/doc/guix.texi:18587
msgid "Graphical display."
msgstr "Grafische Anzeige."
#. type: subsection
-#: guix-git/doc/guix.texi:421 guix-git/doc/guix.texi:18579
-#: guix-git/doc/guix.texi:22956 guix-git/doc/guix.texi:22957
+#: guix-git/doc/guix.texi:417 guix-git/doc/guix.texi:18587
+#: guix-git/doc/guix.texi:23050 guix-git/doc/guix.texi:23051
#, no-wrap
msgid "Printing Services"
msgstr "Druckdienste"
#. type: menuentry
-#: guix-git/doc/guix.texi:421 guix-git/doc/guix.texi:18579
+#: guix-git/doc/guix.texi:417 guix-git/doc/guix.texi:18587