aboutsummaryrefslogtreecommitdiff
path: root/gnu/services
diff options
context:
space:
mode:
authorLiliana Marie Prikler <liliana.prikler@gmail.com>2024-02-25 10:28:03 +0100
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2024-02-25 10:28:03 +0100
commit7bf4ce4582cd2f9c5b30c547262c1c4a426c0b9b (patch)
treec6f9cc83feaaf685b7542a98e60bc24ea7c297b1 /gnu/services
parent06d01c610e3bee61e38a177aecda5982d5b338ae (diff)
parent92d8b4c9598ed32cdb6630433d5914c1ae8b7146 (diff)
downloadguix-7bf4ce4582cd2f9c5b30c547262c1c4a426c0b9b.tar
guix-7bf4ce4582cd2f9c5b30c547262c1c4a426c0b9b.tar.gz
Merge branch 'master' into gnome-team
Diffstat (limited to 'gnu/services')
-rw-r--r--gnu/services/networking.scm13
-rw-r--r--gnu/services/virtualization.scm26
-rw-r--r--gnu/services/web.scm56
3 files changed, 92 insertions, 3 deletions
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index 495d049728..8e64e529ab 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
@@ -270,6 +270,14 @@
;;;
;;; Code:
+(define %unroutable-ipv4
+ ;; Unroutable address, as per <https://www.rfc-editor.org/rfc/rfc5737>.
+ "203.0.113.1")
+
+(define %unroutable-ipv6
+ ;; Unroutable address, as per <https://www.rfc-editor.org/rfc/rfc6666>.
+ "0100::")
+
(define facebook-host-aliases
;; This is the list of known Facebook hosts to be added to /etc/hosts if you
;; are to block it.
@@ -282,7 +290,8 @@
(append-map (lambda (name)
(map (lambda (addr)
(host addr name))
- (list "127.0.0.1" "::1"))) domains)))
+ (list %unroutable-ipv4 %unroutable-ipv6)))
+ domains)))
(define-deprecated %facebook-host-aliases
block-facebook-hosts-service-type
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index 0fbd51de8d..7b04ddb35e 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -36,6 +36,7 @@
#:use-module (gnu services base)
#:use-module (gnu services configuration)
#:use-module (gnu services dbus)
+ #:use-module (gnu services mcron)
#:use-module (gnu services shepherd)
#:use-module (gnu services ssh)
#:use-module (gnu services)
@@ -1209,6 +1210,11 @@ authpriv.*;auth.info /var/log/secure
(openssh-configuration
(openssh openssh-sans-x)))
+ ;; Run GC once per hour.
+ (simple-service 'perdiodic-gc mcron-service-type
+ (list #~(job "12 * * * *"
+ "guix gc -F 2G")))
+
(modify-services %base-services
;; By default, the secret service introduces a
;; pre-initialized /etc/guix/acl file in the VM. Thus,
@@ -1239,6 +1245,7 @@ authpriv.*;auth.info /var/log/secure
(virtual-build-machine-name config)))
(format 'compressed-qcow2)
(partition-table-type 'mbr)
+ (volatile-root? #f)
(shared-store? #f)
(size %default-virtual-build-machine-image-size)
(partitions (match (image-partitions base)
@@ -1335,6 +1342,22 @@ authpriv.*;auth.info /var/log/secure
(kill (- pid) SIGTERM)
(apply throw key args)))))))
(stop #~(make-kill-destructor))
+ (actions
+ (list (shepherd-action
+ (name 'configuration)
+ (documentation
+ "Display the configuration of this virtual build machine.")
+ (procedure
+ #~(lambda (_)
+ (format #t "CPU: ~a~%"
+ #$(virtual-build-machine-cpu config))
+ (format #t "number of CPU cores: ~a~%"
+ #$(virtual-build-machine-cpu-count config))
+ (format #t "memory size: ~a MiB~%"
+ #$(virtual-build-machine-memory-size config))
+ (format #t "initial date: ~a~%"
+ #$(date->string
+ (virtual-build-machine-date config))))))))
(auto-start? (virtual-build-machine-auto-start? config)))))
(define (authorize-guest-substitutes-on-host)
@@ -1500,7 +1523,8 @@ CONFIG, a <virtual-build-machine>, is up and running."
(srfi srfi-34))
(guard (c ((service-not-found-error? c) #f))
- (->bool (current-service '#$service-name))))))
+ (->bool (live-service-running
+ (current-service '#$service-name)))))))
(define (build-vm-guix-extension config)
(define vm-ssh-key
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index 05fd71f994..406117c457 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -16,6 +16,7 @@
;;; Copyright © 2020, 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro>
;;; Copyright © 2022 Simen Endsjø <simendsjo@gmail.com>
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
+;;; Copyright © 2023 Miguel Ángel Moreno <mail@migalmoreno.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -36,6 +37,7 @@
#:use-module (gnu services)
#:use-module (gnu services shepherd)
#:use-module (gnu services admin)
+ #:use-module (gnu services configuration)
#:use-module (gnu services getmail)
#:use-module (gnu services mail)
#:use-module (gnu system pam)
@@ -47,6 +49,7 @@
#:use-module (gnu packages patchutils)
#:use-module (gnu packages php)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-web)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages guile)
#:use-module (gnu packages logging)
@@ -240,6 +243,13 @@
varnish-service-type
+ whoogle-service-type
+ whoogle-configuration
+ whoogle-configuration-package
+ whoogle-configuration-host
+ whoogle-configuration-port
+ whoogle-configuration-environment-variables
+
patchwork-database-configuration
patchwork-database-configuration?
patchwork-database-configuration-engine
@@ -1605,6 +1615,52 @@ files.")
;;;
+;;; Whoogle
+;;;
+
+(define-configuration/no-serialization whoogle-configuration
+ (package
+ (package whoogle-search)
+ "The @code{whoogle-search} package to use.")
+ (host
+ (string "127.0.0.1")
+ "The host address to run Whoogle on.")
+ (port
+ (integer 5000)
+ "The port to run Whoogle on.")
+ (environment-variables
+ (list-of-strings '())
+ "A list of strings specifying environment variables used to configure
+Whoogle."))
+
+(define (whoogle-shepherd-service config)
+ (match-record config <whoogle-configuration>
+ (package host port environment-variables)
+ (list
+ (shepherd-service
+ (provision '(whoogle-search))
+ (start #~(make-forkexec-constructor
+ (list (string-append #$package "/bin/whoogle-search")
+ "--host" #$host "--port" #$(number->string port))
+ #:environment-variables
+ (append (list "CONFIG_VOLUME=/var/cache/whoogle-search")
+ '#$environment-variables)))
+ (stop #~(make-kill-destructor))
+ (documentation "Run a @code{whoogle-search} instance.")))))
+
+(define whoogle-service-type
+ (service-type
+ (name 'whoogle-search)
+ (extensions
+ (list (service-extension shepherd-root-service-type
+ whoogle-shepherd-service)
+ (service-extension profile-service-type
+ (compose list whoogle-configuration-package))))
+ (default-value (whoogle-configuration))
+ (description "Set up the @code{whoogle-search} metasearch engine.")))
+
+
+;;;
;;; Patchwork
;;;