diff options
33 files changed, 724 insertions, 322 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 diff --git a/guix/import/egg.scm b/guix/import/egg.scm index 52196583c4..0d6d72c465 100644 --- a/guix/import/egg.scm +++ b/guix/import/egg.scm @@ -67,7 +67,7 @@ ;;; ;;; * Support for CHICKEN 4? ;;; -;;; * Some packages will specify a specific version of a depencency in the +;;; * Some packages will specify a specific version of a dependency in the ;;; PACKAGE.egg file, how should we handle this? ;;; ;;; Code: diff --git a/guix/scripts/home.scm b/guix/scripts/home.scm index 754001a5b8..1c481ccf91 100644 --- a/guix/scripts/home.scm +++ b/guix/scripts/home.scm @@ -705,7 +705,7 @@ deploy the home environment described by these files.\n") (define (service-type-description-string type) "Return the rendered and localised description of TYPE, a service type." (and=> (service-type-description type) - (compose texi->plain-text P_))) + (compose texi->plain-text G_))) (define %service-type-metrics ;; Metrics used to estimate the relevance of a search result. diff --git a/guix/scripts/system/search.scm b/guix/scripts/system/search.scm index 44f00194cd..d978884518 100644 --- a/guix/scripts/system/search.scm +++ b/guix/scripts/system/search.scm @@ -127,7 +127,7 @@ procedure that may return a colorized version of its argument." (parameterize ((%text-width width*)) (texi->plain-text (string-append "description: " - (or (and=> (service-type-description type) P_) + (or (and=> (service-type-description type) G_) "")))) #\newline))))) @@ -144,7 +144,7 @@ procedure that may return a colorized version of its argument." (define (service-type-description-string type) "Return the rendered and localised description of TYPE, a service type." (and=> (service-type-description type) - (compose texi->plain-text P_))) + (compose texi->plain-text G_))) (define %service-type-metrics ;; Metrics used to estimate the relevance of a search result. diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in index 228ce04240..7009fc756c 100644 --- a/po/guix/POTFILES.in +++ b/po/guix/POTFILES.in @@ -4,10 +4,14 @@ gnu.scm gnu/packages.scm gnu/services.scm gnu/system.scm +gnu/services/base.scm +gnu/services/certbot.scm gnu/services/configuration.scm +gnu/services/file-sharing.scm gnu/services/networking.scm gnu/services/shepherd.scm gnu/services/samba.scm +gnu/services/version-control.scm gnu/home/services.scm gnu/home/services/ssh.scm gnu/home/services/symlink-manager.scm diff --git a/po/packages/POTFILES.in b/po/packages/POTFILES.in index 398f9adfdf..32d34d6456 100644 --- a/po/packages/POTFILES.in +++ b/po/packages/POTFILES.in @@ -57,8 +57,3 @@ gnu/packages/webkit.scm gnu/packages/web.scm gnu/packages/wordnet.scm gnu/packages/xiph.scm -gnu/services/base.scm -gnu/services/certbot.scm -gnu/services/file-sharing.scm -gnu/services/networking.scm -gnu/services/version-control.scm |