;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013-2025 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015, 2016, 2020 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
;;; Copyright © 2019, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2021 qblade <qblade@protonmail.com>
;;; Copyright © 2021 Hui Lu <luhuins@163.com>
;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 muradm <mail@muradm.net>
;;; Copyright © 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2022 Justin Veilleux <terramorpha@cock.li>
;;; Copyright © 2022 ( <paren@disroot.org>
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu services base)
#:use-module (guix store)
#:use-module (guix deprecation)
#:autoload (guix diagnostics) (warning formatted-message &fix-hint)
#:autoload (guix i18n) (G_)
#:use-module (guix combinators)
#:use-module (guix utils)
#:use-module (gnu services)
#:use-module (gnu services admin)
#:use-module (gnu services shepherd)
#:use-module (gnu services sysctl)
#:use-module (gnu system pam)
#:use-module (gnu system shadow) ; 'user-account', etc.
#:use-module (gnu system uuid)
#:use-module (gnu system file-systems) ; 'file-system', etc.
#:use-module (gnu system keyboard)
#:use-module (gnu system mapped-devices)
#:use-module ((gnu system linux-initrd)
#:select (file-system-packages))
#:use-module (gnu packages admin)
#:use-module ((gnu packages linux)
#:select (alsa-utils btrfs-progs crda eudev
e2fsprogs f2fs-tools fuse gpm kbd lvm2 rng-tools
util-linux xfsprogs))
#:use-module (gnu packages bash)
#:use-module ((gnu packages base)
#:select (coreutils glibc glibc/hurd
glibc-utf8-locales
libc-utf8-locales-for-target
make-glibc-utf8-locales
tar canonical-package))
#:use-module ((gnu packages cross-base)
#:select (cross-libc))
#:use-module ((gnu packages compression) #:select (gzip))
#:use-module (gnu packages fonts)
#:autoload (gnu packages guile-xyz) (guile-netlink)
#:autoload (gnu packages hurd) (hurd)
#:use-module (gnu packages package-management)
#:use-module ((gnu packages gnupg) #:select (guile-gcrypt))
#:use-module ((gnu packages disk)
#:select (dosfstools))
#:use-module ((gnu packages file-systems)
#:select (bcachefs-tools exfat-utils jfsutils zfs))
#:use-module (gnu packages fonts)
#:use-module (gnu packages terminals)
#:use-module ((gnu packages wm) #:select (sway))
#:use-module ((gnu build file-systems)
#:select (mount-flags->bit-mask
swap-space->flags-bit-mask))
#:autoload (guix channels) (%default-channels channel->code)
#:use-module (guix gexp)
#:use-module ((guix packages) #:select (package-version))
#:use-module (guix records)
#:use-module (guix modules)
#:use-module (guix pki)
#:use-module ((guix self) #:select (make-config.scm))
#:use-module (guix diagnostics)
#:use-module (guix i18n)
#:autoload (guix utils) (target-hurd?)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
#:re-export (user-processes-service-type ;backwards compatibility
%default-substitute-urls)
#:export (fstab-service-type
root-file-system-service
file-system-service-type
file-system-utilities
swap-service
host-name-service ; deprecated
host-name-service-type
%default-console-font
console-font-service-type
console-font-service
virtual-terminal-service-type
host
host?
host-address
host-canonical-name
host-aliases
hosts-service-type
static-networking
static-networking?
static-networking-addresses
static-networking-links
static-networking-routes
static-networking-requirement
network-address
network-address?
network-address-device
network-address-value
network-address-ipv6?
network-link
network-link?
network-link-name
network-link-type
network-link-arguments
network-route
network-route?
network-route-destination
network-route-source
network-route-device
network-route-ipv6?
network-route-gateway
static-networking-service
static-networking-service-type
%loopback-static-networking
%qemu-static-networking
udev-configuration
udev-configuration?
udev-configuration-rules
udev-configuration-hardware
udev-service-type
udev-service ; deprecated
udev-rule
udev-hardware
file->udev-rule
file->udev-hardware
udev-rules-service
udev-hardware-service
login-configuration
login-configuration?
login-service-type
login-service ; deprecated
agetty-configuration
agetty-configuration?
agetty-service ; deprecated
agetty-service-type
mingetty-configuration
mingetty-configuration-tty
mingetty-configuration-auto-login
mingetty-configuration-login-program
mingetty-configuration-login-pause?
mingetty-configuration-clear-on-logout?
mingetty-configuration-mingetty
mingetty-configuration-delay
mingetty-configuration-print-issue
mingetty-configuration-print-hostname
mingetty-configuration-nice
mingetty-configuration-working-directory
mingetty-configuration-root-directory
mingetty-configuration-shepherd-requirement
mingetty-configuration?
mingetty-service ; deprecated
mingetty-service-type
%nscd-default-caches
%nscd-default-configuration ; deprecated
nscd-configuration
nscd-configuration?
nscd-cache
nscd-cache?
nscd-service-type
nscd-service ; deprecated
syslog-configuration
syslog-configuration?
syslog-service ; deprecated
syslog-service-type
%default-syslog.conf
%default-authorized-guix-keys
guix-configuration
guix-configuration?
guix-configuration-guix
guix-configuration-build-group
guix-configuration-build-accounts
guix-configuration-build-machines
guix-configuration-authorize-key?
guix-configuration-authorized-keys
guix-configuration-use-substitutes?
guix-configuration-substitute-urls
guix-configuration-generate-substitute-key?
guix-configuration-channels
guix-configuration-extra-options
guix-configuration-log-file
guix-configuration-environment
guix-extension
guix-extension?
guix-extension-authorized-keys
guix-extension-substitute-urls
guix-extension-chroot-directories
guix-service-type
guix-publish-configuration
guix-publish-configuration?
guix-publish-configuration-guix
guix-publish-configuration-port
guix-publish-configuration-host
guix-publish-configuration-compression
guix-publish-configuration-nar-path
guix-publish-configuration-cache
guix-publish-configuration-ttl
guix-publish-configuration-negative-ttl
guix-publish-service-type
gpm-configuration
gpm-configuration?
gpm-service-type
urandom-seed-service-type
rngd?id=de68ad095db7cdd06c45c53c47e7cbcb3fdf8bf6'>gnu: zstd: Update to 1.3.6....* gnu/packages/compression.scm (zstd): Update to 1.3.6.
[source]: Remove merged patches.
* gnu/packages/patches/zstd-fix-stdin-list-test.patch,
gnu/packages/patches/zstd-fix-stdin-list-without-tty.patch: Delete files.
* gnu/local.mk (dist_patch_DATA): Remove them.
Tobias Geerinckx-Rice |
2018-10-07 | gnu: borg: The backup client cannot override the server-side storage quota....* gnu/packages/patches/borg-respect-storage-quota.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/backup.scm (borg)[source]: Use it.
| Leo Famulari |
2018-10-07 | gnu: mes: Update to 0.18....* gnu/packages/patches/mes-nyacc-0.86.0.patch: Removef file.
* gnu/local.mk (dist_patch_DATA): Remove entry.
* gnu/packages/mes.scm (mes): Update to 0.18.
| Jan Nieuwenhuizen |
2018-10-07 | gnu: Add java-w3c-smil....* gnu/packages/batik.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
| Danny Milosavljevic |
2018-10-05 | gnu: gnucash: Update to 3.3....* gnu/packages/patches/gnucash-disable-failing-tests.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/gnucash.scm (gnucash): Update to 3.3.
[source]: Add patch.
[arguments]: Add 'set-env-vars', 'glib-or-gtk-compile-schemas', and
'glib-or-gtk-wrap' phases.
| Kei Kebreau |
2018-10-05 | gnu: Add bastet....* gnu/packages/games.scm (bastet): New public variable.
* gnu/packages/patches/bastet-change-source-of-unordered_set.patch:
New file.
* gnu/local.mk (dist_patch_DATA): Add it.
| Tobias Geerinckx-Rice |
2018-10-03 | quilt: Remove test workarounds....* gnu/packages/patches/quilt-compat-getopt-fix-second-separator.patch,
gnu/packages/patches/quilt-compat-getopt-fix-option-with-nondigit-param.patch:
New files.
* gnu/local.mk (dist_patch_DATA): Add them.
* gnu/packages/patchutils.scm (quilt)[source]: Use them.
[arguments]: Remove workarounds in 'patch-tests' phase.
| Eric Bavier |
2018-10-02 | quilt: Upgrade to 0.65....* gnu/packages/patches/quilt-test-fix-regex.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/patchutils.scm (quilt)[version]: Upgrade to 0.65.
[source]: Use patch.
[arguments]: Adjust 'patch-tests' phase for new tests. Re-enable "mail"
test.
| Eric Bavier |
2018-09-25 | gnu: icecat: Unbundle libevent, libogg, and libvorbis....* gnu/packages/patches/icecat-use-system-media-libs.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/patches/icecat-avoid-bundled-libraries.patch: Add
another hunk to enable removal of libevent.
* gnu/packages/gnuzilla.scm (icecat)[source]: Add patch. In the snippet, add
libevent, libogg, libvorbis, and libtremor to the list of bundled libraries to
remove. Add a comment regarding theora. Remove comments regarding unbundling
cairo, which is no longer supported.
[inputs]: Add libevent, libogg, and libvorbis.
[arguments]: Add --with-system-{libevent,ogg,vorbis} to configure flags.
Add custom bootstrap phase. Add comments.
| Mark H Weaver |
2018-09-25 | gnu: icecat: Unbundle graphite2 and harfbuzz....* gnu/packages/patches/icecat-use-system-graphite2+harfbuzz.patch: New file.
* gnu/packages/patches/icecat-use-system-graphite2.patch,
gnu/packages/patches/icecat-use-system-harfbuzz.patch: Delete files.
* gnu/local.mk (dist_patch_DATA): Update accordingly.
* gnu/packages/gnuzilla.scm (icecat)[source]: Add new patch. Delete
bundled graphite2 and harfbuzz in snippet.
[inputs]: Add graphite2 and harfbuzz.
[arguments]: Add --with-system-{graphite2,harfbuzz} to configure flags.
| Mark H Weaver |
2018-09-22 | gnu: icecat: Add fixes from upstream mozilla-esr60 [security fixes]....Includes fixes for CVE-2018-12383 and CVE-2018-12385.
* gnu/packages/patches/icecat-CVE-2018-12383.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/patches/icecat-avoid-bundled-libraries.patch: Adapt to apply
cleanly to IceCat 60.
* gnu/packages/gnuzilla.scm (mozilla-patch): Update to fetch from
mozilla-esr60.
(icecat): Add selected changesets from upstream mozilla-esr60.
| Mark H Weaver |
2018-09-22 | gnu: hmmer: Update to 3.2.1....* gnu/packages/bioinformatics.scm (hmmer): Update to 3.2.1.
[origin]: Remove patch.
[license]: Change to BSD-3.
[supported-systems]: New field.
* gnu/packages/patches/hmmer-remove-cpu-specificity.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Remove it.
| Ben Woodcroft |
2018-09-21 | gnu: icecat: Update to 60.2.0-gnu1 (pre-release)....* gnu/packages/gnuzilla.scm (icecat): Update to 60.2.0-gnu1.
[source]: Download pre-release from alpha.gnu.org. Remove obsolete patches.
Comment out the code to delete the bundled copies of libevent, cairo,
harfbuzz, and graphite2.
[inputs]: Use the latest ffmpeg. Comment out libevent, cairo, harfbuzz, and
graphite2.
[native-inputs]: Add rust and cargo.
[arguments]: Remove --enable-gio and --disable-gnomeui. Add --disable-stylo.
Comment out --with-system-{libevent,harfbuzz,graphite2}, --enable-system-cairo.
Import %cargo-build-system-modules. Add 'patch-cargo-checksums' phase.
* gnu/packages/patches/icecat-CVE-2018-5157-and-CVE-2018-5158.patch,
gnu/packages/patches/icecat-bug-1413868-pt1.patch: Delete files.
* gnu/local.mk (dist_patch_DATA): Remove them.
| Mark H Weaver |
2018-09-21 | gnu: libvpx: Add upstream security fix....* gnu/packages/patches/libvpx-use-after-free-in-postproc.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/video.scm (libvpx)[source]: Add patch.
| Mark H Weaver |
2018-09-20 | gnu: rsem: Update to 1.3.1....* gnu/packages/bioinformatics.scm (rsem): Update to 1.3.1.
[source]: Fetch from git; remove patch; delete bundled samtools.
[arguments]: Pass make flags; adjust phases.
[inputs]: Remove ncurses and samtools-0.1; add htslib-1.3.
* gnu/packages/patches/rsem-makefile.patch: Remove patch.
* gnu/local.mk (dist_patch_DATA): Remove it.
| Ricardo Wurmus |
2018-09-19 | gnu: Reinstate xf86-video-ast....* gnu/packages/patches/xf86-video-ast-remove-mibstore.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Remove it.
* gnu/packages/xorg.scm (xf86-video-ast): New public variable.
| Marius Bakke |
2018-09-14 | gnu: OpenSSL 1.1: Update to 1.1.1....* gnu/packages/tls.scm (openssl-next): Update to 1.1.1.
[arguments]: Patch a `/usr/bin/env` invocation in the 'config' script.
Adjust the documentation output.
* gnu/packages/patches/openssl-1.1.0-c-rehash-in.patch: Rename and ...
* gnu/packages/patches/openssl-1.1-c-rehash-in.patch: ... adjust patch.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
| Leo Famulari |
2018-09-13 | gnu: rust: Accept more detailed gdb responses....* gnu/packages/patches/rust-1.25-accept-more-detailed-gdb-lines.patch: New
file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/rust.scm (rust-1.25): Use it.
(rust-1.26): Use it.
(rust): Use it.
| Danny Milosavljevic |
2018-09-11 | netsurf: Register patch....Follow-up to f9e140a243b6d6b5d28bd0813b69604562a39653.
* gnu/local.mk (dist_patch_DATA): Add netsurf-message-timestamp.patch.
| Eric Bavier |
2018-09-10 | gnu: python-genshi: Update to 0.7.1....* gnu/packages/python-web.scm (python-genshi): Update to 0.7.1.
[source]: Use GIT-FETCH and GIT-FILE-NAME. Remove patches.
* gnu/packages/patches/python-genshi-add-support-for-python-3.4-AST.patch,
gnu/packages/patches/python-genshi-buildable-on-python-2.7.patch,
gnu/packages/patches/python-genshi-disable-speedups-on-python-3.3.patch,
gnu/packages/patches/python-genshi-fix-tests-on-python-3.5.patch,
gnu/packages/patches/python-genshi-isstring-helper.patch,
gnu/packages/patches/python-genshi-stripping-of-unsafe-script-tags.patch:
Delete files.
* gnu/local.mk (dist_patch_DATA): Remove them.
| Tobias Geerinckx-Rice |
2018-09-10 | gnu: Rename ldc.scm to dlang.scm....* gnu/packages/ldc.scm: Rename to...
* gnu/packages/dlang.scm: ... this.
* gnu/local.mk (GNU_SYSTEM_MODULES): Adjust accordingly.
| Pjotr Prins |
2018-09-10 | gnu: ldc: Update to 1.10.0....* gnu/packages/ldc.scm (ldc): Update to 1.10.0.
[native-inputs]: Switch to LLVM and CLANG.
(ldc-bootstrap)[synopsis, description]: Tweak.
* gnu/packages/patches/ldc-disable-phobos-tests.patch: New file.
* gnu/packages/patches/ldc-1.7.0-disable-phobos-tests.patch: Remove.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Pjotr Prins |
2018-09-10 | services: tailon: Move to (gnu services web)....This allows (gnu services admin) to remain deeper in the module graph
and to be used by (gnu services web).
* gnu/services/admin.scm (<tailon-configuration-file>)
(tailon-configuration-files-string)
(tailon-configuration-file-compiler, <tailon-configuration>)
(tailon-shepherd-service, %tailon-accounts)
(tailon-service-type): Move to...
* gnu/services/web.scm: ... here.
* gnu/tests/admin.scm: Remove. Move test to...
* gnu/tests/web.scm (%tailon-os)
(run-tailon-test, %test-tailon): ... here.
| Ludovic Courtès |
2018-09-09 | gnu: libgd: Fix CVE-2018-{5711,1000222}....* gnu/packages/patches/gd-CVE-2018-1000222.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/gd.scm (gd/fixed): New variable.
* gnu/packages/php.scm (gd-for-php)[source]: Use 'gd-CVE-2018-1000222.patch'.
| Leo Famulari |
2018-09-09 | gnu: ghostscript: Update replacement to 9.24 [security fixes]....The following CVEs are fixed with this release: CVE-2018-15908,
CVE-2018-15909, CVE-2018-15910, CVE-2018-15911, CVE-2018-16509,
CVE-2018-16510, CVE-2018-16511, CVE-2018-16513, CVE-2018-16539,
CVE-2018-16540, CVE-2018-16541, CVE-2018-16542, CVE-2018-16543.
* gnu/packages/patches/ghostscript-CVE-2018-10194.patch: Delete file.
* gnu/packages/patches/ghostscript-CVE-2018-16509.patch,
gnu/packages/patches/ghostscript-bug-699708.patch: New files.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/ghostscript.scm (ghostscript/fixed): Update to 9.24.
[source](patches): Remove 'ghostscript-CVE-2018-10194.patch' and
'ghostscript-runpath.patch'. Add 'ghostscript-CVE-2018-16509.patch' and
'ghostscript-bug-699708.patch'.
[arguments]: Add LDFLAGS to #:configure-flags, and a phase to create output
directory.
| Marius Bakke |
2018-09-08 | gnu: mes: Update to 0.17.1....* gnu/packages/patches/mes-nyacc-0.86.0.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/mes.scm (mes): Update to 0.17.1, depend on latest Nyacc 0.86.0.
(nyacc-for-mes): Remove.
| Jan Nieuwenhuizen |
2018-09-08 | gnu: nyacc: Update to 0.86.0....* gnu/packages/patches/nyacc-binary-literals.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/mes.scm (nyacc): Update to 0.86.0, add patch.
| Jan Nieuwenhuizen |
2018-09-03 | gnu: openexr: Update to 2.3.0....* gnu/packages/graphics.scm (openexr): Update to 2.3.0.
[source](uri): Change to new download location.
[source](snippet): Remove workaround.
[source](patches): Remove.
* gnu/packages/patches/openexr-missing-samples.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Remove it.
| Marius Bakke |
2018-09-02 | gnu: haskell-mode: Fix test failure....Fixes <https://bugs.gnu.org/31726>.
Thanks to Jack Hill <jackhill@jackhill.us> for exploring different solutions
at <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31726>.
* gnu/packages/patches/haskell-mode-unused-variables.patch,
gnu/packages/patches/haskell-mode-make-check.patch: New files.
* gnu/local.mk (dist_patch_DATA): Add them.
* gnu/packages/emacs.scm (haskell-mode)[source]: Use them.
[arguments]: Adjust 'pre-build' phase to embed file name.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
| Alex Vong |
2018-09-02 | gnu: rust: Bootstrap (only) Rust 1.19.0 by mrustc....* gnu/packages/patches/rust-1.19-mrustc.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/rust.scm (rust-1.19)[source]: Add patch
"rust-1.19-mrustc.patch".
[arguments]<#:modules>: New field.
<#:phases>[patch-cargo-tomls]: New phase.
<#:phases>[build]: Modify.
<#:phases>[install]: Modify.
[native-inputs]: Replace rust-bootstrap by mrustc.
(rust-1.23)[native-inputs]: New field.
[arguments]<#:phases>: Delete phase "patch-cargo-tomls".
| Danny Milosavljevic |
2018-08-30 | gnu: Add ddcutil....* gnu/packages/hardware.scm: New file.
(ddcutil): New public variable.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add the new file.
| Tobias Geerinckx-Rice |
2018-08-29 | Revert "gnu: snappy: Optimise."...This causes too many rebuilds for the master branch.
This reverts commit f96ed06805db934ff735e80596f1373dc1c2b5a8.
| Marius Bakke |
2018-08-28 | gnu: snappy: Optimise....* gnu/packages/compression.scm (snappy)[source]: Build with ‘-O2’.
* gnu/package/patches/snappy-add-O2-flag-in-CmakeLists.txt.patch:
New file.
* gnu/local.mk (dist_patch_DATA): Add it.
| Tobias Geerinckx-Rice |
2018-08-28 | gnu: dropbear: Fix CVE-2018-15599....* gnu/packages/patches/dropbear-CVE-2018-15599.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/ssh.scm (dropbear)[source]: Use it.
| Leo Famulari |