summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build-aux/build-self.scm28
-rw-r--r--etc/teams/qt/qt5-manifest.scm4
-rw-r--r--gnu.scm12
-rw-r--r--gnu/artwork.scm10
-rw-r--r--gnu/bootloader/grub.scm12
-rw-r--r--gnu/build/activation.scm16
-rw-r--r--gnu/build/chromium-extension.scm12
-rw-r--r--gnu/build/cross-toolchain.scm12
-rw-r--r--gnu/build/file-systems.scm14
-rw-r--r--gnu/build/hurd-boot.scm13
-rw-r--r--gnu/build/install.scm18
-rw-r--r--gnu/build/linux-boot.scm18
-rw-r--r--gnu/build/linux-initrd.scm16
-rw-r--r--gnu/build/linux-modules.scm12
-rw-r--r--gnu/build/marionette.scm22
-rw-r--r--gnu/build/secret-service.scm18
-rw-r--r--gnu/build/shepherd.scm14
-rw-r--r--gnu/ci.scm12
-rw-r--r--gnu/home.scm16
-rw-r--r--gnu/home/services.scm106
-rw-r--r--gnu/home/services/fontutils.scm18
-rw-r--r--gnu/home/services/mcron.scm14
-rw-r--r--gnu/home/services/music.scm12
-rw-r--r--gnu/home/services/shells.scm12
-rw-r--r--gnu/home/services/symlink-manager.scm15
-rw-r--r--gnu/home/services/xdg.scm22
-rw-r--r--gnu/installer/connman.scm16
-rw-r--r--gnu/installer/newt/page.scm22
-rw-r--r--gnu/installer/tests.scm22
-rw-r--r--gnu/machine.scm18
-rw-r--r--gnu/machine/digital-ocean.scm14
-rw-r--r--gnu/machine/hetzner.scm12
-rw-r--r--gnu/machine/hetzner/http.scm12
-rw-r--r--gnu/machine/ssh.scm18
-rw-r--r--gnu/packages.scm14
-rw-r--r--gnu/packages/avr.scm22
-rw-r--r--gnu/packages/base.scm12
-rw-r--r--gnu/packages/bootstrap.scm15
-rw-r--r--gnu/packages/commencement.scm44
-rw-r--r--gnu/packages/cross-toolchain.scm10
-rw-r--r--gnu/packages/dbm.scm10
-rw-r--r--gnu/packages/duckdb.scm15
-rw-r--r--gnu/packages/embedded.scm17
-rw-r--r--gnu/packages/gnome-circle.scm2
-rw-r--r--gnu/packages/golang-apps.scm23
-rw-r--r--gnu/packages/golang-build.scm25
-rw-r--r--gnu/packages/golang-check.scm19
-rw-r--r--gnu/packages/golang-compression.scm11
-rw-r--r--gnu/packages/golang-crypto.scm19
-rw-r--r--gnu/packages/golang-graphics.scm11
-rw-r--r--gnu/packages/golang-maths.scm11
-rw-r--r--gnu/packages/golang-vcs.scm11
-rw-r--r--gnu/packages/golang-web.scm25
-rw-r--r--gnu/packages/golang-xyz.scm27
-rw-r--r--gnu/packages/guile.scm12
-rw-r--r--gnu/packages/ld-wrapper.in12
-rw-r--r--gnu/packages/make-bootstrap.scm16
-rw-r--r--gnu/packages/prometheus.scm17
-rw-r--r--gnu/packages/python-build.scm16
-rw-r--r--gnu/packages/python-graphics.scm17
-rw-r--r--gnu/packages/quantum.scm13
-rw-r--r--gnu/packages/ruby-check.scm11
-rw-r--r--gnu/packages/sqlite.scm12
-rw-r--r--gnu/packages/tex.scm140
-rw-r--r--gnu/packages/toys.scm11
-rw-r--r--gnu/services.scm50
-rw-r--r--gnu/services/admin.scm14
-rw-r--r--gnu/services/audio.scm12
-rw-r--r--gnu/services/avahi.scm14
-rw-r--r--gnu/services/base.scm14
-rw-r--r--gnu/services/certbot.scm12
-rw-r--r--gnu/services/cgit.scm20
-rw-r--r--gnu/services/ci.scm14
-rw-r--r--gnu/services/configuration.scm12
-rw-r--r--gnu/services/cuirass.scm14
-rw-r--r--gnu/services/cups.scm12
-rw-r--r--gnu/services/databases.scm12
-rw-r--r--gnu/services/desktop.scm12
-rw-r--r--gnu/services/getmail.scm12
-rw-r--r--gnu/services/guix.scm12
-rw-r--r--gnu/services/herd.scm18
-rw-r--r--gnu/services/hurd.scm12
-rw-r--r--gnu/services/lirc.scm12
-rw-r--r--gnu/services/mail.scm14
-rw-r--r--gnu/services/mcron.scm30
-rw-r--r--gnu/services/messaging.scm12
-rw-r--r--gnu/services/networking.scm12
-rw-r--r--gnu/services/nix.scm12
-rw-r--r--gnu/services/rsync.scm14
-rw-r--r--gnu/services/shepherd.scm13
-rw-r--r--gnu/services/sound.scm12
-rw-r--r--gnu/services/ssh.scm14
-rw-r--r--gnu/services/syncthing.scm12
-rw-r--r--gnu/services/upnp.scm12
-rw-r--r--gnu/services/version-control.scm12
-rw-r--r--gnu/services/web.scm12
-rw-r--r--gnu/services/xorg.scm12
-rw-r--r--gnu/system.scm12
-rw-r--r--gnu/system/accounts.scm17
-rw-r--r--gnu/system/file-systems.scm18
-rw-r--r--gnu/system/hurd.scm14
-rw-r--r--gnu/system/images/visionfive2.scm24
-rw-r--r--gnu/system/install.scm14
-rw-r--r--gnu/system/keyboard.scm16
-rw-r--r--gnu/system/linux-initrd.scm15
-rw-r--r--gnu/system/locale.scm12
-rw-r--r--gnu/system/mapped-devices.scm14
-rw-r--r--gnu/system/nss.scm12
-rw-r--r--gnu/system/pam.scm12
-rw-r--r--gnu/system/privilege.scm16
-rw-r--r--gnu/system/setuid.scm16
-rw-r--r--gnu/system/shadow.scm12
-rw-r--r--gnu/system/vm.scm12
-rw-r--r--gnu/tests.scm18
-rw-r--r--gnu/tests/image.scm22
-rw-r--r--gnu/tests/install.scm14
-rw-r--r--gnu/tests/linux-modules.scm12
-rw-r--r--gnu/tests/package-management.scm12
-rw-r--r--gnu/tests/reconfigure.scm14
-rw-r--r--guix/amd-gpu.scm12
-rw-r--r--guix/android-repo-download.scm18
-rw-r--r--guix/base32.scm14
-rw-r--r--guix/build-system/channel.scm16
-rw-r--r--guix/build/android-repo.scm12
-rw-r--r--guix/build/bournish.scm16
-rw-r--r--guix/build/bzr.scm8
-rw-r--r--guix/build/compile.scm12
-rw-r--r--guix/build/cvs.scm12
-rw-r--r--guix/build/debug-link.scm28
-rw-r--r--guix/build/download-nar.scm18
-rw-r--r--guix/build/download.scm12
-rw-r--r--guix/build/elm-build-system.scm40
-rw-r--r--guix/build/emacs-utils.scm14
-rw-r--r--guix/build/git.scm14
-rw-r--r--guix/build/gnu-dist.scm12
-rw-r--r--guix/build/graft.scm28
-rw-r--r--guix/build/gremlin.scm14
-rw-r--r--guix/build/hg.scm12
-rw-r--r--guix/build/lisp-utils.scm16
-rw-r--r--guix/build/pack.scm18
-rw-r--r--guix/build/profiles.scm14
-rw-r--r--guix/build/pyproject-build-system.scm47
-rw-r--r--guix/build/store-copy.scm18
-rw-r--r--guix/build/svn.scm10
-rw-r--r--guix/build/syscalls.scm38
-rw-r--r--guix/build/union.scm14
-rw-r--r--guix/bzr-download.scm16
-rw-r--r--guix/cache.scm14
-rw-r--r--guix/channels.scm26
-rw-r--r--guix/ci.scm14
-rw-r--r--guix/colors.scm12
-rw-r--r--guix/combinators.scm14
-rw-r--r--guix/config.scm.in14
-rw-r--r--guix/cpio.scm14
-rw-r--r--guix/cpu.scm14
-rw-r--r--guix/cve.scm16
-rw-r--r--guix/cvs-download.scm18
-rw-r--r--guix/deprecation.scm12
-rw-r--r--guix/describe.scm20
-rw-r--r--guix/diagnostics.scm14
-rw-r--r--guix/discovery.scm14
-rw-r--r--guix/download.scm12
-rw-r--r--guix/ftp-client.scm12
-rw-r--r--guix/gexp.scm34
-rw-r--r--guix/git-authenticate.scm18
-rw-r--r--guix/git-download.scm16
-rw-r--r--guix/glob.scm14
-rw-r--r--guix/gnu-maintenance.scm14
-rw-r--r--guix/gnupg.scm12
-rw-r--r--guix/graph.scm20
-rw-r--r--guix/hg-download.scm16
-rw-r--r--guix/http-client.scm14
-rw-r--r--guix/i18n.scm12
-rw-r--r--guix/import/apache.scm16
-rw-r--r--guix/import/cpan.scm14
-rw-r--r--guix/import/cran.scm16
-rw-r--r--guix/import/egg.scm46
-rw-r--r--guix/import/git.scm36
-rw-r--r--guix/import/gnome.scm16
-rw-r--r--guix/import/gnu.scm14
-rw-r--r--guix/import/go.scm72
-rw-r--r--guix/import/kde.scm16
-rw-r--r--guix/import/test.scm14
-rw-r--r--guix/import/texlive.scm16
-rw-r--r--guix/inferior.scm16
-rw-r--r--guix/ipfs.scm16
-rw-r--r--guix/least-authority.scm14
-rw-r--r--guix/licenses.scm26
-rw-r--r--guix/man-db.scm20
-rw-r--r--guix/modules.scm20
-rw-r--r--guix/monad-repl.scm14
-rw-r--r--guix/monads.scm24
-rw-r--r--guix/nar.scm12
-rw-r--r--guix/openpgp.scm28
-rw-r--r--guix/packages.scm14
-rw-r--r--guix/pki.scm18
-rw-r--r--guix/profiles.scm14
-rw-r--r--guix/profiling.scm12
-rw-r--r--guix/progress.scm12
-rw-r--r--guix/quirks.scm18
-rw-r--r--guix/read-print.scm14
-rw-r--r--guix/records.scm12
-rw-r--r--guix/remote-procedures.scm18
-rw-r--r--guix/remote.scm22
-rw-r--r--guix/repl.scm14
-rw-r--r--guix/rpm.scm16
-rw-r--r--guix/scripts.scm12
-rw-r--r--guix/scripts/authenticate.scm16
-rw-r--r--guix/scripts/challenge.scm24
-rw-r--r--guix/scripts/deploy.scm14
-rw-r--r--guix/scripts/git/authenticate.scm14
-rw-r--r--guix/scripts/home/import.scm14
-rw-r--r--guix/scripts/offload.scm24
-rw-r--r--guix/scripts/pack.scm16
-rw-r--r--guix/scripts/repl.scm12
-rwxr-xr-xguix/scripts/substitute.scm22
-rw-r--r--guix/scripts/system/installer.scm14
-rw-r--r--guix/scripts/system/reconfigure.scm20
-rw-r--r--guix/scripts/system/search.scm14
-rw-r--r--guix/search-paths.scm18
-rw-r--r--guix/serialization.scm15
-rw-r--r--guix/sets.scm22
-rw-r--r--guix/ssh.scm14
-rw-r--r--guix/status.scm20
-rw-r--r--guix/store/roots.scm14
-rw-r--r--guix/store/ssh.scm12
-rw-r--r--guix/svn-download.scm16
-rw-r--r--guix/swh.scm24
-rw-r--r--guix/tests.scm14
-rw-r--r--guix/tests/http.scm12
-rw-r--r--guix/transformations.scm16
-rw-r--r--guix/ui.scm20
-rw-r--r--guix/upstream.scm14
-rw-r--r--guix/workers.scm28
-rw-r--r--tests/services/vpn.scm12
235 files changed, 2050 insertions, 2031 deletions
diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm
index 942cf5f5346..96a288672a8 100644
--- a/build-aux/build-self.scm
+++ b/build-aux/build-self.scm
@@ -16,6 +16,20 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; When loaded, this module returns a monadic procedure of at least one
22;;; argument: the source tree to build. It returns a derivation that
23;;; builds it.
24;;;
25;;; This file uses modules provided by the already-installed Guix. Those
26;;; modules may be arbitrarily old compared to the version we want to
27;;; build. Because of that, it must rely on the smallest set of features
28;;; that are likely to be provided by the (guix) and (gnu) modules, and by
29;;; Guile itself, forever and ever.
30;;;
31;;; Code:
32
19(define-module (build-self) 33(define-module (build-self)
20 #:use-module (gnu) 34 #:use-module (gnu)
21 #:use-module (guix) 35 #:use-module (guix)
@@ -32,20 +46,6 @@
32 #:use-module (ice-9 popen) 46 #:use-module (ice-9 popen)
33 #:export (build)) 47 #:export (build))
34 48
35;;; Commentary:
36;;;
37;;; When loaded, this module returns a monadic procedure of at least one
38;;; argument: the source tree to build. It returns a derivation that
39;;; builds it.
40;;;
41;;; This file uses modules provided by the already-installed Guix. Those
42;;; modules may be arbitrarily old compared to the version we want to
43;;; build. Because of that, it must rely on the smallest set of features
44;;; that are likely to be provided by the (guix) and (gnu) modules, and by
45;;; Guile itself, forever and ever.
46;;;
47;;; Code:
48
49(define (date-version-string) 49(define (date-version-string)
50 "Return the current date and hour in UTC timezone, for use as a poor 50 "Return the current date and hour in UTC timezone, for use as a poor
51person's version identifier." 51person's version identifier."
diff --git a/etc/teams/qt/qt5-manifest.scm b/etc/teams/qt/qt5-manifest.scm
index 96f13d478d6..754ba2744ab 100644
--- a/etc/teams/qt/qt5-manifest.scm
+++ b/etc/teams/qt/qt5-manifest.scm
@@ -16,8 +16,6 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19(load "common.scm")
20
21;;; Commentary: 19;;; Commentary:
22;;; 20;;;
23;;; This manifest can be used to update the Qt 5 packages collection, via 21;;; This manifest can be used to update the Qt 5 packages collection, via
@@ -27,4 +25,6 @@
27;;; 25;;;
28;;; Code: 26;;; Code:
29 27
28(load "common.scm")
29
30(qt-packages-manifest #:major-version "5") 30(qt-packages-manifest #:major-version "5")
diff --git a/gnu.scm b/gnu.scm
index f139531ef3e..5230c68c522 100644
--- a/gnu.scm
+++ b/gnu.scm
@@ -18,6 +18,12 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21;;; Commentary:
22;;;
23;;; This composite module re-exports core parts the (gnu …) public modules.
24;;;
25;;; Code:
26
21(define-module (gnu) 27(define-module (gnu)
22 #:use-module (guix i18n) 28 #:use-module (guix i18n)
23 #:use-module (guix diagnostics) 29 #:use-module (guix diagnostics)
@@ -31,12 +37,6 @@
31 use-service-modules 37 use-service-modules
32 use-system-modules)) 38 use-system-modules))
33 39
34;;; Commentary:
35;;;
36;;; This composite module re-exports core parts the (gnu …) public modules.
37;;;
38;;; Code:
39
40(eval-when (eval load compile) 40(eval-when (eval load compile)
41 (begin 41 (begin
42 (define %public-modules 42 (define %public-modules
diff --git a/gnu/artwork.scm b/gnu/artwork.scm
index d3ab13b8af7..866af42a987 100644
--- a/gnu/artwork.scm
+++ b/gnu/artwork.scm
@@ -17,17 +17,17 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20(define-module (gnu artwork)
21 #:use-module (guix packages)
22 #:use-module (guix git-download)
23 #:export (%artwork-repository))
24
25;;; Commentary: 20;;; Commentary:
26;;; 21;;;
27;;; Common place for the definition of the Guix artwork repository. 22;;; Common place for the definition of the Guix artwork repository.
28;;; 23;;;
29;;; Code: 24;;; Code:
30 25
26(define-module (gnu artwork)
27 #:use-module (guix packages)
28 #:use-module (guix git-download)
29 #:export (%artwork-repository))
30
31(define %artwork-repository 31(define %artwork-repository
32 (let ((commit "08259679a0faef63e3ba169df5b937d836bd9262")) 32 (let ((commit "08259679a0faef63e3ba169df5b937d836bd9262"))
33 (origin 33 (origin
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index 79b9a1cac6f..a518c565700 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -27,6 +27,12 @@
27;;; You should have received a copy of the GNU General Public License 27;;; You should have received a copy of the GNU General Public License
28;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 28;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
29 29
30;;; Commentary:
31;;;
32;;; Configuration of GNU GRUB.
33;;;
34;;; Code:
35
30(define-module (gnu bootloader grub) 36(define-module (gnu bootloader grub)
31 #:use-module (guix build union) 37 #:use-module (guix build union)
32 #:use-module (guix deprecation) 38 #:use-module (guix deprecation)
@@ -73,12 +79,6 @@
73 79
74 grub-configuration)) 80 grub-configuration))
75 81
76;;; Commentary:
77;;;
78;;; Configuration of GNU GRUB.
79;;;
80;;; Code:
81
82(define* (normalize-file file mount-point store-directory-prefix) 82(define* (normalize-file file mount-point store-directory-prefix)
83 "Strip MOUNT-POINT and prepend STORE-DIRECTORY-PREFIX, if any, to FILE, a 83 "Strip MOUNT-POINT and prepend STORE-DIRECTORY-PREFIX, if any, to FILE, a
84G-expression or other lowerable object denoting a file name." 84G-expression or other lowerable object denoting a file name."
diff --git a/gnu/build/activation.scm b/gnu/build/activation.scm
index dbe35f41b88..516f9d86bbe 100644
--- a/gnu/build/activation.scm
+++ b/gnu/build/activation.scm
@@ -28,6 +28,14 @@
28;;; You should have received a copy of the GNU General Public License 28;;; You should have received a copy of the GNU General Public License
29;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 29;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
30 30
31;;; Commentary:
32;;;
33;;; This module provides "activation" helpers. Activation is the process that
34;;; consists in setting up system-wide files and directories so that an
35;;; 'operating-system' configuration becomes active.
36;;;
37;;; Code:
38
31(define-module (gnu build activation) 39(define-module (gnu build activation)
32 #:use-module (gnu system accounts) 40 #:use-module (gnu system accounts)
33 #:use-module (gnu system privilege) 41 #:use-module (gnu system privilege)
@@ -53,14 +61,6 @@
53 activate-current-system 61 activate-current-system
54 mkdir-p/perms)) 62 mkdir-p/perms))
55 63
56;;; Commentary:
57;;;
58;;; This module provides "activation" helpers. Activation is the process that
59;;; consists in setting up system-wide files and directories so that an
60;;; 'operating-system' configuration becomes active.
61;;;
62;;; Code:
63
64(define %skeleton-directory 64(define %skeleton-directory
65 ;; Directory containing skeleton files for new accounts. 65 ;; Directory containing skeleton files for new accounts.
66 ;; Note: keep the trailing '/' so that 'scandir' enters it. 66 ;; Note: keep the trailing '/' so that 'scandir' enters it.
diff --git a/gnu/build/chromium-extension.scm b/gnu/build/chromium-extension.scm
index 8171c727341..881cbbbcbc7 100644
--- a/gnu/build/chromium-extension.scm
+++ b/gnu/build/chromium-extension.scm
@@ -17,6 +17,12 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; Tools to deal with Chromium extensions.
23;;;
24;;; Code:
25
20(define-module (gnu build chromium-extension) 26(define-module (gnu build chromium-extension)
21 #:use-module (guix gexp) 27 #:use-module (guix gexp)
22 #:use-module (guix packages) 28 #:use-module (guix packages)
@@ -26,12 +32,6 @@
26 #:use-module (guix build-system trivial) 32 #:use-module (guix build-system trivial)
27 #:export (make-chromium-extension)) 33 #:export (make-chromium-extension))
28 34
29;;; Commentary:
30;;;
31;;; Tools to deal with Chromium extensions.
32;;;
33;;; Code:
34
35(define (make-signing-key seed) 35(define (make-signing-key seed)
36 "Return a derivation for a deterministic PKCS #8 private key using SEED." 36 "Return a derivation for a deterministic PKCS #8 private key using SEED."
37 (computed-file 37 (computed-file
diff --git a/gnu/build/cross-toolchain.scm b/gnu/build/cross-toolchain.scm
index da9016488f7..2246f45519d 100644
--- a/gnu/build/cross-toolchain.scm
+++ b/gnu/build/cross-toolchain.scm
@@ -21,6 +21,12 @@
21;;; You should have received a copy of the GNU General Public License 21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23 23
24;;; Commentary:
25;;;
26;;; This module provides tools to build a cross-compiler.
27;;;
28;;; Code:
29
24(define-module (gnu build cross-toolchain) 30(define-module (gnu build cross-toolchain)
25 #:use-module (guix build utils) 31 #:use-module (guix build utils)
26 #:use-module (guix build gnu-build-system) 32 #:use-module (guix build gnu-build-system)
@@ -30,12 +36,6 @@
30 #:use-module (ice-9 ftw) 36 #:use-module (ice-9 ftw)
31 #:export (cross-gcc-build-phases)) 37 #:export (cross-gcc-build-phases))
32 38
33;;; Commentary:
34;;;
35;;; This module provides tools to build a cross-compiler.
36;;;
37;;; Code:
38
39(define %gcc-include-paths 39(define %gcc-include-paths
40 ;; Environment variables for header search paths. 40 ;; Environment variables for header search paths.
41 ;; Note: See <http://bugs.gnu.org/22186> for why not 'CPATH'. 41 ;; Note: See <http://bugs.gnu.org/22186> for why not 'CPATH'.
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index f236efd9250..d7831767b45 100644
--- a/gnu/build/file-systems.scm
+++ b/gnu/build/file-systems.scm
@@ -26,6 +26,13 @@
26;;; You should have received a copy of the GNU General Public License 26;;; You should have received a copy of the GNU General Public License
27;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 27;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
28 28
29;;; Commentary:
30;;;
31;;; This modules provides tools to deal with disk partitions, and to mount and
32;;; check file systems.
33;;;
34;;; Code:
35
29(define-module (gnu build file-systems) 36(define-module (gnu build file-systems)
30 #:use-module (gnu system uuid) 37 #:use-module (gnu system uuid)
31 #:use-module (gnu system file-systems) 38 #:use-module (gnu system file-systems)
@@ -80,13 +87,6 @@
80 87
81 swap-space->flags-bit-mask)) 88 swap-space->flags-bit-mask))
82 89
83;;; Commentary:
84;;;
85;;; This modules provides tools to deal with disk partitions, and to mount and
86;;; check file systems.
87;;;
88;;; Code:
89
90(define (system*/console program . args) 90(define (system*/console program . args)
91 "Run PROGRAM with ARGS in a tty on top of /dev/console. The return value is 91 "Run PROGRAM with ARGS in a tty on top of /dev/console. The return value is
92as for 'system*'." 92as for 'system*'."
diff --git a/gnu/build/hurd-boot.scm b/gnu/build/hurd-boot.scm
index 67975bfa647..7de9f0ec63a 100644
--- a/gnu/build/hurd-boot.scm
+++ b/gnu/build/hurd-boot.scm
@@ -17,6 +17,13 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; This modules provides tools to deal with disk partitions, and to mount and
23;;; check file systems.
24;;;
25;;; Code:
26
20(define-module (gnu build hurd-boot) 27(define-module (gnu build hurd-boot)
21 #:use-module (system repl error-handling) 28 #:use-module (system repl error-handling)
22 #:autoload (system repl repl) (start-repl) 29 #:autoload (system repl repl) (start-repl)
@@ -29,12 +36,6 @@
29 #:export (make-hurd-device-nodes 36 #:export (make-hurd-device-nodes
30 boot-hurd-system)) 37 boot-hurd-system))
31 38
32;;; Commentary:
33;;;
34;;; Utility procedures useful to boot a Hurd system.
35;;;
36;;; Code:
37
38;; XXX FIXME c&p from linux-boot.scm 39;; XXX FIXME c&p from linux-boot.scm
39(define (find-long-option option arguments) 40(define (find-long-option option arguments)
40 "Find OPTION among ARGUMENTS, where OPTION is something like \"--load\". 41 "Find OPTION among ARGUMENTS, where OPTION is something like \"--load\".
diff --git a/gnu/build/install.scm b/gnu/build/install.scm
index 58ee77d1831..df9befe058a 100644
--- a/gnu/build/install.scm
+++ b/gnu/build/install.scm
@@ -19,6 +19,15 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; This module supports the installation of the GNU system on a hard disk.
25;;; It is meant to be used both in a build environment (in derivations that
26;;; build VM images), and on the bare metal (when really installing the
27;;; system.)
28;;;
29;;; Code:
30
22(define-module (gnu build install) 31(define-module (gnu build install)
23 #:use-module (guix build syscalls) 32 #:use-module (guix build syscalls)
24 #:use-module (guix build utils) 33 #:use-module (guix build utils)
@@ -33,15 +42,6 @@
33 mount-cow-store 42 mount-cow-store
34 unmount-cow-store)) 43 unmount-cow-store))
35 44
36;;; Commentary:
37;;;
38;;; This module supports the installation of the GNU system on a hard disk.
39;;; It is meant to be used both in a build environment (in derivations that
40;;; build VM images), and on the bare metal (when really installing the
41;;; system.)
42;;;
43;;; Code:
44
45(define (install-boot-config bootcfg bootcfg-location mount-point) 45(define (install-boot-config bootcfg bootcfg-location mount-point)
46 "Atomically copy BOOTCFG into BOOTCFG-LOCATION on the MOUNT-POINT. Note 46 "Atomically copy BOOTCFG into BOOTCFG-LOCATION on the MOUNT-POINT. Note
47that the caller must make sure that BOOTCFG is registered as a GC root so 47that the caller must make sure that BOOTCFG is registered as a GC root so
diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm
index e0743eae55a..c1a294db18c 100644
--- a/gnu/build/linux-boot.scm
+++ b/gnu/build/linux-boot.scm
@@ -20,6 +20,15 @@
20;;; You should have received a copy of the GNU General Public License 20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22 22
23;;; Commentary:
24;;;
25;;; Utility procedures useful in a Linux initial RAM disk (initrd). Note that
26;;; many of these use procedures not yet available in vanilla Guile (`mount',
27;;; `load-linux-module', etc.); these are provided by a Guile patch used in
28;;; the GNU distribution.
29;;;
30;;; Code:
31
23(define-module (gnu build linux-boot) 32(define-module (gnu build linux-boot)
24 #:use-module (rnrs io ports) 33 #:use-module (rnrs io ports)
25 #:use-module (system repl error-handling) 34 #:use-module (system repl error-handling)
@@ -67,15 +76,6 @@
67 76
68 read-linux-consoles)) 77 read-linux-consoles))
69 78
70;;; Commentary:
71;;;
72;;; Utility procedures useful in a Linux initial RAM disk (initrd). Note that
73;;; many of these use procedures not yet available in vanilla Guile (`mount',
74;;; `load-linux-module', etc.); these are provided by a Guile patch used in
75;;; the GNU distribution.
76;;;
77;;; Code:
78
79(define* (mount-essential-file-systems #:key (root "/")) 79(define* (mount-essential-file-systems #:key (root "/"))
80 "Mount /dev, /proc, and /sys under ROOT." 80 "Mount /dev, /proc, and /sys under ROOT."
81 (define (scope dir) 81 (define (scope dir)
diff --git a/gnu/build/linux-initrd.scm b/gnu/build/linux-initrd.scm
index bb2ed0db0c7..559f02fc2a0 100644
--- a/gnu/build/linux-initrd.scm
+++ b/gnu/build/linux-initrd.scm
@@ -16,6 +16,14 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; Tools to create Linux initial RAM disks ("initrds"). Initrds are
22;;; essentially gzipped cpio archives, with a '/init' executable that the
23;;; kernel runs at boot time.
24;;;
25;;; Code:
26
19(define-module (gnu build linux-initrd) 27(define-module (gnu build linux-initrd)
20 #:use-module ((guix cpio) #:prefix cpio:) 28 #:use-module ((guix cpio) #:prefix cpio:)
21 #:use-module (guix build utils) 29 #:use-module (guix build utils)
@@ -27,14 +35,6 @@
27 #:export (write-cpio-archive 35 #:export (write-cpio-archive
28 build-initrd)) 36 build-initrd))
29 37
30;;; Commentary:
31;;;
32;;; Tools to create Linux initial RAM disks ("initrds"). Initrds are
33;;; essentially gzipped cpio archives, with a '/init' executable that the
34;;; kernel runs at boot time.
35;;;
36;;; Code:
37
38(define* (write-cpio-archive output directory 38(define* (write-cpio-archive output directory
39 #:key 39 #:key
40 (compress? #t) 40 (compress? #t)
diff --git a/gnu/build/linux-modules.scm b/gnu/build/linux-modules.scm
index 6bf71100e49..ae0137e1c12 100644
--- a/gnu/build/linux-modules.scm
+++ b/gnu/build/linux-modules.scm
@@ -20,6 +20,12 @@
20;;; You should have received a copy of the GNU General Public License 20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22 22
23;;; Commentary:
24;;;
25;;; Tools to deal with Linux kernel modules.
26;;;
27;;; Code:
28
23(define-module (gnu build linux-modules) 29(define-module (gnu build linux-modules)
24 #:use-module (guix elf) 30 #:use-module (guix elf)
25 #:use-module (guix glob) 31 #:use-module (guix glob)
@@ -78,12 +84,6 @@
78 84
79 make-linux-module-directory)) 85 make-linux-module-directory))
80 86
81;;; Commentary:
82;;;
83;;; Tools to deal with Linux kernel modules.
84;;;
85;;; Code:
86
87(define current-module-debugging-port 87(define current-module-debugging-port
88 (make-parameter (%make-void-port "w"))) 88 (make-parameter (%make-void-port "w")))
89 89
diff --git a/gnu/build/marionette.scm b/gnu/build/marionette.scm
index 015fc8a98b7..b6d4ec0de9c 100644
--- a/gnu/build/marionette.scm
+++ b/gnu/build/marionette.scm
@@ -19,6 +19,17 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; Instrumentation tools for QEMU virtual machines (VMs). A "marionette" is
25;;; essentially a VM (a QEMU instance) with its monitor connected to a
26;;; Unix-domain socket, and with a REPL inside the guest listening on a
27;;; virtual console, which is itself connected to the host via a Unix-domain
28;;; socket--these are the marionette's strings, connecting it to the almighty
29;;; puppeteer.
30;;;
31;;; Code:
32
22(define-module (gnu build marionette) 33(define-module (gnu build marionette)
23 #:use-module (srfi srfi-9) 34 #:use-module (srfi srfi-9)
24 #:use-module (srfi srfi-26) 35 #:use-module (srfi srfi-26)
@@ -44,17 +55,6 @@
44 system-test-runner 55 system-test-runner
45 qemu-command)) 56 qemu-command))
46 57
47;;; Commentary:
48;;;
49;;; Instrumentation tools for QEMU virtual machines (VMs). A "marionette" is
50;;; essentially a VM (a QEMU instance) with its monitor connected to a
51;;; Unix-domain socket, and with a REPL inside the guest listening on a
52;;; virtual console, which is itself connected to the host via a Unix-domain
53;;; socket--these are the marionette's strings, connecting it to the almighty
54;;; puppeteer.
55;;;
56;;; Code:
57
58(define-record-type <marionette> 58(define-record-type <marionette>
59 (marionette command pid monitor repl) 59 (marionette command pid monitor repl)
60 marionette? 60 marionette?
diff --git a/gnu/build/secret-service.scm b/gnu/build/secret-service.scm
index 5447563cd94..0c8a0c7677b 100644
--- a/gnu/build/secret-service.scm
+++ b/gnu/build/secret-service.scm
@@ -17,6 +17,15 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; Utility procedures for copying secrets into a VM.
23;;;
24;;; Note: This code runs within the 'shepherd' process, hence the use of
25;;; Fibers.
26;;;
27;;; Code:
28
20(define-module (gnu build secret-service) 29(define-module (gnu build secret-service)
21 #:autoload (fibers io-wakeup) (wait-until-port-readable-operation) 30 #:autoload (fibers io-wakeup) (wait-until-port-readable-operation)
22 #:autoload (fibers operations) (perform-operation 31 #:autoload (fibers operations) (perform-operation
@@ -33,15 +42,6 @@
33 #:export (secret-service-receive-secrets 42 #:export (secret-service-receive-secrets
34 secret-service-send-secrets)) 43 secret-service-send-secrets))
35 44
36;;; Commentary:
37;;;
38;;; Utility procedures for copying secrets into a VM.
39;;;
40;;; Note: This code runs within the 'shepherd' process, hence the use of
41;;; Fibers.
42;;;
43;;; Code:
44
45(define-syntax log 45(define-syntax log
46 (lambda (s) 46 (lambda (s)
47 "Log the given message." 47 "Log the given message."
diff --git a/gnu/build/shepherd.scm b/gnu/build/shepherd.scm
index 4ead27be0be..26f75e5d533 100644
--- a/gnu/build/shepherd.scm
+++ b/gnu/build/shepherd.scm
@@ -19,6 +19,13 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; This module provides extensions to the GNU Shepherd. In particular, it
25;;; provides a helper to start services in a container.
26;;;
27;;; Code:
28
22(define-module (gnu build shepherd) 29(define-module (gnu build shepherd)
23 #:use-module (gnu system file-systems) 30 #:use-module (gnu system file-systems)
24 #:use-module (gnu build linux-container) 31 #:use-module (gnu build linux-container)
@@ -35,13 +42,6 @@
35 #:export (default-mounts 42 #:export (default-mounts
36 fork+exec-command/container)) 43 fork+exec-command/container))
37 44
38;;; Commentary:
39;;;
40;;; This module provides extensions to the GNU Shepherd. In particular, it
41;;; provides a helper to start services in a container.
42;;;
43;;; Code:
44
45(define (clean-up file) 45(define (clean-up file)
46 (when file 46 (when file
47 (catch 'system-error 47 (catch 'system-error
diff --git a/gnu/ci.scm b/gnu/ci.scm
index a55dfc2a5f3..83f3ff21e34 100644
--- a/gnu/ci.scm
+++ b/gnu/ci.scm
@@ -20,6 +20,12 @@
20;;; You should have received a copy of the GNU General Public License 20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22 22
23;;; Commentary:
24;;;
25;;; This file defines build jobs for Cuirass.
26;;;
27;;; Code:
28
23(define-module (gnu ci) 29(define-module (gnu ci)
24 #:use-module (guix build-system channel) 30 #:use-module (guix build-system channel)
25 #:use-module (guix config) 31 #:use-module (guix config)
@@ -82,12 +88,6 @@
82 arguments->systems 88 arguments->systems
83 cuirass-jobs)) 89 cuirass-jobs))
84 90
85;;; Commentary:
86;;;
87;;; This file defines build jobs for Cuirass.
88;;;
89;;; Code:
90
91(define* (derivation->job name drv 91(define* (derivation->job name drv
92 #:key 92 #:key
93 (max-silent-time 3600) 93 (max-silent-time 3600)
diff --git a/gnu/home.scm b/gnu/home.scm
index f0dd4a19273..40abe49191e 100644
--- a/gnu/home.scm
+++ b/gnu/home.scm
@@ -17,6 +17,14 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; This module provides a <home-environment> record for managing
23;;; per-user packages and configuration files in the similar way as
24;;; <operating-system> do for system packages and configuration files.
25;;;
26;;; Code:
27
20(define-module (gnu home) 28(define-module (gnu home)
21 #:use-module (gnu home services) 29 #:use-module (gnu home services)
22 #:use-module (gnu home services symlink-manager) 30 #:use-module (gnu home services symlink-manager)
@@ -50,14 +58,6 @@
50 58
51 %base-home-services)) 59 %base-home-services))
52 60
53;;; Comment:
54;;;
55;;; This module provides a <home-environment> record for managing
56;;; per-user packages and configuration files in the similar way as
57;;; <operating-system> do for system packages and configuration files.
58;;;
59;;; Code:
60
61(define-record-type* <home-environment> home-environment 61(define-record-type* <home-environment> home-environment
62 make-home-environment 62 make-home-environment
63 home-environment? 63 home-environment?
diff --git a/gnu/home/services.scm b/gnu/home/services.scm
index f7d0ff08228..06f872e6460 100644
--- a/gnu/home/services.scm
+++ b/gnu/home/services.scm
@@ -20,6 +20,59 @@
20;;; You should have received a copy of the GNU General Public License 20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22 22
23;;; Commentary:
24;;;
25;;; This module is similar to (gnu system services) module, but
26;;; provides Home Services, which are supposed to be used for building
27;;; home-environment.
28;;;
29;;; Home Services use the same extension as System Services. Consult
30;;; (gnu system services) module or manual for more information.
31;;;
32;;; home-service-type is a root of home services DAG.
33;;;
34;;; home-profile-service-type is almost the same as profile-service-type, at least
35;;; for now.
36;;;
37;;; home-environment-variables-service-type generates a @file{setup-environment}
38;;; shell script, which is expected to be sourced by login shell or other program,
39;;; which starts early and spawns all other processes. Home services for shells
40;;; automatically add code for sourcing this file, if person do not use those home
41;;; services they have to source this script manually in their's shell *profile
42;;; file (details described in the manual).
43;;;
44;;; home-files-service-type is similar to etc-service-type, but doesn't extend
45;;; home-activation, because deploy mechanism for config files is pluggable
46;;; and can be different for different home environments: The default one is
47;;; called symlink-manager, which creates links for various dotfiles and xdg
48;;; configuration files to store, but is possible to implement alternative
49;;; approaches like read-only home from Julien's guix-home-manager.
50;;;
51;;; home-run-on-first-login-service-type provides an @file{on-first-login} guile
52;;; script, which runs provided gexps once, when user makes first login. It can
53;;; be used to start user's Shepherd and maybe some other process. It relies on
54;;; assumption that /run/user/$UID will be created on login by some login
55;;; manager (elogind for example).
56;;;
57;;; home-activation-service-type provides an @file{activate} guile script, which
58;;; do three main things:
59;;;
60;;; - Sets environment variables to the values declared in
61;;; @file{setup-environment} shell script. It's necessary, because user can set
62;;; for example XDG_CONFIG_HOME and it should be respected by activation gexp of
63;;; symlink-manager.
64;;;
65;;; - Sets GUIX_NEW_HOME and possibly GUIX_OLD_HOME vars to paths in the store.
66;;; Later those variables can be used by activation gexps, for example by
67;;; symlink-manager or run-on-change services.
68;;;
69;;; - Run all activation gexps provided by other home services.
70;;;
71;;; home-run-on-change-service-type allows to trigger actions during
72;;; activation if file or directory specified by pattern is changed.
73;;;
74;;; Code:
75
23(define-module (gnu home services) 76(define-module (gnu home services)
24 #:use-module (gnu services) 77 #:use-module (gnu services)
25 #:use-module ((gnu packages package-management) #:select (guix)) 78 #:use-module ((gnu packages package-management) #:select (guix))
@@ -81,59 +134,6 @@
81 for-home 134 for-home
82 for-home?)) 135 for-home?))
83 136
84;;; Comment:
85;;;
86;;; This module is similar to (gnu system services) module, but
87;;; provides Home Services, which are supposed to be used for building
88;;; home-environment.
89;;;
90;;; Home Services use the same extension as System Services. Consult
91;;; (gnu system services) module or manual for more information.
92;;;
93;;; home-service-type is a root of home services DAG.
94;;;
95;;; home-profile-service-type is almost the same as profile-service-type, at least
96;;; for now.
97;;;
98;;; home-environment-variables-service-type generates a @file{setup-environment}
99;;; shell script, which is expected to be sourced by login shell or other program,
100;;; which starts early and spawns all other processes. Home services for shells
101;;; automatically add code for sourcing this file, if person do not use those home
102;;; services they have to source this script manually in their's shell *profile
103;;; file (details described in the manual).
104;;;
105;;; home-files-service-type is similar to etc-service-type, but doesn't extend
106;;; home-activation, because deploy mechanism for config files is pluggable
107;;; and can be different for different home environments: The default one is
108;;; called symlink-manager, which creates links for various dotfiles and xdg
109;;; configuration files to store, but is possible to implement alternative
110;;; approaches like read-only home from Julien's guix-home-manager.
111;;;
112;;; home-run-on-first-login-service-type provides an @file{on-first-login} guile
113;;; script, which runs provided gexps once, when user makes first login. It can
114;;; be used to start user's Shepherd and maybe some other process. It relies on
115;;; assumption that /run/user/$UID will be created on login by some login
116;;; manager (elogind for example).
117;;;
118;;; home-activation-service-type provides an @file{activate} guile script, which
119;;; do three main things:
120;;;
121;;; - Sets environment variables to the values declared in
122;;; @file{setup-environment} shell script. It's necessary, because user can set
123;;; for example XDG_CONFIG_HOME and it should be respected by activation gexp of
124;;; symlink-manager.
125;;;
126;;; - Sets GUIX_NEW_HOME and possibly GUIX_OLD_HOME vars to paths in the store.
127;;; Later those variables can be used by activation gexps, for example by
128;;; symlink-manager or run-on-change services.
129;;;
130;;; - Run all activation gexps provided by other home services.
131;;;
132;;; home-run-on-change-service-type allows to trigger actions during
133;;; activation if file or directory specified by pattern is changed.
134;;;
135;;; Code:
136
137 137
138(define (home-derivation entries mextensions) 138(define (home-derivation entries mextensions)
139 "Return as a monadic value the derivation of the 'home' 139 "Return as a monadic value the derivation of the 'home'
diff --git a/gnu/home/services/fontutils.scm b/gnu/home/services/fontutils.scm
index 083cdd4b569..ee5cfda9938 100644
--- a/gnu/home/services/fontutils.scm
+++ b/gnu/home/services/fontutils.scm
@@ -19,6 +19,15 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; Services related to fonts. home-fontconfig service provides
25;;; fontconfig configuration, which allows fc-* utilities to find
26;;; fonts in Guix Home's profile and regenerates font cache on
27;;; activation.
28;;;
29;;; Code:
30
22(define-module (gnu home services fontutils) 31(define-module (gnu home services fontutils)
23 #:use-module (gnu home services) 32 #:use-module (gnu home services)
24 #:use-module (gnu packages fontutils) 33 #:use-module (gnu packages fontutils)
@@ -29,15 +38,6 @@
29 38
30 #:export (home-fontconfig-service-type)) 39 #:export (home-fontconfig-service-type))
31 40
32;;; Commentary:
33;;;
34;;; Services related to fonts. home-fontconfig service provides
35;;; fontconfig configuration, which allows fc-* utilities to find
36;;; fonts in Guix Home's profile and regenerates font cache on
37;;; activation.
38;;;
39;;; Code:
40
41(define (write-fontconfig-doctype) 41(define (write-fontconfig-doctype)
42 "Prints fontconfig's DOCTYPE to current-output-port." 42 "Prints fontconfig's DOCTYPE to current-output-port."
43 ;; This is necessary because SXML doesn't seem to have a way to represent a doctype, 43 ;; This is necessary because SXML doesn't seem to have a way to represent a doctype,
diff --git a/gnu/home/services/mcron.scm b/gnu/home/services/mcron.scm
index eab6b9bda44..2e012ddeb41 100644
--- a/gnu/home/services/mcron.scm
+++ b/gnu/home/services/mcron.scm
@@ -19,13 +19,6 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22(define-module (gnu home services mcron)
23 #:use-module (gnu home services)
24 #:use-module (gnu home services shepherd)
25 #:use-module (gnu services mcron) ;for the service mapping
26 #:export (home-mcron-configuration
27 home-mcron-service-type))
28
29;;; Commentary: 22;;; Commentary:
30;; 23;;
31;; Service for the GNU mcron cron job manager. 24;; Service for the GNU mcron cron job manager.
@@ -49,6 +42,13 @@
49;; 42;;
50;;; Code: 43;;; Code:
51 44
45(define-module (gnu home services mcron)
46 #:use-module (gnu home services)
47 #:use-module (gnu home services shepherd)
48 #:use-module (gnu services mcron) ;for the service mapping
49 #:export (home-mcron-configuration
50 home-mcron-service-type))
51
52(define-syntax-rule (home-mcron-configuration fields ...) 52(define-syntax-rule (home-mcron-configuration fields ...)
53 ;; Macro provided for backward compatibility. 53 ;; Macro provided for backward compatibility.
54 (for-home (mcron-configuration fields ...))) 54 (for-home (mcron-configuration fields ...)))
diff --git a/gnu/home/services/music.scm b/gnu/home/services/music.scm
index 3813ea230e4..86ec82fb359 100644
--- a/gnu/home/services/music.scm
+++ b/gnu/home/services/music.scm
@@ -16,6 +16,12 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; A Guix Home service to configure Beets, a music file and metadata manager.
22;;;
23;;; Code:
24
19(define-module (gnu home services music) 25(define-module (gnu home services music)
20 #:use-module (guix gexp) 26 #:use-module (guix gexp)
21 #:use-module (guix records) 27 #:use-module (guix records)
@@ -25,12 +31,6 @@
25 #:export (home-beets-configuration 31 #:export (home-beets-configuration
26 home-beets-service-type)) 32 home-beets-service-type))
27 33
28;;; Commentary:
29;;;
30;;; A Guix Home service to configure Beets, a music file and metadata manager.
31;;;
32;;; Code:
33
34(define-record-type* <home-beets-configuration> 34(define-record-type* <home-beets-configuration>
35 home-beets-configuration make-home-beets-configuration 35 home-beets-configuration make-home-beets-configuration
36 home-beets-configuration? 36 home-beets-configuration?
diff --git a/gnu/home/services/shells.scm b/gnu/home/services/shells.scm
index b4299957b01..242a2980bda 100644
--- a/gnu/home/services/shells.scm
+++ b/gnu/home/services/shells.scm
@@ -19,6 +19,12 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; This module contains shell related services like Zsh.
25;;;
26;;; Code:
27
22(define-module (gnu home services shells) 28(define-module (gnu home services shells)
23 #:use-module (gnu services configuration) 29 #:use-module (gnu services configuration)
24 #:use-module ((gnu services) #:select (%default-bash-aliases)) 30 #:use-module ((gnu services) #:select (%default-bash-aliases))
@@ -52,12 +58,6 @@
52 home-inputrc-service-type 58 home-inputrc-service-type
53 home-inputrc-configuration)) 59 home-inputrc-configuration))
54 60
55;;; Commentary:
56;;;
57;;; This module contains shell related services like Zsh.
58;;;
59;;; Code:
60
61 61
62;;; 62;;;
63;;; Shell profile. 63;;; Shell profile.
diff --git a/gnu/home/services/symlink-manager.scm b/gnu/home/services/symlink-manager.scm
index 9f46f07e860..d11d3cdfe6f 100644
--- a/gnu/home/services/symlink-manager.scm
+++ b/gnu/home/services/symlink-manager.scm
@@ -19,13 +19,7 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22(define-module (gnu home services symlink-manager) 22;;; Commentary:
23 #:use-module (gnu home services)
24 #:use-module (guix gexp)
25 #:use-module (guix modules)
26 #:export (home-symlink-manager-service-type))
27
28;;; Comment:
29;;; 23;;;
30;;; symlink-manager cares about xdg configurations and other files: it backs 24;;; symlink-manager cares about xdg configurations and other files: it backs
31;;; up files created by user, removes symlinks and directories created by a 25;;; up files created by user, removes symlinks and directories created by a
@@ -35,6 +29,13 @@
35;;; 29;;;
36;;; Code: 30;;; Code:
37 31
32(define-module (gnu home services symlink-manager)
33 #:use-module (gnu home services)
34 #:use-module (guix gexp)
35 #:use-module (guix modules)
36 #:export (home-symlink-manager-service-type))
37
38
38(define (update-symlinks-script) 39(define (update-symlinks-script)
39 (program-file 40 (program-file
40 "update-symlinks" 41 "update-symlinks"
diff --git a/gnu/home/services/xdg.scm b/gnu/home/services/xdg.scm
index 04bf2ed4184..6342bb47297 100644
--- a/gnu/home/services/xdg.scm
+++ b/gnu/home/services/xdg.scm
@@ -19,6 +19,17 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;
24;; This module contains services related to XDG directories and
25;; applications.
26;;
27;; - XDG base directories
28;; - XDG user directories
29;; - XDG MIME applications
30;;
31;;; Code:
32
22(define-module (gnu home services xdg) 33(define-module (gnu home services xdg)
23 #:use-module (gnu services configuration) 34 #:use-module (gnu services configuration)
24 #:use-module (gnu home services) 35 #:use-module (gnu home services)
@@ -62,17 +73,6 @@
62 home-xdg-mime-applications-service-type 73 home-xdg-mime-applications-service-type
63 home-xdg-mime-applications-configuration)) 74 home-xdg-mime-applications-configuration))
64 75
65;;; Commentary:
66;;
67;; This module contains services related to XDG directories and
68;; applications.
69;;
70;; - XDG base directories
71;; - XDG user directories
72;; - XDG MIME applications
73;;
74;;; Code:
75
76 76
77;;; 77;;;
78;;; XDG base directories. 78;;; XDG base directories.
diff --git a/gnu/installer/connman.scm b/gnu/installer/connman.scm
index d21272036f7..f1d631517f2 100644
--- a/gnu/installer/connman.scm
+++ b/gnu/installer/connman.scm
@@ -16,6 +16,14 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module provides procedures for talking with the connman daemon.
22;;; The best approach would have been using connman dbus interface.
23;;; However, as Guile dbus bindings are not available yet, the console client
24;;; "connmanctl" is used to talk with the daemon.
25;;;
26
19(define-module (gnu installer connman) 27(define-module (gnu installer connman)
20 #:use-module (gnu installer utils) 28 #:use-module (gnu installer utils)
21 #:use-module (guix records) 29 #:use-module (guix records)
@@ -70,14 +78,6 @@
70 connman-online? 78 connman-online?
71 connman-connect-with-auth)) 79 connman-connect-with-auth))
72 80
73;;; Commentary:
74;;;
75;;; This module provides procedures for talking with the connman daemon.
76;;; The best approach would have been using connman dbus interface.
77;;; However, as Guile dbus bindings are not available yet, the console client
78;;; "connmanctl" is used to talk with the daemon.
79;;;
80
81 81
82;;; 82;;;
83;;; Technology record. 83;;; Technology record.
diff --git a/gnu/installer/newt/page.scm b/gnu/installer/newt/page.scm
index c4414fc97ab..e798f4dbcfa 100644
--- a/gnu/installer/newt/page.scm
+++ b/gnu/installer/newt/page.scm
@@ -19,6 +19,17 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; Some helpers around guile-newt to draw or run generic pages. The
25;;; difference between 'draw' and 'run' terms comes from newt library. A page
26;;; is drawn when the form it contains does not expect any user
27;;; interaction. In that case, it is necessary to call (newt-refresh) to force
28;;; the page to be displayed. When a form is 'run', it is blocked waiting for
29;;; any action from the user (press a button, input some text, ...).
30;;;
31;;; Code:
32
22(define-module (gnu installer newt page) 33(define-module (gnu installer newt page)
23 #:use-module (gnu installer steps) 34 #:use-module (gnu installer steps)
24 #:use-module (gnu installer utils) 35 #:use-module (gnu installer utils)
@@ -52,17 +63,6 @@
52 63
53 run-form-with-clients)) 64 run-form-with-clients))
54 65
55;;; Commentary:
56;;;
57;;; Some helpers around guile-newt to draw or run generic pages. The
58;;; difference between 'draw' and 'run' terms comes from newt library. A page
59;;; is drawn when the form it contains does not expect any user
60;;; interaction. In that case, it is necessary to call (newt-refresh) to force
61;;; the page to be displayed. When a form is 'run', it is blocked waiting for
62;;; any action from the user (press a button, input some text, ...).
63;;;
64;;; Code:
65
66(define* (watch-clients! form #:optional (clients (current-clients))) 66(define* (watch-clients! form #:optional (clients (current-clients)))
67 "Have FORM watch the file descriptors corresponding to current client 67 "Have FORM watch the file descriptors corresponding to current client
68connections. Consequently, FORM may exit with the 'exit-fd-ready' reason." 68connections. Consequently, FORM may exit with the 'exit-fd-ready' reason."
diff --git a/gnu/installer/tests.scm b/gnu/installer/tests.scm
index a9a5d5d9880..b315176ff4c 100644
--- a/gnu/installer/tests.scm
+++ b/gnu/installer/tests.scm
@@ -18,6 +18,17 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21;;; Commentary:
22;;;
23;;; This module provides tools to test the guided "graphical" installer in a
24;;; non-interactive fashion. The core of it is 'converse': it allows you to
25;;; state Expect-style dialogues, which happen over the Unix-domain socket the
26;;; installer listens to. Higher-level procedures such as
27;;; 'choose-locale+keyboard' are provided to perform specific parts of the
28;;; dialogue.
29;;;
30;;; Code:
31
21(define-module (gnu installer tests) 32(define-module (gnu installer tests)
22 #:use-module (srfi srfi-1) 33 #:use-module (srfi srfi-1)
23 #:use-module (srfi srfi-34) 34 #:use-module (srfi srfi-34)
@@ -44,17 +55,6 @@
44 55
45 edit-configuration-file)) 56 edit-configuration-file))
46 57
47;;; Commentary:
48;;;
49;;; This module provides tools to test the guided "graphical" installer in a
50;;; non-interactive fashion. The core of it is 'converse': it allows you to
51;;; state Expect-style dialogues, which happen over the Unix-domain socket the
52;;; installer listens to. Higher-level procedures such as
53;;; 'choose-locale+keyboard' are provided to perform specific parts of the
54;;; dialogue.
55;;;
56;;; Code:
57
58(define %installer-socket-file 58(define %installer-socket-file
59 ;; Socket the installer listens to. 59 ;; Socket the installer listens to.
60 "/var/guix/installer-socket") 60 "/var/guix/installer-socket")
diff --git a/gnu/machine.scm b/gnu/machine.scm
index 60be6749727..def1aacb55b 100644
--- a/gnu/machine.scm
+++ b/gnu/machine.scm
@@ -17,6 +17,15 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; This module provides the types used to declare individual machines in a
23;;; heterogeneous Guix deployment. The interface allows users to specify system
24;;; configurations and the means by which resources should be provisioned on a
25;;; per-host basis.
26;;;
27;;; Code:
28
20(define-module (gnu machine) 29(define-module (gnu machine)
21 #:use-module (gnu system) 30 #:use-module (gnu system)
22 #:use-module (guix derivations) 31 #:use-module (guix derivations)
@@ -48,15 +57,6 @@
48 deploy-error-should-roll-back 57 deploy-error-should-roll-back
49 deploy-error-captured-args)) 58 deploy-error-captured-args))
50 59
51;;; Commentary:
52;;;
53;;; This module provides the types used to declare individual machines in a
54;;; heterogeneous Guix deployment. The interface allows users to specify system
55;;; configurations and the means by which resources should be provisioned on a
56;;; per-host basis.
57;;;
58;;; Code:
59
60 60
61;;; 61;;;
62;;; Declarations for resources that can be provisioned. 62;;; Declarations for resources that can be provisioned.
diff --git a/gnu/machine/digital-ocean.scm b/gnu/machine/digital-ocean.scm
index d0f0bbe4cb6..f88d140900c 100644
--- a/gnu/machine/digital-ocean.scm
+++ b/gnu/machine/digital-ocean.scm
@@ -19,6 +19,13 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; This module implements a high-level interface for provisioning "droplets"
25;;; from the Digital Ocean virtual private server (VPS) service.
26;;;
27;;; Code:
28
22(define-module (gnu machine digital-ocean) 29(define-module (gnu machine digital-ocean)
23 #:use-module (gnu machine ssh) 30 #:use-module (gnu machine ssh)
24 #:use-module (gnu machine) 31 #:use-module (gnu machine)
@@ -63,13 +70,6 @@
63 70
64 digital-ocean-environment-type)) 71 digital-ocean-environment-type))
65 72
66;;; Commentary:
67;;;
68;;; This module implements a high-level interface for provisioning "droplets"
69;;; from the Digital Ocean virtual private server (VPS) service.
70;;;
71;;; Code:
72
73(define %api-base "https://api.digitalocean.com") 73(define %api-base "https://api.digitalocean.com")
74 74
75(define %digital-ocean-token 75(define %digital-ocean-token
diff --git a/gnu/machine/hetzner.scm b/gnu/machine/hetzner.scm
index b4858fa3d26..148e3139b19 100644
--- a/gnu/machine/hetzner.scm
+++ b/gnu/machine/hetzner.scm
@@ -19,6 +19,12 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; This module implements a high-level interface for provisioning machines on
25;;; the Hetzner Cloud service https://docs.hetzner.cloud.
26;;;
27
22(define-module (gnu machine hetzner) 28(define-module (gnu machine hetzner)
23 #:use-module (gnu bootloader grub) 29 #:use-module (gnu bootloader grub)
24 #:use-module (gnu bootloader) 30 #:use-module (gnu bootloader)
@@ -91,12 +97,6 @@
91 hetzner-configuration? 97 hetzner-configuration?
92 hetzner-environment-type)) 98 hetzner-environment-type))
93 99
94;;; Commentary:
95;;;
96;;; This module implements a high-level interface for provisioning machines on
97;;; the Hetzner Cloud service https://docs.hetzner.cloud.
98;;;
99
100 100
101;;; 101;;;
102;;; Hetzner operating systems. 102;;; Hetzner operating systems.
diff --git a/gnu/machine/hetzner/http.scm b/gnu/machine/hetzner/http.scm
index f8580021a9e..6702a755351 100644
--- a/gnu/machine/hetzner/http.scm
+++ b/gnu/machine/hetzner/http.scm
@@ -17,6 +17,12 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; This module implements a lower-level interface for interacting with the
23;;; Hetzner Cloud API https://docs.hetzner.cloud.
24;;;
25
20(define-module (gnu machine hetzner http) 26(define-module (gnu machine hetzner http)
21 #:use-module (guix diagnostics) 27 #:use-module (guix diagnostics)
22 #:use-module (guix i18n) 28 #:use-module (guix i18n)
@@ -179,12 +185,6 @@
179 make-hetzner-server-type 185 make-hetzner-server-type
180 make-hetzner-ssh-key)) 186 make-hetzner-ssh-key))
181 187
182;;; Commentary:
183;;;
184;;; This module implements a lower-level interface for interacting with the
185;;; Hetzner Cloud API https://docs.hetzner.cloud.
186;;;
187
188(define %hetzner-default-api-token 188(define %hetzner-default-api-token
189 (make-parameter (getenv "GUIX_HETZNER_API_TOKEN"))) 189 (make-parameter (getenv "GUIX_HETZNER_API_TOKEN")))
190 190
diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm
index 0ce28602363..d8c634000f7 100644
--- a/gnu/machine/ssh.scm
+++ b/gnu/machine/ssh.scm
@@ -19,6 +19,15 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; This module implements remote evaluation and system deployment for
25;;; machines that are accessible over SSH and have a known host-name. In the
26;;; sense of the broader "machine" interface, we describe the environment for
27;;; such machines as 'managed-host.
28;;;
29;;; Code:
30
22(define-module (gnu machine ssh) 31(define-module (gnu machine ssh)
23 #:use-module (gnu bootloader) 32 #:use-module (gnu bootloader)
24 #:use-module (gnu machine) 33 #:use-module (gnu machine)
@@ -70,15 +79,6 @@
70 machine-ssh-configuration-host-key 79 machine-ssh-configuration-host-key
71 machine-ssh-configuration-session)) 80 machine-ssh-configuration-session))
72 81
73;;; Commentary:
74;;;
75;;; This module implements remote evaluation and system deployment for
76;;; machines that are accessible over SSH and have a known host-name. In the
77;;; sense of the broader "machine" interface, we describe the environment for
78;;; such machines as 'managed-host.
79;;;
80;;; Code:
81
82 82
83;;; 83;;;
84;;; Parameters for the SSH client. 84;;; Parameters for the SSH client.
diff --git a/gnu/packages.scm b/gnu/packages.scm
index 8d40e3e3352..b0283cade61 100644
--- a/gnu/packages.scm
+++ b/gnu/packages.scm
@@ -21,6 +21,13 @@
21;;; You should have received a copy of the GNU General Public License 21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23 23
24;;; Commentary:
25;;;
26;;; General utilities for the software distribution---i.e., the modules under
27;;; (gnu packages ...).
28;;;
29;;; Code:
30
24(define-module (gnu packages) 31(define-module (gnu packages)
25 #:use-module (guix packages) 32 #:use-module (guix packages)
26 #:use-module (guix ui) 33 #:use-module (guix ui)
@@ -74,13 +81,6 @@
74 81
75 generate-package-cache)) 82 generate-package-cache))
76 83
77;;; Commentary:
78;;;
79;;; General utilities for the software distribution---i.e., the modules under
80;;; (gnu packages ...).
81;;;
82;;; Code:
83
84;; By default, we store patches and auxiliary files 84;; By default, we store patches and auxiliary files
85;; alongside Guile modules. This is so that these extra files can be 85;; alongside Guile modules. This is so that these extra files can be
86;; found without requiring a special setup, such as a specific 86;; found without requiring a special setup, such as a specific
diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm
index c445f3a83af..2c8c9486d1b 100644
--- a/gnu/packages/avr.scm
+++ b/gnu/packages/avr.scm
@@ -21,6 +21,17 @@
21;;; You should have received a copy of the GNU General Public License 21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23 23
24;;; Commentary:
25;;;
26;;; This module defines a procedure that can be used to create a complete
27;;; avr-toolchain package. The procedure must not be used at the top level,
28;;; to avoid cyclic module dependencies caused by the (gnu packages
29;;; cross-base) module referring to top level bindings from (gnu packages
30;;; gcc).
31;;;
32;;; It also contains packages for working with or targeting the AVR system.
33;;;
34
24(define-module (gnu packages avr) 35(define-module (gnu packages avr)
25 #:use-module ((guix licenses) #:prefix license:) 36 #:use-module ((guix licenses) #:prefix license:)
26 #:use-module (guix gexp) 37 #:use-module (guix gexp)
@@ -36,17 +47,6 @@
36 #:export (make-avr-libc 47 #:export (make-avr-libc
37 make-avr-toolchain)) 48 make-avr-toolchain))
38 49
39;;; Commentary:
40;;;
41;;; This module defines a procedure that can be used to create a complete
42;;; avr-toolchain package. The procedure must not be used at the top level,
43;;; to avoid cyclic module dependencies caused by the (gnu packages
44;;; cross-base) module referring to top level bindings from (gnu packages
45;;; gcc).
46;;;
47;;; It also contains packages for working with or targeting the AVR system.
48;;;
49
50(define make-avr-binutils 50(define make-avr-binutils
51 (mlambda () 51 (mlambda ()
52 (package 52 (package
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index e7d0d2e406c..6fa024b2168 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -40,6 +40,12 @@
40;;; You should have received a copy of the GNU General Public License 40;;; You should have received a copy of the GNU General Public License
41;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 41;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
42 42
43;;; Commentary:
44;;;
45;;; Base packages of the Guix-based GNU user-land software distribution.
46;;;
47;;; Code:
48
43(define-module (gnu packages base) 49(define-module (gnu packages base)
44 #:use-module ((guix licenses) 50 #:use-module ((guix licenses)
45 #:select (gpl3+ lgpl2.0+ lgpl3+ public-domain)) 51 #:select (gpl3+ lgpl2.0+ lgpl3+ public-domain))
@@ -90,12 +96,6 @@
90 canonical-package 96 canonical-package
91 %final-inputs)) 97 %final-inputs))
92 98
93;;; Commentary:
94;;;
95;;; Base packages of the Guix-based GNU user-land software distribution.
96;;;
97;;; Code:
98
99(define-public hello 99(define-public hello
100 (package 100 (package
101 (name "hello") 101 (name "hello")
diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index 5555098973c..2fc70210635 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -23,6 +23,13 @@
23;;; You should have received a copy of the GNU General Public License 23;;; You should have received a copy of the GNU General Public License
24;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 24;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
25 25
26;;; Commentary:
27;;;
28;;; Pre-built packages that are used to bootstrap the
29;;; distribution--i.e., to build all the core packages from scratch.
30;;;
31;;; Code:
32
26(define-module (gnu packages bootstrap) 33(define-module (gnu packages bootstrap)
27 #:use-module (guix licenses) 34 #:use-module (guix licenses)
28 #:use-module (gnu packages) 35 #:use-module (gnu packages)
@@ -64,14 +71,6 @@
64 71
65 %bootstrap-inputs-for-tests)) 72 %bootstrap-inputs-for-tests))
66 73
67;;; Commentary:
68;;;
69;;; Pre-built packages that are used to bootstrap the
70;;; distribution--i.e., to build all the core packages from scratch.
71;;;
72;;; Code:
73
74
75 74
76;;; 75;;;
77;;; The bootstrap executables: 'bash', 'mkdir', 'tar', 'xz'. They allow us to 76;;; The bootstrap executables: 'bash', 'mkdir', 'tar', 'xz'. They allow us to
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 8ebcb405975..990930a0073 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -32,6 +32,28 @@
32;;; You should have received a copy of the GNU General Public License 32;;; You should have received a copy of the GNU General Public License
33;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 33;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
34 34
35;;; Commentary:
36;;;
37;;; This is the commencement, this is where things start. Before the
38;;; commencement, of course, there's the 'bootstrap' module, which provides us
39;;; with the initial binaries. This module uses those bootstrap binaries to
40;;; actually build up the whole tool chain that make up the implicit inputs of
41;;; 'gnu-build-system'.
42;;;
43;;; To avoid circular dependencies, this module should not be imported
44;;; directly from anywhere.
45;;;
46;;; Below, we frequently use "inherit" to create modified packages. The
47;;; reason why we use "inherit" instead of "package/inherit" is because we do
48;;; not want these commencement packages to inherit grafts. By definition,
49;;; these packages are not depended on at run time by any of the packages we
50;;; use. Thus it does not make sense to inherit grafts. Furthermore, those
51;;; grafts would often lead to extra overhead for users who would end up
52;;; downloading those "-boot0" packages just to build package replacements
53;;; that are in fact not going to be used.
54;;;
55;;; Code:
56
35(define-module (gnu packages commencement) 57(define-module (gnu packages commencement)
36 #:use-module (gnu packages) 58 #:use-module (gnu packages)
37 #:use-module (gnu packages bootstrap) 59 #:use-module (gnu packages bootstrap)
@@ -76,28 +98,6 @@
76 #:use-module (ice-9 vlist) 98 #:use-module (ice-9 vlist)
77 #:use-module (ice-9 match)) 99 #:use-module (ice-9 match))
78 100
79;;; Commentary:
80;;;
81;;; This is the commencement, this is where things start. Before the
82;;; commencement, of course, there's the 'bootstrap' module, which provides us
83;;; with the initial binaries. This module uses those bootstrap binaries to
84;;; actually build up the whole tool chain that make up the implicit inputs of
85;;; 'gnu-build-system'.
86;;;
87;;; To avoid circular dependencies, this module should not be imported
88;;; directly from anywhere.
89;;;
90;;; Below, we frequently use "inherit" to create modified packages. The
91;;; reason why we use "inherit" instead of "package/inherit" is because we do
92;;; not want these commencement packages to inherit grafts. By definition,
93;;; these packages are not depended on at run time by any of the packages we
94;;; use. Thus it does not make sense to inherit grafts. Furthermore, those
95;;; grafts would often lead to extra overhead for users who would end up
96;;; downloading those "-boot0" packages just to build package replacements
97;;; that are in fact not going to be used.
98;;;
99;;; Code:
100
101(define built-in-builders* 101(define built-in-builders*
102 (store-lift built-in-builders)) 102 (store-lift built-in-builders))
103 103
diff --git a/gnu/packages/cross-toolchain.scm b/gnu/packages/cross-toolchain.scm
index 733f7e601fe..9f3ecd87af0 100644
--- a/gnu/packages/cross-toolchain.scm
+++ b/gnu/packages/cross-toolchain.scm
@@ -16,11 +16,6 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19(define-module (gnu packages cross-toolchain)
20 #:use-module (gnu packages cross-base)
21 #:use-module (gnu packages gcc)
22 #:use-module (guix packages))
23
24;;; Commentary: 19;;; Commentary:
25;;; 20;;;
26;;; This module provides packages for cross compilation toolchains. These 21;;; This module provides packages for cross compilation toolchains. These
@@ -33,6 +28,11 @@
33;;; compilation methods. For example, by using the `#:target' argument on 28;;; compilation methods. For example, by using the `#:target' argument on
34;;; packages or `--target' on the command line. 29;;; packages or `--target' on the command line.
35 30
31(define-module (gnu packages cross-toolchain)
32 #:use-module (gnu packages cross-base)
33 #:use-module (gnu packages gcc)
34 #:use-module (guix packages))
35
36(define-public gcc-cross-avr-toolchain 36(define-public gcc-cross-avr-toolchain
37 (cross-gcc-toolchain "avr")) 37 (cross-gcc-toolchain "avr"))
38 38
diff --git a/gnu/packages/dbm.scm b/gnu/packages/dbm.scm
index e203d22e1ca..21af128411f 100644
--- a/gnu/packages/dbm.scm
+++ b/gnu/packages/dbm.scm
@@ -26,6 +26,11 @@
26;;; You should have received a copy of the GNU General Public License 26;;; You should have received a copy of the GNU General Public License
27;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 27;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
28 28
29;;; Commentary:
30;;;
31;;; This module has been separated from (gnu packages databases) to reduce the
32;;; number of module references for core packages.
33
29(define-module (gnu packages dbm) 34(define-module (gnu packages dbm)
30 #:use-module (gnu packages) 35 #:use-module (gnu packages)
31 #:use-module (gnu packages autotools) 36 #:use-module (gnu packages autotools)
@@ -37,11 +42,6 @@
37 #:use-module (guix utils) 42 #:use-module (guix utils)
38 #:use-module (ice-9 match)) 43 #:use-module (ice-9 match))
39 44
40;;; Commentary:
41;;;
42;;; This module has been separated from (gnu packages databases) to reduce the
43;;; number of module references for core packages.
44
45(define bdb-snippet 45(define bdb-snippet
46 ;; Remove some bundled and generated files. Some of the old 46 ;; Remove some bundled and generated files. Some of the old
47 ;; Autotools files are too old for some architectures 47 ;; Autotools files are too old for some architectures
diff --git a/gnu/packages/duckdb.scm b/gnu/packages/duckdb.scm
index 4a3edf99f21..50da727239b 100644
--- a/gnu/packages/duckdb.scm
+++ b/gnu/packages/duckdb.scm
@@ -21,6 +21,14 @@
21;;; You should have received a copy of the GNU General Public License 21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23 23
24;;; Commentary:
25;;;
26;;; This module contains DuckDB - an analytical in-process SQL database
27;;; management system (https://www.duckdb.org/) and it's binding in different
28;;; programming languages with other related to DuckDB packages.
29;;;
30;;; Code:
31
24(define-module (gnu packages duckdb) 32(define-module (gnu packages duckdb)
25 #:use-module ((guix licenses) #:prefix license:) 33 #:use-module ((guix licenses) #:prefix license:)
26 #:use-module (guix build-system cmake) 34 #:use-module (guix build-system cmake)
@@ -43,13 +51,6 @@
43 #:use-module (gnu packages statistics) 51 #:use-module (gnu packages statistics)
44 #:use-module (gnu packages time)) 52 #:use-module (gnu packages time))
45 53
46;;; Commentary:
47;;;
48;;; This module contains DuckDB - an analytical in-process SQL database
49;;; management system (https://www.duckdb.org/) and it's binding in different
50;;; programming languages with other related to DuckDB packages.
51;;;
52;;; Code:
53 54
54(define %duckdb-version "1.5.3") 55(define %duckdb-version "1.5.3")
55 56
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index d163ac5a57f..43bb77ae022 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -32,6 +32,15 @@
32;;; You should have received a copy of the GNU General Public License 32;;; You should have received a copy of the GNU General Public License
33;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 33;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
34 34
35;;; Commentary:
36;;;
37;;; This modules contains toolchain generators as well as packages for use in
38;;; embedded contexts. Note: the toolchain and specialized packages are
39;;; procedures, so as to delay their references to top level bindings such as
40;;; 'gcc' or 'cross-gcc', etc.
41;;;
42;;; Code:
43
35(define-module (gnu packages embedded) 44(define-module (gnu packages embedded)
36 #:use-module (guix utils) 45 #:use-module (guix utils)
37 #:use-module (guix packages) 46 #:use-module (guix packages)
@@ -121,14 +130,6 @@
121 make-propeller-gcc-6 130 make-propeller-gcc-6
122 make-propeller-toolchain)) 131 make-propeller-toolchain))
123 132
124;;; Commentary:
125;;;
126;;; This modules contains toolchain generators as well as packages for use in
127;;; embedded contexts. Note: the toolchain and specialized packages are
128;;; procedures, so as to delay their references to top level bindings such as
129;;; 'gcc' or 'cross-gcc', etc.
130;;;
131
132;; We must not use the released GCC sources here, because the cross-compiler 133;; We must not use the released GCC sources here, because the cross-compiler
133;; does not produce working binaries. Instead we take the very same SVN 134;; does not produce working binaries. Instead we take the very same SVN
134;; revision from the branch that is used for a release of the "GCC ARM 135;; revision from the branch that is used for a release of the "GCC ARM
diff --git a/gnu/packages/gnome-circle.scm b/gnu/packages/gnome-circle.scm
index 04f195180b5..1e294f55a24 100644
--- a/gnu/packages/gnome-circle.scm
+++ b/gnu/packages/gnome-circle.scm
@@ -25,7 +25,7 @@
25;;; You should have received a copy of the GNU General Public License 25;;; You should have received a copy of the GNU General Public License
26;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 26;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
27 27
28;;; Comment: 28;;; Commentary:
29 29
30;;; This module is for packages that are part of GNOME Circle 30;;; This module is for packages that are part of GNOME Circle
31;;; <https://circle.gnome.org/>. 31;;; <https://circle.gnome.org/>.
diff --git a/gnu/packages/golang-apps.scm b/gnu/packages/golang-apps.scm
index 9b856d23b5b..80ad63d8535 100644
--- a/gnu/packages/golang-apps.scm
+++ b/gnu/packages/golang-apps.scm
@@ -21,6 +21,18 @@
21;;; You should have received a copy of the GNU General Public License 21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23 23
24;;; Commentary:
25;;;
26;;; Golang (Go) specific applications which are not inherited from their
27;;; source live here e.g linters, language servers, REPL implementations etc.
28;;;
29;;; If the <cmd/APP> is inherited from its source place it in corresponded
30;;; golang-*.scm file in the end after the section "Executables".
31;;;
32;;; Please: Try to add new variable in alphabetical order.
33;;;
34;;; Code:
35
24(define-module (gnu packages golang-apps) 36(define-module (gnu packages golang-apps)
25 #:use-module (guix build-system go) 37 #:use-module (guix build-system go)
26 #:use-module (guix gexp) 38 #:use-module (guix gexp)
@@ -34,17 +46,6 @@
34 #:use-module (gnu packages golang-web) 46 #:use-module (gnu packages golang-web)
35 #:use-module (gnu packages golang-xyz)) 47 #:use-module (gnu packages golang-xyz))
36 48
37;;; Commentary:
38;;;
39;;; Golang (Go) specific applications which are not inherited from their
40;;; source live here e.g linters, language servers, REPL implementations etc.
41;;;
42;;; If the <cmd/APP> is inherited from its source place it in corresponded
43;;; golang-*.scm file in the end after the section "Executables".
44;;;
45;;; Please: Try to add new variable in alphabetical order.
46;;;
47;;; Code:
48 49
49(define-public go-chroma 50(define-public go-chroma
50 (package 51 (package
diff --git a/gnu/packages/golang-build.scm b/gnu/packages/golang-build.scm
index 9e744c50c3a..70d99a41a77 100644
--- a/gnu/packages/golang-build.scm
+++ b/gnu/packages/golang-build.scm
@@ -37,18 +37,6 @@
37;;; You should have received a copy of the GNU General Public License 37;;; You should have received a copy of the GNU General Public License
38;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 38;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
39 39
40(define-module (gnu packages golang-build)
41 #:use-module ((guix licenses) #:prefix license:)
42 #:use-module (guix build-system go)
43 #:use-module (guix gexp)
44 #:use-module (guix git-download)
45 #:use-module (guix packages)
46 #:use-module (guix utils)
47 #:use-module (gnu packages)
48 #:use-module (gnu packages audio)
49 #:use-module (gnu packages gl)
50 #:use-module (gnu packages golang))
51
52;;; Commentary: 40;;; Commentary:
53;;; 41;;;
54;;; Modules (libraries) which are part of the Golang project but outside the 42;;; Modules (libraries) which are part of the Golang project but outside the
@@ -61,6 +49,19 @@
61;;; Please: Try to add new module packages in alphabetic order. 49;;; Please: Try to add new module packages in alphabetic order.
62;;; 50;;;
63;;; Code: 51;;; Code:
52
53(define-module (gnu packages golang-build)
54 #:use-module ((guix licenses) #:prefix license:)
55 #:use-module (guix build-system go)
56 #:use-module (guix gexp)
57 #:use-module (guix git-download)
58 #:use-module (guix packages)
59 #:use-module (guix utils)
60 #:use-module (gnu packages)
61 #:use-module (gnu packages audio)
62 #:use-module (gnu packages gl)
63 #:use-module (gnu packages golang))
64
64 65
65(define-public go-cel-dev-expr 66(define-public go-cel-dev-expr
66 (package 67 (package
diff --git a/gnu/packages/golang-check.scm b/gnu/packages/golang-check.scm
index b3ef530bf22..d05e0ee2c59 100644
--- a/gnu/packages/golang-check.scm
+++ b/gnu/packages/golang-check.scm
@@ -45,6 +45,16 @@
45;;; You should have received a copy of the GNU General Public License 45;;; You should have received a copy of the GNU General Public License
46;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 46;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
47 47
48;;; Commentary:
49;;;
50;;; Golang packages providing tools to unit-test, mock, assert, and lint
51;;; processes for the Golang itself. They may provide executables and
52;;; libraries, for which there are marked sections.
53;;;
54;;; Please: Try to add new module packages in alphabetic order.
55;;;
56;;; Code:
57
48(define-module (gnu packages golang-check) 58(define-module (gnu packages golang-check)
49 #:use-module ((guix licenses) #:prefix license:) 59 #:use-module ((guix licenses) #:prefix license:)
50 #:use-module (guix packages) 60 #:use-module (guix packages)
@@ -59,15 +69,6 @@
59 #:use-module (gnu packages golang-xyz) 69 #:use-module (gnu packages golang-xyz)
60 #:use-module (gnu packages version-control)) 70 #:use-module (gnu packages version-control))
61 71
62;;; Commentary:
63;;;
64;;; Golang packages providing tools to unit-test, mock, assert, and lint
65;;; processes for the Golang itself. They may provide executables and
66;;; libraries, for which there are marked sections.
67;;;
68;;; Please: Try to add new module packages in alphabetic order.
69;;;
70;;; Code:
71 72
72;;; 73;;;
73;;; Libraries: 74;;; Libraries:
diff --git a/gnu/packages/golang-compression.scm b/gnu/packages/golang-compression.scm
index 2ea0b01110a..ee406036571 100644
--- a/gnu/packages/golang-compression.scm
+++ b/gnu/packages/golang-compression.scm
@@ -23,6 +23,12 @@
23;;; You should have received a copy of the GNU General Public License 23;;; You should have received a copy of the GNU General Public License
24;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 24;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
25 25
26;;; Commentary:
27;;;
28;;; Please: Try to add new module packages in alphabetic order.
29;;;
30;;; Code:
31
26(define-module (gnu packages golang-compression) 32(define-module (gnu packages golang-compression)
27 #:use-module ((guix licenses) #:prefix license:) 33 #:use-module ((guix licenses) #:prefix license:)
28 #:use-module (guix build-system go) 34 #:use-module (guix build-system go)
@@ -38,11 +44,6 @@
38 #:use-module (gnu packages golang-xyz) 44 #:use-module (gnu packages golang-xyz)
39 #:use-module (gnu packages pkg-config)) 45 #:use-module (gnu packages pkg-config))
40 46
41;;; Commentary:
42;;;
43;;; Please: Try to add new module packages in alphabetic order.
44;;;
45;;; Code:
46 47
47(define-public go-code-forgejo-org-forgejo-go-rpmutils 48(define-public go-code-forgejo-org-forgejo-go-rpmutils
48 (package 49 (package
diff --git a/gnu/packages/golang-crypto.scm b/gnu/packages/golang-crypto.scm
index 7e54b4d9818..d197029bfdf 100644
--- a/gnu/packages/golang-crypto.scm
+++ b/gnu/packages/golang-crypto.scm
@@ -48,6 +48,16 @@
48;;; You should have received a copy of the GNU General Public License 48;;; You should have received a copy of the GNU General Public License
49;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 49;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
50 50
51;;; Commentary:
52;;;
53;;; Golang modules (libraries) related to Cryptography: encryption algorithms,
54;;; hashing functions, TLS, key management, digital signatures, password
55;;; hashing etc.
56;;;
57;;; Please: Try to add new module packages in alphabetic order.
58;;;
59;;; Code:
60
51(define-module (gnu packages golang-crypto) 61(define-module (gnu packages golang-crypto)
52 #:use-module ((guix licenses) #:prefix license:) 62 #:use-module ((guix licenses) #:prefix license:)
53 #:use-module (guix build-system go) 63 #:use-module (guix build-system go)
@@ -70,15 +80,6 @@
70 #:use-module (gnu packages specifications) 80 #:use-module (gnu packages specifications)
71 #:use-module (gnu packages tls)) 81 #:use-module (gnu packages tls))
72 82
73;;; Commentary:
74;;;
75;;; Golang modules (libraries) related to Cryptography: encryption algorithms,
76;;; hashing functions, TLS, key management, digital signatures, password
77;;; hashing etc.
78;;;
79;;; Please: Try to add new module packages in alphabetic order.
80;;;
81;;; Code:
82 83
83;;; 84;;;
84;;; Libraries: 85;;; Libraries:
diff --git a/gnu/packages/golang-graphics.scm b/gnu/packages/golang-graphics.scm
index 725ffad1b77..6dadb0e3746 100644
--- a/gnu/packages/golang-graphics.scm
+++ b/gnu/packages/golang-graphics.scm
@@ -18,6 +18,12 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21;;; Commentary:
22;;;
23;;; Please: Try to add new module packages in alphabetic order.
24;;;
25;;; Code:
26
21(define-module (gnu packages golang-graphics) 27(define-module (gnu packages golang-graphics)
22 #:use-module (guix build-system go) 28 #:use-module (guix build-system go)
23 #:use-module (guix gexp) 29 #:use-module (guix gexp)
@@ -33,11 +39,6 @@
33 #:use-module (gnu packages pkg-config) 39 #:use-module (gnu packages pkg-config)
34 #:use-module (gnu packages xorg)) 40 #:use-module (gnu packages xorg))
35 41
36;;; Commentary:
37;;;
38;;; Please: Try to add new module packages in alphabetic order.
39;;;
40;;; Code:
41 42
42;;; 43;;;
43;;; Libraries: 44;;; Libraries:
diff --git a/gnu/packages/golang-maths.scm b/gnu/packages/golang-maths.scm
index 71d3e3c6e52..895557a6dbb 100644
--- a/gnu/packages/golang-maths.scm
+++ b/gnu/packages/golang-maths.scm
@@ -20,6 +20,12 @@
20;;; You should have received a copy of the GNU General Public License 20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22 22
23;;; Commentary:
24;;;
25;;; Please: Try to add new module packages in alphabetic order.
26;;;
27;;; Code:
28
23(define-module (gnu packages golang-maths) 29(define-module (gnu packages golang-maths)
24 #:use-module ((guix licenses) #:prefix license:) 30 #:use-module ((guix licenses) #:prefix license:)
25 #:use-module (guix build-system go) 31 #:use-module (guix build-system go)
@@ -33,11 +39,6 @@
33 #:use-module (gnu packages golang-check) 39 #:use-module (gnu packages golang-check)
34 #:use-module (gnu packages golang-compression)) 40 #:use-module (gnu packages golang-compression))
35 41
36;;; Commentary:
37;;;
38;;; Please: Try to add new module packages in alphabetic order.
39;;;
40;;; Code:
41 42
42;;; 43;;;
43;;; Libraries: 44;;; Libraries:
diff --git a/gnu/packages/golang-vcs.scm b/gnu/packages/golang-vcs.scm
index d74be58bf26..f1374c8d5dc 100644
--- a/gnu/packages/golang-vcs.scm
+++ b/gnu/packages/golang-vcs.scm
@@ -21,6 +21,12 @@
21;;; You should have received a copy of the GNU General Public License 21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23 23
24;;; Commentary:
25;;;
26;;; Please: Try to add new module packages in alphabetic order.
27;;;
28;;; Code:
29
24(define-module (gnu packages golang-vcs) 30(define-module (gnu packages golang-vcs)
25 #:use-module ((guix licenses) #:prefix license:) 31 #:use-module ((guix licenses) #:prefix license:)
26 #:use-module (guix build-system go) 32 #:use-module (guix build-system go)
@@ -43,11 +49,6 @@
43 #:use-module (gnu packages python-check) 49 #:use-module (gnu packages python-check)
44 #:use-module (gnu packages version-control)) 50 #:use-module (gnu packages version-control))
45 51
46;;; Commentary:
47;;;
48;;; Please: Try to add new module packages in alphabetic order.
49;;;
50;;; Code:
51 52
52;;; 53;;;
53;;; Libraries: 54;;; Libraries:
diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index 320e15dc863..a673448d5cf 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -68,6 +68,19 @@
68;;; You should have received a copy of the GNU General Public License 68;;; You should have received a copy of the GNU General Public License
69;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 69;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
70 70
71;;; Commentary:
72;;;
73;;; Golang modules (libraries) for Web related projects: HTML, CSS, SCSS,
74;;; JavaScript, JSON, Web-framework, REST-API or similar functionality; for
75;;; Network related projects: OSI layers implementation algorithms, MIME,
76;;; Email protocols implementations, and similar. They may provide
77;;; executables and libraries, for which there are marked sections.
78
79;;;
80;;; Please: Try to add new module packages in alphabetic order.
81;;;
82;;; Code:
83
71(define-module (gnu packages golang-web) 84(define-module (gnu packages golang-web)
72 #:use-module ((guix licenses) #:prefix license:) 85 #:use-module ((guix licenses) #:prefix license:)
73 #:use-module (guix packages) 86 #:use-module (guix packages)
@@ -91,18 +104,6 @@
91 #:use-module (gnu packages tls) 104 #:use-module (gnu packages tls)
92 #:use-module (gnu packages web)) 105 #:use-module (gnu packages web))
93 106
94;;; Commentary:
95;;;
96;;; Golang modules (libraries) for Web related projects: HTML, CSS, SCSS,
97;;; JavaScript, JSON, Web-framework, REST-API or similar functionality; for
98;;; Network related projects: OSI layers implementation algorithms, MIME,
99;;; Email protocols implementations, and similar. They may provide
100;;; executables and libraries, for which there are marked sections.
101
102;;;
103;;; Please: Try to add new module packages in alphabetic order.
104;;;
105;;; Code:
106 107
107;;; 108;;;
108;;; Libraries: 109;;; Libraries:
diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index d465888f8ac..eca17e73700 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -99,6 +99,20 @@
99;;; You should have received a copy of the GNU General Public License 99;;; You should have received a copy of the GNU General Public License
100;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 100;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
101 101
102;;; Commentary:
103;;;
104;;; Nomad Golang modules (libraries) are welcome here.
105;;;
106;;; There are two sections her: Libraries - for any source only Golang
107;;; libraries which are meant to be imported by other packages; Executables -
108;;; should contain inherited packages where commands need to be built.
109;;;
110;;; Please: Try to add new module packages in alphabetic order and avoid stand
111;;; alone final executables which are not inherited from sources presented in
112;;; this module.
113;;;
114;;; Code:
115
102(define-module (gnu packages golang-xyz) 116(define-module (gnu packages golang-xyz)
103 #:use-module ((guix licenses) #:prefix license:) 117 #:use-module ((guix licenses) #:prefix license:)
104 #:use-module (guix build-system go) 118 #:use-module (guix build-system go)
@@ -140,19 +154,6 @@
140 #:use-module (gnu packages kubernetes) 154 #:use-module (gnu packages kubernetes)
141 #:use-module (gnu packages prometheus)) 155 #:use-module (gnu packages prometheus))
142 156
143;;; Commentary:
144;;;
145;;; Nomad Golang modules (libraries) are welcome here.
146;;;
147;;; There are two sections her: Libraries - for any source only Golang
148;;; libraries which are meant to be imported by other packages; Executables -
149;;; should contain inherited packages where commands need to be built.
150;;;
151;;; Please: Try to add new module packages in alphabetic order and avoid stand
152;;; alone final executables which are not inherited from sources presented in
153;;; this module.
154;;;
155;;; Code:
156 157
157;;; 158;;;
158;;; Libraries: 159;;; Libraries:
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index ba46a34bd91..58c1598bb38 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -34,6 +34,12 @@
34;;; You should have received a copy of the GNU General Public License 34;;; You should have received a copy of the GNU General Public License
35;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 35;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
36 36
37;;; Commentary:
38;;;
39;;; GNU Guile, and modules and extensions.
40;;;
41;;; Code:
42
37(define-module (gnu packages guile) 43(define-module (gnu packages guile)
38 #:use-module ((guix licenses) #:prefix license:) 44 #:use-module ((guix licenses) #:prefix license:)
39 #:use-module (gnu packages) 45 #:use-module (gnu packages)
@@ -67,12 +73,6 @@
67 #:use-module (guix deprecation) 73 #:use-module (guix deprecation)
68 #:use-module (guix utils)) 74 #:use-module (guix utils))
69 75
70;;; Commentary:
71;;;
72;;; GNU Guile, and modules and extensions.
73;;;
74;;; Code:
75
76(define-public guile-1.8 76(define-public guile-1.8
77 (package 77 (package
78 (name "guile") 78 (name "guile")
diff --git a/gnu/packages/ld-wrapper.in b/gnu/packages/ld-wrapper.in
index c9bb235bca5..61d65b262d9 100644
--- a/gnu/packages/ld-wrapper.in
+++ b/gnu/packages/ld-wrapper.in
@@ -39,12 +39,6 @@ exec @GUILE@ -c "(load-compiled \"@SELF@.go\") ($main (command-line))" "$@"
39;;; You should have received a copy of the GNU General Public License 39;;; You should have received a copy of the GNU General Public License
40;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 40;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
41 41
42(define-module (gnu build-support ld-wrapper)
43 #:use-module (srfi srfi-1)
44 #:use-module (ice-9 match)
45 #:autoload (ice-9 rdelim) (read-delimited)
46 #:export (ld-wrapper))
47
48;;; Commentary: 42;;; Commentary:
49;;; 43;;;
50;;; This is a wrapper for the linker. Its purpose is to inspect the -L and 44;;; This is a wrapper for the linker. Its purpose is to inspect the -L and
@@ -70,6 +64,12 @@ exec @GUILE@ -c "(load-compiled \"@SELF@.go\") ($main (command-line))" "$@"
70;;; 64;;;
71;;; Code: 65;;; Code:
72 66
67(define-module (gnu build-support ld-wrapper)
68 #:use-module (srfi srfi-1)
69 #:use-module (ice-9 match)
70 #:autoload (ice-9 rdelim) (read-delimited)
71 #:export (ld-wrapper))
72
73(define %real-ld 73(define %real-ld
74 ;; Name of the linker that we wrap. 74 ;; Name of the linker that we wrap.
75 "@LD@") 75 "@LD@")
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index de1dd6ebd22..71eedb138ac 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -23,6 +23,14 @@
23;;; You should have received a copy of the GNU General Public License 23;;; You should have received a copy of the GNU General Public License
24;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 24;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
25 25
26;;; Commentary:
27;;;
28;;; This module provides tools to build tarballs of the "bootstrap binaries"
29;;; used in (gnu packages bootstrap). These statically-linked binaries are
30;;; taken for granted and used as the root of the whole bootstrap procedure.
31;;;
32;;; Code:
33
26(define-module (gnu packages make-bootstrap) 34(define-module (gnu packages make-bootstrap)
27 #:use-module (guix gexp) 35 #:use-module (guix gexp)
28 #:use-module (guix utils) 36 #:use-module (guix utils)
@@ -58,14 +66,6 @@
58 %guile-static-stripped 66 %guile-static-stripped
59 %guile-static-initrd)) 67 %guile-static-initrd))
60 68
61;;; Commentary:
62;;;
63;;; This module provides tools to build tarballs of the "bootstrap binaries"
64;;; used in (gnu packages bootstrap). These statically-linked binaries are
65;;; taken for granted and used as the root of the whole bootstrap procedure.
66;;;
67;;; Code:
68
69(define glibc-for-bootstrap 69(define glibc-for-bootstrap
70 (mlambdaq (base) 70 (mlambdaq (base)
71 "Return a libc deriving from BASE whose `system' and `popen' functions looks 71 "Return a libc deriving from BASE whose `system' and `popen' functions looks
diff --git a/gnu/packages/prometheus.scm b/gnu/packages/prometheus.scm
index 910ee9e3c9e..1ab3f367217 100644
--- a/gnu/packages/prometheus.scm
+++ b/gnu/packages/prometheus.scm
@@ -24,6 +24,15 @@
24;;; You should have received a copy of the GNU General Public License 24;;; You should have received a copy of the GNU General Public License
25;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 25;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
26 26
27;;; Commentary:
28;;;
29;;; Libraries and commands related to, or provided by Prometheus project
30;;; <https://prometheus.io>.
31;;;
32;;; Please: Try to add new module packages in alphabetic order.
33;;;
34;;; Code:
35
27(define-module (gnu packages prometheus) 36(define-module (gnu packages prometheus)
28 #:use-module ((guix licenses) #:prefix license:) 37 #:use-module ((guix licenses) #:prefix license:)
29 #:use-module (guix build-system go) 38 #:use-module (guix build-system go)
@@ -40,14 +49,6 @@
40 #:use-module (gnu packages golang-web) 49 #:use-module (gnu packages golang-web)
41 #:use-module (gnu packages golang-xyz)) 50 #:use-module (gnu packages golang-xyz))
42 51
43;;; Commentary:
44;;;
45;;; Libraries and commands related to, or provided by Prometheus project
46;;; <https://prometheus.io>.
47;;;
48;;; Please: Try to add new module packages in alphabetic order.
49;;;
50;;; Code:
51 52
52;;; 53;;;
53;;; Libraries: 54;;; Libraries:
diff --git a/gnu/packages/python-build.scm b/gnu/packages/python-build.scm
index 69da97a8bc4..433bee7bf71 100644
--- a/gnu/packages/python-build.scm
+++ b/gnu/packages/python-build.scm
@@ -38,6 +38,14 @@
38;;; You should have received a copy of the GNU General Public License 38;;; You should have received a copy of the GNU General Public License
39;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 39;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
40 40
41;;; Commentary:
42;;;
43;;; Python packages to build... Python packages. Since they are bound to be
44;;; relied on by many, their dependencies should be kept minimal, and this
45;;; module should not depend on other modules containing Python packages.
46;;;
47;;; Code:
48
41(define-module (gnu packages python-build) 49(define-module (gnu packages python-build)
42 #:use-module (gnu packages) 50 #:use-module (gnu packages)
43 #:use-module (gnu packages bash) 51 #:use-module (gnu packages bash)
@@ -50,14 +58,6 @@
50 #:use-module (guix git-download) 58 #:use-module (guix git-download)
51 #:use-module (guix packages)) 59 #:use-module (guix packages))
52 60
53;;; Commentary:
54;;;
55;;; Python packages to build... Python packages. Since they are bound to be
56;;; relied on by many, their dependencies should be kept minimal, and this
57;;; module should not depend on other modules containing Python packages.
58;;;
59;;; Code:
60
61 61
62;;; These are dependencies used by the build systems contained herein; they 62;;; These are dependencies used by the build systems contained herein; they
63;;; feel a bit out of place but are kept here to prevent circular module 63;;; feel a bit out of place but are kept here to prevent circular module
diff --git a/gnu/packages/python-graphics.scm b/gnu/packages/python-graphics.scm
index e7e07302af8..57e35610c21 100644
--- a/gnu/packages/python-graphics.scm
+++ b/gnu/packages/python-graphics.scm
@@ -29,6 +29,15 @@
29;;; You should have received a copy of the GNU General Public License 29;;; You should have received a copy of the GNU General Public License
30;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 30;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
31 31
32;;; Commentary:
33;;;
34;;; Python modules which are meant to be used in GUI creation or mainly are
35;;; bindings to low level libraries such as Glue, Mesa, OpenGL, Xorg etc.
36;;;
37;;; Please: Try to add new module packages in alphabetic order.
38;;;
39;;; Code:
40
32(define-module (gnu packages python-graphics) 41(define-module (gnu packages python-graphics)
33 #:use-module ((guix licenses) #:prefix license:) 42 #:use-module ((guix licenses) #:prefix license:)
34 #:use-module (guix build-system pyproject) 43 #:use-module (guix build-system pyproject)
@@ -68,14 +77,6 @@
68 #:use-module (gnu packages video) 77 #:use-module (gnu packages video)
69 #:use-module (gnu packages xorg)) 78 #:use-module (gnu packages xorg))
70 79
71;;; Commentary:
72;;;
73;;; Python modules which are meant to be used in GUI creation or mainly are
74;;; bindings to low level libraries such as Glue, Mesa, OpenGL, Xorg etc.
75;;;
76;;; Please: Try to add new module packages in alphabetic order.
77;;;
78;;; Code:
79 80
80(define-public python-asyncgui 81(define-public python-asyncgui
81 (package 82 (package
diff --git a/gnu/packages/quantum.scm b/gnu/packages/quantum.scm
index 908a51773a4..5ca1846e353 100644
--- a/gnu/packages/quantum.scm
+++ b/gnu/packages/quantum.scm
@@ -18,6 +18,13 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21;;; Commentary:
22;;;
23;;; Quantum computing and tensor operation module. For quantum mechanics
24;;; select (gnu packages physics) module.
25;;;
26;;; Code:
27
21(define-module (gnu packages quantum) 28(define-module (gnu packages quantum)
22 #:use-module (gnu packages) 29 #:use-module (gnu packages)
23 #:use-module (gnu packages check) 30 #:use-module (gnu packages check)
@@ -35,12 +42,6 @@
35 #:use-module ((guix licenses) #:prefix license:) 42 #:use-module ((guix licenses) #:prefix license:)
36 #:use-module (guix packages)) 43 #:use-module (guix packages))
37 44
38;;; Commentary:
39;;;
40;;; Quantum computing and tensor operation module. For quantum mechanics
41;;; select (gnu packages physics) module.
42;;;
43;;; Code:
44 45
45 46
46(define %cirq-version "1.7.0") 47(define %cirq-version "1.7.0")
diff --git a/gnu/packages/ruby-check.scm b/gnu/packages/ruby-check.scm
index 6535d8fd6e4..0406cf3fd2e 100644
--- a/gnu/packages/ruby-check.scm
+++ b/gnu/packages/ruby-check.scm
@@ -48,6 +48,12 @@
48;;; You should have received a copy of the GNU General Public License 48;;; You should have received a copy of the GNU General Public License
49;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 49;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
50 50
51;;; Commentary:
52;;;
53;;; Please: Try to add new module packages in alphabetic order.
54;;;
55;;; Code:
56
51(define-module (gnu packages ruby-check) 57(define-module (gnu packages ruby-check)
52 #:use-module ((guix licenses) #:prefix license:) 58 #:use-module ((guix licenses) #:prefix license:)
53 #:use-module (guix build-system ruby) 59 #:use-module (guix build-system ruby)
@@ -61,11 +67,6 @@
61 #:use-module (gnu packages ruby) 67 #:use-module (gnu packages ruby)
62 #:use-module (gnu packages ruby-xyz)) 68 #:use-module (gnu packages ruby-xyz))
63 69
64;;; Commentary:
65;;;
66;;; Please: Try to add new module packages in alphabetic order.
67;;;
68;;; Code:
69 70
70 71
71;; Bundler is yet another source of circular dependencies, so we must disable 72;; Bundler is yet another source of circular dependencies, so we must disable
diff --git a/gnu/packages/sqlite.scm b/gnu/packages/sqlite.scm
index 24a5f741ed3..972e84a6c44 100644
--- a/gnu/packages/sqlite.scm
+++ b/gnu/packages/sqlite.scm
@@ -31,6 +31,13 @@
31;;; You should have received a copy of the GNU General Public License 31;;; You should have received a copy of the GNU General Public License
32;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 32;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
33 33
34;;; Commentary:
35;;;
36;;; This module has been separated from (gnu packages databases) to reduce the
37;;; number of module references for core packages.
38;;;
39;;; Code:
40
34(define-module (gnu packages sqlite) 41(define-module (gnu packages sqlite)
35 #:use-module (gnu packages) 42 #:use-module (gnu packages)
36 #:use-module (gnu packages hurd) 43 #:use-module (gnu packages hurd)
@@ -45,11 +52,6 @@
45 #:use-module (ice-9 match) 52 #:use-module (ice-9 match)
46 #:use-module (srfi srfi-26)) 53 #:use-module (srfi srfi-26))
47 54
48;;; Commentary:
49;;;
50;;; This module has been separated from (gnu packages databases) to reduce the
51;;; number of module references for core packages.
52
53(define (sqlite-uri version year) 55(define (sqlite-uri version year)
54 (let ((numeric-version 56 (let ((numeric-version
55 (match (string-split version #\.) 57 (match (string-split version #\.)
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index b8b55242eb4..6d961151d54 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -48,76 +48,6 @@
48;;; You should have received a copy of the GNU General Public License 48;;; You should have received a copy of the GNU General Public License
49;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 49;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
50 50
51(define-module (gnu packages tex)
52 #:use-module ((guix licenses) #:prefix license:)
53 #:use-module (guix gexp)
54 #:use-module (guix packages)
55 #:use-module (guix download)
56 #:use-module (guix build-system copy)
57 #:use-module (guix build-system gnu)
58 #:use-module (guix build-system perl)
59 #:use-module (guix build-system pyproject)
60 #:use-module (guix build-system qt)
61 #:use-module (guix build-system trivial)
62 #:use-module (guix build-system texlive)
63 #:use-module (guix utils)
64 #:use-module (guix deprecation)
65 #:use-module (guix gexp)
66 #:use-module (guix git-download)
67 #:use-module (guix svn-download)
68 #:use-module (gnu packages)
69 #:use-module (gnu packages algebra)
70 #:use-module (gnu packages aspell)
71 #:use-module (gnu packages autotools)
72 #:use-module (gnu packages bash)
73 #:use-module (gnu packages boost)
74 #:use-module (gnu packages check)
75 #:use-module (gnu packages compression)
76 #:use-module (gnu packages cmake)
77 #:use-module (gnu packages cpp)
78 #:use-module (gnu packages digest)
79 #:use-module (gnu packages lisp)
80 #:use-module (gnu packages fonts)
81 #:use-module (gnu packages fontutils)
82 #:use-module (gnu packages gd)
83 #:use-module (gnu packages ghostscript)
84 #:use-module (gnu packages graphviz)
85 #:use-module (gnu packages groff)
86 #:use-module (gnu packages gtk)
87 #:use-module (gnu packages icu4c)
88 #:use-module (gnu packages image)
89 #:use-module (gnu packages java)
90 #:use-module (gnu packages libreoffice)
91 #:use-module (gnu packages lua)
92 #:use-module (gnu packages maths)
93 #:use-module (gnu packages multiprecision)
94 #:use-module (gnu packages pdf)
95 #:use-module (gnu packages perl)
96 #:use-module (gnu packages perl-check)
97 #:use-module (gnu packages pkg-config)
98 #:use-module (gnu packages plotutils)
99 #:use-module (gnu packages python)
100 #:use-module (gnu packages python-build)
101 #:use-module (gnu packages python-xyz)
102 #:use-module (gnu packages qt)
103 #:use-module (gnu packages readline)
104 #:use-module (gnu packages ruby)
105 #:use-module (gnu packages ruby-xyz)
106 #:use-module (gnu packages shells)
107 #:use-module (gnu packages tcl)
108 #:use-module (gnu packages time)
109 #:use-module (gnu packages tls)
110 #:use-module (gnu packages base)
111 #:use-module (gnu packages gawk)
112 #:use-module (gnu packages web)
113 #:use-module (gnu packages xml)
114 #:use-module (gnu packages xorg)
115 #:use-module (gnu packages xdisorg)
116 #:use-module (gnu packages texinfo)
117 #:use-module (ice-9 ftw)
118 #:use-module (ice-9 match)
119 #:use-module ((srfi srfi-1) #:hide (zip)))
120
121;;; Commentary: 51;;; Commentary:
122;;; 52;;;
123;;; Guix provides two different TeX Live systems: one monolithic, the TEXLIVE 53;;; Guix provides two different TeX Live systems: one monolithic, the TEXLIVE
@@ -270,6 +200,76 @@
270;;; 200;;;
271;;; Code: 201;;; Code:
272 202
203(define-module (gnu packages tex)
204 #:use-module ((guix licenses) #:prefix license:)
205 #:use-module (guix gexp)
206 #:use-module (guix packages)
207 #:use-module (guix download)
208 #:use-module (guix build-system copy)
209 #:use-module (guix build-system gnu)
210 #:use-module (guix build-system perl)
211 #:use-module (guix build-system pyproject)
212 #:use-module (guix build-system qt)
213 #:use-module (guix build-system trivial)
214 #:use-module (guix build-system texlive)
215 #:use-module (guix utils)
216 #:use-module (guix deprecation)
217 #:use-module (guix gexp)
218 #:use-module (guix git-download)
219 #:use-module (guix svn-download)
220 #:use-module (gnu packages)
221 #:use-module (gnu packages algebra)
222 #:use-module (gnu packages aspell)
223 #:use-module (gnu packages autotools)
224 #:use-module (gnu packages bash)
225 #:use-module (gnu packages boost)
226 #:use-module (gnu packages check)
227 #:use-module (gnu packages compression)
228 #:use-module (gnu packages cmake)
229 #:use-module (gnu packages cpp)
230 #:use-module (gnu packages digest)
231 #:use-module (gnu packages lisp)
232 #:use-module (gnu packages fonts)
233 #:use-module (gnu packages fontutils)
234 #:use-module (gnu packages gd)
235 #:use-module (gnu packages ghostscript)
236 #:use-module (gnu packages graphviz)
237 #:use-module (gnu packages groff)
238 #:use-module (gnu packages gtk)
239 #:use-module (gnu packages icu4c)
240 #:use-module (gnu packages image)
241 #:use-module (gnu packages java)
242 #:use-module (gnu packages libreoffice)
243 #:use-module (gnu packages lua)
244 #:use-module (gnu packages maths)
245 #:use-module (gnu packages multiprecision)
246 #:use-module (gnu packages pdf)
247 #:use-module (gnu packages perl)
248 #:use-module (gnu packages perl-check)
249 #:use-module (gnu packages pkg-config)
250 #:use-module (gnu packages plotutils)
251 #:use-module (gnu packages python)
252 #:use-module (gnu packages python-build)
253 #:use-module (gnu packages python-xyz)
254 #:use-module (gnu packages qt)
255 #:use-module (gnu packages readline)
256 #:use-module (gnu packages ruby)
257 #:use-module (gnu packages ruby-xyz)
258 #:use-module (gnu packages shells)
259 #:use-module (gnu packages tcl)
260 #:use-module (gnu packages time)
261 #:use-module (gnu packages tls)
262 #:use-module (gnu packages base)
263 #:use-module (gnu packages gawk)
264 #:use-module (gnu packages web)
265 #:use-module (gnu packages xml)
266 #:use-module (gnu packages xorg)
267 #:use-module (gnu packages xdisorg)
268 #:use-module (gnu packages texinfo)
269 #:use-module (ice-9 ftw)
270 #:use-module (ice-9 match)
271 #:use-module ((srfi srfi-1) #:hide (zip)))
272
273(define-public texlive-source 273(define-public texlive-source
274 (package 274 (package
275 (name "texlive-source") 275 (name "texlive-source")
diff --git a/gnu/packages/toys.scm b/gnu/packages/toys.scm
index 96824438c17..0c35bd8015c 100644
--- a/gnu/packages/toys.scm
+++ b/gnu/packages/toys.scm
@@ -25,6 +25,12 @@
25;;; You should have received a copy of the GNU General Public License 25;;; You should have received a copy of the GNU General Public License
26;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 26;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
27 27
28;;; Commentary:
29;;;
30;;; Please: Try to add new module packages in alphabetic order.
31;;;
32;;; Code:
33
28(define-module (gnu packages toys) 34(define-module (gnu packages toys)
29 #:use-module ((guix licenses) #:prefix license:) 35 #:use-module ((guix licenses) #:prefix license:)
30 #:use-module (guix build-system copy) 36 #:use-module (guix build-system copy)
@@ -54,11 +60,6 @@
54 #:use-module (gnu packages xml) 60 #:use-module (gnu packages xml)
55 #:use-module (gnu packages xorg)) 61 #:use-module (gnu packages xorg))
56 62
57;;; Commentary:
58;;;
59;;; Please: Try to add new module packages in alphabetic order.
60;;;
61;;; Code:
62 63
63(define-public cbonsai 64(define-public cbonsai
64 (package 65 (package
diff --git a/gnu/services.scm b/gnu/services.scm
index 097bfed5f1b..5f987f55a52 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -26,6 +26,31 @@
26;;; You should have received a copy of the GNU General Public License 26;;; You should have received a copy of the GNU General Public License
27;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 27;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
28 28
29;;; Commentary:
30;;;
31;;; This module defines a broad notion of "service types" and "services."
32;;;
33;;; A service type describe how its instances extend instances of other
34;;; service types. For instance, some services extend the instance of
35;;; ACCOUNT-SERVICE-TYPE by providing it with accounts and groups to create;
36;;; others extend SHEPHERD-ROOT-SERVICE-TYPE by passing it instances of
37;;; <shepherd-service>.
38;;;
39;;; When applicable, the service type defines how it can itself be extended,
40;;; by providing one procedure to compose extensions, and one procedure to
41;;; extend itself.
42;;;
43;;; A notable service type is SYSTEM-SERVICE-TYPE, which has a single
44;;; instance, which is the root of the service DAG. Its value is the
45;;; derivation that produces the 'system' directory as returned by
46;;; 'operating-system-derivation'.
47;;;
48;;; The 'fold-services' procedure can be passed a list of procedures, which it
49;;; "folds" by propagating extensions down the graph; it returns the root
50;;; service after the applying all its extensions.
51;;;
52;;; Code:
53
29(define-module (gnu services) 54(define-module (gnu services)
30 #:use-module (guix derivations) 55 #:use-module (guix derivations)
31 #:use-module (guix gexp) 56 #:use-module (guix gexp)
@@ -149,31 +174,6 @@
149 ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26805#16>. 174 ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26805#16>.
150 delete)) 175 delete))
151 176
152;;; Comment:
153;;;
154;;; This module defines a broad notion of "service types" and "services."
155;;;
156;;; A service type describe how its instances extend instances of other
157;;; service types. For instance, some services extend the instance of
158;;; ACCOUNT-SERVICE-TYPE by providing it with accounts and groups to create;
159;;; others extend SHEPHERD-ROOT-SERVICE-TYPE by passing it instances of
160;;; <shepherd-service>.
161;;;
162;;; When applicable, the service type defines how it can itself be extended,
163;;; by providing one procedure to compose extensions, and one procedure to
164;;; extend itself.
165;;;
166;;; A notable service type is SYSTEM-SERVICE-TYPE, which has a single
167;;; instance, which is the root of the service DAG. Its value is the
168;;; derivation that produces the 'system' directory as returned by
169;;; 'operating-system-derivation'.
170;;;
171;;; The 'fold-services' procedure can be passed a list of procedures, which it
172;;; "folds" by propagating extensions down the graph; it returns the root
173;;; service after the applying all its extensions.
174;;;
175;;; Code:
176
177(define-record-type <service-extension> 177(define-record-type <service-extension>
178 (service-extension target compute) 178 (service-extension target compute)
179 service-extension? 179 service-extension?
diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm
index 907f7d37f4a..bad9d38e369 100644
--- a/gnu/services/admin.scm
+++ b/gnu/services/admin.scm
@@ -21,6 +21,13 @@
21;;; You should have received a copy of the GNU General Public License 21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23 23
24;;; Commentary:
25;;;
26;;; This module provides basic system administration tools: log rotation,
27;;; unattended upgrades, etc.
28;;;
29;;; Code:
30
24(define-module (gnu services admin) 31(define-module (gnu services admin)
25 #:use-module (gnu system file-systems) 32 #:use-module (gnu system file-systems)
26 #:use-module (gnu packages admin) 33 #:use-module (gnu packages admin)
@@ -102,13 +109,6 @@
102 resize-file-system-configuration-btrfs-progs 109 resize-file-system-configuration-btrfs-progs
103 resize-file-system-configuration-bcachefs-tools)) 110 resize-file-system-configuration-bcachefs-tools))
104 111
105;;; Commentary:
106;;;
107;;; This module provides basic system administration tools: log rotation,
108;;; unattended upgrades, etc.
109;;;
110;;; Code:
111
112 112
113;;; 113;;;
114;;; Shepherd's log rotation service. 114;;; Shepherd's log rotation service.
diff --git a/gnu/services/audio.scm b/gnu/services/audio.scm
index 2981b89ed8c..2e17c02513b 100644
--- a/gnu/services/audio.scm
+++ b/gnu/services/audio.scm
@@ -19,6 +19,12 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; Audio related services
25;;;
26;;; Code:
27
22(define-module (gnu services audio) 28(define-module (gnu services audio)
23 #:use-module (guix gexp) 29 #:use-module (guix gexp)
24 #:use-module (guix deprecation) 30 #:use-module (guix deprecation)
@@ -163,12 +169,6 @@
163 snapserver-configuration-extra-content 169 snapserver-configuration-extra-content
164 snapserver-service-type)) 170 snapserver-service-type))
165 171
166;;; Commentary:
167;;;
168;;; Audio related services
169;;;
170;;; Code:
171
172(define (uglify-field-name field-name) 172(define (uglify-field-name field-name)
173 (let ((str (symbol->string field-name))) 173 (let ((str (symbol->string field-name)))
174 (string-join (string-split (if (string-suffix? "?" str) 174 (string-join (string-split (if (string-suffix? "?" str)
diff --git a/gnu/services/avahi.scm b/gnu/services/avahi.scm
index d0e6fedf59d..77d6f950b9f 100644
--- a/gnu/services/avahi.scm
+++ b/gnu/services/avahi.scm
@@ -16,6 +16,13 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module provides service definitions for the Avahi
22;;; "zero-configuration" tool set.
23;;;
24;;; Code:
25
19(define-module (gnu services avahi) 26(define-module (gnu services avahi)
20 #:use-module (gnu services) 27 #:use-module (gnu services)
21 #:use-module (gnu services base) 28 #:use-module (gnu services base)
@@ -42,13 +49,6 @@
42 49
43 avahi-service-type)) 50 avahi-service-type))
44 51
45;;; Commentary:
46;;;
47;;; This module provides service definitions for the Avahi
48;;; "zero-configuration" tool set.
49;;;
50;;; Code:
51
52(define-record-type* <avahi-configuration> 52(define-record-type* <avahi-configuration>
53 avahi-configuration make-avahi-configuration 53 avahi-configuration make-avahi-configuration
54 avahi-configuration? 54 avahi-configuration?
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 5108187d1ee..4bfc484b898 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -40,6 +40,13 @@
40;;; You should have received a copy of the GNU General Public License 40;;; You should have received a copy of the GNU General Public License
41;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 41;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
42 42
43;;; Commentary:
44;;;
45;;; Base system services---i.e., services that 99% of the users will want to
46;;; use.
47;;;
48;;; Code:
49
43(define-module (gnu services base) 50(define-module (gnu services base)
44 #:use-module (guix store) 51 #:use-module (guix store)
45 #:use-module (guix deprecation) 52 #:use-module (guix deprecation)
@@ -321,13 +328,6 @@
321 328
322 %base-services)) 329 %base-services))
323 330
324;;; Commentary:
325;;;
326;;; Base system services---i.e., services that 99% of the users will want to
327;;; use.
328;;;
329;;; Code:
330
331 331
332 332
333;;; 333;;;
diff --git a/gnu/services/certbot.scm b/gnu/services/certbot.scm
index 7a7c2a9e00e..f1ab9149f6a 100644
--- a/gnu/services/certbot.scm
+++ b/gnu/services/certbot.scm
@@ -24,6 +24,12 @@
24;;; You should have received a copy of the GNU General Public License 24;;; You should have received a copy of the GNU General Public License
25;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 25;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
26 26
27;;; Commentary:
28;;;
29;;; Automatically obtaining TLS certificates from Let's Encrypt.
30;;;
31;;; Code:
32
27(define-module (gnu services certbot) 33(define-module (gnu services certbot)
28 #:use-module (gnu services) 34 #:use-module (gnu services)
29 #:use-module (gnu services base) 35 #:use-module (gnu services base)
@@ -42,12 +48,6 @@
42 certbot-configuration? 48 certbot-configuration?
43 certificate-configuration)) 49 certificate-configuration))
44 50
45;;; Commentary:
46;;;
47;;; Automatically obtaining TLS certificates from Let's Encrypt.
48;;;
49;;; Code:
50
51 51
52(define-record-type* <certificate-configuration> 52(define-record-type* <certificate-configuration>
53 certificate-configuration make-certificate-configuration 53 certificate-configuration make-certificate-configuration
diff --git a/gnu/services/cgit.scm b/gnu/services/cgit.scm
index 684ab73f76d..f2d1be04f05 100644
--- a/gnu/services/cgit.scm
+++ b/gnu/services/cgit.scm
@@ -19,6 +19,16 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; This module provides a service definition for the Cgit a web frontend for
25;;; Git repositories written in C.
26;;;
27;;; Note: fields of <cgit-configuration> and <repository-cgit-configuration>
28;;; should be specified in the specific order.
29;;;
30;;; Code:
31
22(define-module (gnu services cgit) 32(define-module (gnu services cgit)
23 #:use-module (gnu packages admin) 33 #:use-module (gnu packages admin)
24 #:use-module (gnu packages version-control) 34 #:use-module (gnu packages version-control)
@@ -42,16 +52,6 @@
42 opaque-cgit-configuration 52 opaque-cgit-configuration
43 cgit-service-type)) 53 cgit-service-type))
44 54
45;;; Commentary:
46;;;
47;;; This module provides a service definition for the Cgit a web frontend for
48;;; Git repositories written in C.
49;;;
50;;; Note: fields of <cgit-configuration> and <repository-cgit-configuration>
51;;; should be specified in the specific order.
52;;;
53;;; Code:
54
55(define %cgit-configuration-nginx 55(define %cgit-configuration-nginx
56 (nginx-server-configuration 56 (nginx-server-configuration
57 (root cgit) 57 (root cgit)
diff --git a/gnu/services/ci.scm b/gnu/services/ci.scm
index 08416e99620..61c0166eed2 100644
--- a/gnu/services/ci.scm
+++ b/gnu/services/ci.scm
@@ -19,6 +19,13 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;;; Commentary:
23;;;
24;;; This module implements a service that to run instances of Laminar, a
25;;; continuous integration tool.
26;;;
27;;;; Code:
28
22(define-module (gnu services ci) 29(define-module (gnu services ci)
23 #:use-module (guix gexp) 30 #:use-module (guix gexp)
24 #:use-module (guix records) 31 #:use-module (guix records)
@@ -59,13 +66,6 @@
59 66
60 forgejo-runner-service-type)) 67 forgejo-runner-service-type))
61 68
62;;;; Commentary:
63;;;
64;;; This module implements a service that to run instances of Laminar, a
65;;; continuous integration tool.
66;;;
67;;;; Code:
68
69(define-record-type* <laminar-configuration> 69(define-record-type* <laminar-configuration>
70 laminar-configuration make-laminar-configuration 70 laminar-configuration make-laminar-configuration
71 laminar-configuration? 71 laminar-configuration?
diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scm
index d42f04f1161..956f4451fd1 100644
--- a/gnu/services/configuration.scm
+++ b/gnu/services/configuration.scm
@@ -24,6 +24,12 @@
24;;; You should have received a copy of the GNU General Public License 24;;; You should have received a copy of the GNU General Public License
25;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 25;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
26 26
27;;; Commentary:
28;;;
29;;; Syntax for creating Scheme bindings to complex configuration files.
30;;;
31;;; Code:
32
27(define-module (gnu services configuration) 33(define-module (gnu services configuration)
28 #:use-module (guix packages) 34 #:use-module (guix packages)
29 #:use-module (guix records) 35 #:use-module (guix records)
@@ -92,12 +98,6 @@
92 generic-serialize-alist-entry 98 generic-serialize-alist-entry
93 generic-serialize-alist)) 99 generic-serialize-alist))
94 100
95;;; Commentary:
96;;;
97;;; Syntax for creating Scheme bindings to complex configuration files.
98;;;
99;;; Code:
100
101(define-condition-type &configuration-error &error 101(define-condition-type &configuration-error &error
102 configuration-error?) 102 configuration-error?)
103 103
diff --git a/gnu/services/cuirass.scm b/gnu/services/cuirass.scm
index b594fe78d7a..77d7cab96ce 100644
--- a/gnu/services/cuirass.scm
+++ b/gnu/services/cuirass.scm
@@ -21,6 +21,13 @@
21;;; You should have received a copy of the GNU General Public License 21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23 23
24;;;; Commentary:
25;;;
26;;; This module implements a service that to run instances of Cuirass, a
27;;; continuous integration tool.
28;;;
29;;;; Code:
30
24(define-module (gnu services cuirass) 31(define-module (gnu services cuirass)
25 #:use-module (guix channels) 32 #:use-module (guix channels)
26 #:use-module (guix gexp) 33 #:use-module (guix gexp)
@@ -50,13 +57,6 @@
50 cuirass-remote-worker-configuration? 57 cuirass-remote-worker-configuration?
51 cuirass-remote-worker-service-type)) 58 cuirass-remote-worker-service-type))
52 59
53;;;; Commentary:
54;;;
55;;; This module implements a service that to run instances of Cuirass, a
56;;; continuous integration tool.
57;;;
58;;;; Code:
59
60(define %cuirass-default-database 60(define %cuirass-default-database
61 "dbname=cuirass") 61 "dbname=cuirass")
62 62
diff --git a/gnu/services/cups.scm b/gnu/services/cups.scm
index 27aac7a16ac..e2102a07f8b 100644
--- a/gnu/services/cups.scm
+++ b/gnu/services/cups.scm
@@ -22,6 +22,12 @@
22;;; You should have received a copy of the GNU General Public License 22;;; You should have received a copy of the GNU General Public License
23;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 23;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
24 24
25;;; Commentary:
26;;;
27;;; Service defininition for the CUPS printing system.
28;;;
29;;; Code:
30
25(define-module (gnu services cups) 31(define-module (gnu services cups)
26 #:use-module (gnu services) 32 #:use-module (gnu services)
27 #:use-module (gnu services shepherd) 33 #:use-module (gnu services shepherd)
@@ -47,12 +53,6 @@
47 operation-access-control 53 operation-access-control
48 method-access-control)) 54 method-access-control))
49 55
50;;; Commentary:
51;;;
52;;; Service defininition for the CUPS printing system.
53;;;
54;;; Code:
55
56(define %cups-accounts 56(define %cups-accounts
57 (list (or 57 (list (or
58 ;; The "lp" group should already exist; try to reuse it. 58 ;; The "lp" group should already exist; try to reuse it.
diff --git a/gnu/services/databases.scm b/gnu/services/databases.scm
index 6742032f112..9ee30192eb5 100644
--- a/gnu/services/databases.scm
+++ b/gnu/services/databases.scm
@@ -28,6 +28,12 @@
28;;; You should have received a copy of the GNU General Public License 28;;; You should have received a copy of the GNU General Public License
29;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 29;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
30 30
31;;; Commentary:
32;;;
33;;; Database services.
34;;;
35;;; Code:
36
31(define-module (gnu services databases) 37(define-module (gnu services databases)
32 #:use-module (gnu services) 38 #:use-module (gnu services)
33 #:use-module (gnu services base) 39 #:use-module (gnu services base)
@@ -106,12 +112,6 @@
106 redis-configuration? 112 redis-configuration?
107 redis-service-type)) 113 redis-service-type))
108 114
109;;; Commentary:
110;;;
111;;; Database services.
112;;;
113;;; Code:
114
115(define %default-postgres-hba 115(define %default-postgres-hba
116 (plain-file "pg_hba.conf" 116 (plain-file "pg_hba.conf"
117 " 117 "
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index c9fe5024319..e481361b9e6 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -40,6 +40,12 @@
40;;; You should have received a copy of the GNU General Public License 40;;; You should have received a copy of the GNU General Public License
41;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 41;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
42 42
43;;; Commentary:
44;;;
45;;; This module contains service definitions for a "desktop" environment.
46;;;
47;;; Code:
48
43(define-module (gnu services desktop) 49(define-module (gnu services desktop)
44 #:use-module ((gnu home services utils) #:select (object->camel-case-string)) 50 #:use-module ((gnu home services utils) #:select (object->camel-case-string))
45 #:use-module (gnu services) 51 #:use-module (gnu services)
@@ -243,12 +249,6 @@
243 249
244 %desktop-services)) 250 %desktop-services))
245 251
246;;; Commentary:
247;;;
248;;; This module contains service definitions for a "desktop" environment.
249;;;
250;;; Code:
251
252 252
253;;; 253;;;
254;;; Helpers. 254;;; Helpers.
diff --git a/gnu/services/getmail.scm b/gnu/services/getmail.scm
index b44ca2ae3de..bea61d21a00 100644
--- a/gnu/services/getmail.scm
+++ b/gnu/services/getmail.scm
@@ -16,6 +16,12 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; Service for the getmail mail retriever.
22;;;
23;;; Code:
24
19(define-module (gnu services getmail) 25(define-module (gnu services getmail)
20 #:use-module (gnu services) 26 #:use-module (gnu services)
21 #:use-module (gnu services base) 27 #:use-module (gnu services base)
@@ -41,12 +47,6 @@
41 getmail-configuration 47 getmail-configuration
42 getmail-service-type)) 48 getmail-service-type))
43 49
44;;; Commentary:
45;;;
46;;; Service for the getmail mail retriever.
47;;;
48;;; Code:
49
50(define (uglify-field-name field-name) 50(define (uglify-field-name field-name)
51 (let ((str (symbol->string field-name))) 51 (let ((str (symbol->string field-name)))
52 (string-join (string-split (if (string-suffix? "?" str) 52 (string-join (string-split (if (string-suffix? "?" str)
diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm
index adf4990fde4..93f526d1c08 100644
--- a/gnu/services/guix.scm
+++ b/gnu/services/guix.scm
@@ -19,6 +19,12 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;;; Commentary:
23;;;
24;;; Services specifically related to GNU Guix.
25;;;
26;;;; Code:
27
22(define-module (gnu services guix) 28(define-module (gnu services guix)
23 #:use-module (srfi srfi-1) 29 #:use-module (srfi srfi-1)
24 #:use-module (ice-9 match) 30 #:use-module (ice-9 match)
@@ -165,12 +171,6 @@
165 shared-cache-configuration 171 shared-cache-configuration
166 user-cache)) 172 user-cache))
167 173
168;;;; Commentary:
169;;;
170;;; Services specifically related to GNU Guix.
171;;;
172;;;; Code:
173
174(define-record-type* <guix-build-coordinator-configuration> 174(define-record-type* <guix-build-coordinator-configuration>
175 guix-build-coordinator-configuration make-guix-build-coordinator-configuration 175 guix-build-coordinator-configuration make-guix-build-coordinator-configuration
176 guix-build-coordinator-configuration? 176 guix-build-coordinator-configuration?
diff --git a/gnu/services/herd.scm b/gnu/services/herd.scm
index d276ba1b74c..777a8f8a3ae 100644
--- a/gnu/services/herd.scm
+++ b/gnu/services/herd.scm
@@ -18,6 +18,15 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21;;; Commentary:
22;;;
23;;; This module provides an interface to the GNU Shepherd, similar to the
24;;; 'herd' command. Essentially it implements a subset of the (shepherd comm)
25;;; module, but focusing only on the parts relevant to 'guix system
26;;; reconfigure'.
27;;;
28;;; Code:
29
21(define-module (gnu services herd) 30(define-module (gnu services herd)
22 #:use-module (srfi srfi-1) 31 #:use-module (srfi srfi-1)
23 #:use-module (srfi srfi-9) 32 #:use-module (srfi srfi-9)
@@ -63,15 +72,6 @@
63 restart-service 72 restart-service
64 wait-for-service)) 73 wait-for-service))
65 74
66;;; Commentary:
67;;;
68;;; This module provides an interface to the GNU Shepherd, similar to the
69;;; 'herd' command. Essentially it implements a subset of the (shepherd comm)
70;;; module, but focusing only on the parts relevant to 'guix system
71;;; reconfigure'.
72;;;
73;;; Code:
74
75(define %shepherd-socket-file 75(define %shepherd-socket-file
76 (let ((uid (getuid))) 76 (let ((uid (getuid)))
77 (make-parameter (if (zero? uid) ;root 77 (make-parameter (if (zero? uid) ;root
diff --git a/gnu/services/hurd.scm b/gnu/services/hurd.scm
index 1ee38e8cd01..53fdfb86043 100644
--- a/gnu/services/hurd.scm
+++ b/gnu/services/hurd.scm
@@ -16,6 +16,12 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module implements services for the Hurd.
22;;;
23;;; Code:
24
19(define-module (gnu services hurd) 25(define-module (gnu services hurd)
20 #:use-module (gnu packages admin) 26 #:use-module (gnu packages admin)
21 #:use-module (gnu packages hurd) 27 #:use-module (gnu packages hurd)
@@ -33,12 +39,6 @@
33 hurd-login-configuration 39 hurd-login-configuration
34 hurd-login-service-type)) 40 hurd-login-service-type))
35 41
36;;; Commentary:
37;;;
38;;; This module implements services for the Hurd.
39;;;
40;;; Code:
41
42;;; 42;;;
43;;; The Hurd VGA console service. 43;;; The Hurd VGA console service.
44;;; 44;;;
diff --git a/gnu/services/lirc.scm b/gnu/services/lirc.scm
index 92784b65ca6..923cf83137a 100644
--- a/gnu/services/lirc.scm
+++ b/gnu/services/lirc.scm
@@ -17,6 +17,12 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; LIRC service.
23;;;
24;;; Code:
25
20(define-module (gnu services lirc) 26(define-module (gnu services lirc)
21 #:use-module (gnu services) 27 #:use-module (gnu services)
22 #:use-module (gnu services shepherd) 28 #:use-module (gnu services shepherd)
@@ -30,12 +36,6 @@
30 lirc-service ; deprecated 36 lirc-service ; deprecated
31 lirc-service-type)) 37 lirc-service-type))
32 38
33;;; Commentary:
34;;;
35;;; LIRC service.
36;;;
37;;; Code:
38
39(define-record-type* <lirc-configuration> 39(define-record-type* <lirc-configuration>
40 lirc-configuration make-lirc-configuration 40 lirc-configuration make-lirc-configuration
41 lirc-configuation? 41 lirc-configuation?
diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm
index d31cad5645d..93eea095853 100644
--- a/gnu/services/mail.scm
+++ b/gnu/services/mail.scm
@@ -27,6 +27,13 @@
27;;; 27;;;
28;;; Some of the help text was taken from the default dovecot.conf files. 28;;; Some of the help text was taken from the default dovecot.conf files.
29 29
30;;; Commentary:
31;;;
32;;; This module provides service definitions for the Dovecot POP3 and IMAP
33;;; mail server.
34;;;
35;;; Code:
36
30(define-module (gnu services mail) 37(define-module (gnu services mail)
31 #:use-module (gnu services) 38 #:use-module (gnu services)
32 #:use-module (gnu services base) 39 #:use-module (gnu services base)
@@ -105,13 +112,6 @@
105 %default-rspamd-config-file 112 %default-rspamd-config-file
106 %default-rspamd-group)) 113 %default-rspamd-group))
107 114
108;;; Commentary:
109;;;
110;;; This module provides service definitions for the Dovecot POP3 and IMAP
111;;; mail server.
112;;;
113;;; Code:
114
115(define (uglify-field-name field-name) 115(define (uglify-field-name field-name)
116 (let ((str (symbol->string field-name))) 116 (let ((str (symbol->string field-name)))
117 (string-join (string-split (if (string-suffix? "?" str) 117 (string-join (string-split (if (string-suffix? "?" str)
diff --git a/gnu/services/mcron.scm b/gnu/services/mcron.scm
index 68d02ef4d7c..c8099480b84 100644
--- a/gnu/services/mcron.scm
+++ b/gnu/services/mcron.scm
@@ -18,6 +18,21 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21;;; Commentary:
22;;;
23;;; This module implements a service that to run instances of GNU mcron, a
24;;; periodic job execution daemon. Example of a service:
25;;
26;; (service mcron-service-type
27;; (mcron-configuration
28;; (jobs (list #~(job next-second-from
29;; (lambda ()
30;; (call-with-output-file "/dev/console"
31;; (lambda (port)
32;; (display "hello!\n" port)))))))))
33;;;
34;;; Code:
35
21(define-module (gnu services mcron) 36(define-module (gnu services mcron)
22 #:use-module (gnu services) 37 #:use-module (gnu services)
23 #:use-module (gnu services shepherd) 38 #:use-module (gnu services shepherd)
@@ -39,21 +54,6 @@
39 54
40 mcron-service-type)) 55 mcron-service-type))
41 56
42;;; Commentary:
43;;;
44;;; This module implements a service that to run instances of GNU mcron, a
45;;; periodic job execution daemon. Example of a service:
46;;
47;; (service mcron-service-type
48;; (mcron-configuration
49;; (jobs (list #~(job next-second-from
50;; (lambda ()
51;; (call-with-output-file "/dev/console"
52;; (lambda (port)
53;; (display "hello!\n" port)))))))))
54;;;
55;;; Code:
56
57;; Configuration of mcron. 57;; Configuration of mcron.
58;; XXX: 'define-configuration' cannot be used here due to the need for 58;; XXX: 'define-configuration' cannot be used here due to the need for
59;; 'thunked' and 'innate' fields as well as 'this-mcron-configuration'. 59;; 'thunked' and 'innate' fields as well as 'this-mcron-configuration'.
diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm
index 0be175d8af2..79c8d2a312c 100644
--- a/gnu/services/messaging.scm
+++ b/gnu/services/messaging.scm
@@ -22,6 +22,12 @@
22;;; You should have received a copy of the GNU General Public License 22;;; You should have received a copy of the GNU General Public License
23;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 23;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
24 24
25;;; Commentary:
26;;;
27;;; Messaging services.
28;;;
29;;; Code:
30
25(define-module (gnu services messaging) 31(define-module (gnu services messaging)
26 #:use-module ((gnu home services utils) #:select (object->camel-case-string)) 32 #:use-module ((gnu home services utils) #:select (object->camel-case-string))
27 #:use-module (gnu packages admin) 33 #:use-module (gnu packages admin)
@@ -254,12 +260,6 @@
254 zulip-irc-bridge-configuration 260 zulip-irc-bridge-configuration
255 zulip-irc-bridge-service-type)) 261 zulip-irc-bridge-service-type))
256 262
257;;; Commentary:
258;;;
259;;; Messaging services.
260;;;
261;;; Code:
262
263(define-syntax define-all-configurations 263(define-syntax define-all-configurations
264 (lambda (stx) 264 (lambda (stx)
265 (define-syntax-rule (id ctx parts ...) 265 (define-syntax-rule (id ctx parts ...)
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index 752f3e3e890..5cce50010dd 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -41,6 +41,12 @@
41;;; You should have received a copy of the GNU General Public License 41;;; You should have received a copy of the GNU General Public License
42;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 42;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
43 43
44;;; Commentary:
45;;;
46;;; Networking services.
47;;;
48;;; Code:
49
44(define-module (gnu services networking) 50(define-module (gnu services networking)
45 #:use-module (gnu home services utils) 51 #:use-module (gnu home services utils)
46 #:use-module (gnu services) 52 #:use-module (gnu services)
@@ -308,12 +314,6 @@
308 keepalived-configuration? 314 keepalived-configuration?
309 keepalived-service-type)) 315 keepalived-service-type))
310 316
311;;; Commentary:
312;;;
313;;; Networking services.
314;;;
315;;; Code:
316
317(define %unroutable-ipv4 317(define %unroutable-ipv4
318 ;; Unroutable address, as per <https://www.rfc-editor.org/rfc/rfc5737>. 318 ;; Unroutable address, as per <https://www.rfc-editor.org/rfc/rfc5737>.
319 "203.0.113.1") 319 "203.0.113.1")
diff --git a/gnu/services/nix.scm b/gnu/services/nix.scm
index 83ba78ce7e6..46f5c975056 100644
--- a/gnu/services/nix.scm
+++ b/gnu/services/nix.scm
@@ -17,6 +17,12 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; This module provides a service definition for the Nix daemon.
23;;;
24;;; Code:
25
20(define-module (gnu services nix) 26(define-module (gnu services nix)
21 #:use-module (gnu packages admin) 27 #:use-module (gnu packages admin)
22 #:use-module (gnu packages bash) 28 #:use-module (gnu packages bash)
@@ -42,12 +48,6 @@
42 nix-configuration 48 nix-configuration
43 nix-configuration?)) 49 nix-configuration?))
44 50
45;;; Commentary:
46;;;
47;;; This module provides a service definition for the Nix daemon.
48;;;
49;;; Code:
50
51(define-record-type* <nix-configuration> 51(define-record-type* <nix-configuration>
52 nix-configuration make-nix-configuration 52 nix-configuration make-nix-configuration
53 nix-configuration? 53 nix-configuration?
diff --git a/gnu/services/rsync.scm b/gnu/services/rsync.scm
index c9de8e710c0..fcdfed34db2 100644
--- a/gnu/services/rsync.scm
+++ b/gnu/services/rsync.scm
@@ -18,6 +18,13 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21;;;; Commentary:
22;;;
23;;; This module implements a service that to run instance of Rsync,
24;;; files synchronization tool.
25;;;
26;;;; Code:
27
21(define-module (gnu services rsync) 28(define-module (gnu services rsync)
22 #:use-module ((gnu build linux-container) #:select (%namespaces)) 29 #:use-module ((gnu build linux-container) #:select (%namespaces))
23 #:use-module (gnu services) 30 #:use-module (gnu services)
@@ -50,13 +57,6 @@
50 57
51 rsync-service-type)) 58 rsync-service-type))
52 59
53;;;; Commentary:
54;;;
55;;; This module implements a service that to run instance of Rsync,
56;;; files synchronization tool.
57;;;
58;;;; Code:
59
60(define-record-type* <rsync-configuration> 60(define-record-type* <rsync-configuration>
61 rsync-configuration 61 rsync-configuration
62 make-rsync-configuration 62 make-rsync-configuration
diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm
index b1e8b040375..1a8eea67757 100644
--- a/gnu/services/shepherd.scm
+++ b/gnu/services/shepherd.scm
@@ -20,6 +20,12 @@
20;;; You should have received a copy of the GNU General Public License 20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22 22
23;;; Commentary:
24;;;
25;;; Instantiating system services as a shepherd configuration file.
26;;;
27;;; Code:
28
23(define-module (gnu services shepherd) 29(define-module (gnu services shepherd)
24 #:use-module (guix ui) 30 #:use-module (guix ui)
25 #:use-module (guix sets) 31 #:use-module (guix sets)
@@ -101,13 +107,6 @@
101 107
102 assert-valid-graph)) 108 assert-valid-graph))
103 109
104;;; Commentary:
105;;;
106;;; Instantiating system services as a shepherd configuration file.
107;;;
108;;; Code:
109
110
111(define-record-type* <shepherd-configuration> 110(define-record-type* <shepherd-configuration>
112 shepherd-configuration make-shepherd-configuration 111 shepherd-configuration make-shepherd-configuration
113 shepherd-configuration? 112 shepherd-configuration?
diff --git a/gnu/services/sound.scm b/gnu/services/sound.scm
index 4c319153448..cf535eb6e18 100644
--- a/gnu/services/sound.scm
+++ b/gnu/services/sound.scm
@@ -20,6 +20,12 @@
20;;; You should have received a copy of the GNU General Public License 20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22 22
23;;; Commentary:
24;;;
25;;; Sound services.
26;;;
27;;; Code:
28
23(define-module (gnu services sound) 29(define-module (gnu services sound)
24 #:use-module (gnu services base) 30 #:use-module (gnu services base)
25 #:use-module (gnu services configuration) 31 #:use-module (gnu services configuration)
@@ -79,12 +85,6 @@
79 speakersafetyd-configuration? 85 speakersafetyd-configuration?
80 speakersafetyd-service-type)) 86 speakersafetyd-service-type))
81 87
82;;; Commentary:
83;;;
84;;; Sound services.
85;;;
86;;; Code:
87
88 88
89;;; 89;;;
90;;; ALSA 90;;; ALSA
diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm
index e167d2f689f..a6ecd06d35a 100644
--- a/gnu/services/ssh.scm
+++ b/gnu/services/ssh.scm
@@ -24,6 +24,13 @@
24;;; You should have received a copy of the GNU General Public License 24;;; You should have received a copy of the GNU General Public License
25;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 25;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
26 26
27;;; Commentary:
28;;;
29;;; This module implements secure shell (SSH) services.
30;;;
31;;; OpenSSH.
32;;;
33
27(define-module (gnu services ssh) 34(define-module (gnu services ssh)
28 #:use-module (gnu packages ssh) 35 #:use-module (gnu packages ssh)
29 #:use-module (gnu packages admin) 36 #:use-module (gnu packages admin)
@@ -90,13 +97,6 @@
90 webssh-service-type 97 webssh-service-type
91 %webssh-configuration-nginx)) 98 %webssh-configuration-nginx))
92 99
93;;; Commentary:
94;;;
95;;; This module implements secure shell (SSH) services.
96;;;
97;;; OpenSSH.
98;;;
99
100(define-record-type* <openssh-configuration> 100(define-record-type* <openssh-configuration>
101 openssh-configuration make-openssh-configuration 101 openssh-configuration make-openssh-configuration
102 openssh-configuration? 102 openssh-configuration?
diff --git a/gnu/services/syncthing.scm b/gnu/services/syncthing.scm
index 577672ab0c5..0d5e7cc8a94 100644
--- a/gnu/services/syncthing.scm
+++ b/gnu/services/syncthing.scm
@@ -18,6 +18,12 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21;;; Commentary:
22;;;
23;;; This module provides a service definition for the syncthing service.
24;;;
25;;; Code:
26
21(define-module (gnu services syncthing) 27(define-module (gnu services syncthing)
22 #:use-module (gnu packages syncthing) 28 #:use-module (gnu packages syncthing)
23 #:use-module (gnu services) 29 #:use-module (gnu services)
@@ -41,12 +47,6 @@
41 syncthing-shepherd-service 47 syncthing-shepherd-service
42 syncthing-files-service)) 48 syncthing-files-service))
43 49
44;;; Commentary:
45;;;
46;;; This module provides a service definition for the syncthing service.
47;;;
48;;; Code:
49
50(define (bool->xml-string bool) 50(define (bool->xml-string bool)
51 ;; add compatibility for the short duration where #f was specified as 51 ;; add compatibility for the short duration where #f was specified as
52 ;; "false" 52 ;; "false"
diff --git a/gnu/services/upnp.scm b/gnu/services/upnp.scm
index 16c32463534..70b242e5980 100644
--- a/gnu/services/upnp.scm
+++ b/gnu/services/upnp.scm
@@ -16,6 +16,12 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; UPnP services.
22;;;
23;;; Code:
24
19(define-module (gnu services upnp) 25(define-module (gnu services upnp)
20 #:use-module (gnu build linux-container) 26 #:use-module (gnu build linux-container)
21 #:use-module (gnu packages admin) 27 #:use-module (gnu packages admin)
@@ -54,12 +60,6 @@
54 readymedia-activation 60 readymedia-activation
55 readymedia-shepherd-service)) 61 readymedia-shepherd-service))
56 62
57;;; Commentary:
58;;;
59;;; UPnP services.
60;;;
61;;; Code:
62
63(define* (%readymedia-default-cache-directory #:key (home-service? #f)) 63(define* (%readymedia-default-cache-directory #:key (home-service? #f))
64 (if home-service? 64 (if home-service?
65 ".cache/readymedia" 65 ".cache/readymedia"
diff --git a/gnu/services/version-control.scm b/gnu/services/version-control.scm
index 55af92c9f5a..8efa4996c5b 100644
--- a/gnu/services/version-control.scm
+++ b/gnu/services/version-control.scm
@@ -24,6 +24,12 @@
24;;; You should have received a copy of the GNU General Public License 24;;; You should have received a copy of the GNU General Public License
25;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 25;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
26 26
27;;; Commentary:
28;;;
29;;; Version Control related services.
30;;;
31;;; Code:
32
27(define-module (gnu services version-control) 33(define-module (gnu services version-control)
28 #:use-module (gnu services) 34 #:use-module (gnu services)
29 #:use-module (gnu services base) 35 #:use-module (gnu services base)
@@ -135,12 +141,6 @@
135 141
136 fossil-service-type)) 142 fossil-service-type))
137 143
138;;; Commentary:
139;;;
140;;; Version Control related services.
141;;;
142;;; Code:
143
144 144
145;;; 145;;;
146;;; Git daemon. 146;;; Git daemon.
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index 4a323dbd96e..351a7daf6dd 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -37,6 +37,12 @@
37;;; You should have received a copy of the GNU General Public License 37;;; You should have received a copy of the GNU General Public License
38;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 38;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
39 39
40;;; Commentary:
41;;;
42;;; Web services.
43;;;
44;;; Code:
45
40(define-module (gnu services web) 46(define-module (gnu services web)
41 #:use-module (gnu services) 47 #:use-module (gnu services)
42 #:use-module (gnu services shepherd) 48 #:use-module (gnu services shepherd)
@@ -390,12 +396,6 @@
390 396
391 miniflux-service-type)) 397 miniflux-service-type))
392 398
393;;; Commentary:
394;;;
395;;; Web services.
396;;;
397;;; Code:
398
399(define-record-type* <httpd-module> 399(define-record-type* <httpd-module>
400 httpd-module make-httpd-module 400 httpd-module make-httpd-module
401 httpd-module? 401 httpd-module?
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index a65dc20244c..5f8065b06d5 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -33,6 +33,12 @@
33;;; You should have received a copy of the GNU General Public License 33;;; You should have received a copy of the GNU General Public License
34;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 34;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
35 35
36;;; Commentary:
37;;;
38;;; Services that relate to the X Window System.
39;;;
40;;; Code:
41
36(define-module (gnu services xorg) 42(define-module (gnu services xorg)
37 #:autoload (gnu services sddm) (sddm-service-type) 43 #:autoload (gnu services sddm) (sddm-service-type)
38 #:use-module (gnu artwork) 44 #:use-module (gnu artwork)
@@ -144,12 +150,6 @@
144 handle-xorg-configuration 150 handle-xorg-configuration
145 set-xorg-configuration)) 151 set-xorg-configuration))
146 152
147;;; Commentary:
148;;;
149;;; Services that relate to the X Window System.
150;;;
151;;; Code:
152
153(define* (default-xorg-modules 153(define* (default-xorg-modules
154 #:optional 154 #:optional
155 (system (or (and=> 155 (system (or (and=>
diff --git a/gnu/system.scm b/gnu/system.scm
index bfcb4025a75..72f690a4050 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -32,6 +32,12 @@
32;;; You should have received a copy of the GNU General Public License 32;;; You should have received a copy of the GNU General Public License
33;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 33;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
34 34
35;;; Commentary:
36;;;
37;;; This module supports whole-system configuration.
38;;;
39;;; Code:
40
35(define-module (gnu system) 41(define-module (gnu system)
36 #:use-module (guix inferior) 42 #:use-module (guix inferior)
37 #:use-module (guix store) 43 #:use-module (guix store)
@@ -190,12 +196,6 @@
190 %base-firmware 196 %base-firmware
191 %default-kernel-arguments)) 197 %default-kernel-arguments))
192 198
193;;; Commentary:
194;;;
195;;; This module supports whole-system configuration.
196;;;
197;;; Code:
198
199(define* (bootable-kernel-arguments system root-device version) 199(define* (bootable-kernel-arguments system root-device version)
200 "Return a list of kernel arguments (gexps) to boot SYSTEM from ROOT-DEVICE. 200 "Return a list of kernel arguments (gexps) to boot SYSTEM from ROOT-DEVICE.
201VERSION is the target version of the boot-parameters record." 201VERSION is the target version of the boot-parameters record."
diff --git a/gnu/system/accounts.scm b/gnu/system/accounts.scm
index 52dbbbf3a33..de91efe669a 100644
--- a/gnu/system/accounts.scm
+++ b/gnu/system/accounts.scm
@@ -17,6 +17,14 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; Data structures representing user accounts and user groups. This is meant
23;;; to be used both on the host side and at run time--e.g., in activation
24;;; snippets.
25;;;
26;;; Code:
27
20(define-module (gnu system accounts) 28(define-module (gnu system accounts)
21 #:use-module (guix records) 29 #:use-module (guix records)
22 #:use-module (ice-9 match) 30 #:use-module (ice-9 match)
@@ -55,15 +63,6 @@
55 63
56 default-shell)) 64 default-shell))
57 65
58
59;;; Commentary:
60;;;
61;;; Data structures representing user accounts and user groups. This is meant
62;;; to be used both on the host side and at run time--e.g., in activation
63;;; snippets.
64;;;
65;;; Code:
66
67(define default-shell 66(define default-shell
68 ;; Default shell for user accounts (a string or string-valued gexp). 67 ;; Default shell for user accounts (a string or string-valued gexp).
69 (make-parameter "/bin/sh")) 68 (make-parameter "/bin/sh"))
diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm
index fd9065d2f6d..7ec2cd02594 100644
--- a/gnu/system/file-systems.scm
+++ b/gnu/system/file-systems.scm
@@ -21,6 +21,15 @@
21;;; You should have received a copy of the GNU General Public License 21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23 23
24;;; Commentary:
25;;;
26;;; Declaring file systems to be mounted.
27;;;
28;;; Note: this file system is used both in the Shepherd and on the "host
29;;; side", so it must not include (gnu packages …) modules.
30;;;
31;;; Code:
32
24(define-module (gnu system file-systems) 33(define-module (gnu system file-systems)
25 #:use-module (ice-9 match) 34 #:use-module (ice-9 match)
26 #:use-module (rnrs bytevectors) 35 #:use-module (rnrs bytevectors)
@@ -109,15 +118,6 @@
109 swap-space-priority 118 swap-space-priority
110 swap-space-discard?)) 119 swap-space-discard?))
111 120
112;;; Commentary:
113;;;
114;;; Declaring file systems to be mounted.
115;;;
116;;; Note: this file system is used both in the Shepherd and on the "host
117;;; side", so it must not include (gnu packages …) modules.
118;;;
119;;; Code:
120
121(eval-when (expand load eval) 121(eval-when (expand load eval)
122 (define invalid-file-system-flags 122 (define invalid-file-system-flags
123 ;; Note: Keep in sync with 'mount-flags->bit-mask'. 123 ;; Note: Keep in sync with 'mount-flags->bit-mask'.
diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm
index 4d5a3d6799b..b57526f93c2 100644
--- a/gnu/system/hurd.scm
+++ b/gnu/system/hurd.scm
@@ -17,6 +17,13 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; This module provides system-specifics for the GNU/Hurd operating system
23;;; and virtual machine.
24;;;
25;;; Code:
26
20(define-module (gnu system hurd) 27(define-module (gnu system hurd)
21 #:use-module (ice-9 match) 28 #:use-module (ice-9 match)
22 #:use-module (guix gexp) 29 #:use-module (guix gexp)
@@ -55,13 +62,6 @@
55 %hurd-default-operating-system-kernel 62 %hurd-default-operating-system-kernel
56 %setuid-programs/hurd)) 63 %setuid-programs/hurd))
57 64
58;;; Commentary:
59;;;
60;;; This module provides system-specifics for the GNU/Hurd operating system
61;;; and virtual machine.
62;;;
63;;; Code:
64
65(define %hurd-default-operating-system-kernel 65(define %hurd-default-operating-system-kernel
66 gnumach) 66 gnumach)
67 67
diff --git a/gnu/system/images/visionfive2.scm b/gnu/system/images/visionfive2.scm
index ee0682b6fcd..22f6545db12 100644
--- a/gnu/system/images/visionfive2.scm
+++ b/gnu/system/images/visionfive2.scm
@@ -17,6 +17,18 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; With this image, VisionFive2 can boot from MMC1 (MicroSD card) with
23;;; SDIO3.0 boot mode (RPIO_1:L, RGPIO_0:H -- see [1]), in this case the
24;;; board will use U-Boot from Guix System instead of the vendor U-Boot.
25;;; Booting from eMMC and NVME is still work-in-progress.
26;;;
27;;; References:
28;;; 1. <https://doc-en.rvspace.org/VisionFive2/Boot_UG/VisionFive2_SDK_QSG/boot_mode_settings.html>
29;;;
30;;; Code:
31
20(define-module (gnu system images visionfive2) 32(define-module (gnu system images visionfive2)
21 #:use-module (gnu bootloader) 33 #:use-module (gnu bootloader)
22 #:use-module (gnu bootloader u-boot) 34 #:use-module (gnu bootloader u-boot)
@@ -46,18 +58,6 @@
46 visionfive2-image-type 58 visionfive2-image-type
47 visionfive2-barebones-raw-image)) 59 visionfive2-barebones-raw-image))
48 60
49;;; Commentary:
50;;;
51;;; With this image, VisionFive2 can boot from MMC1 (MicroSD card) with
52;;; SDIO3.0 boot mode (RPIO_1:L, RGPIO_0:H -- see [1]), in this case the
53;;; board will use U-Boot from Guix System instead of the vendor U-Boot.
54;;; Booting from eMMC and NVME is still work-in-progress.
55;;;
56;;; References:
57;;; 1. <https://doc-en.rvspace.org/VisionFive2/Boot_UG/VisionFive2_SDK_QSG/boot_mode_settings.html>
58;;;
59;;; Code:
60
61(define visionfive2-barebones-os 61(define visionfive2-barebones-os
62 (operating-system 62 (operating-system
63 (host-name "visionfive2") 63 (host-name "visionfive2")
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index 2f5d5d4b1c9..80f5a51fdae 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -24,6 +24,13 @@
24;;; You should have received a copy of the GNU General Public License 24;;; You should have received a copy of the GNU General Public License
25;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 25;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
26 26
27;;; Commentary:
28;;;
29;;; This module provides an 'operating-system' definition for use on images
30;;; for USB sticks etc., for the installation of the GNU system.
31;;;
32;;; Code:
33
27(define-module (gnu system install) 34(define-module (gnu system install)
28 #:use-module ((guix licenses) #:prefix license:) 35 #:use-module ((guix licenses) #:prefix license:)
29 #:use-module (gnu) 36 #:use-module (gnu)
@@ -88,13 +95,6 @@
88 wandboard-installation-os 95 wandboard-installation-os
89 os-with-u-boot)) 96 os-with-u-boot))
90 97
91;;; Commentary:
92;;;
93;;; This module provides an 'operating-system' definition for use on images
94;;; for USB sticks etc., for the installation of the GNU system.
95;;;
96;;; Code:
97
98 98
99;;; 99;;;
100;;; Documentation service. 100;;; Documentation service.
diff --git a/gnu/system/keyboard.scm b/gnu/system/keyboard.scm
index 5bd13a44be4..672fbcde8c6 100644
--- a/gnu/system/keyboard.scm
+++ b/gnu/system/keyboard.scm
@@ -16,6 +16,14 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module provides a data structure to represent keyboard layouts
22;;; according to the XKB naming and classification (see the 'xkeyboard-config'
23;;; package).
24;;;
25;;; Code:
26
19(define-module (gnu system keyboard) 27(define-module (gnu system keyboard)
20 #:use-module (guix gexp) 28 #:use-module (guix gexp)
21 #:use-module ((gnu packages xorg) 29 #:use-module ((gnu packages xorg)
@@ -31,14 +39,6 @@
31 39
32 keyboard-layout->console-keymap)) 40 keyboard-layout->console-keymap))
33 41
34;;; Commentary:
35;;;
36;;; This module provides a data structure to represent keyboard layouts
37;;; according to the XKB naming and classification (see the 'xkeyboard-config'
38;;; package).
39;;;
40;;; Code:
41
42(define-immutable-record-type <keyboard-layout> 42(define-immutable-record-type <keyboard-layout>
43 (%keyboard-layout name variant model options) 43 (%keyboard-layout name variant model options)
44 keyboard-layout? 44 keyboard-layout?
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index b56e6cf5d42..4ea0a59e935 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -20,6 +20,13 @@
20;;; You should have received a copy of the GNU General Public License 20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22 22
23;;; Commentary:
24;;;
25;;; Tools to build initial RAM disks (initrd's) for Linux-Libre, and in
26;;; particular initrd's that run Guile.
27;;;
28;;; Code:
29
23(define-module (gnu system linux-initrd) 30(define-module (gnu system linux-initrd)
24 #:use-module (guix deprecation) 31 #:use-module (guix deprecation)
25 #:use-module (guix gexp) 32 #:use-module (guix gexp)
@@ -56,14 +63,6 @@
56 base-initrd)) 63 base-initrd))
57 64
58 65
59;;; Commentary:
60;;;
61;;; Tools to build initial RAM disks (initrd's) for Linux-Libre, and in
62;;; particular initrd's that run Guile.
63;;;
64;;; Code:
65
66
67(define* (expression->initrd exp 66(define* (expression->initrd exp
68 #:key 67 #:key
69 (guile %guile-static-initrd) 68 (guile %guile-static-initrd)
diff --git a/gnu/system/locale.scm b/gnu/system/locale.scm
index 37f6456e673..866e198b2f6 100644
--- a/gnu/system/locale.scm
+++ b/gnu/system/locale.scm
@@ -18,6 +18,12 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21;;; Commentary:
22;;;
23;;; Locale definitions, and compilation thereof.
24;;;
25;;; Code:
26
21(define-module (gnu system locale) 27(define-module (gnu system locale)
22 #:use-module (guix gexp) 28 #:use-module (guix gexp)
23 #:use-module (guix store) 29 #:use-module (guix store)
@@ -43,12 +49,6 @@
43 49
44 glibc-supported-locales)) 50 glibc-supported-locales))
45 51
46;;; Commentary:
47;;;
48;;; Locale definitions, and compilation thereof.
49;;;
50;;; Code:
51
52(define-record-type* <locale-definition> locale-definition 52(define-record-type* <locale-definition> locale-definition
53 make-locale-definition 53 make-locale-definition
54 locale-definition? 54 locale-definition?
diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm
index 8c32c3d3d4d..e7bb3eae726 100644
--- a/gnu/system/mapped-devices.scm
+++ b/gnu/system/mapped-devices.scm
@@ -19,6 +19,13 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; This module supports "device mapping", a concept implemented by Linux's
25;;; device-mapper.
26;;;
27;;; Code:
28
22(define-module (gnu system mapped-devices) 29(define-module (gnu system mapped-devices)
23 #:use-module (guix gexp) 30 #:use-module (guix gexp)
24 #:use-module (guix records) 31 #:use-module (guix records)
@@ -72,13 +79,6 @@
72 raid-device-mapping 79 raid-device-mapping
73 lvm-device-mapping)) 80 lvm-device-mapping))
74 81
75;;; Commentary:
76;;;
77;;; This module supports "device mapping", a concept implemented by Linux's
78;;; device-mapper.
79;;;
80;;; Code:
81
82(define-record-type* <mapped-device> %mapped-device 82(define-record-type* <mapped-device> %mapped-device
83 make-mapped-device 83 make-mapped-device
84 mapped-device? 84 mapped-device?
diff --git a/gnu/system/nss.scm b/gnu/system/nss.scm
index 930f556e5e5..9beadf05cab 100644
--- a/gnu/system/nss.scm
+++ b/gnu/system/nss.scm
@@ -16,6 +16,12 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; Bindings for libc's name service switch (NSS) configuration.
22;;;
23;;; Code:
24
19(define-module (gnu system nss) 25(define-module (gnu system nss)
20 #:use-module (rnrs enums) 26 #:use-module (rnrs enums)
21 #:use-module (guix records) 27 #:use-module (guix records)
@@ -38,12 +44,6 @@
38 44
39 name-service-switch->string)) 45 name-service-switch->string))
40 46
41;;; Commentary:
42;;;
43;;; Bindings for libc's name service switch (NSS) configuration.
44;;;
45;;; Code:
46
47(define-record-type* <name-service> name-service 47(define-record-type* <name-service> name-service
48 make-name-service 48 make-name-service
49 name-service? 49 name-service?
diff --git a/gnu/system/pam.scm b/gnu/system/pam.scm
index 83cf74d58ce..935419544a8 100644
--- a/gnu/system/pam.scm
+++ b/gnu/system/pam.scm
@@ -17,6 +17,12 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; Configuration of the pluggable authentication modules (PAM).
23;;;
24;;; Code:
25
20(define-module (gnu system pam) 26(define-module (gnu system pam)
21 #:use-module (guix records) 27 #:use-module (guix records)
22 #:use-module (guix derivations) 28 #:use-module (guix derivations)
@@ -69,12 +75,6 @@
69 pam-root-service-type 75 pam-root-service-type
70 pam-root-service)) 76 pam-root-service))
71 77
72;;; Commentary:
73;;;
74;;; Configuration of the pluggable authentication modules (PAM).
75;;;
76;;; Code:
77
78;; PAM services (see 78;; PAM services (see
79;; <http://www.linux-pam.org/Linux-PAM-html/sag-configuration-file.html>.) 79;; <http://www.linux-pam.org/Linux-PAM-html/sag-configuration-file.html>.)
80(define-record-type* <pam-service> pam-service 80(define-record-type* <pam-service> pam-service
diff --git a/gnu/system/privilege.scm b/gnu/system/privilege.scm
index fe6e60ad7c4..26d9b2fe289 100644
--- a/gnu/system/privilege.scm
+++ b/gnu/system/privilege.scm
@@ -17,6 +17,14 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; Data structures representing privileged programs: binaries with additional
23;;; permissions such as setuid/setgid, or POSIX capabilities. This is meant to
24;;; be used both on the host side and at run time--e.g., in activation snippets.
25;;;
26;;; Code:
27
20(define-module (gnu system privilege) 28(define-module (gnu system privilege)
21 #:use-module (guix records) 29 #:use-module (guix records)
22 #:export (privileged-program 30 #:export (privileged-program
@@ -30,14 +38,6 @@
30 38
31 file-like->setuid-program)) 39 file-like->setuid-program))
32 40
33;;; Commentary:
34;;;
35;;; Data structures representing privileged programs: binaries with additional
36;;; permissions such as setuid/setgid, or POSIX capabilities. This is meant to
37;;; be used both on the host side and at run time--e.g., in activation snippets.
38;;;
39;;; Code:
40
41(define-record-type* <privileged-program> 41(define-record-type* <privileged-program>
42 privileged-program make-privileged-program 42 privileged-program make-privileged-program
43 privileged-program? 43 privileged-program?
diff --git a/gnu/system/setuid.scm b/gnu/system/setuid.scm
index 097797ce8d7..dab31dad5d2 100644
--- a/gnu/system/setuid.scm
+++ b/gnu/system/setuid.scm
@@ -17,6 +17,14 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; Do not use this module in new code. It used to define data structures
23;;; representing setuid/setgid programs, but is now a mere compatibility shim
24;;; wrapping a subset of (gnu system privilege).
25;;;
26;;; Code:
27
20(define-module (gnu system setuid) 28(define-module (gnu system setuid)
21 #:use-module (gnu system privilege) 29 #:use-module (gnu system privilege)
22 #:use-module (ice-9 match) 30 #:use-module (ice-9 match)
@@ -30,14 +38,6 @@
30 setuid-program-user 38 setuid-program-user
31 setuid-program-group)) 39 setuid-program-group))
32 40
33;;; Commentary:
34;;;
35;;; Do not use this module in new code. It used to define data structures
36;;; representing setuid/setgid programs, but is now a mere compatibility shim
37;;; wrapping a subset of (gnu system privilege).
38;;;
39;;; Code:
40
41(define-syntax setuid-program 41(define-syntax setuid-program
42 (lambda (fields) 42 (lambda (fields)
43 (syntax-case fields () 43 (syntax-case fields ()
diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm
index f864a4f692e..2cce6e828f6 100644
--- a/gnu/system/shadow.scm
+++ b/gnu/system/shadow.scm
@@ -21,6 +21,12 @@
21;;; You should have received a copy of the GNU General Public License 21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23 23
24;;; Commentary:
25;;;
26;;; Utilities for configuring the Shadow tool suite ('login', 'passwd', etc.)
27;;;
28;;; Code:
29
24(define-module (gnu system shadow) 30(define-module (gnu system shadow)
25 #:use-module ((guix diagnostics) #:select (formatted-message)) 31 #:use-module ((guix diagnostics) #:select (formatted-message))
26 #:use-module (guix records) 32 #:use-module (guix records)
@@ -97,12 +103,6 @@
97 103
98 subids-service-type)) 104 subids-service-type))
99 105
100;;; Commentary:
101;;;
102;;; Utilities for configuring the Shadow tool suite ('login', 'passwd', etc.)
103;;;
104;;; Code:
105
106;; Change the default shell used by new <user-account> records. 106;; Change the default shell used by new <user-account> records.
107(default-shell (file-append bash "/bin/bash")) 107(default-shell (file-append bash "/bin/bash"))
108 108
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index a6a05862a5c..c4fc3e84745 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -22,6 +22,12 @@
22;;; You should have received a copy of the GNU General Public License 22;;; You should have received a copy of the GNU General Public License
23;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 23;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
24 24
25;;; Commentary:
26;;;
27;;; Tools to evaluate build expressions within virtual machines.
28;;;
29;;; Code:
30
25(define-module (gnu system vm) 31(define-module (gnu system vm)
26 #:use-module (guix config) 32 #:use-module (guix config)
27 #:use-module (guix store) 33 #:use-module (guix store)
@@ -91,12 +97,6 @@
91 common-qemu-options)) 97 common-qemu-options))
92 98
93 99
94;;; Commentary:
95;;;
96;;; Tools to evaluate build expressions within virtual machines.
97;;;
98;;; Code:
99
100;; By default, the msize value is 8 KiB, which according to QEMU is 100;; By default, the msize value is 8 KiB, which according to QEMU is
101;; insufficient and would degrade performance. The msize value should roughly 101;; insufficient and would degrade performance. The msize value should roughly
102;; match the bandwidth of the system's IO (see: 102;; match the bandwidth of the system's IO (see:
diff --git a/gnu/tests.scm b/gnu/tests.scm
index 3b12726de82..ab74ed5874e 100644
--- a/gnu/tests.scm
+++ b/gnu/tests.scm
@@ -19,6 +19,15 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; This module provides the infrastructure to run operating system tests.
25;;; The most important part of that is tools to instrument the OS under test,
26;;; essentially allowing it to run in a virtual machine controlled by the host
27;;; system--hence the name "marionette".
28;;;
29;;; Code:
30
22(define-module (gnu tests) 31(define-module (gnu tests)
23 #:use-module (guix gexp) 32 #:use-module (guix gexp)
24 #:use-module (guix diagnostics) 33 #:use-module (guix diagnostics)
@@ -65,15 +74,6 @@
65 fold-system-tests 74 fold-system-tests
66 all-system-tests)) 75 all-system-tests))
67 76
68;;; Commentary:
69;;;
70;;; This module provides the infrastructure to run operating system tests.
71;;; The most important part of that is tools to instrument the OS under test,
72;;; essentially allowing it to run in a virtual machine controlled by the host
73;;; system--hence the name "marionette".
74;;;
75;;; Code:
76
77(define %default-marionette-device 77(define %default-marionette-device
78 ;; Default marionette device in the guest. 78 ;; Default marionette device in the guest.
79 "/dev/virtio-ports/org.gnu.guix.port.0") 79 "/dev/virtio-ports/org.gnu.guix.port.0")
diff --git a/gnu/tests/image.scm b/gnu/tests/image.scm
index be6852cae0a..3e7629c3b68 100644
--- a/gnu/tests/image.scm
+++ b/gnu/tests/image.scm
@@ -16,6 +16,17 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module provides tests for the image creation process that is
22;;; performed by "genimage" under the hood.
23;;;
24;;; The image partitionment is checked using Guile-Parted. The content of the
25;;; images is out of the scope of this module. Other test modules such as
26;;; (gnu tests installation) make sure that the produced images are viable.
27;;;
28;;; Code:
29
19(define-module (gnu tests image) 30(define-module (gnu tests image)
20 #:use-module (gnu) 31 #:use-module (gnu)
21 #:use-module (gnu image) 32 #:use-module (gnu image)
@@ -30,17 +41,6 @@
30 #:use-module (ice-9 format) 41 #:use-module (ice-9 format)
31 #:export (%test-images)) 42 #:export (%test-images))
32 43
33;;; Commentary:
34;;;
35;;; This module provides tests for the image creation process that is
36;;; performed by "genimage" under the hood.
37;;;
38;;; The image partitionment is checked using Guile-Parted. The content of the
39;;; images is out of the scope of this module. Other test modules such as
40;;; (gnu tests installation) make sure that the produced images are viable.
41;;;
42;;; Code:
43
44;; A dummy initializer creating a simple file in the partition. 44;; A dummy initializer creating a simple file in the partition.
45(define dummy-initializer 45(define dummy-initializer
46 #~(lambda* (root . rest) 46 #~(lambda* (root . rest)
diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm
index 91ab59ce8d2..2c336ce4e94 100644
--- a/gnu/tests/install.scm
+++ b/gnu/tests/install.scm
@@ -21,6 +21,13 @@
21;;; You should have received a copy of the GNU General Public License 21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23 23
24;;; Commentary:
25;;;
26;;; Test the installation of Guix using the documented approach at the
27;;; command line.
28;;;
29;;; Code:
30
24(define-module (gnu tests install) 31(define-module (gnu tests install)
25 #:use-module (gnu) 32 #:use-module (gnu)
26 #:use-module (gnu bootloader extlinux) 33 #:use-module (gnu bootloader extlinux)
@@ -89,13 +96,6 @@
89 %test-gui-installed-os-encrypted 96 %test-gui-installed-os-encrypted
90 %test-gui-installed-desktop-os-encrypted)) 97 %test-gui-installed-desktop-os-encrypted))
91 98
92;;; Commentary:
93;;;
94;;; Test the installation of Guix using the documented approach at the
95;;; command line.
96;;;
97;;; Code:
98
99(define-os-with-source (%minimal-os %minimal-os-source) 99(define-os-with-source (%minimal-os %minimal-os-source)
100 ;; The OS we want to install. 100 ;; The OS we want to install.
101 (use-modules (gnu) (gnu tests) (srfi srfi-1)) 101 (use-modules (gnu) (gnu tests) (srfi srfi-1))
diff --git a/gnu/tests/linux-modules.scm b/gnu/tests/linux-modules.scm
index 69cb0132670..8f4d79445bd 100644
--- a/gnu/tests/linux-modules.scm
+++ b/gnu/tests/linux-modules.scm
@@ -19,6 +19,12 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; Test <operating-system> kernel-loadable-modules.
25;;;
26;;; Code:
27
22(define-module (gnu tests linux-modules) 28(define-module (gnu tests linux-modules)
23 #:use-module (gnu packages linux) 29 #:use-module (gnu packages linux)
24 #:use-module (gnu services) 30 #:use-module (gnu services)
@@ -40,12 +46,6 @@
40 %test-loadable-kernel-modules-service-1 46 %test-loadable-kernel-modules-service-1
41 %test-loadable-kernel-modules-service-2)) 47 %test-loadable-kernel-modules-service-2))
42 48
43;;; Commentary:
44;;;
45;;; Test <operating-system> kernel-loadable-modules.
46;;;
47;;; Code:
48
49(define* (modules-loaded?-program os modules) 49(define* (modules-loaded?-program os modules)
50 "Return an executable store item that, upon being evaluated, will verify 50 "Return an executable store item that, upon being evaluated, will verify
51that MODULES are actually loaded." 51that MODULES are actually loaded."
diff --git a/gnu/tests/package-management.scm b/gnu/tests/package-management.scm
index c5102fff74d..869494b7e11 100644
--- a/gnu/tests/package-management.scm
+++ b/gnu/tests/package-management.scm
@@ -16,6 +16,12 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module provides a test definition for the nix-daemon
22;;;
23;;; Code:
24
19(define-module (gnu tests package-management) 25(define-module (gnu tests package-management)
20 #:use-module (gnu packages base) 26 #:use-module (gnu packages base)
21 #:use-module (gnu packages package-management) 27 #:use-module (gnu packages package-management)
@@ -29,12 +35,6 @@
29 #:use-module (guix packages) 35 #:use-module (guix packages)
30 #:export (%test-nix)) 36 #:export (%test-nix))
31 37
32;;; Commentary:
33;;;
34;;; This module provides a test definition for the nix-daemon
35;;;
36;;; Code:
37
38(define* (run-nix-test name test-os) 38(define* (run-nix-test name test-os)
39 "Run tests in TEST-OS, which has nix-daemon running." 39 "Run tests in TEST-OS, which has nix-daemon running."
40 (define os 40 (define os
diff --git a/gnu/tests/reconfigure.scm b/gnu/tests/reconfigure.scm
index 77cbe16a9ca..1ffb75ad2ac 100644
--- a/gnu/tests/reconfigure.scm
+++ b/gnu/tests/reconfigure.scm
@@ -17,6 +17,13 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; Test in-place system reconfiguration: advancing the system generation on a
23;;; running instance of the Guix System.
24;;;
25;;; Code:
26
20(define-module (gnu tests reconfigure) 27(define-module (gnu tests reconfigure)
21 #:use-module (gnu bootloader) 28 #:use-module (gnu bootloader)
22 #:use-module (gnu services) 29 #:use-module (gnu services)
@@ -38,13 +45,6 @@
38 %test-upgrade-kexec 45 %test-upgrade-kexec
39 %test-install-bootloader)) 46 %test-install-bootloader))
40 47
41;;; Commentary:
42;;;
43;;; Test in-place system reconfiguration: advancing the system generation on a
44;;; running instance of the Guix System.
45;;;
46;;; Code:
47
48(define* (run-switch-to-system-test) 48(define* (run-switch-to-system-test)
49 "Run a test of an OS running SWITCH-SYSTEM-PROGRAM, which creates a new 49 "Run a test of an OS running SWITCH-SYSTEM-PROGRAM, which creates a new
50generation of the system profile." 50generation of the system profile."
diff --git a/guix/amd-gpu.scm b/guix/amd-gpu.scm
index d16fea2a053..65d1882ef59 100644
--- a/guix/amd-gpu.scm
+++ b/guix/amd-gpu.scm
@@ -17,18 +17,18 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20(define-module (guix amd-gpu)
21 #:autoload (guix packages) (this-package package-properties)
22 #:export (%default-amd-gpu-targets
23 current-amd-gpu-targets
24 current-amd-gpu-targets-string))
25
26;;; Commentary: 20;;; Commentary:
27;;; 21;;;
28;;; This module provides helpers for packages targeting AMD GPUs. 22;;; This module provides helpers for packages targeting AMD GPUs.
29;;; 23;;;
30;;; Code: 24;;; Code:
31 25
26(define-module (guix amd-gpu)
27 #:autoload (guix packages) (this-package package-properties)
28 #:export (%default-amd-gpu-targets
29 current-amd-gpu-targets
30 current-amd-gpu-targets-string))
31
32(define %default-amd-gpu-targets 32(define %default-amd-gpu-targets
33 '("gfx908" "gfx90a" "gfx942" "gfx1030" "gfx1100" "gfx1101" "gfx1200" "gfx1201")) 33 '("gfx908" "gfx90a" "gfx942" "gfx1030" "gfx1100" "gfx1101" "gfx1200" "gfx1201"))
34 34
diff --git a/guix/android-repo-download.scm b/guix/android-repo-download.scm
index 7b63d388fce..2af88fefd30 100644
--- a/guix/android-repo-download.scm
+++ b/guix/android-repo-download.scm
@@ -20,6 +20,15 @@
20;;; You should have received a copy of the GNU General Public License 20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22 22
23;;; Commentary:
24;;;
25;;; An <origin> method that fetches a specific commit from an Android repo
26;;; repository.
27;;; The repository's manifest (URL and revision) can be specified with a
28;;; <android-repo-reference> object.
29;;;
30;;; Code:
31
23(define-module (guix android-repo-download) 32(define-module (guix android-repo-download)
24 #:use-module (guix gexp) 33 #:use-module (guix gexp)
25 #:use-module (guix store) 34 #:use-module (guix store)
@@ -39,15 +48,6 @@
39 android-repo-version 48 android-repo-version
40 android-repo-file-name)) 49 android-repo-file-name))
41 50
42;;; Commentary:
43;;;
44;;; An <origin> method that fetches a specific commit from an Android repo
45;;; repository.
46;;; The repository's manifest (URL and revision) can be specified with a
47;;; <android-repo-reference> object.
48;;;
49;;; Code:
50
51(define-record-type* <android-repo-reference> 51(define-record-type* <android-repo-reference>
52 android-repo-reference make-android-repo-reference 52 android-repo-reference make-android-repo-reference
53 android-repo-reference? 53 android-repo-reference?
diff --git a/guix/base32.scm b/guix/base32.scm
index dd18a796f23..543d1cbca77 100644
--- a/guix/base32.scm
+++ b/guix/base32.scm
@@ -16,6 +16,13 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; A generic, customizable to convert bytevectors to/from a base32
22;;; representation.
23;;;
24;;; Code:
25
19(define-module (guix base32) 26(define-module (guix base32)
20 #:use-module (srfi srfi-34) 27 #:use-module (srfi srfi-34)
21 #:use-module (srfi srfi-35) 28 #:use-module (srfi srfi-35)
@@ -34,13 +41,6 @@
34 invalid-base32-character-value 41 invalid-base32-character-value
35 invalid-base32-character-string)) 42 invalid-base32-character-string))
36 43
37;;; Commentary:
38;;;
39;;; A generic, customizable to convert bytevectors to/from a base32
40;;; representation.
41;;;
42;;; Code:
43
44(define-syntax bit-field 44(define-syntax bit-field
45 (lambda (s) 45 (lambda (s)
46 ;; This inline version of 'bit-field' assumes that START and END are 46 ;; This inline version of 'bit-field' assumes that START and END are
diff --git a/guix/build-system/channel.scm b/guix/build-system/channel.scm
index 7b906dea28b..fe59520d1cc 100644
--- a/guix/build-system/channel.scm
+++ b/guix/build-system/channel.scm
@@ -16,14 +16,6 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19(define-module (guix build-system channel)
20 #:use-module ((guix store) #:select (%store-monad store-lift))
21 #:use-module ((guix gexp) #:select (lower-object))
22 #:use-module (guix monads)
23 #:use-module (guix channels)
24 #:use-module (guix build-system)
25 #:export (channel-build-system))
26
27;;; Commentary: 19;;; Commentary:
28;;; 20;;;
29;;; The "channel" build system lets you build Guix instances from channel 21;;; The "channel" build system lets you build Guix instances from channel
@@ -32,6 +24,14 @@
32;;; 24;;;
33;;; Code: 25;;; Code:
34 26
27(define-module (guix build-system channel)
28 #:use-module ((guix store) #:select (%store-monad store-lift))
29 #:use-module ((guix gexp) #:select (lower-object))
30 #:use-module (guix monads)
31 #:use-module (guix channels)
32 #:use-module (guix build-system)
33 #:export (channel-build-system))
34
35(define latest-channel-instances* 35(define latest-channel-instances*
36 (store-lift latest-channel-instances)) 36 (store-lift latest-channel-instances))
37 37
diff --git a/guix/build/android-repo.scm b/guix/build/android-repo.scm
index db8c4d127ba..531f5e8c40b 100644
--- a/guix/build/android-repo.scm
+++ b/guix/build/android-repo.scm
@@ -17,12 +17,6 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20(define-module (guix build android-repo)
21 #:use-module (guix build utils)
22 #:use-module (srfi srfi-34)
23 #:use-module (ice-9 format)
24 #:export (android-repo-fetch))
25
26;;; Commentary: 20;;; Commentary:
27;;; 21;;;
28;;; This is the build-side support code of (guix android-repo-download). 22;;; This is the build-side support code of (guix android-repo-download).
@@ -31,6 +25,12 @@
31;;; 25;;;
32;;; Code: 26;;; Code:
33 27
28(define-module (guix build android-repo)
29 #:use-module (guix build utils)
30 #:use-module (srfi srfi-34)
31 #:use-module (ice-9 format)
32 #:export (android-repo-fetch))
33
34(define* (android-repo-fetch manifest-url manifest-revision directory 34(define* (android-repo-fetch manifest-url manifest-revision directory
35 #:key (git-repo-command "git-repo")) 35 #:key (git-repo-command "git-repo"))
36 "Fetch packages according to the manifest at MANIFEST-URL with 36 "Fetch packages according to the manifest at MANIFEST-URL with
diff --git a/guix/build/bournish.scm b/guix/build/bournish.scm
index 31fc493b09b..9ec76a0378d 100644
--- a/guix/build/bournish.scm
+++ b/guix/build/bournish.scm
@@ -18,6 +18,14 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21;;; Commentary:
22;;;
23;;; This is a super minimal Bourne-like shell language for Guile. It is meant
24;;; to be used at the REPL as a rescue shell. In a way, this is to Guile what
25;;; eshell is to Emacs.
26;;;
27;;; Code:
28
21(define-module (guix build bournish) 29(define-module (guix build bournish)
22 #:use-module (system base language) 30 #:use-module (system base language)
23 #:use-module (system base compile) 31 #:use-module (system base compile)
@@ -31,14 +39,6 @@
31 #:use-module (srfi srfi-26) 39 #:use-module (srfi srfi-26)
32 #:export (%bournish-language)) 40 #:export (%bournish-language))
33 41
34;;; Commentary:
35;;;
36;;; This is a super minimal Bourne-like shell language for Guile. It is meant
37;;; to be used at the REPL as a rescue shell. In a way, this is to Guile what
38;;; eshell is to Emacs.
39;;;
40;;; Code:
41
42(define (expand-variable str) 42(define (expand-variable str)
43 "Return STR or code to obtain the value of the environment variable STR 43 "Return STR or code to obtain the value of the environment variable STR
44refers to." 44refers to."
diff --git a/guix/build/bzr.scm b/guix/build/bzr.scm
index dede5e031ab..1dcaa7b61f8 100644
--- a/guix/build/bzr.scm
+++ b/guix/build/bzr.scm
@@ -16,10 +16,6 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19(define-module (guix build bzr)
20 #:use-module (guix build utils)
21 #:export (bzr-fetch))
22
23;;; Commentary: 19;;; Commentary:
24;;; 20;;;
25;;; This is the build-side support code of (guix bzr-download). It allows a 21;;; This is the build-side support code of (guix bzr-download). It allows a
@@ -27,6 +23,10 @@
27;;; 23;;;
28;;; Code: 24;;; Code:
29 25
26(define-module (guix build bzr)
27 #:use-module (guix build utils)
28 #:export (bzr-fetch))
29
30(define* (bzr-fetch url revision directory 30(define* (bzr-fetch url revision directory
31 #:key (bzr-command "brz")) 31 #:key (bzr-command "brz"))
32 "Fetch REVISION from URL into DIRECTORY. REVISION must be a valid Bazaar 32 "Fetch REVISION from URL into DIRECTORY. REVISION must be a valid Bazaar
diff --git a/guix/build/compile.scm b/guix/build/compile.scm
index f90016b9ae8..03d6b5396bb 100644
--- a/guix/build/compile.scm
+++ b/guix/build/compile.scm
@@ -17,6 +17,12 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; Support code to compile Guile code as efficiently as possible (with 2.2).
23;;;
24;;; Code:
25
20(define-module (guix build compile) 26(define-module (guix build compile)
21 #:use-module (srfi srfi-1) 27 #:use-module (srfi srfi-1)
22 #:use-module (ice-9 match) 28 #:use-module (ice-9 match)
@@ -31,12 +37,6 @@
31 #:use-module (language cps optimize) 37 #:use-module (language cps optimize)
32 #:export (compile-files)) 38 #:export (compile-files))
33 39
34;;; Commentary:
35;;;
36;;; Support code to compile Guile code as efficiently as possible (with 2.2).
37;;;
38;;; Code:
39
40(define (clear-keyword-arguments keywords args) 40(define (clear-keyword-arguments keywords args)
41 "Set to #f the value associated with each of the KEYWORDS in ARGS." 41 "Set to #f the value associated with each of the KEYWORDS in ARGS."
42 (let loop ((args args) 42 (let loop ((args args)
diff --git a/guix/build/cvs.scm b/guix/build/cvs.scm
index 71110437475..2ad0beb0b6d 100644
--- a/guix/build/cvs.scm
+++ b/guix/build/cvs.scm
@@ -17,12 +17,6 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20(define-module (guix build cvs)
21 #:use-module (guix build utils)
22 #:use-module (ice-9 regex)
23 #:use-module (ice-9 ftw)
24 #:export (cvs-fetch))
25
26;;; Commentary: 20;;; Commentary:
27;;; 21;;;
28;;; This is the build-side support code of (guix cvs-download). It allows a 22;;; This is the build-side support code of (guix cvs-download). It allows a
@@ -30,6 +24,12 @@
30;;; 24;;;
31;;; Code: 25;;; Code:
32 26
27(define-module (guix build cvs)
28 #:use-module (guix build utils)
29 #:use-module (ice-9 regex)
30 #:use-module (ice-9 ftw)
31 #:export (cvs-fetch))
32
33(define (find-cvs-directories) 33(define (find-cvs-directories)
34 (define (enter? path st result) 34 (define (enter? path st result)
35 (not (string-suffix? "/CVS" path))) 35 (not (string-suffix? "/CVS" path)))
diff --git a/guix/build/debug-link.scm b/guix/build/debug-link.scm
index 80941df2fc7..4ea1f587ef1 100644
--- a/guix/build/debug-link.scm
+++ b/guix/build/debug-link.scm
@@ -16,6 +16,20 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module provides tools to deal with '.gnu_debuglink' sections in ELF
22;;; files. These sections are created by 'objcopy --add-gnu-debuglink' to
23;;; create separate debug files (info "(gdb) Separate Debug Files").
24;;;
25;;; The main facility of this module is 'graft-debug-links', which allows us
26;;; to update the cyclic redundancy check (CRC) that appears in
27;;; '.gnu_debuglink' sections when grafting, such that separate debug files
28;;; remain usable after grafting. Failing to do that, GDB would complain
29;;; about CRC mismatch---see <https://issues.guix.gnu.org/19973>.
30;;;
31;;; Code:
32
19(define-module (guix build debug-link) 33(define-module (guix build debug-link)
20 #:use-module (guix elf) 34 #:use-module (guix elf)
21 #:use-module ((guix build utils) 35 #:use-module ((guix build utils)
@@ -31,20 +45,6 @@
31 45
32 graft-debug-links)) 46 graft-debug-links))
33 47
34;;; Commentary:
35;;;
36;;; This module provides tools to deal with '.gnu_debuglink' sections in ELF
37;;; files. These sections are created by 'objcopy --add-gnu-debuglink' to
38;;; create separate debug files (info "(gdb) Separate Debug Files").
39;;;
40;;; The main facility of this module is 'graft-debug-links', which allows us
41;;; to update the cyclic redundancy check (CRC) that appears in
42;;; '.gnu_debuglink' sections when grafting, such that separate debug files
43;;; remain usable after grafting. Failing to do that, GDB would complain
44;;; about CRC mismatch---see <https://issues.guix.gnu.org/19973>.
45;;;
46;;; Code:
47
48(define %crc32-table 48(define %crc32-table
49 ;; CRC table taken from "(gdb) Separate Debug Files". 49 ;; CRC table taken from "(gdb) Separate Debug Files".
50 ;; TODO: Wouldn't it be nice to generate it "from source" with a macro? 50 ;; TODO: Wouldn't it be nice to generate it "from source" with a macro?
diff --git a/guix/build/download-nar.scm b/guix/build/download-nar.scm
index e1153e20275..796bc957a4e 100644
--- a/guix/build/download-nar.scm
+++ b/guix/build/download-nar.scm
@@ -16,6 +16,15 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; Download a normalized archive or "nar", similar to what 'guix substitute'
22;;; does. The intent here is to use substitute servers as content-addressed
23;;; mirrors of VCS checkouts. This is mostly useful for users who have
24;;; disabled substitutes.
25;;;
26;;; Code:
27
19(define-module (guix build download-nar) 28(define-module (guix build download-nar)
20 #:use-module (guix build download) 29 #:use-module (guix build download)
21 #:use-module ((guix serialization) #:hide (dump-port*)) 30 #:use-module ((guix serialization) #:hide (dump-port*))
@@ -28,15 +37,6 @@
28 #:use-module (ice-9 match) 37 #:use-module (ice-9 match)
29 #:export (download-nar)) 38 #:export (download-nar))
30 39
31;;; Commentary:
32;;;
33;;; Download a normalized archive or "nar", similar to what 'guix substitute'
34;;; does. The intent here is to use substitute servers as content-addressed
35;;; mirrors of VCS checkouts. This is mostly useful for users who have
36;;; disabled substitutes.
37;;;
38;;; Code:
39
40(define (urls-for-item item) 40(define (urls-for-item item)
41 "Return the fallback nar URL for ITEM--e.g., 41 "Return the fallback nar URL for ITEM--e.g.,
42\"/gnu/store/cabbag3…-foo-1.2-checkout\"." 42\"/gnu/store/cabbag3…-foo-1.2-checkout\"."
diff --git a/guix/build/download.scm b/guix/build/download.scm
index 8cf1814ea11..bf3f330b744 100644
--- a/guix/build/download.scm
+++ b/guix/build/download.scm
@@ -19,6 +19,12 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; Fetch data such as tarballs over HTTP or FTP (builder-side code).
25;;;
26;;; Code:
27
22(define-module (guix build download) 28(define-module (guix build download)
23 #:use-module (web uri) 29 #:use-module (web uri)
24 #:use-module (web http) 30 #:use-module (web http)
@@ -56,12 +62,6 @@
56 nar-uri-abbreviation 62 nar-uri-abbreviation
57 store-path-abbreviation)) 63 store-path-abbreviation))
58 64
59;;; Commentary:
60;;;
61;;; Fetch data such as tarballs over HTTP or FTP (builder-side code).
62;;;
63;;; Code:
64
65(define %http-receive-buffer-size 65(define %http-receive-buffer-size
66 ;; Size of the HTTP receive buffer. 66 ;; Size of the HTTP receive buffer.
67 65536) 67 65536)
diff --git a/guix/build/elm-build-system.scm b/guix/build/elm-build-system.scm
index a2a54ab28c3..34c561452c5 100644
--- a/guix/build/elm-build-system.scm
+++ b/guix/build/elm-build-system.scm
@@ -16,26 +16,6 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19(define-module (guix build elm-build-system)
20 #:use-module ((guix build gnu-build-system) #:prefix gnu:)
21 #:use-module (guix build utils)
22 #:use-module (guix build union)
23 #:use-module (ice-9 ftw)
24 #:use-module (ice-9 rdelim)
25 #:use-module (ice-9 regex)
26 #:use-module (ice-9 match)
27 #:use-module (ice-9 popen)
28 #:use-module (ice-9 vlist)
29 #:use-module (json)
30 #:use-module (srfi srfi-1)
31 #:use-module (srfi srfi-26)
32 #:use-module (srfi srfi-71)
33 #:export (%standard-phases
34 patch-application-dependencies
35 patch-json-string-escapes
36 read-offline-registry->vhash
37 elm-build))
38
39;;; Commentary: 19;;; Commentary:
40;;; 20;;;
41;;; Elm draws a sharp distinction between "projects" with `{"type":"package"}` 21;;; Elm draws a sharp distinction between "projects" with `{"type":"package"}`
@@ -90,6 +70,26 @@
90;;; Code: 70;;; Code:
91;;; 71;;;
92 72
73(define-module (guix build elm-build-system)
74 #:use-module ((guix build gnu-build-system) #:prefix gnu:)
75 #:use-module (guix build utils)
76 #:use-module (guix build union)
77 #:use-module (ice-9 ftw)
78 #:use-module (ice-9 rdelim)
79 #:use-module (ice-9 regex)
80 #:use-module (ice-9 match)
81 #:use-module (ice-9 popen)
82 #:use-module (ice-9 vlist)
83 #:use-module (json)
84 #:use-module (srfi srfi-1)
85 #:use-module (srfi srfi-26)
86 #:use-module (srfi srfi-71)
87 #:export (%standard-phases
88 patch-application-dependencies
89 patch-json-string-escapes
90 read-offline-registry->vhash
91 elm-build))
92
93(define %essential-elm-packages 93(define %essential-elm-packages
94 ;; elm/json isn't essential in a fundamental sense, 94 ;; elm/json isn't essential in a fundamental sense,
95 ;; but it's required for a {"type":"application"}, 95 ;; but it's required for a {"type":"application"},
diff --git a/guix/build/emacs-utils.scm b/guix/build/emacs-utils.scm
index 41914e7dcb0..e7763658da8 100644
--- a/guix/build/emacs-utils.scm
+++ b/guix/build/emacs-utils.scm
@@ -20,6 +20,13 @@
20;;; You should have received a copy of the GNU General Public License 20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22 22
23;;; Commentary:
24;;;
25;;; Tools to programmatically edit files using Emacs,
26;;; e.g. to replace entire s-expressions in elisp files.
27;;;
28;;; Code:
29
23(define-module (guix build emacs-utils) 30(define-module (guix build emacs-utils)
24 #:use-module (guix build utils) 31 #:use-module (guix build utils)
25 #:use-module (ice-9 format) 32 #:use-module (ice-9 format)
@@ -47,13 +54,6 @@
47 emacs-substitute-sexps 54 emacs-substitute-sexps
48 emacs-substitute-variables)) 55 emacs-substitute-variables))
49 56
50;;; Commentary:
51;;;
52;;; Tools to programmatically edit files using Emacs,
53;;; e.g. to replace entire s-expressions in elisp files.
54;;;
55;;; Code:
56
57(define %emacs 57(define %emacs
58 ;; The `emacs' command. 58 ;; The `emacs' command.
59 (make-parameter "emacs")) 59 (make-parameter "emacs"))
diff --git a/guix/build/git.scm b/guix/build/git.scm
index 98077fe8be3..d74364d0a69 100644
--- a/guix/build/git.scm
+++ b/guix/build/git.scm
@@ -17,6 +17,13 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; This is the build-side support code of (guix git-download). It allows a
23;;; Git repository to be cloned and checked out at a specific commit.
24;;;
25;;; Code:
26
20(define-module (guix build git) 27(define-module (guix build git)
21 #:use-module (guix build utils) 28 #:use-module (guix build utils)
22 #:use-module ((guix build download) 29 #:use-module ((guix build download)
@@ -30,13 +37,6 @@
30 #:export (git-fetch 37 #:export (git-fetch
31 git-fetch-with-fallback)) 38 git-fetch-with-fallback))
32 39
33;;; Commentary:
34;;;
35;;; This is the build-side support code of (guix git-download). It allows a
36;;; Git repository to be cloned and checked out at a specific commit.
37;;;
38;;; Code:
39
40(define* (git-fetch url commit directory 40(define* (git-fetch url commit directory
41 #:key (git-command "git") 41 #:key (git-command "git")
42 lfs? recursive?) 42 lfs? recursive?)
diff --git a/guix/build/gnu-dist.scm b/guix/build/gnu-dist.scm
index 59ac0012b80..4d6b19d3358 100644
--- a/guix/build/gnu-dist.scm
+++ b/guix/build/gnu-dist.scm
@@ -18,12 +18,6 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21(define-module (guix build gnu-dist)
22 #:use-module (guix build utils)
23 #:use-module (guix build gnu-build-system)
24 #:use-module (srfi srfi-1)
25 #:export (%dist-phases))
26
27;;; Commentary: 21;;; Commentary:
28;;; 22;;;
29;;; Build phases to build a source tarball with the GNU build system, as with 23;;; Build phases to build a source tarball with the GNU build system, as with
@@ -31,6 +25,12 @@
31;;; 25;;;
32;;; Code: 26;;; Code:
33 27
28(define-module (guix build gnu-dist)
29 #:use-module (guix build utils)
30 #:use-module (guix build gnu-build-system)
31 #:use-module (srfi srfi-1)
32 #:export (%dist-phases))
33
34(define* (build #:key build-before-dist? make-flags (dist-target "distcheck") 34(define* (build #:key build-before-dist? make-flags (dist-target "distcheck")
35 #:allow-other-keys 35 #:allow-other-keys
36 #:rest args) 36 #:rest args)
diff --git a/guix/build/graft.scm b/guix/build/graft.scm
index 49fabfea174..77ae9a4b294 100644
--- a/guix/build/graft.scm
+++ b/guix/build/graft.scm
@@ -17,20 +17,6 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20(define-module (guix build graft)
21 #:use-module (guix build utils)
22 #:use-module (guix build debug-link)
23 #:use-module (rnrs bytevectors)
24 #:use-module (ice-9 vlist)
25 #:use-module (ice-9 match)
26 #:use-module (ice-9 threads)
27 #:use-module (ice-9 binary-ports)
28 #:use-module (srfi srfi-1) ; list library
29 #:use-module (srfi srfi-26) ; cut and cute
30 #:export (replace-store-references
31 rewrite-directory
32 graft))
33
34;;; Commentary: 20;;; Commentary:
35;;; 21;;;
36;;; This module supports "grafts". Grafting a directory means rewriting it, 22;;; This module supports "grafts". Grafting a directory means rewriting it,
@@ -44,6 +30,20 @@
44;;; 30;;;
45;;; Code: 31;;; Code:
46 32
33(define-module (guix build graft)
34 #:use-module (guix build utils)
35 #:use-module (guix build debug-link)
36 #:use-module (rnrs bytevectors)
37 #:use-module (ice-9 vlist)
38 #:use-module (ice-9 match)
39 #:use-module (ice-9 threads)
40 #:use-module (ice-9 binary-ports)
41 #:use-module (srfi srfi-1) ; list library
42 #:use-module (srfi srfi-26) ; cut and cute
43 #:export (replace-store-references
44 rewrite-directory
45 graft))
46
47(define-constant hash-length %store-hash-string-length) 47(define-constant hash-length %store-hash-string-length)
48 48
49(define nix-base32-char? 49(define nix-base32-char?
diff --git a/guix/build/gremlin.scm b/guix/build/gremlin.scm
index 2a74d51dd91..bd56cf83030 100644
--- a/guix/build/gremlin.scm
+++ b/guix/build/gremlin.scm
@@ -16,6 +16,13 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; A gremlin is sort-of like an elf, you know, and this module provides tools
22;;; to deal with dynamic-link information from ELF files.
23;;;
24;;; Code:
25
19(define-module (guix build gremlin) 26(define-module (guix build gremlin)
20 #:use-module (guix elf) 27 #:use-module (guix elf)
21 #:use-module ((guix build utils) #:select (store-file-name?)) 28 #:use-module ((guix build utils) #:select (store-file-name?))
@@ -55,13 +62,6 @@
55 validate-needed-in-runpath 62 validate-needed-in-runpath
56 strip-runpath)) 63 strip-runpath))
57 64
58;;; Commentary:
59;;;
60;;; A gremlin is sort-of like an elf, you know, and this module provides tools
61;;; to deal with dynamic-link information from ELF files.
62;;;
63;;; Code:
64
65(define-condition-type &elf-error &error 65(define-condition-type &elf-error &error
66 elf-error? 66 elf-error?
67 (elf elf-error-elf)) 67 (elf elf-error-elf))
diff --git a/guix/build/hg.scm b/guix/build/hg.scm
index 0ffad7fa2dc..d0f71d0fd47 100644
--- a/guix/build/hg.scm
+++ b/guix/build/hg.scm
@@ -19,12 +19,6 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22(define-module (guix build hg)
23 #:use-module (guix build utils)
24 #:use-module (srfi srfi-34)
25 #:use-module (ice-9 format)
26 #:export (hg-fetch))
27
28;;; Commentary: 22;;; Commentary:
29;;; 23;;;
30;;; This is the build-side support code of (guix hg-download). It allows a 24;;; This is the build-side support code of (guix hg-download). It allows a
@@ -33,6 +27,12 @@
33;;; 27;;;
34;;; Code: 28;;; Code:
35 29
30(define-module (guix build hg)
31 #:use-module (guix build utils)
32 #:use-module (srfi srfi-34)
33 #:use-module (ice-9 format)
34 #:export (hg-fetch))
35
36(define* (hg-fetch url changeset directory 36(define* (hg-fetch url changeset directory
37 #:key (hg-command "hg")) 37 #:key (hg-command "hg"))
38 "Fetch CHANGESET from URL into DIRECTORY. CHANGESET must be a valid 38 "Fetch CHANGESET from URL into DIRECTORY. CHANGESET must be a valid
diff --git a/guix/build/lisp-utils.scm b/guix/build/lisp-utils.scm
index 09965c598e8..6c2d55e45b7 100644
--- a/guix/build/lisp-utils.scm
+++ b/guix/build/lisp-utils.scm
@@ -18,6 +18,14 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21;;; Commentary:
22;;;
23;;; Tools to evaluate lisp programs within a lisp session, generate wrapper
24;;; systems for executables. Compile, test, and produce images for systems and
25;;; programs, and link them with their dependencies.
26;;;
27;;; Code:
28
21(define-module (guix build lisp-utils) 29(define-module (guix build lisp-utils)
22 #:use-module (ice-9 format) 30 #:use-module (ice-9 format)
23 #:use-module (ice-9 hash-table) 31 #:use-module (ice-9 hash-table)
@@ -45,14 +53,6 @@
45 normalize-string 53 normalize-string
46 library-output)) 54 library-output))
47 55
48;;; Commentary:
49;;;
50;;; Tools to evaluate lisp programs within a lisp session, generate wrapper
51;;; systems for executables. Compile, test, and produce images for systems and
52;;; programs, and link them with their dependencies.
53;;;
54;;; Code:
55
56(define %lisp 56(define %lisp
57 ;; File name of the Lisp compiler. 57 ;; File name of the Lisp compiler.
58 (make-parameter "lisp")) 58 (make-parameter "lisp"))
diff --git a/guix/build/pack.scm b/guix/build/pack.scm
index 1b281014698..c68f2bffcdc 100644
--- a/guix/build/pack.scm
+++ b/guix/build/pack.scm
@@ -16,6 +16,15 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module contains build-side common procedures used by the host-side
22;;; (guix scripts pack) module, mostly to allow for code reuse. Due to making
23;;; use of the (guix build store-copy) module, it transitively requires the
24;;; sqlite and gcrypt extensions to be available.
25;;;
26;;; Code:
27
19(define-module (guix build pack) 28(define-module (guix build pack)
20 #:use-module (gnu build install) 29 #:use-module (gnu build install)
21 #:use-module (guix build utils) 30 #:use-module (guix build utils)
@@ -28,15 +37,6 @@
28 populate-profile-root 37 populate-profile-root
29 build-self-contained-tarball)) 38 build-self-contained-tarball))
30 39
31;;; Commentary:
32
33;;; This module contains build-side common procedures used by the host-side
34;;; (guix scripts pack) module, mostly to allow for code reuse. Due to making
35;;; use of the (guix build store-copy) module, it transitively requires the
36;;; sqlite and gcrypt extensions to be available.
37
38;;; Code:
39
40(define* (tar-base-options #:key tar compressor) 40(define* (tar-base-options #:key tar compressor)
41 "Return the base GNU tar options required to produce deterministic archives 41 "Return the base GNU tar options required to produce deterministic archives
42deterministically. When TAR, a GNU tar command file name, is provided, the 42deterministically. When TAR, a GNU tar command file name, is provided, the
diff --git a/guix/build/profiles.scm b/guix/build/profiles.scm
index b19d93f9714..bde78bfd024 100644
--- a/guix/build/profiles.scm
+++ b/guix/build/profiles.scm
@@ -16,6 +16,13 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; Build a user profile (essentially the union of all the installed packages)
22;;; with its associated meta-data.
23;;;
24;;; Code:
25
19(define-module (guix build profiles) 26(define-module (guix build profiles)
20 #:use-module (guix build union) 27 #:use-module (guix build union)
21 #:use-module (guix build utils) 28 #:use-module (guix build utils)
@@ -30,13 +37,6 @@
30 #:export (ensure-writable-directory 37 #:export (ensure-writable-directory
31 build-profile)) 38 build-profile))
32 39
33;;; Commentary:
34;;;
35;;; Build a user profile (essentially the union of all the installed packages)
36;;; with its associated meta-data.
37;;;
38;;; Code:
39
40(define (abstract-profile profile) 40(define (abstract-profile profile)
41 "Return a procedure that replaces PROFILE in VALUE with a reference to the 41 "Return a procedure that replaces PROFILE in VALUE with a reference to the
42'GUIX_PROFILE' environment variable. This allows users to specify what the 42'GUIX_PROFILE' environment variable. This allows users to specify what the
diff --git a/guix/build/pyproject-build-system.scm b/guix/build/pyproject-build-system.scm
index f611afada24..3effdc61600 100644
--- a/guix/build/pyproject-build-system.scm
+++ b/guix/build/pyproject-build-system.scm
@@ -20,29 +20,6 @@
20;;; You should have received a copy of the GNU General Public License 20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22 22
23(define-module (guix build pyproject-build-system)
24 #:autoload (json builder) (scm->json scm->json-string)
25 #:use-module ((guix build gnu-build-system) #:prefix gnu:)
26 #:use-module (guix build utils)
27 #:use-module (guix build toml)
28 #:use-module (ice-9 match)
29 #:use-module (ice-9 ftw)
30 #:use-module (ice-9 format)
31 #:use-module (ice-9 rdelim)
32 #:use-module (ice-9 regex)
33 #:use-module (srfi srfi-1)
34 #:use-module (srfi srfi-2)
35 #:use-module (srfi srfi-26)
36 #:use-module (srfi srfi-34)
37 #:use-module (srfi srfi-35)
38 #:use-module (srfi srfi-71)
39 #:export (%standard-phases
40 add-installed-pythonpath
41 ensure-no-mtimes-pre-1980
42 site-packages
43 python-version
44 pyproject-build))
45
46;;; Commentary: 23;;; Commentary:
47;;; 24;;;
48;;; PEP 517-compatible build system for Python packages. 25;;; PEP 517-compatible build system for Python packages.
@@ -71,7 +48,29 @@
71;;; overridden by #:backend-path. 48;;; overridden by #:backend-path.
72;;; 49;;;
73;;; Code: 50;;; Code:
74;;; 51
52(define-module (guix build pyproject-build-system)
53 #:autoload (json builder) (scm->json scm->json-string)
54 #:use-module ((guix build gnu-build-system) #:prefix gnu:)
55 #:use-module (guix build utils)
56 #:use-module (guix build toml)
57 #:use-module (ice-9 match)
58 #:use-module (ice-9 ftw)
59 #:use-module (ice-9 format)
60 #:use-module (ice-9 rdelim)
61 #:use-module (ice-9 regex)
62 #:use-module (srfi srfi-1)
63 #:use-module (srfi srfi-2)
64 #:use-module (srfi srfi-26)
65 #:use-module (srfi srfi-34)
66 #:use-module (srfi srfi-35)
67 #:use-module (srfi srfi-71)
68 #:export (%standard-phases
69 add-installed-pythonpath
70 ensure-no-mtimes-pre-1980
71 site-packages
72 python-version
73 pyproject-build))
75 74
76;; Copy these procedures from python-build-system as many packages 75;; Copy these procedures from python-build-system as many packages
77;; rely on these. 76;; rely on these.
diff --git a/guix/build/store-copy.scm b/guix/build/store-copy.scm
index 657a91f324a..1abb1a5b01a 100644
--- a/guix/build/store-copy.scm
+++ b/guix/build/store-copy.scm
@@ -16,6 +16,15 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module provides the tools to copy store items and their dependencies
22;;; to another store. It relies on the availability of "reference graph"
23;;; files as produced by 'gexp->derivation' et al. with the
24;;; #:references-graphs parameter.
25;;;
26;;; Code:
27
19(define-module (guix build store-copy) 28(define-module (guix build store-copy)
20 #:use-module ((guix build utils) #:hide (copy-recursively)) 29 #:use-module ((guix build utils) #:hide (copy-recursively))
21 #:use-module (guix sets) 30 #:use-module (guix sets)
@@ -41,15 +50,6 @@
41 copy-store-item 50 copy-store-item
42 populate-store)) 51 populate-store))
43 52
44;;; Commentary:
45;;;
46;;; This module provides the tools to copy store items and their dependencies
47;;; to another store. It relies on the availability of "reference graph"
48;;; files as produced by 'gexp->derivation' et al. with the
49;;; #:references-graphs parameter.
50;;;
51;;; Code:
52
53;; Information about a store item as produced by #:references-graphs. 53;; Information about a store item as produced by #:references-graphs.
54(define-record-type <store-info> 54(define-record-type <store-info>
55 (store-info item deriver references) 55 (store-info item deriver references)
diff --git a/guix/build/svn.scm b/guix/build/svn.scm
index ea01e7ee650..9b974792184 100644
--- a/guix/build/svn.scm
+++ b/guix/build/svn.scm
@@ -19,11 +19,6 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22(define-module (guix build svn)
23 #:use-module (guix build utils)
24 #:use-module (srfi srfi-34)
25 #:export (svn-fetch))
26
27;;; Commentary: 22;;; Commentary:
28;;; 23;;;
29;;; This is the build-side support code of (guix svn-download). It allows a 24;;; This is the build-side support code of (guix svn-download). It allows a
@@ -31,6 +26,11 @@
31;;; 26;;;
32;;; Code: 27;;; Code:
33 28
29(define-module (guix build svn)
30 #:use-module (guix build utils)
31 #:use-module (srfi srfi-34)
32 #:export (svn-fetch))
33
34(define* (svn-fetch url revision directory 34(define* (svn-fetch url revision directory
35 #:key (svn-command "svn") 35 #:key (svn-command "svn")
36 (recursive? #t) 36 (recursive? #t)
diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
index da3f56350f2..ee9711f41e3 100644
--- a/guix/build/syscalls.scm
+++ b/guix/build/syscalls.scm
@@ -27,6 +27,25 @@
27;;; You should have received a copy of the GNU General Public License 27;;; You should have received a copy of the GNU General Public License
28;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 28;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
29 29
30;;; Commentary:
31;;;
32;;; This module provides bindings to libc's syscall wrappers. It uses the
33;;; FFI, and thus requires a dynamically-linked Guile.
34;;;
35;;; Some syscalls are already defined in statically-linked Guile by applying
36;;; 'guile-linux-syscalls.patch'.
37;;;
38;;; Visibility of syscall's symbols shared between this module and static Guile
39;;; is a bit delicate. It is handled by 'define-as-needed' macro.
40;;;
41;;; This macro is used to export symbols in dynamic Guile context, and to
42;;; re-export them in static Guile context.
43;;;
44;;; This way, even if they don't appear in #:export list, it is safe to use
45;;; syscalls from this module in static or dynamic Guile context.
46;;;
47;;; Code:
48
30(define-module (guix build syscalls) 49(define-module (guix build syscalls)
31 #:use-module (system foreign) 50 #:use-module (system foreign)
32 #:use-module (system base target) 51 #:use-module (system base target)
@@ -228,25 +247,6 @@
228 utmpx-entries 247 utmpx-entries
229 (read-utmpx-from-port . read-utmpx))) 248 (read-utmpx-from-port . read-utmpx)))
230 249
231;;; Commentary:
232;;;
233;;; This module provides bindings to libc's syscall wrappers. It uses the
234;;; FFI, and thus requires a dynamically-linked Guile.
235;;;
236;;; Some syscalls are already defined in statically-linked Guile by applying
237;;; 'guile-linux-syscalls.patch'.
238;;;
239;;; Visibility of syscall's symbols shared between this module and static Guile
240;;; is a bit delicate. It is handled by 'define-as-needed' macro.
241;;;
242;;; This macro is used to export symbols in dynamic Guile context, and to
243;;; re-export them in static Guile context.
244;;;
245;;; This way, even if they don't appear in #:export list, it is safe to use
246;;; syscalls from this module in static or dynamic Guile context.
247;;;
248;;; Code:
249
250 250
251;;; 251;;;
252;;; Packed structures. 252;;; Packed structures.
diff --git a/guix/build/union.scm b/guix/build/union.scm
index ce6d030109b..bccdb00ce72 100644
--- a/guix/build/union.scm
+++ b/guix/build/union.scm
@@ -18,6 +18,13 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21;;; Commentary:
22;;;
23;;; Build a directory that is the union of a set of directories, using
24;;; symbolic links.
25;;;
26;;; Code:
27
21(define-module (guix build union) 28(define-module (guix build union)
22 #:use-module (ice-9 match) 29 #:use-module (ice-9 match)
23 #:use-module (ice-9 format) 30 #:use-module (ice-9 format)
@@ -32,13 +39,6 @@
32 relative-file-name 39 relative-file-name
33 symlink-relative)) 40 symlink-relative))
34 41
35;;; Commentary:
36;;;
37;;; Build a directory that is the union of a set of directories, using
38;;; symbolic links.
39;;;
40;;; Code:
41
42;; This code can be used with the bootstrap Guile, which is Guile 2.0, so 42;; This code can be used with the bootstrap Guile, which is Guile 2.0, so
43;; provide a compatibility layer. 43;; provide a compatibility layer.
44(cond-expand 44(cond-expand
diff --git a/guix/bzr-download.scm b/guix/bzr-download.scm
index cdd7f431397..ba812a9065c 100644
--- a/guix/bzr-download.scm
+++ b/guix/bzr-download.scm
@@ -17,6 +17,14 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; An <origin> method that fetches a specific revision from a Bazaar
23;;; repository. The repository URL and revision identifier are specified with
24;;; a <bzr-reference> object.
25;;;
26;;; Code:
27
20(define-module (guix bzr-download) 28(define-module (guix bzr-download)
21 #:use-module (guix gexp) 29 #:use-module (guix gexp)
22 #:use-module (guix modules) ;for 'source-module-closure' 30 #:use-module (guix modules) ;for 'source-module-closure'
@@ -32,14 +40,6 @@
32 40
33 bzr-fetch)) 41 bzr-fetch))
34 42
35;;; Commentary:
36;;;
37;;; An <origin> method that fetches a specific revision from a Bazaar
38;;; repository. The repository URL and revision identifier are specified with
39;;; a <bzr-reference> object.
40;;;
41;;; Code:
42
43(define-record-type* <bzr-reference> 43(define-record-type* <bzr-reference>
44 bzr-reference make-bzr-reference 44 bzr-reference make-bzr-reference
45 bzr-reference? 45 bzr-reference?
diff --git a/guix/cache.scm b/guix/cache.scm
index c1a12b17620..f3e5612a8e3 100644
--- a/guix/cache.scm
+++ b/guix/cache.scm
@@ -17,6 +17,13 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; This module provides tools to manage a simple on-disk cache consisting of
23;;; individual files.
24;;;
25;;; Code:
26
20(define-module (guix cache) 27(define-module (guix cache)
21 #:autoload (guix build syscalls) (lock-file unlock-file) 28 #:autoload (guix build syscalls) (lock-file unlock-file)
22 #:use-module (srfi srfi-19) 29 #:use-module (srfi srfi-19)
@@ -29,13 +36,6 @@
29 remove-expired-cache-entries 36 remove-expired-cache-entries
30 maybe-remove-expired-cache-entries)) 37 maybe-remove-expired-cache-entries))
31 38
32;;; Commentary:
33;;;
34;;; This module provides tools to manage a simple on-disk cache consisting of
35;;; individual files.
36;;;
37;;; Code:
38
39(define (obsolete? date now ttl) 39(define (obsolete? date now ttl)
40 "Return #t if DATE is obsolete compared to NOW + TTL seconds." 40 "Return #t if DATE is obsolete compared to NOW + TTL seconds."
41 (time>? (subtract-duration now (make-time time-duration 0 ttl)) 41 (time>? (subtract-duration now (make-time time-duration 0 ttl))
diff --git a/guix/channels.scm b/guix/channels.scm
index f216e201570..04cd2b8a2ed 100644
--- a/guix/channels.scm
+++ b/guix/channels.scm
@@ -22,6 +22,19 @@
22;;; You should have received a copy of the GNU General Public License 22;;; You should have received a copy of the GNU General Public License
23;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 23;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
24 24
25;;; Commentary:
26;;;
27;;; This module implements "channels." A channel is usually a source of
28;;; package definitions. There's a special channel, the 'guix' channel, that
29;;; provides all of Guix, including its commands and its documentation.
30;;; User-defined channels are expected to typically provide a bunch of .scm
31;;; files meant to be added to the '%package-search-path'.
32;;;
33;;; This module provides tools to fetch and update channels from a Git
34;;; repository and to build them.
35;;;
36;;; Code:
37
25(define-module (guix channels) 38(define-module (guix channels)
26 #:autoload (git commit) (commit-lookup 39 #:autoload (git commit) (commit-lookup
27 commit-id) 40 commit-id)
@@ -119,19 +132,6 @@
119 132
120 channel-news-for-commit)) 133 channel-news-for-commit))
121 134
122;;; Commentary:
123;;;
124;;; This module implements "channels." A channel is usually a source of
125;;; package definitions. There's a special channel, the 'guix' channel, that
126;;; provides all of Guix, including its commands and its documentation.
127;;; User-defined channels are expected to typically provide a bunch of .scm
128;;; files meant to be added to the '%package-search-path'.
129;;;
130;;; This module provides tools to fetch and update channels from a Git
131;;; repository and to build them.
132;;;
133;;; Code:
134
135(define-record-type* <channel> channel make-channel 135(define-record-type* <channel> channel make-channel
136 channel? 136 channel?
137 (name channel-name) 137 (name channel-name)
diff --git a/guix/ci.scm b/guix/ci.scm
index b2077448b02..9a1f0c144a0 100644
--- a/guix/ci.scm
+++ b/guix/ci.scm
@@ -17,6 +17,13 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; This module provides a client to the HTTP interface of the Hydra and
23;;; Cuirass continuous integration (CI) tools.
24;;;
25;;; Code:
26
20(define-module (guix ci) 27(define-module (guix ci)
21 #:use-module (guix http-client) 28 #:use-module (guix http-client)
22 #:use-module (guix utils) 29 #:use-module (guix utils)
@@ -84,13 +91,6 @@
84 91
85 channel-with-substitutes-available)) 92 channel-with-substitutes-available))
86 93
87;;; Commentary:
88;;;
89;;; This module provides a client to the HTTP interface of the Hydra and
90;;; Cuirass continuous integration (CI) tools.
91;;;
92;;; Code:
93
94(define (seconds->date seconds) 94(define (seconds->date seconds)
95 "Given SECONDS, a number of seconds since 1970-01-01, return the 95 "Given SECONDS, a number of seconds since 1970-01-01, return the
96corresponding date object." 96corresponding date object."
diff --git a/guix/colors.scm b/guix/colors.scm
index 09bc7c60cc2..10cacfd1726 100644
--- a/guix/colors.scm
+++ b/guix/colors.scm
@@ -19,6 +19,12 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; This module provides tools to produce colored output using ANSI escapes.
25;;;
26;;; Code:
27
22(define-module (guix colors) 28(define-module (guix colors)
23 #:use-module (guix memoization) 29 #:use-module (guix memoization)
24 #:use-module (srfi srfi-1) 30 #:use-module (srfi srfi-1)
@@ -45,12 +51,6 @@
45 file-hyperlink 51 file-hyperlink
46 hyperlink)) 52 hyperlink))
47 53
48;;; Commentary:
49;;;
50;;; This module provides tools to produce colored output using ANSI escapes.
51;;;
52;;; Code:
53
54;; Record type for "colors", which are actually lists of color attributes. 54;; Record type for "colors", which are actually lists of color attributes.
55(define-record-type <color> 55(define-record-type <color>
56 (make-color symbols ansi) 56 (make-color symbols ansi)
diff --git a/guix/combinators.scm b/guix/combinators.scm
index 261d6bb57e6..3f18b264e59 100644
--- a/guix/combinators.scm
+++ b/guix/combinators.scm
@@ -18,6 +18,13 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21;;; Commentary:
22;;;
23;;; This module provides useful combinators that complement SRFI-1 and
24;;; friends.
25;;;
26;;; Code:
27
21(define-module (guix combinators) 28(define-module (guix combinators)
22 #:use-module (ice-9 match) 29 #:use-module (ice-9 match)
23 #:use-module (ice-9 vlist) 30 #:use-module (ice-9 vlist)
@@ -28,13 +35,6 @@
28 procedure-call-location 35 procedure-call-location
29 define-compile-time-procedure)) 36 define-compile-time-procedure))
30 37
31;;; Commentary:
32;;;
33;;; This module provides useful combinators that complement SRFI-1 and
34;;; friends.
35;;;
36;;; Code:
37
38(define fold2 38(define fold2
39 (case-lambda 39 (case-lambda
40 ((proc seed1 seed2 lst) 40 ((proc seed1 seed2 lst)
diff --git a/guix/config.scm.in b/guix/config.scm.in
index 62e15dd713f..89946ed9e9a 100644
--- a/guix/config.scm.in
+++ b/guix/config.scm.in
@@ -17,6 +17,13 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; Compile-time configuration of Guix. When adding a substitution variable
23;;; here, make sure to equip (guix scripts pull) to substitute it.
24;;;
25;;; Code:
26
20(define-module (guix config) 27(define-module (guix config)
21 #:export (%guix-package-name 28 #:export (%guix-package-name
22 %guix-version 29 %guix-version
@@ -40,13 +47,6 @@
40 %bzip2 47 %bzip2
41 %xz)) 48 %xz))
42 49
43;;; Commentary:
44;;;
45;;; Compile-time configuration of Guix. When adding a substitution variable
46;;; here, make sure to equip (guix scripts pull) to substitute it.
47;;;
48;;; Code:
49
50(define %guix-package-name 50(define %guix-package-name
51 "@PACKAGE_NAME@") 51 "@PACKAGE_NAME@")
52 52
diff --git a/guix/cpio.scm b/guix/cpio.scm
index 876f61ea3c6..6361ea55fc9 100644
--- a/guix/cpio.scm
+++ b/guix/cpio.scm
@@ -17,6 +17,13 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; This module implements the cpio "new ASCII" format, bit-for-bit identical
23;;; to GNU cpio with the '-H newc' option.
24;;;
25;;; Code:
26
20(define-module (guix cpio) 27(define-module (guix cpio)
21 #:use-module ((guix build syscalls) #:select (device-number 28 #:use-module ((guix build syscalls) #:select (device-number
22 device-number->major+minor)) 29 device-number->major+minor))
@@ -36,13 +43,6 @@
36 43
37 write-cpio-archive)) 44 write-cpio-archive))
38 45
39;;; Commentary:
40;;;
41;;; This module implements the cpio "new ASCII" format, bit-for-bit identical
42;;; to GNU cpio with the '-H newc' option.
43;;;
44;;; Code:
45
46;; Values for 'mode', OR'd together. 46;; Values for 'mode', OR'd together.
47 47
48(define C_IRUSR #o000400) 48(define C_IRUSR #o000400)
diff --git a/guix/cpu.scm b/guix/cpu.scm
index 39766f8e9dc..aad06e46e8b 100644
--- a/guix/cpu.scm
+++ b/guix/cpu.scm
@@ -17,6 +17,13 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; This module provides tools to determine the micro-architecture supported
23;;; by the CPU and to map it to a name known to GCC's '-march'.
24;;;
25;;; Code:
26
20(define-module (guix cpu) 27(define-module (guix cpu)
21 #:use-module (guix sets) 28 #:use-module (guix sets)
22 #:use-module (guix memoization) 29 #:use-module (guix memoization)
@@ -35,13 +42,6 @@
35 cpu->gcc-architecture 42 cpu->gcc-architecture
36 gcc-architecture->micro-architecture-level)) 43 gcc-architecture->micro-architecture-level))
37 44
38;;; Commentary:
39;;;
40;;; This module provides tools to determine the micro-architecture supported
41;;; by the CPU and to map it to a name known to GCC's '-march'.
42;;;
43;;; Code:
44
45;; CPU description. 45;; CPU description.
46(define-record-type <cpu> 46(define-record-type <cpu>
47 (cpu architecture vendor family model flags) 47 (cpu architecture vendor family model flags)
diff --git a/guix/cve.scm b/guix/cve.scm
index 5c14b068b17..83f137dba36 100644
--- a/guix/cve.scm
+++ b/guix/cve.scm
@@ -17,6 +17,14 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; This module provides the tools to fetch, parse, and digest part of the
23;;; Common Vulnerabilities and Exposures (CVE) feeds provided by the US NIST
24;;; at <https://nvd.nist.gov/vuln/data-feeds>.
25;;;
26;;; Code:
27
20(define-module (guix cve) 28(define-module (guix cve)
21 #:use-module (guix utils) 29 #:use-module (guix utils)
22 #:use-module (guix http-client) 30 #:use-module (guix http-client)
@@ -54,14 +62,6 @@
54 current-vulnerabilities 62 current-vulnerabilities
55 vulnerabilities->lookup-proc)) 63 vulnerabilities->lookup-proc))
56 64
57;;; Commentary:
58;;;
59;;; This module provides the tools to fetch, parse, and digest part of the
60;;; Common Vulnerabilities and Exposures (CVE) feeds provided by the US NIST
61;;; at <https://nvd.nist.gov/vuln/data-feeds>.
62;;;
63;;; Code:
64
65(define (string->date* str) 65(define (string->date* str)
66 (string->date str "~Y-~m-~dT~H:~M:~S")) 66 (string->date str "~Y-~m-~dT~H:~M:~S"))
67 67
diff --git a/guix/cvs-download.scm b/guix/cvs-download.scm
index 7d7d741b71c..4957e87557a 100644
--- a/guix/cvs-download.scm
+++ b/guix/cvs-download.scm
@@ -18,6 +18,15 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21;;; Commentary:
22;;;
23;;; An <origin> method that fetches a specific revision or date from a CVS
24;;; repository. The CVS-ROOT-DIRECTORY, MODULE and REVISION are specified
25;;; with a <cvs-reference> object. REVISION should be specified as either a
26;;; date string in ISO-8601 format (e.g. "2012-12-21") or a CVS tag.
27;;;
28;;; Code:
29
21(define-module (guix cvs-download) 30(define-module (guix cvs-download)
22 #:use-module (guix records) 31 #:use-module (guix records)
23 #:use-module (guix gexp) 32 #:use-module (guix gexp)
@@ -34,15 +43,6 @@
34 cvs-reference-revision 43 cvs-reference-revision
35 cvs-fetch)) 44 cvs-fetch))
36 45
37;;; Commentary:
38;;;
39;;; An <origin> method that fetches a specific revision or date from a CVS
40;;; repository. The CVS-ROOT-DIRECTORY, MODULE and REVISION are specified
41;;; with a <cvs-reference> object. REVISION should be specified as either a
42;;; date string in ISO-8601 format (e.g. "2012-12-21") or a CVS tag.
43;;;
44;;; Code:
45
46(define-record-type* <cvs-reference> 46(define-record-type* <cvs-reference>
47 cvs-reference make-cvs-reference 47 cvs-reference make-cvs-reference
48 cvs-reference? 48 cvs-reference?
diff --git a/guix/deprecation.scm b/guix/deprecation.scm
index 47e653dfb2d..82be14c8c87 100644
--- a/guix/deprecation.scm
+++ b/guix/deprecation.scm
@@ -17,6 +17,12 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; Provide a mechanism to mark bindings as deprecated.
23;;;
24;;; Code:
25
20(define-module (guix deprecation) 26(define-module (guix deprecation)
21 #:use-module (guix i18n) 27 #:use-module (guix i18n)
22 #:use-module (guix diagnostics) 28 #:use-module (guix diagnostics)
@@ -30,12 +36,6 @@
30 warn-about-old-daemon 36 warn-about-old-daemon
31 warn-about-deprecation)) 37 warn-about-deprecation))
32 38
33;;; Commentary:
34;;;
35;;; Provide a mechanism to mark bindings as deprecated.
36;;;
37;;; Code:
38
39(define (warn-about-old-daemon) 39(define (warn-about-old-daemon)
40 (warning (G_ "Your Guix daemon is severely outdated, and will soon cease to 40 (warning (G_ "Your Guix daemon is severely outdated, and will soon cease to
41be able to download binary substitutes. To upgrade it, refer to the 41be able to download binary substitutes. To upgrade it, refer to the
diff --git a/guix/describe.scm b/guix/describe.scm
index 120a97ab052..40eb6430443 100644
--- a/guix/describe.scm
+++ b/guix/describe.scm
@@ -16,6 +16,16 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module provides supporting code to allow a Guix instance to find, at
22;;; run time, which profile it's in (profiles created by 'guix pull'). That
23;;; allows it to read meta-information about itself (e.g., repository URL and
24;;; commit ID) and to find other channels available in the same profile. It's
25;;; a bit like ELPA's pkg-info.el.
26;;;
27;;; Code:
28
19(define-module (guix describe) 29(define-module (guix describe)
20 #:use-module (guix memoization) 30 #:use-module (guix memoization)
21 #:use-module (guix profiles) 31 #:use-module (guix profiles)
@@ -44,16 +54,6 @@
44 manifest-entry-with-provenance 54 manifest-entry-with-provenance
45 manifest-entry-provenance)) 55 manifest-entry-provenance))
46 56
47;;; Commentary:
48;;;
49;;; This module provides supporting code to allow a Guix instance to find, at
50;;; run time, which profile it's in (profiles created by 'guix pull'). That
51;;; allows it to read meta-information about itself (e.g., repository URL and
52;;; commit ID) and to find other channels available in the same profile. It's
53;;; a bit like ELPA's pkg-info.el.
54;;;
55;;; Code:
56
57(define initial-program-arguments 57(define initial-program-arguments
58 ;; Save the initial program arguments. This allows us to see the "real" 58 ;; Save the initial program arguments. This allows us to see the "real"
59 ;; 'guix' program, even if 'guix repl -s' calls 'set-program-arguments' 59 ;; 'guix' program, even if 'guix repl -s' calls 'set-program-arguments'
diff --git a/guix/diagnostics.scm b/guix/diagnostics.scm
index 3f1f527b437..602b9f6c4ee 100644
--- a/guix/diagnostics.scm
+++ b/guix/diagnostics.scm
@@ -16,6 +16,13 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module provides the tools to report diagnostics to the user in a
22;;; consistent way: errors, warnings, and notes.
23;;;
24;;; Code:
25
19(define-module (guix diagnostics) 26(define-module (guix diagnostics)
20 #:use-module (guix colors) 27 #:use-module (guix colors)
21 #:use-module (guix i18n) 28 #:use-module (guix i18n)
@@ -60,13 +67,6 @@
60 67
61 define-with-syntax-properties)) 68 define-with-syntax-properties))
62 69
63;;; Commentary:
64;;;
65;;; This module provides the tools to report diagnostics to the user in a
66;;; consistent way: errors, warnings, and notes.
67;;;
68;;; Code:
69
70(define (trivial-format-string? fmt) 70(define (trivial-format-string? fmt)
71 (define len 71 (define len
72 (string-length fmt)) 72 (string-length fmt))
diff --git a/guix/discovery.scm b/guix/discovery.scm
index 2febfcdcb71..5a1847b9440 100644
--- a/guix/discovery.scm
+++ b/guix/discovery.scm
@@ -16,6 +16,13 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module provides tools to discover Guile modules and the variables
22;;; they export.
23;;;
24;;; Code:
25
19(define-module (guix discovery) 26(define-module (guix discovery)
20 #:use-module (guix i18n) 27 #:use-module (guix i18n)
21 #:use-module (guix modules) 28 #:use-module (guix modules)
@@ -32,13 +39,6 @@
32 fold-module-public-variables 39 fold-module-public-variables
33 fold-module-public-variables*)) 40 fold-module-public-variables*))
34 41
35;;; Commentary:
36;;;
37;;; This module provides tools to discover Guile modules and the variables
38;;; they export.
39;;;
40;;; Code:
41
42(define* (scheme-files directory) 42(define* (scheme-files directory)
43 "Return the list of Scheme files found under DIRECTORY, recursively. The 43 "Return the list of Scheme files found under DIRECTORY, recursively. The
44returned list is sorted in alphabetical order. Return the empty list if 44returned list is sorted in alphabetical order. Return the empty list if
diff --git a/guix/download.scm b/guix/download.scm
index 0a34e00a852..d76fe10ace1 100644
--- a/guix/download.scm
+++ b/guix/download.scm
@@ -23,6 +23,12 @@
23;;; You should have received a copy of the GNU General Public License 23;;; You should have received a copy of the GNU General Public License
24;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 24;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
25 25
26;;; Commentary:
27;;;
28;;; Produce fixed-output derivations with data fetched over HTTP or FTP.
29;;;
30;;; Code:
31
26(define-module (guix download) 32(define-module (guix download)
27 #:use-module (ice-9 match) 33 #:use-module (ice-9 match)
28 #:use-module (guix derivations) 34 #:use-module (guix derivations)
@@ -44,12 +50,6 @@
44 url-fetch/zipbomb 50 url-fetch/zipbomb
45 download-to-store)) 51 download-to-store))
46 52
47;;; Commentary:
48;;;
49;;; Produce fixed-output derivations with data fetched over HTTP or FTP.
50;;;
51;;; Code:
52
53(define %mirrors 53(define %mirrors
54 ;; Mirror lists used when `mirror://' URLs are passed. The first mirror 54 ;; Mirror lists used when `mirror://' URLs are passed. The first mirror
55 ;; entry of each set should ideally be the most authoritative one, as that's 55 ;; entry of each set should ideally be the most authoritative one, as that's
diff --git a/guix/ftp-client.scm b/guix/ftp-client.scm
index 24b18a8033b..37c83bc7db6 100644
--- a/guix/ftp-client.scm
+++ b/guix/ftp-client.scm
@@ -16,6 +16,12 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; Simple FTP client (RFC 959).
22;;;
23;;; Code:
24
19(define-module (guix ftp-client) 25(define-module (guix ftp-client)
20 #:use-module (srfi srfi-1) 26 #:use-module (srfi srfi-1)
21 #:use-module (srfi srfi-9) 27 #:use-module (srfi srfi-9)
@@ -36,12 +42,6 @@
36 ftp-list 42 ftp-list
37 ftp-retr)) 43 ftp-retr))
38 44
39;;; Commentary:
40;;;
41;;; Simple FTP client (RFC 959).
42;;;
43;;; Code:
44
45;; TODO: Use SRFI-3{4,5} error conditions. 45;; TODO: Use SRFI-3{4,5} error conditions.
46 46
47(define-record-type <ftp-connection> 47(define-record-type <ftp-connection>
diff --git a/guix/gexp.scm b/guix/gexp.scm
index 02b05fb95eb..c53c7f0f38a 100644
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@ -23,6 +23,23 @@
23;;; You should have received a copy of the GNU General Public License 23;;; You should have received a copy of the GNU General Public License
24;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 24;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
25 25
26;;; Commentary:
27;;;
28;;; This module implements "G-expressions", or "gexps". Gexps are like
29;;; S-expressions (sexps), with two differences:
30;;;
31;;; 1. References (un-quotations) to derivations or packages in a gexp are
32;;; replaced by the corresponding output file name; in addition, the
33;;; 'ungexp-native' unquote-like form allows code to explicitly refer to
34;;; the native code of a given package, in case of cross-compilation;
35;;;
36;;; 2. Gexps embed information about the derivations they refer to.
37;;;
38;;; Gexps make it easy to write to files Scheme code that refers to store
39;;; items, or to write Scheme code to build derivations.
40;;;
41;;; Code:
42
26(define-module (guix gexp) 43(define-module (guix gexp)
27 #:use-module (guix store) 44 #:use-module (guix store)
28 #:use-module (guix monads) 45 #:use-module (guix monads)
@@ -142,23 +159,6 @@
142 gexp-input-error? 159 gexp-input-error?
143 gexp-error-invalid-input)) 160 gexp-error-invalid-input))
144 161
145;;; Commentary:
146;;;
147;;; This module implements "G-expressions", or "gexps". Gexps are like
148;;; S-expressions (sexps), with two differences:
149;;;
150;;; 1. References (un-quotations) to derivations or packages in a gexp are
151;;; replaced by the corresponding output file name; in addition, the
152;;; 'ungexp-native' unquote-like form allows code to explicitly refer to
153;;; the native code of a given package, in case of cross-compilation;
154;;;
155;;; 2. Gexps embed information about the derivations they refer to.
156;;;
157;;; Gexps make it easy to write to files Scheme code that refers to store
158;;; items, or to write Scheme code to build derivations.
159;;;
160;;; Code:
161
162;; "G expressions". 162;; "G expressions".
163(define-record-type <gexp> 163(define-record-type <gexp>
164 (make-gexp references modules extensions proc location) 164 (make-gexp references modules extensions proc location)
diff --git a/guix/git-authenticate.scm b/guix/git-authenticate.scm
index 5cf92b422ac..c7a26217236 100644
--- a/guix/git-authenticate.scm
+++ b/guix/git-authenticate.scm
@@ -17,6 +17,15 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; This module provides tools to authenticate a range of Git commits. A
23;;; commit is considered "authentic" if and only if it is signed by an
24;;; authorized party. Parties authorized to sign a commit are listed in the
25;;; '.guix-authorizations' file of the parent commit.
26;;;
27;;; Code:
28
20(define-module (guix git-authenticate) 29(define-module (guix git-authenticate)
21 #:autoload (git oid) (oid->string 30 #:autoload (git oid) (oid->string
22 string->oid) 31 string->oid)
@@ -81,15 +90,6 @@
81 missing-key-error? 90 missing-key-error?
82 missing-key-error-signature)) 91 missing-key-error-signature))
83 92
84;;; Commentary:
85;;;
86;;; This module provides tools to authenticate a range of Git commits. A
87;;; commit is considered "authentic" if and only if it is signed by an
88;;; authorized party. Parties authorized to sign a commit are listed in the
89;;; '.guix-authorizations' file of the parent commit.
90;;;
91;;; Code:
92
93(define-condition-type &git-authentication-error &error 93(define-condition-type &git-authentication-error &error
94 git-authentication-error? 94 git-authentication-error?
95 (commit git-authentication-error-commit)) 95 (commit git-authentication-error-commit))
diff --git a/guix/git-download.scm b/guix/git-download.scm
index 609382eba11..a636a36bb47 100644
--- a/guix/git-download.scm
+++ b/guix/git-download.scm
@@ -21,6 +21,14 @@
21;;; You should have received a copy of the GNU General Public License 21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23 23
24;;; Commentary:
25;;;
26;;; An <origin> method that fetches a specific commit from a Git repository.
27;;; The repository URL and commit hash are specified with a <git-reference>
28;;; object.
29;;;
30;;; Code:
31
24(define-module (guix git-download) 32(define-module (guix git-download)
25 #:use-module (guix gexp) 33 #:use-module (guix gexp)
26 #:use-module (guix store) 34 #:use-module (guix store)
@@ -61,14 +69,6 @@
61 git-file-name 69 git-file-name
62 git-predicate)) 70 git-predicate))
63 71
64;;; Commentary:
65;;;
66;;; An <origin> method that fetches a specific commit from a Git repository.
67;;; The repository URL and commit hash are specified with a <git-reference>
68;;; object.
69;;;
70;;; Code:
71
72(define-record-type* <git-reference> 72(define-record-type* <git-reference>
73 git-reference make-git-reference 73 git-reference make-git-reference
74 git-reference? 74 git-reference?
diff --git a/guix/glob.scm b/guix/glob.scm
index 13fa99f511d..fbd6eda65ce 100644
--- a/guix/glob.scm
+++ b/guix/glob.scm
@@ -17,13 +17,6 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20(define-module (guix glob)
21 #:use-module (ice-9 match)
22 #:export (string->sglob
23 compile-sglob
24 string->compiled-sglob
25 glob-match?))
26
27;;; Commentary: 20;;; Commentary:
28;;; 21;;;
29;;; This is a minimal implementation of "glob patterns" (info "(libc) 22;;; This is a minimal implementation of "glob patterns" (info "(libc)
@@ -32,6 +25,13 @@
32;;; 25;;;
33;;; Code: 26;;; Code:
34 27
28(define-module (guix glob)
29 #:use-module (ice-9 match)
30 #:export (string->sglob
31 compile-sglob
32 string->compiled-sglob
33 glob-match?))
34
35(define (parse-bracket chars) 35(define (parse-bracket chars)
36 "Parse CHARS, a list of characters that extracted from a '[...]' sequence." 36 "Parse CHARS, a list of characters that extracted from a '[...]' sequence."
37 (match chars 37 (match chars
diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm
index 95594bc839f..1e76d0dfdb5 100644
--- a/guix/gnu-maintenance.scm
+++ b/guix/gnu-maintenance.scm
@@ -20,6 +20,13 @@
20;;; You should have received a copy of the GNU General Public License 20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22 22
23;;; Commentary:
24;;;
25;;; Code for dealing with the maintenance of GNU packages, such as
26;;; auto-updates.
27;;;
28;;; Code:
29
23(define-module (guix gnu-maintenance) 30(define-module (guix gnu-maintenance)
24 #:use-module (web uri) 31 #:use-module (web uri)
25 #:use-module (web client) 32 #:use-module (web client)
@@ -82,13 +89,6 @@
82 %kernel.org-updater 89 %kernel.org-updater
83 %generic-html-updater)) 90 %generic-html-updater))
84 91
85;;; Commentary:
86;;;
87;;; Code for dealing with the maintenance of GNU packages, such as
88;;; auto-updates.
89;;;
90;;; Code:
91
92 92
93;;; 93;;;
94;;; List of GNU packages. 94;;; List of GNU packages.
diff --git a/guix/gnupg.scm b/guix/gnupg.scm
index 498f8b34a92..03ba6d5c6e0 100644
--- a/guix/gnupg.scm
+++ b/guix/gnupg.scm
@@ -19,6 +19,12 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; GnuPG interface.
25;;;
26;;; Code:
27
22(define-module (guix gnupg) 28(define-module (guix gnupg)
23 #:use-module (ice-9 popen) 29 #:use-module (ice-9 popen)
24 #:use-module (ice-9 match) 30 #:use-module (ice-9 match)
@@ -39,12 +45,6 @@
39 gnupg-status-good-signature? 45 gnupg-status-good-signature?
40 gnupg-status-missing-key?)) 46 gnupg-status-missing-key?))
41 47
42;;; Commentary:
43;;;
44;;; GnuPG interface.
45;;;
46;;; Code:
47
48(define %gpg-command 48(define %gpg-command
49 ;; The GnuPG 2.x command-line program name. 49 ;; The GnuPG 2.x command-line program name.
50 (make-parameter (or (getenv "GUIX_GPG_COMMAND") "gpg"))) 50 (make-parameter (or (getenv "GUIX_GPG_COMMAND") "gpg")))
diff --git a/guix/graph.scm b/guix/graph.scm
index 208560bd6a8..97ac950a406 100644
--- a/guix/graph.scm
+++ b/guix/graph.scm
@@ -17,6 +17,16 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; This module provides an abstract way to represent graphs and to manipulate
23;;; them. It comes with several such representations for packages,
24;;; derivations, and store items. It also provides a generic interface for
25;;; exporting graphs in an external format, including a Graphviz
26;;; implementation thereof.
27;;;
28;;; Code:
29
20(define-module (guix graph) 30(define-module (guix graph)
21 #:use-module (guix store) 31 #:use-module (guix store)
22 #:use-module (guix monads) 32 #:use-module (guix monads)
@@ -61,16 +71,6 @@
61 71
62 export-graph)) 72 export-graph))
63 73
64;;; Commentary:
65;;;
66;;; This module provides an abstract way to represent graphs and to manipulate
67;;; them. It comes with several such representations for packages,
68;;; derivations, and store items. It also provides a generic interface for
69;;; exporting graphs in an external format, including a Graphviz
70;;; implementation thereof.
71;;;
72;;; Code:
73
74 74
75;;; 75;;;
76;;; Node types. 76;;; Node types.
diff --git a/guix/hg-download.scm b/guix/hg-download.scm
index ce13a158c04..f661cba223f 100644
--- a/guix/hg-download.scm
+++ b/guix/hg-download.scm
@@ -18,6 +18,14 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21;;; Commentary:
22;;;
23;;; An <origin> method that fetches a specific changeset from a Mercurial
24;;; repository. The repository URL and changeset ID are specified with a
25;;; <hg-reference> object.
26;;;
27;;; Code:
28
21(define-module (guix hg-download) 29(define-module (guix hg-download)
22 #:use-module (guix gexp) 30 #:use-module (guix gexp)
23 #:use-module (guix store) 31 #:use-module (guix store)
@@ -40,14 +48,6 @@
40 hg-version 48 hg-version
41 hg-file-name)) 49 hg-file-name))
42 50
43;;; Commentary:
44;;;
45;;; An <origin> method that fetches a specific changeset from a Mercurial
46;;; repository. The repository URL and changeset ID are specified with a
47;;; <hg-reference> object.
48;;;
49;;; Code:
50
51(define-record-type* <hg-reference> 51(define-record-type* <hg-reference>
52 hg-reference make-hg-reference 52 hg-reference make-hg-reference
53 hg-reference? 53 hg-reference?
diff --git a/guix/http-client.scm b/guix/http-client.scm
index 0656a8a563d..7660a90eadc 100644
--- a/guix/http-client.scm
+++ b/guix/http-client.scm
@@ -19,6 +19,13 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; HTTP client portable among Guile versions, and with proper error condition
25;;; reporting.
26;;;
27;;; Code:
28
22(define-module (guix http-client) 29(define-module (guix http-client)
23 #:use-module (web uri) 30 #:use-module (web uri)
24 #:use-module (web http) 31 #:use-module (web http)
@@ -65,13 +72,6 @@
65 %http-cache-ttl 72 %http-cache-ttl
66 http-fetch/cached)) 73 http-fetch/cached))
67 74
68;;; Commentary:
69;;;
70;;; HTTP client portable among Guile versions, and with proper error condition
71;;; reporting.
72;;;
73;;; Code:
74
75;; HTTP GET error. 75;; HTTP GET error.
76(define-condition-type &http-get-error &error 76(define-condition-type &http-get-error &error
77 http-get-error? 77 http-get-error?
diff --git a/guix/i18n.scm b/guix/i18n.scm
index f81e6b38ece..c5974ea4cb8 100644
--- a/guix/i18n.scm
+++ b/guix/i18n.scm
@@ -16,6 +16,12 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; Internationalization support.
22;;;
23;;; Code:
24
19(define-module (guix i18n) 25(define-module (guix i18n)
20 #:use-module (srfi srfi-26) 26 #:use-module (srfi srfi-26)
21 #:export (G_ 27 #:export (G_
@@ -24,12 +30,6 @@
24 %gettext-domain 30 %gettext-domain
25 %package-text-domain)) 31 %package-text-domain))
26 32
27;;; Commentary:
28;;;
29;;; Internationalization support.
30;;;
31;;; Code:
32
33(define %gettext-domain 33(define %gettext-domain
34 ;; Text domain for strings used in the tools. 34 ;; Text domain for strings used in the tools.
35 "guix") 35 "guix")
diff --git a/guix/import/apache.scm b/guix/import/apache.scm
index c17139cc39e..095d7284b22 100644
--- a/guix/import/apache.scm
+++ b/guix/import/apache.scm
@@ -19,6 +19,14 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; This package provides not an actual importer but simply an updater for
25;;; ASF packages. It grabs available files from the 'find-ls2.txt.gz' file
26;;; available on dlcdn.apache.org.
27;;;
28;;; Code:
29
22(define-module (guix import apache) 30(define-module (guix import apache)
23 #:use-module ((guix import utils) #:select (find-version)) 31 #:use-module ((guix import utils) #:select (find-version))
24 #:use-module (guix http-client) 32 #:use-module (guix http-client)
@@ -35,14 +43,6 @@
35 43
36 #:export (%apache-updater)) 44 #:export (%apache-updater))
37 45
38;;; Commentary:
39;;;
40;;; This package provides not an actual importer but simply an updater for
41;;; ASF packages. It grabs available files from the 'find-ls2.txt.gz' file
42;;; available on dlcdn.apache.org.
43;;;
44;;; Code:
45
46(define (tarball->version tarball) 46(define (tarball->version tarball)
47 "Return the version TARBALL corresponds to. TARBALL is a file name like 47 "Return the version TARBALL corresponds to. TARBALL is a file name like
48\"coreutils-8.23.tar.xz\"." 48\"coreutils-8.23.tar.xz\"."
diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm
index 3d4508b11e6..0bfe4ed35f0 100644
--- a/guix/import/cpan.scm
+++ b/guix/import/cpan.scm
@@ -21,6 +21,13 @@
21;;; You should have received a copy of the GNU General Public License 21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23 23
24;;; Commentary:
25;;;
26;;; Generate a package declaration template for the latest version of a CPAN
27;;; module, using meta-data from metacpan.org.
28;;;
29;;; Code:
30
24(define-module (guix import cpan) 31(define-module (guix import cpan)
25 #:use-module (ice-9 match) 32 #:use-module (ice-9 match)
26 #:use-module (ice-9 regex) 33 #:use-module (ice-9 regex)
@@ -48,13 +55,6 @@
48 55
49 %metacpan-base-url)) 56 %metacpan-base-url))
50 57
51;;; Commentary:
52;;;
53;;; Generate a package declaration template for the latest version of a CPAN
54;;; module, using meta-data from metacpan.org.
55;;;
56;;; Code:
57
58(define %metacpan-base-url 58(define %metacpan-base-url
59 ;; Base URL of the MetaCPAN API. 59 ;; Base URL of the MetaCPAN API.
60 (make-parameter "https://fastapi.metacpan.org/v1/")) 60 (make-parameter "https://fastapi.metacpan.org/v1/"))
diff --git a/guix/import/cran.scm b/guix/import/cran.scm
index 6681380c474..f49b3586dd8 100644
--- a/guix/import/cran.scm
+++ b/guix/import/cran.scm
@@ -23,6 +23,14 @@
23;;; You should have received a copy of the GNU General Public License 23;;; You should have received a copy of the GNU General Public License
24;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 24;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
25 25
26;;; Commentary:
27;;;
28;;; Generate a package declaration template for the latest version of an R
29;;; package on CRAN, using the DESCRIPTION file downloaded from
30;;; cran.r-project.org.
31;;;
32;;; Code:
33
26(define-module (guix import cran) 34(define-module (guix import cran)
27 #:use-module (ice-9 ftw) 35 #:use-module (ice-9 ftw)
28 #:use-module (ice-9 match) 36 #:use-module (ice-9 match)
@@ -78,14 +86,6 @@
78 description->alist 86 description->alist
79 description->package)) 87 description->package))
80 88
81;;; Commentary:
82;;;
83;;; Generate a package declaration template for the latest version of an R
84;;; package on CRAN, using the DESCRIPTION file downloaded from
85;;; cran.r-project.org.
86;;;
87;;; Code:
88
89(define %input-style 89(define %input-style
90 (make-parameter 'variable)) ; or 'specification 90 (make-parameter 'variable)) ; or 'specification
91 91
diff --git a/guix/import/egg.scm b/guix/import/egg.scm
index c9606ff8391..b1dc52cfa8c 100644
--- a/guix/import/egg.scm
+++ b/guix/import/egg.scm
@@ -21,29 +21,6 @@
21;;; You should have received a copy of the GNU General Public License 21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23 23
24(define-module (guix import egg)
25 #:use-module (ice-9 ftw)
26 #:use-module (ice-9 match)
27 #:use-module (srfi srfi-1)
28 #:use-module (srfi srfi-26)
29 #:use-module (srfi srfi-71)
30 #:use-module (gcrypt hash)
31 #:use-module (guix git)
32 #:use-module (guix base32)
33 #:use-module (guix memoization)
34 #:use-module (guix packages)
35 #:use-module (guix upstream)
36 #:use-module (guix build-system chicken)
37 #:use-module (guix store)
38 #:use-module ((guix download) #:select (download-to-store url-fetch))
39 #:use-module (guix import utils)
40 #:export (egg->guix-package
41 egg-recursive-import
42 %egg-updater
43
44 ;; For tests.
45 guix-package->egg-name))
46
47;;; Commentary: 24;;; Commentary:
48;;; 25;;;
49;;; (guix import egg) provides package importer for CHICKEN eggs. See the 26;;; (guix import egg) provides package importer for CHICKEN eggs. See the
@@ -72,6 +49,29 @@
72;;; 49;;;
73;;; Code: 50;;; Code:
74 51
52(define-module (guix import egg)
53 #:use-module (ice-9 ftw)
54 #:use-module (ice-9 match)
55 #:use-module (srfi srfi-1)
56 #:use-module (srfi srfi-26)
57 #:use-module (srfi srfi-71)
58 #:use-module (gcrypt hash)
59 #:use-module (guix git)
60 #:use-module (guix base32)
61 #:use-module (guix memoization)
62 #:use-module (guix packages)
63 #:use-module (guix upstream)
64 #:use-module (guix build-system chicken)
65 #:use-module (guix store)
66 #:use-module ((guix download) #:select (download-to-store url-fetch))
67 #:use-module (guix import utils)
68 #:export (egg->guix-package
69 egg-recursive-import
70 %egg-updater
71
72 ;; For tests.
73 guix-package->egg-name))
74
75 75
76;;; 76;;;
77;;; Egg metadata fetcher and helper functions. 77;;; Egg metadata fetcher and helper functions.
diff --git a/guix/import/git.scm b/guix/import/git.scm
index e6dab7f25fa..4000c349bee 100644
--- a/guix/import/git.scm
+++ b/guix/import/git.scm
@@ -19,24 +19,6 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22(define-module (guix import git)
23 #:use-module (guix i18n)
24 #:use-module (guix diagnostics)
25 #:use-module (guix git)
26 #:use-module (guix git-download)
27 #:use-module (guix packages)
28 #:use-module (guix upstream)
29 #:use-module ((guix import utils) #:select (find-version))
30 #:use-module (ice-9 match)
31 #:use-module (ice-9 regex)
32 #:use-module (srfi srfi-1)
33 #:use-module (srfi srfi-26)
34 #:use-module (srfi srfi-34)
35 #:use-module (srfi srfi-35)
36 #:use-module (srfi srfi-71)
37 #:export (%generic-git-updater
38 get-tags))
39
40;;; Commentary: 22;;; Commentary:
41;;; 23;;;
42;;; This module provides a generic package updater for packages hosted on Git 24;;; This module provides a generic package updater for packages hosted on Git
@@ -57,6 +39,24 @@
57;;; 39;;;
58;;; Code: 40;;; Code:
59 41
42(define-module (guix import git)
43 #:use-module (guix i18n)
44 #:use-module (guix diagnostics)
45 #:use-module (guix git)
46 #:use-module (guix git-download)
47 #:use-module (guix packages)
48 #:use-module (guix upstream)
49 #:use-module ((guix import utils) #:select (find-version))
50 #:use-module (ice-9 match)
51 #:use-module (ice-9 regex)
52 #:use-module (srfi srfi-1)
53 #:use-module (srfi srfi-26)
54 #:use-module (srfi srfi-34)
55 #:use-module (srfi srfi-35)
56 #:use-module (srfi srfi-71)
57 #:export (%generic-git-updater
58 get-tags))
59
60;;; Errors & warnings 60;;; Errors & warnings
61 61
62(define-condition-type &git-no-valid-tags-error &error 62(define-condition-type &git-no-valid-tags-error &error
diff --git a/guix/import/gnome.scm b/guix/import/gnome.scm
index 211352ac3aa..2db80986291 100644
--- a/guix/import/gnome.scm
+++ b/guix/import/gnome.scm
@@ -18,6 +18,14 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21;;; Commentary:
22;;;
23;;; This package provides not an actual importer but simply an updater for
24;;; GNOME packages. It grabs package meta-data from 'cache.json' files
25;;; available on ftp.gnome.org.
26;;;
27;;; Code:
28
21(define-module (guix import gnome) 29(define-module (guix import gnome)
22 #:use-module ((guix import utils) #:select (find-version)) 30 #:use-module ((guix import utils) #:select (find-version))
23 #:use-module (guix upstream) 31 #:use-module (guix upstream)
@@ -34,14 +42,6 @@
34 #:use-module (ice-9 regex) 42 #:use-module (ice-9 regex)
35 #:export (%gnome-updater)) 43 #:export (%gnome-updater))
36 44
37;;; Commentary:
38;;;
39;;; This package provides not an actual importer but simply an updater for
40;;; GNOME packages. It grabs package meta-data from 'cache.json' files
41;;; available on ftp.gnome.org.
42;;;
43;;; Code:
44
45(define (jsonish->upstream-source name jsonish) 45(define (jsonish->upstream-source name jsonish)
46 "Return an <upstream-source> object for package NAME, using JSONISH as the 46 "Return an <upstream-source> object for package NAME, using JSONISH as the
47source for metadata." 47source for metadata."
diff --git a/guix/import/gnu.scm b/guix/import/gnu.scm
index ee7f2f61b98..c373fd2eb19 100644
--- a/guix/import/gnu.scm
+++ b/guix/import/gnu.scm
@@ -18,6 +18,13 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21;;; Commentary:
22;;;
23;;; Generate a package declaration template for the latest version of a GNU
24;;; package, using meta-data available upstream for the package.
25;;;
26;;; Code:
27
21(define-module (guix import gnu) 28(define-module (guix import gnu)
22 #:use-module ((guix diagnostics) #:select (formatted-message)) 29 #:use-module ((guix diagnostics) #:select (formatted-message))
23 #:use-module (guix gnu-maintenance) 30 #:use-module (guix gnu-maintenance)
@@ -33,13 +40,6 @@
33 #:use-module (ice-9 match) 40 #:use-module (ice-9 match)
34 #:export (gnu->guix-package)) 41 #:export (gnu->guix-package))
35 42
36;;; Commentary:
37;;;
38;;; Generate a package declaration template for the latest version of a GNU
39;;; package, using meta-data available upstream for the package.
40;;;
41;;; Code:
42
43(define (qualified-url url) 43(define (qualified-url url)
44 "Return a fully-qualified URL based on URL." 44 "Return a fully-qualified URL based on URL."
45 (if (string-prefix? "/" url) 45 (if (string-prefix? "/" url)
diff --git a/guix/import/go.scm b/guix/import/go.scm
index 0e65994d0ea..3a75f8e60c5 100644
--- a/guix/import/go.scm
+++ b/guix/import/go.scm
@@ -26,6 +26,41 @@
26;;; You should have received a copy of the GNU General Public License 26;;; You should have received a copy of the GNU General Public License
27;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 27;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
28 28
29;;; Commentary:
30;;;
31;;; (guix import go) attempts to make it easier to create Guix package
32;;; declarations for Go modules.
33;;;
34;;; Modules in Go are a "collection of related Go packages" which are "the
35;;; unit of source code interchange and versioning". Modules are generally
36;;; hosted in a repository.
37;;;
38;;; Monorepo is a collection of modules within the same VCS source. Each
39;;; module of monorepo may be released individually by assigning
40;;; "<subdir>/v<semver>" tag (see: https://go.dev/ref/mod#modules-overview).
41;;;
42;;; At this point it should handle correctly modules which have only Go
43;;; dependencies and are accessible from proxy.golang.org (or configured via
44;;; GOPROXY).
45;;;
46;;; We want it to work more or less this way:
47;;; - get latest version for the module from GOPROXY
48;;; - infer VCS root repo from which we will check-out source by
49;;; + recognising known patterns (like github.com)
50;;; + or recognizing .vcs suffix
51;;; + or parsing meta tag in HTML served at the URL
52;;; + or (TODO) if nothing else works by using zip file served by GOPROXY
53;;; - get go.mod from GOPROXY (which is able to synthesize one if needed)
54;;; - extract list of dependencies from this go.mod
55;;;
56;;; The Go module paths are translated to a Guix package name under the
57;;; assumption that there will be no collision.
58;;;
59;;; TODO list
60;;; - get correct hash in vcs->origin for Mercurial and Subversion
61;;;
62;;; Code:
63
29(define-module (guix import go) 64(define-module (guix import go)
30 #:use-module (guix build-system go) 65 #:use-module (guix build-system go)
31 #:use-module (guix git) 66 #:use-module (guix git)
@@ -38,7 +73,7 @@
38 #:use-module (guix packages) 73 #:use-module (guix packages)
39 #:use-module (guix http-client) 74 #:use-module (guix http-client)
40 #:use-module (guix memoization) 75 #:use-module (guix memoization)
41 #:autoload (htmlprag) (html->sxml) ;from Guile-Lib 76 #:autoload (htmlprag) (html->sxml) ;from Guile-Lib
42 #:autoload (guix ui) (warning) 77 #:autoload (guix ui) (warning)
43 #:autoload (git structs) (git-error-message) 78 #:autoload (git structs) (git-error-message)
44 #:use-module (ice-9 format) 79 #:use-module (ice-9 format)
@@ -64,41 +99,6 @@
64 go-module->guix-package* 99 go-module->guix-package*
65 go-module-recursive-import)) 100 go-module-recursive-import))
66 101
67;;; Commentary:
68;;;
69;;; (guix import go) attempts to make it easier to create Guix package
70;;; declarations for Go modules.
71;;;
72;;; Modules in Go are a "collection of related Go packages" which are "the
73;;; unit of source code interchange and versioning". Modules are generally
74;;; hosted in a repository.
75;;;
76;;; Monorepo is a collection of modules within the same VCS source. Each
77;;; module of monorepo may be released individually by assigning
78;;; "<subdir>/v<semver>" tag (see: https://go.dev/ref/mod#modules-overview).
79;;;
80;;; At this point it should handle correctly modules which have only Go
81;;; dependencies and are accessible from proxy.golang.org (or configured via
82;;; GOPROXY).
83;;;
84;;; We want it to work more or less this way:
85;;; - get latest version for the module from GOPROXY
86;;; - infer VCS root repo from which we will check-out source by
87;;; + recognising known patterns (like github.com)
88;;; + or recognizing .vcs suffix
89;;; + or parsing meta tag in HTML served at the URL
90;;; + or (TODO) if nothing else works by using zip file served by GOPROXY
91;;; - get go.mod from GOPROXY (which is able to synthesize one if needed)
92;;; - extract list of dependencies from this go.mod
93;;;
94;;; The Go module paths are translated to a Guix package name under the
95;;; assumption that there will be no collision.
96
97;;; TODO list
98;;; - get correct hash in vcs->origin for Mercurial and Subversion
99
100;;; Code:
101
102(define (go-package) 102(define (go-package)
103 "Return the 'go' package. This is a lazy reference so that we don't 103 "Return the 'go' package. This is a lazy reference so that we don't
104depend on (gnu packages golang)." 104depend on (gnu packages golang)."
diff --git a/guix/import/kde.scm b/guix/import/kde.scm
index 64e2182e879..d7a3e378425 100644
--- a/guix/import/kde.scm
+++ b/guix/import/kde.scm
@@ -19,6 +19,14 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; This package provides not an actual importer but simply an updater for
25;;; KDE packages. It grabs available files from the 'ls-lR.bz2' file
26;;; available on download.kde.org.
27;;;
28;;; Code:
29
22(define-module (guix import kde) 30(define-module (guix import kde)
23 #:use-module ((guix import utils) #:select (find-version)) 31 #:use-module ((guix import utils) #:select (find-version))
24 #:use-module (guix http-client) 32 #:use-module (guix http-client)
@@ -35,14 +43,6 @@
35 43
36 #:export (%kde-updater)) 44 #:export (%kde-updater))
37 45
38;;; Commentary:
39;;;
40;;; This package provides not an actual importer but simply an updater for
41;;; KDE packages. It grabs available files from the 'ls-lR.bz2' file
42;;; available on download.kde.org.
43;;;
44;;; Code:
45
46(define (tarball->version tarball) 46(define (tarball->version tarball)
47 "Return the version TARBALL corresponds to. TARBALL is a file name like 47 "Return the version TARBALL corresponds to. TARBALL is a file name like
48\"coreutils-8.23.tar.xz\"." 48\"coreutils-8.23.tar.xz\"."
diff --git a/guix/import/test.scm b/guix/import/test.scm
index 7414cf5253f..997b4fd5ab8 100644
--- a/guix/import/test.scm
+++ b/guix/import/test.scm
@@ -16,6 +16,13 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module defines a pseudo updater whose sole purpose is to allow
22;;; testing of the whole 'guix refresh' command.
23;;;
24;;; Code:
25
19(define-module (guix import test) 26(define-module (guix import test)
20 #:use-module (srfi srfi-1) 27 #:use-module (srfi srfi-1)
21 #:use-module (srfi srfi-26) 28 #:use-module (srfi srfi-26)
@@ -27,13 +34,6 @@
27 #:use-module (ice-9 match) 34 #:use-module (ice-9 match)
28 #:export (%test-updater)) 35 #:export (%test-updater))
29 36
30;;; Commentary:
31;;;
32;;; This module defines a pseudo updater whose sole purpose is to allow
33;;; testing of the whole 'guix refresh' command.
34;;;
35;;; Code:
36
37(define test-target-version 37(define test-target-version
38 ;; VHash that maps package names to version/URL tuples. 38 ;; VHash that maps package names to version/URL tuples.
39 (make-parameter 39 (make-parameter
diff --git a/guix/import/texlive.scm b/guix/import/texlive.scm
index 2b36251f44c..23ec3c00fda 100644
--- a/guix/import/texlive.scm
+++ b/guix/import/texlive.scm
@@ -18,6 +18,14 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21;;; Commentary:
22;;;
23;;; Generate a package declaration template for corresponding package in the
24;;; Tex Live Package Database (tlpdb). We fetch all sources from different
25;;; locations in the SVN repository of the Texlive project.
26;;;
27;;; Code:
28
21(define-module (guix import texlive) 29(define-module (guix import texlive)
22 #:use-module (gcrypt hash) 30 #:use-module (gcrypt hash)
23 #:use-module (guix base32) 31 #:use-module (guix base32)
@@ -51,14 +59,6 @@
51 texlive-recursive-import 59 texlive-recursive-import
52 %texlive-updater)) 60 %texlive-updater))
53 61
54;;; Commentary:
55;;;
56;;; Generate a package declaration template for corresponding package in the
57;;; Tex Live Package Database (tlpdb). We fetch all sources from different
58;;; locations in the SVN repository of the Texlive project.
59;;;
60;;; Code:
61
62;; Generic locations are parts of the tree shared by multiple packages. 62;; Generic locations are parts of the tree shared by multiple packages.
63;; Package definitions should single out files stored there, or all files in 63;; Package definitions should single out files stored there, or all files in
64;; the directory from all involved packages would be downloaded. 64;; the directory from all involved packages would be downloaded.
diff --git a/guix/inferior.scm b/guix/inferior.scm
index 57490afc484..2a490ae6320 100644
--- a/guix/inferior.scm
+++ b/guix/inferior.scm
@@ -16,6 +16,14 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module provides a way to spawn Guix "inferior" processes and to talk
22;;; to them. It allows us, from one instance of Guix, to interact with
23;;; another instance of Guix coming from a different commit.
24;;;
25;;; Code:
26
19(define-module (guix inferior) 27(define-module (guix inferior)
20 #:use-module (srfi srfi-9) 28 #:use-module (srfi srfi-9)
21 #:use-module (srfi srfi-9 gnu) 29 #:use-module (srfi srfi-9 gnu)
@@ -103,14 +111,6 @@
103 cached-channel-instance 111 cached-channel-instance
104 inferior-for-channels)) 112 inferior-for-channels))
105 113
106;;; Commentary:
107;;;
108;;; This module provides a way to spawn Guix "inferior" processes and to talk
109;;; to them. It allows us, from one instance of Guix, to interact with
110;;; another instance of Guix coming from a different commit.
111;;;
112;;; Code:
113
114;; Inferior Guix process. 114;; Inferior Guix process.
115(define-record-type <inferior> 115(define-record-type <inferior>
116 (inferior pid socket close version packages table 116 (inferior pid socket close version packages table
diff --git a/guix/ipfs.scm b/guix/ipfs.scm
index 3c25f2a4991..669943df842 100644
--- a/guix/ipfs.scm
+++ b/guix/ipfs.scm
@@ -16,6 +16,14 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module implements bindings for the HTTP interface of the IPFS
22;;; gateway, documented here: <https://docs.ipfs.io/reference/api/http/>. It
23;;; allows you to add and retrieve files over IPFS, and a few other things.
24;;;
25;;; Code:
26
19(define-module (guix ipfs) 27(define-module (guix ipfs)
20 #:use-module (json) 28 #:use-module (json)
21 #:use-module (srfi srfi-1) 29 #:use-module (srfi srfi-1)
@@ -39,14 +47,6 @@
39 read-contents 47 read-contents
40 publish-name)) 48 publish-name))
41 49
42;;; Commentary:
43;;;
44;;; This module implements bindings for the HTTP interface of the IPFS
45;;; gateway, documented here: <https://docs.ipfs.io/reference/api/http/>. It
46;;; allows you to add and retrieve files over IPFS, and a few other things.
47;;;
48;;; Code:
49
50(define %ipfs-base-url 50(define %ipfs-base-url
51 ;; URL of the IPFS gateway. 51 ;; URL of the IPFS gateway.
52 (make-parameter "http://localhost:5001")) 52 (make-parameter "http://localhost:5001"))
diff --git a/guix/least-authority.scm b/guix/least-authority.scm
index 68dc7e68e8c..62ab632d1b1 100644
--- a/guix/least-authority.scm
+++ b/guix/least-authority.scm
@@ -16,6 +16,13 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module provides tools to execute programs with the least authority
22;;; necessary, using Linux namespaces.
23;;;
24;;; Code:
25
19(define-module (guix least-authority) 26(define-module (guix least-authority)
20 #:use-module (guix gexp) 27 #:use-module (guix gexp)
21 #:use-module (guix modules) 28 #:use-module (guix modules)
@@ -29,13 +36,6 @@
29 #:export (least-authority-wrapper 36 #:export (least-authority-wrapper
30 %default-preserved-environment-variables)) 37 %default-preserved-environment-variables))
31 38
32;;; Commentary:
33;;;
34;;; This module provides tools to execute programs with the least authority
35;;; necessary, using Linux namespaces.
36;;;
37;;; Code:
38
39(define %default-preserved-environment-variables 39(define %default-preserved-environment-variables
40 ;; Environment variables preserved by the wrapper by default. 40 ;; Environment variables preserved by the wrapper by default.
41 '("HOME" "USER" "LOGNAME" "DISPLAY" "XAUTHORITY" "TERM" "TZ" "PAGER" 41 '("HOME" "USER" "LOGNAME" "DISPLAY" "XAUTHORITY" "TERM" "TZ" "PAGER"
diff --git a/guix/licenses.scm b/guix/licenses.scm
index bccfbbedee1..24b86adabea 100644
--- a/guix/licenses.scm
+++ b/guix/licenses.scm
@@ -37,6 +37,19 @@
37;;; You should have received a copy of the GNU General Public License 37;;; You should have received a copy of the GNU General Public License
38;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 38;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
39 39
40;;; Commentary:
41;;;
42;;; Available licenses.
43;;;
44;;; This list is based on these links:
45;;; https://github.com/NixOS/nixpkgs/blob/master/lib/licenses.nix
46;;; https://www.gnu.org/licenses/license-list
47;;;
48;;; Please update spdx-string->license from guix/import/utils.scm
49;;; when modifying this list to avoid mismatches.
50;;;
51;;; Code:
52
40(define-module (guix licenses) 53(define-module (guix licenses)
41 #:use-module (srfi srfi-9) 54 #:use-module (srfi srfi-9)
42 #:export (license license? license-name license-uri license-comment 55 #:export (license license? license-name license-uri license-comment
@@ -118,19 +131,6 @@
118 hpnd 131 hpnd
119 fsdg-compatible)) 132 fsdg-compatible))
120 133
121;;; Commentary:
122;;;
123;;; Available licenses.
124;;;
125;;; This list is based on these links:
126;;; https://github.com/NixOS/nixpkgs/blob/master/lib/licenses.nix
127;;; https://www.gnu.org/licenses/license-list
128;;;
129;;; Please update spdx-string->license from guix/import/utils.scm
130;;; when modifying this list to avoid mismatches.
131;;;
132;;; Code:
133
134(define-record-type <license> 134(define-record-type <license>
135 (license name uri comment) 135 (license name uri comment)
136 actual-license? 136 actual-license?
diff --git a/guix/man-db.scm b/guix/man-db.scm
index d6241480f7e..94798a40db9 100644
--- a/guix/man-db.scm
+++ b/guix/man-db.scm
@@ -17,6 +17,16 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; Scan gzipped man pages and create a man-db database. The database is
23;;; meant to be used by 'man -k KEYWORD'.
24;;;
25;;; The implementation here aims to be simpler than that of 'man-db', and to
26;;; produce deterministic output. See <https://bugs.gnu.org/29654>.
27;;;
28;;; Code:
29
20(define-module (guix man-db) 30(define-module (guix man-db)
21 #:autoload (zlib) (call-with-gzip-input-port) 31 #:autoload (zlib) (call-with-gzip-input-port)
22 #:autoload (zstd) (call-with-zstd-input-port) 32 #:autoload (zstd) (call-with-zstd-input-port)
@@ -37,16 +47,6 @@
37 mandb-entries 47 mandb-entries
38 write-mandb-database)) 48 write-mandb-database))
39 49
40;;; Comment:
41;;;
42;;; Scan gzipped man pages and create a man-db database. The database is
43;;; meant to be used by 'man -k KEYWORD'.
44;;;
45;;; The implementation here aims to be simpler than that of 'man-db', and to
46;;; produce deterministic output. See <https://bugs.gnu.org/29654>.
47;;;
48;;; Code:
49
50(define-record-type <mandb-entry> 50(define-record-type <mandb-entry>
51 (mandb-entry file-name name section synopsis kind) 51 (mandb-entry file-name name section synopsis kind)
52 mandb-entry? 52 mandb-entry?
diff --git a/guix/modules.scm b/guix/modules.scm
index 74400ffacc8..e60c18603a0 100644
--- a/guix/modules.scm
+++ b/guix/modules.scm
@@ -16,6 +16,16 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module provides introspection tools for Guile modules at the source
22;;; level. Namely, it allows you to determine the closure of a module; it
23;;; does so just by reading the 'define-module' clause of the module and its
24;;; dependencies. This is primarily useful as an argument to
25;;; 'with-imported-modules'.
26;;;
27;;; Code:
28
19(define-module (guix modules) 29(define-module (guix modules)
20 #:use-module (guix memoization) 30 #:use-module (guix memoization)
21 #:use-module (guix sets) 31 #:use-module (guix sets)
@@ -35,16 +45,6 @@
35 live-module-closure 45 live-module-closure
36 guix-module-name?)) 46 guix-module-name?))
37 47
38;;; Commentary:
39;;;
40;;; This module provides introspection tools for Guile modules at the source
41;;; level. Namely, it allows you to determine the closure of a module; it
42;;; does so just by reading the 'define-module' clause of the module and its
43;;; dependencies. This is primarily useful as an argument to
44;;; 'with-imported-modules'.
45;;;
46;;; Code:
47
48;; The error corresponding to a missing module. 48;; The error corresponding to a missing module.
49(define-condition-type &missing-dependency-error &error 49(define-condition-type &missing-dependency-error &error
50 missing-dependency-error? 50 missing-dependency-error?
diff --git a/guix/monad-repl.scm b/guix/monad-repl.scm
index fc9654ce9ed..6d8cb1c8b8d 100644
--- a/guix/monad-repl.scm
+++ b/guix/monad-repl.scm
@@ -17,6 +17,13 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; This modules provides a couple of REPL meta-commands that make it easier
23;;; to work with monadic procedures in the store monad.
24;;;
25;;; Code:
26
20(define-module (guix monad-repl) 27(define-module (guix monad-repl)
21 #:use-module (guix store) 28 #:use-module (guix store)
22 #:use-module (guix monads) 29 #:use-module (guix monads)
@@ -40,13 +47,6 @@
40 #:export (run-in-store 47 #:export (run-in-store
41 enter-store-monad)) 48 enter-store-monad))
42 49
43;;; Comment:
44;;;
45;;; This modules provides a couple of REPL meta-commands that make it easier
46;;; to work with monadic procedures in the store monad.
47;;;
48;;; Code:
49
50(define* (monad-language monad run #:optional (name 'monad)) 50(define* (monad-language monad run #:optional (name 'monad))
51 "Return a language with a special evaluator that causes monadic values 51 "Return a language with a special evaluator that causes monadic values
52 to be \"run\" in MONAD using procedure RUN." 52 to be \"run\" in MONAD using procedure RUN."
diff --git a/guix/monads.scm b/guix/monads.scm
index e1b056dc95f..5af7ca67f2d 100644
--- a/guix/monads.scm
+++ b/guix/monads.scm
@@ -17,6 +17,18 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; This module implements the general mechanism of monads, and provides in
23;;; particular an instance of the "state" monad. The API was inspired by that
24;;; of Racket's "better-monads" module (see
25;;; <http://planet.racket-lang.org/package-source/toups/functional.plt/1/1/planet-docs/better-monads-guide/index.html>).
26;;; The implementation and use case were influenced by Oleg Kysielov's
27;;; "Monadic Programming in Scheme" (see
28;;; <http://okmij.org/ftp/Scheme/monad-in-Scheme.html>).
29;;;
30;;; Code:
31
20(define-module (guix monads) 32(define-module (guix monads)
21 #:use-module ((system syntax) 33 #:use-module ((system syntax)
22 #:select (syntax-local-binding)) 34 #:select (syntax-local-binding))
@@ -63,18 +75,6 @@
63 state-parameterize 75 state-parameterize
64 mparameterize)) 76 mparameterize))
65 77
66;;; Commentary:
67;;;
68;;; This module implements the general mechanism of monads, and provides in
69;;; particular an instance of the "state" monad. The API was inspired by that
70;;; of Racket's "better-monads" module (see
71;;; <http://planet.racket-lang.org/package-source/toups/functional.plt/1/1/planet-docs/better-monads-guide/index.html>).
72;;; The implementation and use case were influenced by Oleg Kysielov's
73;;; "Monadic Programming in Scheme" (see
74;;; <http://okmij.org/ftp/Scheme/monad-in-Scheme.html>).
75;;;
76;;; Code:
77
78;; Record type for monads manipulated at run time. 78;; Record type for monads manipulated at run time.
79(define-record-type <monad> 79(define-record-type <monad>
80 (make-monad bind return) 80 (make-monad bind return)
diff --git a/guix/nar.scm b/guix/nar.scm
index c7842399dcd..fb71e846e83 100644
--- a/guix/nar.scm
+++ b/guix/nar.scm
@@ -17,6 +17,12 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; Read and write Nix archives, aka. ‘nar’.
23;;;
24;;; Code:
25
20(define-module (guix nar) 26(define-module (guix nar)
21 #:use-module (guix serialization) 27 #:use-module (guix serialization)
22 #:autoload (guix build syscalls) (lock-file unlock-file) 28 #:autoload (guix build syscalls) (lock-file unlock-file)
@@ -48,12 +54,6 @@
48 54
49 restore-file-set)) 55 restore-file-set))
50 56
51;;; Comment:
52;;;
53;;; Read and write Nix archives, aka. ‘nar’.
54;;;
55;;; Code:
56
57(define-condition-type &nar-signature-error &nar-error 57(define-condition-type &nar-signature-error &nar-error
58 nar-signature-error? 58 nar-signature-error?
59 (signature nar-signature-error-signature)) ; faulty signature or #f 59 (signature nar-signature-error-signature)) ; faulty signature or #f
diff --git a/guix/openpgp.scm b/guix/openpgp.scm
index d99624911b6..ee1c196eb10 100644
--- a/guix/openpgp.scm
+++ b/guix/openpgp.scm
@@ -25,6 +25,20 @@
25;;; Ludovic Courtès for use in GNU Guix: turned into a native Guile module, 25;;; Ludovic Courtès for use in GNU Guix: turned into a native Guile module,
26;;; ported to Guile-Gcrypt, and extended and simplified in other ways. 26;;; ported to Guile-Gcrypt, and extended and simplified in other ways.
27 27
28;;; Commentary:
29;;;
30;;; This module contains code to read OpenPGP messages as described in
31;;; <https://tools.ietf.org/html/rfc4880>, with extensions from
32;;; <https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis-06> (notably
33;;; EdDSA support and extra signature sub-packets).
34;;;
35;;; Currently this module does enough to verify detached signatures of binary
36;;; data. It does _not_ perform sanity checks on self-signatures, subkey
37;;; binding signatures, etc., among others. Use only in a context where this
38;;; limitations are acceptable!
39;;;
40;;; Code:
41
28(define-module (guix openpgp) 42(define-module (guix openpgp)
29 #:export (get-openpgp-detached-signature/ascii 43 #:export (get-openpgp-detached-signature/ascii
30 (get-packet . get-openpgp-packet) 44 (get-packet . get-openpgp-packet)
@@ -85,20 +99,6 @@
85 #:use-module (gcrypt base16) 99 #:use-module (gcrypt base16)
86 #:use-module ((guix build utils) #:select (dump-port))) 100 #:use-module ((guix build utils) #:select (dump-port)))
87 101
88;;; Commentary:
89;;;
90;;; This module contains code to read OpenPGP messages as described in
91;;; <https://tools.ietf.org/html/rfc4880>, with extensions from
92;;; <https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis-06> (notably
93;;; EdDSA support and extra signature sub-packets).
94;;;
95;;; Currently this module does enough to verify detached signatures of binary
96;;; data. It does _not_ perform sanity checks on self-signatures, subkey
97;;; binding signatures, etc., among others. Use only in a context where this
98;;; limitations are acceptable!
99;;;
100;;; Code:
101
102(define-syntax print 102(define-syntax print
103 (syntax-rules () 103 (syntax-rules ()
104 ;; ((_ args ...) (pk 'openpgp args)) 104 ;; ((_ args ...) (pk 'openpgp args))
diff --git a/guix/packages.scm b/guix/packages.scm
index 5f656e6441d..e43ab37f1f4 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -28,6 +28,13 @@
28;;; You should have received a copy of the GNU General Public License 28;;; You should have received a copy of the GNU General Public License
29;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 29;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
30 30
31;;; Commentary:
32;;;
33;;; This module provides a high-level mechanism to define packages in a
34;;; Guix-based distribution.
35;;;
36;;; Code:
37
31(define-module (guix packages) 38(define-module (guix packages)
32 #:autoload (guix build utils) (compressor tarball? strip-store-file-name) 39 #:autoload (guix build utils) (compressor tarball? strip-store-file-name)
33 #:use-module (guix utils) 40 #:use-module (guix utils)
@@ -219,13 +226,6 @@
219 (module-re-export! (current-module) '(delete) #:replace? #t) 226 (module-re-export! (current-module) '(delete) #:replace? #t)
220 (module-re-export! (current-module) '(delete)))) 227 (module-re-export! (current-module) '(delete))))
221 228
222;;; Commentary:
223;;;
224;;; This module provides a high-level mechanism to define packages in a
225;;; Guix-based distribution.
226;;;
227;;; Code:
228
229(define-syntax-rule (define-compile-time-decoder name string->bytevector) 229(define-syntax-rule (define-compile-time-decoder name string->bytevector)
230 "Define NAME as a macro that runs STRING->BYTEVECTOR at macro expansion time 230 "Define NAME as a macro that runs STRING->BYTEVECTOR at macro expansion time
231if possible." 231if possible."
diff --git a/guix/pki.scm b/guix/pki.scm
index 91c1be531a9..7b3d1bd0462 100644
--- a/guix/pki.scm
+++ b/guix/pki.scm
@@ -16,6 +16,15 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; Public key infrastructure for the authentication and authorization of
22;;; archive imports. This is essentially a subset of SPKI for our own
23;;; purposes (see <http://theworld.com/~cme/spki.txt> and
24;;; <http://www.ietf.org/rfc/rfc2693.txt>.)
25;;;
26;;; Code:
27
19(define-module (guix pki) 28(define-module (guix pki)
20 #:use-module (guix config) 29 #:use-module (guix config)
21 #:use-module (gcrypt pk-crypto) 30 #:use-module (gcrypt pk-crypto)
@@ -39,15 +48,6 @@
39 valid-signature? 48 valid-signature?
40 signature-case)) 49 signature-case))
41 50
42;;; Commentary:
43;;;
44;;; Public key infrastructure for the authentication and authorization of
45;;; archive imports. This is essentially a subset of SPKI for our own
46;;; purposes (see <http://theworld.com/~cme/spki.txt> and
47;;; <http://www.ietf.org/rfc/rfc2693.txt>.)
48;;;
49;;; Code:
50
51(define (public-keys->acl keys) 51(define (public-keys->acl keys)
52 "Return an ACL that lists all of KEYS with a '(guix import)' 52 "Return an ACL that lists all of KEYS with a '(guix import)'
53tag---meaning that all of KEYS are authorized for archive imports. Each 53tag---meaning that all of KEYS are authorized for archive imports. Each
diff --git a/guix/profiles.scm b/guix/profiles.scm
index fb2edbfab34..5e07dc107e1 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -29,6 +29,13 @@
29;;; You should have received a copy of the GNU General Public License 29;;; You should have received a copy of the GNU General Public License
30;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 30;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
31 31
32;;; Commentary:
33;;;
34;;; Tools to create and manipulate profiles---i.e., the representation of a
35;;; set of installed packages.
36;;;
37;;; Code:
38
32(define-module (guix profiles) 39(define-module (guix profiles)
33 #:use-module ((guix config) #:select (%state-directory)) 40 #:use-module ((guix config) #:select (%state-directory))
34 #:use-module ((guix utils) #:hide (package-name->name+version)) 41 #:use-module ((guix utils) #:hide (package-name->name+version))
@@ -167,13 +174,6 @@
167 174
168 linux-module-database)) 175 linux-module-database))
169 176
170;;; Commentary:
171;;;
172;;; Tools to create and manipulate profiles---i.e., the representation of a
173;;; set of installed packages.
174;;;
175;;; Code:
176
177 177
178;;; 178;;;
179;;; Condition types. 179;;; Condition types.
diff --git a/guix/profiling.scm b/guix/profiling.scm
index e1c205a5438..8c8d5125fff 100644
--- a/guix/profiling.scm
+++ b/guix/profiling.scm
@@ -16,18 +16,18 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19(define-module (guix profiling)
20 #:use-module (ice-9 match)
21 #:autoload (ice-9 format) (format)
22 #:export (profiled?
23 register-profiling-hook!))
24
25;;; Commentary: 19;;; Commentary:
26;;; 20;;;
27;;; Basic support for Guix-specific profiling. 21;;; Basic support for Guix-specific profiling.
28;;; 22;;;
29;;; Code: 23;;; Code:
30 24
25(define-module (guix profiling)
26 #:use-module (ice-9 match)
27 #:autoload (ice-9 format) (format)
28 #:export (profiled?
29 register-profiling-hook!))
30
31(define profiled? 31(define profiled?
32 (let ((profiled 32 (let ((profiled
33 (or (and=> (getenv "GUIX_PROFILING") string-tokenize) 33 (or (and=> (getenv "GUIX_PROFILING") string-tokenize)
diff --git a/guix/progress.scm b/guix/progress.scm
index e1b35094e11..98ee3bc3c2f 100644
--- a/guix/progress.scm
+++ b/guix/progress.scm
@@ -19,6 +19,12 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; Helper to write progress report code for downloads, etc.
25;;;
26;;; Code:
27
22(define-module (guix progress) 28(define-module (guix progress)
23 #:use-module (guix records) 29 #:use-module (guix records)
24 #:autoload (guix build syscalls) (terminal-string-width) 30 #:autoload (guix build syscalls) (terminal-string-width)
@@ -51,12 +57,6 @@
51 57
52 dump-port*)) 58 dump-port*))
53 59
54;;; Commentary:
55;;;
56;;; Helper to write progress report code for downloads, etc.
57;;;
58;;; Code:
59
60(define-record-type* <progress-reporter> 60(define-record-type* <progress-reporter>
61 progress-reporter make-progress-reporter progress-reporter? 61 progress-reporter make-progress-reporter progress-reporter?
62 (start progress-reporter-start) ; thunk 62 (start progress-reporter-start) ; thunk
diff --git a/guix/quirks.scm b/guix/quirks.scm
index 1cffe971fc7..fe8c001bc4b 100644
--- a/guix/quirks.scm
+++ b/guix/quirks.scm
@@ -16,6 +16,15 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; Time traveling is a challenge! Sometimes, going back to the past requires
22;;; adjusting the old source code so it can be evaluated with our modern day
23;;; Guile and against our modern Guix APIs. This file describes quirks found
24;;; in old Guix revisions, along with ways to address them or patch them.
25;;;
26;;; Code:
27
19(define-module (guix quirks) 28(define-module (guix quirks)
20 #:use-module ((guix build utils) #:select (substitute*)) 29 #:use-module ((guix build utils) #:select (substitute*))
21 #:use-module (srfi srfi-9) 30 #:use-module (srfi srfi-9)
@@ -29,15 +38,6 @@
29 38
30 %patches)) 39 %patches))
31 40
32;;; Commentary:
33;;;
34;;; Time traveling is a challenge! Sometimes, going back to the past requires
35;;; adjusting the old source code so it can be evaluated with our modern day
36;;; Guile and against our modern Guix APIs. This file describes quirks found
37;;; in old Guix revisions, along with ways to address them or patch them.
38;;;
39;;; Code:
40
41(define (syscalls-reexports-local-variables? source) 41(define (syscalls-reexports-local-variables? source)
42 "Return true if (guix build syscalls) contains the bug described at 42 "Return true if (guix build syscalls) contains the bug described at
43<https://bugs.gnu.org/36723>." 43<https://bugs.gnu.org/36723>."
diff --git a/guix/read-print.scm b/guix/read-print.scm
index 9b3a98c8ee3..6c57f0e94b7 100644
--- a/guix/read-print.scm
+++ b/guix/read-print.scm
@@ -16,6 +16,13 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module provides a comment-preserving reader and a comment-preserving
22;;; pretty-printer smarter than (ice-9 pretty-print).
23;;;
24;;; Code:
25
19(define-module (guix read-print) 26(define-module (guix read-print)
20 #:use-module (ice-9 control) 27 #:use-module (ice-9 control)
21 #:use-module (ice-9 match) 28 #:use-module (ice-9 match)
@@ -53,13 +60,6 @@
53 comment-margin? 60 comment-margin?
54 canonicalize-comment)) 61 canonicalize-comment))
55 62
56;;; Commentary:
57;;;
58;;; This module provides a comment-preserving reader and a comment-preserving
59;;; pretty-printer smarter than (ice-9 pretty-print).
60;;;
61;;; Code:
62
63 63
64;;; 64;;;
65;;; Comment-preserving reader. 65;;; Comment-preserving reader.
diff --git a/guix/records.scm b/guix/records.scm
index 52d03f73942..fc83d975189 100644
--- a/guix/records.scm
+++ b/guix/records.scm
@@ -17,6 +17,12 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; Utilities for dealing with Scheme records.
23;;;
24;;; Code:
25
20(define-module (guix records) 26(define-module (guix records)
21 #:use-module (srfi srfi-1) 27 #:use-module (srfi srfi-1)
22 #:use-module (srfi srfi-9) 28 #:use-module (srfi srfi-9)
@@ -34,12 +40,6 @@
34 match-record 40 match-record
35 match-record-lambda)) 41 match-record-lambda))
36 42
37;;; Commentary:
38;;;
39;;; Utilities for dealing with Scheme records.
40;;;
41;;; Code:
42
43(define-syntax record-error 43(define-syntax record-error
44 (syntax-rules () 44 (syntax-rules ()
45 "Report a syntactic error in use of CONSTRUCTOR." 45 "Report a syntactic error in use of CONSTRUCTOR."
diff --git a/guix/remote-procedures.scm b/guix/remote-procedures.scm
index dca491a76d3..48424f7e8bb 100644
--- a/guix/remote-procedures.scm
+++ b/guix/remote-procedures.scm
@@ -16,6 +16,15 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module defines the remote procedure interface between the build
22;;; daemon and clients (also known as "remote procedure calls" or RPCs). It
23;;; is used to generate client stubs in (guix store) and can also be used to
24;;; generate server stubs.
25;;;
26;;; Code:
27
19(define-module (guix remote-procedures) 28(define-module (guix remote-procedures)
20 #:use-module (guix serialization) 29 #:use-module (guix serialization)
21 #:export (%protocol-version 30 #:export (%protocol-version
@@ -35,15 +44,6 @@
35 build-mode 44 build-mode
36 gc-action)) 45 gc-action))
37 46
38;;; Comment:
39;;;
40;;; This module defines the remote procedure interface between the build
41;;; daemon and clients (also known as "remote procedure calls" or RPCs). It
42;;; is used to generate client stubs in (guix store) and can also be used to
43;;; generate server stubs.
44;;;
45;;; Code:
46
47(define %protocol-version 47(define %protocol-version
48 ;; Version of the currently-implemented protocol. 48 ;; Version of the currently-implemented protocol.
49 #x164) 49 #x164)
diff --git a/guix/remote.scm b/guix/remote.scm
index 6a122724936..16a94aef7f8 100644
--- a/guix/remote.scm
+++ b/guix/remote.scm
@@ -16,6 +16,17 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; Note: This API is experimental and subject to change!
22;;;
23;;; Evaluate a gexp on a remote machine, over SSH, ensuring that all the
24;;; elements the gexp refers to are deployed beforehand. This is useful for
25;;; expressions that have side effects; for pure expressions, you would rather
26;;; build a derivation remotely or offload it.
27;;;
28;;; Code:
29
19(define-module (guix remote) 30(define-module (guix remote)
20 #:use-module (guix ssh) 31 #:use-module (guix ssh)
21 #:use-module (guix gexp) 32 #:use-module (guix gexp)
@@ -36,17 +47,6 @@
36 #:use-module (srfi srfi-71) 47 #:use-module (srfi srfi-71)
37 #:export (remote-eval)) 48 #:export (remote-eval))
38 49
39;;; Commentary:
40;;;
41;;; Note: This API is experimental and subject to change!
42;;;
43;;; Evaluate a gexp on a remote machine, over SSH, ensuring that all the
44;;; elements the gexp refers to are deployed beforehand. This is useful for
45;;; expressions that have side effects; for pure expressions, you would rather
46;;; build a derivation remotely or offload it.
47;;;
48;;; Code:
49
50(define* (remote-pipe-for-gexp lowered session #:optional become-command) 50(define* (remote-pipe-for-gexp lowered session #:optional become-command)
51 "Return a remote pipe for the given SESSION to evaluate LOWERED. If 51 "Return a remote pipe for the given SESSION to evaluate LOWERED. If
52BECOME-COMMAND is given, use that to invoke the remote Guile REPL." 52BECOME-COMMAND is given, use that to invoke the remote Guile REPL."
diff --git a/guix/repl.scm b/guix/repl.scm
index 94d85815ef4..0cfcee9ac60 100644
--- a/guix/repl.scm
+++ b/guix/repl.scm
@@ -16,13 +16,6 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19(define-module (guix repl)
20 #:use-module (srfi srfi-1)
21 #:use-module (srfi srfi-26)
22 #:use-module (ice-9 match)
23 #:export (send-repl-response
24 machine-repl))
25
26;;; Commentary: 19;;; Commentary:
27;;; 20;;;
28;;; This module implements the "machine-readable" REPL provided by 21;;; This module implements the "machine-readable" REPL provided by
@@ -31,6 +24,13 @@
31;;; 24;;;
32;;; Code: 25;;; Code:
33 26
27(define-module (guix repl)
28 #:use-module (srfi srfi-1)
29 #:use-module (srfi srfi-26)
30 #:use-module (ice-9 match)
31 #:export (send-repl-response
32 machine-repl))
33
34(define (self-quoting? x) 34(define (self-quoting? x)
35 "Return #t if X is self-quoting." 35 "Return #t if X is self-quoting."
36 (letrec-syntax ((one-of (syntax-rules () 36 (letrec-syntax ((one-of (syntax-rules ()
diff --git a/guix/rpm.scm b/guix/rpm.scm
index 34ecab89566..54b444ffdd7 100644
--- a/guix/rpm.scm
+++ b/guix/rpm.scm
@@ -16,6 +16,14 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module provides the building blocks required to construct RPM
22;;; archives. It is intended to be importable on the build side, so shouldn't
23;;; depend on (guix diagnostics) or other host-side-only modules.
24;;;
25;;; Code:
26
19(define-module (guix rpm) 27(define-module (guix rpm)
20 #:autoload (gcrypt hash) (hash-algorithm file-hash md5) 28 #:autoload (gcrypt hash) (hash-algorithm file-hash md5)
21 #:use-module (guix build utils) 29 #:use-module (guix build utils)
@@ -45,14 +53,6 @@
45 53
46 fhs-directory?)) 54 fhs-directory?))
47 55
48;;; Commentary:
49;;;
50;;; This module provides the building blocks required to construct RPM
51;;; archives. It is intended to be importable on the build side, so shouldn't
52;;; depend on (guix diagnostics) or other host-side-only modules.
53;;;
54;;; Code:
55
56(define (gnu-system-triplet->machine-type triplet) 56(define (gnu-system-triplet->machine-type triplet)
57 "Return the machine component of TRIPLET, a GNU system triplet." 57 "Return the machine component of TRIPLET, a GNU system triplet."
58 (first (string-split triplet #\-))) 58 (first (string-split triplet #\-)))
diff --git a/guix/scripts.scm b/guix/scripts.scm
index c4849816ea9..2151acf2a54 100644
--- a/guix/scripts.scm
+++ b/guix/scripts.scm
@@ -21,6 +21,12 @@
21;;; You should have received a copy of the GNU General Public License 21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23 23
24;;; Commentary:
25;;;
26;;; General code for Guix scripts.
27;;;
28;;; Code:
29
24(define-module (guix scripts) 30(define-module (guix scripts)
25 #:use-module (guix utils) 31 #:use-module (guix utils)
26 #:use-module (guix ui) 32 #:use-module (guix ui)
@@ -52,12 +58,6 @@
52 %disk-space-warning 58 %disk-space-warning
53 warn-about-disk-space)) 59 warn-about-disk-space))
54 60
55;;; Commentary:
56;;;
57;;; General code for Guix scripts.
58;;;
59;;; Code:
60
61;; Syntactic keywords. 61;; Syntactic keywords.
62(define synopsis 'command-synopsis) 62(define synopsis 'command-synopsis)
63(define category 'command-category) 63(define category 'command-category)
diff --git a/guix/scripts/authenticate.scm b/guix/scripts/authenticate.scm
index f90eeeec8de..41540036b31 100644
--- a/guix/scripts/authenticate.scm
+++ b/guix/scripts/authenticate.scm
@@ -16,6 +16,14 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This program is used internally by the daemon to sign exported archive
22;;; (the 'export-paths' RPC), and to authenticate imported archives (the
23;;; 'import-paths' RPC.)
24;;;
25;;; Code:
26
19(define-module (guix scripts authenticate) 27(define-module (guix scripts authenticate)
20 #:use-module (guix scripts) 28 #:use-module (guix scripts)
21 #:use-module (guix base16) 29 #:use-module (guix base16)
@@ -34,14 +42,6 @@
34 #:use-module (ice-9 iconv) 42 #:use-module (ice-9 iconv)
35 #:export (guix-authenticate)) 43 #:export (guix-authenticate))
36 44
37;;; Commentary:
38;;;
39;;; This program is used internally by the daemon to sign exported archive
40;;; (the 'export-paths' RPC), and to authenticate imported archives (the
41;;; 'import-paths' RPC.)
42;;;
43;;; Code:
44
45(define read-canonical-sexp 45(define read-canonical-sexp
46 ;; Read a gcrypt sexp from a port and return it. 46 ;; Read a gcrypt sexp from a port and return it.
47 (compose string->canonical-sexp read-string)) 47 (compose string->canonical-sexp read-string))
diff --git a/guix/scripts/challenge.scm b/guix/scripts/challenge.scm
index a1f90b78446..1b98b3d66a4 100644
--- a/guix/scripts/challenge.scm
+++ b/guix/scripts/challenge.scm
@@ -16,6 +16,18 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; Challenge substitute servers, checking whether they provide the same
22;;; binaries as those built locally.
23;;;
24;;; Here we completely bypass the daemon to access substitutes. This is
25;;; because we want to be able to report fine-grain information about
26;;; discrepancies: We need to show the URL of the offending nar, its hash, and
27;;; so on.
28;;;
29;;; Code:
30
19(define-module (guix scripts challenge) 31(define-module (guix scripts challenge)
20 #:use-module (guix ui) 32 #:use-module (guix ui)
21 #:use-module (guix colors) 33 #:use-module (guix colors)
@@ -62,18 +74,6 @@
62 74
63 guix-challenge)) 75 guix-challenge))
64 76
65;;; Commentary:
66;;;
67;;; Challenge substitute servers, checking whether they provide the same
68;;; binaries as those built locally.
69;;;
70;;; Here we completely bypass the daemon to access substitutes. This is
71;;; because we want to be able to report fine-grain information about
72;;; discrepancies: We need to show the URL of the offending nar, its hash, and
73;;; so on.
74;;;
75;;; Code:
76
77(define ensure-store-item ;XXX: move to (guix ui)? 77(define ensure-store-item ;XXX: move to (guix ui)?
78 (@@ (guix scripts size) ensure-store-item)) 78 (@@ (guix scripts size) ensure-store-item))
79 79
diff --git a/guix/scripts/deploy.scm b/guix/scripts/deploy.scm
index f1df8bd5e9e..9cad49b857b 100644
--- a/guix/scripts/deploy.scm
+++ b/guix/scripts/deploy.scm
@@ -20,6 +20,13 @@
20;;; You should have received a copy of the GNU General Public License 20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22 22
23;;; Commentary:
24;;;
25;;; This program provides a command-line interface to (gnu machine), allowing
26;;; users to perform remote deployments through specification files.
27;;;
28;;; Code:
29
23(define-module (guix scripts deploy) 30(define-module (guix scripts deploy)
24 #:use-module (gnu machine) 31 #:use-module (gnu machine)
25 #:use-module (guix discovery) 32 #:use-module (guix discovery)
@@ -41,13 +48,6 @@
41 #:use-module (srfi srfi-71) 48 #:use-module (srfi srfi-71)
42 #:export (guix-deploy)) 49 #:export (guix-deploy))
43 50
44;;; Commentary:
45;;;
46;;; This program provides a command-line interface to (gnu machine), allowing
47;;; users to perform remote deployments through specification files.
48;;;
49;;; Code:
50
51 51
52 52
53(define (show-help) 53(define (show-help)
diff --git a/guix/scripts/git/authenticate.scm b/guix/scripts/git/authenticate.scm
index 4809e49c7bf..6ff1afe4606 100644
--- a/guix/scripts/git/authenticate.scm
+++ b/guix/scripts/git/authenticate.scm
@@ -17,6 +17,13 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; Authenticate a Git checkout by reading '.guix-authorizations' files and
23;;; following the "authorizations invariant" also used by (guix channels).
24;;;
25;;; Code:
26
20(define-module (guix scripts git authenticate) 27(define-module (guix scripts git authenticate)
21 #:use-module (git) 28 #:use-module (git)
22 #:use-module (guix build utils) 29 #:use-module (guix build utils)
@@ -40,13 +47,6 @@
40 #:use-module (ice-9 match) 47 #:use-module (ice-9 match)
41 #:export (guix-git-authenticate)) 48 #:export (guix-git-authenticate))
42 49
43;;; Commentary:
44;;;
45;;; Authenticate a Git checkout by reading '.guix-authorizations' files and
46;;; following the "authorizations invariant" also used by (guix channels).
47;;;
48;;; Code:
49
50(define %options 50(define %options
51 ;; Specifications of the command-line options. 51 ;; Specifications of the command-line options.
52 (list (option '(#\h "help") #f #f 52 (list (option '(#\h "help") #f #f
diff --git a/guix/scripts/home/import.scm b/guix/scripts/home/import.scm
index 15b4bc97982..0d6c73ebd39 100644
--- a/guix/scripts/home/import.scm
+++ b/guix/scripts/home/import.scm
@@ -20,6 +20,13 @@
20;;; You should have received a copy of the GNU General Public License 20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22 22
23;;; Commentary:
24;;;
25;;; This module provides utilities for generating home service
26;;; configurations from existing "dotfiles".
27;;;
28;;; Code:
29
23(define-module (guix scripts home import) 30(define-module (guix scripts home import)
24 #:use-module (guix profiles) 31 #:use-module (guix profiles)
25 #:use-module (guix ui) 32 #:use-module (guix ui)
@@ -39,13 +46,6 @@
39 ;; For tests. 46 ;; For tests.
40 manifest+configuration-files->code)) 47 manifest+configuration-files->code))
41 48
42;;; Commentary:
43;;;
44;;; This module provides utilities for generating home service
45;;; configurations from existing "dotfiles".
46;;;
47;;; Code:
48
49(define (basename+remove-dots file-name) 49(define (basename+remove-dots file-name)
50 "Remove the dot from the dotfile FILE-NAME; replace the other dots in 50 "Remove the dot from the dotfile FILE-NAME; replace the other dots in
51FILE-NAME with \"-\", and return the basename of it." 51FILE-NAME with \"-\", and return the basename of it."
diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm
index 462c3dfc0c0..1b694084b31 100644
--- a/guix/scripts/offload.scm
+++ b/guix/scripts/offload.scm
@@ -19,6 +19,18 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; Attempt to offload builds to the machines listed in
25;;; /etc/guix/machines.scm, transferring missing dependencies over SSH, and
26;;; retrieving the build output(s) over SSH upon success.
27;;;
28;;; This command should not be used directly; instead, it is called on-demand
29;;; by the daemon, unless it was started with '--no-offload' or a client
30;;; inhibited build hooks.
31;;;
32;;; Code:
33
22(define-module (guix scripts offload) 34(define-module (guix scripts offload)
23 #:autoload (ssh key) (private-key-from-file 35 #:autoload (ssh key) (private-key-from-file
24 public-key-from-file) 36 public-key-from-file)
@@ -76,18 +88,6 @@
76 88
77 guix-offload)) 89 guix-offload))
78 90
79;;; Commentary:
80;;;
81;;; Attempt to offload builds to the machines listed in
82;;; /etc/guix/machines.scm, transferring missing dependencies over SSH, and
83;;; retrieving the build output(s) over SSH upon success.
84;;;
85;;; This command should not be used directly; instead, it is called on-demand
86;;; by the daemon, unless it was started with '--no-offload' or a client
87;;; inhibited build hooks.
88;;;
89;;; Code:
90
91(define-record-type* <build-machine> 91(define-record-type* <build-machine>
92 build-machine make-build-machine 92 build-machine make-build-machine
93 build-machine? 93 build-machine?
diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm
index dbaff4a89c0..cf89cde31bc 100644
--- a/guix/scripts/pack.scm
+++ b/guix/scripts/pack.scm
@@ -28,6 +28,14 @@
28;;; You should have received a copy of the GNU General Public License 28;;; You should have received a copy of the GNU General Public License
29;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 29;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
30 30
31;;; Commentary:
32;;;
33;;; This module implements the 'guix pack' command and the various supported
34;;; formats. Where feasible, the builders of the packs should be implemented
35;;; as single derivations to minimize storage requirements.
36;;;
37;;; Code:
38
31(define-module (guix scripts pack) 39(define-module (guix scripts pack)
32 #:use-module (guix scripts) 40 #:use-module (guix scripts)
33 #:autoload (guix import json) (json->scheme-file) 41 #:autoload (guix import json) (json->scheme-file)
@@ -85,14 +93,6 @@
85 93
86 wrapped-manifest)) 94 wrapped-manifest))
87 95
88;;; Commentary:
89
90;;; This module implements the 'guix pack' command and the various supported
91;;; formats. Where feasible, the builders of the packs should be implemented
92;;; as single derivations to minimize storage requirements.
93
94;;; Code:
95
96;; This one is only for use in this module, so don't put it in %compressors. 96;; This one is only for use in this module, so don't put it in %compressors.
97(define (bootstrap-xz) 97(define (bootstrap-xz)
98 (compressor "bootstrap-xz" ".xz" 98 (compressor "bootstrap-xz" ".xz"
diff --git a/guix/scripts/repl.scm b/guix/scripts/repl.scm
index cb71e59b05f..8bfc5ed1bc1 100644
--- a/guix/scripts/repl.scm
+++ b/guix/scripts/repl.scm
@@ -18,6 +18,13 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21;;; Commentary:
22;;;
23;;; This command provides a Guile script runner and REPL in an environment
24;;; that contains all the modules comprising Guix.
25;;;
26;;; Code:
27
21(define-module (guix scripts repl) 28(define-module (guix scripts repl)
22 #:use-module (guix ui) 29 #:use-module (guix ui)
23 #:use-module (guix scripts) 30 #:use-module (guix scripts)
@@ -31,11 +38,6 @@
31 (make-tcp-server-socket make-unix-domain-server-socket) 38 (make-tcp-server-socket make-unix-domain-server-socket)
32 #:export (guix-repl)) 39 #:export (guix-repl))
33 40
34;;; Commentary:
35;;;
36;;; This command provides a Guile script runner and REPL in an environment
37;;; that contains all the modules comprising Guix.
38
39(define %default-options 41(define %default-options
40 `((type . guile))) 42 `((type . guile)))
41 43
diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index 96d8c13ac2c..019269102b2 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -19,6 +19,17 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; This is the "binary substituter". It is invoked by the daemon do check
25;;; for the existence of available "substitutes" (pre-built binaries), and to
26;;; actually use them as a substitute to building things locally.
27;;;
28;;; If possible, substitute a binary for the requested store path, using a Nix
29;;; "binary cache". This program implements the Nix "substituter" protocol.
30;;;
31;;; Code:
32
22(define-module (guix scripts substitute) 33(define-module (guix scripts substitute)
23 #:use-module (guix ui) 34 #:use-module (guix ui)
24 #:use-module (guix scripts) 35 #:use-module (guix scripts)
@@ -64,17 +75,6 @@
64 substitute-urls 75 substitute-urls
65 guix-substitute)) 76 guix-substitute))
66 77
67;;; Comment:
68;;;
69;;; This is the "binary substituter". It is invoked by the daemon do check
70;;; for the existence of available "substitutes" (pre-built binaries), and to
71;;; actually use them as a substitute to building things locally.
72;;;
73;;; If possible, substitute a binary for the requested store path, using a Nix
74;;; "binary cache". This program implements the Nix "substituter" protocol.
75;;;
76;;; Code:
77
78(define %narinfo-expired-cache-entry-removal-delay 78(define %narinfo-expired-cache-entry-removal-delay
79 ;; How often we want to remove files corresponding to expired cache entries. 79 ;; How often we want to remove files corresponding to expired cache entries.
80 (* 5 24 3600)) 80 (* 5 24 3600))
diff --git a/guix/scripts/system/installer.scm b/guix/scripts/system/installer.scm
index 7a26896a872..5ea38043320 100644
--- a/guix/scripts/system/installer.scm
+++ b/guix/scripts/system/installer.scm
@@ -16,6 +16,13 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; Implement the 'guix system installer' command, which runs the installer,
22;;; directly as a Guix command, also in dry-run mode.
23;;;
24;;; Code:
25
19(define-module (guix scripts system installer) 26(define-module (guix scripts system installer)
20 #:use-module (srfi srfi-1) 27 #:use-module (srfi srfi-1)
21 #:use-module (srfi srfi-37) 28 #:use-module (srfi srfi-37)
@@ -25,13 +32,6 @@
25 #:use-module (guix utils) 32 #:use-module (guix utils)
26 #:export (guix-system-installer)) 33 #:export (guix-system-installer))
27 34
28;;; Commentary:
29;;;
30;;; Implement the 'guix system installer' command, which runs the installer,
31;;; directly as a Guix command, also in dry-run mode.
32;;;
33;;; Code:
34
35(define %options 35(define %options
36 (list (option '(#\n "dry-run") #f #f 36 (list (option '(#\n "dry-run") #f #f
37 (lambda (opt name arg result) 37 (lambda (opt name arg result)
diff --git a/guix/scripts/system/reconfigure.scm b/guix/scripts/system/reconfigure.scm
index 402e6d30fc1..74430991862 100644
--- a/guix/scripts/system/reconfigure.scm
+++ b/guix/scripts/system/reconfigure.scm
@@ -24,6 +24,16 @@
24;;; You should have received a copy of the GNU General Public License 24;;; You should have received a copy of the GNU General Public License
25;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 25;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
26 26
27;;; Commentary:
28;;;
29;;; This module implements the "effectful" parts of system
30;;; reconfiguration. Although building a system derivation is a pure
31;;; operation, a number of impure operations must be carried out for the
32;;; system configuration to be realized -- chiefly, creation of generation
33;;; symlinks and invocation of activation scripts.
34;;;
35;;; Code:
36
27(define-module (guix scripts system reconfigure) 37(define-module (guix scripts system reconfigure)
28 #:autoload (gnu packages gnupg) (guile-gcrypt) 38 #:autoload (gnu packages gnupg) (guile-gcrypt)
29 #:use-module (gnu bootloader) 39 #:use-module (gnu bootloader)
@@ -64,16 +74,6 @@
64 ensure-forward-reconfigure 74 ensure-forward-reconfigure
65 warn-about-backward-reconfigure)) 75 warn-about-backward-reconfigure))
66 76
67;;; Commentary:
68;;;
69;;; This module implements the "effectful" parts of system
70;;; reconfiguration. Although building a system derivation is a pure
71;;; operation, a number of impure operations must be carried out for the
72;;; system configuration to be realized -- chiefly, creation of generation
73;;; symlinks and invocation of activation scripts.
74;;;
75;;; Code:
76
77 77
78;;; 78;;;
79;;; Profile creation. 79;;; Profile creation.
diff --git a/guix/scripts/system/search.scm b/guix/scripts/system/search.scm
index d978884518e..626fbdb8430 100644
--- a/guix/scripts/system/search.scm
+++ b/guix/scripts/system/search.scm
@@ -17,6 +17,13 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; Implement the 'guix system search' command, which searches among the
23;;; available service types.
24;;;
25;;; Code:
26
20(define-module (guix scripts system search) 27(define-module (guix scripts system search)
21 #:use-module (guix ui) 28 #:use-module (guix ui)
22 #:use-module (guix utils) 29 #:use-module (guix utils)
@@ -35,13 +42,6 @@
35 find-service-types 42 find-service-types
36 guix-system-search)) 43 guix-system-search))
37 44
38;;; Commentary:
39;;;
40;;; Implement the 'guix system search' command, which searches among the
41;;; available service types.
42;;;
43;;; Code:
44
45(define service-type-name* 45(define service-type-name*
46 (compose symbol->string service-type-name)) 46 (compose symbol->string service-type-name))
47 47
diff --git a/guix/search-paths.scm b/guix/search-paths.scm
index 90939d6aca6..1e72a2708b5 100644
--- a/guix/search-paths.scm
+++ b/guix/search-paths.scm
@@ -18,6 +18,15 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21;;; Commentary:
22;;;
23;;; This module defines "search path specifications", which allow packages to
24;;; declare environment variables that they use to define search paths. For
25;;; instance, GCC has the 'CPATH' variable, Guile has the 'GUILE_LOAD_PATH'
26;;; variable, etc.
27;;;
28;;; Code:
29
21(define-module (guix search-paths) 30(define-module (guix search-paths)
22 #:use-module (guix records) 31 #:use-module (guix records)
23 #:use-module (guix build utils) 32 #:use-module (guix build utils)
@@ -59,15 +68,6 @@
59 search-path-definition 68 search-path-definition
60 set-search-paths)) 69 set-search-paths))
61 70
62;;; Commentary:
63;;;
64;;; This module defines "search path specifications", which allow packages to
65;;; declare environment variables that they use to define search paths. For
66;;; instance, GCC has the 'CPATH' variable, Guile has the 'GUILE_LOAD_PATH'
67;;; variable, etc.
68;;;
69;;; Code:
70
71;; The specification of a search path. 71;; The specification of a search path.
72(define-record-type* <search-path-specification> 72(define-record-type* <search-path-specification>
73 search-path-specification make-search-path-specification 73 search-path-specification make-search-path-specification
diff --git a/guix/serialization.scm b/guix/serialization.scm
index 54ff5da03d9..480dc04182e 100644
--- a/guix/serialization.scm
+++ b/guix/serialization.scm
@@ -16,6 +16,14 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19
20;;; Commentary:
21;;;
22;;; Serialization procedures used by the RPCs and the Nar format. This module
23;;; is for internal consumption.
24;;;
25;;; Code:
26
19(define-module (guix serialization) 27(define-module (guix serialization)
20 #:autoload (guix base16) (base16-string->bytevector 28 #:autoload (guix base16) (base16-string->bytevector
21 bytevector->base16-string) 29 bytevector->base16-string)
@@ -78,13 +86,6 @@
78 restore-file 86 restore-file
79 dump-file)) 87 dump-file))
80 88
81;;; Comment:
82;;;
83;;; Serialization procedures used by the RPCs and the Nar format. This module
84;;; is for internal consumption.
85;;;
86;;; Code:
87
88;; Similar to serialize.cc in Nix. 89;; Similar to serialize.cc in Nix.
89 90
90(define-condition-type &nar-error &error ; XXX: inherit from &store-error ? 91(define-condition-type &nar-error &error ; XXX: inherit from &store-error ?
diff --git a/guix/sets.scm b/guix/sets.scm
index 017b79ca31d..de94f327230 100644
--- a/guix/sets.scm
+++ b/guix/sets.scm
@@ -16,6 +16,17 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; A simple (simplistic?) implementation of unordered persistent sets based
22;;; on vhashes that seems to be good enough so far.
23;;;
24;;; Another option would be to use "bounded balance trees" (Adams 1992) as
25;;; implemented by Ian Price in 'pfds', which has faster union etc. but needs
26;;; an order on the objects of the set.
27;;;
28;;; Code:
29
19(define-module (guix sets) 30(define-module (guix sets)
20 #:use-module (srfi srfi-1) 31 #:use-module (srfi srfi-1)
21 #:use-module (srfi srfi-9) 32 #:use-module (srfi srfi-9)
@@ -32,17 +43,6 @@
32 list->set 43 list->set
33 list->setq)) 44 list->setq))
34 45
35;;; Commentary:
36;;;
37;;; A simple (simplistic?) implementation of unordered persistent sets based
38;;; on vhashes that seems to be good enough so far.
39;;;
40;;; Another option would be to use "bounded balance trees" (Adams 1992) as
41;;; implemented by Ian Price in 'pfds', which has faster union etc. but needs
42;;; an order on the objects of the set.
43;;;
44;;; Code:
45
46(define-record-type <set> 46(define-record-type <set>
47 (%make-set vhash insert ref) 47 (%make-set vhash insert ref)
48 set? 48 set?
diff --git a/guix/ssh.scm b/guix/ssh.scm
index 4a28432dcee..e91d1c19c55 100644
--- a/guix/ssh.scm
+++ b/guix/ssh.scm
@@ -16,6 +16,13 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module provides tools to support communication with remote stores
22;;; over SSH, using Guile-SSH.
23;;;
24;;; Code:
25
19(define-module (guix ssh) 26(define-module (guix ssh)
20 #:use-module (guix store) 27 #:use-module (guix store)
21 #:use-module (guix inferior) 28 #:use-module (guix inferior)
@@ -56,13 +63,6 @@
56 63
57 report-guile-error)) 64 report-guile-error))
58 65
59;;; Commentary:
60;;;
61;;; This module provides tools to support communication with remote stores
62;;; over SSH, using Guile-SSH.
63;;;
64;;; Code:
65
66(define %compression 66(define %compression
67 "zlib@openssh.com,zlib,none") 67 "zlib@openssh.com,zlib,none")
68 68
diff --git a/guix/status.scm b/guix/status.scm
index d3e926912c5..1404e40c56f 100644
--- a/guix/status.scm
+++ b/guix/status.scm
@@ -19,6 +19,16 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; This module provides facilities to track the status of ongoing builds and
25;;; downloads in a given session, as well as tools to report about the current
26;;; status to user interfaces. It does so by analyzing the output of
27;;; 'current-build-output-port'. The build status is maintained in a
28;;; <build-status> record.
29;;;
30;;; Code:
31
22(define-module (guix status) 32(define-module (guix status)
23 #:use-module (guix records) 33 #:use-module (guix records)
24 #:use-module (guix i18n) 34 #:use-module (guix i18n)
@@ -77,16 +87,6 @@
77 with-status-report 87 with-status-report
78 with-status-verbosity)) 88 with-status-verbosity))
79 89
80;;; Commentary:
81;;;
82;;; This module provides facilities to track the status of ongoing builds and
83;;; downloads in a given session, as well as tools to report about the current
84;;; status to user interfaces. It does so by analyzing the output of
85;;; 'current-build-output-port'. The build status is maintained in a
86;;; <build-status> record.
87;;;
88;;; Code:
89
90 90
91;;; 91;;;
92;;; Build status tracking. 92;;; Build status tracking.
diff --git a/guix/store/roots.scm b/guix/store/roots.scm
index 6b949b5a86e..1fc366fc843 100644
--- a/guix/store/roots.scm
+++ b/guix/store/roots.scm
@@ -16,6 +16,13 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module provides tools to list and access garbage collector roots ("GC
22;;; roots").
23;;;
24;;; Code:
25
19(define-module (guix store roots) 26(define-module (guix store roots)
20 #:use-module (guix config) 27 #:use-module (guix config)
21 #:use-module ((guix store) #:select (store-path? %gc-roots-directory)) 28 #:use-module ((guix store) #:select (store-path? %gc-roots-directory))
@@ -34,13 +41,6 @@
34 user-owned? 41 user-owned?
35 busy-store-items)) 42 busy-store-items))
36 43
37;;; Commentary:
38;;;
39;;; This module provides tools to list and access garbage collector roots ("GC
40;;; roots").
41;;;
42;;; Code:
43
44(define %profile-directory 44(define %profile-directory
45 ;; Directory where user profiles are stored. 45 ;; Directory where user profiles are stored.
46 ;; XXX: This is redundant with the definition in (guix profiles) and not 46 ;; XXX: This is redundant with the definition in (guix profiles) and not
diff --git a/guix/store/ssh.scm b/guix/store/ssh.scm
index 7e6371acbca..7a09a3b0fe4 100644
--- a/guix/store/ssh.scm
+++ b/guix/store/ssh.scm
@@ -16,18 +16,18 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19(define-module (guix store ssh)
20 #:use-module (guix ssh)
21 #:use-module (web uri)
22 #:export (connect-to-daemon))
23
24;;; Commentary: 19;;; Commentary:
25;;; 20;;;
26;;; This modules provides the entry point for 'open-connection' in (guix 21;;; This modules provides the entry point for 'open-connection' in (guix
27;;; store). Passing an 'ssh://' URI to 'open-connection' triggers the use of 22;;; store). Passing an 'ssh://' URI to 'open-connection' triggers the use of
28;;; the code in this module. 23;;; the code in this module.
29;;; 24;;;
30;;; End: 25;;; Code:
26
27(define-module (guix store ssh)
28 #:use-module (guix ssh)
29 #:use-module (web uri)
30 #:export (connect-to-daemon))
31 31
32(define (connect-to-daemon uri) 32(define (connect-to-daemon uri)
33 "Connect to the SSH daemon at URI, a URI object with the 'ssh' scheme." 33 "Connect to the SSH daemon at URI, a URI object with the 'ssh' scheme."
diff --git a/guix/svn-download.scm b/guix/svn-download.scm
index 81a98b11214..893c140ca0a 100644
--- a/guix/svn-download.scm
+++ b/guix/svn-download.scm
@@ -18,6 +18,14 @@
18;;; You should have received a copy of the GNU General Public License 18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 20
21;;; Commentary:
22;;;
23;;; An <origin> method that fetches a specific revision from a Subversion
24;;; repository. The repository URL and REVISION are specified with a
25;;; <svn-reference> object. REVISION should be specified as a number.
26;;;
27;;; Code:
28
21(define-module (guix svn-download) 29(define-module (guix svn-download)
22 #:use-module (guix records) 30 #:use-module (guix records)
23 #:use-module (guix gexp) 31 #:use-module (guix gexp)
@@ -52,14 +60,6 @@
52 svn-multi-fetch 60 svn-multi-fetch
53 download-multi-svn-to-store)) 61 download-multi-svn-to-store))
54 62
55;;; Commentary:
56;;;
57;;; An <origin> method that fetches a specific revision from a Subversion
58;;; repository. The repository URL and REVISION are specified with a
59;;; <svn-reference> object. REVISION should be specified as a number.
60;;;
61;;; Code:
62
63(define-record-type* <svn-reference> 63(define-record-type* <svn-reference>
64 svn-reference make-svn-reference 64 svn-reference make-svn-reference
65 svn-reference? 65 svn-reference?
diff --git a/guix/swh.scm b/guix/swh.scm
index 0999314707d..98e7dbb230f 100644
--- a/guix/swh.scm
+++ b/guix/swh.scm
@@ -19,6 +19,18 @@
19;;; You should have received a copy of the GNU General Public License 19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 21
22;;; Commentary:
23;;;
24;;; This module provides bindings to the HTTP interface of Software Heritage.
25;;; It allows you to browse the archive, look up revisions (such as SHA1
26;;; commit IDs), "origins" (code hosting URLs), content (files), etc. See
27;;; <https://archive.softwareheritage.org/api/> for more information.
28;;;
29;;; The high-level 'swh-download' procedure allows you to download a Git
30;;; revision from Software Heritage, provided it is available.
31;;;
32;;; Code:
33
22(define-module (guix swh) 34(define-module (guix swh)
23 #:use-module (guix base16) 35 #:use-module (guix base16)
24 #:use-module (guix build utils) 36 #:use-module (guix build utils)
@@ -128,18 +140,6 @@
128 swh-download-directory-by-nar-hash 140 swh-download-directory-by-nar-hash
129 swh-download)) 141 swh-download))
130 142
131;;; Commentary:
132;;;
133;;; This module provides bindings to the HTTP interface of Software Heritage.
134;;; It allows you to browse the archive, look up revisions (such as SHA1
135;;; commit IDs), "origins" (code hosting URLs), content (files), etc. See
136;;; <https://archive.softwareheritage.org/api/> for more information.
137;;;
138;;; The high-level 'swh-download' procedure allows you to download a Git
139;;; revision from Software Heritage, provided it is available.
140;;;
141;;; Code:
142
143(define %swh-base-url 143(define %swh-base-url
144 ;; Presumably we won't need to change it. 144 ;; Presumably we won't need to change it.
145 (make-parameter "https://archive.softwareheritage.org")) 145 (make-parameter "https://archive.softwareheritage.org"))
diff --git a/guix/tests.scm b/guix/tests.scm
index 00787ced20c..4be360a7798 100644
--- a/guix/tests.scm
+++ b/guix/tests.scm
@@ -16,6 +16,13 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; This module provide shared infrastructure for the test suite. For
22;;; internal use only.
23;;;
24;;; Code:
25
19(define-module (guix tests) 26(define-module (guix tests)
20 #:use-module ((guix config) #:select (%storedir %localstatedir)) 27 #:use-module ((guix config) #:select (%storedir %localstatedir))
21 #:use-module (guix store) 28 #:use-module (guix store)
@@ -66,13 +73,6 @@
66 73
67 test-file)) 74 test-file))
68 75
69;;; Commentary:
70;;;
71;;; This module provide shared infrastructure for the test suite. For
72;;; internal use only.
73;;;
74;;; Code:
75
76(define %tests-build-timeout 76(define %tests-build-timeout
77 ;; Timeout limit for guix unit tests (default: 5 minutes) 77 ;; Timeout limit for guix unit tests (default: 5 minutes)
78 (let ((default (if (string=? "riscv64-linux" (%current-system)) 78 (let ((default (if (string=? "riscv64-linux" (%current-system))
diff --git a/guix/tests/http.scm b/guix/tests/http.scm
index 17485df9efd..ac026ba9d56 100644
--- a/guix/tests/http.scm
+++ b/guix/tests/http.scm
@@ -17,6 +17,12 @@
17;;; You should have received a copy of the GNU General Public License 17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 19
20;;; Commentary:
21;;;
22;;; Code to spawn a Web server for testing purposes.
23;;;
24;;; Code:
25
20(define-module (guix tests http) 26(define-module (guix tests http)
21 #:use-module (ice-9 threads) 27 #:use-module (ice-9 threads)
22 #:use-module (web server) 28 #:use-module (web server)
@@ -32,12 +38,6 @@
32 %http-server-port 38 %http-server-port
33 %local-url)) 39 %local-url))
34 40
35;;; Commentary:
36;;;
37;;; Code to spawn a Web server for testing purposes.
38;;;
39;;; Code:
40
41(define %http-server-port 41(define %http-server-port
42 ;; TCP port to use for the stub HTTP server. 42 ;; TCP port to use for the stub HTTP server.
43 ;; If 0, the OS will automatically choose 43 ;; If 0, the OS will automatically choose
diff --git a/guix/transformations.scm b/guix/transformations.scm
index 236527330f6..d0e4e88822a 100644
--- a/guix/transformations.scm
+++ b/guix/transformations.scm
@@ -20,6 +20,14 @@
20;;; You should have received a copy of the GNU General Public License 20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22 22
23;;; Commentary:
24;;;
25;;; This module implements "package transformation options"---tools for
26;;; package graph rewriting. It contains the graph rewriting logic, but also
27;;; the tip of its user interface: command-line option handling.
28;;;
29;;; Code:
30
23(define-module (guix transformations) 31(define-module (guix transformations)
24 #:use-module ((guix config) #:select (%system)) 32 #:use-module ((guix config) #:select (%system))
25 #:use-module (guix i18n) 33 #:use-module (guix i18n)
@@ -75,14 +83,6 @@
75 cacheable-transformation-option-key? 83 cacheable-transformation-option-key?
76 %transformation-options)) 84 %transformation-options))
77 85
78;;; Commentary:
79;;;
80;;; This module implements "package transformation options"---tools for
81;;; package graph rewriting. It contains the graph rewriting logic, but also
82;;; the tip of its user interface: command-line option handling.
83;;;
84;;; Code:
85
86(module-autoload! (current-module) '(gnu packages) 86(module-autoload! (current-module) '(gnu packages)
87 '(specification->package)) 87 '(specification->package))
88 88
diff --git a/guix/ui.scm b/guix/ui.scm
index dafc04b20f7..9235c4f4016 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -36,6 +36,16 @@
36;;; You should have received a copy of the GNU General Public License 36;;; You should have received a copy of the GNU General Public License
37;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 37;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
38 38
39;;; Commentary:
40;;;
41;;; User interface facilities for command-line tools.
42;;;
43;;; Note: This module is meant to be imported by user interfaces only and not
44;;; be "regular" modules. It depends on lots of modules that may be
45;;; relatively heavyweight dependencies for non-UI modules.
46;;;
47;;; Code:
48
39(define-module (guix ui) ;import in user interfaces only 49(define-module (guix ui) ;import in user interfaces only
40 #:use-module (guix i18n) 50 #:use-module (guix i18n)
41 #:use-module (guix colors) 51 #:use-module (guix colors)
@@ -152,16 +162,6 @@
152 run-guix 162 run-guix
153 guix-main)) 163 guix-main))
154 164
155;;; Commentary:
156;;;
157;;; User interface facilities for command-line tools.
158;;;
159;;; Note: This module is meant to be imported by user interfaces only and not
160;;; be "regular" modules. It depends on lots of modules that may be
161;;; relatively heavyweight dependencies for non-UI modules.
162;;;
163;;; Code:
164
165(define (print-unbound-variable-error port key args default-printer) 165(define (print-unbound-variable-error port key args default-printer)
166 ;; Print unbound variable errors more nicely, and in the right language. 166 ;; Print unbound variable errors more nicely, and in the right language.
167 (match args 167 (match args
diff --git a/guix/upstream.scm b/guix/upstream.scm
index 972f674d350..bacba8a8b19 100644
--- a/guix/upstream.scm
+++ b/guix/upstream.scm
@@ -21,6 +21,13 @@
21;;; You should have received a copy of the GNU General Public License 21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23 23
24;;; Commentary:
25;;;
26;;; This module provides tools to represent and manipulate a upstream source
27;;; code, and to auto-update package recipes.
28;;;
29;;; Code:
30
24(define-module (guix upstream) 31(define-module (guix upstream)
25 #:use-module (guix records) 32 #:use-module (guix records)
26 #:use-module (guix utils) 33 #:use-module (guix utils)
@@ -96,13 +103,6 @@
96 package-update 103 package-update
97 update-package-source)) 104 update-package-source))
98 105
99;;; Commentary:
100;;;
101;;; This module provides tools to represent and manipulate a upstream source
102;;; code, and to auto-update package recipes.
103;;;
104;;; Code:
105
106;; Representation of upstream's source. There can be several URLs--e.g., 106;; Representation of upstream's source. There can be several URLs--e.g.,
107;; tar.gz, tar.gz, etc. There can be correspond signature URLs, one per 107;; tar.gz, tar.gz, etc. There can be correspond signature URLs, one per
108;; source URL. 108;; source URL.
diff --git a/guix/workers.scm b/guix/workers.scm
index 3cd683c96d7..8e315a35222 100644
--- a/guix/workers.scm
+++ b/guix/workers.scm
@@ -16,20 +16,6 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19(define-module (guix workers)
20 #:use-module (ice-9 threads)
21 #:use-module (ice-9 match)
22 #:use-module (ice-9 q)
23 #:use-module (srfi srfi-1)
24 #:use-module (srfi srfi-9)
25 #:use-module (srfi srfi-26)
26 #:use-module ((guix build syscalls) #:select (set-thread-name))
27 #:export (pool?
28 make-pool
29 pool-enqueue!
30 pool-idle?
31 eventually))
32
33;;; Commentary: 19;;; Commentary:
34;;; 20;;;
35;;; This module implements "worker pools". Worker pools are the low-level 21;;; This module implements "worker pools". Worker pools are the low-level
@@ -44,6 +30,20 @@
44;;; 30;;;
45;;; Code: 31;;; Code:
46 32
33(define-module (guix workers)
34 #:use-module (ice-9 threads)
35 #:use-module (ice-9 match)
36 #:use-module (ice-9 q)
37 #:use-module (srfi srfi-1)
38 #:use-module (srfi srfi-9)
39 #:use-module (srfi srfi-26)
40 #:use-module ((guix build syscalls) #:select (set-thread-name))
41 #:export (pool?
42 make-pool
43 pool-enqueue!
44 pool-idle?
45 eventually))
46
47(define-record-type <pool> 47(define-record-type <pool>
48 (%make-pool queue mutex condvar workers busy) 48 (%make-pool queue mutex condvar workers busy)
49 pool? 49 pool?
diff --git a/tests/services/vpn.scm b/tests/services/vpn.scm
index 484eefec80d..b7a347df200 100644
--- a/tests/services/vpn.scm
+++ b/tests/services/vpn.scm
@@ -16,6 +16,12 @@
16;;; You should have received a copy of the GNU General Public License 16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18 18
19;;; Commentary:
20;;;
21;;; Unit tests for the (gnu services vpn) module.
22;;;
23;;; Code:
24
19(define-module (tests services vpn) 25(define-module (tests services vpn)
20 #:use-module (gnu packages vpn) 26 #:use-module (gnu packages vpn)
21 #:use-module (gnu services vpn) 27 #:use-module (gnu services vpn)
@@ -24,12 +30,6 @@
24 #:use-module (srfi srfi-1) 30 #:use-module (srfi srfi-1)
25 #:use-module (srfi srfi-64)) 31 #:use-module (srfi srfi-64))
26 32
27;;; Commentary:
28;;;
29;;; Unit tests for the (gnu services vpn) module.
30;;;
31;;; Code:
32
33;;; Access some internals for whitebox testing. 33;;; Access some internals for whitebox testing.
34(define ipv4-address? (@@ (gnu services vpn) ipv4-address?)) 34(define ipv4-address? (@@ (gnu services vpn) ipv4-address?))
35(define ipv6-address? (@@ (gnu services vpn) ipv6-address?)) 35(define ipv6-address? (@@ (gnu services vpn) ipv6-address?))