summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorAndreas Enge <andreas@enge.fr>2023-04-22 09:21:22 +0200
committerAndreas Enge <andreas@enge.fr>2023-04-22 09:21:22 +0200
commitd1252b597d8b6c77746da7b7417d958f00d01dc6 (patch)
treee2cdc9b0938e5ed7ac1b095b83c5760bbedecb87 /gnu
parent3f7ae420d8a54d4e2ab7f349c40d8930fe9e0771 (diff)
parent040d35f088e0f1c856f3f5a9b6bf889b17bd68b3 (diff)
Merge remote-tracking branch 'origin/master' into core-updates
Diffstat (limited to 'gnu')
-rw-r--r--gnu/home/services/ssh.scm65
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/bioinformatics.scm331
-rw-r--r--gnu/packages/emacs-xyz.scm57
-rw-r--r--gnu/packages/engineering.scm14
-rw-r--r--gnu/packages/games.scm51
-rw-r--r--gnu/packages/gnome.scm8
-rw-r--r--gnu/packages/guile-xyz.scm6
-rw-r--r--gnu/packages/linux.scm30
-rw-r--r--gnu/packages/lxqt.scm10
-rw-r--r--gnu/packages/mpd.scm4
-rw-r--r--gnu/packages/networking.scm4
-rw-r--r--gnu/packages/parallel.scm29
-rw-r--r--gnu/packages/patches/clog-fix-shared-build.patch85
-rw-r--r--gnu/packages/pretty-print.scm4
-rw-r--r--gnu/packages/python-crypto.scm1
-rw-r--r--gnu/packages/text-editors.scm5
-rw-r--r--gnu/packages/web-browsers.scm94
-rw-r--r--gnu/packages/wm.scm8
-rw-r--r--gnu/services/base.scm134
-rw-r--r--gnu/services/databases.scm14
-rw-r--r--gnu/services/dns.scm1
-rw-r--r--gnu/services/herd.scm12
-rw-r--r--gnu/services/rsync.scm8
-rw-r--r--gnu/tests.scm112
-rw-r--r--gnu/tests/base.scm2
-rw-r--r--gnu/tests/install.scm4
27 files changed, 720 insertions, 374 deletions
diff --git a/gnu/home/services/ssh.scm b/gnu/home/services/ssh.scm
index 01917a29cd..6aeb6ad5a7 100644
--- a/gnu/home/services/ssh.scm
+++ b/gnu/home/services/ssh.scm
@@ -20,6 +20,7 @@
(define-module (gnu home services ssh)
#:use-module (guix gexp)
#:use-module (guix records)
+ #:use-module (guix deprecation)
#:use-module (guix diagnostics)
#:use-module (guix i18n)
#:use-module (gnu services)
@@ -32,6 +33,8 @@
#:autoload (gnu packages base) (glibc-utf8-locales)
#:use-module (gnu packages ssh)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-9)
+ #:use-module (srfi srfi-9 gnu)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (ice-9 match)
@@ -55,6 +58,12 @@
openssh-host-host-key-algorithms
openssh-host-accepted-key-types
openssh-host-extra-content
+ proxy-jump
+ proxy-jump-host-name
+ proxy-jump-port
+ proxy-jump-user
+ proxy-command
+ proxy-command->string
home-openssh-service-type
home-ssh-agent-service-type))
@@ -114,6 +123,54 @@
(define-maybe string-list)
+(define-record-type <proxy-command>
+ (proxy-command command)
+ proxy-command?
+ (command proxy-command->string))
+
+(set-record-type-printer! <proxy-command>
+ (lambda (obj port)
+ (format port "#<proxy-command ~s>" (proxy-command->string obj))))
+
+(define-configuration/no-serialization proxy-jump
+ (user
+ maybe-string
+ "User name on the remote host.")
+ (host-name
+ (string)
+ "Host name---e.g., @code{foo.example.org} or @code{192.168.1.2}.")
+ (port
+ maybe-natural-number
+ "TCP port number to connect to."))
+
+(define (proxy-jump->string proxy-jump)
+ (match-record proxy-jump <proxy-jump>
+ (host-name user port)
+ (string-append
+ (if (maybe-value-set? user) (string-append user "@") "")
+ host-name
+ (if (maybe-value-set? port) (string-append ":" (number->string port)) ""))))
+
+(define (proxy-command-or-jump-list? x)
+ (or (proxy-command? x)
+ (and (list? x)
+ (every proxy-jump? x))))
+
+(define (serialize-proxy-command-or-jump-list field value)
+ (if (proxy-command? value)
+ (serialize-string 'proxy-command (proxy-command->string value))
+ (serialize-string-list 'proxy-jump (map proxy-jump->string value))))
+
+(define-maybe proxy-command-or-jump-list)
+
+(define (sanitize-proxy-command properties)
+ (lambda (value)
+ (when (maybe-value-set? value)
+ (warn-about-deprecation 'proxy-command properties #:replacement 'proxy))
+ (unless (maybe-string? value)
+ (configuration-field-error (source-properties->location properties) 'proxy-command value))
+ value))
+
(define-configuration openssh-host
(name
(string)
@@ -155,7 +212,13 @@ machine.")
maybe-string
"The command to use to connect to the server. As an example, a command
to connect via an HTTP proxy at 192.0.2.0 would be: @code{\"nc -X
-connect -x 192.0.2.0:8080 %h %p\"}.")
+connect -x 192.0.2.0:8080 %h %p\"}. Using 'proxy-command' is deprecated, use
+'proxy' instead."
+ (sanitizer (sanitize-proxy-command (current-source-location))))
+ (proxy
+ maybe-proxy-command-or-jump-list
+ "The command to use to connect to the server or a list of SSH hosts to jump
+through before connecting to the server.")
(host-key-algorithms
maybe-string-list
"The list of accepted host key algorithms---e.g.,
diff --git a/gnu/local.mk b/gnu/local.mk
index b7af7726e8..f0d129b493 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -999,6 +999,7 @@ dist_patch_DATA = \
%D%/packages/patches/classpath-aarch64-support.patch \
%D%/packages/patches/classpath-miscompilation.patch \
%D%/packages/patches/cling-use-shared-library.patch \
+ %D%/packages/patches/clog-fix-shared-build.patch \
%D%/packages/patches/clucene-pkgconfig.patch \
%D%/packages/patches/cmake-curl-certificates-3.24.patch \
%D%/packages/patches/coda-use-system-libs.patch \
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index a986e118f8..68c1406fc3 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -2220,167 +2220,179 @@ easy-to-perform steps.")
(license license:gpl3+)))
(define-public bpp-core
- ;; The last release was in 2014 and the recommended way to install from source
- ;; is to clone the git repository, so we do this.
- ;; http://biopp.univ-montp2.fr/wiki/index.php/Main_Page
- (let ((commit "7d8bced0d1a87291ea8dd7046b7fb5ff9c35c582"))
- (package
- (name "bpp-core")
- (version (string-append "2.2.0-1." (string-take commit 7)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "http://biopp.univ-montp2.fr/git/bpp-core")
- (commit commit)))
- (file-name (string-append name "-" version "-checkout"))
- (sha256
- (base32
- "10djsq5vlnkilv436gnmh4irpk49v29pa69r6xiryg32xmvn909j"))))
- (build-system cmake-build-system)
- (arguments
- `(#:parallel-build? #f))
- (home-page "http://biopp.univ-montp2.fr")
- (synopsis "C++ libraries for Bioinformatics")
- (description
- "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
+ (package
+ (name "bpp-core")
+ (version "2.4.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/BioPP/bpp-core")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ma2cl677l7s0n5sffh66cy9lxp5wycm50f121g8rx85p95vkgwv"))))
+ (build-system cmake-build-system)
+ (home-page "https://pbil.univ-lyon1.fr/bpp-doc/bpp-core/html/index.html")
+ (synopsis "C++ libraries for Bioinformatics")
+ (description
+ "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
analysis, phylogenetics, molecular evolution and population genetics. It is
Object Oriented and is designed to be both easy to use and computer efficient.
Bio++ intends to help programmers to write computer expensive programs, by
providing them a set of re-usable tools.")
- (license license:cecill-c))))
+ (license license:cecill-c)))
(define-public bpp-phyl
- ;; The last release was in 2014 and the recommended way to install from source
- ;; is to clone the git repository, so we do this.
- ;; http://biopp.univ-montp2.fr/wiki/index.php/Main_Page
- (let ((commit "0c07167b629f68b569bf274d1ad0c4af83276ae2"))
- (package
- (name "bpp-phyl")
- (version (string-append "2.2.0-1." (string-take commit 7)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "http://biopp.univ-montp2.fr/git/bpp-phyl")
- (commit commit)))
- (file-name (string-append name "-" version "-checkout"))
- (sha256
- (base32
- "1ssjgchzwj3iai26kyly7gwkdv8sk59nqhkb1wpap3sf5m6kyllh"))))
- (build-system cmake-build-system)
- (arguments
- `(#:parallel-build? #f
- ;; If out-of-source, test data is not copied into the build directory
- ;; so the tests fail.
- #:out-of-source? #f))
- (inputs
- (list bpp-core bpp-seq))
- (home-page "http://biopp.univ-montp2.fr")
- (synopsis "Bio++ phylogenetic Library")
- (description
- "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
+ (package
+ (name "bpp-phyl")
+ (version "2.4.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/BioPP/bpp-phyl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "192zks6wyk903n06c2lbsscdhkjnfwms8p7jblsmk3lvjhdipb20"))))
+ (build-system cmake-build-system)
+ (inputs
+ (list bpp-core bpp-seq))
+ (home-page "https://pbil.univ-lyon1.fr/bpp-doc/bpp-phyl/html/")
+ (synopsis "Bio++ phylogenetic library")
+ (description
+ "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
analysis, phylogenetics, molecular evolution and population genetics. This
library provides phylogenetics-related modules.")
- (license license:cecill-c))))
+ (license license:cecill-c)))
+
+(define-public bpp-phyl-omics
+ (package
+ (name "bpp-phyl-omics")
+ (version "2.4.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/BioPP/bpp-phyl-omics")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "172psb8njkjwg3cd6gdy5w0mq8f0817v635yw4bk7146aggjzl1h"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:tests? #f)) ; No test provided.
+ (inputs
+ (list bpp-core
+ bpp-phyl
+ bpp-seq
+ bpp-seq-omics))
+ (home-page "https://github.com/BioPP/bpp-phyl-omics")
+ (synopsis "Bio++ phylogenetic library genomics components")
+ (description
+ "This library contains the genomics components of the Bio++ phylogenetics
+library. It is part of the Bio++ project.")
+ (license license:cecill)))
(define-public bpp-popgen
- ;; The last release was in 2014 and the recommended way to install from source
- ;; is to clone the git repository, so we do this.
- ;; http://biopp.univ-montp2.fr/wiki/index.php/Main_Page
- (let ((commit "e472bac9b1a148803895d747cd6d0c5904f85d9f"))
- (package
- (name "bpp-popgen")
- (version (string-append "2.2.0-1." (string-take commit 7)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "http://biopp.univ-montp2.fr/git/bpp-popgen")
- (commit commit)))
- (file-name (string-append name "-" version "-checkout"))
- (sha256
- (base32
- "0yn82dzn1n5629nzja68xfrhi655709rjanyryb36vzkmymy6dw5"))))
- (build-system cmake-build-system)
- (arguments
- `(#:parallel-build? #f
- #:tests? #f)) ; There are no tests.
- (inputs
- (list bpp-core bpp-seq))
- (home-page "http://biopp.univ-montp2.fr")
- (synopsis "Bio++ population genetics library")
- (description
- "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
+ (package
+ (name "bpp-popgen")
+ (version "2.4.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/BioPP/bpp-popgen")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0bz0fhrq3dri6a0hvfc3zlvrns8mrzzlnicw5pyfa812gc1qwfvh"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:tests? #f)) ; There are no tests.
+ (inputs
+ (list bpp-core bpp-seq))
+ (home-page "https://pbil.univ-lyon1.fr/bpp-doc/bpp-popgen/html/")
+ (synopsis "Bio++ population genetics library")
+ (description
+ "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
analysis, phylogenetics, molecular evolution and population genetics. This
library provides population genetics-related modules.")
- (license license:cecill-c))))
+ (license license:cecill-c)))
(define-public bpp-seq
- ;; The last release was in 2014 and the recommended way to install from source
- ;; is to clone the git repository, so we do this.
- ;; http://biopp.univ-montp2.fr/wiki/index.php/Main_Page
- (let ((commit "6cfa07965ce152e5598a89df2fa80a75973bfa33"))
- (package
- (name "bpp-seq")
- (version (string-append "2.2.0-1." (string-take commit 7)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "http://biopp.univ-montp2.fr/git/bpp-seq")
- (commit commit)))
- (file-name (string-append name "-" version "-checkout"))
- (sha256
- (base32
- "1nys5jq7jqvdg40d91wsmj3q2yzy4276cp7sp44n67p468f27zf2"))))
- (build-system cmake-build-system)
- (arguments
- `(#:parallel-build? #f
- ;; If out-of-source, test data is not copied into the build directory
- ;; so the tests fail.
- #:out-of-source? #f))
- (inputs
- (list bpp-core))
- (home-page "http://biopp.univ-montp2.fr")
- (synopsis "Bio++ sequence library")
- (description
- "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
+ (package
+ (name "bpp-seq")
+ (version "2.4.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/BioPP/bpp-seq")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1mc09g8jswzsa4wgrfv59jxn15ys3q8s0227p1j838wkphlwn2qk"))))
+ (build-system cmake-build-system)
+ (inputs
+ (list bpp-core))
+ (home-page "https://pbil.univ-lyon1.fr/bpp-doc/bpp-seq/html/")
+ (synopsis "Bio++ sequence library")
+ (description
+ "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
analysis, phylogenetics, molecular evolution and population genetics. This
library provides sequence-related modules.")
- (license license:cecill-c))))
+ (license license:cecill-c)))
+
+(define-public bpp-seq-omics
+ (package
+ (name "bpp-seq-omics")
+ (version "2.4.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/BioPP/bpp-seq-omics")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1sc2xdfnfp5a6qihplp49rgrqmj89898avfy9bqaq1g2fajppgjj"))))
+ (build-system cmake-build-system)
+ (inputs
+ (list bpp-core bpp-seq))
+ (home-page "https://github.com/BioPP/bpp-seq-omics")
+ (synopsis "Bio++ sequence library genomics components")
+ (description
+ "This library contains the genomics components of the Bio++ sequence library.
+It is part of the Bio++ project.")
+ (license license:cecill)))
(define-public bppsuite
- ;; The last release was in 2014 and the recommended way to install from source
- ;; is to clone the git repository, so we do this.
- ;; http://biopp.univ-montp2.fr/wiki/index.php/Main_Page
- (let ((commit "c516147f57aa50961121cd505bed52cd7603698b"))
- (package
- (name "bppsuite")
- (version (string-append "2.2.0-1." (string-take commit 7)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "http://biopp.univ-montp2.fr/git/bppsuite")
- (commit commit)))
- (file-name (string-append name "-" version "-checkout"))
- (sha256
- (base32
- "1y87pxvw0jxjizhq2dr9g2r91md45k1p9ih2sl1yy1y3p934l2kb"))))
- (build-system cmake-build-system)
- (arguments
- `(#:parallel-build? #f
- #:tests? #f)) ; There are no tests.
- (native-inputs
- (list groff man-db texinfo))
- (inputs
- `(("bpp-core" ,bpp-core)
- ("bpp-seq" ,bpp-seq)
- ("bpp-phyl" ,bpp-phyl)
- ("bpp-phyl" ,bpp-popgen)))
- (home-page "http://biopp.univ-montp2.fr")
- (synopsis "Bioinformatics tools written with the Bio++ libraries")
- (description
- "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
+ (package
+ (name "bppsuite")
+ (version "2.4.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/BioPP/bppsuite")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1wdwcgczqbc3m116vakvi0129wm3acln3cfc7ivqnalwvi6lrpds"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:tests? #f)) ; There are no tests.
+ (native-inputs
+ (list groff man-db texinfo))
+ (inputs
+ (list bpp-core bpp-seq bpp-phyl bpp-popgen))
+ (home-page "https://github.com/BioPP")
+ (synopsis "Bioinformatics tools written with the Bio++ libraries")
+ (description
+ "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
analysis, phylogenetics, molecular evolution and population genetics. This
package provides command line tools using the Bio++ library.")
- (license license:cecill-c))))
+ (license license:cecill-c)))
(define-public blast+
(package
@@ -6021,6 +6033,43 @@ resolution of binding sites through combining the information of both
sequencing tag position and orientation.")
(license license:bsd-3)))
+(define-public maffilter
+ (package
+ (name "maffilter")
+ (version "1.3.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jydu/maffilter")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "196c16qw82niqqyzi7j1ga1n0zmir73bm26kg04m0i5aq2cpa0ml"))))
+ (build-system cmake-build-system)
+ (arguments (list #:tests? #false)) ;there are none
+ (inputs
+ (list boost
+ bpp-core
+ bpp-phyl
+ bpp-phyl-omics
+ bpp-seq
+ bpp-seq-omics
+ zlib))
+ (home-page "https://jydu.github.io/maffilter/")
+ (synopsis "Multiple alignment format file processor")
+ (description
+ "MafFilter is a program dedicated to the analysis of genome alignments.
+It parses and manipulates @acronym{MAF, multiple alignment format} files as
+well as more simple fasta files. This package can be used to design a
+pipeline as a series of consecutive filters, each performing a dedicated
+analysis. Many of the filters are available, from alignment cleaning to
+phylogeny reconstruction and population genetics analysis. Despite various
+filtering options and format conversion tools, MafFilter can compute a wide
+range of statistics (phylogenetic trees, nucleotide diversity, inferrence of
+selection, etc.).")
+ (license license:gpl3+)))
+
(define-public mafft
(package
(name "mafft")
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 81082ec31d..baa6119078 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -125,6 +125,7 @@
;;; Copyright © 2022 Demis Balbach <db@minikn.xyz>
;;; Copyright © 2020, 2021, 2022, 2023 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2023 Dominik Delgado Steuter <d@delgado.nrw>
+;;; Copyright © 2023 Juliana Sims <juli@incana.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2935,14 +2936,14 @@ incrementally confined in Isearch manner.")
(define emacs-emms-print-metadata
(package
(name "emacs-emms-print-metadata")
- (version "14")
+ (version "15")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"emms-" version ".tar"))
(sha256
- (base32 "0525vmi397q604z8i35zld3c4fkwbvxwir5lf4f1ji1bbvkzqavc"))))
+ (base32 "0kd9qx93cgcxyqsnbp95xx414s08rd5bb35aif3c7qyab5w05yi6"))))
(build-system gnu-build-system)
(arguments
(list
@@ -10714,10 +10715,10 @@ them easier to distinguish from other, less important buffers.")
(license license:expat)))
(define-public emacs-embark
- (let ((commit "63013c2d3ef4dccc95167218ccbf4f401e489c3e")) ;version bump
+ (let ((commit "c914efe881df2bc6a2bd35cc7ee975d3e9d4a418")) ;version bump
(package
(name "emacs-embark")
- (version "0.21.1")
+ (version "0.22.1")
(source
(origin
(method git-fetch)
@@ -10725,7 +10726,7 @@ them easier to distinguish from other, less important buffers.")
(url "https://github.com/oantolin/embark")
(commit commit)))
(sha256
- (base32 "14qp46wa1xgmb09jyk9cadj0b3m7bwspqnprk3zbfc6gw1r53235"))
+ (base32 "1l288w27wav0r71hprqi74r77042d1fx3p1zmi05vl6z6230h48b"))
(file-name (git-file-name name version))))
(build-system emacs-build-system)
(arguments
@@ -13151,7 +13152,7 @@ with Elfeed.")
(define-public emacs-elfeed-score
(package
(name "emacs-elfeed-score")
- (version "1.2.4")
+ (version "1.2.5")
(source
(origin
(method git-fetch)
@@ -13160,8 +13161,20 @@ with Elfeed.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0d1yh4wv81n5mnrzdi88z0vbs94m7j3q20r5fc1wk35r4hrl3xqw"))))
+ (base32 "0slbmmcsf5pqbiq3nmna7wx9jvfgdgjp272qdqvmrv99jdj92cq6"))))
(build-system emacs-build-system)
+ (arguments
+ (list
+ #:tests? #false ;FIXME: How to run tests properly?
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'install 'make-info
+ (lambda _
+ (with-directory-excursion "doc"
+ (invoke "makeinfo" "--no-split"
+ "-o" "elfeed-score.info" "elfeed-score.texi")))))))
+ (native-inputs
+ (list texinfo))
(propagated-inputs
(list emacs-elfeed))
(home-page "https://github.com/sp1ff/elfeed-score")
@@ -27423,7 +27436,7 @@ targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
(define-public emacs-buttercup
(package
(name "emacs-buttercup")
- (version "1.30")
+ (version "1.31")
(source
(origin
(method git-fetch)
@@ -27433,7 +27446,7 @@ targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
(file-name (git-file-name name version))
(sha256
(base32
- "1zr1jlfwr8yp9168yvkrhif1mr1r40fr1j1v1iv11ryn2zjcm9yn"))))
+ "1rvc9r6swb74lhzd877jidkkf2cxl5v4zz302j2imqhsbk844qzh"))))
(build-system emacs-build-system)
(arguments
(list
@@ -32599,7 +32612,7 @@ contributed packages to Telega.")))
(define-public emacs-doom-modeline
(package
(name "emacs-doom-modeline")
- (version "3.3.2")
+ (version "3.4.0")
(source
(origin
(method git-fetch)
@@ -32607,7 +32620,7 @@ contributed packages to Telega.")))
(url "https://github.com/seagle0128/doom-modeline")
(commit (string-append "v" version))))
(sha256
- (base32 "1v24hiqs4zbq613vanixgng9cx697di63jpafpmjlsripjfvk1qp"))
+ (base32 "1z5cqn33v7sjihs05ycz1yzi5wcg90yn3cy09qj9g5g8pjs8qdki"))
(file-name (git-file-name name version))))
(build-system emacs-build-system)
(arguments
@@ -33712,7 +33725,7 @@ launching other commands/applications from within Emacs, similar to the
(define-public emacs-no-littering
(package
(name "emacs-no-littering")
- (version "1.2.7")
+ (version "1.3.0")
(source
(origin
(method git-fetch)
@@ -33721,8 +33734,10 @@ launching other commands/applications from within Emacs, similar to the
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1grc5fk7ng4d6i8fwfpm3cb2b19s9sbdjbdn8ybchk7cj45kkl24"))))
+ (base32 "1vkypj2mm428kmawxnyaqg3v5xpcs5hkbmyvjkib8ib02psshxd7"))))
(build-system emacs-build-system)
+ (propagated-inputs
+ (list emacs-compat))
(home-page "https://github.com/emacscollective/no-littering")
(synopsis "Help keep @file{~/.emacs.d/} clean")
(description "The default paths used to store configuration files and
@@ -36017,6 +36032,22 @@ audio volume via amixer.")
Fennel code within Emacs.")
(license license:gpl3+))))
+(define-public emacs-gerbil-mode
+ (package
+ (inherit gerbil)
+ (name "emacs-gerbil-mode")
+ (version "1.0")
+ (build-system emacs-build-system)
+ (arguments
+ (list #:phases #~(modify-phases %standard-phases
+ (add-before 'install 'change-directory
+ (lambda _
+ (chdir "etc"))))))
+ (synopsis "Emacs major-mode for editing Gerbil code")
+ (description
+ "Gerbil mode provides font-lock, indentation, navigation, and REPL for
+Gerbil code within Emacs.")))
+
(define-public emacs-org-modern
(package
(name "emacs-org-modern")
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 10684979ad..77e8c76e17 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -984,7 +984,7 @@ Emacs).")
(define-public kicad
(package
(name "kicad")
- (version "7.0.1")
+ (version "7.0.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -992,7 +992,7 @@ Emacs).")
(commit version)))
(sha256
(base32
- "021safxvyq9qzs08jy3jvpazmhvix4kyl05s9y9hwmyzdmdl2smn"))
+ "0san7pjgvd8niwrki722qb6y46r71rlyspqp43pmkiz55dmz52zx"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
@@ -1092,7 +1092,7 @@ electrical diagrams), gerbview (viewing Gerber files) and others.")
(file-name (git-file-name name version))
(sha256
(base32
- "1cy9w10wzdjm9z9vzv88ija6l3pp894hwcgz5jggjrnyazhpklvj"))))
+ "1sh970sjvgzrwwjbkgg3ikzka5dfdq66hvkcxfx2dnp7hv0hidc2"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DBUILD_FORMATS=html")
@@ -1126,7 +1126,7 @@ electrical diagrams), gerbview (viewing Gerber files) and others.")
(file-name (git-file-name name version))
(sha256
(base32
- "14c5gci13m30xv0cmic5jxsmfx9lq3fnd8hyq3mmgkrw7443zy30"))))
+ "0aah92rb8yx00z0xwx9z7xn5rrw4cc3z35gr7c0bnb49hiak01jc"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; no tests exist
@@ -1155,7 +1155,7 @@ libraries.")
(file-name (git-file-name name version))
(sha256
(base32
- "0k0z40wmaq665hjxb6kp1yl3v7clxz49r6ki0chyphsxv1cnixmy"))))
+ "1qrdznfd4a6kzwd4aaijkpyjy0xnrmi66isq9z52652a8s6ja48v"))))
(synopsis "Official KiCad footprint libraries")
(description "This package contains the official KiCad footprint libraries.")))
@@ -1172,7 +1172,7 @@ libraries.")
(file-name (git-file-name name version))
(sha256
(base32
- "0nzi7ijfb3rjm98kaa9va2mkh0nfzpq4vfhxkq8j18qhx24h5c8v"))))
+ "1nkk4325jh89vh52ykfnf9pz1k3jk5017gz6r2cia2v4b3jadi31"))))
(synopsis "Official KiCad 3D model libraries")
(description "This package contains the official KiCad 3D model libraries.")))
@@ -1189,7 +1189,7 @@ libraries.")
(file-name (git-file-name name version))
(sha256
(base32
- "02i279269mhq7wjhb1yqk90820ncssxl9n7b20qr2r4fmm7jpvxv"))))
+ "1qi20mrsfn4fxmr1fyphmil2i9p2nzmwk5rlfchc5aq2194nj3lq"))))
(synopsis "Official KiCad project and worksheet templates")
(description "This package contains the official KiCad project and
worksheet templates.")))
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 9936975ba6..62ee0050fa 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -3706,6 +3706,57 @@ enemies in different game modes such as space ball, death match, team death
match, cannon keep, and grave-itation pit.")
(license license:gpl3+))))
+(define-public alienblaster
+ (package
+ (name "alienblaster")
+ (version "1.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://www.schwardtnet.de/alienblaster/archives/"
+ "alienblaster-" version ".tgz"))
+ (sha256
+ (base32
+ "104rfsfsv446n4y52p5zw9h8mhgjyrbca8fpyhnxkkasq141a264"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:tests? #f ; no tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-sdl-paths
+ (lambda _
+ (let ((share (string-append #$output "/share")))
+ ;; Fix name and append path to "SDL_mixer.h"
+ (substitute* "src/Makefile"
+ (("GAME_NAME=alienBlaster") "GAME_NAME=alienblaster")
+ (("SDL_FLAGS=\\$\\(shell sdl-config --cflags\\)" line)
+ (string-append line " -I"
+ #$(this-package-input "sdl-mixer")
+ "/include/SDL")))
+ ;; Substitute relative paths in ".cfg" and source/header files
+ (substitute* (find-files "./cfg")
+ (("(\\./)?images") (string-append share "/images")))
+ (substitute* (list "src/global.h" "src/global.cc")
+ (("./images") (string-append share "/images"))
+ (("./sound") (string-append share "/sound"))
+ (("./cfg") (string-append share "/cfg"))))))
+ (delete 'configure)
+ (replace 'install
+ (lambda _
+ (install-file "alienblaster" (string-append #$output "/bin"))
+ (for-each
+ (lambda (dir)
+ (copy-recursively dir (string-append #$output "/share/" dir)))
+ '("images" "sound" "cfg")))))))
+ (inputs (list sdl sdl-mixer))
+ (home-page "http://www.schwardtnet.de/alienblaster/")
+ (synopsis "Action-loaded 2D arcade shooter game")
+ (description "Alien Blaster is an action-loaded 2D arcade shooter
+game. Your mission in the game is simple: stop the invasion of the aliens by
+blasting them. Simultaneous two-player mode is available.")
+ (license license:gpl2)))
+
(define glkterm
(package
(name "glkterm")
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index a30bf4051b..3cc53f5923 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -11706,7 +11706,7 @@ advanced image management tool")
(define-public terminator
(package
(name "terminator")
- (version "2.1.2")
+ (version "2.1.3")
(source
(origin
(method url-fetch)
@@ -11714,7 +11714,7 @@ advanced image management tool")
"releases/download/v" version "/"
name "-" version ".tar.gz"))
(sha256
- (base32 "10shpn8id7z43d4dpx16x76mgxnk4mr976j5cg28icjiiaidyfc2"))))
+ (base32 "1rbarn9pq3g8k13clxiy0d62g0fxhkg5bcxw2h626wkb7lzr9s8a"))))
(build-system python-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
@@ -12984,7 +12984,7 @@ profiler via Sysprof, debugging support, and more.")
(define-public komikku
(package
(name "komikku")
- (version "1.15.0")
+ (version "1.17.0")
(source
(origin
(method git-fetch)
@@ -12994,7 +12994,7 @@ profiler via Sysprof, debugging support, and more.")
(file-name (git-file-name name version))
(sha256
(base32
- "0yd4274qxpv0wg1lm6daip2nd135qq07pfl5wrm2rqlzs5mvqs3n"))))
+ "0snb6vdgb3l2mw0kr0yb4zjpq46w56rpi554vqn5ks6qwywvs58g"))))
(build-system meson-build-system)
(arguments
(list
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index fd8fb25da1..ea67deff86 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -733,7 +733,7 @@ you send to a FIFO file.")
(define-public guile-dsv
(package
(name "guile-dsv")
- (version "0.5.1")
+ (version "0.5.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -742,10 +742,10 @@ you send to a FIFO file.")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "10wssilin4qphdmmqmms20bp3cy007kh22l1g45wfka0minmhkgs"))))
+ "056wab749fyabklp4srai72dwzihlm6hkcdy1da7d4gh8iqsyqpi"))))
(build-system gnu-build-system)
(native-inputs
- (list autoconf automake pkg-config texinfo))
+ (list autoconf automake pkg-config texinfo help2man))
(inputs (list guile-3.0))
(propagated-inputs (list guile-lib))
(arguments
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index c6fce0992f..56ea676e4a 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -485,22 +485,22 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "stable" kernels. That is, the most recently released major
;; versions that are still supported upstream.
-(define-public linux-libre-6.2-version "6.2.11")
+(define-public linux-libre-6.2-version "6.2.12")
(define-public linux-libre-6.2-gnu-revision "gnu")
(define deblob-scripts-6.2
(linux-libre-deblob-scripts
linux-libre-6.2-version
linux-libre-6.2-gnu-revision
(base32 "15wrksnimwb099qgqc631rp8dgv5b61l6s5kknk23frqdwkp4shp")
- (base32 "0ir5vvbdh6dly5ld8mfp7285g8k88w5bb32hj4wmgyqsbfqc6rf2")))
+ (base32 "0560xc8l2z79qk2dnv15i0m4igw9mq2ymv2a40nw2z3lcqygcs5x")))
(define-public linux-libre-6.2-pristine-source
(let ((version linux-libre-6.2-version)
- (hash (base32 "0iyx03z58pv1d5nrryjx94k3nxwyvm4b3bim6nawg1qbws26f8qd")))
+ (hash (base32 "1j6cn1ifmcqfqvxp9h10y8yfxi918yzl3yjbf96gmb9p4ysldqf7")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.2)))
-(define-public linux-libre-6.1-version "6.1.24")
+(define-public linux-libre-6.1-version "6.1.25")
(define-public linux-libre-6.1-gnu-revision "gnu")
(define deblob-scripts-6.1
(linux-libre-deblob-scripts
@@ -510,7 +510,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0cchdhjra74zanyk14brv2l2dvxpg8dn58rn477lgfb44mcnhq33")))
(define-public linux-libre-6.1-pristine-source
(let ((version linux-libre-6.1-version)
- (hash (base32 "0135aj8asplpxqr48hwdmwynx8n8hzhdgh55yl8r0n1kivisgrma")))
+ (hash (base32 "149h95r5msvqah868zd36y92ls9h41cr1rb5vzinl20mxdn46wnb")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.1)))
@@ -518,7 +518,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The "longterm" kernels — the older releases with long-term upstream support.
;; Here are the support timelines:
;; <https://www.kernel.org/category/releases.html>
-(define-public linux-libre-5.15-version "5.15.107")
+(define-public linux-libre-5.15-version "5.15.108")
(define-public linux-libre-5.15-gnu-revision "gnu")
(define deblob-scripts-5.15
(linux-libre-deblob-scripts
@@ -528,12 +528,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "03hwhwbcicwyx5i30d6m715kwgrxz4h21xhk55wnawlk8zhx3r35")))
(define-public linux-libre-5.15-pristine-source
(let ((version linux-libre-5.15-version)
- (hash (base32 "1a5gqpxmzls5mp4a0cw10ldrps4pvbn19nzfri91ys25j1v0wdqr")))
+ (hash (base32 "1fj38bvsyr9g89qr8pcjrp0kaq44g301x46gyjibq73gljnnkswb")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.15)))
-(define-public linux-libre-5.10-version "5.10.177")
+(define-public linux-libre-5.10-version "5.10.178")
(define-public linux-libre-5.10-gnu-revision "gnu1")
(define deblob-scripts-5.10
(linux-libre-deblob-scripts
@@ -543,12 +543,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1g4vabfswxzf9ahxc06k2ffksf84kcr2csx4m5kx680w0jqqnk80")))
(define-public linux-libre-5.10-pristine-source
(let ((version linux-libre-5.10-version)
- (hash (base32 "0waml6svj07b7f8yb1kzrflqlf61x4kcqbgsr372s484m3z628lz")))
+ (hash (base32 "1bx8wws9gvksg1c1af29nm03jjz2f5a5sq9hzc00ymjyf7isvkqs")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.10)))
-(define-public linux-libre-5.4-version "5.4.240")
+(define-public linux-libre-5.4-version "5.4.241")
(define-public linux-libre-5.4-gnu-revision "gnu1")
(define deblob-scripts-5.4
(linux-libre-deblob-scripts
@@ -558,12 +558,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1d6as1yk9svysh07hdybs8glvn8s9f8gwlbjl7f9m920pdam2r60")))
(define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version)
- (hash (base32 "0ihf0rqhx7dav3k3igk29962sscb1xyniy2gx8chyllprr0z126w")))
+ (hash (base32 "0z7api3qcjrd6w7fva7k6fj4zx17mg5ibn28a6qbgy27dyny1h7z")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.4)))
-(define-public linux-libre-4.19-version "4.19.280")
+(define-public linux-libre-4.19-version "4.19.281")
(define-public linux-libre-4.19-gnu-revision "gnu1")
(define deblob-scripts-4.19
(linux-libre-deblob-scripts
@@ -573,12 +573,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1q0fgpbdwc21wj9wnjjb49dp84ch6ymd5na3iaabadwjs2nmb6bd")))
(define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version)
- (hash (base32 "1xmg9p3ky75n5q894f522s8nwcmbd5c15nmjr0n96m6xzag3kd7w")))
+ (hash (base32 "13nwzsh3h634450k37pxdca5j8vr3qswx7k79bs2999xp2js9pf0")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.19)))
-(define-public linux-libre-4.14-version "4.14.312")
+(define-public linux-libre-4.14-version "4.14.313")
(define-public linux-libre-4.14-gnu-revision "gnu1")
(define deblob-scripts-4.14
(linux-libre-deblob-scripts
@@ -588,7 +588,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1ccggm19nl7pdcxmsm08fkqy8phz8rqfmww5ypizibdmnrmpn2v9")))
(define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version)
- (hash (base32 "03bwrnm7z8jxxn681dd5jffrj76l14ngkcccfgbg1p4a0471q436")))
+ (hash (base32 "0k2j856niappvkp9m1wxr87xvbwdzdy03mbcj827kmpjd9gdca76")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.14)))
diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm
index 8f9a607282..ee6a19f415 100644
--- a/gnu/packages/lxqt.scm
+++ b/gnu/packages/lxqt.scm
@@ -39,7 +39,6 @@
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
- #:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages documentation)
#:use-module (gnu packages compton)
@@ -321,8 +320,7 @@ LXQt and the system it's running on.")
libqtxdg
polkit-qt
qtsvg-5
- qtx11extras
- tzdata))
+ qtx11extras))
(native-inputs
(list lxqt-build-tools qttools-5))
(arguments
@@ -330,14 +328,12 @@ LXQt and the system it's running on.")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-source
- (lambda* (#:key inputs #:allow-other-keys)
+ (lambda _
(substitute* '("lxqt-admin-user/CMakeLists.txt"
"lxqt-admin-time/CMakeLists.txt")
(("DESTINATION \"\\$\\{POLKITQT-1_POLICY_FILES_INSTALL_DIR\\}")
"DESTINATION \"share/polkit-1/actions"))
- (substitute* '("lxqt-admin-time/timeadmindialog.cpp")
- (("/usr/share/zoneinfo/zone.tab")
- (search-input-file inputs "share/zoneinfo/zone.tab"))))))))
+ #t)))))
(home-page "https://lxqt-project.org")
(synopsis "LXQt system administration tool")
(description "lxqt-admin is providing two GUI tools to adjust settings of
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index ef45511546..b9b3ecc87e 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -561,7 +561,7 @@ album-experience.")
(define-public mpdevil
(package
(name "mpdevil")
- (version "1.10.0")
+ (version "1.10.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -569,7 +569,7 @@ album-experience.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "04dzxyv176w5sm4j85j7fbh42nk9wsyz5s005kj9cjwsrzrnxlbk"))))
+ (base32 "0ghmw3xiz567qd1iv1ggkv6zl1jb5d40mz27npk2zvlpikmqpc6c"))))
(build-system meson-build-system)
(arguments
(list
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index df3a5129cb..e456b40a20 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -1756,14 +1756,14 @@ of the same name.")
(define-public wireshark
(package
(name "wireshark")
- (version "4.0.4")
+ (version "4.0.5")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.wireshark.org/download/src/wireshark-"
version ".tar.xz"))
(sha256
- (base32 "0jz76ra86gy7r4wwb174lggnl5y29nn68l7ydw1kj1phcijrz854"))))
+ (base32 "0abb36n3li5w22f435k31mvk0sy0f41sxz4fqrl4ksjzjd377dki"))))
(build-system cmake-build-system)
(arguments
(list
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 60bf8409ee..bc3edf9122 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -500,6 +500,35 @@ obtain information about the CPU being used: supported instruction set,
processor name, cache information, and topology information.")
(license license:bsd-2))))
+(define-public clog
+ (package
+ (inherit cpuinfo) ;distributed with cpuinfo but not built by it
+ (name "clog")
+ (source (origin
+ (inherit (package-source cpuinfo))
+ (patches (search-patches "clog-fix-shared-build.patch"))))
+ (arguments
+ (list #:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON")
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "deps/clog"))))))
+ (native-inputs (list googletest))
+ (inputs '())
+ (synopsis "C-style logging library based on printf")
+ (description
+ "This package provides a C-style library for logging errors,
+warnings, information notes, and debug information. Its features are:
+@itemize
+@item printf-style interface for formatting variadic parameters.
+@item Separate functions for logging errors, warnings, information notes, and
+debug information.
+@item Independent logging settings for different modules.
+@item Logging to logcat on Android and stderr/stdout on other platforms.
+@item Compatible with C99 and C++.
+@item Covered with unit tests.
+@end itemize")))
+
(define-public psimd
;; There is currently no tag in this repo.
(let ((commit "072586a71b55b7f8c584153d223e95687148a900")
diff --git a/gnu/packages/patches/clog-fix-shared-build.patch b/gnu/packages/patches/clog-fix-shared-build.patch
new file mode 100644
index 0000000000..bf80544b90
--- /dev/null
+++ b/gnu/packages/patches/clog-fix-shared-build.patch
@@ -0,0 +1,85 @@
+Author: Antero Mejr <antero@mailbox.org>
+Notes: Disabled function visibility hacks and googletest download. Enabled
+non-static builds.
+
+diff --git a/deps/clog/CMakeLists.txt b/deps/clog/CMakeLists.txt
+index 083f519..b7b225a 100644
+--- a/deps/clog/CMakeLists.txt
++++ b/deps/clog/CMakeLists.txt
+@@ -38,20 +38,8 @@ SET(CONFU_DEPENDENCIES_SOURCE_DIR ${CMAKE_SOURCE_DIR}/deps
+ SET(CONFU_DEPENDENCIES_BINARY_DIR ${CMAKE_BINARY_DIR}/deps
+ CACHE PATH "Confu-style dependencies binary directory")
+
+-IF(CLOG_BUILD_TESTS)
+- IF(NOT DEFINED GOOGLETEST_SOURCE_DIR)
+- MESSAGE(STATUS "Downloading Google Test to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest (define GOOGLETEST_SOURCE_DIR to avoid it)")
+- CONFIGURE_FILE(cmake/DownloadGoogleTest.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download/CMakeLists.txt")
+- EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
+- WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download")
+- EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" --build .
+- WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download")
+- SET(GOOGLETEST_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest" CACHE STRING "Google Test source directory")
+- ENDIF()
+-ENDIF()
+-
+ # ---[ clog library
+-ADD_LIBRARY(clog STATIC src/clog.c)
++ADD_LIBRARY(clog src/clog.c)
+ SET_TARGET_PROPERTIES(clog PROPERTIES
+ C_STANDARD 99
+ C_EXTENSIONS NO)
+@@ -74,16 +62,6 @@ INSTALL(TARGETS clog
+
+ # ---[ clog tests
+ IF(CLOG_BUILD_TESTS)
+- # ---[ Build google test
+- IF(NOT TARGET gtest)
+- IF(MSVC AND NOT CLOG_RUNTIME_TYPE STREQUAL "static")
+- SET(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
+- ENDIF()
+- ADD_SUBDIRECTORY(
+- "${GOOGLETEST_SOURCE_DIR}"
+- "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest")
+- ENDIF()
+-
+ ADD_EXECUTABLE(clog-test test/clog.cc)
+ SET_TARGET_PROPERTIES(clog-test PROPERTIES
+ CXX_STANDARD 11
+diff --git a/deps/clog/include/clog.h b/deps/clog/include/clog.h
+index 4143761..aa9000f 100644
+--- a/deps/clog/include/clog.h
++++ b/deps/clog/include/clog.h
+@@ -11,16 +11,6 @@
+ #define CLOG_INFO 4
+ #define CLOG_DEBUG 5
+
+-#ifndef CLOG_VISIBILITY
+- #if defined(__ELF__)
+- #define CLOG_VISIBILITY __attribute__((__visibility__("internal")))
+- #elif defined(__MACH__)
+- #define CLOG_VISIBILITY __attribute__((__visibility__("hidden")))
+- #else
+- #define CLOG_VISIBILITY
+- #endif
+-#endif
+-
+ #ifndef CLOG_ARGUMENTS_FORMAT
+ #if defined(__GNUC__)
+ #define CLOG_ARGUMENTS_FORMAT __attribute__((__format__(__printf__, 1, 2)))
+@@ -33,11 +23,11 @@
+ extern "C" {
+ #endif
+
+-CLOG_VISIBILITY void clog_vlog_debug(const char* module, const char* format, va_list args);
+-CLOG_VISIBILITY void clog_vlog_info(const char* module, const char* format, va_list args);
+-CLOG_VISIBILITY void clog_vlog_warning(const char* module, const char* format, va_list args);
+-CLOG_VISIBILITY void clog_vlog_error(const char* module, const char* format, va_list args);
+-CLOG_VISIBILITY void clog_vlog_fatal(const char* module, const char* format, va_list args);
++void clog_vlog_debug(const char* module, const char* format, va_list args);
++void clog_vlog_info(const char* module, const char* format, va_list args);
++void clog_vlog_warning(const char* module, const char* format, va_list args);
++void clog_vlog_error(const char* module, const char* format, va_list args);
++void clog_vlog_fatal(const char* module, const char* format, va_list args);
+
+ #define CLOG_DEFINE_LOG_DEBUG(log_debug_function_name, module, level) \
+ CLOG_ARGUMENTS_FORMAT \
diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm
index 5e4d16e24a..74e51ec61e 100644
--- a/gnu/packages/pretty-print.scm
+++ b/gnu/packages/pretty-print.scm
@@ -56,14 +56,14 @@
(define-public a2ps
(package
(name "a2ps")
- (version "4.15.3")
+ (version "4.15.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/a2ps/a2ps-"
version ".tar.gz"))
(sha256
(base32
- "1izpmbk3i66g8cn1bd3kdpk72vxn5ggy329xjvag5jsdxgh823nh"))
+ "1mvd41xvcy8vk91nndzifasq600kzlswl1379bhnpn49pa23y1ja"))
(modules '((guix build utils)))
(snippet
;; Remove timestamp from the installed 'README' file.
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index f265e7cd6e..3e7704bf48 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -1258,6 +1258,7 @@ Password-Authenticated Key Exchange algorithm.")
(list python-automat
python-idna
python-incremental
+ python-pyopenssl
python-service-identity
python-twisted
python-zope-interface))
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index fcb7a8db1d..8714940d1c 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -22,6 +22,7 @@
;;; Copyright © 2022 zamfofex <zamfofex@twdb.moe>
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;; Copyright © 2022 Andy Tai <atai@atai.org>
+;;; Copyright © 2023 Eidvilas Markevičius <markeviciuseidvilas@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -173,7 +174,7 @@ based command language.")
(define-public kakoune
(package
(name "kakoune")
- (version "2021.11.08")
+ (version "2022.10.31")
(source
(origin
(method url-fetch)
@@ -181,7 +182,7 @@ based command language.")
"releases/download/v" version "/"
"kakoune-" version ".tar.bz2"))
(sha256
- (base32 "1x5mvmpf0rgmr2xdw5wjn4hr6qd8yvj0zx588fi324x1knfqhc5a"))))
+ (base32 "12z5wka649xycclbs94bfy2yyln2172dz0zycxsxr384r5i7ncgv"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index f516e975c1..b7965ea670 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -213,65 +213,57 @@ features including, tables, builtin image display, bookmarks, SSL and more.")
(define-public luakit
(package
(name "luakit")
- (version "2.3")
+ (version "2.3.3")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/luakit/luakit")
- (commit version)))
+ (url "https://github.com/luakit/luakit")
+ (commit version)))
(file-name (git-file-name name version))
(sha256
(base32
- "1khbn7dpizkznnwkw7rcfhf72dnd1nazk7dwb4rkh9i97b53mf1y"))))
- (inputs
- `(("lua-5.1" ,lua-5.1)
- ("gtk+" ,gtk+)
- ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
- ("glib-networking" ,glib-networking)
- ("lua5.1-filesystem" ,lua5.1-filesystem)
- ("luajit" ,luajit)
- ("webkitgtk" ,webkitgtk-with-libsoup2)
- ("sqlite" ,sqlite)))
- (native-inputs
- (list pkg-config))
+ "19z6idmjz6y7xmjpqgw65mdfi65lyvy06819dj5bb7rad63v5542"))))
(build-system glib-or-gtk-build-system)
(arguments
- `(#:make-flags
- (let ((out (assoc-ref %outputs "out")))
- (list
- "CC=gcc"
- "LUA_BIN_NAME=lua"
- "DEVELOPMENT_PATHS=0"
- (string-append "PREFIX=" out)
- (string-append "XDGPREFIX=" out "/etc/xdg")))
- #:phases
- (modify-phases %standard-phases
- (add-before 'build 'lfs-workaround
- (lambda _
- (setenv "LUA_CPATH"
- (string-append
- (assoc-ref %build-inputs "lua5.1-filesystem")
- "/lib/lua/5.1/?.so;;"))
- #t))
- (add-before 'build 'set-version
- (lambda _
- (setenv "VERSION_FROM_GIT" ,(package-version this-package))
- #t))
- (delete 'configure)
- (delete 'check)
- (add-after 'install 'wrap
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((luakit (assoc-ref outputs "out"))
- (lua5.1-filesystem (assoc-ref inputs "lua5.1-filesystem") )
- (gtk (assoc-ref inputs "gtk+"))
- (gtk-share (string-append gtk "/share")))
- (wrap-program (string-append luakit "/bin/luakit")
- `("LUA_CPATH" prefix
- (,(string-append lua5.1-filesystem
- "/lib/lua/5.1/?.so;;")))
- `("XDG_CONFIG_DIRS" prefix
- (,(string-append luakit "/etc/xdg/"))))
- #t))))))
+ (list
+ #:tests? #false ;require un-packaged "luassert"
+ #:test-target "run-tests"
+ #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target))
+ "LUA_BIN_NAME=lua"
+ "DEVELOPMENT_PATHS=0"
+ (string-append "PREFIX=" #$output)
+ (string-append "XDGPREFIX=" #$output "/etc/xdg"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'lfs-workaround
+ (lambda _
+ (setenv "LUA_CPATH"
+ (string-append #$(this-package-input "lua5.1-filesystem")
+ "/lib/lua/5.1/?.so;;"))))
+ (add-before 'build 'set-version
+ (lambda _
+ (setenv "VERSION_FROM_GIT" #$version)))
+ (delete 'configure)
+ (add-after 'install 'wrap
+ (lambda _
+ (wrap-program (string-append #$output "/bin/luakit")
+ `("LUA_CPATH" prefix
+ (,(string-append #$(this-package-input "lua5.1-filesystem")
+ "/lib/lua/5.1/?.so;;")))
+ `("XDG_CONFIG_DIRS" prefix
+ (,(string-append #$output "/etc/xdg/")))))))))
+ (native-inputs
+ (list pkg-config))
+ (inputs
+ (list glib-networking
+ gsettings-desktop-schemas
+ gtk+
+ lua-5.1
+ lua5.1-filesystem
+ luajit
+ sqlite
+ webkitgtk-with-libsoup2))
(synopsis "Fast, lightweight, and simple browser based on WebKit")
(description "Luakit is a fast, lightweight, and simple to use
micro-browser framework extensible by Lua using the WebKit web content engine
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index cd0c122fca..f1fcc68d5f 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -748,7 +748,7 @@ desktop environment.")
(define-public icewm
(package
(name "icewm")
- (version "3.3.2")
+ (version "3.3.3")
(source (origin
(method url-fetch)
(uri (string-append
@@ -756,7 +756,7 @@ desktop environment.")
version "/icewm-" version ".tar.lz"))
(sha256
(base32
- "1mp1xl64sin3d4nkh19qmnic1c9qcwf9v7mkzji76pg3mzd823jg"))))
+ "0wyg7lk65kf03brhzrbk158sr8d5cqny5qcyrwypnzpp0chcff71"))))
(build-system gnu-build-system)
(native-inputs (list pkg-config))
(inputs (list fontconfig
@@ -1884,7 +1884,7 @@ core/thread.")
(define-public wlr-randr
(package
(name "wlr-randr")
- (version "0.2.0")
+ (version "0.3.0")
(source
(origin
(method git-fetch)
@@ -1893,7 +1893,7 @@ core/thread.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0d44r4schknfc3g09y0kjbhl62zkynv6hi1z4zqc9ic5fhav3r15"))))
+ (base32 "0cj24fb6s7n8nphvhrp8ldrivjdcrjw64i5v9rsfb6z80q4qg548"))))
(build-system meson-build-system)
(inputs (list wayland))
(native-inputs (list pkg-config))
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index dfc7571e55..e8eae72aa2 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -15,7 +15,7 @@
;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2021 qblade <qblade@protonmail.com>
;;; Copyright © 2021 Hui Lu <luhuins@163.com>
-;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 muradm <mail@muradm.net>
;;; Copyright © 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2022 Justin Veilleux <terramorpha@cock.li>
@@ -1428,7 +1428,11 @@ the tty to run, among other things."
(list (shepherd-service
(documentation "Run libc's name service cache daemon (nscd).")
(provision '(nscd))
- (requirement '(user-processes))
+
+ ;; Logs are written with syslog(3), which writes to /dev/console
+ ;; when nobody's listening--ugly. Thus, wait for syslogd.
+ (requirement '(user-processes syslogd))
+
(start #~(make-forkexec-constructor
(list #$nscd "-f" #$nscd.conf "--foreground")
@@ -1497,31 +1501,36 @@ given @var{config}---an @code{<nscd-configuration>} object. @xref{Name
Service Switch}, for an example."
(service nscd-service-type config))
-;; Snippet adapted from the GNU inetutils manual.
+;;; Snippet adapted from the GNU inetutils manual.
(define %default-syslog.conf
- (plain-file "syslog.conf" "
- # Log all error messages, authentication messages of
- # level notice or higher and anything of level err or
- # higher to the console.
- # Don't log private authentication messages!
- *.alert;auth.notice;authpriv.none -/dev/console
-
- # Log anything (except mail) of level info or higher.
- # Don't log private authentication messages!
- *.info;mail.none;authpriv.none -/var/log/messages
-
- # Log \"debug\"-level entries and nothing else.
- *.=debug -/var/log/debug
-
- # Same, in a different place.
- *.info;mail.none;authpriv.none -/dev/tty12
-
- # The authpriv file has restricted access.
- # 'fsync' the file after each line (hence the lack of a leading dash).
- authpriv.* /var/log/secure
-
- # Log all the mail messages in one place.
- mail.* -/var/log/maillog
+ (plain-file "syslog.conf" "\
+# See info '(inetutils) syslogd invocation' for the documentation
+# of the syslogd configuration syntax.
+
+# Log all error messages, authentication messages of
+# level notice or higher and anything of level err or
+# higher to the console.
+# Don't log private authentication messages!
+*.alert;auth.notice;authpriv.none -/dev/console
+
+# Log anything (except mail) of level info or higher.
+# Don't log private authentication messages!
+*.info;mail.none;authpriv.none -/var/log/messages
+
+# Log \"debug\"-level entries and nothing else.
+*.=debug -/var/log/debug
+
+# Same, in a different place.
+*.info;mail.none;authpriv.none -/dev/tty12
+
+# The authpriv file has restricted access.
+# 'fsync' the file after each line (hence the lack of a leading dash).
+# Also include unprivileged auth logs of info or higher level
+# to conveniently gather the authentication data at the same place.
+authpriv.*;auth.info /var/log/secure
+
+# Log all the mail messages in one place.
+mail.* -/var/log/maillog
"))
(define-record-type* <syslog-configuration>
@@ -1532,30 +1541,57 @@ Service Switch}, for an example."
(config-file syslog-configuration-config-file
(default %default-syslog.conf)))
-(define syslog-service-type
- (shepherd-service-type
- 'syslog
- (lambda (config)
- (define config-file
- (syslog-configuration-config-file config))
+;;; Note: a static file name is used for syslog.conf so that the reload action
+;;; work as intended.
+(define syslog.conf "/etc/syslog.conf")
- (shepherd-service
- (documentation "Run the syslog daemon (syslogd).")
- (provision '(syslogd))
- (requirement '(user-processes))
- (actions (list (shepherd-configuration-action config-file)))
- (start #~(let ((spawn (make-forkexec-constructor
- (list #$(syslog-configuration-syslogd config)
- "--rcfile" #$config-file)
- #:pid-file "/var/run/syslog.pid")))
- (lambda ()
- ;; Set the umask such that file permissions are #o640.
- (let ((mask (umask #o137))
- (pid (spawn)))
- (umask mask)
- pid))))
- (stop #~(make-kill-destructor))))
- (syslog-configuration)
+(define (syslog-etc configuration)
+ (match-record configuration <syslog-configuration>
+ (config-file)
+ (list `(,(basename syslog.conf) ,config-file))))
+
+(define (syslog-shepherd-service config)
+ (define config-file
+ (syslog-configuration-config-file config))
+
+ (shepherd-service
+ (documentation "Run the syslog daemon (syslogd).")
+ (provision '(syslogd))
+ (requirement '(user-processes))
+ (actions
+ (list (shepherd-configuration-action syslog.conf)
+ (shepherd-action
+ (name 'reload)
+ (documentation "Reload the configuration file from disk.")
+ (procedure
+ #~(lambda (pid)
+ (if pid
+ (begin
+ (kill pid SIGHUP)
+ (display #$(G_ "Service syslog has been asked to \
+reload its settings file.")))
+ (display #$(G_ "Service syslog is not running."))))))))
+ ;; Note: a static file name is used for syslog.conf so that the reload
+ ;; action work as intended.
+ (start #~(let ((spawn (make-forkexec-constructor
+ (list #$(syslog-configuration-syslogd config)
+ #$(string-append "--rcfile=" syslog.conf))
+ #:pid-file "/var/run/syslog.pid")))
+ (lambda ()
+ ;; Set the umask such that file permissions are #o640.
+ (let ((mask (umask #o137))
+ (pid (spawn)))
+ (umask mask)
+ pid))))
+ (stop #~(make-kill-destructor))))
+
+(define syslog-service-type
+ (service-type
+ (name 'syslog)
+ (default-value (syslog-configuration))
+ (extensions (list (service-extension shepherd-root-service-type
+ (compose list syslog-shepherd-service))
+ (service-extension etc-service-type syslog-etc)))
(description "Run the syslog daemon, @command{syslogd}, which is
responsible for logging system messages.")))
diff --git a/gnu/services/databases.scm b/gnu/services/databases.scm
index b7bd1e587e..e8e42d3b7b 100644
--- a/gnu/services/databases.scm
+++ b/gnu/services/databases.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 David Thompson <davet@gnu.org>
-;;; Copyright © 2015, 2016, 2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015-2016, 2022-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
@@ -167,7 +167,8 @@ host all all ::1/128 md5"))
(define-record-type* <postgresql-configuration>
postgresql-configuration make-postgresql-configuration
postgresql-configuration?
- (postgresql postgresql-configuration-postgresql) ;file-like
+ (postgresql postgresql-configuration-postgresql ;file-like
+ (default postgresql-10))
(port postgresql-configuration-port
(default 5432))
(locale postgresql-configuration-locale
@@ -308,11 +309,12 @@ host all all ::1/128 md5"))
(call-with-input-file #$pid-file read))
(_ #t))))))
(list (shepherd-service
- (provision '(postgres))
+ (provision '(postgres postgresql))
(documentation "Run the PostgreSQL daemon.")
(requirement '(user-processes loopback syslogd))
(modules `((ice-9 match)
,@%default-modules))
+ (actions (list (shepherd-configuration-action config-file)))
(start (action "start"))
(stop (action "stop"))))))))
@@ -329,8 +331,7 @@ host all all ::1/128 md5"))
(service-extension
profile-service-type
(compose list postgresql-configuration-postgresql))))
- (default-value (postgresql-configuration
- (postgresql postgresql-10)))
+ (default-value (postgresql-configuration))
(description "Run the PostgreSQL database server.")))
(define-deprecated (postgresql-service #:key (postgresql postgresql)
@@ -595,6 +596,8 @@ port=" (number->string port) "
(provision '(mysql))
(requirement '(user-processes))
(documentation "Run the MySQL server.")
+ (actions (list (shepherd-configuration-action
+ (mysql-configuration-file config))))
(start (let ((mysql (mysql-configuration-mysql config))
(extra-env (mysql-configuration-extra-environment config))
(my.cnf (mysql-configuration-file config)))
@@ -752,6 +755,7 @@ port=" (number->string port) "
(provision '(redis))
(documentation "Run the Redis daemon.")
(requirement '(user-processes syslogd))
+ (actions (list (shepherd-configuration-action config-file)))
(start #~(make-forkexec-constructor
'(#$(file-append redis "/bin/redis-server")
#$config-file)
diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm
index 2ff9f90cd0..f45fc99c69 100644
--- a/gnu/services/dns.scm
+++ b/gnu/services/dns.scm
@@ -622,6 +622,7 @@
(documentation "Run the Knot DNS daemon.")
(provision '(knot dns))
(requirement '(networking))
+ (actions (list (shepherd-configuration-action config-file)))
(start #~(make-forkexec-constructor
(list (string-append #$knot "/sbin/knotd")
"-c" #$config-file)))
diff --git a/gnu/services/herd.scm b/gnu/services/herd.scm
index e489ce2b9a..48594015fc 100644
--- a/gnu/services/herd.scm
+++ b/gnu/services/herd.scm
@@ -282,14 +282,10 @@ returns a shepherd <service> object."
`(primitive-load ,file))
files))))
-(define (load-services/safe files)
- "This is like 'load-services', but make sure only the subset of FILES that
-can be safely reloaded is actually reloaded."
- (eval-there `(let ((services (map primitive-load ',files)))
- ;; Since version 0.5.0 of the Shepherd, registering a service
- ;; that has the same name as an already-registered service
- ;; makes it a "replacement" of that previous service.
- (apply register-services services))))
+(define load-services/safe
+ ;; Deprecated. It used to behave differently before service replacements
+ ;; were a thing.
+ load-services)
(define* (start-service name #:optional (arguments '()))
(invoke-action name 'start arguments
diff --git a/gnu/services/rsync.scm b/gnu/services/rsync.scm
index d456911563..aeb4275031 100644
--- a/gnu/services/rsync.scm
+++ b/gnu/services/rsync.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
-;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2021, 2023 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -225,13 +225,15 @@ please use 'modules' instead~%")))
(pid-file (rsync-configuration-pid-file config))
(port-number (rsync-configuration-port-number config))
(user (rsync-configuration-user config))
- (group (rsync-configuration-group config)))
+ (group (rsync-configuration-group config))
+ (config-file (rsync-config-file config)))
(list (shepherd-service
(provision '(rsync))
(documentation "Run rsync daemon.")
+ (actions (list (shepherd-configuration-action config-file)))
(start #~(make-forkexec-constructor
(list (string-append #$rsync "/bin/rsync")
- "--config" #$(rsync-config-file config)
+ "--config" #$config-file
"--daemon")
#:pid-file #$pid-file
#:user #$user
diff --git a/gnu/tests.scm b/gnu/tests.scm
index ca677d315b..96ecb40ea2 100644
--- a/gnu/tests.scm
+++ b/gnu/tests.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016-2020, 2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016-2020, 2022-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
@@ -88,6 +88,61 @@
(with-extensions extensions
gexp)))
+(define (marionette-program device imported-modules extensions)
+ "Return the program that runs the marionette REPL on DEVICE. Ensure
+IMPORTED-MODULES and EXTENSIONS are accessible from the REPL."
+ (define code
+ (with-imported-modules-and-extensions
+ `((guix build utils)
+ (guix build syscalls)
+ ,@imported-modules)
+ extensions
+ #~(begin
+ (use-modules (ice-9 match)
+ (ice-9 binary-ports))
+
+ (define (self-quoting? x)
+ (letrec-syntax ((one-of (syntax-rules ()
+ ((_) #f)
+ ((_ pred rest ...)
+ (or (pred x)
+ (one-of rest ...))))))
+ (one-of symbol? string? keyword? pair? null? array?
+ number? boolean? char?)))
+
+ (let ((repl (open-file #$device "r+0"))
+ (console (open-file "/dev/console" "r+0")))
+ ;; Redirect output to the console.
+ (close-fdes 1)
+ (close-fdes 2)
+ (dup2 (fileno console) 1)
+ (dup2 (fileno console) 2)
+ (close-port console)
+
+ (display 'ready repl)
+ (let loop ()
+ (newline repl)
+
+ (match (read repl)
+ ((? eof-object?)
+ (primitive-exit 0))
+ (expr
+ (catch #t
+ (lambda ()
+ (let ((result (primitive-eval expr)))
+ (write (if (self-quoting? result)
+ result
+ (object->string result))
+ repl)))
+ (lambda (key . args)
+ (print-exception (current-error-port)
+ (stack-ref (make-stack #t) 1)
+ key args)
+ (write #f repl)))))
+ (loop))))))
+
+ (program-file "marionette-repl.scm" code))
+
(define (marionette-shepherd-service config)
"Return the Shepherd service for the marionette REPL"
(match config
@@ -101,57 +156,10 @@
(modules '((ice-9 match)
(srfi srfi-9 gnu)))
- (start
- (with-imported-modules-and-extensions imported-modules extensions
- #~(lambda ()
- (define (self-quoting? x)
- (letrec-syntax ((one-of (syntax-rules ()
- ((_) #f)
- ((_ pred rest ...)
- (or (pred x)
- (one-of rest ...))))))
- (one-of symbol? string? keyword? pair? null? array?
- number? boolean? char?)))
-
- (match (primitive-fork)
- (0
- (dynamic-wind
- (const #t)
- (lambda ()
- (let ((repl (open-file #$device "r+0"))
- (console (open-file "/dev/console" "r+0")))
- ;; Redirect output to the console.
- (close-fdes 1)
- (close-fdes 2)
- (dup2 (fileno console) 1)
- (dup2 (fileno console) 2)
- (close-port console)
-
- (display 'ready repl)
- (let loop ()
- (newline repl)
-
- (match (read repl)
- ((? eof-object?)
- (primitive-exit 0))
- (expr
- (catch #t
- (lambda ()
- (let ((result (primitive-eval expr)))
- (write (if (self-quoting? result)
- result
- (object->string result))
- repl)))
- (lambda (key . args)
- (print-exception (current-error-port)
- (stack-ref (make-stack #t) 1)
- key args)
- (write #f repl)))))
- (loop))))
- (lambda ()
- (primitive-exit 1))))
- (pid
- pid)))))
+ (start #~(make-forkexec-constructor
+ (list #$(marionette-program device
+ imported-modules
+ extensions))))
(stop #~(make-kill-destructor)))))))
(define marionette-service-type
diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm
index 97edbbc6ad..5584628514 100644
--- a/gnu/tests/base.scm
+++ b/gnu/tests/base.scm
@@ -148,7 +148,7 @@ Otherwise assume that there is no password for root."
(marionette-eval
`(begin
(use-modules (gnu services herd))
- (start 'user-processes)
+ (start-service 'user-processes)
((@@ (gnu services herd) eval-there)
'(let ((result (read (current-input-port))))
(if (eof-object? result)
diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm
index 4e0e274e66..57e9df4421 100644
--- a/gnu/tests/install.scm
+++ b/gnu/tests/install.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016-2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017, 2019, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
@@ -316,7 +316,7 @@ such as for RAID systems."
;; Wait for tty1.
(marionette-eval '(begin
(use-modules (gnu services herd))
- (start 'term-tty1))
+ (start-service 'term-tty1))
marionette)
(when #$(->bool script)