Merge remote-tracking branch 'origin/master' into core-updates

This commit is contained in:
Andreas Enge 2023-04-22 09:21:22 +02:00
commit d1252b597d
No known key found for this signature in database
GPG key ID: F7D5C9BF765C61E3
50 changed files with 879 additions and 489 deletions

View file

@ -18582,6 +18582,18 @@ Type of the service that runs the syslog daemon, whose value is a
@code{<syslog-configuration>} object. @code{<syslog-configuration>} object.
@end defvar @end defvar
To have a modified @code{syslog-configuration} come into effect after
reconfiguring your system, the @samp{reload} action should be preferred
to restarting the service, as many services such as the login manager
depend on it and would be restarted as well:
@example
# herd reload syslog
@end example
which will cause the running @command{syslogd} process to reload its
configuration.
@deftp {Data Type} syslog-configuration @deftp {Data Type} syslog-configuration
Data type representing the configuration of the syslog daemon. Data type representing the configuration of the syslog daemon.
@ -42565,10 +42577,10 @@ Name of this host declaration.
@item @code{host-name} (type: maybe-string) @item @code{host-name} (type: maybe-string)
Host name---e.g., @code{"foo.example.org"} or @code{"192.168.1.2"}. Host name---e.g., @code{"foo.example.org"} or @code{"192.168.1.2"}.
@item @code{address-family} (type: address-family) @item @code{address-family} (type: maybe-address-family)
Address family to use when connecting to this host: one of Address family to use when connecting to this host: one of
@code{AF_INET} (for IPv4 only), @code{AF_INET6} (for IPv6 only), or @code{AF_INET} (for IPv4 only), @code{AF_INET6} (for IPv6 only).
@code{*unspecified*} (allowing any address family). Additionally, the field can be left unset to allow any address family.
@item @code{identity-file} (type: maybe-string) @item @code{identity-file} (type: maybe-string)
The identity file to use---e.g., @code{"/home/charlie/.ssh/id_ed25519"}. The identity file to use---e.g., @code{"/home/charlie/.ssh/id_ed25519"}.
@ -42594,10 +42606,31 @@ machine.
@item @code{compression?} (default: @code{#f}) (type: boolean) @item @code{compression?} (default: @code{#f}) (type: boolean)
Whether to compress data in transit. Whether to compress data in transit.
@item @code{proxy-command} (type: maybe-string) @item @code{proxy} (type: maybe-proxy-command-or-jump-list)
The command to use to connect to the server. As an example, a command The command to use to connect to the server or a list of SSH hosts to
to connect via an HTTP proxy at 192.0.2.0 would be: @code{"nc -X connect jump through before connecting to the server. The field may be set to either a
-x 192.0.2.0:8080 %h %p"}. @code{proxy-command} or a list of @code{proxy-jump} records.
As an example, a @code{proxy-command} to connect via an HTTP proxy at 192.0.2.0
would be constructed with: @code{(proxy-command "nc -X connect -x
192.0.2.0:8080 %h %p")}.
@deftp {Data Type} proxy-jump
Available @code{proxy-jump} fields are:
@table @asis
@item @code{user} (type: maybe-string)
User name on the remote host.
@item @code{host-name} (type: string)
Host name---e.g., @code{foo.example.org} or @code{192.168.1.2}.
@item @code{port} (type: maybe-natural-number)
TCP port number to connect to.
@end table
@end deftp
@item @code{host-key-algorithms} (type: maybe-string-list) @item @code{host-key-algorithms} (type: maybe-string-list)
The list of accepted host key algorithms---e.g., The list of accepted host key algorithms---e.g.,

View file

@ -20,6 +20,7 @@
(define-module (gnu home services ssh) (define-module (gnu home services ssh)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix records) #:use-module (guix records)
#:use-module (guix deprecation)
#:use-module (guix diagnostics) #:use-module (guix diagnostics)
#:use-module (guix i18n) #:use-module (guix i18n)
#:use-module (gnu services) #:use-module (gnu services)
@ -32,6 +33,8 @@
#:autoload (gnu packages base) (glibc-utf8-locales) #:autoload (gnu packages base) (glibc-utf8-locales)
#:use-module (gnu packages ssh) #:use-module (gnu packages ssh)
#:use-module (srfi srfi-1) #: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-34)
#:use-module (srfi srfi-35) #:use-module (srfi srfi-35)
#:use-module (ice-9 match) #:use-module (ice-9 match)
@ -55,6 +58,12 @@
openssh-host-host-key-algorithms openssh-host-host-key-algorithms
openssh-host-accepted-key-types openssh-host-accepted-key-types
openssh-host-extra-content 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-openssh-service-type
home-ssh-agent-service-type)) home-ssh-agent-service-type))
@ -114,6 +123,54 @@
(define-maybe string-list) (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 (define-configuration openssh-host
(name (name
(string) (string)
@ -155,7 +212,13 @@ machine.")
maybe-string maybe-string
"The command to use to connect to the server. As an example, a command "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 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 (host-key-algorithms
maybe-string-list maybe-string-list
"The list of accepted host key algorithms---e.g., "The list of accepted host key algorithms---e.g.,

View file

@ -999,6 +999,7 @@ dist_patch_DATA = \
%D%/packages/patches/classpath-aarch64-support.patch \ %D%/packages/patches/classpath-aarch64-support.patch \
%D%/packages/patches/classpath-miscompilation.patch \ %D%/packages/patches/classpath-miscompilation.patch \
%D%/packages/patches/cling-use-shared-library.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/clucene-pkgconfig.patch \
%D%/packages/patches/cmake-curl-certificates-3.24.patch \ %D%/packages/patches/cmake-curl-certificates-3.24.patch \
%D%/packages/patches/coda-use-system-libs.patch \ %D%/packages/patches/coda-use-system-libs.patch \

View file

@ -2220,26 +2220,20 @@ easy-to-perform steps.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public bpp-core (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 (package
(name "bpp-core") (name "bpp-core")
(version (string-append "2.2.0-1." (string-take commit 7))) (version "2.4.1")
(source (origin (source
(origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "http://biopp.univ-montp2.fr/git/bpp-core") (url "https://github.com/BioPP/bpp-core")
(commit commit))) (commit (string-append "v" version))))
(file-name (string-append name "-" version "-checkout")) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32 "0ma2cl677l7s0n5sffh66cy9lxp5wycm50f121g8rx85p95vkgwv"))))
"10djsq5vlnkilv436gnmh4irpk49v29pa69r6xiryg32xmvn909j"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (home-page "https://pbil.univ-lyon1.fr/bpp-doc/bpp-core/html/index.html")
`(#:parallel-build? #f))
(home-page "http://biopp.univ-montp2.fr")
(synopsis "C++ libraries for Bioinformatics") (synopsis "C++ libraries for Bioinformatics")
(description (description
"Bio++ is a set of C++ libraries for Bioinformatics, including sequence "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
@ -2247,140 +2241,158 @@ analysis, phylogenetics, molecular evolution and population genetics. It is
Object Oriented and is designed to be both easy to use and computer efficient. 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 Bio++ intends to help programmers to write computer expensive programs, by
providing them a set of re-usable tools.") providing them a set of re-usable tools.")
(license license:cecill-c)))) (license license:cecill-c)))
(define-public bpp-phyl (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 (package
(name "bpp-phyl") (name "bpp-phyl")
(version (string-append "2.2.0-1." (string-take commit 7))) (version "2.4.1")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "http://biopp.univ-montp2.fr/git/bpp-phyl") (url "https://github.com/BioPP/bpp-phyl")
(commit commit))) (commit (string-append "v" version))))
(file-name (string-append name "-" version "-checkout")) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1ssjgchzwj3iai26kyly7gwkdv8sk59nqhkb1wpap3sf5m6kyllh")))) "192zks6wyk903n06c2lbsscdhkjnfwms8p7jblsmk3lvjhdipb20"))))
(build-system cmake-build-system) (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 (inputs
(list bpp-core bpp-seq)) (list bpp-core bpp-seq))
(home-page "http://biopp.univ-montp2.fr") (home-page "https://pbil.univ-lyon1.fr/bpp-doc/bpp-phyl/html/")
(synopsis "Bio++ phylogenetic Library") (synopsis "Bio++ phylogenetic library")
(description (description
"Bio++ is a set of C++ libraries for Bioinformatics, including sequence "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
analysis, phylogenetics, molecular evolution and population genetics. This analysis, phylogenetics, molecular evolution and population genetics. This
library provides phylogenetics-related modules.") 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 (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 (package
(name "bpp-popgen") (name "bpp-popgen")
(version (string-append "2.2.0-1." (string-take commit 7))) (version "2.4.1")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "http://biopp.univ-montp2.fr/git/bpp-popgen") (url "https://github.com/BioPP/bpp-popgen")
(commit commit))) (commit (string-append "v" version))))
(file-name (string-append name "-" version "-checkout")) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0yn82dzn1n5629nzja68xfrhi655709rjanyryb36vzkmymy6dw5")))) "0bz0fhrq3dri6a0hvfc3zlvrns8mrzzlnicw5pyfa812gc1qwfvh"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:parallel-build? #f (list #:tests? #f)) ; There are no tests.
#:tests? #f)) ; There are no tests.
(inputs (inputs
(list bpp-core bpp-seq)) (list bpp-core bpp-seq))
(home-page "http://biopp.univ-montp2.fr") (home-page "https://pbil.univ-lyon1.fr/bpp-doc/bpp-popgen/html/")
(synopsis "Bio++ population genetics library") (synopsis "Bio++ population genetics library")
(description (description
"Bio++ is a set of C++ libraries for Bioinformatics, including sequence "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
analysis, phylogenetics, molecular evolution and population genetics. This analysis, phylogenetics, molecular evolution and population genetics. This
library provides population genetics-related modules.") library provides population genetics-related modules.")
(license license:cecill-c)))) (license license:cecill-c)))
(define-public bpp-seq (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 (package
(name "bpp-seq") (name "bpp-seq")
(version (string-append "2.2.0-1." (string-take commit 7))) (version "2.4.1")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "http://biopp.univ-montp2.fr/git/bpp-seq") (url "https://github.com/BioPP/bpp-seq")
(commit commit))) (commit (string-append "v" version))))
(file-name (string-append name "-" version "-checkout")) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32 "1mc09g8jswzsa4wgrfv59jxn15ys3q8s0227p1j838wkphlwn2qk"))))
"1nys5jq7jqvdg40d91wsmj3q2yzy4276cp7sp44n67p468f27zf2"))))
(build-system cmake-build-system) (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 (inputs
(list bpp-core)) (list bpp-core))
(home-page "http://biopp.univ-montp2.fr") (home-page "https://pbil.univ-lyon1.fr/bpp-doc/bpp-seq/html/")
(synopsis "Bio++ sequence library") (synopsis "Bio++ sequence library")
(description (description
"Bio++ is a set of C++ libraries for Bioinformatics, including sequence "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
analysis, phylogenetics, molecular evolution and population genetics. This analysis, phylogenetics, molecular evolution and population genetics. This
library provides sequence-related modules.") library provides sequence-related modules.")
(license license:cecill-c)))) (license license:cecill-c)))
(define-public bppsuite (define-public bpp-seq-omics
;; 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 (package
(name "bppsuite") (name "bpp-seq-omics")
(version (string-append "2.2.0-1." (string-take commit 7))) (version "2.4.1")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "http://biopp.univ-montp2.fr/git/bppsuite") (url "https://github.com/BioPP/bpp-seq-omics")
(commit commit))) (commit (string-append "v" version))))
(file-name (string-append name "-" version "-checkout")) (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
(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 (sha256
(base32 (base32
"1y87pxvw0jxjizhq2dr9g2r91md45k1p9ih2sl1yy1y3p934l2kb")))) "1wdwcgczqbc3m116vakvi0129wm3acln3cfc7ivqnalwvi6lrpds"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:parallel-build? #f (list #:tests? #f)) ; There are no tests.
#:tests? #f)) ; There are no tests.
(native-inputs (native-inputs
(list groff man-db texinfo)) (list groff man-db texinfo))
(inputs (inputs
`(("bpp-core" ,bpp-core) (list bpp-core bpp-seq bpp-phyl bpp-popgen))
("bpp-seq" ,bpp-seq) (home-page "https://github.com/BioPP")
("bpp-phyl" ,bpp-phyl)
("bpp-phyl" ,bpp-popgen)))
(home-page "http://biopp.univ-montp2.fr")
(synopsis "Bioinformatics tools written with the Bio++ libraries") (synopsis "Bioinformatics tools written with the Bio++ libraries")
(description (description
"Bio++ is a set of C++ libraries for Bioinformatics, including sequence "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
analysis, phylogenetics, molecular evolution and population genetics. This analysis, phylogenetics, molecular evolution and population genetics. This
package provides command line tools using the Bio++ library.") package provides command line tools using the Bio++ library.")
(license license:cecill-c)))) (license license:cecill-c)))
(define-public blast+ (define-public blast+
(package (package
@ -6021,6 +6033,43 @@ resolution of binding sites through combining the information of both
sequencing tag position and orientation.") sequencing tag position and orientation.")
(license license:bsd-3))) (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 (define-public mafft
(package (package
(name "mafft") (name "mafft")

View file

@ -125,6 +125,7 @@
;;; Copyright © 2022 Demis Balbach <db@minikn.xyz> ;;; Copyright © 2022 Demis Balbach <db@minikn.xyz>
;;; Copyright © 2020, 2021, 2022, 2023 Andrew Tropin <andrew@trop.in> ;;; Copyright © 2020, 2021, 2022, 2023 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2023 Dominik Delgado Steuter <d@delgado.nrw> ;;; Copyright © 2023 Dominik Delgado Steuter <d@delgado.nrw>
;;; Copyright © 2023 Juliana Sims <juli@incana.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -2935,14 +2936,14 @@ incrementally confined in Isearch manner.")
(define emacs-emms-print-metadata (define emacs-emms-print-metadata
(package (package
(name "emacs-emms-print-metadata") (name "emacs-emms-print-metadata")
(version "14") (version "15")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/" (uri (string-append "https://elpa.gnu.org/packages/"
"emms-" version ".tar")) "emms-" version ".tar"))
(sha256 (sha256
(base32 "0525vmi397q604z8i35zld3c4fkwbvxwir5lf4f1ji1bbvkzqavc")))) (base32 "0kd9qx93cgcxyqsnbp95xx414s08rd5bb35aif3c7qyab5w05yi6"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list (list
@ -10714,10 +10715,10 @@ them easier to distinguish from other, less important buffers.")
(license license:expat))) (license license:expat)))
(define-public emacs-embark (define-public emacs-embark
(let ((commit "63013c2d3ef4dccc95167218ccbf4f401e489c3e")) ;version bump (let ((commit "c914efe881df2bc6a2bd35cc7ee975d3e9d4a418")) ;version bump
(package (package
(name "emacs-embark") (name "emacs-embark")
(version "0.21.1") (version "0.22.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -10725,7 +10726,7 @@ them easier to distinguish from other, less important buffers.")
(url "https://github.com/oantolin/embark") (url "https://github.com/oantolin/embark")
(commit commit))) (commit commit)))
(sha256 (sha256
(base32 "14qp46wa1xgmb09jyk9cadj0b3m7bwspqnprk3zbfc6gw1r53235")) (base32 "1l288w27wav0r71hprqi74r77042d1fx3p1zmi05vl6z6230h48b"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
@ -13151,7 +13152,7 @@ with Elfeed.")
(define-public emacs-elfeed-score (define-public emacs-elfeed-score
(package (package
(name "emacs-elfeed-score") (name "emacs-elfeed-score")
(version "1.2.4") (version "1.2.5")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -13160,8 +13161,20 @@ with Elfeed.")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0d1yh4wv81n5mnrzdi88z0vbs94m7j3q20r5fc1wk35r4hrl3xqw")))) (base32 "0slbmmcsf5pqbiq3nmna7wx9jvfgdgjp272qdqvmrv99jdj92cq6"))))
(build-system emacs-build-system) (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 (propagated-inputs
(list emacs-elfeed)) (list emacs-elfeed))
(home-page "https://github.com/sp1ff/elfeed-score") (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 (define-public emacs-buttercup
(package (package
(name "emacs-buttercup") (name "emacs-buttercup")
(version "1.30") (version "1.31")
(source (source
(origin (origin
(method git-fetch) (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)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1zr1jlfwr8yp9168yvkrhif1mr1r40fr1j1v1iv11ryn2zjcm9yn")))) "1rvc9r6swb74lhzd877jidkkf2cxl5v4zz302j2imqhsbk844qzh"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
(list (list
@ -32599,7 +32612,7 @@ contributed packages to Telega.")))
(define-public emacs-doom-modeline (define-public emacs-doom-modeline
(package (package
(name "emacs-doom-modeline") (name "emacs-doom-modeline")
(version "3.3.2") (version "3.4.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -32607,7 +32620,7 @@ contributed packages to Telega.")))
(url "https://github.com/seagle0128/doom-modeline") (url "https://github.com/seagle0128/doom-modeline")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(sha256 (sha256
(base32 "1v24hiqs4zbq613vanixgng9cx697di63jpafpmjlsripjfvk1qp")) (base32 "1z5cqn33v7sjihs05ycz1yzi5wcg90yn3cy09qj9g5g8pjs8qdki"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
@ -33712,7 +33725,7 @@ launching other commands/applications from within Emacs, similar to the
(define-public emacs-no-littering (define-public emacs-no-littering
(package (package
(name "emacs-no-littering") (name "emacs-no-littering")
(version "1.2.7") (version "1.3.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -33721,8 +33734,10 @@ launching other commands/applications from within Emacs, similar to the
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1grc5fk7ng4d6i8fwfpm3cb2b19s9sbdjbdn8ybchk7cj45kkl24")))) (base32 "1vkypj2mm428kmawxnyaqg3v5xpcs5hkbmyvjkib8ib02psshxd7"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs
(list emacs-compat))
(home-page "https://github.com/emacscollective/no-littering") (home-page "https://github.com/emacscollective/no-littering")
(synopsis "Help keep @file{~/.emacs.d/} clean") (synopsis "Help keep @file{~/.emacs.d/} clean")
(description "The default paths used to store configuration files and (description "The default paths used to store configuration files and
@ -36017,6 +36032,22 @@ audio volume via amixer.")
Fennel code within Emacs.") Fennel code within Emacs.")
(license license:gpl3+)))) (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 (define-public emacs-org-modern
(package (package
(name "emacs-org-modern") (name "emacs-org-modern")

View file

@ -984,7 +984,7 @@ Emacs).")
(define-public kicad (define-public kicad
(package (package
(name "kicad") (name "kicad")
(version "7.0.1") (version "7.0.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -992,7 +992,7 @@ Emacs).")
(commit version))) (commit version)))
(sha256 (sha256
(base32 (base32
"021safxvyq9qzs08jy3jvpazmhvix4kyl05s9y9hwmyzdmdl2smn")) "0san7pjgvd8niwrki722qb6y46r71rlyspqp43pmkiz55dmz52zx"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
@ -1092,7 +1092,7 @@ electrical diagrams), gerbview (viewing Gerber files) and others.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1cy9w10wzdjm9z9vzv88ija6l3pp894hwcgz5jggjrnyazhpklvj")))) "1sh970sjvgzrwwjbkgg3ikzka5dfdq66hvkcxfx2dnp7hv0hidc2"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:configure-flags (list "-DBUILD_FORMATS=html") `(#: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)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"14c5gci13m30xv0cmic5jxsmfx9lq3fnd8hyq3mmgkrw7443zy30")))) "0aah92rb8yx00z0xwx9z7xn5rrw4cc3z35gr7c0bnb49hiak01jc"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f)) ; no tests exist `(#:tests? #f)) ; no tests exist
@ -1155,7 +1155,7 @@ libraries.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0k0z40wmaq665hjxb6kp1yl3v7clxz49r6ki0chyphsxv1cnixmy")))) "1qrdznfd4a6kzwd4aaijkpyjy0xnrmi66isq9z52652a8s6ja48v"))))
(synopsis "Official KiCad footprint libraries") (synopsis "Official KiCad footprint libraries")
(description "This package contains the 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)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0nzi7ijfb3rjm98kaa9va2mkh0nfzpq4vfhxkq8j18qhx24h5c8v")))) "1nkk4325jh89vh52ykfnf9pz1k3jk5017gz6r2cia2v4b3jadi31"))))
(synopsis "Official KiCad 3D model libraries") (synopsis "Official KiCad 3D model libraries")
(description "This package contains the 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)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"02i279269mhq7wjhb1yqk90820ncssxl9n7b20qr2r4fmm7jpvxv")))) "1qi20mrsfn4fxmr1fyphmil2i9p2nzmwk5rlfchc5aq2194nj3lq"))))
(synopsis "Official KiCad project and worksheet templates") (synopsis "Official KiCad project and worksheet templates")
(description "This package contains the official KiCad project and (description "This package contains the official KiCad project and
worksheet templates."))) worksheet templates.")))

View file

@ -3706,6 +3706,57 @@ enemies in different game modes such as space ball, death match, team death
match, cannon keep, and grave-itation pit.") match, cannon keep, and grave-itation pit.")
(license license:gpl3+)))) (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 (define glkterm
(package (package
(name "glkterm") (name "glkterm")

View file

@ -11706,7 +11706,7 @@ advanced image management tool")
(define-public terminator (define-public terminator
(package (package
(name "terminator") (name "terminator")
(version "2.1.2") (version "2.1.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -11714,7 +11714,7 @@ advanced image management tool")
"releases/download/v" version "/" "releases/download/v" version "/"
name "-" version ".tar.gz")) name "-" version ".tar.gz"))
(sha256 (sha256
(base32 "10shpn8id7z43d4dpx16x76mgxnk4mr976j5cg28icjiiaidyfc2")))) (base32 "1rbarn9pq3g8k13clxiy0d62g0fxhkg5bcxw2h626wkb7lzr9s8a"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("gettext" ,gettext-minimal) `(("gettext" ,gettext-minimal)
@ -12984,7 +12984,7 @@ profiler via Sysprof, debugging support, and more.")
(define-public komikku (define-public komikku
(package (package
(name "komikku") (name "komikku")
(version "1.15.0") (version "1.17.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -12994,7 +12994,7 @@ profiler via Sysprof, debugging support, and more.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0yd4274qxpv0wg1lm6daip2nd135qq07pfl5wrm2rqlzs5mvqs3n")))) "0snb6vdgb3l2mw0kr0yb4zjpq46w56rpi554vqn5ks6qwywvs58g"))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments (arguments
(list (list

View file

@ -733,7 +733,7 @@ you send to a FIFO file.")
(define-public guile-dsv (define-public guile-dsv
(package (package
(name "guile-dsv") (name "guile-dsv")
(version "0.5.1") (version "0.5.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -742,10 +742,10 @@ you send to a FIFO file.")
(file-name (string-append name "-" version "-checkout")) (file-name (string-append name "-" version "-checkout"))
(sha256 (sha256
(base32 (base32
"10wssilin4qphdmmqmms20bp3cy007kh22l1g45wfka0minmhkgs")))) "056wab749fyabklp4srai72dwzihlm6hkcdy1da7d4gh8iqsyqpi"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list autoconf automake pkg-config texinfo)) (list autoconf automake pkg-config texinfo help2man))
(inputs (list guile-3.0)) (inputs (list guile-3.0))
(propagated-inputs (list guile-lib)) (propagated-inputs (list guile-lib))
(arguments (arguments

View file

@ -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 ;; The current "stable" kernels. That is, the most recently released major
;; versions that are still supported upstream. ;; 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-public linux-libre-6.2-gnu-revision "gnu")
(define deblob-scripts-6.2 (define deblob-scripts-6.2
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
linux-libre-6.2-version linux-libre-6.2-version
linux-libre-6.2-gnu-revision linux-libre-6.2-gnu-revision
(base32 "15wrksnimwb099qgqc631rp8dgv5b61l6s5kknk23frqdwkp4shp") (base32 "15wrksnimwb099qgqc631rp8dgv5b61l6s5kknk23frqdwkp4shp")
(base32 "0ir5vvbdh6dly5ld8mfp7285g8k88w5bb32hj4wmgyqsbfqc6rf2"))) (base32 "0560xc8l2z79qk2dnv15i0m4igw9mq2ymv2a40nw2z3lcqygcs5x")))
(define-public linux-libre-6.2-pristine-source (define-public linux-libre-6.2-pristine-source
(let ((version linux-libre-6.2-version) (let ((version linux-libre-6.2-version)
(hash (base32 "0iyx03z58pv1d5nrryjx94k3nxwyvm4b3bim6nawg1qbws26f8qd"))) (hash (base32 "1j6cn1ifmcqfqvxp9h10y8yfxi918yzl3yjbf96gmb9p4ysldqf7")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-6.2))) 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-public linux-libre-6.1-gnu-revision "gnu")
(define deblob-scripts-6.1 (define deblob-scripts-6.1
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -510,7 +510,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0cchdhjra74zanyk14brv2l2dvxpg8dn58rn477lgfb44mcnhq33"))) (base32 "0cchdhjra74zanyk14brv2l2dvxpg8dn58rn477lgfb44mcnhq33")))
(define-public linux-libre-6.1-pristine-source (define-public linux-libre-6.1-pristine-source
(let ((version linux-libre-6.1-version) (let ((version linux-libre-6.1-version)
(hash (base32 "0135aj8asplpxqr48hwdmwynx8n8hzhdgh55yl8r0n1kivisgrma"))) (hash (base32 "149h95r5msvqah868zd36y92ls9h41cr1rb5vzinl20mxdn46wnb")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-6.1))) 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. ;; The "longterm" kernels — the older releases with long-term upstream support.
;; Here are the support timelines: ;; Here are the support timelines:
;; <https://www.kernel.org/category/releases.html> ;; <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-public linux-libre-5.15-gnu-revision "gnu")
(define deblob-scripts-5.15 (define deblob-scripts-5.15
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -528,12 +528,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "03hwhwbcicwyx5i30d6m715kwgrxz4h21xhk55wnawlk8zhx3r35"))) (base32 "03hwhwbcicwyx5i30d6m715kwgrxz4h21xhk55wnawlk8zhx3r35")))
(define-public linux-libre-5.15-pristine-source (define-public linux-libre-5.15-pristine-source
(let ((version linux-libre-5.15-version) (let ((version linux-libre-5.15-version)
(hash (base32 "1a5gqpxmzls5mp4a0cw10ldrps4pvbn19nzfri91ys25j1v0wdqr"))) (hash (base32 "1fj38bvsyr9g89qr8pcjrp0kaq44g301x46gyjibq73gljnnkswb")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-5.15))) 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-public linux-libre-5.10-gnu-revision "gnu1")
(define deblob-scripts-5.10 (define deblob-scripts-5.10
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -543,12 +543,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1g4vabfswxzf9ahxc06k2ffksf84kcr2csx4m5kx680w0jqqnk80"))) (base32 "1g4vabfswxzf9ahxc06k2ffksf84kcr2csx4m5kx680w0jqqnk80")))
(define-public linux-libre-5.10-pristine-source (define-public linux-libre-5.10-pristine-source
(let ((version linux-libre-5.10-version) (let ((version linux-libre-5.10-version)
(hash (base32 "0waml6svj07b7f8yb1kzrflqlf61x4kcqbgsr372s484m3z628lz"))) (hash (base32 "1bx8wws9gvksg1c1af29nm03jjz2f5a5sq9hzc00ymjyf7isvkqs")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-5.10))) 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-public linux-libre-5.4-gnu-revision "gnu1")
(define deblob-scripts-5.4 (define deblob-scripts-5.4
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -558,12 +558,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1d6as1yk9svysh07hdybs8glvn8s9f8gwlbjl7f9m920pdam2r60"))) (base32 "1d6as1yk9svysh07hdybs8glvn8s9f8gwlbjl7f9m920pdam2r60")))
(define-public linux-libre-5.4-pristine-source (define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version) (let ((version linux-libre-5.4-version)
(hash (base32 "0ihf0rqhx7dav3k3igk29962sscb1xyniy2gx8chyllprr0z126w"))) (hash (base32 "0z7api3qcjrd6w7fva7k6fj4zx17mg5ibn28a6qbgy27dyny1h7z")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-5.4))) 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-public linux-libre-4.19-gnu-revision "gnu1")
(define deblob-scripts-4.19 (define deblob-scripts-4.19
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -573,12 +573,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1q0fgpbdwc21wj9wnjjb49dp84ch6ymd5na3iaabadwjs2nmb6bd"))) (base32 "1q0fgpbdwc21wj9wnjjb49dp84ch6ymd5na3iaabadwjs2nmb6bd")))
(define-public linux-libre-4.19-pristine-source (define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version) (let ((version linux-libre-4.19-version)
(hash (base32 "1xmg9p3ky75n5q894f522s8nwcmbd5c15nmjr0n96m6xzag3kd7w"))) (hash (base32 "13nwzsh3h634450k37pxdca5j8vr3qswx7k79bs2999xp2js9pf0")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-4.19))) 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-public linux-libre-4.14-gnu-revision "gnu1")
(define deblob-scripts-4.14 (define deblob-scripts-4.14
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -588,7 +588,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1ccggm19nl7pdcxmsm08fkqy8phz8rqfmww5ypizibdmnrmpn2v9"))) (base32 "1ccggm19nl7pdcxmsm08fkqy8phz8rqfmww5ypizibdmnrmpn2v9")))
(define-public linux-libre-4.14-pristine-source (define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version) (let ((version linux-libre-4.14-version)
(hash (base32 "03bwrnm7z8jxxn681dd5jffrj76l14ngkcccfgbg1p4a0471q436"))) (hash (base32 "0k2j856niappvkp9m1wxr87xvbwdzdy03mbcj827kmpjd9gdca76")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-4.14))) deblob-scripts-4.14)))

View file

@ -39,7 +39,6 @@
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages admin) #:use-module (gnu packages admin)
#:use-module (gnu packages base)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages documentation) #:use-module (gnu packages documentation)
#:use-module (gnu packages compton) #:use-module (gnu packages compton)
@ -321,8 +320,7 @@ LXQt and the system it's running on.")
libqtxdg libqtxdg
polkit-qt polkit-qt
qtsvg-5 qtsvg-5
qtx11extras qtx11extras))
tzdata))
(native-inputs (native-inputs
(list lxqt-build-tools qttools-5)) (list lxqt-build-tools qttools-5))
(arguments (arguments
@ -330,14 +328,12 @@ LXQt and the system it's running on.")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'patch-source (add-after 'unpack 'patch-source
(lambda* (#:key inputs #:allow-other-keys) (lambda _
(substitute* '("lxqt-admin-user/CMakeLists.txt" (substitute* '("lxqt-admin-user/CMakeLists.txt"
"lxqt-admin-time/CMakeLists.txt") "lxqt-admin-time/CMakeLists.txt")
(("DESTINATION \"\\$\\{POLKITQT-1_POLICY_FILES_INSTALL_DIR\\}") (("DESTINATION \"\\$\\{POLKITQT-1_POLICY_FILES_INSTALL_DIR\\}")
"DESTINATION \"share/polkit-1/actions")) "DESTINATION \"share/polkit-1/actions"))
(substitute* '("lxqt-admin-time/timeadmindialog.cpp") #t)))))
(("/usr/share/zoneinfo/zone.tab")
(search-input-file inputs "share/zoneinfo/zone.tab"))))))))
(home-page "https://lxqt-project.org") (home-page "https://lxqt-project.org")
(synopsis "LXQt system administration tool") (synopsis "LXQt system administration tool")
(description "lxqt-admin is providing two GUI tools to adjust settings of (description "lxqt-admin is providing two GUI tools to adjust settings of

View file

@ -561,7 +561,7 @@ album-experience.")
(define-public mpdevil (define-public mpdevil
(package (package
(name "mpdevil") (name "mpdevil")
(version "1.10.0") (version "1.10.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -569,7 +569,7 @@ album-experience.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "04dzxyv176w5sm4j85j7fbh42nk9wsyz5s005kj9cjwsrzrnxlbk")))) (base32 "0ghmw3xiz567qd1iv1ggkv6zl1jb5d40mz27npk2zvlpikmqpc6c"))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments (arguments
(list (list

View file

@ -1756,14 +1756,14 @@ of the same name.")
(define-public wireshark (define-public wireshark
(package (package
(name "wireshark") (name "wireshark")
(version "4.0.4") (version "4.0.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.wireshark.org/download/src/wireshark-" (uri (string-append "https://www.wireshark.org/download/src/wireshark-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 "0jz76ra86gy7r4wwb174lggnl5y29nn68l7ydw1kj1phcijrz854")))) (base32 "0abb36n3li5w22f435k31mvk0sy0f41sxz4fqrl4ksjzjd377dki"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
(list (list

View file

@ -500,6 +500,35 @@ obtain information about the CPU being used: supported instruction set,
processor name, cache information, and topology information.") processor name, cache information, and topology information.")
(license license:bsd-2)))) (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 (define-public psimd
;; There is currently no tag in this repo. ;; There is currently no tag in this repo.
(let ((commit "072586a71b55b7f8c584153d223e95687148a900") (let ((commit "072586a71b55b7f8c584153d223e95687148a900")

View file

@ -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 \

View file

@ -56,14 +56,14 @@
(define-public a2ps (define-public a2ps
(package (package
(name "a2ps") (name "a2ps")
(version "4.15.3") (version "4.15.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/a2ps/a2ps-" (uri (string-append "mirror://gnu/a2ps/a2ps-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1izpmbk3i66g8cn1bd3kdpk72vxn5ggy329xjvag5jsdxgh823nh")) "1mvd41xvcy8vk91nndzifasq600kzlswl1379bhnpn49pa23y1ja"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; Remove timestamp from the installed 'README' file. ;; Remove timestamp from the installed 'README' file.

View file

@ -1258,6 +1258,7 @@ Password-Authenticated Key Exchange algorithm.")
(list python-automat (list python-automat
python-idna python-idna
python-incremental python-incremental
python-pyopenssl
python-service-identity python-service-identity
python-twisted python-twisted
python-zope-interface)) python-zope-interface))

View file

@ -22,6 +22,7 @@
;;; Copyright © 2022 zamfofex <zamfofex@twdb.moe> ;;; Copyright © 2022 zamfofex <zamfofex@twdb.moe>
;;; Copyright © 2022 jgart <jgart@dismail.de> ;;; Copyright © 2022 jgart <jgart@dismail.de>
;;; Copyright © 2022 Andy Tai <atai@atai.org> ;;; Copyright © 2022 Andy Tai <atai@atai.org>
;;; Copyright © 2023 Eidvilas Markevičius <markeviciuseidvilas@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -173,7 +174,7 @@ based command language.")
(define-public kakoune (define-public kakoune
(package (package
(name "kakoune") (name "kakoune")
(version "2021.11.08") (version "2022.10.31")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -181,7 +182,7 @@ based command language.")
"releases/download/v" version "/" "releases/download/v" version "/"
"kakoune-" version ".tar.bz2")) "kakoune-" version ".tar.bz2"))
(sha256 (sha256
(base32 "1x5mvmpf0rgmr2xdw5wjn4hr6qd8yvj0zx588fi324x1knfqhc5a")))) (base32 "12z5wka649xycclbs94bfy2yyln2172dz0zycxsxr384r5i7ncgv"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:make-flags `(#:make-flags

View file

@ -213,7 +213,7 @@ features including, tables, builtin image display, bookmarks, SSL and more.")
(define-public luakit (define-public luakit
(package (package
(name "luakit") (name "luakit")
(version "2.3") (version "2.3.3")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -222,56 +222,48 @@ features including, tables, builtin image display, bookmarks, SSL and more.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1khbn7dpizkznnwkw7rcfhf72dnd1nazk7dwb4rkh9i97b53mf1y")))) "19z6idmjz6y7xmjpqgw65mdfi65lyvy06819dj5bb7rad63v5542"))))
(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))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(arguments (arguments
`(#:make-flags
(let ((out (assoc-ref %outputs "out")))
(list (list
"CC=gcc" #:tests? #false ;require un-packaged "luassert"
#:test-target "run-tests"
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
"LUA_BIN_NAME=lua" "LUA_BIN_NAME=lua"
"DEVELOPMENT_PATHS=0" "DEVELOPMENT_PATHS=0"
(string-append "PREFIX=" out) (string-append "PREFIX=" #$output)
(string-append "XDGPREFIX=" out "/etc/xdg"))) (string-append "XDGPREFIX=" #$output "/etc/xdg"))
#:phases #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-before 'build 'lfs-workaround (add-before 'build 'lfs-workaround
(lambda _ (lambda _
(setenv "LUA_CPATH" (setenv "LUA_CPATH"
(string-append (string-append #$(this-package-input "lua5.1-filesystem")
(assoc-ref %build-inputs "lua5.1-filesystem") "/lib/lua/5.1/?.so;;"))))
"/lib/lua/5.1/?.so;;"))
#t))
(add-before 'build 'set-version (add-before 'build 'set-version
(lambda _ (lambda _
(setenv "VERSION_FROM_GIT" ,(package-version this-package)) (setenv "VERSION_FROM_GIT" #$version)))
#t))
(delete 'configure) (delete 'configure)
(delete 'check)
(add-after 'install 'wrap (add-after 'install 'wrap
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda _
(let* ((luakit (assoc-ref outputs "out")) (wrap-program (string-append #$output "/bin/luakit")
(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 `("LUA_CPATH" prefix
(,(string-append lua5.1-filesystem (,(string-append #$(this-package-input "lua5.1-filesystem")
"/lib/lua/5.1/?.so;;"))) "/lib/lua/5.1/?.so;;")))
`("XDG_CONFIG_DIRS" prefix `("XDG_CONFIG_DIRS" prefix
(,(string-append luakit "/etc/xdg/")))) (,(string-append #$output "/etc/xdg/")))))))))
#t)))))) (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") (synopsis "Fast, lightweight, and simple browser based on WebKit")
(description "Luakit is a fast, lightweight, and simple to use (description "Luakit is a fast, lightweight, and simple to use
micro-browser framework extensible by Lua using the WebKit web content engine micro-browser framework extensible by Lua using the WebKit web content engine

View file

@ -748,7 +748,7 @@ desktop environment.")
(define-public icewm (define-public icewm
(package (package
(name "icewm") (name "icewm")
(version "3.3.2") (version "3.3.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -756,7 +756,7 @@ desktop environment.")
version "/icewm-" version ".tar.lz")) version "/icewm-" version ".tar.lz"))
(sha256 (sha256
(base32 (base32
"1mp1xl64sin3d4nkh19qmnic1c9qcwf9v7mkzji76pg3mzd823jg")))) "0wyg7lk65kf03brhzrbk158sr8d5cqny5qcyrwypnzpp0chcff71"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (list pkg-config)) (native-inputs (list pkg-config))
(inputs (list fontconfig (inputs (list fontconfig
@ -1884,7 +1884,7 @@ core/thread.")
(define-public wlr-randr (define-public wlr-randr
(package (package
(name "wlr-randr") (name "wlr-randr")
(version "0.2.0") (version "0.3.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -1893,7 +1893,7 @@ core/thread.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0d44r4schknfc3g09y0kjbhl62zkynv6hi1z4zqc9ic5fhav3r15")))) (base32 "0cj24fb6s7n8nphvhrp8ldrivjdcrjw64i5v9rsfb6z80q4qg548"))))
(build-system meson-build-system) (build-system meson-build-system)
(inputs (list wayland)) (inputs (list wayland))
(native-inputs (list pkg-config)) (native-inputs (list pkg-config))

View file

@ -15,7 +15,7 @@
;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2021 qblade <qblade@protonmail.com> ;;; Copyright © 2021 qblade <qblade@protonmail.com>
;;; Copyright © 2021 Hui Lu <luhuins@163.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 © 2021 muradm <mail@muradm.net>
;;; Copyright © 2022 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2022 Justin Veilleux <terramorpha@cock.li> ;;; Copyright © 2022 Justin Veilleux <terramorpha@cock.li>
@ -1428,7 +1428,11 @@ the tty to run, among other things."
(list (shepherd-service (list (shepherd-service
(documentation "Run libc's name service cache daemon (nscd).") (documentation "Run libc's name service cache daemon (nscd).")
(provision '(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 (start #~(make-forkexec-constructor
(list #$nscd "-f" #$nscd.conf "--foreground") (list #$nscd "-f" #$nscd.conf "--foreground")
@ -1497,9 +1501,12 @@ given @var{config}---an @code{<nscd-configuration>} object. @xref{Name
Service Switch}, for an example." Service Switch}, for an example."
(service nscd-service-type config)) (service nscd-service-type config))
;; Snippet adapted from the GNU inetutils manual. ;;; Snippet adapted from the GNU inetutils manual.
(define %default-syslog.conf (define %default-syslog.conf
(plain-file "syslog.conf" " (plain-file "syslog.conf" "\
# See info '(inetutils) syslogd invocation' for the documentation
# of the syslogd configuration syntax.
# Log all error messages, authentication messages of # Log all error messages, authentication messages of
# level notice or higher and anything of level err or # level notice or higher and anything of level err or
# higher to the console. # higher to the console.
@ -1518,7 +1525,9 @@ Service Switch}, for an example."
# The authpriv file has restricted access. # The authpriv file has restricted access.
# 'fsync' the file after each line (hence the lack of a leading dash). # 'fsync' the file after each line (hence the lack of a leading dash).
authpriv.* /var/log/secure # 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. # Log all the mail messages in one place.
mail.* -/var/log/maillog mail.* -/var/log/maillog
@ -1532,10 +1541,16 @@ Service Switch}, for an example."
(config-file syslog-configuration-config-file (config-file syslog-configuration-config-file
(default %default-syslog.conf))) (default %default-syslog.conf)))
(define syslog-service-type ;;; Note: a static file name is used for syslog.conf so that the reload action
(shepherd-service-type ;;; work as intended.
'syslog (define syslog.conf "/etc/syslog.conf")
(lambda (config)
(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 (define config-file
(syslog-configuration-config-file config)) (syslog-configuration-config-file config))
@ -1543,10 +1558,24 @@ Service Switch}, for an example."
(documentation "Run the syslog daemon (syslogd).") (documentation "Run the syslog daemon (syslogd).")
(provision '(syslogd)) (provision '(syslogd))
(requirement '(user-processes)) (requirement '(user-processes))
(actions (list (shepherd-configuration-action config-file))) (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 (start #~(let ((spawn (make-forkexec-constructor
(list #$(syslog-configuration-syslogd config) (list #$(syslog-configuration-syslogd config)
"--rcfile" #$config-file) #$(string-append "--rcfile=" syslog.conf))
#:pid-file "/var/run/syslog.pid"))) #:pid-file "/var/run/syslog.pid")))
(lambda () (lambda ()
;; Set the umask such that file permissions are #o640. ;; Set the umask such that file permissions are #o640.
@ -1555,7 +1584,14 @@ Service Switch}, for an example."
(umask mask) (umask mask)
pid)))) pid))))
(stop #~(make-kill-destructor)))) (stop #~(make-kill-destructor))))
(syslog-configuration)
(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 (description "Run the syslog daemon, @command{syslogd}, which is
responsible for logging system messages."))) responsible for logging system messages.")))

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; 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 © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net> ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
@ -167,7 +167,8 @@ host all all ::1/128 md5"))
(define-record-type* <postgresql-configuration> (define-record-type* <postgresql-configuration>
postgresql-configuration make-postgresql-configuration postgresql-configuration make-postgresql-configuration
postgresql-configuration? postgresql-configuration?
(postgresql postgresql-configuration-postgresql) ;file-like (postgresql postgresql-configuration-postgresql ;file-like
(default postgresql-10))
(port postgresql-configuration-port (port postgresql-configuration-port
(default 5432)) (default 5432))
(locale postgresql-configuration-locale (locale postgresql-configuration-locale
@ -308,11 +309,12 @@ host all all ::1/128 md5"))
(call-with-input-file #$pid-file read)) (call-with-input-file #$pid-file read))
(_ #t)))))) (_ #t))))))
(list (shepherd-service (list (shepherd-service
(provision '(postgres)) (provision '(postgres postgresql))
(documentation "Run the PostgreSQL daemon.") (documentation "Run the PostgreSQL daemon.")
(requirement '(user-processes loopback syslogd)) (requirement '(user-processes loopback syslogd))
(modules `((ice-9 match) (modules `((ice-9 match)
,@%default-modules)) ,@%default-modules))
(actions (list (shepherd-configuration-action config-file)))
(start (action "start")) (start (action "start"))
(stop (action "stop")))))))) (stop (action "stop"))))))))
@ -329,8 +331,7 @@ host all all ::1/128 md5"))
(service-extension (service-extension
profile-service-type profile-service-type
(compose list postgresql-configuration-postgresql)))) (compose list postgresql-configuration-postgresql))))
(default-value (postgresql-configuration (default-value (postgresql-configuration))
(postgresql postgresql-10)))
(description "Run the PostgreSQL database server."))) (description "Run the PostgreSQL database server.")))
(define-deprecated (postgresql-service #:key (postgresql postgresql) (define-deprecated (postgresql-service #:key (postgresql postgresql)
@ -595,6 +596,8 @@ port=" (number->string port) "
(provision '(mysql)) (provision '(mysql))
(requirement '(user-processes)) (requirement '(user-processes))
(documentation "Run the MySQL server.") (documentation "Run the MySQL server.")
(actions (list (shepherd-configuration-action
(mysql-configuration-file config))))
(start (let ((mysql (mysql-configuration-mysql config)) (start (let ((mysql (mysql-configuration-mysql config))
(extra-env (mysql-configuration-extra-environment config)) (extra-env (mysql-configuration-extra-environment config))
(my.cnf (mysql-configuration-file config))) (my.cnf (mysql-configuration-file config)))
@ -752,6 +755,7 @@ port=" (number->string port) "
(provision '(redis)) (provision '(redis))
(documentation "Run the Redis daemon.") (documentation "Run the Redis daemon.")
(requirement '(user-processes syslogd)) (requirement '(user-processes syslogd))
(actions (list (shepherd-configuration-action config-file)))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
'(#$(file-append redis "/bin/redis-server") '(#$(file-append redis "/bin/redis-server")
#$config-file) #$config-file)

View file

@ -622,6 +622,7 @@
(documentation "Run the Knot DNS daemon.") (documentation "Run the Knot DNS daemon.")
(provision '(knot dns)) (provision '(knot dns))
(requirement '(networking)) (requirement '(networking))
(actions (list (shepherd-configuration-action config-file)))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list (string-append #$knot "/sbin/knotd") (list (string-append #$knot "/sbin/knotd")
"-c" #$config-file))) "-c" #$config-file)))

View file

@ -282,14 +282,10 @@ returns a shepherd <service> object."
`(primitive-load ,file)) `(primitive-load ,file))
files)))) files))))
(define (load-services/safe files) (define load-services/safe
"This is like 'load-services', but make sure only the subset of FILES that ;; Deprecated. It used to behave differently before service replacements
can be safely reloaded is actually reloaded." ;; were a thing.
(eval-there `(let ((services (map primitive-load ',files))) load-services)
;; 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* (start-service name #:optional (arguments '())) (define* (start-service name #:optional (arguments '()))
(invoke-action name 'start arguments (invoke-action name 'start arguments

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com> ;;; 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. ;;; This file is part of GNU Guix.
;;; ;;;
@ -225,13 +225,15 @@ please use 'modules' instead~%")))
(pid-file (rsync-configuration-pid-file config)) (pid-file (rsync-configuration-pid-file config))
(port-number (rsync-configuration-port-number config)) (port-number (rsync-configuration-port-number config))
(user (rsync-configuration-user 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 (list (shepherd-service
(provision '(rsync)) (provision '(rsync))
(documentation "Run rsync daemon.") (documentation "Run rsync daemon.")
(actions (list (shepherd-configuration-action config-file)))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list (string-append #$rsync "/bin/rsync") (list (string-append #$rsync "/bin/rsync")
"--config" #$(rsync-config-file config) "--config" #$config-file
"--daemon") "--daemon")
#:pid-file #$pid-file #:pid-file #$pid-file
#:user #$user #:user #$user

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; 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 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
@ -88,22 +88,19 @@
(with-extensions extensions (with-extensions extensions
gexp))) gexp)))
(define (marionette-shepherd-service config) (define (marionette-program device imported-modules extensions)
"Return the Shepherd service for the marionette REPL" "Return the program that runs the marionette REPL on DEVICE. Ensure
(match config IMPORTED-MODULES and EXTENSIONS are accessible from the REPL."
(($ <marionette-configuration> device imported-modules extensions (define code
requirement) (with-imported-modules-and-extensions
(list (shepherd-service `((guix build utils)
(provision '(marionette)) (guix build syscalls)
,@imported-modules)
extensions
#~(begin
(use-modules (ice-9 match)
(ice-9 binary-ports))
;; Always depend on UDEV so that DEVICE is available.
(requirement `(udev ,@requirement))
(modules '((ice-9 match)
(srfi srfi-9 gnu)))
(start
(with-imported-modules-and-extensions imported-modules extensions
#~(lambda ()
(define (self-quoting? x) (define (self-quoting? x)
(letrec-syntax ((one-of (syntax-rules () (letrec-syntax ((one-of (syntax-rules ()
((_) #f) ((_) #f)
@ -113,11 +110,6 @@
(one-of symbol? string? keyword? pair? null? array? (one-of symbol? string? keyword? pair? null? array?
number? boolean? char?))) number? boolean? char?)))
(match (primitive-fork)
(0
(dynamic-wind
(const #t)
(lambda ()
(let ((repl (open-file #$device "r+0")) (let ((repl (open-file #$device "r+0"))
(console (open-file "/dev/console" "r+0"))) (console (open-file "/dev/console" "r+0")))
;; Redirect output to the console. ;; Redirect output to the console.
@ -147,11 +139,27 @@
(stack-ref (make-stack #t) 1) (stack-ref (make-stack #t) 1)
key args) key args)
(write #f repl))))) (write #f repl)))))
(loop)))) (loop))))))
(lambda ()
(primitive-exit 1)))) (program-file "marionette-repl.scm" code))
(pid
pid))))) (define (marionette-shepherd-service config)
"Return the Shepherd service for the marionette REPL"
(match config
(($ <marionette-configuration> device imported-modules extensions
requirement)
(list (shepherd-service
(provision '(marionette))
;; Always depend on UDEV so that DEVICE is available.
(requirement `(udev ,@requirement))
(modules '((ice-9 match)
(srfi srfi-9 gnu)))
(start #~(make-forkexec-constructor
(list #$(marionette-program device
imported-modules
extensions))))
(stop #~(make-kill-destructor))))))) (stop #~(make-kill-destructor)))))))
(define marionette-service-type (define marionette-service-type

View file

@ -148,7 +148,7 @@ Otherwise assume that there is no password for root."
(marionette-eval (marionette-eval
`(begin `(begin
(use-modules (gnu services herd)) (use-modules (gnu services herd))
(start 'user-processes) (start-service 'user-processes)
((@@ (gnu services herd) eval-there) ((@@ (gnu services herd) eval-there)
'(let ((result (read (current-input-port)))) '(let ((result (read (current-input-port))))
(if (eof-object? result) (if (eof-object? result)

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; 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 © 2017, 2019, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
@ -316,7 +316,7 @@ such as for RAID systems."
;; Wait for tty1. ;; Wait for tty1.
(marionette-eval '(begin (marionette-eval '(begin
(use-modules (gnu services herd)) (use-modules (gnu services herd))
(start 'term-tty1)) (start-service 'term-tty1))
marionette) marionette)
(when #$(->bool script) (when #$(->bool script)

View file

@ -1234,11 +1234,14 @@ input list."
"Return all source origins associated with PACKAGE; including origins in "Return all source origins associated with PACKAGE; including origins in
PACKAGE's inputs and patches." PACKAGE's inputs and patches."
(define (expand source) (define (expand source)
(cons (cons source
source
(filter origin? (origin-patches source)))) (filter origin? (origin-patches source))))
`(,@(or (and=> (package-source package) expand) '()) `(,@(match (package-source package)
((? origin? origin)
(expand origin))
(_
'()))
,@(filter-map (match-lambda ,@(filter-map (match-lambda
((_ (? origin? orig) _ ...) ((_ (? origin? orig) _ ...)
orig) orig)

View file

@ -44,7 +44,7 @@ cmp "$archive" "$archive_alt"
# Check the exit value upon import. # Check the exit value upon import.
guix archive --import < "$archive" guix archive --import < "$archive"
! guix archive something-that-does-not-exist guix archive --export something-that-does-not-exist && false
# This one must not be listed as missing. # This one must not be listed as missing.
guix build guile-bootstrap > "$archive" guix build guile-bootstrap > "$archive"
@ -61,7 +61,7 @@ cmp "$archive" "$archive_alt"
# This is not a valid store file name, so an error. # This is not a valid store file name, so an error.
echo something invalid > "$archive" echo something invalid > "$archive"
! guix archive --missing < "$archive" guix archive --missing < "$archive" && false
# Check '--extract'. # Check '--extract'.
guile -c "(use-modules (guix serialization)) guile -c "(use-modules (guix serialization))
@ -77,4 +77,6 @@ guix archive -t < "$archive" | grep "^D /share/guile"
guix archive -t < "$archive" | grep "^x /bin/guile" guix archive -t < "$archive" | grep "^x /bin/guile"
guix archive -t < "$archive" | grep "^r /share/guile.*/boot-9\.scm" guix archive -t < "$archive" | grep "^r /share/guile.*/boot-9\.scm"
! echo foo | guix archive --authorize echo foo | guix archive --authorize && false
exit 0

View file

@ -58,4 +58,6 @@ guix gc -R "$v0_1_0_drv" | grep guile-gcrypt-9e3eacd
test "$v0_1_0_drv" != "$latest_drv" test "$v0_1_0_drv" != "$latest_drv"
test "$v0_1_0_drv" != "$orig_drv" test "$v0_1_0_drv" != "$orig_drv"
! guix build guix --with-commit=guile-gcrypt=000 -d guix build guix --with-commit=guile-gcrypt=000 -d && false
exit 0

View file

@ -25,7 +25,7 @@
guix build --version guix build --version
# Should fail. # Should fail.
! guix build -e + guix build -e + && false
# Source-less packages are accepted; they just return nothing. # Source-less packages are accepted; they just return nothing.
guix build -e '(@ (gnu packages bootstrap) %bootstrap-glibc)' -S guix build -e '(@ (gnu packages bootstrap) %bootstrap-glibc)' -S
@ -92,7 +92,7 @@ cat > "$module_dir/foo.scm" <<EOF
(use-modules (guix)) (use-modules (guix))
) ;extra closing paren ) ;extra closing paren
EOF EOF
! guix build -f "$module_dir/foo.scm" 2> "$module_dir/stderr" guix build -f "$module_dir/foo.scm" 2> "$module_dir/stderr" && false
grep "read error" "$module_dir/stderr" grep "read error" "$module_dir/stderr"
rm "$module_dir/stderr" "$module_dir/foo.scm" rm "$module_dir/stderr" "$module_dir/foo.scm"
@ -199,7 +199,7 @@ cat > "$module_dir/foo.scm" <<EOF
(inputs (quasiquote (("sed" ,sed)))))) ;unbound variable (inputs (quasiquote (("sed" ,sed)))))) ;unbound variable
EOF EOF
! guix build package-with-something-wrong -n guix build package-with-something-wrong -n && false
guix build package-with-something-wrong -n 2> "$module_dir/err" || true guix build package-with-something-wrong -n 2> "$module_dir/err" || true
grep "unbound" "$module_dir/err" # actual error grep "unbound" "$module_dir/err" # actual error
grep "forget.*(gnu packages base)" "$module_dir/err" # hint grep "forget.*(gnu packages base)" "$module_dir/err" # hint
@ -240,7 +240,7 @@ cat > "$module_dir/cc-user.scm" <<EOF
(define-module (cc-user)) (define-module (cc-user))
(make-thing 42) (make-thing 42)
EOF EOF
! guix build -f "$module_dir/cc-user.scm" -n 2> "$module_dir/err" guix build -f "$module_dir/cc-user.scm" -n 2> "$module_dir/err" && false
cat "$module_dir/err" cat "$module_dir/err"
grep "make-thing.*unbound" "$module_dir/err" # actual error grep "make-thing.*unbound" "$module_dir/err" # actual error
grep "forget.*(bb-public)" "$module_dir/err" # hint grep "forget.*(bb-public)" "$module_dir/err" # hint
@ -270,7 +270,7 @@ test "`guix build --log-file guile-bootstrap`" = "$log"
test "`guix build --log-file $out`" = "$log" test "`guix build --log-file $out`" = "$log"
# Should fail because the name/version combination could not be found. # Should fail because the name/version combination could not be found.
! guix build hello-0.0.1 -n guix build hello-0.0.1 -n && false
# Keep a symlink to the result, registered as a root. # Keep a symlink to the result, registered as a root.
result="t-result-$$" result="t-result-$$"
@ -279,7 +279,7 @@ guix build -r "$result" \
test -x "$result/bin/guile" test -x "$result/bin/guile"
# Should fail, because $result already exists. # Should fail, because $result already exists.
! guix build -r "$result" -e '(@@ (gnu packages bootstrap) %bootstrap-guile)' guix build -r "$result" -e '(@@ (gnu packages bootstrap) %bootstrap-guile)' && false
rm -f "$result" rm -f "$result"
@ -323,7 +323,7 @@ drv2=`guix build hello -d --with-input=gcc=gcc-toolchain`
test "$drv1" != "$drv2" test "$drv1" != "$drv2"
guix gc -R "$drv2" | grep `guix build -d gcc-toolchain` guix gc -R "$drv2" | grep `guix build -d gcc-toolchain`
! guix build guile --with-input=libunistring=something-really-silly guix build guile --with-input=libunistring=something-really-silly && false
# Deprecated/superseded packages. # Deprecated/superseded packages.
test "`guix build superseded -d`" = "`guix build bar -d`" test "`guix build superseded -d`" = "`guix build bar -d`"
@ -331,8 +331,8 @@ test "`guix build superseded -d`" = "`guix build bar -d`"
# Parsing package names and versions. # Parsing package names and versions.
guix build -n time # PASS guix build -n time # PASS
guix build -n time@1.9 # PASS, version found guix build -n time@1.9 # PASS, version found
! guix build -n time@3.2 # FAIL, version not found guix build -n time@3.2 && false # FAIL, version not found
! guix build -n something-that-will-never-exist # FAIL guix build -n something-that-will-never-exist && false # FAIL
# Invoking a monadic procedure. # Invoking a monadic procedure.
guix build -e "(begin guix build -e "(begin
@ -404,4 +404,6 @@ export GUIX_BUILD_OPTIONS
guix build emacs guix build emacs
GUIX_BUILD_OPTIONS="--something-completely-crazy" GUIX_BUILD_OPTIONS="--something-completely-crazy"
! guix build emacs guix build emacs && false
exit 0

View file

@ -224,7 +224,7 @@ daemon_pid=$!
GUIX_DAEMON_SOCKET="guix://$tcp_socket" GUIX_DAEMON_SOCKET="guix://$tcp_socket"
export GUIX_DAEMON_SOCKET export GUIX_DAEMON_SOCKET
! guix gc guix gc && false
unset GUIX_DAEMON_SOCKET unset GUIX_DAEMON_SOCKET
kill "$daemon_pid" kill "$daemon_pid"

View file

@ -23,11 +23,11 @@
guix download --version guix download --version
# Make sure it fails here. # Make sure it fails here.
! guix download http://does.not/exist guix download http://does.not/exist && false
! guix download unknown://some/where; guix download unknown://some/where && false
! guix download /does-not-exist guix download /does-not-exist && false
# This one should succeed. # This one should succeed.
guix download "file://$abs_top_srcdir/README" guix download "file://$abs_top_srcdir/README"
@ -43,4 +43,6 @@ GUIX_DAEMON_SOCKET="/nowhere" guix download -o "$output" \
cmp "$output" "$abs_top_srcdir/README" cmp "$output" "$abs_top_srcdir/README"
# This one should fail. # This one should fail.
! guix download "file:///does-not-exist" "file://$abs_top_srcdir/README" guix download "file:///does-not-exist" "file://$abs_top_srcdir/README" && false
exit 0

View file

@ -260,16 +260,15 @@ guix shell --bootstrap guile-bootstrap --container \
/usr/bin/guile --version /usr/bin/guile --version
# A dangling symlink causes the command to fail. # A dangling symlink causes the command to fail.
! guix shell --bootstrap -CS /usr/bin/python=bin/python guile-bootstrap -- exit guix shell --bootstrap -CS /usr/bin/python=bin/python guile-bootstrap -- exit && false
# An invalid symlink spec causes the command to fail. # An invalid symlink spec causes the command to fail.
! guix shell --bootstrap -CS bin/guile=/usr/bin/guile guile-bootstrap -- exit guix shell --bootstrap -CS bin/guile=/usr/bin/guile guile-bootstrap -- exit && false
# Check whether '--nesting' works. # Check whether '--nesting' works.
guix build hello -d guix build hello -d
env="$(type -P pre-inst-env)" env="$(type -P pre-inst-env)"
if guix shell -C -D guix -- "$env" guix build hello -d # cannot work guix shell -C -D guix -- "$env" guix build hello -d && false # cannot work
then false; else true; fi
hello_drv="$(guix build hello -d)" hello_drv="$(guix build hello -d)"
hello_drv_nested="$(cd "$(dirname env)" && guix shell --bootstrap -CW -D guix -- "$env" guix build hello -d)" hello_drv_nested="$(cd "$(dirname env)" && guix shell --bootstrap -CW -D guix -- "$env" guix build hello -d)"
test "$hello_drv" = "$hello_drv_nested" test "$hello_drv" = "$hello_drv_nested"

View file

@ -60,7 +60,7 @@ guix environment --bootstrap --ad-hoc guile-bootstrap --pure \
grep '^PATH=' "$tmpdir/a" grep '^PATH=' "$tmpdir/a"
grep '^GUIX_TEST_ABC=' "$tmpdir/a" grep '^GUIX_TEST_ABC=' "$tmpdir/a"
grep '^GUIX_TEST_DEF=' "$tmpdir/a" grep '^GUIX_TEST_DEF=' "$tmpdir/a"
! grep '^GUIX_TEST_XYZ=' "$tmpdir/a" grep '^GUIX_TEST_XYZ=' "$tmpdir/a" && false
# Make sure the exit value is preserved. # Make sure the exit value is preserved.
if guix environment --bootstrap --ad-hoc guile-bootstrap --pure \ if guix environment --bootstrap --ad-hoc guile-bootstrap --pure \
@ -207,7 +207,7 @@ then
done done
# 'make-boot0' itself must not be listed. # 'make-boot0' itself must not be listed.
! guix gc --references "$profile" | grep make-boot0 guix gc --references "$profile" | grep make-boot0 && false
# Make sure that the shell spawned with '--exec' sees the same environment # Make sure that the shell spawned with '--exec' sees the same environment
# as returned by '--search-paths'. # as returned by '--search-paths'.
@ -224,7 +224,7 @@ then
test "x$make_boot0_debug" != "x" test "x$make_boot0_debug" != "x"
# Make sure the "debug" output is not listed. # Make sure the "debug" output is not listed.
! guix gc --references "$profile" | grep "$make_boot0_debug" guix gc --references "$profile" | grep "$make_boot0_debug" && false
# Compute the build environment for the initial GNU Make, but add in the # Compute the build environment for the initial GNU Make, but add in the
# bootstrap Guile as an ad-hoc addition. # bootstrap Guile as an ad-hoc addition.

View file

@ -36,11 +36,11 @@ unset out
# For some operations, passing extra arguments is an error. # For some operations, passing extra arguments is an error.
for option in "" "-C 500M" "--verify" "--optimize" "--list-roots" for option in "" "-C 500M" "--verify" "--optimize" "--list-roots"
do do
! guix gc $option whatever guix gc $option whatever && false
done done
# This should fail. # This should fail.
! guix gc --verify=foo guix gc --verify=foo && false
# Check the references of a .drv. # Check the references of a .drv.
drv="`guix build guile-bootstrap -d`" drv="`guix build guile-bootstrap -d`"
@ -51,7 +51,7 @@ guix gc --references "$drv" | grep -e -bash
guix gc --references "$out" guix gc --references "$out"
guix gc --references "$out/bin/guile" guix gc --references "$out/bin/guile"
! guix gc --references /dev/null; guix gc --references /dev/null && false
# Check derivers. # Check derivers.
guix gc --derivers "$out" | grep "$drv" guix gc --derivers "$out" | grep "$drv"
@ -62,7 +62,7 @@ test -f "$drv"
guix gc --list-dead | grep "$drv" guix gc --list-dead | grep "$drv"
guix gc --delete "$drv" guix gc --delete "$drv"
! test -f "$drv" test ! -f "$drv"
# Add a .drv, register it as a root. # Add a .drv, register it as a root.
drv="`guix build --root=guix-gc-root lsh -d`" drv="`guix build --root=guix-gc-root lsh -d`"
@ -71,18 +71,18 @@ test -f "$drv" && test -L guix-gc-root
guix gc --list-roots | grep "$PWD/guix-gc-root" guix gc --list-roots | grep "$PWD/guix-gc-root"
guix gc --list-live | grep "$drv" guix gc --list-live | grep "$drv"
! guix gc --delete "$drv"; guix gc --delete "$drv" && false
rm guix-gc-root rm guix-gc-root
guix gc --list-dead | grep "$drv" guix gc --list-dead | grep "$drv"
guix gc --delete "$drv" guix gc --delete "$drv"
! test -f "$drv" test ! -f "$drv"
# Try a random collection. # Try a random collection.
guix gc -C 1KiB guix gc -C 1KiB
# Check trivial error cases. # Check trivial error cases.
! guix gc --delete /dev/null; guix gc --delete /dev/null && false
# Bug #19757 # Bug #19757
out="`guix build guile-bootstrap`" out="`guix build guile-bootstrap`"
@ -90,14 +90,14 @@ test -d "$out"
guix gc --delete "$out" guix gc --delete "$out"
! test -d "$out" test ! -d "$out"
out="`guix build guile-bootstrap`" out="`guix build guile-bootstrap`"
test -d "$out" test -d "$out"
guix gc --delete "$out/" guix gc --delete "$out/"
! test -d "$out" test ! -d "$out"
out="`guix build guile-bootstrap`" out="`guix build guile-bootstrap`"
test -d "$out" test -d "$out"

View file

@ -35,9 +35,9 @@ intro_signer="BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"
cache_key="test-$$" cache_key="test-$$"
# This must fail because the end commit is not a descendant of $intro_commit. # This must fail because the end commit is not a descendant of $intro_commit.
! guix git authenticate "$intro_commit" "$intro_signer" \ guix git authenticate "$intro_commit" "$intro_signer" \
--cache-key="$cache_key" --stats \ --cache-key="$cache_key" --stats \
--end=9549f0283a78fe36f2d4ff2a04ef8ad6b0c02604 --end=9549f0283a78fe36f2d4ff2a04ef8ad6b0c02604 && false
# The v1.2.0 commit is a descendant of $intro_commit and it satisfies the # The v1.2.0 commit is a descendant of $intro_commit and it satisfies the
# authorization invariant. # authorization invariant.
@ -59,8 +59,8 @@ guix git authenticate "$intro_commit" "$intro_signer" \
--end="$v1_0_0_commit" --end="$v1_0_0_commit"
# This should fail because these commits lack '.guix-authorizations'. # This should fail because these commits lack '.guix-authorizations'.
! guix git authenticate "$v1_0_0_commit" "$v1_0_0_signer" \ guix git authenticate "$v1_0_0_commit" "$v1_0_0_signer" \
--cache-key="$cache_key" --end="$v1_0_1_commit" --cache-key="$cache_key" --end="$v1_0_1_commit" && false
# This should work thanks to '--historical-authorizations'. # This should work thanks to '--historical-authorizations'.
guix git authenticate "$v1_0_0_commit" "$v1_0_0_signer" \ guix git authenticate "$v1_0_0_commit" "$v1_0_0_signer" \

View file

@ -59,7 +59,7 @@ guix graph -t references guile-bootstrap | grep guile-bootstrap
guix graph -e '(@ (gnu packages bootstrap) %bootstrap-guile)' \ guix graph -e '(@ (gnu packages bootstrap) %bootstrap-guile)' \
| grep guile-bootstrap | grep guile-bootstrap
! guix graph -e + guix graph -e + && false
# Try passing store file names. # Try passing store file names.
@ -76,13 +76,13 @@ cmp "$tmpfile1" "$tmpfile2"
# Try package transformation options. # Try package transformation options.
guix graph git | grep 'label = "openssl' guix graph git | grep 'label = "openssl'
guix graph git --with-input=openssl=libressl | grep 'label = "libressl' guix graph git --with-input=openssl=libressl | grep 'label = "libressl'
! guix graph git --with-input=openssl=libressl | grep 'label = "openssl' guix graph git --with-input=openssl=libressl | grep 'label = "openssl' && false
# Try --load-path # Try --load-path
guix graph -L $module_dir dummy | grep 'label = "dummy' guix graph -L $module_dir dummy | grep 'label = "dummy'
# Displaying shortest paths (or lack thereof). # Displaying shortest paths (or lack thereof).
! guix graph --path emacs vim guix graph --path emacs vim && false
path="\ path="\
emacs emacs

View file

@ -38,12 +38,12 @@ test `guix hash -H sha1 -f base64 /dev/null` = "2jmj7l5rSw0yVb/vlWAYkK/YBwk="
test "`guix hash /dev/null "$abs_top_srcdir/README"`" = "`guix hash /dev/null ; guix hash "$abs_top_srcdir/README"`" test "`guix hash /dev/null "$abs_top_srcdir/README"`" = "`guix hash /dev/null ; guix hash "$abs_top_srcdir/README"`"
# Zero files. # Zero files.
! guix hash guix hash && false
# idem as `cat /dev/null | git hash-object --stdin` # idem as `cat /dev/null | git hash-object --stdin`
test `guix hash -S git -H sha1 -f hex /dev/null` = e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 test `guix hash -S git -H sha1 -f hex /dev/null` = e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
! guix hash -H abcd1234 /dev/null guix hash -H abcd1234 /dev/null && false
mkdir "$tmpdir" mkdir "$tmpdir"
echo -n executable > "$tmpdir/exe" echo -n executable > "$tmpdir/exe"
@ -61,11 +61,11 @@ test `guix hash -r "$tmpdir" 2>/dev/null` = 10k1lw41wyrjf9mxydi0is5nkpynlsvgslin
test `guix hash -r "$tmpdir" -H sha512 2>/dev/null` = 301ra58c2vahczzxiyfin41mpyb0ljh4dh9zn3ijvwviaw1j40sfzw5skh9x945da88n3785ggifzig7acd6k72h0mpsc20m1f66m9n test `guix hash -r "$tmpdir" -H sha512 2>/dev/null` = 301ra58c2vahczzxiyfin41mpyb0ljh4dh9zn3ijvwviaw1j40sfzw5skh9x945da88n3785ggifzig7acd6k72h0mpsc20m1f66m9n
# Without '-r', this should fail. # Without '-r', this should fail.
! guix hash "$tmpdir" guix hash "$tmpdir" && false
# This should fail because /dev/null is a character device, which # This should fail because /dev/null is a character device, which
# the archive format doesn't support. # the archive format doesn't support.
! guix hash -S nar /dev/null guix hash -S nar /dev/null && false
# Adding a .git directory # Adding a .git directory
mkdir "$tmpdir/.git" mkdir "$tmpdir/.git"
@ -80,5 +80,6 @@ test `guix hash -S nar $tmpdir -x` = 10k1lw41wyrjf9mxydi0is5nkpynlsvgslinics4ppi
test `guix hash -S git $tmpdir -x` = 1m9yxz99g7askm88h6hzyv4g2bfv57rp5wvwp3iq5ypsplq1xkkk test `guix hash -S git $tmpdir -x` = 1m9yxz99g7askm88h6hzyv4g2bfv57rp5wvwp3iq5ypsplq1xkkk
# Without '-r', this should fail. # Without '-r', this should fail.
! guix hash "$tmpdir" guix hash "$tmpdir" && false
exit 0

View file

@ -109,7 +109,7 @@ EOF
guix home extension-graph "home.scm" | grep 'label = "home"' guix home extension-graph "home.scm" | grep 'label = "home"'
# There are no Shepherd services so the one below must fail. # There are no Shepherd services so the one below must fail.
! guix home shepherd-graph "home.scm" guix home shepherd-graph "home.scm" && false
if container_supported if container_supported
then then
@ -118,17 +118,17 @@ EOF
# TODO: Make container independent from external environment variables. # TODO: Make container independent from external environment variables.
SHELL=bash SHELL=bash
guix home container home.scm -- true guix home container home.scm -- true
! guix home container home.scm -- false guix home container home.scm -- false && false
test "$(guix home container home.scm -- echo '$HOME')" = "$HOME" test "$(guix home container home.scm -- echo '$HOME')" = "$HOME"
guix home container home.scm -- cat '~/.config/test.conf' | \ guix home container home.scm -- cat '~/.config/test.conf' | \
grep "the content of" grep "the content of"
guix home container home.scm -- test -h '~/.bashrc' guix home container home.scm -- test -h '~/.bashrc'
test "$(guix home container home.scm -- id -u)" = 1000 test "$(guix home container home.scm -- id -u)" = 1000
! guix home container home.scm -- test -f '$HOME/sample/home.scm' guix home container home.scm -- test -f '$HOME/sample/home.scm' && false
guix home container home.scm --expose="$PWD=$HOME/sample" -- \ guix home container home.scm --expose="$PWD=$HOME/sample" -- \
test -f '$HOME/sample/home.scm' test -f '$HOME/sample/home.scm'
! guix home container home.scm --expose="$PWD=$HOME/sample" -- \ guix home container home.scm --expose="$PWD=$HOME/sample" -- \
rm -v '$HOME/sample/home.scm' rm -v '$HOME/sample/home.scm' && false
else else
echo "'guix home container' test SKIPPED" >&2 echo "'guix home container' test SKIPPED" >&2
fi fi
@ -206,8 +206,8 @@ EOF
# the NEW content of bashrc-test-config.sh" # the NEW content of bashrc-test-config.sh"
# This file must have been removed and not backed up. # This file must have been removed and not backed up.
! test -e "$HOME/.config/test.conf" test ! -e "$HOME/.config/test.conf"
! test -e "$HOME"/*guix-home*backup/.config/test.conf test ! -e "$HOME"/*guix-home*backup/.config/test.conf
test "$(cat "$(configuration_file)")" == "$(cat home.scm)" test "$(cat "$(configuration_file)")" == "$(cat home.scm)"
test "$(canonical_file_name)" == "$(readlink "${HOME}/.guix-home")" test "$(canonical_file_name)" == "$(readlink "${HOME}/.guix-home")"

View file

@ -92,7 +92,7 @@ then
grep 'GNU sed' "$test_directory/output" grep 'GNU sed' "$test_directory/output"
# Check whether the exit code is preserved. # Check whether the exit code is preserved.
! run_without_store "$test_directory/Bin/sed" --does-not-exist run_without_store "$test_directory/Bin/sed" --does-not-exist && false
chmod -Rf +w "$test_directory"; rm -rf "$test_directory"/* chmod -Rf +w "$test_directory"; rm -rf "$test_directory"/*
else else

View file

@ -37,7 +37,7 @@ test_directory="`mktemp -d`"
trap 'chmod -Rf +w "$test_directory"; rm -rf "$test_directory"' EXIT trap 'chmod -Rf +w "$test_directory"; rm -rf "$test_directory"' EXIT
# Reject unsuppoted packages. # Reject unsuppoted packages.
! guix pack intelmetool -s armhf-linux -n guix pack intelmetool -s armhf-linux -n && false
# Compute the derivation of a pack. # Compute the derivation of a pack.
drv="`guix pack coreutils -d --no-grafts`" drv="`guix pack coreutils -d --no-grafts`"
@ -48,7 +48,7 @@ guix gc -R "$drv" | grep "`guix build coreutils -d --no-grafts`"
drv="`guix pack idutils -d --no-grafts --target=arm-linux-gnueabihf`" drv="`guix pack idutils -d --no-grafts --target=arm-linux-gnueabihf`"
guix gc -R "$drv" | \ guix gc -R "$drv" | \
grep "`guix build idutils --target=arm-linux-gnueabihf -d --no-grafts`" grep "`guix build idutils --target=arm-linux-gnueabihf -d --no-grafts`"
! guix gc -R "$drv" | grep "`guix build idutils -d --no-grafts`" guix gc -R "$drv" | grep "`guix build idutils -d --no-grafts`" && false
# Build a tarball with no compression. # Build a tarball with no compression.
guix pack --compression=none --bootstrap guile-bootstrap guix pack --compression=none --bootstrap guile-bootstrap

View file

@ -36,7 +36,7 @@ guix install --bootstrap guile-bootstrap -p "$profile"
test -x "$profile/bin/guile" test -x "$profile/bin/guile"
# Make sure '-r' isn't passed as-is to 'guix package'. # Make sure '-r' isn't passed as-is to 'guix package'.
! guix install -r guile-bootstrap -p "$profile" --bootstrap guix install -r guile-bootstrap -p "$profile" --bootstrap && false
test -x "$profile/bin/guile" test -x "$profile/bin/guile"
# Use a package transformation option and make sure it's recorded. # Use a package transformation option and make sure it's recorded.
@ -48,16 +48,16 @@ grep "libreoffice=inkscape" "$profile/manifest"
guix upgrade --version guix upgrade --version
guix upgrade -n guix upgrade -n
guix upgrade gui.e -n guix upgrade gui.e -n
! guix upgrade foo bar -n; guix upgrade foo bar -n
guix remove --version guix remove --version
guix remove --bootstrap guile-bootstrap -p "$profile" guix remove --bootstrap guile-bootstrap -p "$profile"
! test -x "$profile/bin/guile" test ! -x "$profile/bin/guile"
test `guix package -p "$profile" -I | wc -l` -eq 0 test `guix package -p "$profile" -I | wc -l` -eq 0
! guix remove -p "$profile" this-is-not-installed --bootstrap guix remove -p "$profile" this-is-not-installed --bootstrap && false
! guix remove -i guile-bootstrap -p "$profile" --bootstrap guix remove -i guile-bootstrap -p "$profile" --bootstrap && false
guix search '\<board\>' game | grep '^name: gnubg' guix search '\<board\>' game | grep '^name: gnubg'
@ -66,7 +66,7 @@ guix show guile
guix show python@3 | grep "^name: python" guix show python@3 | grep "^name: python"
# "python@2" exists but is deprecated; make sure it doesn't show up. # "python@2" exists but is deprecated; make sure it doesn't show up.
! guix show python@2 guix show python@2 && false
# Specifying multiple packages. # Specifying multiple packages.
output="`guix show sed grep | grep ^name:`" output="`guix show sed grep | grep ^name:`"

View file

@ -58,7 +58,7 @@ trap 'rm -f "$profile" "$profile_alt" "$profile.lock" "$profile_alt.lock" "$prof
guix package --bootstrap -p "$profile" -i guile-bootstrap guix package --bootstrap -p "$profile" -i guile-bootstrap
test -L "$profile" && test -L "$profile-1-link" test -L "$profile" && test -L "$profile-1-link"
! test -f "$profile-2-link" test ! -f "$profile-2-link"
test -f "$profile/bin/guile" test -f "$profile/bin/guile"
boot_make="(@ (guix tests) gnu-make-for-tests)" boot_make="(@ (guix tests) gnu-make-for-tests)"
@ -98,13 +98,13 @@ test "`guix package -p "$profile" -l | cut -f1 | grep guile | head -n1`" \
= " guile-bootstrap" = " guile-bootstrap"
# Exit with 1 when a generation does not exist. # Exit with 1 when a generation does not exist.
! guix package -p "$profile" --list-generations=42 guix package -p "$profile" --list-generations=42 && false
! guix package -p "$profile" --switch-generation=99 guix package -p "$profile" --switch-generation=99 && false
# Remove a package. # Remove a package.
guix package --bootstrap -p "$profile" -r "guile-bootstrap" guix package --bootstrap -p "$profile" -r "guile-bootstrap"
test -L "$profile-3-link" test -L "$profile-3-link"
test -f "$profile/bin/make" && ! test -f "$profile/bin/guile" test -f "$profile/bin/make" && test ! -f "$profile/bin/guile"
# Roll back. # Roll back.
guix package --roll-back -p "$profile" guix package --roll-back -p "$profile"
@ -112,7 +112,7 @@ test "`readlink_base "$profile"`" = "$profile-2-link"
test -x "$profile/bin/guile" && test -x "$profile/bin/make" test -x "$profile/bin/guile" && test -x "$profile/bin/make"
guix package --roll-back -p "$profile" guix package --roll-back -p "$profile"
test "`readlink_base "$profile"`" = "$profile-1-link" test "`readlink_base "$profile"`" = "$profile-1-link"
test -x "$profile/bin/guile" && ! test -x "$profile/bin/make" test -x "$profile/bin/guile" && test ! -x "$profile/bin/make"
# Switch to the rolled generation and switch back. # Switch to the rolled generation and switch back.
guix package -p "$profile" --switch-generation=2 guix package -p "$profile" --switch-generation=2
@ -124,8 +124,8 @@ test "`readlink_base "$profile"`" = "$profile-1-link"
for i in `seq 1 3` for i in `seq 1 3`
do do
guix package --bootstrap --roll-back -p "$profile" guix package --bootstrap --roll-back -p "$profile"
! test -f "$profile/bin" test ! -f "$profile/bin"
! test -f "$profile/lib" test ! -f "$profile/lib"
test "`readlink_base "$profile"`" = "$profile-0-link" test "`readlink_base "$profile"`" = "$profile-0-link"
done done
@ -135,7 +135,7 @@ test -z "`guix package -p "$profile" -l 0`"
# Reinstall after roll-back to the empty profile. # Reinstall after roll-back to the empty profile.
guix package --bootstrap -p "$profile" -e "$boot_make" guix package --bootstrap -p "$profile" -e "$boot_make"
test "`readlink_base "$profile"`" = "$profile-1-link" test "`readlink_base "$profile"`" = "$profile-1-link"
test -x "$profile/bin/guile" && ! test -x "$profile/bin/make" test -x "$profile/bin/guile" && test ! -x "$profile/bin/make"
# Check that the first generation is the current one. # Check that the first generation is the current one.
test "`guix package -p "$profile" -l 1 | cut -f3 | head -n1`" = "(current)" test "`guix package -p "$profile" -l 1 | cut -f3 | head -n1`" = "(current)"
@ -143,7 +143,7 @@ test "`guix package -p "$profile" -l 1 | cut -f3 | head -n1`" = "(current)"
# Roll-back to generation 0, and install---all at once. # Roll-back to generation 0, and install---all at once.
guix package --bootstrap -p "$profile" --roll-back -i guile-bootstrap guix package --bootstrap -p "$profile" --roll-back -i guile-bootstrap
test "`readlink_base "$profile"`" = "$profile-1-link" test "`readlink_base "$profile"`" = "$profile-1-link"
test -x "$profile/bin/guile" && ! test -x "$profile/bin/make" test -x "$profile/bin/guile" && test ! -x "$profile/bin/make"
# Install Make. # Install Make.
guix package --bootstrap -p "$profile" -e "$boot_make" guix package --bootstrap -p "$profile" -e "$boot_make"
@ -175,7 +175,7 @@ test -z "`guix package -p "$profile" -l 3`"
rm "$profile" rm "$profile"
guix package --bootstrap -p "$profile" -i guile-bootstrap guix package --bootstrap -p "$profile" -i guile-bootstrap
guix package --bootstrap -p "$profile_alt" -i gcc-bootstrap guix package --bootstrap -p "$profile_alt" -i gcc-bootstrap
! guix package -p "$profile" --search-paths | grep LIBRARY_PATH guix package -p "$profile" --search-paths | grep LIBRARY_PATH && false
guix package -p "$profile" -p "$profile_alt" --search-paths \ guix package -p "$profile" -p "$profile_alt" --search-paths \
| grep "LIBRARY_PATH.*$profile/lib.$profile_alt/lib" | grep "LIBRARY_PATH.*$profile/lib.$profile_alt/lib"
@ -234,4 +234,4 @@ guix package --bootstrap -e "$boot_make"
test -f "$HOME/.guix-profile/bin/make" test -f "$HOME/.guix-profile/bin/make"
guix package --bootstrap --roll-back guix package --bootstrap --roll-back
! test -f "$HOME/.guix-profile/bin/make" test ! -f "$HOME/.guix-profile/bin/make"

View file

@ -37,7 +37,7 @@ rm -f "$profile" "$tmpfile"
trap 'rm -f "$profile" "$profile.lock" "$profile-"[0-9]* "$tmpfile"; rm -rf "$module_dir" t-home-'"$$" EXIT trap 'rm -f "$profile" "$profile.lock" "$profile-"[0-9]* "$tmpfile"; rm -rf "$module_dir" t-home-'"$$" EXIT
# Use `-e' with a non-package expression. # Use `-e' with a non-package expression.
! guix package --bootstrap -e + guix package --bootstrap -e + && false
# Install a store item and make sure the version and output in the manifest # Install a store item and make sure the version and output in the manifest
# are correct. # are correct.
@ -57,23 +57,23 @@ guix gc --list-live | grep "`readlink "$profile-1-link"`"
# Installing the same package a second time does nothing. # Installing the same package a second time does nothing.
guix package --bootstrap -p "$profile" -i guile-bootstrap guix package --bootstrap -p "$profile" -i guile-bootstrap
test -L "$profile" && test -L "$profile-1-link" test -L "$profile" && test -L "$profile-1-link"
! test -f "$profile-2-link" test ! -f "$profile-2-link"
test -f "$profile/bin/guile" test -f "$profile/bin/guile"
# Unsupported packages cannot be installed. # Unsupported packages cannot be installed.
! guix package -e '(begin (use-modules (guix) (gnu packages base)) (package (inherit sed) (supported-systems (list))))' -n guix package -e '(begin (use-modules (guix) (gnu packages base)) (package (inherit sed) (supported-systems (list))))' -n && false
case $(uname -m) in case $(uname -m) in
x86_64|i[3456]86) x86_64|i[3456]86)
! guix package -i novena-eeprom -n guix package -i novena-eeprom -n && false
break;; break;;
*) *)
! guix package -i intelmetool -n guix package -i intelmetool -n && false
break;; break;;
esac esac
# Collisions are properly flagged (in this case, 'g-wrap' propagates # Collisions are properly flagged (in this case, 'g-wrap' propagates
# guile@2.2, which conflicts with guile@2.0.) # guile@2.2, which conflicts with guile@2.0.)
! guix package --bootstrap -n -p "$profile" -i g-wrap guile@2.0 guix package --bootstrap -n -p "$profile" -i g-wrap guile@2.0 && false
guix package --bootstrap -n -p "$profile" -i g-wrap guile@2.0 \ guix package --bootstrap -n -p "$profile" -i g-wrap guile@2.0 \
--allow-collisions --allow-collisions
@ -88,7 +88,7 @@ test "`guix package -p "$profile" --search-paths | wc -l`" = 1 # $PATH
type -P rm ) type -P rm )
# Exit with 1 when a generation does not exist. # Exit with 1 when a generation does not exist.
! guix package -p "$profile" --delete-generations=42 guix package -p "$profile" --delete-generations=42 && false
# Exit with 0 when trying to delete the zeroth generation. # Exit with 0 when trying to delete the zeroth generation.
guix package -p "$profile" --delete-generations=0 guix package -p "$profile" --delete-generations=0
@ -101,12 +101,12 @@ guix package --bootstrap -i "glibc:debug" -p "$profile" -n
# Make sure nonexistent outputs are reported. # Make sure nonexistent outputs are reported.
guix package --bootstrap -i "guile-bootstrap:out" -p "$profile" -n guix package --bootstrap -i "guile-bootstrap:out" -p "$profile" -n
! guix package --bootstrap -i "guile-bootstrap:does-not-exist" -p "$profile" -n guix package --bootstrap -i "guile-bootstrap:does-not-exist" -p "$profile" -n && false
! guix package --bootstrap -i "guile-bootstrap:does-not-exist" -p "$profile" guix package --bootstrap -i "guile-bootstrap:does-not-exist" -p "$profile" && false
# Make sure we get an error when trying to remove something that's not # Make sure we get an error when trying to remove something that's not
# installed. # installed.
! guix package --bootstrap -r something-not-installed -p "$profile" guix package --bootstrap -r something-not-installed -p "$profile" && false
# Check whether `--list-available' returns something sensible. # Check whether `--list-available' returns something sensible.
guix package -p "$profile" -A 'gui.*e' | grep guile guix package -p "$profile" -A 'gui.*e' | grep guile
@ -118,8 +118,8 @@ guix package --show=guile | grep "^name: guile"
guix package --show=texlive guix package --show=texlive
# Fail for non-existent packages or package/version pairs. # Fail for non-existent packages or package/version pairs.
! guix package --show=does-not-exist guix package --show=does-not-exist && false
! guix package --show=emacs@42 guix package --show=emacs@42 && false
# Search. # Search.
LC_MESSAGES=C LC_MESSAGES=C
@ -163,19 +163,19 @@ guix package --search="" > /dev/null
# There's no generation older than 12 months, so the following command should # There's no generation older than 12 months, so the following command should
# have no effect. # have no effect.
generation="`readlink_base "$profile"`" generation="`readlink_base "$profile"`"
! guix package -p "$profile" --delete-generations=12m guix package -p "$profile" --delete-generations=12m && false
test "`readlink_base "$profile"`" = "$generation" test "`readlink_base "$profile"`" = "$generation"
# The following command should not delete the current generation, even though # The following command should not delete the current generation, even though
# it matches the given pattern (see <http://bugs.gnu.org/19978>.) And since # it matches the given pattern (see <http://bugs.gnu.org/19978>.) And since
# there's nothing else to delete, it should just fail. # there's nothing else to delete, it should just fail.
guix package --list-generations -p "$profile" guix package --list-generations -p "$profile"
! guix package --bootstrap -p "$profile" --delete-generations=1.. guix package --bootstrap -p "$profile" --delete-generations=1.. && false
test "`readlink_base "$profile"`" = "$generation" test "`readlink_base "$profile"`" = "$generation"
# Make sure $profile is a GC root at this point. # Make sure $profile is a GC root at this point.
real_profile="`readlink -f "$profile"`" real_profile="`readlink -f "$profile"`"
! guix gc -d "$real_profile" guix gc -d "$real_profile" && false
test -d "$real_profile" test -d "$real_profile"
# Now, let's remove all the symlinks to $real_profile, and make sure # Now, let's remove all the symlinks to $real_profile, and make sure
@ -278,22 +278,22 @@ do
guix gc --list-live | grep "`readlink "$profile_link"`" guix gc --list-live | grep "`readlink "$profile_link"`"
guix package --bootstrap --roll-back guix package --bootstrap --roll-back
! test -f "$HOME/.guix-profile/bin" test ! -f "$HOME/.guix-profile/bin"
! test -f "$HOME/.guix-profile/lib" test ! -f "$HOME/.guix-profile/lib"
test "`readlink "$default_profile"`" = "`basename $default_profile-0-link`" test "`readlink "$default_profile"`" = "`basename $default_profile-0-link`"
done done
# Check whether '-p ~/.guix-profile' makes any difference. # Check whether '-p ~/.guix-profile' makes any difference.
# See <http://bugs.gnu.org/17939>. # See <http://bugs.gnu.org/17939>.
! test -e "$HOME/.guix-profile-0-link" test ! -e "$HOME/.guix-profile-0-link"
! test -e "$HOME/.guix-profile-1-link" test ! -e "$HOME/.guix-profile-1-link"
guix package --bootstrap -p "$HOME/.guix-profile" -i guile-bootstrap guix package --bootstrap -p "$HOME/.guix-profile" -i guile-bootstrap
! test -e "$HOME/.guix-profile-1-link" test ! -e "$HOME/.guix-profile-1-link"
guix package --bootstrap --roll-back -p "$HOME/.guix-profile" guix package --bootstrap --roll-back -p "$HOME/.guix-profile"
! test -e "$HOME/.guix-profile-0-link" test ! -e "$HOME/.guix-profile-0-link"
# Extraneous argument. # Extraneous argument.
! guix package install foo-bar guix package install foo-bar && false
# Make sure the "broken pipe" doesn't yield an error. # Make sure the "broken pipe" doesn't yield an error.
# Note: 'pipefail' is a Bash-specific option. # Note: 'pipefail' is a Bash-specific option.
@ -382,7 +382,7 @@ cat > "$module_dir/package.scm"<<EOF
(define my-package coreutils) ;returns *unspecified* (define my-package coreutils) ;returns *unspecified*
EOF EOF
! guix package --bootstrap --install-from-file="$module_dir/package.scm" guix package --bootstrap --install-from-file="$module_dir/package.scm" && false
rm "$module_dir/package.scm" rm "$module_dir/package.scm"

View file

@ -37,12 +37,12 @@ GUIX_TEST_UPDATER_TARGETS='
("the-test-package" "" (("5.5" "file://'$PWD/$module_dir'/source"))))' ("the-test-package" "" (("5.5" "file://'$PWD/$module_dir'/source"))))'
# No newer version available. # No newer version available.
! guix refresh -t test idutils guix refresh -t test idutils # XXX: should return non-zero?
case "$(guix refresh -t test idutils 2>&1)" in case "$(guix refresh -t test idutils 2>&1)" in
*"$idutils_version"*"already the latest version"*) true;; *"$idutils_version"*"already the latest version"*) true;;
*) false;; *) false;;
esac esac
! guix refresh -t test libreoffice guix refresh -t test libreoffice # XXX: should return non-zero?
case "$(guix refresh -t test libreoffice 2>&1)" in case "$(guix refresh -t test libreoffice 2>&1)" in
*"greater than the latest known version"*"1.0"*) true;; *"greater than the latest known version"*"1.0"*) true;;
*) false;; *) false;;
@ -100,7 +100,7 @@ grep 'version "5.5"' "$module_dir/sample.scm"
grep "$(guix hash -H sha256 -f nix-base32 "$module_dir/source")" "$module_dir/sample.scm" grep "$(guix hash -H sha256 -f nix-base32 "$module_dir/source")" "$module_dir/sample.scm"
# Specifying a target version. # Specifying a target version.
! guix refresh -t test guile=2.0.0 guix refresh -t test guile=2.0.0 # XXX: should return non-zero?
case "$(guix refresh -t test guile=2.0.0 2>&1)" in case "$(guix refresh -t test guile=2.0.0 2>&1)" in
*"failed to find"*"2.0.0"*) true;; *"failed to find"*"2.0.0"*) true;;
*) false;; *) false;;

View file

@ -33,13 +33,13 @@ export XDG_CONFIG_HOME
guix shell --bootstrap --pure guile-bootstrap -- guile --version guix shell --bootstrap --pure guile-bootstrap -- guile --version
# '--symlink' can only be used with --container. # '--symlink' can only be used with --container.
! guix shell --bootstrap guile-bootstrap -S /dummy=bin/guile guix shell --bootstrap guile-bootstrap -S /dummy=bin/guile && false
# '--ad-hoc' is a thing of the past. # '--ad-hoc' is a thing of the past.
! guix shell --ad-hoc guile-bootstrap guix shell --ad-hoc guile-bootstrap && false
# Rejecting unsupported packages. # Rejecting unsupported packages.
! guix shell -s armhf-linux intelmetool -n guix shell -s armhf-linux intelmetool -n && false
# Test approximately that the child process does not inherit extra file # Test approximately that the child process does not inherit extra file
# descriptors. Ideally we'd check there's nothing more than 0, 1, and 2, but # descriptors. Ideally we'd check there's nothing more than 0, 1, and 2, but
@ -55,7 +55,7 @@ test "$(echo $fd_list | wc -w)" -le "$(echo $initial_fd_list | wc -w)"
cat > "$tmpdir/guix.scm" <<EOF cat > "$tmpdir/guix.scm" <<EOF
This is a broken guix.scm file. This is a broken guix.scm file.
EOF EOF
! (cd "$tmpdir"; SHELL="$(type -P true)" guix shell --bootstrap 2> "stderr") (cd "$tmpdir"; SHELL="$(type -P true)" guix shell --bootstrap 2> "stderr") && false
grep "not authorized" "$tmpdir/stderr" grep "not authorized" "$tmpdir/stderr"
rm "$tmpdir/stderr" rm "$tmpdir/stderr"
@ -122,7 +122,7 @@ then
done done
# 'make-boot0' itself must not be listed. # 'make-boot0' itself must not be listed.
! guix gc --references "$profile" | grep make-boot0 guix gc --references "$profile" | grep make-boot0 && false
# Honoring the local 'guix.scm' file. # Honoring the local 'guix.scm' file.
echo '(@ (guix tests) gnu-make-for-tests)' > "$tmpdir/guix.scm" echo '(@ (guix tests) gnu-make-for-tests)' > "$tmpdir/guix.scm"

View file

@ -65,7 +65,7 @@ cp "$tmpfile" "$tmpfile.bak"
initial_hash="$(guix hash "$tmpfile")" initial_hash="$(guix hash "$tmpfile")"
guix style -f "$tmpfile" guix style -f "$tmpfile"
if ! test "$initial_hash" = "$(guix hash "$tmpfile")" if test "$initial_hash" != "$(guix hash "$tmpfile")"
then then
cat "$tmpfile" cat "$tmpfile"
diff -u "$tmpfile.bak" "$tmpfile" diff -u "$tmpfile.bak" "$tmpfile"
@ -73,8 +73,8 @@ then
fi fi
# Introduce random changes and try again. # Introduce random changes and try again.
sed -i "$tmpfile" -e's/ +/ /g' sed -i "$tmpfile" -e's/ \+/ /g'
! test "$initial_hash" = "$(guix hash "$tmpfile")" test "$initial_hash" != "$(guix hash "$tmpfile")"
guix style -f "$tmpfile" guix style -f "$tmpfile"
test "$initial_hash" = "$(guix hash "$tmpfile")" test "$initial_hash" = "$(guix hash "$tmpfile")"

View file

@ -318,7 +318,7 @@ cat > "$tmpdir/config.scm" <<EOF
(bad-local-file "whatever.scm") (bad-local-file "whatever.scm")
EOF EOF
! guix system build "$tmpdir/config.scm" -n guix system build "$tmpdir/config.scm" -n && false
guix system build "$tmpdir/config.scm" -n 2>&1 | \ guix system build "$tmpdir/config.scm" -n 2>&1 | \
grep "config\.scm:4:2: warning:.*whatever.*relative to current directory" grep "config\.scm:4:2: warning:.*whatever.*relative to current directory"