aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; 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
;;; the2024-06-26etc: Add explicit ‘--substitute-urls’ in guix-daemon service files....Having substitute URLs explicitly listed in the service startup file
makes it clearer what should be modified to permanently change the list
of substitute URLs.

* config-daemon.ac: Rename ‘guix_substitute_urls’ to
‘GUIX_SUBSTITUTE_URLS’ and substitute it.
* nix/local.mk (etc/guix-%.service, etc/init.d/guix-daemon)
(etc/guix-%.conf): Substitute it.
* etc/guix-daemon.conf.in, etc/guix-daemon.service.in,
etc/init.d/guix-daemon.in: Add an explicit ‘--substitute-urls’ option.

Change-Id: Ie491b7fab5c42e54dca582801c03805a85de2bf9
Ludovic Courtès
-line-args
  (@@ (gnu services linux) earlyoom-configuration->command-line-args))

(define %earlyoom-configuration-sample
  (earlyoom-configuration
   (minimum-available-memory 10)
   (minimum-free-swap 20)
   (prefer-regexp "icecat")
   (avoid-regexp "guix-daemon")
   (memory-report-interval 60)
   (ignore-positive-oom-score-adj? #f)
   (run-with-higher-priority? #t)
   (show-debug-messages? #f)
   (send-notification-command "python \"/some/path/notify-all-users.py\"")))

(test-equal "earlyoom-configuration->command-line-args"
  (list (file-append earlyoom "/bin/earlyoom")
        "-m" "10" "-s" "20" "--prefer" "icecat"
        "--avoid" "guix-daemon" "-r" "60" "-p"
        "-N" "python \"/some/path/notify-all-users.py\"")
  (earlyoom-configuration->command-line-args %earlyoom-configuration-sample))


;;;
;;; Zram swap device.
;;;

(define zram-device-configuration->udev-string
  (@@ (gnu services linux) zram-device-configuration->udev-string))

(define %zram-swap-device-test-1
  (zram-device-configuration
    (size "2G")
    (compression-algorithm 'zstd)
    (memory-limit "1G")
    (priority 42)))

(test-equal "zram-swap-device-test-1"
  "KERNEL==\"zram0\", ATTR{comp_algorithm}=\"zstd\" ATTR{disksize}=\"2G\" ATTR{mem_limit}=\"1G\" RUN+=\"/run/current-system/profile/sbin/mkswap /dev/zram0\" RUN+=\"/run/current-system/profile/sbin/swapon --priority 42 /dev/zram0\"\n"
  (zram-device-configuration->udev-string %zram-swap-device-test-1))

(define %zram-swap-device-test-2
  (zram-device-configuration
    (size 1048576)  ; 1M
    (compression-algorithm 'lz4)))

(test-equal "zram-swap-device-test-2"
  "KERNEL==\"zram0\", ATTR{comp_algorithm}=\"lz4\" ATTR{disksize}=\"1048576\" RUN+=\"/run/current-system/profile/sbin/mkswap /dev/zram0\" RUN+=\"/run/current-system/profile/sbin/swapon /dev/zram0\"\n"
  (zram-device-configuration->udev-string %zram-swap-device-test-2))

(define %zram-swap-device-test-3
  (zram-device-configuration
    (memory-limit (* 512 1000))))

(test-equal "zram-swap-device-test-3"
  "KERNEL==\"zram0\", ATTR{comp_algorithm}=\"lzo\" ATTR{disksize}=\"1G\" ATTR{mem_limit}=\"512000\" RUN+=\"/run/current-system/profile/sbin/mkswap /dev/zram0\" RUN+=\"/run/current-system/profile/sbin/swapon /dev/zram0\"\n"
  (zram-device-configuration->udev-string %zram-swap-device-test-3))

(test-end "linux-services")