summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2022-11-20 21:09:53 +0100
committerMarius Bakke <marius@gnu.org>2022-11-20 21:09:53 +0100
commitc37a4260387f7be89783c8f46ffd4a2643069fbd (patch)
tree090423296e17c3f60b5dd772bad23bceaa19f734 /gnu
parentcae97cd773befcc68ce0ba8709e50c8697b7f0d3 (diff)
parent4416e94e517a955fe6152094df8b89d2c0c13e65 (diff)
Merge branch 'master' into staging
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/admin.scm2
-rw-r--r--gnu/packages/assembly.scm5
-rw-r--r--gnu/packages/audio.scm2
-rw-r--r--gnu/packages/authentication.scm1
-rw-r--r--gnu/packages/configuration-management.scm2
-rw-r--r--gnu/packages/databases.scm31
-rw-r--r--gnu/packages/ebook.scm21
-rw-r--r--gnu/packages/game-development.scm19
-rw-r--r--gnu/packages/games.scm2
-rw-r--r--gnu/packages/golang.scm164
-rw-r--r--gnu/packages/image-viewers.scm2
-rw-r--r--gnu/packages/linux.scm4
-rw-r--r--gnu/packages/lisp-xyz.scm151
-rw-r--r--gnu/packages/music.scm10
-rw-r--r--gnu/packages/networking.scm4
-rw-r--r--gnu/packages/patches/oath-toolkit-xmlsec-compat.patch79
-rw-r--r--gnu/packages/protobuf.scm7
-rw-r--r--gnu/packages/python-crypto.scm6
-rw-r--r--gnu/packages/python-web.scm2
-rw-r--r--gnu/packages/python-xyz.scm2
-rw-r--r--gnu/packages/qt.scm49
-rw-r--r--gnu/packages/virtualization.scm1
-rw-r--r--gnu/packages/xml.scm17
-rw-r--r--gnu/services/databases.scm199
-rw-r--r--gnu/services/guix.scm242
-rw-r--r--gnu/services/virtualization.scm1
-rw-r--r--gnu/tests/databases.scm3
28 files changed, 716 insertions, 313 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index a630af7a0b..ec8480c201 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1587,6 +1587,7 @@ dist_patch_DATA = \
%D%/packages/patches/nvi-dbpagesize-binpower.patch \
%D%/packages/patches/nvi-db4.patch \
%D%/packages/patches/nyacc-binary-literals.patch \
+ %D%/packages/patches/oath-toolkit-xmlsec-compat.patch \
%D%/packages/patches/obs-modules-location.patch \
%D%/packages/patches/ocaml-dose3-add-unix-dependency.patch \
%D%/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch \
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 883532e255..99231a710e 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -2872,7 +2872,7 @@ sys.argv[0] = re.sub(r'\\.([^/]*)-real$', r'\\1', sys.argv[0])
(list openssh
openssl
python-mock
- python-pycrypto
+ python-pycryptodome
python-pytest
python-pytest-forked
python-pytest-mock
diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm
index df6587385f..8a899f0020 100644
--- a/gnu/packages/assembly.scm
+++ b/gnu/packages/assembly.scm
@@ -12,6 +12,7 @@
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2022 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2022 Andy Tai <atai@atai.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -132,14 +133,14 @@ debugging information in STABS, DWARF 2, and CodeView 8 formats.")
(define-public lightning
(package
(name "lightning")
- (version "2.1.3")
+ (version "2.2.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/lightning/lightning-"
version ".tar.gz"))
(sha256
(base32
- "1jgxbq2cm51dzi3zhz38mmgwdcgs328mfl8iviw8dxn6dn36p1gd"))))
+ "03kwvn00qggys203vpzb2kq2asy0ql7x84ajk05a62yg3kzq8faf"))))
(build-system gnu-build-system)
(native-inputs (list zlib))
(arguments
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 3e5b1d15cd..a131021fa4 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -3111,6 +3111,8 @@ including air absorption, occlusion, and environmental reverb, are available
through the EFX extension. It also facilitates streaming audio, multi-channel
buffers, and audio capture.")
(home-page "https://openal-soft.org/")
+ (properties
+ '((upstream-name . "openal-soft")))
(license license:lgpl2.0+)))
(define-public freealut
diff --git a/gnu/packages/authentication.scm b/gnu/packages/authentication.scm
index fa5199cc1d..d9dd6fac3d 100644
--- a/gnu/packages/authentication.scm
+++ b/gnu/packages/authentication.scm
@@ -43,6 +43,7 @@
(method url-fetch)
(uri (string-append "https://download.savannah.nongnu.org/releases/"
name "/" name "-" version ".tar.gz"))
+ (patches (search-patches "oath-toolkit-xmlsec-compat.patch"))
(sha256
(base32 "1aa620k05lsw3l3slkp2mzma40q3p9wginspn9zk8digiz7dzv9n"))))
(build-system gnu-build-system)
diff --git a/gnu/packages/configuration-management.scm b/gnu/packages/configuration-management.scm
index c64b937fe5..3ebb6957c8 100644
--- a/gnu/packages/configuration-management.scm
+++ b/gnu/packages/configuration-management.scm
@@ -76,7 +76,7 @@
go-github-com-muesli-reflow-padding
go-github-com-muesli-termenv
go-github-com-google-goterm
- go-golang-org-colorful
+ go-github-com-lucasb-eyer-go-colorful
go-github-com-mattn-go-isatty
go-github.com-mattn-go-runewidth
go-github-com-olekukonko-tablewriter
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index afadc5373c..e4dde1b22b 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -1222,17 +1222,17 @@ and high-availability (HA).")
(license license:gpl2))) ;'COPYING' says "version 2" only
;; Don't forget to update the other postgresql packages when upgrading this one.
-(define-public postgresql-14
+(define-public postgresql-15
(package
(name "postgresql")
- (version "14.4")
+ (version "15.1")
(source (origin
(method url-fetch)
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
- "0slg7ld5mldmv3pn1wxxwglm4s3xc6c91ixx24apj713qlvn4fy2"))
+ "1bi19sqmri569hyjvbk8grlws7f5dalsqz87wkgx1yjafcyz5zb4"))
(patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))
(build-system gnu-build-system)
(arguments
@@ -1284,30 +1284,43 @@ TIMESTAMP. It also supports storage of binary large objects, including
pictures, sounds, or video.")
(license (license:x11-style "file://COPYRIGHT"))))
+(define-public postgresql-14
+ (package
+ (inherit postgresql-15)
+ (name "postgresql")
+ (version "14.4")
+ (source (origin
+ (inherit (package-source postgresql-15))
+ (uri (string-append "https://ftp.postgresql.org/pub/source/v"
+ version "/postgresql-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0slg7ld5mldmv3pn1wxxwglm4s3xc6c91ixx24apj713qlvn4fy2"))))))
+
(define-public postgresql-13
(package
(inherit postgresql-14)
- (version "13.6")
+ (version "13.9")
(source (origin
(inherit (package-source postgresql-14))
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
- "1z37ix80hb2bqa2smh1hbj9r507ypnl3pil43gkqznnlv6ipzz5s"))))))
+ "05d46dzkya6s0qbaxvksc5j12syb514q5lha6z9vx7z4lp06c6gg"))))))
(define-public postgresql-11
(package
(inherit postgresql-13)
(name "postgresql")
- (version "11.16")
+ (version "11.18")
(source (origin
(inherit (package-source postgresql-13))
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
- "1983a7y4y6zhbgh0qcdfkf99445j1zm5q1ncrbkrx555y08y3n9d"))))
+ "013m1x53qfxcry7l033ahhxjc3lflb7fj8fapk7qm49fqppj0kyj"))))
(native-inputs
(modify-inputs (package-native-inputs postgresql-13)
(replace "docbook-xml" docbook-xml-4.2)))))
@@ -1315,14 +1328,14 @@ pictures, sounds, or video.")
(define-public postgresql-10
(package
(inherit postgresql-11)
- (version "10.21")
+ (version "10.23")
(source (origin
(inherit (package-source postgresql-11))
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
- "1la5dx4hhy5yaznwk9gwdsymih3sd23fyhh6spssdaajdn2rh8fk"))))
+ "1sgfssjc9lnzijhn108r6z26fri655k413f1c9b8wibjhd9b594l"))))
(native-inputs
(modify-inputs (package-native-inputs postgresql-11)
(append opensp docbook-sgml-4.2)
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index df4064ae56..60ef39c77e 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -386,34 +386,35 @@ accessing and converting various ebook file formats.")
(package
(name "inkbox")
(version "1.7")
+ (home-page "https://github.com/Kobo-InkBox/inkbox")
(source
(origin
(method git-fetch)
(uri
(git-reference
- (url "https://alpinekobox.ddns.net/InkBox/inkbox/")
+ (url home-page)
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "126cqn0ixcn608lv2hd9f7zmzj4g448bnpxc7wv9cvg83qqajh5n"))))
(build-system qt-build-system)
(arguments
- '(#:tests? #f ; no test suite
- #:make-flags
- (list (string-append "PREFIX="
- (assoc-ref %outputs "out")))
- #:phases
- (modify-phases %standard-phases
+ (list
+ #:tests? #f ; no test suite
+ #:make-flags
+ #~(list (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
(add-after 'unpack 'prefix-opt
- (lambda* (#:key outputs #:allow-other-keys)
+ (lambda _
(substitute* "inkbox.pro"
- (("/opt/\\$\\$\\{TARGET\\}") (string-append (assoc-ref outputs "out"))))))
+ (("/opt/\\$\\$\\{TARGET\\}")
+ #$output))))
(replace 'configure
(lambda* (#:key make-flags #:allow-other-keys)
(apply invoke (cons "qmake" make-flags)))))))
(native-inputs
(list qtbase-5))
- (home-page "https://alpinekobox.ddns.net/InkBox/inkbox/")
(synopsis "EBook reader")
(description "This package provides InkBox eBook reader.")
(license license:gpl3)))
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 90205a89ab..5622b9d2ee 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -380,9 +380,10 @@ PCM data.")
(substitute* (find-files "." "^Makefile\\.in$")
(("-Werror") ""))
#t)))))
- (native-inputs `(("pkgconfig" ,pkg-config)))
+ (native-inputs (list pkg-config))
(inputs (list bdb
glib
+ gmp
guile-3.0
libmicrohttpd
ncurses
@@ -2444,12 +2445,20 @@ computer games, 3D authoring tools and simulation tools.")
(commit (string-append "Chipmunk-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1qmkn01g06p3rnhmbyffmjns6wj5vhgf9cscigk3wzxcpwv1hyxb"))))
+ (base32 "1qmkn01g06p3rnhmbyffmjns6wj5vhgf9cscigk3wzxcpwv1hyxb"))
+ (modules '((guix build utils)))
+ (snippet
+ #~(begin
+ ;; This is fixed in the upstream repository but the fix
+ ;; has not been released.
+ (substitute* "src/cpHastySpace.c"
+ (("#include <sys/sysctl.h>") ""))))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f ;no test
- #:configure-flags '("-DBUILD_STATIC=OFF"
- "-DBUILD_DEMOS=OFF")))
+ (list #:tests? #f ;no test
+ #:configure-flags
+ #~(list "-DBUILD_STATIC=OFF"
+ "-DBUILD_DEMOS=OFF")))
(inputs
(list freeglut libxmu libxrandr))
(home-page "https://chipmunk-physics.net/")
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 1871eaaa2e..357dee69d0 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -828,7 +828,7 @@ possible, while battling many vicious aliens.")
(home-page "https://github.com/vattam/BSDGames")
(synopsis "Collection of the old text-based games and amusements")
(description
- "These are the BSD games. See the fortune-mod package for fortunes.
+ "These are the BSD games.
Action: atc (keep the airplanes safe), hack (explore the dangerous Dungeon),
hunt (kill the others for the Pair of Boots, multi-player only), robots (avoid
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 28730f1dee..2ed4c7a73c 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -5894,9 +5894,9 @@ without requiring a real database connection.")
golang's database/sql package.")
(license license:mpl2.0)))
-(define-public go-golang-org-colorful
+(define-public go-github-com-lucasb-eyer-go-colorful
(package
- (name "go-golang-org-colorful")
+ (name "go-github-com-lucasb-eyer-go-colorful")
(version "1.2.0")
(source (origin
(method git-fetch)
@@ -5908,17 +5908,20 @@ golang's database/sql package.")
(base32
"08c3fkf27r16izjjd4w94xd1z7w1r4mdalbl53ms2ka2j465s3qs"))))
(build-system go-build-system)
+ (propagated-inputs (list go-golang-org-x-image))
(arguments
- '(#:import-path "github.com/lucasb-eyer/go-colorful"))
- (native-inputs
- (list go-golang-org-sql-mock))
- (synopsis "Convert between colorspaces and generate colors")
- (description "This package implements Go's @code{color.Color} interface
-and provides a means of converting colors stored as RGB to various
-colorspaces.")
+ (list #:import-path "github.com/lucasb-eyer/go-colorful"))
(home-page "https://github.com/lucasb-eyer/go-colorful")
+ (synopsis "Library for playing with colors in Go")
+ (description
+ "The colorful package provides a library for using colors in Go.
+It stores colors in RGB and provides methods for converting these to
+various color spaces.")
(license license:expat)))
+(define-public go-golang-org-colorful
+ (deprecated-package "go-golang-org-colorful" go-github-com-lucasb-eyer-go-colorful))
+
(define-public go-github-com-gdamore-encoding
(package
(name "go-github-com-gdamore-encoding")
@@ -5966,8 +5969,10 @@ non-UTF-friendly sources.")
(arguments
`(#:import-path "github.com/gdamore/tcell"))
(inputs
- (list go-github.com-mattn-go-runewidth go-golang-org-colorful
- go-golang-org-x-text go-github-com-gdamore-encoding))
+ (list go-github.com-mattn-go-runewidth
+ go-github-com-lucasb-eyer-go-colorful
+ go-golang-org-x-text
+ go-github-com-gdamore-encoding))
(home-page "https://github.com/gdamore/tcell")
(synopsis "Provide a cell-based view for text terminals")
(description "This package includes a full parser and expander for
@@ -6006,6 +6011,36 @@ systems.")
(modify-inputs (package-inputs go-github-com-gdamore-tcell)
(prepend go-golang-org-x-term go-golang-org-x-sys)))))
+(define-public go-github-com-rivo-tview
+ (package
+ (name "go-github-com-rivo-tview")
+ (version "0.0.0-20220703182358-a13d901d3386")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rivo/tview")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0gf1m3ndbc3kgxpv0ryq9a1ahijg6m896sc9k7dvwfjd8vy0q0yd"))))
+ (build-system go-build-system)
+ (arguments
+ (list #:import-path "github.com/rivo/tview"))
+ (propagated-inputs (list go-golang-org-x-term
+ go-golang-org-x-sys
+ go-github-com-rivo-uniseg
+ go-github-com-mattn-go-runewidth
+ go-github-com-lucasb-eyer-go-colorful
+ go-github-com-gdamore-tcell-v2))
+ (home-page "https://github.com/rivo/tview")
+ (synopsis "Rich Interactive Widgets for Terminal UIs")
+ (description
+ "The tview package implements rich widgets for terminal based user
+interfaces. The widgets provided with this package are useful for data
+exploration and data entry.")
+ (license license:expat)))
+
(define-public go-github-com-xo-terminfo
(package
(name "go-github-com-xo-terminfo")
@@ -7716,8 +7751,10 @@ io.Writers helping you to transform blocks of text.")
(arguments
`(#:import-path "github.com/muesli/termenv"))
(native-inputs
- (list go-github-com-google-goterm go-golang-org-colorful
- go-github-com-mattn-go-isatty go-github.com-mattn-go-runewidth))
+ (list go-github-com-google-goterm
+ go-github-com-lucasb-eyer-go-colorful
+ go-github-com-mattn-go-isatty
+ go-github.com-mattn-go-runewidth))
(home-page "https://github.com/muesli/termenv/")
(synopsis "Advanced styling options on the terminal")
(description "termenv lets you safely use advanced styling options on the
@@ -7846,7 +7883,7 @@ which produce colorized output using github.com/fatih/color.")
go-github.com-mattn-go-runewidth
go-github-com-muesli-termenv
go-github-com-google-goterm
- go-golang-org-colorful
+ go-github-com-lucasb-eyer-go-colorful
go-github-com-mattn-go-isatty
go-github-com-olekukonko-tablewriter
go-github-com-yuin-goldmark
@@ -9693,7 +9730,7 @@ string.")
("github.com/mattn/go-runewidth" ,go-github.com-mattn-go-runewidth)
("go-github-com-muesli-reflow-indent" ,go-github-com-muesli-reflow-indent)
("go-github-com-muesli-reflow-ansi" ,go-github-com-muesli-reflow-ansi)
- ("go-golang-org-colorful" ,go-golang-org-colorful)
+ ("go-github-com-lucasb-eyer-go-colorful" ,go-github-com-lucasb-eyer-go-colorful)
("github.com/containerd/console" ,go-github-com-containerd-console)
("go-github-com-muesli-reflow-truncate" ,go-github-com-muesli-reflow-truncate)
("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
@@ -10045,6 +10082,27 @@ pcredential store, Pass, Secret Service, KDE Wallet, Encrypted File.")
(home-page "https://gopkg.in/ini.v1")
(license license:asl2.0)))
+;;; XXX: Since commit bfb61065f05a6eac0cf63b16db43d0c3e864c658, the
+;;; canonical name of the ini package is `go-github-com-go-ini-ini`,
+;;; not `go-gopkg-in-ini`.
+(define-public go-github-com-go-ini-ini
+ (package
+ (inherit go-gopkg-in-ini)
+ (name "go-github-com-go-ini-ini")
+ (version "1.66.6")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/go-ini/ini")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0kqg13606hnw8f75cb59fsy1m85kiqf3csi2g7q2512avdmaphc9"))))
+ (arguments
+ (list #:import-path "github.com/go-ini/ini"))
+ (propagated-inputs (list go-github-com-stretchr-testify))))
+
(define-public go-github-com-skratchdot-open-golang
(let ((commit "79abb63cd66e41cb1473e26d11ebdcd68b04c8e5")
(revision "0"))
@@ -10448,7 +10506,7 @@ using shell-style rules for quoting and commenting.")
(lambda* (#:key inputs import-path
#:allow-other-keys)
(invoke "tar" "xf"
- #$notmuch-fixtures "-C"
+ #+notmuch-fixtures "-C"
(string-append "src/" import-path
"/fixtures")))))))
(inputs (list notmuch))
@@ -10459,6 +10517,34 @@ using shell-style rules for quoting and commenting.")
email library.")
(license license:gpl3+)))
+(define-public go-github-com-jaytaylor-html2text
+ (package
+ (name "go-github-com-jaytaylor-html2text")
+ (version "0.0.0-20211105163654-bc68cce691ba")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jaytaylor/html2text")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "12ckgkp8xqgp0fh6019nwp4ssg2k1rv1a67cpk37ian4q5zrvppm"))))
+ (build-system go-build-system)
+ (arguments
+ (list #:import-path "github.com/jaytaylor/html2text"
+ ;; Tests are broken: <https://github.com/jaytaylor/html2text/issues/53>
+ #:tests? #f))
+ (propagated-inputs (list go-golang-org-x-net
+ go-github-com-olekukonko-tablewriter
+ go-github-com-ssor-bom))
+ (home-page "https://github.com/jaytaylor/html2text")
+ (synopsis "Convert HTML emails to text")
+ (description
+ "The html2text package converts HTML emails to plain text, allowing
+text-only mail clients to display them.")
+ (license license:expat)))
+
(define-public go-github-com-creack-pty
(package
(name "go-github-com-creack-pty")
@@ -10556,6 +10642,52 @@ config, data and cache directories according to the XDG Base Directory
Specification.")
(license license:expat)))
+(define-public go-github-com-ssor-bom
+ (package
+ (name "go-github-com-ssor-bom")
+ (version "0.0.0-20170718123548-6386211fdfcf")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ssor/bom")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "09g5496ifwqxqclh2iw58plcwcz0sczlnxwqxzwmnl4shdl371ld"))))
+ (build-system go-build-system)
+ (arguments
+ (list #:import-path "github.com/ssor/bom"))
+ (home-page "https://github.com/ssor/bom")
+ (synopsis "Cleaning BOMs in Go")
+ (description
+ "The bom package provides small tools for cleaning BOMs from a byte
+array or reader.")
+ (license license:expat)))
+
+(define-public go-github-com-gogs-chardet
+ (package
+ (name "go-github-com-gogs-chardet")
+ (version "0.0.0-20211120154057-b7413eaefb8f")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gogs/chardet")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "12j8q5wc9m4n51v2j2m40nahqdl9bh3hzpdp26clzq91kc2amiz0"))))
+ (build-system go-build-system)
+ (arguments
+ (list #:import-path "github.com/gogs/chardet"))
+ (home-page "https://github.com/gogs/chardet")
+ (synopsis "Character set detection for Go")
+ (description
+ "The chardet package ports character set detection from
+ICU to Go.")
+ (license license:expat)))
+
;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances
;;; of a merge conflict, place them above by existing packages with similar
diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm
index 77979e8b8f..037c141065 100644
--- a/gnu/packages/image-viewers.scm
+++ b/gnu/packages/image-viewers.scm
@@ -532,7 +532,7 @@ It supports JPEG, PNG and GIF formats.")
'(#:import-path "github.com/eliukblau/pixterm/cmd/pixterm"
#:unpack-path "github.com/eliukblau/pixterm"))
(inputs (list go-github-com-disintegration-imaging
- go-golang-org-colorful
+ go-github-com-lucasb-eyer-go-colorful
go-golang-org-x-crypto
go-golang-org-x-image))
(home-page "https://github.com/eliukblau/pixterm")
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 4796948f75..efb0f899aa 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -8866,7 +8866,7 @@ tools for managing PipeWire.")
(define-public ell
(package
(name "ell")
- (version "0.48")
+ (version "0.54")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -8875,7 +8875,7 @@ tools for managing PipeWire.")
(file-name (git-file-name name version))
(sha256
(base32
- "0lxjizby3zdyhzad5a0gbz4m2pp44jf1j4l1pn18d04rw9mr2gqy"))))
+ "1vsv5ibiyli1cvk32l5avms6ngv6i0jxxqd5vw5kbfcp6ph94brs"))))
(build-system gnu-build-system)
(arguments
;; Tests launch dbus-daemon instances that all try to bind to
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index cde879f210..27312cb369 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -7095,6 +7095,46 @@ the return type of a function.")
;; The tests get stuck indefinitly
'(#:tests? #f))))
+(define-public sbcl-simplified-types
+ (let ((commit "8fd0727a70a9de76289ac62c1567b8d278e7434e")
+ (revision "0"))
+ (package
+ (name "sbcl-simplified-types")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/marcoheisig/simplified-types")
+ (commit commit)))
+ (file-name (git-file-name "cl-simplified-types" version))
+ (sha256
+ (base32 "1hdwmn5lz717aj6qdqmfmr3cbjl8l3giwn0fb5ca9pj83cx7fg8y"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-alexandria
+ sbcl-introspect-environment
+ sbcl-trivia))
+ (home-page "https://github.com/marcoheisig/simplified-types")
+ (synopsis "Simplify Common Lisp type specifiers")
+ (description
+ "Simplified-Types is a library that provides functions for simplifying
+Common Lisp type specifiers. The API consists of two functions:
+
+@itemize
+@item @code{simplify-type} takes a type specifier and, optionally, an
+environment, and returns the corresponding simplified type.
+@item @code{simplified-type-of} takes an object and returns the simplified
+type of that object.
+@end itemize")
+ (license license:expat))))
+
+(define-public cl-simplified-types
+ (sbcl-package->cl-source-package sbcl-simplified-types))
+
+(define-public ecl-simplified-types
+ (sbcl-package->ecl-package sbcl-simplified-types))
+
(define-public sbcl-typo
(let ((commit "0e883490f81edf2a1be4e5b101d1caec78d7853b")
(revision "0"))
@@ -19164,6 +19204,77 @@ fit together as required by any particular game.")
(define-public cl-trial
(sbcl-package->cl-source-package sbcl-trial))
+(define-public sbcl-virality
+ (package
+ (name "sbcl-virality")
+ (version "0.3.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bufferswap/ViralityEngine")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-virality" version))
+ (sha256
+ (base32 "0hvjcvyd628jh4if6swk1wrfb9qdlnpk9ax1y3jarr8ms7ghfcdb"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ `(#:asd-systems '("virality"
+ "vorigin"
+ "vorigin.test"
+ "vshadow"
+ "vumbra"
+ "vutils")
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'delete-examples
+ (lambda _
+ ;; Don't install the big "examples" directory.
+ (delete-file-recursively "examples"))))))
+ (inputs
+ (list sbcl-3b-bmfont
+ sbcl-babel
+ sbcl-cl-cpus
+ sbcl-cl-graph
+ sbcl-cl-opengl
+ sbcl-cl-ppcre
+ sbcl-cl-slug
+ sbcl-closer-mop
+ sbcl-fast-io
+ sbcl-global-vars
+ sbcl-glsl-packing
+ sbcl-jsown
+ sbcl-lparallel
+ sbcl-pngload
+ sbcl-printv
+ sbcl-queues
+ sbcl-sdl2
+ sbcl-serapeum
+ sbcl-split-sequence
+ sbcl-static-vectors
+ sbcl-trivial-features
+ sbcl-varjo))
+ (home-page "https://github.com/bufferswap/ViralityEngine")
+ (synopsis "Component-based game engine written in Common Lisp")
+ (description
+ "Virality Engine provides a system and workflow that helps describe the
+elements needed to write 2D or 3D games. It was designed with several domain
+specific languages that make it easier to describe, manipulate, and use assets
+commonly found in game making. Such assets include (but are not limited to)
+textures, materials, shader programs, and scene trees of actors that are
+available for instantiation. Virality Engine also knows how to accept input
+from keyboards and most joysticks and gamepads.
+
+The component system is a hybrid model between an ECS and an object model. The
+components are defined similar to CLOS defclass, and regular generic methods
+can be used with them. Components are added to Actors which represent game
+concepts like players, scenery, effects, etc. We define a component protocol
+invoked by Virality Engine to move your components to the next state and
+render them each frame.")
+ (license license:expat)))
+
+(define-public cl-virality
+ (sbcl-package->cl-source-package sbcl-virality))
+
(define-public sbcl-cl-liballegro
(let ((commit "49f632ce97fc4f835bf5d450588793234b980a64")
(revision "1"))
@@ -20364,6 +20475,46 @@ configuration file format.")
(define-public ecl-clop
(sbcl-package->ecl-package sbcl-clop))
+(define-public sbcl-pp-toml
+ (let ((commit "54f7d08c939d18b24363342c98c19b6812d7afb9")
+ (revision "0"))
+ (package
+ (name "sbcl-pp-toml")
+ (version (git-version "1.0.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pnathan/pp-toml")
+ (commit commit)))
+ (file-name (git-file-name "cl-pp-toml" version))
+ (sha256
+ (base32 "136d7jzz7l2ck9wwld0ac46jmpm94lvja6m50sy73s232slka2hg"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-fiveam))
+ (inputs
+ (list sbcl-alexandria
+ sbcl-cl-ppcre
+ sbcl-esrap
+ sbcl-generic-comparability
+ sbcl-local-time
+ sbcl-parse-number
+ sbcl-split-sequence))
+ (home-page "https://github.com/pnathan/pp-toml")
+ (synopsis "TOML parser for Common Lisp")
+ (description
+ "PP-TOML is a Common Lisp library for parsing strings in the TOML
+configuration file format. It implements only the 0.1.0 specification of
+TOML.")
+ (license license:llgpl))))
+
+(define-public cl-pp-toml
+ (sbcl-package->cl-source-package sbcl-pp-toml))
+
+(define-public ecl-pp-toml
+ (sbcl-package->ecl-package sbcl-pp-toml))
+
(define-public sbcl-linedit
(let ((commit "0561c97dfca2f5854fcc66558a567a9875ddcb8f")
(revision "1"))
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 2c87152449..9826a36034 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -5558,13 +5558,12 @@ discard bad quality ones.
,(map (lambda (label)
(string-append (assoc-ref inputs label)
"/lib/qt5/plugins"))
- '("qtbase" "qtmultimedia-5" "qtsvg-5")))
+ '("qtbase" "qtmultimedia" "qtsvg")))
`("QML2_IMPORT_PATH" ":" prefix
,(map (lambda (label)
(string-append (assoc-ref inputs label)
"/lib/qt5/qml"))
- '("qtmultimedia-5"))))
- #t))))))
+ '("qtmultimedia"))))))))))
(inputs
(list alsa-lib
fftw
@@ -5574,10 +5573,7 @@ discard bad quality ones.
qtmultimedia-5
qtsvg-5))
(native-inputs
- `(("gettext" ,gettext-minimal)
- ("hicolor-icon-theme" ,hicolor-icon-theme)
- ("itstool" ,itstool)
- ("qttools-5" ,qttools-5)))
+ (list gettext-minimal hicolor-icon-theme itstool qttools-5))
(synopsis "Musical instrument tuner")
(description "FMIT is a graphical utility for tuning musical instruments,
with error and volume history, and advanced features.")
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index e3d993d388..3f44d082fb 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -3856,7 +3856,7 @@ powerful route filtering syntax and an easy-to-use configuration interface.")
(define-public iwd
(package
(name "iwd")
- (version "1.24")
+ (version "2.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3865,7 +3865,7 @@ powerful route filtering syntax and an easy-to-use configuration interface.")
(file-name (git-file-name name version))
(sha256
(base32
- "1sdi7008j5jhlg2rqpczh1pzb8zay6mc9dpnjjsmdnsmrcr3v7wi"))))
+ "0icrmd0361yy24sa7wdd388ykaknv1va4678h9ksysz1dmykdr7m"))))
(build-system gnu-build-system)
(inputs
(list dbus ell (package-source ell) readline))
diff --git a/gnu/packages/patches/oath-toolkit-xmlsec-compat.patch b/gnu/packages/patches/oath-toolkit-xmlsec-compat.patch
new file mode 100644
index 0000000000..18589366a9
--- /dev/null
+++ b/gnu/packages/patches/oath-toolkit-xmlsec-compat.patch
@@ -0,0 +1,79 @@
+Adjust tests for compatibility with newer xmlsec.
+
+Taken from upstream:
+
+ https://gitlab.com/oath-toolkit/oath-toolkit/-/commit/0ae59b9c72f69ee21044e736e292b73051df3272
+
+diff --git a/libpskc/examples/pskc-hotp-signed.xml b/libpskc/examples/pskc-hotp-signed.xml
+index 359dd4723cf2b5ae1ca53d793cc6900a15bd4969..396e0829ff245b3ad6953cc3523d77568c8a18f4 100644
+--- a/libpskc/examples/pskc-hotp-signed.xml
++++ b/libpskc/examples/pskc-hotp-signed.xml
+@@ -38,7 +38,8 @@ rIXbwqKhnBP943U4Ch31oEbZtbo+XRbiq11wv6dLNsi76TNGDqsjTKgEcSIYI6Vd
+ rMxnil6ChoIBvSSPGHhJuj1bW1EPW92JtIa6byrAj1m4RwSviQy2i65YoIdtrhRt
+ CWekj2zuL/0szv5rZMCCvxioOCA8znqELEPMfs0Aa/cACD2MZcC4gGXehNCvzYJr
+ TmB6lFpxP6f0g6eO7PVcqYN9NCwECxb5Cvx2j2uNlereY35/9oPR6YJx+V7sL+DB
+-n6F0mN8OUAFxDamepKdGRApU8uZ35624o/I4</X509Certificate>
++n6F0mN8OUAFxDamepKdGRApU8uZ35624o/I4
++</X509Certificate>
+ </X509Data>
+ </KeyInfo>
+ </Signature></KeyContainer>
+diff --git a/pskctool/tests/pskc-all-signed.xml b/pskctool/tests/pskc-all-signed.xml
+index 39cf8af5bb00e34fa5e1acb97cea59ff742758f4..5d44e72d928ccf1f46975e6ccca58297e235be95 100644
+--- a/pskctool/tests/pskc-all-signed.xml
++++ b/pskctool/tests/pskc-all-signed.xml
+@@ -38,7 +38,8 @@ rIXbwqKhnBP943U4Ch31oEbZtbo+XRbiq11wv6dLNsi76TNGDqsjTKgEcSIYI6Vd
+ rMxnil6ChoIBvSSPGHhJuj1bW1EPW92JtIa6byrAj1m4RwSviQy2i65YoIdtrhRt
+ CWekj2zuL/0szv5rZMCCvxioOCA8znqELEPMfs0Aa/cACD2MZcC4gGXehNCvzYJr
+ TmB6lFpxP6f0g6eO7PVcqYN9NCwECxb5Cvx2j2uNlereY35/9oPR6YJx+V7sL+DB
+-n6F0mN8OUAFxDamepKdGRApU8uZ35624o/I4</X509Certificate>
++n6F0mN8OUAFxDamepKdGRApU8uZ35624o/I4
++</X509Certificate>
+ </X509Data>
+ </KeyInfo>
+ </Signature></KeyContainer>
+diff --git a/pskctool/tests/tst_libexamples.sh b/pskctool/tests/tst_libexamples.sh
+index 0e8e558b4cbefbac9f2ca301fddb2ac4b8cfbdfa..5cb52ce44f40a78ab886ff12d2eac64e5b5c4c7e 100755
+--- a/pskctool/tests/tst_libexamples.sh
++++ b/pskctool/tests/tst_libexamples.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+
+ # tst_libexamples.sh - keep pskctool output in GTK-DOC manual up to date
+-# Copyright (C) 2012-2021 Simon Josefsson
++# Copyright (C) 2012-2022 Simon Josefsson
+
+ # This program is free software: you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+@@ -45,7 +45,8 @@ fi
+
+ $PSKCTOOL --sign --sign-key $srcdir/pskc-ee-key.pem \
+ --sign-crt $srcdir/pskc-ee-crt.pem \
+- $srcdir/../../libpskc/examples/pskc-hotp.xml > foo
++ $srcdir/../../libpskc/examples/pskc-hotp.xml \
++ | sed 's,4</X509Cert,4\n</X509Cert,' > foo
+ if ! diff -ur $srcdir/../../libpskc/examples/pskc-hotp-signed.xml foo; then
+ echo "FAIL: pskctool --sign output change, commit updated file."
+ exit 1
+diff --git a/pskctool/tests/tst_sign.sh b/pskctool/tests/tst_sign.sh
+index b62757336061394746d60f706369127fe1db466d..2d452d69f2e6595ff85a34540939801324dbdfea 100755
+--- a/pskctool/tests/tst_sign.sh
++++ b/pskctool/tests/tst_sign.sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+
+ # tst_sign.sh - test that pskctool can sign and verify
+-# Copyright (C) 2012-2021 Simon Josefsson
++# Copyright (C) 2012-2022 Simon Josefsson
+
+ # This program is free software: you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+@@ -32,7 +32,7 @@ $PSKCTOOL --info --strict --debug $pskc_all > tmp-pre-human.txt
+ $PSKCTOOL --sign \
+ --sign-key $pskc_ee_key \
+ --sign-crt $pskc_ee_crt \
+- $pskc_all > tmp-signed.xml
++ $pskc_all | sed 's,4</X509Cert,4\n</X509Cert,' > tmp-signed.xml
+
+ diff -ur $pskc_all_signed tmp-signed.xml
+
diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm
index eda1b5ec51..a052a38853 100644
--- a/gnu/packages/protobuf.scm
+++ b/gnu/packages/protobuf.scm
@@ -212,10 +212,9 @@ internal RPC protocols and file formats.")
(sha256
(base32
"040rcs9fpv4bslhiy43v7dcrzakz4vwwpyqg4jp8bn24sl95ci7f"))))
- (arguments (substitute-keyword-arguments (package-arguments protobuf)
- ((#:phases phases)
- #~(modify-phases #$phases
- (delete 'disable-broken-tests)))))))
+ (build-system gnu-build-system)
+ (arguments '())
+ (outputs '("out"))))
(define-public protobuf-c
(package
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index c9eb226d8a..c9071c4cf6 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -1002,14 +1002,14 @@ protocol (Javascript Object Signing and Encryption).")
(define-public python-pycryptodome
(package
(name "python-pycryptodome")
- (version "3.11.0")
+ (version "3.15.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pycryptodome" version))
(sha256
(base32
- "1l3a80z3lxcj1q0hzj1d3plavy2d51y4vzcd85zj0zm7yyxrd022"))
+ "1f0qc0ns3ppybkr7wi66gsl5wfkcx1fdklmh3362nn84spddsdci"))
(modules '((guix build utils)))
(snippet pycryptodome-unbundle-tomcrypt-snippet)))
(build-system python-build-system)
@@ -1064,7 +1064,7 @@ PyCryptodome variants, the other being python-pycryptodomex.")
(method url-fetch)
(uri (pypi-uri "pycryptodomex" version))
(sha256
- (base32 "0vcd65ylri2a4pdqcc1897jasj7wfmqklj8x3pdynmdvark3d603"))
+ (base32 "1vf0xbsqvcp4k3cl8cmxrlij9a88hajw6d3z0jhd3c5d5nxz2hbk"))
(modules '((guix build utils)))
(snippet pycryptodome-unbundle-tomcrypt-snippet)))
(description
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 871062f697..905d79886f 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -3881,7 +3881,7 @@ pretty printer and a tree visitor.")
(substitute* "flask_restful/__init__.py"
(("flask\\.helpers") "flask.scaffold")))))))
(propagated-inputs
- (list python-aniso8601 python-flask python-pycrypto python-pytz))
+ (list python-aniso8601 python-flask python-pytz))
(native-inputs
(list ;; Optional dependency of Flask. Tests need it.
python-blinker python-mock ; For tests
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b0bf16e3da..509d57964f 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19274,8 +19274,6 @@ from the header, as well as section details and data available.")
(replace 'check
(lambda _
(invoke "python" "test/test_pbkdf2.py"))))))
- (propagated-inputs
- (list python-pycrypto)) ; optional
(home-page "https://www.dlitz.net/software/python-pbkdf2/")
(synopsis "Password-based key derivation")
(description "This module implements the password-based key derivation
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 5ed8ec2c8e..8cbb2c6a07 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -3741,35 +3741,32 @@ a binding language:
@end itemize\n")
(license license:lgpl3))) ;version 3 only (+ exception)
-;; There have been no public releases yet.
(define-public qtcolorwidgets
- (let ((commit "a95f72e935fe9e046061a1d1c3930cbfbcb533e0")
- (revision "1"))
- (package
- (name "qtcolorwidgets")
- (version (git-version "0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://gitlab.com/mattia.basaglia/Qt-Color-Widgets")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0dkiwlqh2gwhlp78c1fmchj3shl4p9inspcl96ya5aa8mn6kydy8"))))
- (build-system cmake-build-system)
- (arguments `(#:tests? #f)) ; There are no tests
- (native-inputs
- (list qttools-5))
- (inputs
- (list qtbase-5))
- (home-page "https://gitlab.com/mattia.basaglia/Qt-Color-Widgets")
- (synopsis "Color management widgets")
- (description "QtColorWidgets provides a Qt color dialog that is more
+ (package
+ (name "qtcolorwidgets")
+ (version "2.2.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/mattia.basaglia/Qt-Color-Widgets")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1fp7sr5a56bjp2abc6ng331q0bwvk6mf2nxdga81aj6cd9afs22q"))))
+ (build-system cmake-build-system)
+ (arguments '(#:tests? #f)) ;there are no tests
+ (native-inputs
+ (list qttools-5))
+ (inputs
+ (list qtbase-5))
+ (home-page "https://gitlab.com/mattia.basaglia/Qt-Color-Widgets")
+ (synopsis "Color management widgets")
+ (description "QtColorWidgets provides a Qt color dialog that is more
user-friendly than the default @code{QColorDialog} and several other
color-related widgets.")
- ;; Includes a license exception for combining with GPL2 code.
- (license license:lgpl3+))))
+ ;; Includes a license exception for combining with GPL2 code.
+ (license license:lgpl3+)))
(define-public qcustomplot
(package
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index a0cd130b6c..c0334f1760 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -28,7 +28,6 @@
;;; Copyright © 2022 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
-;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la>
;;;
;;; This file is part of GNU Guix.
;;;
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index f1d1342d5d..770bac3670 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -1153,14 +1153,14 @@ XSL-T processor. It also performs any necessary post-processing.")
(define-public xmlsec
(package
(name "xmlsec")
- (version "1.2.32")
+ (version "1.2.36")
(source (origin
(method url-fetch)
(uri (string-append "https://www.aleksey.com/xmlsec/download/"
"xmlsec1-" version ".tar.gz"))
(sha256
(base32
- "0hy0nwz57n9r5wwab9xa66gzwlwvzs54nhlfn3jh8q13acl710z3"))))
+ "100wsklff8x30rsg0xp191kg8p3z5va2d0q3iy08a791ic07xngh"))))
(build-system gnu-build-system)
(propagated-inputs ; according to xmlsec1.pc
(list libxml2 libxslt))
@@ -1175,6 +1175,8 @@ XSL-T processor. It also performs any necessary post-processing.")
supports XML security standards such as XML Signature, XML Encryption,
Canonical XML (part of Libxml2) and Exclusive Canonical XML (part of
Libxml2).")
+ (properties
+ '((upstream-name . "xmlsec1")))
(license (license:x11-style "file://COPYING"
"See 'COPYING' in the distribution."))))
@@ -1182,12 +1184,10 @@ Libxml2).")
(package/inherit xmlsec
(name "xmlsec-nss")
(native-inputs
- ;; For tests.
- `(("nss:bin" ,nss "bin") ; for certutil
- ,@(package-native-inputs xmlsec)))
+ (modify-inputs (package-native-inputs xmlsec)
+ (prepend `(,nss "bin")))) ;certutil, for tests
(inputs
- `(("nss" ,nss)
- ("libltdl" ,libltdl)))
+ (list nss libltdl))
(arguments
;; NSS no longer supports MD5 since 3.59, don't attempt to use it.
'(#:configure-flags '("--disable-md5")))
@@ -1197,8 +1197,7 @@ Libxml2).")
(package/inherit xmlsec
(name "xmlsec-openssl")
(inputs
- `(("openssl" ,openssl)
- ("libltdl" ,libltdl)))
+ (list openssl libltdl))
(synopsis "XML Security Library (using OpenSSL instead of GnuTLS)")))
(define-public minixml
diff --git a/gnu/services/databases.scm b/gnu/services/databases.scm
index fb3cd3c478..b7bd1e587e 100644
--- a/gnu/services/databases.scm
+++ b/gnu/services/databases.scm
@@ -6,8 +6,9 @@
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
-;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz>
+;;; Copyright © 2021 Aljosha Papsch <ep@stern-data.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -29,6 +30,7 @@
#:use-module (gnu services shepherd)
#:use-module (gnu system shadow)
#:use-module (gnu packages admin)
+ #:use-module (gnu packages base)
#:use-module (gnu packages databases)
#:use-module (guix build-system trivial)
#:use-module (guix build union)
@@ -532,6 +534,7 @@ applications.")))
(bind-address mysql-configuration-bind-address (default "127.0.0.1"))
(port mysql-configuration-port (default 3306))
(socket mysql-configuration-socket (default "/run/mysqld/mysqld.sock"))
+ (datadir mysql-configuration-datadir (default "/var/lib/mysql"))
(extra-content mysql-configuration-extra-content (default ""))
(extra-environment mysql-configuration-extra-environment (default #~'()))
(auto-upgrade? mysql-configuration-auto-upgrade? (default #t)))
@@ -549,112 +552,114 @@ applications.")))
(define mysql-configuration-file
(match-lambda
- (($ <mysql-configuration> mysql bind-address port socket extra-content)
+ (($ <mysql-configuration> mysql bind-address port socket datadir extra-content)
(mixed-text-file "my.cnf" "[mysqld]
-datadir=/var/lib/mysql
+datadir=" datadir "
socket=" socket "
bind-address=" bind-address "
port=" (number->string port) "
" extra-content "
"))))
-(define (%mysql-activation config)
- "Return an activation gexp for the MySQL or MariaDB database server."
- (let ((mysql (mysql-configuration-mysql config))
- (my.cnf (mysql-configuration-file config)))
- #~(begin
- (use-modules (ice-9 popen)
- (guix build utils))
- (let* ((mysqld (string-append #$mysql "/bin/mysqld"))
- (user (getpwnam "mysql"))
- (uid (passwd:uid user))
- (gid (passwd:gid user))
- (datadir "/var/lib/mysql")
- (rundir "/run/mysqld"))
- (mkdir-p datadir)
- (chown datadir uid gid)
- (mkdir-p rundir)
- (chown rundir uid gid)
- ;; Initialize the database when it doesn't exist.
- (when (not (file-exists? (string-append datadir "/mysql")))
- (if (string-prefix? "mysql-" (strip-store-file-name #$mysql))
- ;; For MySQL.
- (system* mysqld
- (string-append "--defaults-file=" #$my.cnf)
- "--initialize"
- "--user=mysql")
- ;; For MariaDB.
- ;; XXX: The 'mysql_install_db' script doesn't work directly
- ;; due to missing 'mkdir' in PATH.
- (let ((p (open-pipe* OPEN_WRITE mysqld
- (string-append
- "--defaults-file=" #$my.cnf)
- "--bootstrap"
- "--user=mysql")))
- ;; Create the system database, as does by 'mysql_install_db'.
- (display "create database mysql;\n" p)
- (display "use mysql;\n" p)
- (for-each
- (lambda (sql)
- (call-with-input-file
- (string-append #$mysql:lib "/share/mysql/" sql)
- (lambda (in) (dump-port in p))))
- '("mysql_system_tables.sql"
- "mysql_performance_tables.sql"
- "mysql_system_tables_data.sql"
- "fill_help_tables.sql"))
- ;; Remove the anonymous user and disable root access from
- ;; remote machines, as does by 'mysql_secure_installation'.
- (display "
-DELETE FROM user WHERE User='';
-DELETE FROM user WHERE User='root' AND
- Host NOT IN ('localhost', '127.0.0.1', '::1');
-FLUSH PRIVILEGES;
-" p)
- (close-pipe p))))))))
+(define (mysqld-wrapper config)
+ "Start mysqld, and initialize the system tables if necessary."
+ (program-file
+ "mysqld-wrapper"
+ (with-imported-modules (source-module-closure
+ '((guix build utils)))
+ (let ((mysql (mysql-configuration-mysql config))
+ (datadir (mysql-configuration-datadir config))
+ (my.cnf (mysql-configuration-file config)))
+ #~(begin
+ (use-modules (guix build utils))
+ (let* ((mysqld (string-append #$mysql "/bin/mysqld"))
+ (user (getpwnam "mysql"))
+ (uid (passwd:uid user))
+ (gid (passwd:gid user))
+ (rundir "/run/mysqld"))
+ (mkdir-p #$datadir)
+ (chown #$datadir uid gid)
+ (mkdir-p rundir)
+ (chown rundir uid gid)
+ (unless (file-exists? (string-append #$datadir "/mysql"))
+ (let ((init (system* #$(mysql-install config))))
+ (unless (= 0 (status:exit-val init))
+ (throw 'system-error "MySQL initialization failed."))))
+ ;; Drop privileges and start the server.
+ (setgid gid) (setuid uid)
+ (execl mysqld mysqld
+ (string-append "--defaults-file=" #$my.cnf))))))))
(define (mysql-shepherd-service config)
(list (shepherd-service
(provision '(mysql))
+ (requirement '(user-processes))
(documentation "Run the MySQL server.")
- (start (let ((mysql (mysql-configuration-mysql config))
+ (start (let ((mysql (mysql-configuration-mysql config))
(extra-env (mysql-configuration-extra-environment config))
(my.cnf (mysql-configuration-file config)))
#~(make-forkexec-constructor
- (list (string-append #$mysql "/bin/mysqld")
- (string-append "--defaults-file=" #$my.cnf))
- #:user "mysql" #:group "mysql"
- #:log-file "/var/log/mysqld.log"
- #:environment-variables #$extra-env)))
+ (list #$(mysqld-wrapper config))
+ #:log-file "/var/log/mysqld.log"
+ #:environment-variables #$extra-env)))
(stop #~(make-kill-destructor)))))
-(define (mysql-upgrade-wrapper mysql socket-file)
+(define (mysql-install config)
+ "Install MySQL system database and secure the installation."
+ (let ((mysql (mysql-configuration-mysql config))
+ (my.cnf (mysql-configuration-file config)))
+ (program-file
+ "mysql-install"
+ (with-imported-modules (source-module-closure
+ '((guix build utils)))
+ #~(begin
+ (use-modules (guix build utils))
+ ;; Make sed, mkdir, uname, etc available for mariadb-install-db.
+ (set-path-environment-variable "PATH" '("bin")
+ (list #$sed #$coreutils))
+ (if (string=? "mariadb" #$(package-name mysql))
+ ;; For MariaDB.
+ (system* #$(file-append mysql "/bin/mariadb-install-db")
+ (string-append "--defaults-file=" #$my.cnf)
+ "--skip-test-db"
+ "--user=mysql")
+ ;; For MySQL.
+ (system* #$(file-append mysql "/bin/mysqld")
+ (string-append "--defaults-file=" #$my.cnf)
+ "--initialize"
+ "--user=mysql")))))))
+
+(define (mysql-upgrade-wrapper config)
;; The MySQL socket and PID file may appear before the server is ready to
;; accept connections. Ensure the socket is responsive before attempting
;; to run the upgrade script.
- (program-file
- "mysql-upgrade-wrapper"
- #~(begin
- (let ((mysql-upgrade #$(file-append mysql "/bin/mysql_upgrade"))
- (timeout 10))
- (begin
- (let loop ((i 0))
- (catch 'system-error
- (lambda ()
- (let ((sock (socket PF_UNIX SOCK_STREAM 0)))
- (connect sock AF_UNIX #$socket-file)
- (close-port sock)
- ;; The socket is ready!
- (execl mysql-upgrade mysql-upgrade
- (string-append "--socket=" #$socket-file))))
- (lambda args
- (if (< i timeout)
- (begin
- (sleep 1)
- (loop (+ 1 i)))
- ;; No luck, give up.
- (throw 'timeout-error
- "MySQL server did not appear in time!"))))))))))
+ (let ((mysql (mysql-configuration-mysql config))
+ (socket-file (mysql-configuration-socket config))
+ (config-file (mysql-configuration-file config)))
+ (program-file
+ "mysql-upgrade-wrapper"
+ #~(begin
+ (let ((mysql-upgrade #$(file-append mysql "/bin/mysql_upgrade"))
+ (timeout 20))
+ (begin
+ (let loop ((i 0))
+ (catch 'system-error
+ (lambda ()
+ (let ((sock (socket PF_UNIX SOCK_STREAM 0)))
+ (connect sock AF_UNIX #$socket-file)
+ (close-port sock)
+ ;; The socket is ready!
+ (execl mysql-upgrade mysql-upgrade
+ (string-append "--defaults-file=" #$config-file)
+ "--user=mysql")))
+ (lambda args
+ (if (< i timeout)
+ (begin
+ (sleep 1)
+ (loop (+ 1 i)))
+ ;; No luck, give up.
+ (throw 'timeout-error
+ "MySQL server did not appear in time!")))))))))))
(define (mysql-upgrade-shepherd-service config)
(list (shepherd-service
@@ -662,17 +667,17 @@ FLUSH PRIVILEGES;
(requirement '(mysql))
(one-shot? #t)
(documentation "Upgrade MySQL database schemas.")
- (start (let ((mysql (mysql-configuration-mysql config))
- (socket (mysql-configuration-socket config)))
- #~(make-forkexec-constructor
- (list #$(mysql-upgrade-wrapper mysql socket))
- #:user "mysql" #:group "mysql"))))))
+ (start #~(make-forkexec-constructor
+ (list #$(mysql-upgrade-wrapper config))
+ #:user "mysql" #:group "mysql"
+ #:log-file "/var/log/mysql_upgrade.log")))))
(define (mysql-shepherd-services config)
- (if (mysql-configuration-auto-upgrade? config)
- (append (mysql-shepherd-service config)
- (mysql-upgrade-shepherd-service config))
- (mysql-shepherd-service config)))
+ (let ((mysql-services (mysql-shepherd-service config)))
+ (if (mysql-configuration-auto-upgrade? config)
+ (append mysql-services
+ (mysql-upgrade-shepherd-service config))
+ mysql-services)))
(define mysql-service-type
(service-type
@@ -680,8 +685,6 @@ FLUSH PRIVILEGES;
(extensions
(list (service-extension account-service-type
(const %mysql-accounts))
- (service-extension activation-service-type
- %mysql-activation)
(service-extension shepherd-root-service-type
mysql-shepherd-services)))
(default-value (mysql-configuration))
diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm
index 907824ac61..486d9f49d7 100644
--- a/gnu/services/guix.scm
+++ b/gnu/services/guix.scm
@@ -333,31 +333,38 @@
(documentation "Guix Build Coordinator")
(provision '(guix-build-coordinator))
(requirement '(networking))
- (start #~(make-forkexec-constructor
- (list #$(make-guix-build-coordinator-start-script
- database-uri-string
- allocation-strategy
- "/var/run/guix-build-coordinator/pid"
- package
- #:agent-communication-uri-string
- agent-communication-uri-string
- #:client-communication-uri-string
- client-communication-uri-string
- #:hooks hooks
- #:parallel-hooks parallel-hooks
- #:guile guile))
- #:user #$user
- #:group #$group
- #:pid-file "/var/run/guix-build-coordinator/pid"
- ;; Allow time for migrations to run
- #:pid-file-timeout 60
- #:environment-variables
- `(,(string-append
- "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
- "LC_ALL=en_US.utf8"
- "PATH=/run/current-system/profile/bin") ; for hooks
- #:log-file "/var/log/guix-build-coordinator/coordinator.log"))
- (stop #~(make-kill-destructor))))))
+ (start #~(lambda args
+ (parameterize ((%current-logfile-date-format ""))
+ (apply
+ make-forkexec-constructor
+ (list #$(make-guix-build-coordinator-start-script
+ database-uri-string
+ allocation-strategy
+ "/var/run/guix-build-coordinator/pid"
+ package
+ #:agent-communication-uri-string
+ agent-communication-uri-string
+ #:client-communication-uri-string
+ client-communication-uri-string
+ #:hooks hooks
+ #:parallel-hooks parallel-hooks
+ #:guile guile))
+ #:user #$user
+ #:group #$group
+ #:pid-file "/var/run/guix-build-coordinator/pid"
+ ;; Allow time for migrations to run
+ #:pid-file-timeout 60
+ #:environment-variables
+ `(,(string-append
+ "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
+ "LC_ALL=en_US.utf8"
+ "PATH=/run/current-system/profile/bin") ; for hooks
+ #:log-file "/var/log/guix-build-coordinator/coordinator.log"
+ args))))
+ (stop #~(make-kill-destructor))
+ (modules
+ `((shepherd comm)
+ ,@%default-modules))))))
(define (guix-build-coordinator-activation config)
#~(begin
@@ -419,61 +426,67 @@
(documentation "Guix Build Coordinator Agent")
(provision '(guix-build-coordinator-agent))
(requirement '(networking))
- (start #~(make-forkexec-constructor
- (list #$(file-append package "/bin/guix-build-coordinator-agent")
- #$(string-append "--coordinator=" coordinator)
- #$@(match authentication
- (($ <guix-build-coordinator-agent-password-auth>
- uuid password)
- #~(#$(string-append "--uuid=" uuid)
- #$(string-append "--password=" password)))
- (($ <guix-build-coordinator-agent-password-file-auth>
- uuid password-file)
- #~(#$(string-append "--uuid=" uuid)
- #$(string-append "--password-file="
- password-file)))
- (($ <guix-build-coordinator-agent-dynamic-auth>
- agent-name token)
- #~(#$(string-append "--name=" agent-name)
- #$(string-append "--dynamic-auth-token=" token)))
- (($
- <guix-build-coordinator-agent-dynamic-auth-with-file>
- agent-name token-file)
- #~(#$(string-append "--name=" agent-name)
- #$(string-append "--dynamic-auth-token-file="
- token-file))))
- #$(simple-format #f "--max-parallel-builds=~A"
- max-parallel-builds)
- #$@(if max-allocated-builds
- #~(#$(simple-format #f "--max-allocated-builds=~A"
- max-allocated-builds))
- #~())
- #$@(if max-1min-load-average
- #~(#$(simple-format #f "--max-1min-load-average=~A"
- max-1min-load-average))
- #~())
- #$@(if derivation-substitute-urls
- #~(#$(string-append
- "--derivation-substitute-urls="
+ (start
+ #~(lambda _
+ (parameterize ((%current-logfile-date-format ""))
+ (fork+exec-command
+ (list #$(file-append package "/bin/guix-build-coordinator-agent")
+ #$(string-append "--coordinator=" coordinator)
+ #$@(match authentication
+ (($ <guix-build-coordinator-agent-password-auth>
+ uuid password)
+ #~(#$(string-append "--uuid=" uuid)
+ #$(string-append "--password=" password)))
+ (($ <guix-build-coordinator-agent-password-file-auth>
+ uuid password-file)
+ #~(#$(string-append "--uuid=" uuid)
+ #$(string-append "--password-file="
+ password-file)))
+ (($ <guix-build-coordinator-agent-dynamic-auth>
+ agent-name token)
+ #~(#$(string-append "--name=" agent-name)
+ #$(string-append "--dynamic-auth-token=" token)))
+ (($
+ <guix-build-coordinator-agent-dynamic-auth-with-file>
+ agent-name token-file)
+ #~(#$(string-append "--name=" agent-name)
+ #$(string-append "--dynamic-auth-token-file="
+ token-file))))
+ #$(simple-format #f "--max-parallel-builds=~A"
+ max-parallel-builds)
+ #$@(if max-allocated-builds
+ #~(#$(simple-format #f "--max-allocated-builds=~A"
+ max-allocated-builds))
+ #~())
+ #$@(if max-1min-load-average
+ #~(#$(simple-format #f "--max-1min-load-average=~A"
+ max-1min-load-average))
+ #~())
+ #$@(if derivation-substitute-urls
+ #~(#$(string-append
+ "--derivation-substitute-urls="
(string-join derivation-substitute-urls " ")))
- #~())
- #$@(if non-derivation-substitute-urls
- #~(#$(string-append
- "--non-derivation-substitute-urls="
- (string-join non-derivation-substitute-urls " ")))
- #~())
- #$@(map (lambda (system)
- (string-append "--system=" system))
- (or systems '())))
- #:user #$user
- #:environment-variables
- `(,(string-append
- "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
- ;; XDG_CACHE_HOME is used by Guix when caching narinfo files
- "XDG_CACHE_HOME=/var/cache/guix-build-coordinator-agent"
- "LC_ALL=en_US.utf8")
- #:log-file "/var/log/guix-build-coordinator/agent.log"))
- (stop #~(make-kill-destructor))))))
+ #~())
+ #$@(if non-derivation-substitute-urls
+ #~(#$(string-append
+ "--non-derivation-substitute-urls="
+ (string-join non-derivation-substitute-urls " ")))
+ #~())
+ #$@(map (lambda (system)
+ (string-append "--system=" system))
+ (or systems '())))
+ #:user #$user
+ #:environment-variables
+ `(,(string-append
+ "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
+ ;; XDG_CACHE_HOME is used by Guix when caching narinfo files
+ "XDG_CACHE_HOME=/var/cache/guix-build-coordinator-agent"
+ "LC_ALL=en_US.utf8")
+ #:log-file "/var/log/guix-build-coordinator/agent.log"))))
+ (stop #~(make-kill-destructor))
+ (modules
+ `((shepherd comm)
+ ,@%default-modules))))))
(define (guix-build-coordinator-agent-activation config)
#~(begin
@@ -526,39 +539,44 @@
(provision '(guix-build-coordinator-queue-builds))
(requirement '(networking))
(start
- #~(make-forkexec-constructor
- (list
- #$(file-append
- package
- "/bin/guix-build-coordinator-queue-builds-from-guix-data-service")
- #$(string-append "--coordinator=" coordinator)
- #$@(map (lambda (system)
- (string-append "--system=" system))
- (or systems '()))
- #$@(map (match-lambda
- ((system . target)
- (string-append "--system-and-target=" system "=" target)))
- (or systems-and-targets '()))
- #$@(if guix-data-service
- #~(#$(string-append "--guix-data-service=" guix-data-service))
- #~())
- #$@(if guix-data-service-build-server-id
- #~(#$(simple-format
- #f
- "--guix-data-service-build-server-id=~A"
- guix-data-service-build-server-id))
- #~())
- #$@(if processed-commits-file
- #~(#$(string-append "--processed-commits-file="
- processed-commits-file))
- #~()))
- #:user #$user
- #:environment-variables
- `(,(string-append
- "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
- "LC_ALL=en_US.utf8")
- #:log-file "/var/log/guix-build-coordinator/queue-builds.log"))
- (stop #~(make-kill-destructor))))))
+ #~(lambda _
+ (parameterize ((%current-logfile-date-format ""))
+ (fork+exec-command
+ (list
+ #$(file-append
+ package
+ "/bin/guix-build-coordinator-queue-builds-from-guix-data-service")
+ #$(string-append "--coordinator=" coordinator)
+ #$@(map (lambda (system)
+ (string-append "--system=" system))
+ (or systems '()))
+ #$@(map (match-lambda
+ ((system . target)
+ (string-append "--system-and-target=" system "=" target)))
+ (or systems-and-targets '()))
+ #$@(if guix-data-service
+ #~(#$(string-append "--guix-data-service=" guix-data-service))
+ #~())
+ #$@(if guix-data-service-build-server-id
+ #~(#$(simple-format
+ #f
+ "--guix-data-service-build-server-id=~A"
+ guix-data-service-build-server-id))
+ #~())
+ #$@(if processed-commits-file
+ #~(#$(string-append "--processed-commits-file="
+ processed-commits-file))
+ #~()))
+ #:user #$user
+ #:environment-variables
+ `(,(string-append
+ "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
+ "LC_ALL=en_US.utf8")
+ #:log-file "/var/log/guix-build-coordinator/queue-builds.log"))))
+ (stop #~(make-kill-destructor))
+ (modules
+ `((shepherd comm)
+ ,@%default-modules))))))
(define (guix-build-coordinator-queue-builds-activation config)
#~(begin
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index b3dc9d2114..601c11b0d1 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2020,2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2021 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2022 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la>
;;;
;;; This file is part of GNU Guix.
;;;
diff --git a/gnu/tests/databases.scm b/gnu/tests/databases.scm
index 296d91d118..2ca13577a1 100644
--- a/gnu/tests/databases.scm
+++ b/gnu/tests/databases.scm
@@ -430,6 +430,9 @@ data double PRECISION NULL
(test-assert "mysql_upgrade completed"
(wait-for-file "/var/lib/mysql/mysql_upgrade_info" marionette))
+ (test-assert "socket is ready"
+ (wait-for-unix-socket "/run/mysqld/mysqld.sock" marionette))
+
(test-eq "create database"
0
(marionette-eval