diff options
Diffstat (limited to 'gnu')
39 files changed, 1211 insertions, 482 deletions
diff --git a/gnu/build/install.scm b/gnu/build/install.scm index f5c8407b89..33a9616c0d 100644 --- a/gnu/build/install.scm +++ b/gnu/build/install.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> +;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -56,19 +57,24 @@ that the fonts, background images, etc. referred to by BOOTCFG are not GC'd." (define* (evaluate-populate-directive directive target #:key (default-gid 0) - (default-uid 0)) + (default-uid 0) + (error-on-dangling-symlink? #t)) "Evaluate DIRECTIVE, an sexp describing a file or directory to create under directory TARGET. DEFAULT-UID and DEFAULT-GID are the default UID and GID in the context of the caller. If the directive matches those defaults then, -'chown' won't be run." +'chown' won't be run. When ERROR-ON-DANGLING-SYMLINK? is true, abort with an +error when a dangling symlink would be created." + (define target* (if (string-suffix? "/" target) + target + (string-append target "/"))) (let loop ((directive directive)) (catch 'system-error (lambda () (match directive (('directory name) - (mkdir-p (string-append target name))) + (mkdir-p (string-append target* name))) (('directory name uid gid) - (let ((dir (string-append target name))) + (let ((dir (string-append target* name))) (mkdir-p dir) ;; If called from a context without "root" permissions, "chown" ;; to root will fail. In that case, do not try to run "chown" @@ -78,27 +84,38 @@ the context of the caller. If the directive matches those defaults then, (chown dir uid gid)))) (('directory name uid gid mode) (loop `(directory ,name ,uid ,gid)) - (chmod (string-append target name) mode)) + (chmod (string-append target* name) mode)) (('file name) - (call-with-output-file (string-append target name) + (call-with-output-file (string-append target* name) (const #t))) (('file name (? string? content)) - (call-with-output-file (string-append target name) + (call-with-output-file (string-append target* name) (lambda (port) (display content port)))) ((new '-> old) - (let try () - (catch 'system-error - (lambda () - (symlink old (string-append target new))) - (lambda args - ;; When doing 'guix system init' on the current '/', some - ;; symlinks may already exists. Override them. - (if (= EEXIST (system-error-errno args)) - (begin - (delete-file (string-append target new)) - (try)) - (apply throw args)))))))) + (let ((new* (string-append target* new))) + (let try () + (catch 'system-error + (lambda () + (when error-on-dangling-symlink? + ;; When the symbolic link points to a relative path, + ;; checking if its target exists must be done relatively + ;; to the link location. + (unless (if (string-prefix? "/" old) + (file-exists? old) + (with-directory-excursion (dirname new*) + (file-exists? old))) + (error (format #f "symlink `~a' points to nonexistent \ +file `~a'" new* old)))) + (symlink old new*)) + (lambda args + ;; When doing 'guix system init' on the current '/', some + ;; symlinks may already exists. Override them. + (if (= EEXIST (system-error-errno args)) + (begin + (delete-file new*) + (try)) + (apply throw args))))))))) (lambda args ;; Usually we can only get here when installing to an existing root, ;; as with 'guix system init foo.scm /'. @@ -142,7 +159,10 @@ STORE." includes /etc, /var, /run, /bin/sh, etc., and all the symlinks to SYSTEM. EXTRAS is a list of directives appended to the built-in directives to populate TARGET." - (for-each (cut evaluate-populate-directive <> target) + ;; It's expected that some symbolic link targets do not exist yet, so do not + ;; error on dangling links. + (for-each (cut evaluate-populate-directive <> target + #:error-on-dangling-symlink? #f) (append (directives (%store-directory)) extras)) ;; Add system generation 1. diff --git a/gnu/build/marionette.scm b/gnu/build/marionette.scm index f4b219e842..b8fba61d06 100644 --- a/gnu/build/marionette.scm +++ b/gnu/build/marionette.scm @@ -28,6 +28,7 @@ #:use-module (ice-9 popen) #:use-module (ice-9 regex) #:export (marionette? + marionette-pid make-marionette marionette-eval wait-for-file diff --git a/gnu/home/services/mcron.scm b/gnu/home/services/mcron.scm index 0b3dbb810b..1d294a997c 100644 --- a/gnu/home/services/mcron.scm +++ b/gnu/home/services/mcron.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2021 Andrew Tropin <andrew@trop.in> ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> +;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,6 +21,7 @@ (define-module (gnu home services mcron) #:use-module (gnu packages guile-xyz) #:use-module (gnu home services) + #:use-module (gnu services configuration) #:use-module (gnu services shepherd) #:use-module (gnu home services shepherd) #:use-module (guix records) @@ -53,13 +55,23 @@ ;; ;;; Code: -(define-record-type* <home-mcron-configuration> home-mcron-configuration - make-home-mcron-configuration - home-mcron-configuration? - (package home-mcron-configuration-package ; package - (default mcron)) - (jobs home-mcron-configuration-jobs ; list of jobs - (default '()))) +(define list-of-gexps? + (list-of gexp?)) + +(define-configuration/no-serialization home-mcron-configuration + (mcron (file-like mcron) "The mcron package to use.") + (jobs + (list-of-gexps '()) + "This is a list of gexps (@pxref{G-Expressions}), where each gexp +corresponds to an mcron job specification (@pxref{Syntax, mcron job +specifications,, mcron, GNU@tie{}mcron}).") + (log? (boolean #t) "Log messages to standard output.") + (log-format + (string "~1@*~a ~a: ~a~%") + "@code{(ice-9 format)} format string for log messages. The default value +produces messages like \"@samp{@var{pid} @var{name}: +@var{message}\"} (@pxref{Invoking mcron, Invoking,, mcron, GNU@tie{}mcron}). +Each message is also prefixed by a timestamp by GNU Shepherd.")) (define job-files (@@ (gnu services mcron) job-files)) (define shepherd-schedule-action @@ -69,19 +81,23 @@ (match-lambda (($ <home-mcron-configuration> mcron '()) ; no jobs to run '()) - (($ <home-mcron-configuration> mcron jobs) + (($ <home-mcron-configuration> mcron jobs log? log-format) (let ((files (job-files mcron jobs))) (list (shepherd-service (documentation "User cron jobs.") (provision '(mcron)) (modules `((srfi srfi-1) (srfi srfi-26) - (ice-9 popen) ; for the 'schedule' action + (ice-9 popen) ; for the 'schedule' action (ice-9 rdelim) (ice-9 match) ,@%default-modules)) (start #~(make-forkexec-constructor - (list #$(file-append mcron "/bin/mcron") #$@files) + (list (string-append #$mcron "/bin/mcron") + #$@(if log? + #~("--log" "--log-format" #$log-format) + #~()) + #$@files) #:log-file (string-append (or (getenv "XDG_LOG_HOME") (format #f "~a/.local/var/log" @@ -91,7 +107,7 @@ (actions (list (shepherd-schedule-action mcron files))))))))) -(define home-mcron-profile (compose list home-mcron-configuration-package)) +(define home-mcron-profile (compose list home-mcron-configuration-mcron)) (define (home-mcron-extend config jobs) (home-mcron-configuration @@ -113,3 +129,12 @@ (default-value (home-mcron-configuration)) (description "Install and configure the GNU mcron cron job manager."))) + + +;;; +;;; Generate documentation. +;;; +(define (generate-doc) + (configuration->documentation 'home-mcron-configuration)) + +;;; mcron.scm ends here diff --git a/gnu/home/services/shells.scm b/gnu/home/services/shells.scm index 172e58a9ff..3e346c3813 100644 --- a/gnu/home/services/shells.scm +++ b/gnu/home/services/shells.scm @@ -480,7 +480,7 @@ with text blocks from other extensions and the base service.")) (define (home-bash-extensions original-config extension-configs) (match original-config - (($ <home-bash-configuration> _ _ _ environment-variables aliases + (($ <home-bash-configuration> _ _ environment-variables aliases bash-profile bashrc bash-logout) (home-bash-configuration (inherit original-config) diff --git a/gnu/local.mk b/gnu/local.mk index 71472f8410..b154caaaaa 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -977,6 +977,7 @@ dist_patch_DATA = \ %D%/packages/patches/clang-12.0-libc-search-path.patch \ %D%/packages/patches/clang-13.0-libc-search-path.patch \ %D%/packages/patches/clang-14.0-libc-search-path.patch \ + %D%/packages/patches/clang-15.0-libc-search-path.patch \ %D%/packages/patches/clang-runtime-asan-build-fixes.patch \ %D%/packages/patches/clang-runtime-esan-build-fixes.patch \ %D%/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch \ @@ -1195,7 +1196,6 @@ dist_patch_DATA = \ %D%/packages/patches/ghostscript-no-header-id.patch \ %D%/packages/patches/ghostscript-no-header-uuid.patch \ %D%/packages/patches/ghostscript-no-header-creationdate.patch \ - %D%/packages/patches/giara-fix-login.patch \ %D%/packages/patches/glib-appinfo-watch.patch \ %D%/packages/patches/glib-networking-gnutls-binding.patch \ %D%/packages/patches/glib-networking-32-bit-time.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index ee730ac8e3..da9654d577 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -330,25 +330,14 @@ interface and is based on GNU Guile.") (define-public shepherd-0.9 (package (inherit shepherd) - (version "0.9.2") + (version "0.9.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/shepherd/shepherd-" version ".tar.gz")) (sha256 (base32 - "0mcby3ygh3bpns44rb1vnk8bz2km4nlw092nrcgkm3nkqfmbp4p1")) - (modules '((guix build utils))) - (snippet - ;; Avoid continuation barriers so (@ (fibers) sleep) can be - ;; called from a service's 'stop' method - '(substitute* "modules/shepherd/service.scm" - (("call-with-blocked-asyncs") ;in 'stop' method - "(lambda (thunk) (thunk))") - (("\\(for-each-service\n") ;in 'shutdown-services' - "((lambda (proc) - (for-each proc - (fold-services cons '())))\n"))))) + "0qy2yq13xhf05an5ilz7grighdxicx56211yaarqq5qigiiybc32")))) (arguments (list #:configure-flags #~'("--localstatedir=/var") #:make-flags #~'("GUILE_AUTO_COMPILE=0") diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 937c9783fb..61e81f8c3d 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -615,6 +615,50 @@ attacks, performing pitch detection, tapping the beat and producing MIDI streams from live audio.") (license license:gpl3+))) +(define-public dsp + (package + (name "dsp") + (version "1.9") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bmc0/dsp") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0iksmianwig7w78hqip2a8yy6r63sv8cv9pis8qxny6w1xap6njb")))) + (build-system gnu-build-system) + (arguments + (list + #:tests? #false ;no tests + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target))) + #:phases + #~(modify-phases %standard-phases + (replace 'configure + (lambda _ + (invoke "sh" "configure" + (string-append "--prefix=" #$output) + "--disable-pulse")))))) + (inputs + (list alsa-lib + ao + ffmpeg + ladspa + libmad + libsndfile + fftw + fftwf + zita-convolver)) + (native-inputs + (list libtool pkg-config)) + (home-page "https://github.com/bmc0/dsp") + (synopsis "Audio processing program with an interactive mode") + (description + "dsp is an audio processing program with an interactive mode.") + (license license:isc))) + (define-public qm-dsp (package (name "qm-dsp") diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm index 3cc5a6964e..a741f183d7 100644 --- a/gnu/packages/avr.scm +++ b/gnu/packages/avr.scm @@ -31,10 +31,12 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) #:use-module (gnu packages) + #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages cross-base) #:use-module (gnu packages flashing-tools) #:use-module (gnu packages gcc) + #:use-module (gnu packages llvm) #:use-module (gnu packages vim)) (define-public avr-binutils @@ -148,7 +150,7 @@ C++.") (define-public microscheme (package (name "microscheme") - (version "0.9.3") + (version "0.9.4") (source (origin (method git-fetch) @@ -156,7 +158,7 @@ C++.") (url "https://github.com/ryansuchocki/microscheme") (commit (string-append "v" version)))) (sha256 - (base32 "1r3ng4pw1s9yy1h5rafra1rq19d3vmb5pzbpcz1913wz22qdd976")) + (base32 "1bflwirpcd58bngbs6hgjfwxl894ni2gpdd4pj10pm2mjhyj5dgw")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments @@ -168,7 +170,7 @@ C++.") #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))))) (native-inputs - (list unzip xxd)) + (list clang cppcheck unzip xxd)) (home-page "https://github.com/ryansuchocki/microscheme/") (synopsis "Scheme subset for Atmel microcontrollers") (description diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index e411839043..6d7097c42c 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -12300,24 +12300,26 @@ interaction inference from scRNA-seq data.") (define-public r-circus (package (name "r-circus") - (version "0.1.5") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/BIMSBbioinfo/ciRcus") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0jhjn3ilb057hbf6yzrihj13ifxxs32y7nkby8l3lkm28dg4p97h")))) + (version "0.1.7") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/BIMSBbioinfo/ciRcus") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0d1jz7r81zbcy1gkppggkjmgjxyjhva69s3cdb01m3f0790m4fv0")))) + (properties `((upstream-name . "ciRcus"))) (build-system r-build-system) (propagated-inputs (list r-annotationdbi r-annotationhub + r-biocgenerics r-biomart r-data-table r-dbi + r-genomeinfodb r-genomicfeatures r-genomicranges r-ggplot2 @@ -12325,6 +12327,7 @@ interaction inference from scRNA-seq data.") r-iranges r-rcolorbrewer r-rmysql + r-rtracklayer r-s4vectors r-stringr r-summarizedexperiment)) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index ec2545dbbf..c900a055d5 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -40,6 +40,7 @@ ;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2022 David Elsing <david.elsing@posteo.net> ;;; Copyright © 2022 Sharlatan Hellseher <sharlatanus@gmail.com> +;;; Copyright © 2022 jgart <jgart@dismail.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2173,7 +2174,7 @@ instantly.") much larger range of examples than you would ever want to write by hand. It’s based on the Haskell library, Quickcheck, and is designed to integrate seamlessly into your existing Python unit testing work flow.") - (home-page "https://github.com/HypothesisWorks/hypothesis") + (home-page "https://hypothesis.works/") (license license:mpl2.0))) ;;; TODO: Make the default python-hypothesis in the next rebuild cycle. diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm index 8bfda2ebc5..e3deed573a 100644 --- a/gnu/packages/chromium.scm +++ b/gnu/packages/chromium.scm @@ -758,13 +758,6 @@ (setenv "AR" "llvm-ar") (setenv "NM" "llvm-nm") (setenv "CC" "clang") (setenv "CXX" "clang++") - ;; Disable compiler flags that require Clang 15. - (substitute* "build/config/compiler/BUILD.gn" - (("\"-Wno-unqualified-std-cast-call\"") - "") - (("\"-Wno-deprecated-builtins\",") - "")) - ;; TODO: pre-compile instead. Avoids a race condition. (setenv "PYTHONDONTWRITEBYTECODE" "1") @@ -888,10 +881,10 @@ '("24" "48" "64" "128" "256"))))))))) (native-inputs (list bison - clang-14 + clang-15 gn gperf - lld-as-ld-wrapper + lld-as-ld-wrapper-15 ninja node-lts pkg-config @@ -1028,7 +1021,8 @@ testing.") (call-with-output-file exe (lambda (port) (format port "#!~a -exec ~a --enable-features=UseOzonePlatform --ozone-platform=wayland $@" +exec ~a --enable-features=UseOzonePlatform --ozone-platform=wayland \ +--enable-features=WebRTCPipeWireCapturer $@" (string-append bash "/bin/bash") (string-append chromium "/bin/chromium")))) (chmod exe #o555) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index c1e98b771d..210c76e482 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -1976,13 +1976,7 @@ std::wstring, etc).") "-DCRC32C_BUILD_TESTS=" ;; TODO: perhaps infer #:tests? (if #$(%current-target-system) - "OFF" "ON"))) - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'make-reproducible - (lambda _ - (substitute* "CMakeLists.txt" - (("if\\(HAVE_SSE42\\)") "if(FALSE)"))))))) + "OFF" "ON"))))) (native-inputs (list googletest)) (home-page "https://github.com/google/crc32c") (synopsis "Cyclic redundancy check") diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 1118ebbc35..792779a28f 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -23244,7 +23244,7 @@ getters and setters on fields.") (define-public rust-gfa-0.10 (package (name "rust-gfa") - (version "0.10.0") + (version "0.10.1") (source (origin (method url-fetch) @@ -23253,7 +23253,7 @@ getters and setters on fields.") (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1hadm6vfjwyqw41bqci18wb4wv80rydmrag7a5c02pdp1gid14fw")))) + "1x996rpfnflgi2j4dgaj5sdxdbf24zfm9d2ha0zy8aid0cd60cln")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index e63ed011aa..821e78d55a 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -953,14 +953,14 @@ SHA256, SHA512, SHA3, AICH, ED2K, Tiger, DC++ TTH, BitTorrent BTIH, GOST R (define-public botan (package (name "botan") - (version "2.19.1") + (version "2.19.2") (source (origin (method url-fetch) (uri (string-append "https://botan.randombit.net/releases/" "Botan-" version ".tar.xz")) (sha256 (base32 - "0q2mzzg0a40prp9gwjk7d9fn8kwj6z2x6h6mzlm0hr6sxz7h0vp2")))) + "0xad3fa96l6x3azxs2gbz5jfqm2drfv9y9idhf5wvdf62mvg3x9s")))) (build-system gnu-build-system) (arguments (list diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index a511a9ae17..c6f4dd7fba 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -4390,7 +4390,7 @@ algorithm implementations.") "-DARROW_BUILD_STATIC=OFF"))) (inputs `(("boost" ,boost) - ("brotli" ,google-brotli) + ("brotli" ,brotli) ("double-conversion" ,double-conversion) ("snappy" ,snappy) ("gflags" ,gflags) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 64fcac351c..ce184aa8dd 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -333,14 +333,14 @@ and BOOTP/TFTP for network booting of diskless machines.") ;; When updating, check whether isc-dhcp's bundled copy should be as well. ;; The BIND release notes are available here: ;; https://www.isc.org/bind/ - (version "9.16.34") + (version "9.16.35") (source (origin (method url-fetch) (uri (string-append "https://ftp.isc.org/isc/bind9/" version "/bind-" version ".tar.xz")) (sha256 - (base32 "05ig8y20qksam7s466h15v6j2zgidn5nkbrk1d5c29nmypy2wgai")) + (base32 "0gkvilfhqwalcv69240v6j1p3hwj0j4fyzli18q5qil2y4brc59y")) (patches (search-patches "bind-re-add-attr-constructor-priority.patch")))) (build-system gnu-build-system) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index dd90fa5132..fe0d9f1dc9 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -4773,8 +4773,6 @@ Stack Overflow, Super User, and other StackExchange sites.") (base32 "0xsr6819qaad0y8rhfrf555c9w7cmgbgkf1a2svgbp7rhhnywl0a")))) (build-system emacs-build-system) - (propagated-inputs - (list emacs-parent-mode)) (home-page "https://github.com/xFA25E/skempo") (synopsis "Enhancements for skeleton/tempo + abbrev") (description @@ -5172,6 +5170,29 @@ tool for Emacs. Ecukes is not a complete clone of Cucumber and is not intended to be.") (license license:gpl3+))) +(define-public emacs-ef-themes + (package + (name "emacs-ef-themes") + (version "0.9.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~protesilaos/ef-themes") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1h1xlcbcay8wlmhzv7b5h6vrvwdwkzc171aa0rfja2xds4ry9k0m")))) + (build-system emacs-build-system) + (home-page "https://git.sr.ht/~protesilaos/ef-themes") + (synopsis "Colorful and legible themes") + (description + "The Ef themes are a collection of light and dark themes for GNU Emacs +whose goal is to provide colorful yet legible options for users who want +something with a bit more flair than the Modus themes.") + (license license:gpl3+))) + (define-public emacs-espuds (package (name "emacs-espuds") @@ -7076,14 +7097,14 @@ user.") (define-public emacs-subed (package (name "emacs-subed") - (version "1.0.19") + (version "1.0.21") (source (origin (method url-fetch) (uri (string-append "https://elpa.nongnu.org/nongnu/subed-" version ".tar")) (sha256 (base32 - "1wgicb0lvnghhr3a1xndkaxhs1c9gc1ac5xwvxcsc9zpgzrlmcda")))) + "0l4xv56ab31li9l77x68jnpcn47xgj0gqjfs5diklr665vjmfqim")))) (arguments (list #:tests? #t @@ -13064,32 +13085,30 @@ sly-quickload command that prompts the user for a package to install.") (license license:gpl3+)))) (define-public emacs-sly-asdf - (let ((commit "3180921efdc19a2195960e1d601b2a6f31a6feea") - (revision "5")) - (package - (name "emacs-sly-asdf") - (version (git-version "0.1.0" revision commit)) - (home-page "https://github.com/mmgeorge/sly-asdf") - (source - (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0gncp8xv33s4wx594bgd35vr1455bcggv1bg28qv75mhv41nzw97")))) - (build-system emacs-build-system) - (propagated-inputs - (list emacs-sly emacs-popup)) - (arguments - '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include))) - (synopsis "ASDF contrib for SLY") - (description - "@command{sly-asdf} is an external contrib for SLY that provides + (package + (name "emacs-sly-asdf") + (version "0.2.0") + (home-page "https://github.com/mmgeorge/sly-asdf") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0gncp8xv33s4wx594bgd35vr1455bcggv1bg28qv75mhv41nzw97")))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-sly emacs-popup)) + (arguments + '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include))) + (synopsis "ASDF contrib for SLY") + (description + "@command{sly-asdf} is an external contrib for SLY that provides additional support for working with ASDF projects.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-sly-named-readtables (let ((commit "a5a42674ccffa97ccd5e4e9742beaf3ea719931f") @@ -15471,47 +15490,47 @@ abbreviation of the mode line displays (lighters) of minor modes.") (license license:gpl3+)))) (define-public emacs-use-package - (package - (name "emacs-use-package") - (version "2.4.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jwiegley/use-package") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "088kl3bml0rs5bkfymgzr15ram9qvy66h1kaisrbkynh0yxvf8g9")))) - (build-system emacs-build-system) - (native-inputs - (list texinfo)) - (propagated-inputs - (list emacs-diminish)) - (arguments - `(#:tests? #t - #:test-command '("emacs" "--batch" - "-l" "use-package-tests.el" - "-f" "ert-run-tests-batch-and-exit") - #:phases - (modify-phases %standard-phases - (add-before 'install 'install-manual - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (info-dir (string-append out "/share/info"))) - (mkdir-p info-dir) - (install-file "use-package.info" info-dir) - #t))) - (add-before 'install-manual 'build-manual - (lambda _ - (invoke "makeinfo" "use-package.texi") - #t))))) - (home-page "https://github.com/jwiegley/use-package") - (synopsis "Declaration for simplifying your .emacs") - (description "The use-package macro allows you to isolate package + ;; XXX: Upstream did not tag latest release. Using commit matching exact + ;; version bump. + (let ((commit "942617d26e11d80d879ff23d2a8b477bd074a734")) + (package + (name "emacs-use-package") + (version "2.4.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jwiegley/use-package") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1zpf9xv65jg813k90x8g9k4lja896nqfh48pjinicmz1rn0rf51a")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #t + #:test-command #~(list "emacs" "--batch" + "-l" "use-package-tests.el" + "-f" "ert-run-tests-batch-and-exit") + #:phases + #~(modify-phases %standard-phases + (add-before 'install 'install-manual + (lambda _ + (let ((info-dir (string-append #$output "/share/info"))) + (install-file "use-package.info" info-dir)))) + (add-before 'install-manual 'build-manual + (lambda _ + (invoke "makeinfo" "use-package.texi")))))) + (native-inputs + (list texinfo)) + (propagated-inputs + (list emacs-diminish)) + (home-page "https://github.com/jwiegley/use-package") + (synopsis "Declaration for simplifying your .emacs") + (description "The use-package macro allows you to isolate package configuration in your @file{.emacs} file in a way that is both performance-oriented and tidy.") - (license license:gpl2+))) + (license license:gpl2+)))) (define-public emacs-leaf (package @@ -20734,8 +20753,8 @@ never confused by comments or @code{foo-bar} matching @code{foo}.") (define-public emacs-crdt ;; XXX: Upstream does not always tag new releases. The commit below ;; corresponds exactly to latest version bump. - (let ((commit "480f60fdda9e40848920fa460b59dfba23fa06e5") - (version "0.3.3")) + (let ((commit "92a7c93a3b4cb4b40f133acd22c89a5fda5cdd30") + (version "0.3.4")) (package (name "emacs-crdt") (version version) @@ -20747,7 +20766,7 @@ never confused by comments or @code{foo-bar} matching @code{foo}.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "10hb2xwv8ylkm4cla2q5l11r1m1s1j4ywiwvy9x5884gxvbpbbph")))) + (base32 "1vh4d15g62crm4vimc7lgr11ws68g25ylipnvqlrrkvl6qrz3fhj")))) (build-system emacs-build-system) (home-page "https://code.librehq.com/qhong/crdt.el") (synopsis "Real-time collaborative editing environment") @@ -33612,8 +33631,8 @@ by leveraging @code{emacs-consult} APIs.") (define-public emacs-purs-mode ;; XXX: Upstream set no tag nor any Version keyword. Using 0 as the base ;; version. - (let ((commit "d29f1021787a90d0fd3eb0af625958abb7f7506b") - (revision "0")) + (let ((commit "16553383915cf453747a491715ed0427c107cc9e") + (revision "1")) (package (name "emacs-purs-mode") (version (git-version "0" revision commit)) @@ -33626,7 +33645,7 @@ by leveraging @code{emacs-consult} APIs.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0r7219ysf3hsjnan30hidf8jamcqsz36pkcmnhknff0c6dpwbnpx")))) + (base32 "0174p0g38jd34jwpww7zgh48i3lkhqrnrxz8ca09idz4adri38z7")))) (build-system emacs-build-system) (home-page "https://github.com/PureFunctor/purs-mode/") (synopsis "PureScript major mode for Emacs") diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 8574864598..d74d6aa935 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -2161,14 +2161,14 @@ Python, that binds to the C library @code{uchardet} to increase performance.") (define-public udiskie (package (name "udiskie") - (version "2.3.3") + (version "2.4.2") (source (origin (method url-fetch) (uri (pypi-uri "udiskie" version)) (sha256 (base32 - "0sagdmsc5km32h3jvgj843p8bicrrgfz26qhl04ibxmas6725zr0")))) + "0z0gk8l6rv4np29kfdalmy4q3900005sxhjg0jz1aa8irdcsp1qz")))) (build-system python-build-system) (native-inputs `(("asciidoc" ,asciidoc) @@ -2195,8 +2195,7 @@ Python, that binds to the C library @code{uchardet} to increase performance.") (let ((out (assoc-ref outputs "out")) (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) (wrap-program (string-append out "/bin/udiskie") - `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) - #t))))) + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))))))) (home-page "https://github.com/coldfix/udiskie") (synopsis "Automounter for removable media") (description diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index ade53a503c..f8163b1e37 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -20,6 +20,7 @@ ;;; Copyright © 2021, 2022 Nikolay Korotkiy <sikmir@disroot.org> ;;; Copyright © 2022 Roman Scherer <roman.scherer@burningswell.com> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -114,6 +115,8 @@ #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages readline) + #:use-module (gnu packages sdl) + #:use-module (gnu packages speech) #:use-module (gnu packages swig) #:use-module (gnu packages sqlite) #:use-module (gnu packages textutils) @@ -2770,3 +2773,106 @@ using third-party geocoders and other data sources.") reconstructions of geological and paleogeographic features through geological time. Interactively visualize vector, raster and volume data.") (license license:gpl2+))) + +(define-public navit + (package + (name "navit") + (version "0.5.6") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/navit-gps/navit") + (commit (string-append "v" version)))) + (sha256 + (base32 + "1jhlif0sc5m8wqb5j985g1xba2ki7b7mm14pkvzdghjd0q0gf15s")) + (file-name (git-file-name name version)))) + (build-system cmake-build-system) + (arguments + (list + ;; There are no tests + #:tests? #f + ;; With -DSAMPLE_MAP=TRUE (the default), it tries to download a + ;; map during the build process. + #:configure-flags #~(list "-DSAMPLE_MAP=FALSE") + #:phases + #~(modify-phases %standard-phases + (add-after + 'unpack 'patch-navit-config + (lambda _ + ;; For now this package only supports SDL, so if we keep + ;; the configuration as-is, Navit doesn't start. + (substitute* + "navit/navit_shipped.xml" + (("<graphics type=\"gtk_drawing_area\"/>") + "<graphics type=\"sdl\"/>")) + ;; Users are expected to be able to add XML files inside + ;; $NAVIT_SHAREDIR, however that directory is in the store. + (substitute* + "navit/navit_shipped.xml" + (("<xi:include href=\"\\$NAVIT_SHAREDIR/maps/\\*\\.xml\"/>") + "<xi:include href=\"$NAVIT_USER_DATADIR/maps/*.xml\"/>")) + ;; Navit also works without GPS but in that case there is + ;; no automatic zooming, so we need zoom buttons to be able + ;; to manually zoom in or out. + (substitute* + "navit/navit_shipped.xml" + (((string-append + "<osd enabled=\"no\" type=\"button\" x=\"-96\" y=\"-96\" " + "command=\"zoom_in()")) + (string-append + "<osd enabled=\"yes\" type=\"button\" x=\"-96\" y=\"-96\" " + "command=\"zoom_in()")) + (((string-append + "<osd enabled=\"no\" type=\"button\" x=\"0\" y=\"-96\" " + "command=\"zoom_out()")) + (string-append + "<osd enabled=\"yes\" type=\"button\" x=\"0\" y=\"-96\" " + "command=\"zoom_out()\" src=\"zoom_out.png\"/>"))))) + (add-before + 'build 'set-cache + ;; During the build, svg icons are converted in different + ;; formats, and this needs XDG_CACHE_HOME to work. + (lambda _ + (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")))))) + (inputs (list dbus-glib + espeak + freeglut + freeimage + freetype + glib + gettext-minimal + gpsd + gdk-pixbuf + imlib2 + python + sdl + sdl-image)) + (native-inputs (list fontconfig + (librsvg-for-system) + pkg-config)) + (home-page "https://www.navit-project.org") + (synopsis "Car navigation system with routing engine that uses vector maps data") + (description "Navit is a car navigation system with a routing engine. + +It is meant to work with touchscreen devices, but it also works +without a touchscreen. It also supports text to speech. + +It can be configured extensively through its own configuration file +format. For instance we can configure the graphical interface, and +which map data is to be displayed at which zoom level. + +It supports different routing profiles: bike, car, car_avoid_toll, +car_pedantic, car_shortest, horse, pedestrian, truck. + +It can use gpsd or NMEA GPS directly to get position data. It also +works without GPS: in this case users can also enter position data +directly. + +It can also be used to log GPS data to files using the GPX or NMEA +formats, or to replay NMEA data. + +For maps, it can uses its own \"binfile\" map format, or Garmin map +file format, and data from OpenStreetMap, Garmin maps, Marco Polo +Grosser Reiseplaner, Routeplaner Europa 2007, Map + Route.") + (license license:gpl2))) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index e8059b1a0a..feb80d81a2 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -621,8 +621,8 @@ in C/C++.") ;; XXXX: Workaround 'snippet' limitations. (define computed-origin-method (@@ (guix packages) computed-origin-method)) -(define %icecat-version "102.4.0-guix0-preview1") -(define %icecat-build-id "20221019000000") ;must be of the form YYYYMMDDhhmmss +(define %icecat-version "102.5.0-guix0-preview1") +(define %icecat-build-id "20221115000000") ;must be of the form YYYYMMDDhhmmss ;; 'icecat-source' is a "computed" origin that generates an IceCat tarball ;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat' @@ -644,11 +644,11 @@ in C/C++.") "firefox-" upstream-firefox-version ".source.tar.xz")) (sha256 (base32 - "0klh3lbm0zdmv90kmmpkzgn15pfjibr7zsjy3kvbzpql97fhv7z7")))) + "1n2pq165fxmvgcr5mv3hhaid2vn7lh3jg03lf13kz4c5295x8z81")))) - (upstream-icecat-base-version "102.4.0") ; maybe older than base-version + (upstream-icecat-base-version "102.5.0") ; maybe older than base-version ;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version)) - (gnuzilla-commit "8f1aa117ddca6e8cd0114265fb4ca9b5a927565a") + (gnuzilla-commit "a8848cb35e4e47a344d40596f72d82d57bf5a6f1") (gnuzilla-source (origin (method git-fetch) @@ -660,7 +660,7 @@ in C/C++.") (string-take gnuzilla-commit 8))) (sha256 (base32 - "0ryrn8ivm763swd0qbqhlgdwc2dj4xjd81d9i2r6hb7bsb4ky3y5")))) + "0d0brzi7wmg70kvi9p3g24cyya17bvg2djgjn64g14hpnalg8icw")))) ;; 'search-patch' returns either a valid file name or #f, so wrap it ;; in 'assume-valid-file-name' to avoid 'local-file' warnings. @@ -1242,8 +1242,8 @@ standards of the IceCat project.") (cpe-name . "firefox_esr") (cpe-version . ,(first (string-split version #\-))))))) -(define %icedove-build-id "20221104000000") ;must be of the form YYYYMMDDhhmmss -(define %icedove-version "102.4.2") +(define %icedove-build-id "20221115000000") ;must be of the form YYYYMMDDhhmmss +(define %icedove-version "102.5.0") ;; Provides the "comm" folder which is inserted into the icecat source. ;; Avoids the duplication of Icecat's source tarball. @@ -1252,11 +1252,11 @@ standards of the IceCat project.") (method hg-fetch) (uri (hg-reference (url "https://hg.mozilla.org/releases/comm-esr102") - (changeset "bece6c033f6b24b9c126598da7c6eb5bc2a48b14"))) + (changeset "b6e9b5a1d1b53d26cfb7032ef2ff02203ab0486b"))) (file-name (string-append "thunderbird-" %icedove-version "-checkout")) (sha256 (base32 - "1fsn5lg0c89rnsnljd48gq1z751sxf6zv2rv7wgnhifc45w4s80j")))) + "0i2w1ibaip8rlghrk5iaih14xnz5n19ag64qcdgjxic78mhnmm04")))) (define-public icedove (package diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 5997a24577..1785fe0d58 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -2702,54 +2702,56 @@ is no support for parsing block and inline level HTML.") (inputs (list guile-2.0)))) (define-public mcron - (package - (name "mcron") - (version "1.2.1") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/mcron/mcron-" - version ".tar.gz")) - (sha256 - (base32 - "0bkn235g2ia4f7ispr9d55c7bc18282r3qd8ldhh5q2kiin75zi0")))) - (build-system gnu-build-system) - (arguments - '(#:phases (modify-phases %standard-phases - (add-before 'check 'adjust-tests - (lambda _ - (substitute* "tests/job-specifier.scm" - ;; (getpw) fails with "entry not found" in the build - ;; environment, so pass an argument. - (("\\(getpw\\)") - "(getpwnam (getuid))") - ;; The build environment lacks an entry for root in - ;; /etc/passwd. - (("\\(getpw 0\\)") - "(getpwnam \"nobody\")") - - ;; FIXME: Skip the 4 faulty tests (see above). - (("\\(test-equal \"next-year\"" all) - (string-append "(test-skip 4)\n" all))) - #t))))) - (native-inputs `(("pkg-config" ,pkg-config) - ("tzdata" ,tzdata-for-tests) - ("guile-native" ;for 'guild compile' - ,@(assoc-ref (package-inputs this-package) "guile")))) - (inputs (list guile-3.0)) - (home-page "https://www.gnu.org/software/mcron/") - (synopsis "Run jobs at scheduled times") - (description - "GNU Mcron is a complete replacement for Vixie cron. It is used to run + ;; Use the latest commits, as interesting changes haven't been released yet, + ;; such as improved logging. + (let ((revision "0") + (commit "5fd0ccde5a4cff70299999f988e6b5166584814d")) + (package + (name "mcron") + (version (git-version "1.2.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.savannah.gnu.org/git/mcron.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0jl2w67a5hkphzssdzq3q4jcwv2b174b11d3w5i3khxq2vhzd6kk")))) + (build-system gnu-build-system) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (add-before 'check 'adjust-tests + (lambda _ + (substitute* "tests/job-specifier.scm" + ;; (getpw) fails with "entry not found" in the build + ;; environment, so pass an argument. + (("\\(getpw\\)") + "(getpwnam (getuid))") + ;; The build environment lacks an entry for root in + ;; /etc/passwd. + (("\\(getpw 0\\)") + "(getpwnam \"nobody\")") + ;; FIXME: Skip the 4 faulty tests (see above). + (("\\(test-equal \"next-year\"" all) + (string-append "(test-skip 4)\n" all)))))))) + (native-inputs (list autoconf + automake + guile-3.0 ;for 'guild compile' + help2man + pkg-config + tzdata-for-tests + texinfo)) + (inputs (list guile-3.0)) + (home-page "https://www.gnu.org/software/mcron/") + (synopsis "Run jobs at scheduled times") + (description + "GNU Mcron is a complete replacement for Vixie cron. It is used to run tasks on a schedule, such as every hour or every Monday. Mcron is written in Guile, so its configuration can be written in Scheme; the original cron format is also supported.") - (license license:gpl3+))) - -(define-public guile2.2-mcron - (package - (inherit mcron) - (name "guile2.2-mcron") - (inputs (list guile-2.2)))) + (license license:gpl3+)))) (define-public guile-picture-language (let ((commit "a1322bf11945465241ca5b742a70893f24156d12") diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index bbe03c64da..9e53b7483e 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -2278,7 +2278,7 @@ Format) file format decoder and encoder.") openexr)) ;; These are in Requires.private of libjxl.pc. (propagated-inputs - (list google-brotli google-highway)) + (list brotli google-highway)) (home-page "https://github.com/libjxl/libjxl") (synopsis "JPEG XL image format reference implementation") (description "This package contains a reference implementation of JPEG XL diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index b647c1aa3d..45fcb108f0 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -8934,8 +8934,8 @@ doesn't support them.") (sbcl-package->ecl-package sbcl-cl-interpol)) (define-public sbcl-symbol-munger - (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416") - (revision "1")) + (let ((commit "e96558e8315b8eef3822be713354787b2348b25e") + (revision "2")) (package (name "sbcl-symbol-munger") (version (git-version "0.0.1" revision commit)) @@ -8945,10 +8945,10 @@ doesn't support them.") (uri (git-reference (url "https://github.com/AccelerationNet/symbol-munger") (commit commit))) - (file-name (git-file-name name version)) + (file-name (git-file-name "cl-symbol-munger" version)) (sha256 (base32 - "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km")))) + "16fshnxp9212503z1vjlmx5pafv14bzpihn486x1ljakqjigfnfz")))) (build-system asdf-build-system/sbcl) (inputs `(("alexandria" ,sbcl-alexandria) @@ -14717,6 +14717,37 @@ for debugging and profiling real world applications.") (define-public ecl-supertrace (sbcl-package->ecl-package sbcl-supertrace)) +(define-public sbcl-flamegraph + (let ((commit "1ed7a718eae88bd35e1649a1c716d46c59dc0a24") + (revision "0")) + (package + (name "sbcl-flamegraph") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + ;; This is a fork with fixes for latest SBCL. + (url "https://github.com/ruricolist/cl-flamegraph") + (commit commit))) + (file-name (git-file-name "cl-flamegraph" version)) + (sha256 + (base32 "1aj7hhvav9j9c66ssy11ry3p6xqb912yafi91g6sin6pdx84c2lw")))) + (build-system asdf-build-system/sbcl) + (inputs + (list sbcl-alexandria)) + (home-page "https://github.com/40ants/cl-flamegraph") + (synopsis "Generate flamegraphs of Common Lisp code") + (description + "@code{cl-flamegraph} is a wrapper around SBCL's statistical profiler. +It saves stack traces of profiled code in a form suitable for processing by +the @command{flamegraph.pl} script, which is available in the Guix package +@code{flamegraph}.") + (license license:bsd-3)))) + +(define-public cl-flamegraph + (sbcl-package->cl-source-package sbcl-flamegraph)) + (define-public sbcl-trivial-benchmark (let ((commit "42d76733dd2e873471c6f1e27d39113293f7dd5c")) (package @@ -17296,6 +17327,42 @@ implementation, for example drawing calls of GUI applications.") (define-public cl-trivial-main-thread (sbcl-package->cl-source-package sbcl-trivial-main-thread)) +(define-public sbcl-moira + (let ((commit "21f1cfd5942fcaea2ed2e4f6055b2a5a39ac4c6e") + (revision "0")) + (package + (name "sbcl-moira") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ruricolist/moira") + (commit commit))) + (file-name (git-file-name "cl-moira" version)) + (sha256 + (base32 "0r6hvq8j04y1i85f8jwhhafylgfrkg8c1z5746nsbv0v0348sf5h")))) + (build-system asdf-build-system/sbcl) + (inputs + (list sbcl-alexandria + sbcl-bordeaux-threads + sbcl-osicat + sbcl-serapeum + sbcl-trivial-features + sbcl-trivial-garbage)) + (home-page "https://github.com/ruricolist/moira") + (synopsis "Monitor and restart background threads") + (description + "Moira is a library for monitoring and, if necessary, restarting +long-running threads. In principle, it is like an in-Lisp process supervisor.") + (license license:expat)))) + +(define-public cl-moira + (sbcl-package->cl-source-package sbcl-moira)) + +(define-public ecl-moira + (sbcl-package->ecl-package sbcl-moira)) + (define-public sbcl-cl-package-locks (let ((commit "96a358ede7cef416d61d2f699e724fe1d9de602c") (revision "1")) @@ -19999,6 +20066,44 @@ libyaml.") (define-public ecl-cl-yaml (sbcl-package->ecl-package sbcl-cl-yaml)) +(define-public sbcl-clop + (let ((commit "c0c3fe7efa5ac95ba1644febfb2c2acab757fcda") + (revision "0")) + (package + (name "sbcl-clop") + ;; ASD file indicates 0.1.0, but changelog 1.0.1. + (version (git-version "1.0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sheepduke/clop") + (commit commit))) + (file-name (git-file-name "cl-clop" version)) + (sha256 + (base32 "1q7rlizr8gcbfz4a9660gdbw7d2zbld18akjpibg54j7jh5kb8gc")))) + (build-system asdf-build-system/sbcl) + (native-inputs + (list sbcl-fiveam)) + (inputs + (list sbcl-alexandria + sbcl-cl-str + sbcl-esrap + sbcl-local-time + sbcl-parse-number)) + (home-page "https://github.com/sheepduke/clop") + (synopsis "TOML parser for Common Lisp") + (description + "Clop is a Common Lisp library for parsing strings in the TOML +configuration file format.") + (license license:expat)))) + +(define-public cl-clop + (sbcl-package->cl-source-package sbcl-clop)) + +(define-public ecl-clop + (sbcl-package->ecl-package sbcl-clop)) + (define-public sbcl-linedit (let ((commit "0561c97dfca2f5854fcc66558a567a9875ddcb8f") (revision "1")) @@ -20482,6 +20587,69 @@ command in Common Lisp.") (define-public ecl-which (sbcl-package->ecl-package sbcl-which)) +(define-public sbcl-wu-decimal + (let ((commit "5b348bdb32a0f83e80e17aa68cd51787ae8c8a45") + (revision "0")) + (package + (name "sbcl-wu-decimal") + (version (git-version "2.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Wukix/wu-decimal") + (commit commit))) + (file-name (git-file-name "cl-wu-decimal" version)) + (sha256 + (base32 "1p7na4hic7297amwm4idfwkyx664ny8cdssncyra37pmv4wzp8dm")))) + (build-system asdf-build-system/sbcl) + (home-page "https://github.com/Wukix/wu-decimal") + (synopsis "Arbitrary-precision decimal arithmetic") + (description + "Wu-Decimal enables convenient, arbitrary-precision decimal arithmetic +through a reader macro, @code{#$}, and an update to the @code{pprint} dispatch +table. Wu-Decimal uses the CL rational type to store decimals, which enables +numeric functions such as @code{+}, @code{-}, etc., to operate on decimal +numbers in a natural way.") + (license license:bsd-2)))) + +(define-public cl-wu-decimal + (sbcl-package->cl-source-package sbcl-wu-decimal)) + +(define-public ecl-wu-decimal + (sbcl-package->ecl-package sbcl-wu-decimal)) + +(define-public sbcl-infix-math + (let ((commit "f5155ae9709e518061ace79887d78f8e79c61cac") + (revision "0")) + (package + (name "sbcl-infix-math") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ruricolist/infix-math") + (commit commit))) + (file-name (git-file-name "cl-infix-math" version)) + (sha256 + (base32 "1h6p254xl793wfq3qla5y95k6zimy477f8brblx6ran3rg3bydbg")))) + (build-system asdf-build-system/sbcl) + (inputs + (list sbcl-alexandria sbcl-parse-number sbcl-serapeum sbcl-wu-decimal)) + (home-page "https://github.com/ruricolist/infix-math") + (synopsis "Extensible infix syntax for math in Common Lisp") + (description + "Infix-Math is a library that provides a special-purpose syntax for +transcribing mathematical formulas into Lisp.") + (license license:expat)))) + +(define-public cl-infix-math + (sbcl-package->cl-source-package sbcl-infix-math)) + +(define-public ecl-infix-math + (sbcl-package->ecl-package sbcl-infix-math)) + (define-public sbcl-cl-num-utils (let ((commit "97a88cd34540acf52e872a82ebfef3da0a34fa12") (revision "1")) @@ -20665,6 +20833,42 @@ density, distribution and quantiles for these distributions.") (define-public ecl-cl-random (sbcl-package->ecl-package sbcl-cl-random)) +(define-public sbcl-random-sample + (let ((commit "46b70374ed796b84ea003e83c1db97b0caf97e22") + (revision "0")) + (package + (name "sbcl-random-sample") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ruricolist/random-sample") + (commit commit))) + (file-name (git-file-name "cl-random-sample" version)) + (sha256 + (base32 "0nhgca6wf754wbg91h40gx7xq22rawg2pn6l7h02wv1jxac4q6nh")))) + (build-system asdf-build-system/sbcl) + (native-inputs + (list sbcl-fiveam)) + (inputs + (list sbcl-alexandria + sbcl-infix-math + sbcl-named-readtables + sbcl-serapeum)) + (home-page "https://github.com/ruricolist/random-sample") + (synopsis "Take a random sample from a sequence") + (description + "Random-Sample is a library for reliably taking a random sample from a +sequence.") + (license license:expat)))) + +(define-public cl-random-sample + (sbcl-package->cl-source-package sbcl-random-sample)) + +(define-public ecl-random-sample + (sbcl-package->ecl-package sbcl-random-sample)) + (define-public sbcl-mgl-gpr (let ((commit "cb6ce51e2f87bf1d589f3703c13eea6e25780afe") (revision "1")) @@ -24751,6 +24955,45 @@ roman numeral given in the key.") (define-public ecl-triads (sbcl-package->ecl-package sbcl-triads)) +(define-public sbcl-closure-template + ;; There are no releases since 2015. + (let ((commit "f1983aa525045691e128027d2a2d74831c873d6e") + (revision "0")) + (package + (name "sbcl-closure-template") + (version (git-version "0.2.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/archimag/cl-closure-template") + (commit commit))) + (file-name (git-file-name "cl-closure-template" version)) + (sha256 + (base32 "16h0fs6bjjd4n9pbkwcprpgyj26vsw2akk3q08m7xmsmqi05dppv")))) + (build-system asdf-build-system/sbcl) + (native-inputs (list sbcl-lift)) + (inputs + (list sbcl-alexandria + sbcl-babel + sbcl-closer-mop + sbcl-esrap + sbcl-iterate + sbcl-parse-number + sbcl-split-sequence)) + (synopsis "Lisp implementation of Google Closure Templates") + (description + "This package provides a Common Lisp implementation of Google +Closure Templates.") + (home-page "https://github.com/archimag/cl-closure-template/") + (license license:llgpl)))) + +(define-public cl-closure-template + (sbcl-package->cl-source-package sbcl-closure-template)) + +(define-public ecl-closure-template + (sbcl-package->ecl-package sbcl-closure-template)) + (define-public sbcl-cl-morse (package (name "sbcl-cl-morse") diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 324149116b..2b50b127c2 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -176,11 +176,14 @@ compiler. In LLVM this library is called \"compiler-rt\".") (properties (append `((release-monitoring-url . ,%llvm-release-monitoring-url)) - (clang-properties (package-version llvm))))) + (clang-properties (package-version llvm)))) + (legacy-build-shared-libs? #f)) "Produce Clang with dependencies on LLVM and CLANG-RUNTIME, and applying the given PATCHES. When TOOLS-EXTRA is given, it must point to the 'clang-tools-extra' tarball, which contains code for 'clang-tidy', 'pp-trace', -'modularize', and other tools." +'modularize', and other tools. LEGACY-BUILD-SHARED-LIBS? is used to configure +the package to use the legacy BUILD_SHARED_LIBS CMake option, which was used +until LLVM/Clang 14." (package (name "clang") (version (package-version llvm)) @@ -221,14 +224,17 @@ given PATCHES. When TOOLS-EXTRA is given, it must point to the (string-append "-DC_INCLUDE_DIRS=" (assoc-ref %build-inputs "libc") "/include") - ,@(if (target-riscv64?) - (list "-DLIBOMP_LIBFLAGS=-latomic" - "-DCMAKE_SHARED_LINKER_FLAGS=-latomic") - `())) + ,@(if (target-riscv64?) + (list "-DLIBOMP_LIBFLAGS=-latomic" + "-DCMAKE_SHARED_LINKER_FLAGS=-latomic") + `()) + ,@(if legacy-build-shared-libs? + '() + (list "-DCLANG_LINK_CLANG_DYLIB=ON"))) ,@(if (target-riscv64?) - `(#:make-flags '("LDFLAGS=-latomic")) - '()) + `(#:make-flags '("LDFLAGS=-latomic")) + '()) ;; Don't use '-g' during the build to save space. #:build-type "Release" @@ -247,9 +253,11 @@ given PATCHES. When TOOLS-EXTRA is given, it must point to the (string-delete #\- (package-version llvm)) ".src") "tools/extra") - ;; Build and link to shared libraries. - (substitute* "cmake/modules/AddClang.cmake" - (("BUILD_SHARED_LIBS") "True")) + ,@(if legacy-build-shared-libs? + ;; Build and link to shared libraries. + '((substitute* "cmake/modules/AddClang.cmake" + (("BUILD_SHARED_LIBS") "True"))) + '()) #t)))) '()) (add-after 'unpack 'add-missing-triplets @@ -323,6 +331,15 @@ given PATCHES. When TOOLS-EXTRA is given, it must point to the (("@GLIBC_LIBDIR@") (string-append libc "/lib")))))) #t))) + ;; Awkwardly, multiple phases added after the same phase, + ;; e.g. unpack, get applied in the reverse order. In other + ;; words, adding 'change-directory last means it occurs + ;; first after the unpack phase. + ,@(if (version>=? version "14") + '((add-after 'unpack 'change-directory + (lambda _ + (chdir "clang")))) + '()) ,@(if (version>=? version "10") `((add-after 'install 'adjust-cmake-file (lambda* (#:key outputs #:allow-other-keys) @@ -545,10 +562,12 @@ output), and Binutils.") ("libc-static" ,glibc "static"))))) (define %llvm-monorepo-hashes - '(("14.0.6" . "14f8nlvnmdkp9a9a79wv67jbmafvabczhah8rwnqrgd5g3hfxxxx"))) + '(("14.0.6" . "14f8nlvnmdkp9a9a79wv67jbmafvabczhah8rwnqrgd5g3hfxxxx") + ("15.0.4" . "0j5kx4s970qzcjr83kk6776zzjqfshl61x9fagqz8kjxcjbpg8cj"))) (define %llvm-patches - '(("14.0.6" . ("clang-14.0-libc-search-path.patch")))) + '(("14.0.6" . ("clang-14.0-libc-search-path.patch")) + ("15.0.4" . ("clang-15.0-libc-search-path.patch")))) (define (llvm-monorepo version) (origin @@ -560,20 +579,74 @@ output), and Binutils.") (sha256 (base32 (assoc-ref %llvm-monorepo-hashes version))) (patches (map search-patch (assoc-ref %llvm-patches version))))) -(define-public llvm-14 +;;; TODO: Make the base llvm all other LLVM inherit from on core-updates. +(define-public llvm-15 (package (name "llvm") - (version "14.0.6") + (version "15.0.4") (source (llvm-monorepo version)) (build-system cmake-build-system) (outputs '("out" "opt-viewer")) - (native-inputs - `(("python" ,python-wrapper) - ("perl" ,perl))) - (inputs - (list libffi)) - (propagated-inputs - (list zlib)) ;to use output from llvm-config + (arguments + (list + #:configure-flags + #~(list + ;; These options are required for cross-compiling LLVM according + ;; to <https://llvm.org/docs/HowToCrossCompileLLVM.html>. + #$@(if (%current-target-system) + #~((string-append "-DLLVM_TABLEGEN=" + #+(file-append this-package + "/bin/llvm-tblgen")) + #$(string-append "-DLLVM_DEFAULT_TARGET_TRIPLE=" + (%current-target-system)) + #$(string-append "-DLLVM_TARGET_ARCH=" + (system->llvm-target)) + #$(string-append "-DLLVM_TARGETS_TO_BUILD=" + (system->llvm-target))) + '()) + ;; Note: sadly, the build system refuses the use of + ;; -DBUILD_SHARED_LIBS=ON and the large static archives are needed to + ;; build clang-runtime, so we cannot delete them. + "-DLLVM_BUILD_LLVM_DYLIB=ON" + "-DLLVM_LINK_LLVM_DYLIB=ON" + "-DLLVM_ENABLE_FFI=ON" + "-DLLVM_ENABLE_RTTI=ON" ;for some third-party utilities + "-DLLVM_INSTALL_UTILS=ON" ;needed for rustc + "-DLLVM_PARALLEL_LINK_JOBS=1") ;cater to smaller build machines + ;; Don't use '-g' during the build, to save space. + #:build-type "Release" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'change-directory + (lambda _ + (chdir "llvm"))) + (add-after 'install 'install-opt-viewer + (lambda* (#:key outputs #:allow-other-keys) + (let* ((opt-viewer-share (string-append #$output:opt-viewer + "/share"))) + (mkdir-p opt-viewer-share) + (rename-file (string-append #$output "/share/opt-viewer") + opt-viewer-share))))))) + (native-inputs (list python-wrapper perl)) + (inputs (list libffi)) + (propagated-inputs (list zlib)) ;to use output from llvm-config + (home-page "https://www.llvm.org") + (synopsis "Optimizing compiler infrastructure") + (description + "LLVM is a compiler infrastructure designed for compile-time, link-time, +runtime, and idle-time optimization of programs from arbitrary programming +languages. It currently supports compilation of C and C++ programs, using +front-ends derived from GCC 4.0.1. A new front-end for the C family of +languages is in development. The compiler infrastructure includes mirror sets +of programming tools as well as libraries with equivalent functionality.") + (license license:asl2.0) + (properties `((release-monitoring-url . ,%llvm-release-monitoring-url))))) + +(define-public llvm-14 + (package + (inherit llvm-15) + (version "14.0.6") + (source (llvm-monorepo version)) (arguments (list #:configure-flags @@ -613,20 +686,13 @@ output), and Binutils.") (mkdir-p opt-viewer-share-dir) (rename-file (string-append out "/share/opt-viewer") opt-viewer-dir))))))) - (home-page "https://www.llvm.org") - (synopsis "Optimizing compiler infrastructure") - (description - "LLVM is a compiler infrastructure designed for compile-time, link-time, -runtime, and idle-time optimization of programs from arbitrary programming -languages. It currently supports compilation of C and C++ programs, using -front-ends derived from GCC 4.0.1. A new front-end for the C family of -languages is in development. The compiler infrastructure includes mirror sets -of programming tools as well as libraries with equivalent functionality.") - (license license:asl2.0) - (properties `((release-monitoring-url . ,%llvm-release-monitoring-url))))) -(define-public clang-runtime-14 - (let ((template (clang-runtime-from-llvm llvm-14))) + (native-inputs + `(("python" ,python-wrapper) + ("perl" ,perl))))) + +(define-public clang-runtime-15 + (let ((template (clang-runtime-from-llvm llvm-15))) (package (inherit template) (arguments @@ -635,23 +701,21 @@ of programming tools as well as libraries with equivalent functionality.") #~(modify-phases #$phases (add-after 'unpack 'change-directory (lambda _ - (chdir "compiler-rt"))))))) + (chdir "compiler-rt"))) + (add-after 'install 'delete-static-libraries + ;; Reduce size from 33 MiB to 7.4 MiB. + (lambda _ + (for-each delete-file + (find-files #$output "\\.a(\\.syms)?$")))))))) (native-inputs - `(;; FIXME: libfuzzer fails to build with GCC 10. - ("gcc" ,gcc-11) - ,@(package-native-inputs template)))))) + (modify-inputs (package-native-inputs template) + (prepend gcc-12))) ;libfuzzer fails to build with GCC 11 + (inputs + (modify-inputs (package-inputs template) + (append libffi)))))) -(define-public clang-14 - (let ((template - (clang-from-llvm llvm-14 clang-runtime-14 - #:tools-extra - (origin - (method url-fetch) - (uri (llvm-uri "clang-tools-extra" - (package-version llvm-14))) - (sha256 - (base32 - "0rhq4wkmvr369nkk059skzzw7jx6qhzqhmiwmqg4sp66avzviwvw")))))) +(define-public clang-runtime-14 + (let ((template (clang-runtime-from-llvm llvm-14))) (package (inherit template) (arguments @@ -660,50 +724,100 @@ of programming tools as well as libraries with equivalent functionality.") #~(modify-phases #$phases (add-after 'unpack 'change-directory (lambda _ - (chdir "clang")))))))))) + (chdir "compiler-rt"))))))) + (native-inputs + `(;; FIXME: libfuzzer fails to build with GCC 10. + ("gcc" ,gcc-11) + ,@(package-native-inputs template)))))) -(define-public libomp-14 +(define-public clang-15 + (clang-from-llvm + llvm-15 clang-runtime-15 + #:tools-extra + (origin + (method url-fetch) + (uri (llvm-uri "clang-tools-extra" + (package-version llvm-15))) + (sha256 + (base32 + "03adxlh84if9p53m6izjsql500rjza9rng8akab2pdqibgrg73rh"))))) + +(define-public clang-14 + (clang-from-llvm + llvm-14 clang-runtime-14 + #:legacy-build-shared-libs? #t + #:tools-extra + (origin + (method url-fetch) + (uri (llvm-uri "clang-tools-extra" + (package-version llvm-14))) + (sha256 + (base32 + "0rhq4wkmvr369nkk059skzzw7jx6qhzqhmiwmqg4sp66avzviwvw"))))) + +(define-public libomp-15 (package (name "libomp") - (version (package-version llvm-14)) - (source (origin - (method url-fetch) - (uri (llvm-uri "openmp" version)) - (sha256 - (base32 - "07zby3gwy5c8jssabrhjk3nsxlwipnm6sk4dsvck1l5d0br1ywsg")) - (file-name (string-append "libomp-" version ".tar.xz")))) + (version (package-version llvm-15)) + (source (llvm-monorepo version)) (build-system cmake-build-system) ;; XXX: Note this gets built with GCC because building with Clang itself ;; fails (missing <atomic>, even when libcxx is added as an input.) (arguments (list - #:configure-flags #~(list "-DLIBOMP_USE_HWLOC=ON" - "-DOPENMP_TEST_C_COMPILER=clang" - "-DOPENMP_TEST_CXX_COMPILER=clang++") - #:test-target "check-libomp" - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'chdir-to-source-and-install-license - (lambda _ - (chdir #$(string-append "../openmp-" version ".src")) - (install-file "LICENSE.TXT" - (string-append #$output "/share/doc"))))))) - (native-inputs - (list clang-14 llvm-14 perl pkg-config python)) - (inputs - (list `(,hwloc "lib"))) + #:configure-flags + #~(list "-DLIBOMP_USE_HWLOC=ON" + "-DOPENMP_TEST_C_COMPILER=clang" + "-DOPENMP_TEST_CXX_COMPILER=clang++") + #:test-target "check-libomp" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir-to-source-and-install-license + (lambda _ + (chdir "openmp") + (install-file "LICENSE.TXT" + (string-append #$output "/share/doc"))))))) + (native-inputs (list clang-15 llvm-15 perl pkg-config python)) + (inputs (list `(,hwloc "lib"))) (home-page "https://openmp.llvm.org") (synopsis "OpenMP run-time support library") - (description - "This package provides the run-time support library developed by the LLVM -project for the OpenMP multi-theaded programming extension. This package -notably provides @file{libgomp.so}, which is has a binary interface compatible -with that of libgomp, the GNU Offloading and Multi Processing Library.") + (description "This package provides the run-time support library developed +by the LLVM project for the OpenMP multi-theaded programming extension. This +package notably provides @file{libgomp.so}, which is has a binary interface +compatible with that of libgomp, the GNU Offloading and Multi Processing +Library.") (properties `((release-monitoring-url . ,%llvm-release-monitoring-url) (upstream-name . "openmp"))) (license license:expat))) +(define-public clang-toolchain-15 + (make-clang-toolchain clang-15 libomp-15)) + +(define-public libomp-14 + (package + (inherit libomp-15) + (version (package-version llvm-14)) + (source (origin + (method url-fetch) + (uri (llvm-uri "openmp" version)) + (sha256 + (base32 + "07zby3gwy5c8jssabrhjk3nsxlwipnm6sk4dsvck1l5d0br1ywsg")) + (file-name (string-append "libomp-" version ".tar.xz")))) + (arguments + (substitute-keyword-arguments (package-arguments libomp-15) + ((#:phases phases) + #~(modify-phases #$phases + (replace 'chdir-to-source-and-install-license + (lambda _ + (chdir #$(string-append "../openmp-" version ".src")) + (install-file "LICENSE.TXT" + (string-append #$output "/share/doc")))))))) + (native-inputs + (modify-inputs (package-native-inputs libomp-15) + (replace "clang" clang-14) + (replace "llvm" llvm-14))))) + (define-public clang-toolchain-14 (make-clang-toolchain clang-14 libomp-14)) @@ -733,6 +847,7 @@ with that of libgomp, the GNU Offloading and Multi Processing Library.") (define-public clang-13 (clang-from-llvm llvm-13 clang-runtime-13 "1j8pr5kk8iqyb4jds3yl7c6x672617h4ngkpl4575j7mk4nrwykq" + #:legacy-build-shared-libs? #t #:patches '("clang-13.0-libc-search-path.patch") #:tools-extra (origin @@ -847,6 +962,7 @@ with that of libgomp, the GNU Offloading and Multi Processing Library.") (define-public clang-12 (clang-from-llvm llvm-12 clang-runtime-12 "0px4gl27az6cdz6adds89qzdwb1cqpjsfvrldbz9qvpmphrj34bf" + #:legacy-build-shared-libs? #t #:patches '("clang-12.0-libc-search-path.patch") #:tools-extra (origin @@ -901,6 +1017,7 @@ with that of libgomp, the GNU Offloading and Multi Processing Library.") (define-public clang-11 (clang-from-llvm llvm-11 clang-runtime-11 "02ajkij85966vd150iy246mv16dsaph1kfi0y8wnncp8w6nar5hg" + #:legacy-build-shared-libs? #t #:patches '("clang-11.0-libc-search-path.patch") #:tools-extra (origin @@ -957,12 +1074,13 @@ with that of libgomp, the GNU Offloading and Multi Processing Library.") (define-public clang-10 (clang-from-llvm llvm-10 clang-runtime-10 "091bvcny2lh32zy8f3m9viayyhb2zannrndni7325rl85cwgr6pr" + #:legacy-build-shared-libs? #t #:patches '("clang-10.0-libc-search-path.patch") #:tools-extra (origin (method url-fetch) (uri (llvm-uri "clang-tools-extra" - (package-version llvm-10))) + (package-version llvm-10))) (sha256 (base32 "06n1yp638rh24xdxv9v2df0qajxbjz4w59b7dd4ky36drwmpi4yh"))))) @@ -1026,6 +1144,7 @@ with that of libgomp, the GNU Offloading and Multi Processing Library.") (define-public clang-9 (clang-from-llvm llvm-9 clang-runtime-9 "0ls2h3iv4finqyflyhry21qhc9cm9ga7g1zq21020p065qmm2y2p" + #:legacy-build-shared-libs? #t #:patches '("clang-9.0-libc-search-path.patch"))) (define-public libomp-9 @@ -1069,6 +1188,7 @@ with that of libgomp, the GNU Offloading and Multi Processing Library.") (define-public clang-8 (clang-from-llvm llvm-8 clang-runtime-8 "0ihnbdl058gvl2wdy45p5am55bq8ifx8m9mhcsgj9ax8yxlzvvvh" + #:legacy-build-shared-libs? #t #:patches '("clang-8.0-libc-search-path.patch"))) (define-public libomp-8 @@ -1111,6 +1231,7 @@ with that of libgomp, the GNU Offloading and Multi Processing Library.") (define-public clang-7 (clang-from-llvm llvm-7 clang-runtime-7 "0vc4i87qwxnw9lci4ayws9spakg0z6w5w670snj9f8g5m9rc8zg9" + #:legacy-build-shared-libs? #t #:patches '("clang-7.0-libc-search-path.patch"))) (define-public libomp-7 @@ -1152,6 +1273,7 @@ with that of libgomp, the GNU Offloading and Multi Processing Library.") (define-public clang-6 (clang-from-llvm llvm-6 clang-runtime-6 "0rxn4rh7rrnsqbdgp4gzc8ishbkryhpl1kd3mpnxzpxxhla3y93w" + #:legacy-build-shared-libs? #t #:patches '("clang-6.0-libc-search-path.patch"))) (define-public libomp-6 @@ -1213,6 +1335,7 @@ with that of libgomp, the GNU Offloading and Multi Processing Library.") (define-public clang-3.9.1 (clang-from-llvm llvm-3.9.1 clang-runtime-3.9.1 "0qsyyb40iwifhhlx9a3drf8z6ni6zwyk3bvh0kx2gs6yjsxwxi76" + #:legacy-build-shared-libs? #t #:patches '("clang-3.8-libc-search-path.patch"))) (define-public llvm-3.8 @@ -1239,6 +1362,7 @@ with that of libgomp, the GNU Offloading and Multi Processing Library.") (define-public clang-3.8 (clang-from-llvm llvm-3.8 clang-runtime-3.8 "1prc72xmkgx8wrzmrr337776676nhsp1qd3mw2bvb22bzdnq7lsc" + #:legacy-build-shared-libs? #t #:patches '("clang-3.8-libc-search-path.patch"))) (define-public llvm-3.7 @@ -1265,6 +1389,7 @@ with that of libgomp, the GNU Offloading and Multi Processing Library.") (define-public clang-3.7 (clang-from-llvm llvm-3.7 clang-runtime-3.7 "0x065d0w9b51xvdjxwfzjxng0gzpbx45fgiaxpap45ragi61dqjn" + #:legacy-build-shared-libs? #t #:patches '("clang-3.5-libc-search-path.patch"))) (define-public llvm-3.6 @@ -1324,6 +1449,7 @@ with that of libgomp, the GNU Offloading and Multi Processing Library.") (define-public clang-3.5 (clang-from-llvm llvm-3.5 clang-runtime-3.5 "0846h8vn3zlc00jkmvrmy88gc6ql6014c02l4jv78fpvfigmgssg" + #:legacy-build-shared-libs? #t #:patches '("clang-3.5-libc-search-path.patch"))) ;; Default LLVM and Clang version. @@ -1393,14 +1519,14 @@ with that of libgomp, the GNU Offloading and Multi Processing Library.") (properties `((release-monitoring-url . ,%llvm-release-monitoring-url))) (license license:asl2.0))) ;with LLVM exceptions -(define-public lld-14 +(define-public lld-15 (package (name "lld") - (version "14.0.6") + (version "15.0.4") (source (llvm-monorepo version)) (build-system cmake-build-system) (inputs - (list llvm-14)) + (list llvm-15)) (arguments '(#:build-type "Release" ;; TODO: Tests require the lit tool, which isn't installed by the LLVM @@ -1416,6 +1542,14 @@ with that of libgomp, the GNU Offloading and Multi Processing Library.") components which highly leverage existing libraries in the larger LLVM Project.") (license license:asl2.0))) ; With LLVM exception +(define-public lld-14 + (package + (inherit lld-15) + (version "14.0.6") + (source (llvm-monorepo version)) + (inputs + (list llvm-14)))) + (define-public lld-13 (package (inherit lld-14) @@ -1491,6 +1625,9 @@ misuse of libraries outside of the store.") (make-lld-wrapper lld)) ;;; A LLD wrapper that can be used as a (near) drop-in replacement to GNU ld. +(define-public lld-as-ld-wrapper-15 + (make-lld-wrapper lld-15 #:lld-as-ld? #t)) + (define-public lld-as-ld-wrapper (make-lld-wrapper lld #:lld-as-ld? #t)) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 7279234f69..891b504a46 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -1007,7 +1007,7 @@ extracting, creating, and converting between formats.") (define-public conda (package (name "conda") - (version "4.10.3") + (version "22.9.0") (source (origin (method git-fetch) @@ -1017,17 +1017,16 @@ extracting, creating, and converting between formats.") (file-name (git-file-name name version)) (sha256 (base32 - "1w4yy62bsvkybjvcm5fspck4ns5j16nplzpbx6bxv7zhx69pcp4n")))) + "16vz4vx311ry9w35mi5wna8p8n3abd6wdqrpqzjfdlwv7hcr44s4")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'fix-permissions + ;; The default version of pytest does not support these options. + (add-after 'unpack 'use-older-pytest (lambda _ - ;; This file is no longer writable after downloading with - ;; 'git-fetch' - (make-file-writable - "tests/conda_env/support/saved-env/environment.yml"))) + (substitute* "setup.cfg" + (("--xdoctest-.*") "")))) (add-after 'unpack 'fix-ruamel-yaml-dependency (lambda _ (substitute* "setup.py" @@ -1042,8 +1041,7 @@ extracting, creating, and converting between formats.") (substitute* "conda/core/initialize.py" (("python_exe = join") (format #f "python_exe = \"~a/bin/python\" #" - python)))) - #t)) + python)))))) (add-after 'unpack 'do-not-use-python-root-as-prefix (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) @@ -1066,45 +1064,50 @@ extracting, creating, and converting between formats.") (("os.path.join\\(sys.prefix, bin_dir, exe\\)") (format #f "\"~a/bin/conda\"" out)) (("'CONDA_EXE', sys.executable") - (format #f "'CONDA_EXE', \"~a/bin/conda\"" out)))) - #t)) + (format #f "'CONDA_EXE', \"~a/bin/conda\"" out)))))) (add-before 'build 'create-version-file (lambda _ (with-output-to-file "conda/.version" - (lambda () (display ,version))) - #t)) + (lambda () (display ,version))))) (replace 'check - (lambda _ - (setenv "HOME" "/tmp") - (invoke "py.test" "-vv" - "-k" - (string-append - "not integration" - ;; This one reports a newer version of conda than - ;; expected. - " and not test_auto_update_conda" - ;; This fails because the output directory is not a - ;; Conda environment. - " and not test_list" - ;; This fails because we patched the default root - ;; prefix. - " and not test_default_target_is_root_prefix" - - ;; These fail because ... - ;; TODO: conda patches its own shebang to - ;; $conda-prefix/bin/python, which is obviously wrong. - " and not test_run_returns_int" - " and not test_run_returns_zero_errorlevel" - " and not test_run_returns_nonzero_errorlevel" - - ;; TODO: I don't understand what this failure means - " and not test_PrefixData_return_value_contract" - ;; TODO: same here - " and not test_install_1" - ;; Not sure if this is really wrong. This fails because - ;; /gnu/store/...python-conda-4.8.3/bin/python - ;; is not /gnu/store/...python-wrapper-3.8.2/bin/python - " and not test_make_entry_point")))) + (lambda* (#:key tests? #:allow-other-keys) + ;; These tests all require network access. + (for-each delete-file '("tests/cli/test_main_clean.py" + "tests/cli/test_main_rename.py")) + (when tests? + (setenv "HOME" "/tmp") + (invoke "py.test" "-vv" + "-k" + (string-append + "not integration" + ;; This one reports a newer version of conda than + ;; expected; conda-1.5.2-py27_0 instead of + ;; conda-1.3.5-py27_0. + " and not test_auto_update_conda" + ;; This fails because the output directory is not a + ;; Conda environment. + " and not test_list" + ;; This fails because we patched the default root + ;; prefix. + " and not test_default_target_is_root_prefix" + ;; This fails because of missing features in python-flaky. + " and not test_no_features" + ;; These fail because they require network access + " and not test_no_ssl" + " and not test_run_readonly_env" + " and not test_run_returns_int" + " and not test_run_returns_nonzero_errorlevel" + " and not test_run_returns_zero_errorlevel" + " and not test_run_uncaptured" + + ;; TODO: I don't understand what this failure means + " and not test_PrefixData_return_value_contract" + ;; TODO: same here + " and not test_install_1" + ;; Not sure if this is really wrong. This fails because + ;; /gnu/store/...conda-22.9.0/bin/python + ;; is not /gnu/store/...python-wrapper-3.9.9/bin/python + " and not test_make_entry_point"))))) (add-after 'install 'init ;; This writes a whole bunch of shell initialization files to the ;; prefix directory. Many features of conda can only be used after @@ -1119,8 +1122,10 @@ extracting, creating, and converting between formats.") (list python-wrapper)) (propagated-inputs (list python-anaconda-client + python-boto3 python-conda-package-handling python-cytoolz + python-pluggy python-pycosat python-pytest python-pyyaml @@ -1131,7 +1136,10 @@ extracting, creating, and converting between formats.") ;; XXX: This is dragged in by libarchive and is needed at runtime. zstd)) (native-inputs - (list python-pytest-timeout)) + (list python-coverage + python-flaky + python-pytest-timeout + python-pytest-xprocess)) (home-page "https://github.com/conda/conda") (synopsis "Cross-platform, OS-agnostic, system-level binary package manager") (description diff --git a/gnu/packages/patches/clang-15.0-libc-search-path.patch b/gnu/packages/patches/clang-15.0-libc-search-path.patch new file mode 100644 index 0000000000..20726859b2 --- /dev/null +++ b/gnu/packages/patches/clang-15.0-libc-search-path.patch @@ -0,0 +1,95 @@ +Clang attempts to guess file names based on the OS and distro (yes!), +but unfortunately, that doesn't work for us. + +This patch makes it easy to insert libc's $libdir so that Clang passes the +correct absolute file name of crt1.o etc. to 'ld'. It also disables all +the distro-specific stuff and removes the hard-coded FHS directory names +to make sure Clang also works on foreign distros. + +diff --git a/clang/lib/Driver/Distro.cpp b/clang/libDriver/Distro.cpp +index 1898667..35de813 100644 +--- a/clang/lib/Driver/Distro.cpp ++++ b/clang/libDriver/Distro.cpp +@@ -97,6 +97,10 @@ static Distro::DistroType DetectLsbRelease(llvm::vfs::FileSystem &VFS) { + } + + static Distro::DistroType DetectDistro(llvm::vfs::FileSystem &VFS) { ++ // The compiler should always behave the same, even when used via Guix on a ++ // foreign distro. ++ return Distro::UnknownDistro; ++ + Distro::DistroType Version = Distro::UnknownDistro; + + // Newer freedesktop.org's compilant systemd-based systems +diff --git a/clang/lib/Driver/ToolChains/Cuda.cpp b/clang/libDriver/ToolChains/Cuda.cpp +index 7ad990d..e4da4d4 100644 +--- a/clang/lib/Driver/ToolChains/Cuda.cpp ++++ b/clang/libDriver/ToolChains/Cuda.cpp +@@ -117,6 +117,9 @@ CudaInstallationDetector::CudaInstallationDetector( + const Driver &D, const llvm::Triple &HostTriple, + const llvm::opt::ArgList &Args) + : D(D) { ++ // Don't look for CUDA in /usr. ++ return; ++ + struct Candidate { + std::string Path; + bool StrictChecking; +diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/libDriver/ToolChains/Linux.cpp +index ceb1a98..9d7a14a 100644 +--- a/clang/lib/Driver/ToolChains/Linux.cpp ++++ b/clang/libDriver/ToolChains/Linux.cpp +@@ -188,6 +188,10 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) + + Generic_GCC::PushPPaths(PPaths); + ++ // Comment out the distro-specific tweaks so that they don't bite when ++ // using Guix on a foreign distro. ++#if 0 ++ + Distro Distro(D.getVFS(), Triple); + + if (Distro.IsAlpineLinux() || Triple.isAndroid()) { +@@ -256,6 +260,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) + + if (IsAndroid || Distro.IsOpenSUSE()) + ExtraOpts.push_back("--enable-new-dtags"); ++#endif + + // The selection of paths to try here is designed to match the patterns which + // the GCC driver itself uses, as this is part of the GCC-compatible driver. +@@ -276,6 +281,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) + } + Generic_GCC::AddMultilibPaths(D, SysRoot, OSLibDir, MultiarchTriple, Paths); + ++#if 0 + addPathIfExists(D, concat(SysRoot, "/lib", MultiarchTriple), Paths); + addPathIfExists(D, concat(SysRoot, "/lib/..", OSLibDir), Paths); + +@@ -304,9 +310,11 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) + addPathIfExists(D, concat(SysRoot, "/", OSLibDir, ABIName), Paths); + addPathIfExists(D, concat(SysRoot, "/usr", OSLibDir, ABIName), Paths); + } ++#endif + + Generic_GCC::AddMultiarchPaths(D, SysRoot, OSLibDir, Paths); + ++#if 0 + // The deprecated -DLLVM_ENABLE_PROJECTS=libcxx configuration installs + // libc++.so in D.Dir+"/../lib/". Detect this path. + // TODO Remove once LLVM_ENABLE_PROJECTS=libcxx is unsupported. +@@ -316,6 +324,14 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) + + addPathIfExists(D, concat(SysRoot, "/lib"), Paths); + addPathIfExists(D, concat(SysRoot, "/usr/lib"), Paths); ++#endif ++ ++ // Add libc's lib/ directory to the search path, so that crt1.o, crti.o, ++ // and friends can be found. ++ addPathIfExists(D, "@GLIBC_LIBDIR@", Paths); ++ ++ // Add GCC's lib/ directory so libstdc++.so can be found. ++ addPathIfExists(D, GCCInstallation.getParentLibPath(), Paths); + } + + ToolChain::RuntimeLibType Linux::GetDefaultRuntimeLibType() const { diff --git a/gnu/packages/patches/giara-fix-login.patch b/gnu/packages/patches/giara-fix-login.patch deleted file mode 100644 index f15caaf559..0000000000 --- a/gnu/packages/patches/giara-fix-login.patch +++ /dev/null @@ -1,27 +0,0 @@ -From f4adc1f52d777cea3331b4acae0c3bdec4d0eb70 Mon Sep 17 00:00:00 2001 -From: Paper <paper@tilde.institute> -Date: Fri, 12 Mar 2021 21:10:34 +0000 -Subject: [PATCH] fix login by removing everything after # from URL - ---- - giara/__main__.py | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/giara/__main__.py b/giara/__main__.py -index 10b9ae2..d235332 100644 ---- a/giara/__main__.py -+++ b/giara/__main__.py -@@ -53,8 +53,9 @@ class GApplication(Gtk.Application): - def open(self, app, files, *args): - target = files[0].get_uri() - print(target) -+ code = target.split('=')[-1].split('#')[0] - get_authorized_client( -- reddit=self._unauth_reddit, code=target.split('=')[-1] -+ reddit=self._unauth_reddit, code=code - ) - self.continue_activate(self._unauth_reddit) - --- -GitLab - diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index f6b4faf692..871062f697 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -222,13 +222,13 @@ reusable library for parsing, manipulating, and generating URIs.") (define-public python-praw (package (name "python-praw") - (version "7.5.0") + (version "7.6.1") (source (origin (method url-fetch) (uri (pypi-uri "praw" version)) (sha256 - (base32 "1nqcwz8r8xp4rfpy2i11x2fjga8fmmf6zw94xjk1h1yxgn1gq6zr")))) + (base32 "17pvdlcasr08p5hb1x7shjh8yvn621lzm0bvnwd3b1r1qpzrbz07")))) (build-system python-build-system) (arguments `(#:phases @@ -953,14 +953,14 @@ other HTTP libraries.") (define-public httpie (package (name "httpie") - (version "3.1.0") + (version "3.2.1") (source (origin (method url-fetch) (uri (pypi-uri "httpie" version)) (sha256 (base32 - "1npyfvrq0l56bil8rnpj78mav378mxx4zcqzq1jjx4aap1020jif")))) + "1v736y2h7lcyrnxs9y5sf4xwzgll7pc2s6r3ny929mm8lcn07h69")))) (build-system python-build-system) (arguments ;; The tests attempt to access external web servers, so we cannot run them. @@ -973,6 +973,7 @@ other HTTP libraries.") python-pysocks python-charset-normalizer python-defusedxml + python-rich python-multidict)) (home-page "https://httpie.io") (synopsis "cURL-like tool for humans") diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 1758450c2f..e3d1ac05fa 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -439,7 +439,7 @@ easy logging and rotating to a console or a file.") (invoke "pytest" "--cov=logbook" "-r" "s" "tests"))))))) (native-inputs (list python-cython python-mock python-pytest python-pytest-cov - python-google-brotli)) + python-brotli)) (home-page "https://github.com/getlogbook/logbook") (synopsis "Logbook is a logging replacement for Python") (description @@ -11284,14 +11284,22 @@ Python.") (package (inherit python-mistune) (name "python-mistune-next") - (version "2.0.0rc1") + (version "2.0.4") (source (origin (method url-fetch) (uri (pypi-uri "mistune" version)) (sha256 (base32 - "1nd7iav1ixh9hlj4hxn6lmpava88d86ys8rqm30wgvr7gjlxnas5")))) - (native-inputs (list python-nose)))) + "024q9l6mgd37wa25w7dhskv1m3zsj5lf0w9cfyx7l9p2adhadq4y")))) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "-vv"))))))) + (native-inputs (list python-pytest)))) (define-public python-markdown (package diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index c4bb7d5292..bfa5e1bc68 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -607,6 +607,40 @@ safety and thread safety guarantees.") ;; * error: unknown codegen option: `symbol-mangling-version` rust-1.59 "1.60.0" "1drqr0a26x1rb2w3kj0i6abhgbs3jx5qqkrcwbwdlx7n3inq5ji0")) +(define rust-1.61 + (rust-bootstrapped-package + rust-1.60 "1.61.0" "1vfs05hkf9ilk19b2vahqn8l6k17pl9nc1ky9kgspaascx8l62xd")) + +(define rust-1.62 + (rust-bootstrapped-package + rust-1.61 "1.62.1" "0gqkg34ic77dcvsz69qbdng6g3zfhl6hnhx7ha1mjkyrzipvxb3j")) + +(define rust-1.63 + (rust-bootstrapped-package + rust-1.62 "1.63.0" "1l4rrbzhxv88pnfq94nbyb9m6lfnjwixma3mwjkmvvs2aqlq158z")) + +(define rust-1.64 + (let ((base-rust + (rust-bootstrapped-package + rust-1.63 "1.64.0" "018j720b2n12slp4xk64jc6shkncd46d621qdyzh2a8s3r49zkdk"))) + (package + (inherit base-rust) + (arguments + (substitute-keyword-arguments (package-arguments base-rust) + ((#:phases phases) + `(modify-phases ,phases + (replace 'patch-cargo-checksums + (lambda* _ + (substitute* '("Cargo.lock" + "src/bootstrap/Cargo.lock") + (("(checksum = )\".*\"" all name) + (string-append name "\"" ,%cargo-reference-hash "\""))) + (generate-all-checksums "vendor")))))))))) + +(define rust-1.65 + (rust-bootstrapped-package + rust-1.64 "1.65.0" "0f005kc0vl7qyy298f443i78ibz71hmmh820726bzskpyrkvna2q")) + ;;; Note: Only the latest versions of Rust are supported and tested. The ;;; intermediate rusts are built for bootstrapping purposes and should not ;;; be relied upon. This is to ease maintenance and reduce the time diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm index e70b9ef706..3fd98ecba8 100644 --- a/gnu/packages/shellutils.scm +++ b/gnu/packages/shellutils.scm @@ -369,7 +369,7 @@ between various shells or commands.") (define-public trash-cli (package (name "trash-cli") - (version "0.21.10.24") + (version "0.22.10.20") (source (origin (method git-fetch) @@ -379,37 +379,38 @@ between various shells or commands.") (file-name (git-file-name name version)) (sha256 (base32 - "01is32lk6prwhajvlmgn3xs4fcpmiqivizcqkj9k80jx6mqjifzs")))) + "0hkn0hmwrag56g447ddqapib0s399a6b4a9wlliif6zmirxlww9n")))) (build-system python-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'build 'patch-path-constants - (lambda* (#:key inputs #:allow-other-keys) - (let ((libc (assoc-ref inputs "libc")) - (coreutils (assoc-ref inputs "coreutils"))) - (substitute* "trashcli/list_mount_points.py" - (("\"/lib/libc.so.6\".*") - (string-append "\"" libc "/lib/libc.so.6\"\n")) - (("\"df\"") - (string-append "\"" coreutils "/bin/df\"")))))) - (add-before 'build 'fix-setup.py - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin"))) - (mkdir-p bin) - (substitute* "setup.py" - (("add_script\\('") - (string-append "add_script('" bin "/" )))))) - ;; Whenever setup.py is invoked, scripts in out/bin/ are - ;; replaced. Thus we cannot invoke setup.py for testing. - ;; Upstream also uses pytest. - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest"))))))) + (list #:phases + #~(modify-phases %standard-phases + (add-before 'build 'patch-path-constants + (lambda* (#:key inputs #:allow-other-keys) + (let ((libc (search-input-file inputs "lib/libc.so.6")) + (df #$(file-append coreutils "/bin/df"))) + (substitute* "trashcli/list_mount_points.py" + (("\"/lib/libc.so.6\".*") + (string-append "\"" libc "\"\n")) + (("\"df\"") + (string-append "\"" df "\"")))))) + (add-before 'build 'fix-setup.py + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append #$output "/bin"))) + (mkdir-p bin) + (substitute* "setup.py" + (("add_script\\('") + (string-append "add_script('" bin "/" )))))) + ;; Whenever setup.py is invoked, scripts in out/bin/ are + ;; replaced. Thus we cannot invoke setup.py for testing. + ;; Upstream also uses pytest. + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest"))))))) (native-inputs (list python-pytest + python-parameterized + python-flexmock python-mock python-six)) (inputs (list coreutils)) diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm index 57f8b61502..506245fd17 100644 --- a/gnu/packages/syndication.scm +++ b/gnu/packages/syndication.scm @@ -164,7 +164,7 @@ cards.") (define-public giara (package (name "giara") - (version "0.3") + (version "1.0.1") (source (origin (method git-fetch) @@ -172,15 +172,17 @@ cards.") (url "https://gitlab.gnome.org/World/giara") (commit version))) (file-name (git-file-name name version)) - ;; To fix authentication while adding accounts. - (patches (search-patches "giara-fix-login.patch")) (sha256 - (base32 "004qmkfrgd37axv0b6hfh6v7nx4pvy987k5yv4bmlmkj9sbqm6f9")))) + (base32 "00vmfghp9g8yzn2d1xjawz5a8bdwn1jl1k24mjaf4vlvdy4sg9l4")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t #:phases (modify-phases %standard-phases + (add-after 'unpack 'skip-icon-cache + (lambda _ + (substitute* "meson_post_install.py" + (("gtk-update-icon-cache") "true")))) (add-after 'glib-or-gtk-wrap 'wrap-paths (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -193,31 +195,29 @@ cards.") `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH") ,lib)) `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")))))))))) (native-inputs - `(("gettext" ,gettext-minimal) - ("glib:bin" ,glib "bin") - ("gobject-introspection" ,gobject-introspection) - ("gtk+:bin" ,gtk+ "bin") - ("pkg-config" ,pkg-config) - ("xmllint" ,libxml2))) + (list gettext-minimal + (list glib "bin") + gobject-introspection + (list gtk "bin") + pkg-config)) (inputs - `(("glib" ,glib) - ("gtk+" ,gtk+) - ("gtksourceview" ,gtksourceview) - ("libhandy" ,libhandy) - ("python" ,python) - ("python-beautifulsoup" ,python-beautifulsoup4) - ("python-dateutil" ,python-dateutil) - ("python-mistune" ,python-mistune) - ("python-pillow" ,python-pillow) - ("python-praw" ,python-praw) - ("python-pycairo" ,python-pycairo) - ("python-pygobject" ,python-pygobject) - ("python-requests" ,python-requests) - ("webkitgtk" ,webkitgtk-with-libsoup2))) + (list blueprint-compiler + glib + gtk + gtksourceview + libadwaita + python + python-beautifulsoup4 + python-dateutil + python-mistune-next + python-pillow + python-praw + python-pygobject + python-requests)) (propagated-inputs (list dconf)) (synopsis "Client for Reddit") - (description "Giara is a reddit app, built with Python, GTK and Handy.") + (description "Giara is a reddit app, built with Python, GTK4 and libadwaita.") (home-page "https://giara.gabmus.org/") (license license:gpl3+))) diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index c35b74eec2..957f00a92e 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -692,7 +692,7 @@ are detected, the user is notified."))) (define-public neovim (package (name "neovim") - (version "0.8.0") + (version "0.8.1") (source (origin (method git-fetch) (uri (git-reference @@ -701,7 +701,7 @@ are detected, the user is notified."))) (file-name (git-file-name name version)) (sha256 (base32 - "0hkd49wkxfi6k1xa92hdd4b9z356r32hbpr78z1cigcln1wr0z7j")))) + "08qyni2qg63ghxl50am97pajdhkp05s1cglis3mlvkxx3pvzkrli")))) (build-system cmake-build-system) (arguments (list #:modules diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scm index 636c49ccba..dacfc52ba9 100644 --- a/gnu/services/configuration.scm +++ b/gnu/services/configuration.scm @@ -242,17 +242,17 @@ does not have a default value" field kind))) stem #,(id #'stem #'make- #'stem) #,(id #'stem #'stem #'?) - (%location #,(id #'stem #'stem #'-location) - (default (and=> (current-source-location) - source-properties->location)) - (innate)) #,@(map (lambda (name getter def) #`(#,name #,getter (default #,def) (sanitize #,(id #'stem #'validate- #'stem #'- name)))) #'(field ...) #'(field-getter ...) - #'(field-default ...))) + #'(field-default ...)) + (%location #,(id #'stem #'stem #'-location) + (default (and=> (current-source-location) + source-properties->location)) + (innate))) (define #,(id #'stem #'stem #'-fields) (list (configuration-field diff --git a/gnu/services/mcron.scm b/gnu/services/mcron.scm index 23760ebda4..52332d6123 100644 --- a/gnu/services/mcron.scm +++ b/gnu/services/mcron.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,6 +19,7 @@ (define-module (gnu services mcron) #:use-module (gnu services) + #:use-module (gnu services configuration) #:use-module (gnu services shepherd) #:use-module (gnu packages guile-xyz) #:use-module (guix deprecation) @@ -30,6 +32,8 @@ mcron-configuration? mcron-configuration-mcron mcron-configuration-jobs + mcron-configuration-log? + mcron-configuration-log-format mcron-service-type)) @@ -48,13 +52,23 @@ ;;; ;;; Code: -(define-record-type* <mcron-configuration> mcron-configuration - make-mcron-configuration - mcron-configuration? - (mcron mcron-configuration-mcron ;file-like - (default mcron)) - (jobs mcron-configuration-jobs ;list of <mcron-job> - (default '()))) +(define list-of-gexps? + (list-of gexp?)) + +(define-configuration/no-serialization mcron-configuration + (mcron (file-like mcron) "The mcron package to use.") + (jobs + (list-of-gexps '()) + "This is a list of gexps (@pxref{G-Expressions}), where each gexp +corresponds to an mcron job specification (@pxref{Syntax, mcron job +specifications,, mcron, GNU@tie{}mcron}).") + (log? (boolean #t) "Log messages to standard output.") + (log-format + (string "~1@*~a ~a: ~a~%") + "@code{(ice-9 format)} format string for log messages. The default value +produces messages like \"@samp{@var{pid} @var{name}: +@var{message}\"} (@pxref{Invoking mcron, Invoking,, mcron, GNU@tie{}mcron}). +Each message is also prefixed by a timestamp by GNU Shepherd.")) (define (job-files mcron jobs) "Return a list of file-like object for JOBS, a list of gexps." @@ -124,21 +138,25 @@ files." (define mcron-shepherd-services (match-lambda - (($ <mcron-configuration> mcron ()) ;nothing to do! + (($ <mcron-configuration> mcron ()) ;nothing to do! '()) - (($ <mcron-configuration> mcron jobs) + (($ <mcron-configuration> mcron jobs log? log-format) (let ((files (job-files mcron jobs))) (list (shepherd-service (provision '(mcron)) (requirement '(user-processes)) (modules `((srfi srfi-1) (srfi srfi-26) - (ice-9 popen) ;for the 'schedule' action + (ice-9 popen) ;for the 'schedule' action (ice-9 rdelim) (ice-9 match) ,@%default-modules)) (start #~(make-forkexec-constructor - (list (string-append #$mcron "/bin/mcron") #$@files) + (list (string-append #$mcron "/bin/mcron") + #$@(if log? + #~("--log" "--log-format" #$log-format) + #~()) + #$@files) ;; Disable auto-compilation of the job files and set a ;; sane value for 'PATH'. @@ -172,4 +190,11 @@ files." jobs))))) (default-value (mcron-configuration)))) ;empty job list + +;;; +;;; Generate documentation. +;;; +(define (generate-doc) + (configuration->documentation 'mcron-configuration)) + ;;; mcron.scm ends here diff --git a/gnu/services/monitoring.scm b/gnu/services/monitoring.scm index 9c8704092c..d6dc2c1e03 100644 --- a/gnu/services/monitoring.scm +++ b/gnu/services/monitoring.scm @@ -576,7 +576,7 @@ fastcgi_param PHP_VALUE \"post_max_size = 16M (define (zabbix-front-end-nginx-extension config) (match config - (($ <zabbix-front-end-configuration> _ server nginx) + (($ <zabbix-front-end-configuration> server nginx) (if (null? nginx) (list (nginx-server-configuration @@ -622,8 +622,8 @@ create it manually.") (define (zabbix-front-end-config config) (match-record config <zabbix-front-end-configuration> - (%location db-host db-port db-name db-user db-password db-secret-file - zabbix-host zabbix-port) + (db-host db-port db-name db-user db-password db-secret-file + zabbix-host zabbix-port %location) (mixed-text-file "zabbix.conf.php" "\ <?php diff --git a/gnu/services/version-control.scm b/gnu/services/version-control.scm index b6b78e504e..86d40bdbe3 100644 --- a/gnu/services/version-control.scm +++ b/gnu/services/version-control.scm @@ -313,7 +313,7 @@ access to exported repositories under @file{/srv/git}." (($ <gitolite-configuration> package user group home-directory rc-file admin-pubkey) ;; User group and account to run Gitolite. - (list (user-group (name user) (system? #t)) + (list (user-group (name group) (system? #t)) (user-account (name user) (group group) diff --git a/gnu/services/web.scm b/gnu/services/web.scm index 2023119037..f337c90077 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -987,7 +987,7 @@ and the back-end of a Web service."))) (define php-fpm-accounts (match-lambda - (($ <php-fpm-configuration> php socket user group socket-user socket-group _ _ _ _ _ _) + (($ <php-fpm-configuration> php socket user group socket-user socket-group) `(,@(if (equal? group "php-fpm") '() (list (user-group (name "php-fpm") (system? #t)))) @@ -2143,24 +2143,23 @@ root=/srv/gemini (stop #~(make-kill-destructor))))))) (define agate-accounts - (match-lambda - (($ <agate-configuration> _ _ _ _ _ - _ _ _ _ - _ user group _) - `(,@(if (equal? group "agate") - '() - (list (user-group (name "agate") (system? #t)))) - ,(user-group - (name group) - (system? #t)) - ,(user-account - (name user) - (group group) - (supplementary-groups '("agate")) - (system? #t) - (comment "agate server user") - (home-directory "/var/empty") - (shell (file-append shadow "/sbin/nologin"))))))) + (lambda (config) + (let ((group (agate-configuration-group config)) + (user (agate-configuration-user config))) + `(,@(if (equal? group "agate") + '() + (list (user-group (name "agate") (system? #t)))) + ,(user-group + (name group) + (system? #t)) + ,(user-account + (name user) + (group group) + (supplementary-groups '("agate")) + (system? #t) + (comment "agate server user") + (home-directory "/var/empty") + (shell (file-append shadow "/sbin/nologin"))))))) (define agate-service-type (service-type diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 64cd6a911a..87518b4bfe 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -695,7 +695,13 @@ in a loop. See <http://bugs.gnu.org/26931>.") ;; Halt the system. (marionette-eval '(system* "/run/current-system/profile/sbin/halt") - marionette)) + marionette) + + (display "waiting for marionette to complete...") + (force-output) + (false-if-exception (waitpid (marionette-pid marionette))) + (display " done\n") + (force-output)) ;; Remove the sockets used by the marionette above to avoid ;; EADDRINUSE. |