aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu system hurd)
  #:use-module (guix gexp)
  #:use-module (guix profiles)
  #:use-module (guix utils)
  #:use-module (gnu bootloader)
  #:use-module (gnu bootloader grub)
  #:use-module (gnu packages admin)
  #:use-module (gnu packages base)
  #:use-module (gnu packages bash)
  #:use-module (gnu packages certs)
  #:use-module (gnu packages compression)
  #:use-module (gnu packages cross-base)
  #:use-module (gnu packages file)
  #:use-module (gnu packages gawk)
  #:use-module (gnu packages guile)
  #:use-module (gnu packages guile-xyz)
  #:use-module (gnu packages hurd)
  #:use-module (gnu packages less)
  #:use-module (gnu packages linux)
  #:use-module (gnu packages texinfo)
  #:use-module (gnu services)
  #:use-module (gnu services base)
  #:use-module (gnu services hurd)
  #:use-module (gnu services shepherd)
  #:use-module (gnu system)
  #:use-module (gnu system setuid)
  #:use-module (gnu system shadow)
  #:use-module (gnu system vm)
  #:export (%base-packages/hurd
            %base-services/hurd
            %hurd-default-operating-system
            %hurd-default-operating-system-kernel
            %setuid-programs/hurd))

;;; Commentary:
;;;
;;; This module provides system-specifics for the GNU/Hurd operating system
;;; and virtual machine.
;;;
;;; Code:

(define %hurd-default-operating-system-kernel
  (if (system-hurd?)
      gnumach
      ;; A cross-built GNUmach does not work
      (with-parameters ((%current-system "i686-linux")
                        (%current-target-system #f))
        gnumach)))

(define %base-packages/hurd
  ;; Note: the Shepherd comes before the Hurd, not just because its duty is to
  ;; shepherd the herd, but also because we want its 'halt' and 'reboot'
  ;; commands to take precedence.
  (list shepherd-0.10 hurd netdde bash coreutils file findutils grep sed
        diffutils patch gawk tar gzip bzip2 xz lzip
        guile-3.0-latest guile-colorized guile-readline
        net-base nss-certs inetutils less procps shadow sudo which
        info-reader))

(define %base-services/hurd
  (append (list (service hurd-console-service-type
                         (hurd-console-configuration (hurd hurd)))
                (service static-networking-service-type
                         (list %loopback-static-networking

                               ;; QEMU user-mode networking.  To get "eth0", you need
                               ;; QEMU to emulate a device for which Mach has an
                               ;; in-kernel driver, for instance with:
                               ;; --device rtl8139,netdev=net0 --netdev user,id=net0
                               %qemu-static-networking))
                (service guix-service-type
                         (guix-configuration
                          (extra-options '("--disable-chroot"
                                           "--disable-deduplication"))))
                (service special-files-service-type
                         `(("/bin/sh" ,(file-append bash "/bin/sh"))
                           ("/usr/bin/env" ,(file-append coreutils
                                                         "/bin/env"))))
                (service syslog-service-type))
          (map (lambda (n)
                 (service hurd-getty-service-type
                          (hurd-getty-configuration
                           (tty (string-append "tty" (number->string n))))))
               (iota 6 1))))

(define %setuid-programs/hurd
  ;; Default set of setuid-root programs.
  (map file-like->setuid-program
       (list (file-append shadow "/bin/passwd")
             (file-append shadow "/bin/sg")
             (file-append shadow "/bin/su")
             (file-append shadow "/bin/newgrp")
             (file-append shadow "/bin/newuidmap")
             (file-append shadow "/bin/newgidmap")
             (file-append sudo "/bin/sudo")
             (file-append sudo "/bin/sudoedit"))))

(define %hurd-default-operating-system
  (operating-system
    (kernel %hurd-default-operating-system-kernel)
    (kernel-arguments '())
    (hurd hurd)
    (bootloader (bootloader-configuration
                 (bootloader grub-minimal-bootloader)
                 (targets '("/dev/vda"))))
    (initrd #f)
    (initrd-modules '())
    (firmware '())
    (host-name "guixygnu")
    (file-systems '())
    (packages %base-packages/hurd)
    (timezone "GNUrope")
    (locale-libcs (list glibc/hurd))
    (name-service-switch #f)
    (essential-services (hurd-default-essential-services this-operating-system))
    (privileged-programs '())
    (setuid-programs %setuid-programs/hurd)))
es/mate.scm (gnu-mate-icon-theme-faenza): Update to 1.20.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: mate-polkit: Update to 1.22.0....* gnu/packages/mate.scm (mate-polkit): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: mate-system-monitor: Update to 1.22.0....* gnu/packages/mate.scm (mate-system-monitor): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: pluma: Update to 1.22.0....* gnu/packages/mate.scm (pluma): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: engrampa: Update to 1.22.0....* gnu/packages/mate.scm (engrampa): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: eom: Update to 1.22.0....* gnu/packages/mate.scm (eom): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: mate-utils: Update to 1.22.0....* gnu/packages/mate.scm (mate-utils): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> Guy fleury 2019-04-03gnu: mate-screensaver: Update to 1.22.0....* gnu/packages/mate.scm (mate-screensaver): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: mate-netbook: Update to 1.22.0....* gnu/packages/mate.scm (mate-netbook): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: backgrounds: Update to 1.22.0....* gnu/packages/mate.scm (backgrounds): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: mate-calc: Update to 1.22.0....* gnu/packages/mate.scm (mate-calc): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: mate-user-guide: Update to 1.22.0....* gnu/packages/mate.scm (mate-user-guide): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: mate-control-center: Update to 1.22.0....* gnu/packages/mate.scm (mate-control-center): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: caja-extensions: Update to 1.22.0....* gnu/packages/mate.scm (caja-extensions): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: atril: Update to 1.22.0....* gnu/packages/mate.scm (atril): Update to 1.22.0. [arguments]<#:configure-flags>: Remove pre-GTK3 option. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: marco: Update to 1.22.0....* gnu/packages/mate.scm (marco): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: caja: Update to 1.22.0....* gnu/packages/mate.scm (caja): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: mate-media: Update to 1.22.0....* gnu/packages/mate.scm (mate-media): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: mate-applets: Update to 1.22.0....* gnu/packages/mate.scm (mate-applets): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: mate-panel: Update to 1.22.0....* gnu/packages/mate.scm (mate-panel): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: mate-menus: Update to 1.22.0....* gnu/packages/mate.scm (mate-menus): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: libmatekbd: Update to 1.22.0....* gnu/packages/mate.scm (libmatekbd): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: libmatemixer: Update to 1.22.0....* gnu/packages/mate.scm (libmatemixer): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: mate-settings-daemon: Update to 1.22.0....* gnu/packages/mate.scm (mate-settings-daemon): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: mate-session-manager: Update to 1.22.0....* gnu/packages/mate.scm (mate-session-manager): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: mate-terminal: Update to 1.22.0...* gnu/packages/mate.scm (mate-terminal): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: libmatewether: Update to 1.22.0....* gnu/packages/mate.scm (libmatewether): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: mate-desktop: Update to 1.22.2....* gnu/packages/mate.scm (mate-desktop): Update to 1.22.0. [inputs]: Add iso-codes. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: mate-themes: Update to 3.22.19....* gnu/packages/mate.scm (mate-themes): Update to 3.22.19. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: mate-icon-theme: Update to 1.22.0....* gnu/packages/mate.scm (mate-icon-theme): Update to 1.20.3. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-04-03gnu: mate-common: Update to 1.22.0....* gnu/packages/mate.scm (mate-common): Update to 1.22.0. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> guy fleury iteriteka 2019-03-31gnu: Fix descriptions to not use quotes....* gnu/packages/admin.scm (wpa-supplicant-minimal, mingetty, di), * gnu/packages/audio.scm (fil-plugins), * gnu/packages/base.scm (make-ld-wrapper, make-glibc-locales), * gnu/packages/bioinformatics.scm (r-samtools), * gnu/packages/chez.scm (chez-mit), * gnu/packages/commencement.scm (make-gcc-toolchain), * gnu/packages/compression.scm (fastjar), * gnu/packages/cran.scm (r-maps, r-rcpp), * gnu/packages/databases.scm (sparql-query), * gnu/packages/dunst.scm (dunst), * gnu/packages/ftp.scm (ncftp), * gnu/packages/gl.scm (freeglut), * gnu/packages/haskell-check.scm (ghc-tasty-golden), * gnu/packages/haskell.scm (ghc-case-insensitive, ghc-text, ghc-haskell-src, ghc-syb, ghc-deepseq-generics, ghc-network-uri, ghc-rerebase, ghc-zlib), * gnu/packages/image.scm (jbig2dec), * gnu/packages/kde-frameworks.scm (kinit, karchive), * gnu/packages/linux.scm (wireless-tools, perf, module-init-tools, kbd), * gnu/packages/lirc.scm (lirc), * gnu/packages/lisp.scm (uglify-js), * gnu/packages/mate.scm (mate-netbook), * gnu/packages/microcom.scm (microcom), * gnu/packages/music.scm (bristol), * gnu/packages/networking.scm (perl-geo-ip), * gnu/packages/patchutils.scm (patches), * gnu/packages/perl-check.scm (perl-test-more-utf8), * gnu/packages/perl.scm (perl-log-report-optional, perl-file-which, perl-io-tty, perl-log-any, perl-digest-sha1, perl-class-load, perl-regexp-common, perl-module-pluggable, perl-class-modifier), * gnu/packages/python-xyz.scm (python-backports-abc, python-natsort), * gnu/packages/samba.scm (iniparser), * gnu/packages/search.scm (mlocate), * gnu/packages/spice.scm (spice), * gnu/packages/statistics.scm (r-dt, r-lubridate, r-estimability, r-commonmark, r-digest, r-viridislite, r-stringr), * gnu/packages/tex.scm (texlive-latex-changebar), * gnu/packages/version-control.scm (subversion), * gnu/packages/w3m.scm (w3m), * gnu/packages/web.scm (perl-http-parser, perl-plack-middleware-reverseproxy), * gnu/packages/xorg.scm (xkeyboard-config, mkfontdir, xcursor-theme, mkfontscale, xinit, font-alias)[description]: Use @code instead of quotes. Efraim Flashner 2019-03-18Correct name and email address for ng0....* .mailmap, Makefile.am, doc/guix.de.texi, doc/guix.fr.texi, doc/guix.texi, etc/completion/fish/guix.fish, gnu/packages/accessibility.scm, gnu/packages/admin.scm, gnu/packages/audio.scm, gnu/packages/autotools.scm, gnu/packages/cdrom.scm, gnu/packages/check.scm, gnu/packages/cinnamon.scm, gnu/packages/compression.scm, gnu/packages/crypto.scm, gnu/packages/databases.scm, gnu/packages/django.scm, gnu/packages/dns.scm, gnu/packages/elixir.scm, gnu/packages/emacs-xyz.scm, gnu/packages/emacs.scm, gnu/packages/enlightenment.scm, gnu/packages/erlang.scm, gnu/packages/fonts.scm, gnu/packages/fontutils.scm, gnu/packages/forth.scm, gnu/packages/fvwm.scm, gnu/packages/games.scm, gnu/packages/gl.scm, gnu/packages/gnome.scm, gnu/packages/gnunet.scm, gnu/packages/gnupg.scm, gnu/packages/gnuzilla.scm, gnu/packages/gtk.scm, gnu/packages/guile-wm.scm,gnu/packages/guile-xyz.scm, gnu/packages/haskell-check.scm, gnu/packages/haskell-crypto.scm, gnu/packages/haskell.scm, gnu/packages/image-viewers.scm, gnu/packages/image.scm, gnu/packages/irc.scm, gnu/packages/language.scm, gnu/packages/libcanberra.scm, gnu/packages/linux.scm, gnu/packages/lisp.scm, gnu/packages/lolcode.scm, gnu/packages/lxde.scm, gnu/packages/lxqt.scm, gnu/packages/mail.scm, gnu/packages/markup.scm, gnu/packages/mate.scm, gnu/packages/maths.scm, gnu/packages/mc.scm, gnu/packages/messaging.scm, gnu/packages/music.scm, gnu/packages/ncurses.scm, gnu/packages/networking.scm, gnu/packages/nickle.scm, gnu/packages/openbox.scm, gnu/packages/pdf.scm, gnu/packages/perl-check.scm, gnu/packages/perl.scm, gnu/packages/python-compression.scm, gnu/packages/python-crypto.scm, gnu/packages/python-web.scm, gnu/packages/python-xyz.scm, gnu/packages/python.scm, gnu/packages/qt.scm, gnu/packages/ruby.scm, gnu/packages/rust.scm, gnu/packages/scheme.scm, gnu/packages/serialization.scm, gnu/packages/shells.scm, gnu/packages/ssh.scm, gnu/packages/suckless.scm, gnu/packages/tbb.scm, gnu/packages/telephony.scm, gnu/packages/text-editors.scm, gnu/packages/textutils.scm, gnu/packages/time.scm, gnu/packages/tls.scm, gnu/packages/tor.scm, gnu/packages/version-control.scm, gnu/packages/video.scm, gnu/packages/vim.scm, gnu/packages/web.scm, gnu/packages/wm.scm, gnu/packages/xdisorg.scm, gnu/packages/xfce.scm, gnu/packages/xml.scm, gnu/packages/xorg.scm, gnu/services/certbot.scm, gnu/services/desktop.scm, gnu/services/version-control.scm, gnu/services/web.scm, guix/import/hackage.scm, guix/licenses.scm: Correct name and email address for ng0. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr> ng0 2019-01-15gnu: Separate Python core packages from the rest....* gnu/packages/python.scm: Move hundreds of package definitions from here... * gnu/packages/python-xyz.scm: ...to this new module. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/packages/ada.scm, gnu/packages/admin.scm, gnu/packages/android.scm, gnu/packages/audio.scm, gnu/packages/backup.scm, gnu/packages/benchmark.scm, gnu/packages/bioinformatics.scm, gnu/packages/bittorrent.scm, gnu/packages/calendar.scm, gnu/packages/check.scm, gnu/packages/chemistry.scm, gnu/packages/cluster.scm, gnu/packages/compression.scm, gnu/packages/connman.scm, gnu/packages/crypto.scm, gnu/packages/cups.scm, gnu/packages/databases.scm, gnu/packages/dav.scm, gnu/packages/direct-connect.scm, gnu/packages/disk.scm, gnu/packages/django.scm, gnu/packages/dlang.scm, gnu/packages/docker.scm, gnu/packages/ebook.scm, gnu/packages/elf.scm, gnu/packages/emacs.scm, gnu/packages/emulators.scm, gnu/packages/engineering.scm, gnu/packages/enlightenment.scm, gnu/packages/finance.scm, gnu/packages/fltk.scm, gnu/packages/fontutils.scm, gnu/packages/freedesktop.scm, gnu/packages/game-development.scm, gnu/packages/games.scm, gnu/packages/geo.scm, gnu/packages/gl.scm, gnu/packages/glib.scm, gnu/packages/gnome.scm, gnu/packages/gnupg.scm, gnu/packages/gnuzilla.scm, gnu/packages/graph.scm, gnu/packages/graphics.scm, gnu/packages/graphviz.scm, gnu/packages/gtk.scm, gnu/packages/ham-radio.scm, gnu/packages/image-processing.scm, gnu/packages/image-viewers.scm, gnu/packages/image.scm, gnu/packages/irc.scm, gnu/packages/jrnl.scm, gnu/packages/julia.scm, gnu/packages/kde-frameworks.scm, gnu/packages/key-mon.scm, gnu/packages/libffi.scm, gnu/packages/libreoffice.scm, gnu/packages/libusb.scm, gnu/packages/lirc.scm, gnu/packages/logging.scm, gnu/packages/machine-learning.scm, gnu/packages/mail.scm, gnu/packages/mate.scm, gnu/packages/maths.scm, gnu/packages/medical.scm, gnu/packages/messaging.scm, gnu/packages/monitoring.scm, gnu/packages/mp3.scm, gnu/packages/mpd.scm, gnu/packages/music.scm, gnu/packages/networking.scm, gnu/packages/nutrition.scm, gnu/packages/openldap.scm, gnu/packages/openstack.scm, gnu/packages/package-management.scm, gnu/packages/password-utils.scm, gnu/packages/patchutils.scm, gnu/packages/pdf.scm, gnu/packages/photo.scm, gnu/packages/polkit.scm, gnu/packages/protobuf.scm, gnu/packages/python-crypto.scm, gnu/packages/python-web.scm, gnu/packages/qt.scm, gnu/packages/rdf.scm, gnu/packages/ruby.scm, gnu/packages/search.scm, gnu/packages/selinux.scm, gnu/packages/serialization.scm, gnu/packages/shells.scm, gnu/packages/simulation.scm, gnu/packages/ssh.scm, gnu/packages/statistics.scm, gnu/packages/storage.scm, gnu/packages/sync.scm, gnu/packages/terminals.scm, gnu/packages/textutils.scm, gnu/packages/time.scm, gnu/packages/tls.scm, gnu/packages/tor.scm, gnu/packages/tryton.scm, gnu/packages/version-control.scm, gnu/packages/video.scm, gnu/packages/virtualization.scm, gnu/packages/vpn.scm, gnu/packages/web-browsers.scm, gnu/packages/web.scm, gnu/packages/wicd.scm, gnu/packages/xdisorg.scm, gnu/packages/xorg.scm: Update module references. Ricardo Wurmus