diff options
author | Marius Bakke <marius@gnu.org> | 2022-09-08 20:56:57 +0200 |
---|---|---|
committer | Marius Bakke <marius@gnu.org> | 2022-09-08 20:56:57 +0200 |
commit | fa894b3f4db835bd0bb52b32c7ec412e72b7e03a (patch) | |
tree | 2e06c29a1272ca0fad677184706ee95052993009 | |
parent | 6cfb2e6270b2759fb98a0de665235bcbb9b9eccf (diff) | |
parent | e8bded2de72c17317d7799b699a724086f92ed7b (diff) | |
download | guix-fa894b3f4db835bd0bb52b32c7ec412e72b7e03a.tar guix-fa894b3f4db835bd0bb52b32c7ec412e72b7e03a.tar.gz |
Merge branch 'master' into staging
34 files changed, 883 insertions, 369 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 20abfee772..db72e75a69 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -36437,7 +36437,7 @@ This is the data type representing the configuration of rshiny. @item @code{package} (default: @code{r-shiny}) The package to use. -@item @code{binary} (defaunlt @code{"rshiny"}) +@item @code{binary} (default @code{"rshiny"}) The name of the binary or shell script located at @code{package/bin/} to run when the service is run. diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm index b9d46c9350..0ed5dc5671 100644 --- a/gnu/build/file-systems.scm +++ b/gnu/build/file-systems.scm @@ -98,6 +98,18 @@ standard input is /dev/null." system*/console) program args)) +(define (call-with-input-file file proc) + "Like 'call-with-input-file', but pass O_CLOEXEC." + (let ((port #f)) + (dynamic-wind + (lambda () + (set! port (open file (logior O_RDONLY O_CLOEXEC)))) + (lambda () + (proc port)) + (lambda () + (close-port port) + (set! port #f))))) + (define (bind-mount source target) "Bind-mount SOURCE at TARGET." (mount source target "" MS_BIND)) @@ -1183,7 +1195,8 @@ corresponds to the symbols listed in FLAGS." (not (file-is-directory? source))) (unless (file-exists? target) (mkdir-p (dirname target)) - (call-with-output-file target (const #t))) + (close-fdes + (open-fdes target (logior O_WRONLY O_CREAT O_CLOEXEC)))) (mkdir-p target)) (cond diff --git a/gnu/local.mk b/gnu/local.mk index 50b9c37fac..cc96b77e03 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1681,6 +1681,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-3-fix-tests.patch \ %D%/packages/patches/python-3-hurd-configure.patch \ %D%/packages/patches/python-3-no-static-lib.patch \ + %D%/packages/patches/python-apsw-3.39.2.1-test-fix.patch \ %D%/packages/patches/python-aionotify-0.2.0-py3.8.patch \ %D%/packages/patches/python-argcomplete-1.11.1-fish31.patch \ %D%/packages/patches/python-cross-compile.patch \ diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index d3f2549152..e5bd12eeb8 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -74,7 +74,8 @@ #:use-module (guix hg-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) - #:use-module (guix utils)) + #:use-module (guix utils) + #:use-module (ice-9 match)) (define-public mpfrcx @@ -1009,10 +1010,39 @@ extends it by a set of algebraic capabilities.") #t)))) (build-system cmake-build-system) (arguments - '(;; Turn off debugging symbols to save space. + `(;; Turn off debugging symbols to save space. #:build-type "Release" + #:modules ((ice-9 match) + (guix build utils) + (guix build cmake-build-system)) + #:phases (modify-phases %standard-phases + (add-after 'unpack 'disable-some-tests + ;; Not all platforms are well supported by the test suite. + (lambda _ + ,@(match (%current-system) + ("i686-linux" + `((substitute* "test/CMakeLists.txt" + ((".*packetmath.*") "")))) + ("aarch64-linux" + `((substitute* "test/CMakeLists.txt" + ((".*array_cwise.*") "") + ((".*vectorization_logic.*") "")))) + ("armhf-linux" + `((substitute* "test/CMakeLists.txt" + ((".*geo_quaternion.*") "") + ((".*jacobisvd.*") "") + ((".*packetmath.*") "") + ((".*prec_inverse.*") "") + ((".*qr_colpivoting.*") "") + ((".*vectorization_logic.*") "")))) + ("riscv64-linux" + `((substitute* "test/CMakeLists.txt" + ((".*array_cwise.*") "") + ((".*geo_quaternion.*") "")))) + (_ + '((display "No tests to disable on this architecture.\n")))))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) (let* ((cores (parallel-job-count)) @@ -1101,6 +1131,11 @@ features, and more.") (substitute* "unsupported/CMakeLists.txt" (("add_subdirectory\\(test.*") "# Do not build the tests for unsupported features.\n")))))) + (arguments + (substitute-keyword-arguments (package-arguments eigen) + ((#:phases phases) + `(modify-phases ,phases + (delete 'disable-some-tests))))) (native-inputs (list gcc-7))))) @@ -1129,7 +1164,12 @@ features, and more.") '(begin (substitute* "unsupported/CMakeLists.txt" (("add_subdirectory\\(test.*") - "# Do not build the tests for unsupported features.\n"))))))))) + "# Do not build the tests for unsupported features.\n")))))) + (arguments + (substitute-keyword-arguments (package-arguments eigen) + ((#:phases phases) + `(modify-phases ,phases + (delete 'disable-some-tests)))))))) (define-public xtensor (package diff --git a/gnu/packages/browser-extensions.scm b/gnu/packages/browser-extensions.scm index 63bd11b226..db27101b9b 100644 --- a/gnu/packages/browser-extensions.scm +++ b/gnu/packages/browser-extensions.scm @@ -51,7 +51,7 @@ supported content to the Kodi media center.") (define ublock-origin (package (name "ublock-origin") - (version "1.44.0") + (version "1.44.2") (home-page "https://github.com/gorhill/uBlock") (source (origin (method git-fetch) @@ -62,7 +62,7 @@ supported content to the Kodi media center.") (file-name (git-file-name name version)) (sha256 (base32 - "0sws7xd8nvxnzcyw92i9sc5xv3hpqw1kzdj9vm8bhfxlh042l7ly")))) + "0hci19wv5sj4vph8k24bmcz7q74y1adyykwijqyga4p7h68jklw1")))) (build-system gnu-build-system) (outputs '("xpi" "firefox" "chromium")) (arguments diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index d7d649488b..10275970b1 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -1083,6 +1083,28 @@ Telemetry Transport (MQTT) publish-subscribe messaging protocol.") (home-page "https://github.com/awslabs/aws-c-mqtt") (license license:asl2.0))) +;; Note: there is another mimalloc embedded in rust-mimalloc (version 1.6.4). +(define-public mimalloc + (package + (name "mimalloc") + (version "2.0.6") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/microsoft/mimalloc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "05x2dl3zimflfj91ns3vrphmzpdlyyr230p9adqgfds101f16qmv")))) + (build-system cmake-build-system) + (arguments + `(#:build-type "Release")) + (synopsis "General purpose memory allocator") + (description "@code{mimalloc} is a drop-in replacement for @code{malloc}.") + (home-page "https://microsoft.github.io/mimalloc/") + (license license:expat))) + ;;; Factored out of the ck package so that it can be adjusted and called on ;;; the host side easily, without impacting the package definition. (define (gnu-triplet->ck-machine target) diff --git a/gnu/packages/containers.scm b/gnu/packages/containers.scm index a156f4191c..2c7e7ae9c4 100644 --- a/gnu/packages/containers.scm +++ b/gnu/packages/containers.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2021 Timmy Douglas <mail@timmydouglas.com> ;;; Copyright © 2022 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -271,7 +272,7 @@ configure network interfaces in Linux containers.") (define-public podman (package (name "podman") - (version "3.4.4") + (version "4.2.0") (source (origin (method git-fetch) @@ -279,46 +280,49 @@ configure network interfaces in Linux containers.") (url "https://github.com/containers/podman") (commit (string-append "v" version)))) (sha256 - (base32 "1q09qsl1wwiiy5njvb97n1j5f5jin4ckmzj5xbdfs28czb2kx3g5")) + (base32 "00wyjppd11hznmals9ax4s2qjklj6p1vfz4jjkp50bk8q4blxfbj")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments - `(#:make-flags (list ,(string-append "CC=" (cc-for-target)) - (string-append "PREFIX=" %output)) - #:tests? #f ; /sys/fs/cgroup not set up in guix sandbox - #:test-target "test" - #:phases (modify-phases %standard-phases - (delete 'configure) - (add-after 'unpack 'set-env - (lambda* (#:key inputs #:allow-other-keys) - ;; when running go, things fail because - ;; HOME=/homeless-shelter. - (setenv "HOME" "/tmp"))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - ;; (invoke "strace" "-f" "bin/podman" "version") - (invoke "make" "localsystem") - (invoke "make" "remotesystem")))) - (add-after 'unpack 'fix-hardcoded-paths - (lambda _ - (substitute* (find-files "libpod" "\\.go") - (("exec.LookPath[(][\"]slirp4netns[\"][)]") - (string-append "exec.LookPath(\"" - (which "slirp4netns") "\")"))) - (substitute* "hack/install_catatonit.sh" - (("CATATONIT_PATH=\"[^\"]+\"") - (string-append "CATATONIT_PATH=" (which "true")))) - (substitute* "vendor/github.com/containers/common/pkg/config/config_linux.go" - (("/usr/local/libexec/podman") - (string-append (assoc-ref %outputs "out") "/bin"))) - (substitute* "vendor/github.com/containers/common/pkg/config/default.go" - (("/usr/libexec/podman/conmon") (which "conmon")) - (("/usr/local/libexec/cni") - (string-append (assoc-ref %build-inputs "cni-plugins") - "/bin")) - (("/usr/bin/crun") (which "crun")))))))) + (list + #:make-flags + #~(list #$(string-append "CC=" (cc-for-target)) + (string-append "PREFIX=" #$output)) + #:tests? #f ; /sys/fs/cgroup not set up in guix sandbox + #:test-target "test" + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'set-env + (lambda* (#:key inputs #:allow-other-keys) + ;; when running go, things fail because + ;; HOME=/homeless-shelter. + (setenv "HOME" "/tmp"))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; (invoke "strace" "-f" "bin/podman" "version") + (invoke "make" "localsystem") + (invoke "make" "remotesystem")))) + (add-after 'unpack 'fix-hardcoded-paths + (lambda _ + (substitute* (find-files "libpod" "\\.go") + (("exec.LookPath[(][\"]slirp4netns[\"][)]") + (string-append "exec.LookPath(\"" + (which "slirp4netns") "\")"))) + (substitute* "hack/install_catatonit.sh" + (("CATATONIT_PATH=\"[^\"]+\"") + (string-append "CATATONIT_PATH=" (which "true")))) + (substitute* "vendor/github.com/containers/common/pkg/config/config_linux.go" + (("/usr/local/libexec/podman") + (string-append #$output "/bin"))) + (substitute* "vendor/github.com/containers/common/pkg/config/default.go" + (("/usr/libexec/podman/conmon") (which "conmon")) + (("/usr/local/libexec/cni") + (string-append #$(this-package-input "cni-plugins") + "/bin")) + (("/usr/bin/crun") (which "crun")))))))) (inputs (list btrfs-progs cni-plugins diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index f00317e949..606cd792c1 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -1023,7 +1023,7 @@ Google's C++ code base.") (let ((base abseil-cpp-20200923.3)) (package/inherit base (name "abseil-cpp") - (version "20220623.0") + (version "20220623.1") (source (origin (method git-fetch) (uri (git-reference @@ -1032,7 +1032,7 @@ Google's C++ code base.") (file-name (git-file-name name version)) (sha256 (base32 - "1kyvlpdkkh8spqrdh9yvq2d4ri46hwxljicy3i9mp7mk2rqcnyvj")))) + "0vxh2a74g4s45yr8kdjqnzl64k10qdlc0hbnn987a4cnwdj4bp9r")))) (arguments (substitute-keyword-arguments (package-arguments base) ((#:configure-flags flags) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 3b8d6db967..84aa0f5ebc 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -3540,18 +3540,22 @@ PickleShare.") (define-public python-apsw (package (name "python-apsw") - (version "3.39.2.0") + (version "3.39.2.1") + ;; The compressed release has fetching functionality disabled. (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rogerbinns/apsw") - (commit version))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append + "https://github.com/rogerbinns/apsw/releases/download/" + version "/apsw-" version ".zip")) (sha256 (base32 - "0q7fnk8n3m5mpjzh6xyhj409k8sacdbjsfis98my9c50fdn5sr7y")))) + "06x3qgg71xz8l3kz8gz04wkfp5f6zfrg476a4mm1c5hikqyw6ykj")) + ;; Cherry-picked from upstream, remove when bumping to 3.39.3. + (patches + (search-patches "python-apsw-3.39.2.1-test-fix.patch")))) (build-system python-build-system) + (native-inputs (list unzip)) (inputs (list sqlite-next)) ;SQLite 3.39 required. (arguments (list #:phases diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index f195179413..a8b9f1e786 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -78,6 +78,7 @@ #:use-module (gnu packages bdw-gc) #:use-module (gnu packages bison) #:use-module (gnu packages boost) + #:use-module (gnu packages c) #:use-module (gnu packages check) #:use-module (gnu packages cmake) #:use-module (gnu packages commencement) @@ -2895,6 +2896,97 @@ for the milling of PCBs. It also includes an autoleveller for the automatic dynamic calibration of the milling depth.") (license license:gpl3+)))) +;; libdxfrw has no readme, no version release, no tags. Initial commit says +;; "libdxfrw-0.6.3 import", but it shares no git history with "upstream" +;; https://github.com/codelibs/libdxfrw. Both are difficult to package +;; separately as they don't install properly. Copying in-tree instead of +;; #:recursive #t to avoid downloading the other bigger dependencies which +;; aren't needed. +(define libdxfrw-sources + (origin + (method git-fetch) + (uri (git-reference (url + "https://github.com/solvespace/libdxfrw") + (commit + "0b7b7b709d9299565db603f878214656ef5e9ddf"))) + (sha256 (base32 + "0d2wjq81466m3hb5cffiy99vhx0irwwy47yfxp318k2q4cvd5z2a")))) + +(define-public solvespace + (let ((commit "70bde63cb32a7f049fa56cbdf924e2695fcb2916") + (version "3.1")) + (package + (name "solvespace") + (version version) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/solvespace/solvespace") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1hbdln44k00a6vlklv2mq2c9zda3i9d5x0f7ks85w4v6zskhqnra")))) + (build-system cmake-build-system) + (native-inputs (list pkg-config gettext-minimal)) + (arguments + (list + #:build-type "Release" + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'unpack-libdxfrw + (lambda _ + (copy-recursively #$libdxfrw-sources + "extlib/libdxfrw"))) + (add-before 'configure 'embed-git-commit-hash + (lambda _ + ;; `git describe` doesn't work here, so embed + ;; the commit hash directly in CMakeLists.txt as + ;; described instead. + (substitute* "CMakeLists.txt" + (("include\\(GetGitCommitHash\\)") + (string-append "set(GIT_COMMIT_HASH " + #$commit ")"))))) + (add-before 'configure 'use-packaged-mimalloc + (lambda _ + (substitute* "CMakeLists.txt" + (("message\\(STATUS \"Using in-tree mimalloc\"\\)") + "message(STATUS \"Using guix packaged mimalloc\")") + (("add_subdirectory\\(extlib/mimalloc EXCLUDE_FROM_ALL\\)") + "find_package(mimalloc REQUIRED)"))))))) + (inputs (list cairo + eigen + freetype + gtkmm-3 + json-c + libpng + libspnav ;spaceware + mimalloc + mesa + zlib)) + (synopsis + "Parametric 2D/3D @acronym{CAD, computer-aided design} software") + (description + "SOLVESPACE is a parametric 3D @acronym{CAD, +computer-aided design} tool. Applications include: + +@itemize +@item modeling 3D parts — draw with extrudes, revolves, helixes and + Boolean (union / difference / intersection) operations +@item modeling 2D parts — draw the part as a single section, + and export DXF, PDF, SVG; use 3D assembly to verify fit +@item 3D-printed parts — export the STL or other triangle mesh + expected by most 3D printers +@item preparing CAM data — export 2D vector art for a waterjet + machine or laser cutter; or generate STEP or STL, for import into + third-party CAM software for machining +@item mechanism design — use the constraint solver to simulate planar + or spatial linkages, with pin, ball, or slide joints +@item plane and solid geometry — replace hand-solved trigonometry and spreadsheets + with a live dimensioned drawing +@end itemize") + (home-page "https://solvespace.com/") + (license license:gpl3+)))) + (define-public syscall-intercept ;; Upstream provides no tag. Also, last version update is 4 years old. (let ((commit "304404581c57d43478438d175099d20260bae74e") diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 09445cd00c..7a23aa8552 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -2735,7 +2735,7 @@ and readability. This package bundles those icons into a font.") (define-public font-lxgw-wenkai (package (name "font-lxgw-wenkai") - (version "1.235.2") + (version "1.240") (source (origin (method url-fetch) (uri (string-append @@ -2743,7 +2743,7 @@ and readability. This package bundles those icons into a font.") version "/lxgw-wenkai-v" version ".tar.gz")) (sha256 (base32 - "17li3xry4j4ccdnwz2pcnf0gv7c5mwq0h5fwvl7ar28brn2qgdbk")))) + "1rg6i6fqs1b0b2g4kijimkyqbxfn6n8ac74rppsizq65n6crvfib")))) (build-system font-build-system) (home-page "https://lxgw.github.io/2021/01/28/Klee-Simpchin/") (synopsis "Simplified Chinese Imitation Song typeface") @@ -2757,7 +2757,7 @@ within GB 2312, standard glyphs for Mainland China is used.") (package (inherit font-lxgw-wenkai) (name "font-lxgw-wenkai-tc") - (version "0.920") + (version "0.921") (source (origin (method url-fetch) (uri (string-append @@ -2765,7 +2765,7 @@ within GB 2312, standard glyphs for Mainland China is used.") version "/lxgw-wenkai-tc-v" version ".tar.gz")) (sha256 (base32 - "1kysqzi19ldd1a3pd9axmggcbm1719myq6i6q6fdb1afscn272cp")))) + "0s7zvb8i1f7ziw8r94l1f3rcv21b80dbgc43zjwz34s43465lwrb")))) (home-page "https://github.com/lxgw/LxgwWenKaitc") (synopsis "Traditional Chinese Imitation Song typeface") (description diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 2057aa47cf..fbb0dc1206 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -12471,7 +12471,7 @@ profiler via Sysprof, debugging support, and more.") (define-public komikku (package (name "komikku") - (version "0.40.0") + (version "0.41.0") (source (origin (method git-fetch) @@ -12481,7 +12481,7 @@ profiler via Sysprof, debugging support, and more.") (file-name (git-file-name name version)) (sha256 (base32 - "12l6qks4kwi75ss61yx1f515nb30d987qw3yhi4a36w5xz721p5z")))) + "17r059srxrx26w40swy47pdpyigyjdczp8550g4rfh86qs3ld4il")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index a0f902e534..b477fee537 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -33,6 +33,7 @@ #:use-module (gnu packages file) #:use-module (gnu packages aidc) #:use-module (gnu packages autotools) + #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) #:use-module (gnu packages curl) @@ -349,29 +350,35 @@ services.") (define-public gnunet-scheme (package (name "gnunet-scheme") - (version "0.2") + (version "0.3") (source (origin (method git-fetch) (uri (git-reference (url "https://git.gnunet.org/git/gnunet-scheme.git") - (commit (string-append "v" version)))) + ;; Go three commits beyond the v0.3 tag, as these three + ;; commits work-around + ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=49623>. + (commit "f5dc44e66373c29f1c84ea89d8080939a8dfbfd2"))) (file-name (git-file-name name version)) (sha256 (base32 - "0a11n58m346vs2khns2hfnxv8lbscf8aaqzhmq0d7nwdpn808nrp")) + "0kvqbqijfyp3fhsqjyzwd7b3cm5khwv557wq196mv6rx47aaivgd")) (modules '((guix build utils))) - ;; XXX: Work-around - ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=49623>, - ;; this can be removed once Guile > 3.0.7 is released. - (snippet '(substitute* '("gnu/gnunet/config/parser.scm" - "tests/config-parser.scm") - (("#\\{\\$\\{\\}\\}#") "#{${;};}#") - (("#\\{\\$\\{:-\\}\\}#") "#{${;:-};}#") - (("#\\{\\$\\{\\}\\}# #\\{\\$\\{:-\\}\\}#") - "#{$\\x7b;\\x7d;}# #{$\\x7b;:-\\x7d;}#") - (("'#\\{\\$\\{\\}\\}# '#\\{\\$\\{:-\\}\\}#") - "'#{$\\x7b;\\x7d;}# '#{$\\x7b;:-\\x7d;}#"))))) + (snippet + ;; Unbundle dependencies. TODO: build-aux/test-driver.scm + ;; is bundled too, but it's not yet automatically copied by + ;; autoreconf -i. + #~(delete-file "build-aux/config.rpath")))) (build-system gnu-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + ;; For reproducibility, do not insert real timestamps in the PDF. + (add-after 'unpack 'reproducible-timestamp + (lambda _ + (substitute* "Makefile.am" + (("\\$\\(TEXMACS_CONVERT\\)") + "faketime -m -f '1970-01-01 00:00:00' $(TEXMACS_CONVERT)"))))))) (inputs (list guile-3.0)) ;for pkg-config (propagated-inputs (list guile-bytestructures guile-gcrypt guile-pfds guile-fibers-1.1)) @@ -382,6 +389,7 @@ services.") guile-gcrypt guile-pfds guile-fibers-1.1 + libfaketime automake autoconf pkg-config @@ -390,11 +398,19 @@ services.") guile-quickcheck)) ;for tests (synopsis "Guile implementation of GNUnet client libraries") (description - "This package provides Guile modules for connecting to the NSE (network -size estimation) and DHT (distributed hash table) services of GNUnet. It also -has infrastructure for writing new GNUnet services and connecting to them and -can be used from multi-threaded environments. It is not to be confused with -@code{guile-gnunet} -- @code{guile-gnunet} supports a different set of services.") + "This package provides Guile modules for connecting to various +GNUnet services. It also has infrastructure for writing new GNUnet services and +connecting to them and can be used from multi-threaded environments. It is not +to be confused with @code{guile-gnunet} -- @code{guile-gnunet} supports a different +set of services. + +The following services are supported: + +@itemize +@item NSE (network size estimation) +@item DHT (distributed hash table) +@item CADET (secure end-to-end communication between arbitrary peers) +@end itemize") ;; Most code is licensed as AGPL and a few modules are licensed as LGPL ;; or GPL. Documentation is licensed as GFDL. (license (list license:agpl3+ license:gpl3+ license:fdl1.3+ license:lgpl3+)) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 697223cfdb..d4300f01da 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -2306,97 +2306,89 @@ a tetrahedral mesh, isovalue discretization and Lagrangian movement; (license license:lgpl3+))) (define-public f3d - ;; There have been many improvements since the last tagged version (1.2.1, - ;; released in December 2021), including support for the Alembic file - ;; format. - (let ((commit "46df21fe9409349917af5e6f7d1cb931f4c68e59") - (revision "0")) - (package - (name "f3d") - ;; F3D has not actually been tagged as 1.3.0-pre, but upstream commit - ;; 401d4d27b2094568378c07f400fbad48b7af3168 updated the version string - ;; to 1.3.0. - (version (git-version "1.3.0-pre" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/f3d-app/f3d") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0x0jw9vqf1b8pxh84xpr47hzcjynk07dp8q7r2xihh9cd00kglp1")) - (modules '((guix build utils))) - (snippet - '(begin - (delete-file "application/cxxopts.hpp") - (delete-file "application/json.hpp") - (substitute* "application/F3DOptionsParser.cxx" - (("^#include \"cxxopts\\.hpp\"") - "#include <cxxopts.hpp>") - (("^#include \"json\\.hpp\"") - "#include <nlohmann/json.hpp>")))))) - (build-system cmake-build-system) - ;; The package cannot easily be split into out and lib outputs because - ;; VTK's vtkModule.cmake complains, and also the CMake files in - ;; /lib/cmake/f3d expect the f3d executable and library to be available, - ;; as they set up targets for both of them. - (arguments - (list - ;; Many tests require files supplied by git-lfs. - ;; Also, some tests segfault (after an exception?) but the tested - ;; behavior, i.e., when the program is run manually, does not (for - ;; example, TestNonExistentConfigFile and TestInvalidConfigFile). - ;; Upstream is aware of occasionally flaky tests [1], but the tests - ;; run in CI seem to be passing. - ;; Anyway, the program runs and is able to open at least STL files - ;; without issue. - ;; - ;; [1]: https://github.com/f3d-app/f3d/issues/92 - #:tests? #f - #:configure-flags - #~(list (string-append "-DCMAKE_INSTALL_DOCDIR=" #$output - "/share/doc/" #$name "-" #$version) - "-DBUILD_TESTING=OFF" - "-DF3D_GENERATE_MAN=ON" - "-DF3D_INSTALL_DEFAULT_CONFIGURATION_FILE=ON" - "-DF3D_INSTALL_DEFAULT_CONFIGURATION_FILE_IN_PREFIX=ON" - "-DF3D_INSTALL_MIME_TYPES_FILE=ON" - "-DF3D_INSTALL_THUMBNAILER_FILES=ON" - "-DF3D_MODULE_ALEMBIC=ON" - "-DF3D_MODULE_ASSIMP=ON" - "-DF3D_MODULE_EXTERNAL_RENDERING=ON" - "-DF3D_MODULE_OCCT=ON"))) - (native-inputs - (list cxxopts - help2man - json-modern-cxx)) - (inputs - (list alembic - assimp - double-conversion - eigen - expat - fontconfig - freetype - glew - hdf5 - imath - jsoncpp - libjpeg-turbo - libpng - libtiff - libx11 - lz4 - netcdf - opencascade-occt - vtk - zlib)) - (home-page "https://f3d-app.github.io/f3d/") - (synopsis "VTK-based 3D viewer") - (description "F3D (pronounced @samp{/fɛd/}) is a VTK-based 3D viewer -with simple interaction mechanisms and which is fully controllable using -arguments on the command line. It supports a range of file formats (including -animated glTF, STL, STEP, PLY, OBJ, FBX), and provides numerous rendering and -texturing options.") - (license license:bsd-3)))) + (package + (name "f3d") + (version "1.3.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/f3d-app/f3d") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hdfgwf5d24ykab634xg4vv9r09nh96ss7hhnqnh5nmw4abhxzg7")) + (modules '((guix build utils))) + (snippet + #~(begin + (delete-file "application/cxxopts.hpp") + (delete-file "application/json.hpp") + (substitute* "application/F3DOptionsParser.cxx" + (("^#include \"cxxopts\\.hpp\"") + "#include <cxxopts.hpp>") + (("^#include \"json\\.hpp\"") + "#include <nlohmann/json.hpp>")))))) + (build-system cmake-build-system) + ;; The package cannot easily be split into out and lib outputs because + ;; VTK's vtkModule.cmake complains, and also the CMake files in + ;; /lib/cmake/f3d expect the f3d executable and library to be available, + ;; as they set up targets for both of them. + (arguments + (list + ;; Many tests require files supplied by git-lfs. + ;; Also, some tests segfault (after an exception?) but the tested + ;; behavior, i.e., when the program is run manually, does not (for + ;; example, TestNonExistentConfigFile and TestInvalidConfigFile). + ;; Upstream is aware of occasionally flaky tests [1], but the tests + ;; run in CI seem to be passing. + ;; Anyway, the program runs and is able to open at least STL files + ;; without issue. + ;; + ;; [1]: https://github.com/f3d-app/f3d/issues/92 + #:tests? #f + #:configure-flags + #~(list (string-append "-DCMAKE_INSTALL_DOCDIR=" #$output + "/share/doc/" #$name "-" #$version) + "-DBUILD_TESTING=OFF" + "-DF3D_GENERATE_MAN=ON" + "-DF3D_INSTALL_DEFAULT_CONFIGURATION_FILE=ON" + "-DF3D_INSTALL_DEFAULT_CONFIGURATION_FILE_IN_PREFIX=ON" + "-DF3D_INSTALL_MIME_TYPES_FILES=ON" + "-DF3D_INSTALL_THUMBNAILER_FILES=ON" + "-DF3D_MODULE_ALEMBIC=ON" + "-DF3D_MODULE_ASSIMP=ON" + "-DF3D_MODULE_EXTERNAL_RENDERING=ON" + "-DF3D_MODULE_OCCT=ON"))) + (native-inputs + (list cxxopts + help2man + json-modern-cxx)) + (inputs + (list alembic + assimp + double-conversion + eigen + expat + fontconfig + freetype + glew + hdf5 + imath + jsoncpp + libjpeg-turbo + libpng + libtiff + libx11 + lz4 + netcdf + opencascade-occt + vtk + zlib)) + (home-page "https://f3d-app.github.io/f3d/") + (synopsis "VTK-based 3D viewer") + (description "F3D (pronounced @samp{/fɛd/}) is a VTK-based 3D viewer with +simple interaction mechanisms and which is fully controllable using arguments +on the command line. It supports a range of file formats (including animated +glTF, STL, STEP, PLY, OBJ, FBX), and provides numerous rendering and texturing +options.") + (license license:bsd-3))) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index c3ef7085a5..3c1e1ac848 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -2566,7 +2566,7 @@ shell scripts. Example of how to use @code{yad} can be consulted at (define-public dragon-drop (package (name "dragon-drop") - (version "1.1.1") + (version "1.2.0") (source (origin (method git-fetch) (uri @@ -2576,7 +2576,7 @@ shell scripts. Example of how to use @code{yad} can be consulted at (file-name (git-file-name name version)) (sha256 (base32 - "0fgzz39007fdjwq72scp0qygp2v3zc5f1xkm0sxaa8zxm25g1bra")))) + "1cspkrr976mqi6cjkgrckdmjbgahnxmq267wn1zd7gamv64vm8f2")))) (build-system gnu-build-system) (inputs (list gtk+)) (native-inputs (list pkg-config)) diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index ff880ef79d..77979e8b8f 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -110,7 +110,7 @@ (define-public ytfzf (package (name "ytfzf") - (version "2.3") + (version "2.4.1") (home-page "https://github.com/pystardust/ytfzf") (source (origin @@ -121,7 +121,7 @@ (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "01prcg6gfwy1r49v92pkzxay9iadqqhpaxvn8jmij2jm5l50iynd")))) + (base32 "198qhnjklrgrjs35ygym6sgx1ibwn6qrihfiginvmx38gdavdj4x")))) (build-system gnu-build-system) (arguments (list @@ -162,6 +162,7 @@ libnotify mpv ncurses + perl ;for convert-ascii-escape.pl python-ueberzug sed util-linux diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index 1c1d82758b..50796df89e 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -282,7 +282,7 @@ PostScript, and PDF. Additional tools include the @command{man} viewer, and (base32 "12vb15gs56g8wl5nqlm4llr508brh4m2lfknhq4lizbxzqzawkb1")))) (build-system gnu-build-system) (arguments - '(#:phases (modify-phases %standard-phases (delete 'configure)) + `(#:phases (modify-phases %standard-phases (delete 'configure)) ;; The 'all' target depends on three targets that directly populate ;; $(MANDIR) based on its current contents. Doing that in parallel @@ -290,9 +290,7 @@ PostScript, and PDF. Additional tools include the @command{man} viewer, and #:parallel-build? #f #:tests? #f - #:make-flags (list (string-append "mandir=" - (assoc-ref %outputs "out") - "/share/man")))) + #:make-flags ,#~(list (string-append "mandir=" #$output "/share/man")))) (home-page "https://www.kernel.org/doc/man-pages/") (synopsis "Development manual pages from the Linux project") (description @@ -302,6 +300,39 @@ Linux kernel and C library interfaces employed by user-space programs.") ;; Each man page has its own license; some are GPLv2+, some are MIT/X11. (license license:gpl2+))) +(define-public man-pages-posix + (package + (name "man-pages-posix") + (version "2013-a") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kernel.org/linux/docs/man-pages/" + "man-pages-posix/man-pages-posix-" version + ".tar.xz")) + (sha256 + (base32 "0258j05zdrxpgdj8nndbyi7bvrs8fxdksb0xbfrylzgzfmf3lqqr")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + ;; The compress-documentation phase doesn't pick up on our manpages as + ;; its regex doesn't support trailing letters, so manually compress. + #:make-flags ,#~(list (string-append "prefix=" #$output) "gz") + #:license-file-regexp "POSIX-COPYRIGHT" + #:phases (modify-phases %standard-phases (delete 'configure)))) + (home-page "https://www.kernel.org/doc/man-pages/") + (synopsis "Man pages from the POSIX.1-2013 standard") + (description + "This package provides excerpts from the POSIX.1-2008 and TC1 standards +(collectively, POSIX.1-2013) in manual page form. While the Linux man-pages +project documents the system as it exists on Linux- and glibc-based systems, +this package documents the portable software API as nominally implemented by +many Unix-likes.") + (license (license:fsdg-compatible "file://POSIX-COPYRIGHT" + "Redistribution of this material is permitted so long as this +notice and the corresponding notices within each POSIX manual page are retained +on any distribution, and the nroff source is included.")))) + (define-public help2man ;; TODO: Manual pages for languages not available from the implicit ;; input "locales" contain the original (English) text. diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 5b6440455e..627050eeec 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -134,6 +134,7 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages haskell) + #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) #:use-module (gnu packages java) @@ -476,7 +477,7 @@ playing your music.") (define-public strawberry (package (name "strawberry") - (version "1.0.7") + (version "1.0.9") (source (origin (method git-fetch) (uri (git-reference @@ -485,7 +486,7 @@ playing your music.") (file-name (git-file-name name version)) (sha256 (base32 - "17mfavbbzx7hp7j5n9i7c3rajy16jicarabrl174p4gjv4zpy2sc")) + "0gm97sdz78s67rnyrs4ixg5dwv2haxdmb7s21yqb8axp624vvalp")) (modules '((guix build utils) (ice-9 regex))) (snippet @@ -542,6 +543,7 @@ playing your music.") gstreamer gst-plugins-base gst-plugins-good + icu4c libcdio libmtp protobuf diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 4ac32581fa..2d1fe914e3 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -63,6 +63,7 @@ #:use-module (gnu packages dbm) #:use-module (gnu packages docbook) #:use-module (gnu packages file) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages flex) #:use-module (gnu packages gcc) #:use-module (gnu packages gettext) @@ -1900,14 +1901,14 @@ the boot loader configuration.") (define-public flatpak (package (name "flatpak") - (version "1.12.7") + (version "1.14.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/flatpak/flatpak/releases/download/" version "/flatpak-" version ".tar.xz")) (sha256 - (base32 "05lkpbjiwp69q924i1jfyk5frcqbdbv9kyzbqwm2hy723i9jmdbd")) + (base32 "05bqy9kwmaj32y7f94fydcz3k63bsgn4mbcp4pglv8hffxrnj9wf")) (patches (search-patches "flatpak-fix-path.patch" "flatpak-unset-gdk-pixbuf-for-sandbox.patch")))) @@ -1976,8 +1977,10 @@ cp -r /tmp/locale/*/en_US.*"))) socat which)) (inputs - (list appstream-glib + (list appstream + appstream-glib bubblewrap + curl dconf fuse gdk-pixbuf diff --git a/gnu/packages/patches/python-apsw-3.39.2.1-test-fix.patch b/gnu/packages/patches/python-apsw-3.39.2.1-test-fix.patch new file mode 100644 index 0000000000..cc233e3ccd --- /dev/null +++ b/gnu/packages/patches/python-apsw-3.39.2.1-test-fix.patch @@ -0,0 +1,27 @@ +From 1111f902075169bd0d96cdd10607ef8499f0fed5 Mon Sep 17 00:00:00 2001 +From: Roger Binns <rogerb@rogerbinns.com> +Date: Mon, 5 Sep 2022 07:12:25 -0700 +Subject: [PATCH] Deal with mismatched SQLITE_ENABLE_COLUMN_METADATA + +Address #363 +--- + apsw/tests.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletion(-) + +diff --git a/apsw/tests.py b/apsw/tests.py +index b4a94d3..256ead0 100644 +--- a/apsw/tests.py ++++ b/apsw/tests.py +@@ -772,8 +772,8 @@ class APSW(unittest.TestCase): + c.execute("drop table foo; create table foo (%s)" % (", ".join(["[%s] %s" % (n, t) for n, t in cols]), )) + c.execute("insert into foo([x a space]) values(1)") + c.execute("create temp table two(fred banana); insert into two values(7); create temp view three as select fred as [a space] from two") +- has_full=any(o=="ENABLE_COLUMN_METADATA" or o.startswith("ENABLE_COLUMN_METADATA=") for o in apsw.compile_options) ++ has_full=any(o=="ENABLE_COLUMN_METADATA" or o.startswith("ENABLE_COLUMN_METADATA=") for o in apsw.compile_options) if apsw.using_amalgamation else hasattr(c, "description_full") + for row in c.execute("select * from foo"): + self.assertEqual(cols, c.getdescription()) + self.assertEqual(has_full, hasattr(c, "description_full")) + +base-commit: f628374c5857d940067ef26c9ea4e85a08a94f76 +-- +2.37.2 diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm index ce0ba4b6d2..b218759bf8 100644 --- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -1226,7 +1226,7 @@ aggregated sum and more.") (define-public python-pyvista (package (name "python-pyvista") - (version "0.35.2") + (version "0.36.1") (source ;; The PyPI tarball does not contain the tests. ;; (However, we don't yet actually run the tests.) @@ -1237,7 +1237,7 @@ aggregated sum and more.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1qmxrhqm3ag736yb761jy1himwlr3p676xyqbry61h97dj11n6sq")))) + (base32 "1kjilcrz2cyh67n79r8dpxrans99mlviz2whc6g7j8hgn7v14z2n")))) (build-system python-build-system) (propagated-inputs (list python-appdirs diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 3ec132ea22..59b4264285 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -29,7 +29,7 @@ ;;; Copyright © 2016-2022 Marius Bakke <marius@gnu.org> ;;; Copyright © 2016, 2017, 2021, 2022 Stefan Reichör <stefan@xsteve.at> ;;; Copyright © 2016, 2017, 2019 Alex Vong <alexvong1995@gmail.com> -;;; Copyright © 2016, 2017, 2018, 2021 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2016, 2017, 2018, 2021, 2022 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2016, 2017, 2018, 2020, 2021 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2016–2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be> @@ -10008,13 +10008,13 @@ function signatures.") (define-public python-sympy (package (name "python-sympy") - (version "1.10.1") + (version "1.11.1") (source (origin (method url-fetch) (uri (pypi-uri "sympy" version)) (sha256 - (base32 "0yvqb2fhrm81skl8s9znbkkjfb1a09n64qqlc1r225cyvzzywfar")))) + (base32 "0n46x1rfy8c2a9za3yp2va5icigxj805f9fmiq8c1drwwvf808z3")))) (build-system python-build-system) (arguments `(#:phases @@ -30739,3 +30739,40 @@ platform using the ActivityPub protocol.") "@code{python-lief} is a cross platform library which can parse, modify and abstract ELF, PE and MachO formats.") (license license:asl2.0))) + +(define-public python-pymonad + (package + (name "python-pymonad") + (version "2.4.0") + ;; The tests are incomplete in the PyPI archive. + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jasondelaat/pymonad") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ci1mpydldiyg9qv6d19ljhfh7wxlrl2k4mlvqd9bm7dqvpdjsx7")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "./run_tests.sh"))))))) + (home-page "https://github.com/jasondelaat/pymonad") + (synopsis "Monadic style functional programming for Python") + (description "@code{python-pymonad} implements data structures typically +available in purely functional or functional first programming languages such +as Haskell and F#. Included are + +@itemize +@item Monad and Monoid data types with several common monads such as Maybe and +State +@item Useful tools such as the @code{@@curry} decorator for defining curried +functions +@item Type annotations to help ensure correct usage +@end itemize") + (license license:bsd-3))) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 6b571f6d12..edbdf7cfad 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -865,7 +865,7 @@ ease from the desktop to a microcontroller or embedded system.") (substitute* '("lib_pypy/_md5.py" "lib_pypy/_sha1.py") ((shebang-match-python) shebang-pypy3)))) - (copy-recursively dist-dir out))))))) + (copy-recursively dist-dir #$output))))))) (native-inputs (list gzip nss-certs ; For ssl tests diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 9359a9f382..a1ef352263 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -24,6 +24,7 @@ ;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; Copyright © 2022 Foo Chuan Wei <chuanwei.foo@hotmail.com> +;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -3751,6 +3752,9 @@ color-related widgets.") "QCustomPlot is a Qt C++ widget providing 2D plots, graphs and charts.") (license license:gpl3+))) +;; TODO: Split shiboken2 binding generator into a dedicated output. +;; This executable requires libxml2, libxslt, clang-toolchain at runtime. +;; The libshiboken library only requires Qt and Python at runtime. (define-public python-shiboken-2 (package (name "python-shiboken-2") @@ -3773,30 +3777,31 @@ color-related widgets.") qtbase-5 qtxmlpatterns)) (arguments - `(#:tests? #f - ;; FIXME: Building tests fails - #:configure-flags '("-DBUILD_TESTS=off") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'use-shiboken-dir-only - (lambda _ (chdir "sources/shiboken2") #t)) - (add-before 'configure 'make-files-writable-and-update-timestamps - (lambda _ - ;; The build scripts need to modify some files in - ;; the read-only source directory, and also attempts - ;; to create Zip files which fails because the Zip - ;; format does not support timestamps before 1980. - (let ((circa-1980 (* 10 366 24 60 60))) - (for-each (lambda (file) - (make-file-writable file) - (utime file circa-1980 circa-1980)) - (find-files "."))) - #t)) - (add-before 'configure 'set-build-env - (lambda* (#:key inputs #:allow-other-keys) - (let ((llvm (assoc-ref inputs "clang-toolchain"))) - (setenv "CLANG_INSTALL_DIR" llvm) - #t)))))) + (list + #:tests? #f + ;; FIXME: Building tests fails + #:configure-flags #~(list "-DBUILD_TESTS=off") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'use-shiboken-dir-only + (lambda _ (chdir "sources/shiboken2") #t)) + (add-before 'configure 'make-files-writable-and-update-timestamps + (lambda _ + ;; The build scripts need to modify some files in + ;; the read-only source directory, and also attempts + ;; to create Zip files which fails because the Zip + ;; format does not support timestamps before 1980. + (let ((circa-1980 (* 10 366 24 60 60))) + (for-each (lambda (file) + (make-file-writable file) + (utime file circa-1980 circa-1980)) + (find-files "."))) + #t)) + (add-before 'configure 'set-build-env + (lambda _ + (let ((llvm #$(this-package-input "clang-toolchain"))) + (setenv "CLANG_INSTALL_DIR" llvm) + #t)))))) (home-page "https://wiki.qt.io/Qt_for_Python") (synopsis "Shiboken generates bindings for C++ libraries using CPython source code") @@ -3810,6 +3815,40 @@ color-related widgets.") license:lgpl3 license:bsd-3)))) +(define-public python-shiboken-6 + (package + (inherit python-shiboken-2) + (name "python-shiboken-6") + (version "6.3.1") + (source (origin + (method url-fetch) + (uri (string-append "https://download.qt.io/official_releases" + "/QtForPython/pyside6/PySide6-" version + "-src/pyside-setup-opensource-src-" + version ".tar.xz")) + (sha256 + (base32 + "0xwri69nnbhn6fajm7l045r0s0qv8nlq6qj8wcj87srli3b5xa75")))) + (build-system cmake-build-system) + (inputs + (modify-inputs (package-inputs python-shiboken-2) + (replace "qtbase" qtbase) + (delete "qtxmlpatterns"))) + (arguments + (substitute-keyword-arguments (package-arguments python-shiboken-2) + ((#:phases p) + #~(modify-phases #$p + (replace 'use-shiboken-dir-only + (lambda _ (chdir "sources/shiboken6") #t)))) + ((#:configure-flags flags) + #~(cons* + ;; The RUNPATH of shibokenmodule contains the entry in build + ;; directory instead of install directory. + "-DCMAKE_SKIP_RPATH=TRUE" + (string-append "-DCMAKE_MODULE_LINKER_FLAGS=-Wl,-rpath=" + #$output "/lib") + #$flags)))))) + (define-public python-pyside-2 (package (name "python-pyside-2") @@ -3817,10 +3856,7 @@ color-related widgets.") (source (package-source python-shiboken-2)) (build-system cmake-build-system) (inputs - (list libxml2 - libxslt - clang-toolchain - qtbase-5 + (list qtbase-5 qtdatavis3d qtdeclarative-5 qtlocation @@ -3832,6 +3868,7 @@ color-related widgets.") qtsensors qtspeech qtsvg-5 + qttools-5 qtwebchannel-5 qtwebengine-5 qtwebsockets-5 @@ -3840,68 +3877,63 @@ color-related widgets.") (propagated-inputs (list python-shiboken-2)) (native-inputs - `(("cmake" ,cmake-minimal) - ("python" ,python-wrapper) - ("qttools-5" ,qttools-5) - ("which" ,which))) + (list python-wrapper)) (arguments - `(#:tests? #f - ;; FIXME: Building tests fail. - #:configure-flags - (list "-DBUILD_TESTS=FALSE" - (string-append "-DPYTHON_EXECUTABLE=" - (assoc-ref %build-inputs "python") - "/bin/python")) - #:modules ((guix build cmake-build-system) + (list + #:tests? #f + ;; FIXME: Building tests fail. + #:configure-flags + #~(list "-DBUILD_TESTS=FALSE" + (string-append "-DPYTHON_EXECUTABLE=" + (search-input-file %build-inputs + "/bin/python"))) + #:modules '((guix build cmake-build-system) (guix build utils) (srfi srfi-1)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'go-to-source-dir - (lambda _ (chdir "sources/pyside2") #t)) - (add-after 'go-to-source-dir 'fix-qt-module-detection - (lambda* (#:key inputs #:allow-other-keys) - ;; Activate qt module support even if it not in the same - ;; directory as qtbase. - (substitute* "../cmake_helpers/helpers.cmake" - (("\\(\"\\$\\{found_basepath\\}\" GREATER \"0\"\\)") - "true")) - ;; Add include directories for qt modules. - (let ((dirs (map (lambda (name) - (string-append (assoc-ref inputs name) - "/include/qt5")) - '("qtdatavis3d" - "qtdeclarative" - "qtlocation" - "qtmultimedia" - "qtquickcontrols" - "qtquickcontrols2" - "qtscript" - "qtscxml" - "qtsensors" - "qtspeech" - "qtsvg" - "qttools-5" - "qtwebchannel" - "qtwebengine" - "qtwebsockets" - "qtx11extras" - "qtxmlpatterns")))) - (substitute* "cmake/Macros/PySideModules.cmake" - (("\\$\\{PATH_SEP\\}\\$\\{core_includes\\}" all) - (fold (lambda (dir paths) - (string-append paths "${PATH_SEP}" dir)) - all - dirs))) - (setenv "CXXFLAGS" (fold (lambda (dir paths) - (string-append paths " -I" dir)) - "" - dirs))))) - (add-before 'configure 'set-clang-dir - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "clang-toolchain"))) - (setenv "CLANG_INSTALL_DIR" clang) - #t)))))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'go-to-source-dir + (lambda _ (chdir "sources/pyside2") #t)) + (add-after 'go-to-source-dir 'fix-qt-module-detection + (lambda _ + ;; Activate qt module support even if it not in the same + ;; directory as qtbase. + (substitute* "../cmake_helpers/helpers.cmake" + (("\\(\"\\$\\{found_basepath\\}\" GREATER \"0\"\\)") + "true")) + ;; Add include directories for qt modules. + (let ((dirs (map (lambda (path) + (string-append path "/include/qt5")) + (list + #$@(map (lambda (name) + (this-package-input name)) + '("qtdatavis3d" + "qtdeclarative" + "qtlocation" + "qtmultimedia" + "qtquickcontrols" + "qtquickcontrols2" + "qtscript" + "qtscxml" + "qtsensors" + "qtspeech" + "qtsvg" + "qttools" + "qtwebchannel" + "qtwebengine" + "qtwebsockets" + "qtx11extras" + "qtxmlpatterns")))))) + (substitute* "cmake/Macros/PySideModules.cmake" + (("\\$\\{PATH_SEP\\}\\$\\{core_includes\\}" all) + (fold (lambda (dir paths) + (string-append paths "${PATH_SEP}" dir)) + all + dirs))) + (setenv "CXXFLAGS" (fold (lambda (dir paths) + (string-append paths " -I" dir)) + "" + dirs)))))))) (home-page "https://wiki.qt.io/Qt_for_Python") (synopsis "The Qt for Python product enables the use of Qt5 APIs in Python applications") @@ -3923,6 +3955,78 @@ generate Python bindings for your C or C++ code.") license:gpl3 license:gpl2)))) +(define-public python-pyside-6 + (package + (inherit python-pyside-2) + (name "python-pyside-6") + (version (package-version python-shiboken-6)) + (source (package-source python-shiboken-6)) + ;; TODO: Add more Qt components if available. + (inputs + (list qtbase + qtdeclarative + qtmultimedia + qtnetworkauth + qtpositioning + qtsvg + qttools + qtwebchannel + qtwebengine + qtwebsockets)) + (propagated-inputs + (list python-shiboken-6)) + (native-inputs + (list python-wrapper)) + (arguments + (list + #:tests? #f + #:configure-flags + #~(list "-DBUILD_TESTS=FALSE" + (string-append "-DPYTHON_EXECUTABLE=" + (search-input-file %build-inputs + "/bin/python"))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'go-to-source-dir + (lambda _ (chdir "sources/pyside6") #t)) + (add-after 'go-to-source-dir 'fix-qt-module-detection + (lambda _ + (substitute* "cmake/PySideHelpers.cmake" + (("\\(\"\\$\\{found_basepath\\}\" GREATER \"0\"\\)") + "true")) + (let ((dirs (map (lambda (path) + (string-append path "/include/qt6")) + (list + #$@(map (lambda (name) + (this-package-input name)) + '("qtdeclarative" + "qtmultimedia" + "qtnetworkauth" + "qtpositioning" + "qtsvg" + "qttools" + "qtwebchannel" + "qtwebengine" + "qtwebsockets")))))) + (substitute* "cmake/Macros/PySideModules.cmake" + (("set\\(shiboken_include_dir_list " all) + (string-append all (string-join dirs ";") " "))) + (setenv "CXXFLAGS" + (string-join + (map (lambda (dir) + (string-append "-I" dir)) + dirs) + " ")))))))) + (synopsis + "The Qt for Python product enables the use of Qt6 APIs in Python applications") + (description + "The Qt for Python product enables the use of Qt6 APIs in Python +applications. It lets Python developers utilize the full potential of Qt, +using the PySide6 module. The PySide6 module provides access to the +individual Qt modules such as QtCore, QtGui,and so on. Qt for Python also +comes with the Shiboken6 CPython binding code generator, which can be used to +generate Python bindings for your C or C++ code."))) + (define-public python-pyside-2-tools (package (name "python-pyside-2-tools") @@ -3932,22 +4036,24 @@ generate Python bindings for your C or C++ code.") (inputs (list python-pyside-2 python-shiboken-2 qtbase-5)) (native-inputs - `(("python" ,python-wrapper))) + (list python-wrapper)) (arguments - `(#:tests? #f - #:configure-flags - (list "-DBUILD_TESTS=off" - (string-append "-DPYTHON_EXECUTABLE=" - (assoc-ref %build-inputs "python") - "/bin/python")) - #:phases (modify-phases %standard-phases - (add-after 'unpack 'go-to-source-dir - (lambda _ (chdir "sources/pyside2-tools") #t))))) + (list + #:tests? #f + #:configure-flags + #~(list "-DBUILD_TESTS=off" + (string-append "-DPYTHON_EXECUTABLE=" + (search-input-file %build-inputs + "/bin/python"))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'go-to-source-dir + (lambda _ (chdir "sources/pyside2-tools") #t))))) (home-page "https://wiki.qt.io/Qt_for_Python") (synopsis - "Contains command line tools for PySide2") + "Command line tools for PySide2") (description - "Contains lupdate, rcc and uic tools for PySide2") + "Python-pyside-2-tools contains lupdate, rcc and uic tools for PySide2") (license license:gpl2))) (define-public libqglviewer diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index 32ea866bff..10f93a1362 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -255,7 +255,7 @@ ;; ^ This is downstream of https://github.com/racket/racket, ;; but it's designed to be a friendly landing place (synopsis "Tiny Racket for build scripts") - (description "Zuo (作) is a tiny Racket with primitives for dealing + (description "Zuo is a tiny Racket with primitives for dealing with files and running processes. It comes with a @command{make}-like embedded DSL, which is used to build Racket itself. diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm index 110cbe9fda..06860dc5b2 100644 --- a/gnu/packages/shellutils.scm +++ b/gnu/packages/shellutils.scm @@ -38,6 +38,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix build-system copy) #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system python) @@ -145,6 +146,30 @@ chart.") text.") (license license:gpl2))) +(define-public zsh-autopair + (package + (name "zsh-autopair") + (version "1.0") + (home-page "https://github.com/hlissner/zsh-autopair") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hlissner/zsh-autopair.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1h0vm2dgrmb8i2pvsgis3lshc5b0ad846836m62y8h3rdb3zmpy1")))) + (build-system copy-build-system) + (arguments + '(#:install-plan '(("autopair.zsh" + "/share/zsh/plugins/zsh-autopair/zsh-autopair.zsh")))) + (synopsis "Auto-close and delete matching delimiters in Zsh") + (description + "This Zsh plugin auto-closes, deletes, and skips over matching delimiters +in Zsh intelligently.") + (license license:expat))) + (define-public zsh-autosuggestions (package (name "zsh-autosuggestions") diff --git a/gnu/packages/sqlite.scm b/gnu/packages/sqlite.scm index c6b1b63173..7e8d444b7d 100644 --- a/gnu/packages/sqlite.scm +++ b/gnu/packages/sqlite.scm @@ -113,10 +113,10 @@ is in the public domain.") (define-public sqlite-next (package (inherit sqlite) - (version "3.39.1") + (version "3.39.3") (source (origin (method url-fetch) (uri (sqlite-uri version 2022)) (sha256 (base32 - "1i0wjd1mig720q1gk9jkpw6h0mialbrlkfh8w8lans0czakygj47")))))) + "1f922kq16g7f4h3gpzim78lvrp5xw9nvlvqw97s2qgxyh8qgns3q")))))) diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm index 4cbc9d84b4..ab86ddee2f 100644 --- a/gnu/packages/tcl.scm +++ b/gnu/packages/tcl.scm @@ -180,7 +180,7 @@ multiple inheritance and public and private classes and variables.") #t))) #:test-target "test")) - (home-page "http://expect.sourceforge.net/") + (home-page "https://core.tcl-lang.org/expect/") (synopsis "Tool for automating interactive applications") (description "Expect is a tool for automating interactive applications such as diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 7bb6c4bd22..46ad251a64 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -11589,3 +11589,97 @@ within ‘words’ that contain non-alphabetic characters (e.g., that include underscores), and hyphenation of text typeset in monospaced (e.g., cmtt) fonts.") (license license:lppl1.3c+))) + +(define-public texlive-latex-lastpage + (package + (inherit (simple-texlive-package + "texlive-latex-lastpage" + (list "doc/latex/lastpage/" + "tex/latex/lastpage/") + (base32 "0q6x743b8fkw9r82lrxy49f9xsg81bffynwvpnvpnp3h4mkafvdb") + #:trivial? #t)) + (build-system texlive-build-system) + (home-page "https://ctan.org/pkg/lastpage") + (synopsis "Reference last page for Page N of M type footers") + (description + "This package enables referencing the number of pages in a LaTeX document +through the introduction of a new label which can be referenced like +@code{\\pageref{LastPage}} to give a reference to the last page of a document. +It is particularly useful in the page footer that says: Page N of M.") + (license license:lppl1.3c+))) + +(define-public texlive-latex-tabto-ltx + (package + (name "texlive-latex-tabto-ltx") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference (url (string-append + "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/latex/tabto-ltx")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1vq9s3n0mdgx2w84bjdsqxp3vcasfb824agjy56713902li1g8vm")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder (begin + (use-modules (guix build utils)) + (let ((target (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/tex/latex/tabto"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") + target) #t)))) + (home-page "https://ctan.org/pkg/tabto-ltx") + (synopsis "``Tab'' to a measured position in the line") + (description + "This package provides @code{\\tabto{<length>}}, which moves the +typesetting position to @code{<length>} from the left margin of the paragraph. +If the typesetting position is already further along, @code{\\tabto} starts a +new line; the command @code{\\tabto*} will move position backwards if +necessary, so that previous text may be overwritten. In addition, the command +@code{\\TabPositions} may be used to define a set of tabbing positions, after +which the command @code{\\tab} advances typesetting position to the next +defined ``tab stop''.") + (license license:lppl1.3+))) + +(define-public texlive-generic-soul + (let ((template (simple-texlive-package + "texlive-generic-soul" + (list "/doc/generic/soul/" + "/tex/generic/soul/") + (base32 + "11jdgvfpcv10y5j898495lf29k2m03x39v9jzb4v79w4cgxcmfps") + #:trivial? #t))) + (package + (inherit template) + (home-page "http://www.ctan.org/pkg/soul") + (synopsis "Hyphenation for letterspacing, underlining, and more") + (description + "@code{soul} enables hyphenatable spacing out (letterspacing), +underlining, striking out, etc., using the TeX hyphenation algorithm to find +the proper hyphens automatically. The package also provides a mechanism that +can be used to implement similar tasks, that have to treat text syllable by +syllable. The package itself does not support UTF-8 input in ordinary +(PDF)LaTeX; some UTF-8 support is offered by package @code{soulutf8}.") + (license license:lppl)))) + +(define-public texlive-latex-totcount + (package + (inherit (simple-texlive-package + "texlive-latex-totcount" + (list "doc/latex/totcount/" + "tex/latex/totcount/") + (base32 "0z4mijyk3z7555q8da41aiji602plis5z261z4rr1fl8sndhnhn1") + #:trivial? #t)) + (build-system texlive-build-system) + (home-page "https://ctan.org/pkg/totcount") + (synopsis "Find the last value of a counter") + (description + "This package records the value that was last set, for any counter of +interest. Since most such counters are simply incremented when they are +changed, the recorded value will usually be the maximum value.") + (license license:lppl1.3c+))) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index bb11732de2..616bc42e69 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -880,7 +880,7 @@ the message of the day, among other things." (default #f)) (no-hints? agetty-no-hints? ;Boolean (default #f)) - (no-hostname? agetty-no hostname? ;Boolean + (no-hostname? agetty-no-hostname? ;Boolean (default #f)) (long-hostname? agetty-long-hostname? ;Boolean (default #f)) diff --git a/gnu/tests/dict.scm b/gnu/tests/dict.scm index 4d9702360c..f02bd5ac99 100644 --- a/gnu/tests/dict.scm +++ b/gnu/tests/dict.scm @@ -63,7 +63,8 @@ (define vm (virtual-machine (operating-system os) - (port-forwardings '((8000 . 2628))))) + (port-forwardings '((8000 . 2628))) + (memory-size 1024))) (define test (with-imported-modules '((gnu build marionette)) diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm index eda487f52e..7842b0a9fc 100644 --- a/guix/build/syscalls.scm +++ b/guix/build/syscalls.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014-2022 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> @@ -549,50 +549,50 @@ the last argument of `mknod'." (define MNT_EXPIRE 4) (define UMOUNT_NOFOLLOW 8) -(define-as-needed (mount source target type - #:optional (flags 0) options - #:key (update-mtab? #f)) - "Mount device SOURCE on TARGET as a file system TYPE. -Optionally, FLAGS may be a bitwise-or of the MS_* <sys/mount.h> -constants, and OPTIONS may be a string. When FLAGS contains -MS_REMOUNT, SOURCE and TYPE are ignored. When UPDATE-MTAB? is true, -update /etc/mtab. Raise a 'system-error' exception on error." +(define-as-needed mount ;; XXX: '#:update-mtab?' is not implemented by core 'mount'. (let ((proc (syscall->procedure int "mount" `(* * * ,unsigned-long *)))) - (let-values (((ret err) - (proc (if source - (string->pointer source) - %null-pointer) - (string->pointer target) - (if type - (string->pointer type) - %null-pointer) - flags - (if options - (string->pointer options) - %null-pointer)))) - (unless (zero? ret) - (throw 'system-error "mount" "mount ~S on ~S: ~A" - (list source target (strerror err)) - (list err))) - (when update-mtab? - (augment-mtab source target type options))))) - -(define-as-needed (umount target - #:optional (flags 0) - #:key (update-mtab? #f)) - "Unmount TARGET. Optionally FLAGS may be one of the MNT_* or UMOUNT_* -constants from <sys/mount.h>." + (lambda* (source target type + #:optional (flags 0) options + #:key (update-mtab? #f)) + "Mount device SOURCE on TARGET as a file system TYPE. +Optionally, FLAGS may be a bitwise-or of the MS_* <sys/mount.h> constants, and +OPTIONS may be a string. When FLAGS contains MS_REMOUNT, SOURCE and TYPE are +ignored. When UPDATE-MTAB? is true, update /etc/mtab. Raise a 'system-error' +exception on error." + (let-values (((ret err) + (proc (if source + (string->pointer source) + %null-pointer) + (string->pointer target) + (if type + (string->pointer type) + %null-pointer) + flags + (if options + (string->pointer options) + %null-pointer)))) + (unless (zero? ret) + (throw 'system-error "mount" "mount ~S on ~S: ~A" + (list source target (strerror err)) + (list err))) + (when update-mtab? + (augment-mtab source target type options)))))) + +(define-as-needed umount ;; XXX: '#:update-mtab?' is not implemented by core 'umount'. - (let ((proc (syscall->procedure int "umount2" `(* ,int)))) - (let-values (((ret err) - (proc (string->pointer target) flags))) - (unless (zero? ret) - (throw 'system-error "umount" "~S: ~A" - (list target (strerror err)) - (list err))) - (when update-mtab? - (remove-from-mtab target))))) + (let ((proc (syscall->procedure int "umount2" `(* ,int)))) ;XXX + (lambda* (target #:optional (flags 0) #:key (update-mtab? #f)) + "Unmount TARGET. Optionally FLAGS may be one of the MNT_* or UMOUNT_* +constants from <sys/mount.h>." + (let-values (((ret err) + (proc (string->pointer target) flags))) + (unless (zero? ret) + (throw 'system-error "umount" "~S: ~A" + (list target (strerror err)) + (list err))) + (when update-mtab? + (remove-from-mtab target)))))) ;; Mount point information. (define-record-type <mount> @@ -732,25 +732,27 @@ current process." (define-as-needed RB_SW_SUSPEND #xd000fce2) (define-as-needed RB_KEXEC #x45584543) -(define-as-needed (reboot #:optional (cmd RB_AUTOBOOT)) +(define-as-needed reboot (let ((proc (syscall->procedure int "reboot" (list int)))) - (let-values (((ret err) (proc cmd))) - (unless (zero? ret) - (throw 'system-error "reboot" "~S: ~A" - (list cmd (strerror err)) - (list err)))))) + (lambda* (#:optional (cmd RB_AUTOBOOT)) + (let-values (((ret err) (proc cmd))) + (unless (zero? ret) + (throw 'system-error "reboot" "~S: ~A" + (list cmd (strerror err)) + (list err))))))) -(define-as-needed (load-linux-module data #:optional (options "")) +(define-as-needed load-linux-module (let ((proc (syscall->procedure int "init_module" (list '* unsigned-long '*)))) - (let-values (((ret err) - (proc (bytevector->pointer data) - (bytevector-length data) - (string->pointer options)))) - (unless (zero? ret) - (throw 'system-error "load-linux-module" "~A" - (list (strerror err)) - (list err)))))) + (lambda* (data #:optional (options "")) + (let-values (((ret err) + (proc (bytevector->pointer data) + (bytevector-length data) + (string->pointer options)))) + (unless (zero? ret) + (throw 'system-error "load-linux-module" "~A" + (list (strerror err)) + (list err))))))) (define (kernel? pid) "Return #t if PID designates a \"kernel thread\" rather than a normal diff --git a/guix/import/gnome.scm b/guix/import/gnome.scm index 3915f19e84..49ad7169fd 100644 --- a/guix/import/gnome.scm +++ b/guix/import/gnome.scm @@ -62,14 +62,16 @@ not be determined." (define (even-minor-version? version) (match (string-tokenize version %not-dot) - (((= string->number major) (= string->number minor) micro) + (((= string->number major) (= string->number minor) (= string->number micro)) ;; This is for things like GLib, with version strings like "2.72.3". - (and minor (even? minor))) - (((= string->number major) . _) + (and minor (even? minor) micro)) + (((= string->number major) (= string->number minor)) ;; GNOME applications have version strings like "42.1" (only two - ;; integers) and are not subject to the odd/even policy. MAJOR should - ;; be a valid number though. - major))) + ;; integers) and are not subject to the odd/even policy. MAJOR and + ;; MINOR should be valid numbers though; "43.alpha" is rejected. + (and major minor)) + (_ + #f))) (define upstream-name ;; Some packages like "NetworkManager" have camel-case names. diff --git a/guix/search-paths.scm b/guix/search-paths.scm index 5a0cddac8f..4a8f5131ed 100644 --- a/guix/search-paths.scm +++ b/guix/search-paths.scm @@ -74,33 +74,32 @@ (variable "PATH") (files '("bin" "sbin")))) -(define-public $GUIX_EXTENSIONS_PATH +(define $GUIX_EXTENSIONS_PATH ;; 'GUIX_EXTENSIONS_PATH' is used by Guix to locate extension commands. - ;; Like 'PATH', it's not attached to any package, so that users don't have - ;; to install the 'guix' package (which is not supposed to be installed, - ;; as it will mess up the 'guix pull' installation) or set the variable - ;; manually. + ;; Unlike 'PATH', it is attached to a package, Guix; however, it is + ;; convenient to define it by default because the 'guix' package is not + ;; supposed to be installed in a profile. (search-path-specification (variable "GUIX_EXTENSIONS_PATH") (files '("share/guix/extensions")))) -;; Two variables for certificates (see (guix)X.509 Certificates), -;; respected by 'openssl', possibly GnuTLS in the future +;; Two variables for certificates (info "(guix)X.509 Certificates"), +;; respected by OpenSSL and possibly GnuTLS in the future ;; (https://gitlab.com/gnutls/gnutls/-/merge_requests/1541) -;; and many of their dependents -- even some GnuTLS depepdents +;; and many of their dependents -- even some GnuTLS dependents ;; like Guile. As they are not tied to a single package, define ;; them here to avoid duplication. ;; ;; Additionally, the 'native-search-paths' field is not thunked, ;; so doing (package-native-search-paths openssl) ;; could cause import cycle issues. -(define-public $SSL_CERT_DIR +(define $SSL_CERT_DIR (search-path-specification (variable "SSL_CERT_DIR") (separator #f) ;single entry (files '("etc/ssl/certs")))) -(define-public $SSL_CERT_FILE +(define $SSL_CERT_FILE (search-path-specification (variable "SSL_CERT_FILE") (file-type 'regular) |