;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014 Ludovic Courtès ;;; ;;; 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 . (define-module (gnu system linux) #:use-module (guix store) #:use-module (guix records) #:use-module (guix derivations) #:use-module (guix monads) #:use-module (guix gexp) #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module ((guix utils) #:select (%current-system)) #:export (pam-service pam-entry pam-services->directory unix-pam-service base-pam-services)) ;;; Commentary: ;;; ;;; Configuration of Linux-related things, including pluggable authentication ;;; modules (PAM). ;;; ;;; Code: ;; PAM services (see ;; .) (define-record-type* pam-service make-pam-service pam-service? (name pam-service-name) ; string ;; The four "management groups". (account pam-service-account ; list of (default '())) (auth pam-service-auth (default '())) (password pam-service-password (default '())) (session pam-service-session (def
# GNU Guix --- Functional package management for GNU
# Copyright © 2012-2024 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2013 Andreas Enge <andreas@enge.fr>
# Copyright © 2015, 2017 Alex Kost <alezost@gmail.com>
# Copyright © 2016, 2018 Mathieu Lirzin <mthl@gnu.org>
# Copyright © 2016, 2017, 2018, 2019 Mark H Weaver <mhw@netris.org>
# Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
# Copyright © 2017 Leo Famulari <leo@famulari.name>
# Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
# Copyright © 2017, 2020, 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
# Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
# Copyright © 2018 Nikita <nikita@n0.is>
# Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
# Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
# Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
# Copyright © 2019, 2023 Efraim Flashner <efraim@flashner.co.il>
# Copyright © 2020, 2021, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
# Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
# Copyright © 2021 Andrew Tropin <andrew@trop.in>
# Copyright © 2023 Clément Lassieur <clement@lassieur.org>
# Copyright © 2023, 2024 Wilko Meyer <w@wmeyer.eu>
# Copyright © 2024 gemmaro <gemmaro.dev@gmail.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/>.

MSGMERGE_UPDATE = @MSGMERGE@ --update

bin_SCRIPTS = scripts/guix

# Handle substitution of fully-expanded Autoconf variables.
do_subst = $(SED)					\
  -e 's,[@]GUILE[@],$(GUILE),g'				\
  -e 's,[@]guilemoduledir[@],$(guilemoduledir),g'	\
  -e 's,[@]guileobjectdir[@],$(guileobjectdir),g'	\
  -e 's,[@]abs_top_builddir[@],$(abs_top_builddir),g'	\
  -e 's,[@]localedir[@],$(localedir),g'

scripts/guix: scripts/guix.in Makefile
	$(AM_V_at)rm -f $@ $@-t
	$(AM_V_at)$(MKDIR_P) "$(@D)"
	$(AM_V_GEN)$(do_subst) < "$(srcdir)/$@.in" > "$@-t"
	$(AM_V_at)chmod a+x,a-w "$@-t" && mv -f "$@-t" "$@"

# This is our variant of the 'guile' executable, one that doesn't complain
# about locales.
pkglibexec_PROGRAMS = guile
guile_SOURCES = gnu/packages/aux-files/guile-launcher.c
guile_LDADD   = $(GUILE_LIBS)
guile_CFLAGS  = $(GUILE_CFLAGS)

# Have the 'guix' command refer to our 'guile'.
install-exec-hook:
	$(SED) -i "$(DESTDIR)$(bindir)/guix"				\
	       -e 's,^#![[:graph:]]\+,#!$(pkglibexecdir)/guile,g'

nodist_noinst_SCRIPTS =				\
  pre-inst-env					\
  test-env

# Modules that are not compiled but are installed nonetheless, such as
# build-side modules with unusual dependencies.
MODULES_NOT_COMPILED =				\
  guix/build/po.scm				\
  guix/man-db.scm

include gnu/local.mk
include po/doc/local.mk

MODULES =					\
  guix/base16.scm				\
  guix/base32.scm				\
  guix/base64.scm				\
  guix/ci.scm					\
  guix/cpio.scm					\
  guix/cpu.scm					\
  guix/deprecation.scm				\
  guix/docker.scm	   			\
  guix/records.scm				\
  guix/openpgp.scm				\
  guix/pki.scm					\
  guix/progress.scm				\
  guix/combinators.scm				\
  guix/memoization.scm				\
  guix/utils.scm				\
  guix/sets.scm					\
  guix/modules.scm				\
  guix/download.scm				\
  guix/discovery.scm				\
  guix/android-repo-download.scm		\
  guix/bzr-download.scm            		\
  guix/git-download.scm				\
  guix/hg-download.scm				\
  guix/hash.scm					\
  guix/swh.scm					\
  guix/monads.scm				\
  guix/monad-repl.scm				\
  guix/gexp.scm					\
  guix/profiles.scm				\
  guix/serialization.scm			\
  guix/nar.scm					\
  guix/narinfo.scm				\
  guix/derivations.scm				\
  guix/grafts.scm				\
  guix/repl.scm					\
  guix/rpm.scm					\
  guix/transformations.scm			\
  guix/inferior.scm				\
  guix/describe.scm				\
  guix/quirks.scm				\
  guix/channels.scm				\
  guix/gnu-maintenance.scm			\
  guix/self.scm					\
  guix/substitutes.scm				\
  guix/upstream.scm				\
  guix/licenses.scm				\
  guix/lint.scm				\
  guix/glob.scm					\
  guix/git.scm					\
  guix/git-authenticate.scm			\
  guix/graph.scm				\
  guix/cache.scm				\
  guix/cve.scm					\
  guix/workers.scm				\
  guix/least-authority.scm			\
  guix/read-print.scm				\
  guix/ipfs.scm					\
  guix/platform.scm