;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2023 Bruno Victal ;;; ;;; 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 tests pam) #:use-module (gnu tests) #:use-module (gnu services) #:use-module (gnu services base) #:use-module (gnu system) #:use-module (gnu system pam) #:use-module (gnu system vm) #:use-module (guix gexp) #:use-module (ice-9 format) #:export (%test-pam-limits %test-pam-limits-deprecated)) ;;; ;;; pam-limits-service-type ;;; (define pam-limit-entries (list (pam-limits-entry "@realtime" 'both 'rtprio 99) (pam-limits-entry "@realtime" 'both 'memlock 'unlimited))) (define (run-test-pam-limits config) "Run tests in a os with pam-limits-service-type configured." (define os (marionette-operating-system (simple-operating-system (service pam-limits-service-type config)))) (define vm (virtual-machine os)) (define name (format #f "pam-limit-service~:[~;-deprecated~]" (file-like? config))) (define test (with-imported-modules '((gnu build marionette)) #~(begin (use-modules (gnu build marionette) (srfi srfi-64)) (let ((marionette (make-marionette (list #$vm)))) (test-runner-current (system-test-runner #$output)) (test-begin #$name) (test-assert "/etc/security/limits.conf ready" (wait-for-file "/etc/security/limits.conf" marionette)) (test-equal "/etc/security/limits.conf content matches" #$(string-join (map pam-limits-entry->string pam-limit-entries) "\n" 'suffix) (marionette-eval '(call-with-input-file "/etc/security/limits.conf" get-string-all) marionette)) (test-end))))) (gexp->derivation (string-append name "-test") test)) (define %test-pam-limits (system-test (name "pam-limits-service") (description "Test that pam-limits-service can serialize its config (as a list) to @file{limits.conf}.") (value (run-test-pam-limits pam-limit-entries)))) (define %test-pam-limits-deprecated (system-test (name "pam-limits-service-deprecated") (description "Test that pam-limits-service can serialize its config (as a file-like object) to @file{limits.conf}.") (value (run-test-pam-limits (plain-file "limits.conf" (string-join (map pam-limits-entry->string pam-limit-entries) "\n" 'suffix)))))) cm?id=5d1a128f64baeadf8ae633a65a922d510b40f10f'>gnu: acl: Remove labels and trailing #t....* gnu/packages/acl.scm (acl): Remove labels and trailing #t. Change-Id: I01b3d697da78ae1294b76d1073dbfd0ffe37fe31 Maxim Cournoyer 2024-08-31build-systems: gnu: Export %default-gnu-imported-modules and %default-gnu-mod......Until now users would have to cargo cult or inspect the private %default-modules variable of (guix build-systems gnu) to discover which modules to include when extending the used modules via the #:modules argument. The renaming was automated via the command: $ git grep -l %gnu-build-system-modules | xargs sed 's/%gnu-build-system-modules/%default-gnu-imported-modules/' -i * guix/build-system/gnu.scm (%gnu-build-system-modules): Rename to... (%default-gnu-imported-modules): ... this. (%default-modules): Rename to... (%default-gnu-modules): ... this. Export. (dist-package, gnu-build, gnu-cross-build): Adjust accordingly. Change-Id: Idef307fff13cb76f3182d782b26e1cd3a5c757ee Maxim Cournoyer