diff --git a/.mailmap b/.mailmap index ee6dd3f4f2..39b01335ee 100644 --- a/.mailmap +++ b/.mailmap @@ -90,6 +90,7 @@ Taylan Ulrich Bayırlı/Kammer Theodoros Foradis Thomas Danckaert Tobias Geerinckx-Rice +Tomas Volf <~@wolfsden.cz> Tomáš Čech Vincent Legoll Zheng Junjie <873216071@qq.com> Z572 <873216071@qq.com> diff --git a/build-aux/test-driver.scm b/build-aux/test-driver.scm index 1cdd4ff8f7..901f6ab9ec 100755 --- a/build-aux/test-driver.scm +++ b/build-aux/test-driver.scm @@ -3,7 +3,7 @@ !# ;;;; test-driver.scm - Guile test driver for Automake testsuite harness -(define script-version "2021-02-02.05") ;UTC +(define script-version "2023-12-08.14") ;UTC ;;; Copyright © 2015, 2016 Mathieu Lirzin ;;; Copyright © 2021 Maxim Cournoyer @@ -274,6 +274,7 @@ (define (main . args) (exit 0))) ;;; Local Variables: +;;; mode: scheme ;;; eval: (add-hook 'write-file-functions 'time-stamp) ;;; time-stamp-start: "(define script-version \"" ;;; time-stamp-format: "%:y-%02m-%02d.%02H" diff --git a/doc/guix.texi b/doc/guix.texi index 924dbf23ba..fc18deb85b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -1799,7 +1799,7 @@ Setup}), or simply fail. When the build or substitution process remains silent for more than @var{seconds}, terminate it and report a build failure. -The default value is @code{0}, which disables the timeout. +The default value is @code{3600} (one hour). The value specified here can be overridden by clients (@pxref{Common Build Options, @option{--max-silent-time}}). @@ -1808,7 +1808,7 @@ Build Options, @option{--max-silent-time}}). Likewise, when the build or substitution process lasts for more than @var{seconds}, terminate it and report a build failure. -The default value is @code{0}, which disables the timeout. +The default value is 24 hours. The value specified here can be overridden by clients (@pxref{Common Build Options, @option{--timeout}}). @@ -19455,8 +19455,8 @@ few seconds when enough entropy is available and is only done once; you might want to turn it off for instance in a virtual machine that does not need it and where the extra boot time is a problem. -@item @code{max-silent-time} (default: @code{0}) -@itemx @code{timeout} (default: @code{0}) +@item @code{max-silent-time} (default: @code{3600}) +@itemx @code{timeout} (default: @code{(* 3600 24)}) The number of seconds of silence and the number of seconds of activity, respectively, after which a build process times out. A value of zero disables the timeout. @@ -45243,25 +45243,25 @@ PulseAudio clients to use PipeWire transparently. @node Mail Home Services @subsection Mail Home Services - + The @code{(gnu home services mail)} module provides services that help you set up the tools to work with emails in your home environment. - + @cindex msmtp @uref{https://marlam.de/msmtp, MSMTP} is a @acronym{SMTP, Simple Mail Transfer Protocol} client. It sends mail to a predefined SMTP server that takes care of proper delivery. - + The service reference is given below. - + @defvar home-msmtp-service-type This is the service type for @command{msmtp}. Its value must be a @code{home-msmtp-configuration}, as shown below. It provides the @file{~/.config/msmtp/config} file. - + As an example, here is how you would configure @code{msmtp} for a single account: - + @lisp (service home-msmtp-service-type (home-msmtp-configuration @@ -45279,101 +45279,101 @@ account: @end defvar @c %start of fragment - + @deftp {Data Type} home-msmtp-configuration Available @code{home-msmtp-configuration} fields are: - + @table @asis @item @code{defaults} (type: msmtp-configuration) The configuration that will be set as default for all accounts. - + @item @code{accounts} (default: @code{'()}) (type: list-of-msmtp-accounts) A list of @code{msmtp-account} records which contain information about all your accounts. - + @item @code{default-account} (type: maybe-string) Set the default account. - + @item @code{extra-content} (default: @code{""}) (type: string) Extra content appended as-is to the configuration file. Run @command{man msmtp} for more information about the configuration file format. - + @end table - + @end deftp - -@c %end of fragment - -@c %start of fragment - -@deftp {Data Type} msmtp-account -Available @code{msmtp-account} fields are: - -@table @asis -@item @code{name} (type: string) -The unique name of the account. - -@item @code{configuration} (type: msmtp-configuration) -The configuration for this given account. - -@end table - -@end deftp - + @c %end of fragment @c %start of fragment - + +@deftp {Data Type} msmtp-account +Available @code{msmtp-account} fields are: + +@table @asis +@item @code{name} (type: string) +The unique name of the account. + +@item @code{configuration} (type: msmtp-configuration) +The configuration for this given account. + +@end table + +@end deftp + +@c %end of fragment + +@c %start of fragment + @deftp {Data Type} msmtp-configuration Available @code{msmtp-configuration} fields are: - + @table @asis @item @code{auth?} (type: maybe-boolean) Enable or disable authentication. - + @item @code{tls?} (type: maybe-boolean) Enable or disable TLS (also known as SSL) for secured connections. - + @item @code{tls-starttls?} (type: maybe-boolean) Choose the TLS variant: start TLS from within the session (‘on’, default), or tunnel the session through TLS (‘off’). - + @item @code{tls-trust-file} (type: maybe-string) Activate server certificate verification using a list of trusted Certification Authorities (CAs). - + @item @code{log-file} (type: maybe-string) Enable logging to the specified file. An empty argument disables logging. The file name ‘-’ directs the log information to standard output. - + @item @code{host} (type: maybe-string) The SMTP server to send the mail to. - + @item @code{port} (type: maybe-integer) The port that the SMTP server listens on. The default is 25 ("smtp"), unless TLS without STARTTLS is used, in which case it is 465 ("smtps"). - + @item @code{user} (type: maybe-string) Set the user name for authentication. - + @item @code{from} (type: maybe-string) Set the envelope-from address. - + @item @code{password-eval} (type: maybe-string) Set the password for authentication to the output (stdout) of the command cmd. - + @item @code{extra-content} (default: @code{""}) (type: string) Extra content appended as-is to the configuration block. Run @command{man msmtp} for more information about the configuration file format. - + @end table - + @end deftp - + @c %end of fragment @node Messaging Home Services diff --git a/etc/teams.scm b/etc/teams.scm index fba9010130..98f51c13e1 100755 --- a/etc/teams.scm +++ b/etc/teams.scm @@ -310,7 +310,8 @@ (define-team go (define-team bootstrap (team 'bootstrap #:name "Bootstrap" - #:scope (list "gnu/packages/mes.scm"))) + #:scope (list "gnu/packages/commencement.scm" + "gnu/packages/mes.scm"))) (define-team embedded (team 'embedded @@ -424,6 +425,21 @@ (define-team core (make-regexp* "^guix/scripts/") (make-regexp* "^guix/store/")))) +(define-team core-packages + (team 'core-packages + #:name "Core packages" + #:description "Core packages: the GNU tool chain, Guile, Coreutils, etc." + #:scope (list "gnu/packages/base.scm" + "gnu/packages/bootstrap.scm" + "gnu/packages/commencement.scm" + "gnu/packages/cross-base.scm" + "gnu/packages/gcc.scm" + "gnu/packages/guile.scm" + "gnu/packages/make-bootstrap.scm" + "guix/build/gnu-build-system.scm" + "guix/build/utils.scm" + "guix/build-system/gnu.scm"))) + (define-team games (team 'games #:name "Games and Toys" @@ -556,7 +572,7 @@ (define-member (person "Jonathan Brielmaier" (define-member (person "Ludovic Courtès" "ludo@gnu.org") - core home bootstrap installer mentors) + core home bootstrap core-packages installer mentors) (define-member (person "Andreas Enge" "andreas@enge.fr") diff --git a/etc/teams/rust/rust-manifest.scm b/etc/teams/rust/rust-manifest.scm new file mode 100644 index 0000000000..f34b7489ec --- /dev/null +++ b/etc/teams/rust/rust-manifest.scm @@ -0,0 +1,34 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2024 Efraim Flashner +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +;;; This file returns a manifest of packages built using the cargo-build-system. +;;; It is used to assist continuous integration of the rust-team branch. + +(use-modules (guix packages) + (guix profiles) + (guix build-system)) + +(manifest + (map package->manifest-entry + (fold-packages + (lambda (package lst) + (if (eq? (build-system-name (package-build-system package)) + (quote cargo)) + (cons package lst) + lst)) + (list)))) diff --git a/gnu/local.mk b/gnu/local.mk index ee25e1535e..46da9a8adc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1092,6 +1092,7 @@ dist_patch_DATA = \ %D%/packages/patches/doxygen-hurd.patch \ %D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \ %D%/packages/patches/dstat-skip-devices-without-io.patch \ + %D%/packages/patches/dtc-meson-cell-overflow.patch \ %D%/packages/patches/dune-common-skip-failing-tests.patch \ %D%/packages/patches/dune-grid-add-missing-include-cassert.patch \ %D%/packages/patches/dune-istl-fix-solver-playground.patch \ @@ -1111,7 +1112,6 @@ dist_patch_DATA = \ %D%/packages/patches/emacs-deferred-fix-number-of-arguments.patch \ %D%/packages/patches/emacs-elpy-dup-test-name.patch \ %D%/packages/patches/emacs-exec-path.patch \ - %D%/packages/patches/emacs-ess-fix-obsolete-function-alias.patch \ %D%/packages/patches/emacs-git-email-missing-parens.patch \ %D%/packages/patches/emacs-fix-scheme-indent-function.patch \ %D%/packages/patches/emacs-json-reformat-fix-tests.patch \ @@ -1783,6 +1783,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-sphinx-prompt-docutils-0.19.patch \ %D%/packages/patches/python-telingo-fix-comparison.patch \ %D%/packages/patches/python-typeguard-python3.10.patch \ + %D%/packages/patches/python-uqbar-python3.10.patch \ %D%/packages/patches/python-wxwidgets-type-errors.patch \ %D%/packages/patches/qtdeclarative-5-disable-qmlcache.patch \ %D%/packages/patches/qtdeclarative-disable-qmlcache.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 5442714665..3f1de1e6b6 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -373,14 +373,14 @@ (define-public shepherd-0.9 (define-public shepherd-0.10 (package (inherit shepherd-0.9) - (version "0.10.2") + (version "0.10.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/shepherd/shepherd-" version ".tar.gz")) (sha256 (base32 - "0v9ld9gbqdp5ya380fbkdsxa0iqr90gi6yk004ccz3n792nq6wlj")))) + "1vxghlxnxajx2iciqmjia49c5hkir8li0gv29kl55frhn2zgxilf")))) (native-inputs (modify-inputs (package-native-inputs shepherd-0.9) (replace "guile-fibers" ;; Work around diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 1ea5e47321..a7af5c42ce 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015-2023 Ricardo Wurmus +;;; Copyright © 2015-2024 Ricardo Wurmus ;;; Copyright © 2016, 2017, 2018, 2020, 2021 Roel Janssen ;;; Copyright © 2016 Pjotr Prins ;;; Copyright © 2016 Ben Woodcroft @@ -7324,13 +7324,13 @@ (define-public r-edaseq (define-public r-edger (package (name "r-edger") - (version "4.0.3") + (version "4.0.5") (source (origin (method url-fetch) (uri (bioconductor-uri "edgeR" version)) (sha256 (base32 - "0sz46pwa1bsqrff2igswfhhj1fcwzn34zrlawy4fnb58z48kccb0")))) + "16cghh83v14jdq5n6xkm3jxj87n6l6zrxjgqdwb2ffgc26vkpb7w")))) (properties `((upstream-name . "edgeR"))) (build-system r-build-system) (propagated-inputs @@ -10510,6 +10510,38 @@ (define-public r-screpertoire powerTCR R packages.") (license license:gpl2))) +(define-public r-scrnaseq + (package + (name "r-scrnaseq") + (version "2.16.0") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "scRNAseq" version + 'experiment)) + (sha256 + (base32 "0dbh3sqq7lkkdf7vls5qg7fbn6y74c7hsigb4d69pvk934ll88aw")))) + (properties `((upstream-name . "scRNAseq"))) + (build-system r-build-system) + (propagated-inputs (list r-annotationdbi + r-annotationhub + r-biocgenerics + r-ensembldb + r-experimenthub + r-genomicfeatures + r-genomicranges + r-s4vectors + r-singlecellexperiment + r-summarizedexperiment)) + (native-inputs (list r-knitr)) + (home-page "https://bioconductor.org/packages/scRNAseq") + (synopsis "Collection of public single-cell RNA-seq datasets") + (description + "This package contains gene-level counts for a collection of public +@code{scRNA-seq} datasets, provided as @code{SingleCellExperiment} objects +with cell- and gene-level metadata.") + (license license:cc0))) + (define-public r-scry (package (name "r-scry") diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 41cac296fe..7dbebcf3da 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -130,6 +130,7 @@ (define-module (gnu packages bioinformatics) #:use-module (gnu packages pdf) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) + #:use-module (gnu packages perl-web) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) #:use-module (gnu packages protobuf) @@ -574,6 +575,30 @@ (define-public bitmapperbs whole-genome bisulfite sequencing (WGBS) reads from directional protocol.") (license license:asl2.0))) +(define-public bustools + (package + (name "bustools") + (version "0.43.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/BUStools/bustools") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "068kjlc4d528269nl5mc3j8h2c95r1v545d3fi1iw1ckg8rba0hg")))) + (build-system cmake-build-system) + (arguments (list #:tests? #f)) ;no test target + (inputs (list zlib)) + (home-page "https://bustools.github.io") + (synopsis "Tools for working with BUS files") + (description "bustools is a program for manipulating BUS files for single +cell RNA-Seq datasets. It can be used to error correct barcodes, collapse +UMIs, produce gene count or transcript compatibility count matrices, and is useful +for many other tasks.") + (license license:bsd-2))) + (define-public cellsnp-lite ;; Last release is from November 2021 and does not contain fixes. (let ((commit "0885d746b0b1ea65c8ef92f8943ca7669ca9734a") @@ -2365,6 +2390,40 @@ (define-public python-scdamandtools counts.") (license license:expat))) +(define-public python-snaptools + (package + (name "python-snaptools") + (version "1.4.8") + (source + (origin + (method url-fetch) + (uri (pypi-uri "snaptools" version)) + (sha256 + (base32 + "1s5373g5jjbshh3q39zy7dlxr7nda6ksxq9d1gw46h82c4fsmfbn")))) + (build-system pyproject-build-system) + (propagated-inputs + (list python-future + python-h5py + python-louvain + python-numpy + python-pybedtools + python-pysam)) + (home-page "https://github.com/r3fang/SnapTools") + (synopsis "Tools for processing snap files" ) + (description + "@code{SnapTools} can operate on snap files the following types of +operations: + +@itemize +@item index the reference genome before alignment; +@item align reads to the corresponding reference genome; +@item pre-process by convert pair-end reads into fragments, checking the + mapping quality score, alingment and filtration; +@item create the cell-by-bin matrix. +@end itemize") + (license license:asl2.0))) + (define-public python-bioframe (package (name "python-bioframe") @@ -4999,6 +5058,126 @@ (define-public trf bases are detected.") (license license:agpl3+))) +(define-public trinityrnaseq + (package + (name "trinityrnaseq") + (version "2.13.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/trinityrnaseq/trinityrnaseq.git") + (commit (string-append "Trinity-v" version)) + (recursive? #true))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1qszrxqbx4q5pavpgm4rkrh1z1v1mf7qx83vv3fnlqdmncnsf1gv")))) + (build-system gnu-build-system) + (arguments + (list + #:test-target "test" + #:modules + '((guix build gnu-build-system) + (guix build utils) + (ice-9 match) + (srfi srfi-1)) + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target))) + #:phases + #~(modify-phases %standard-phases + (replace 'configure + (lambda _ + (setenv "SHELL" (which "sh")) + (setenv "CONFIG_SHELL" (which "sh")) + ;; Do not require version.h, which triggers a local build of a + ;; vendored htslib. + (substitute* "trinity-plugins/bamsifter/Makefile" + (("sift_bam_max_cov.cpp htslib/version.h") + "sift_bam_max_cov.cpp")))) + (add-after 'build 'build-plugins + (lambda _ + ;; Run this in the subdirectory to avoid running the + ;; tests right here. + (with-directory-excursion "trinity-plugins" + (invoke "make" "plugins")))) + ;; The install script uses rsync, provides no overrides for the + ;; default location at /usr/local/bin, and patching it would change + ;; all lines that do something. + (replace 'install + (lambda* (#:key inputs #:allow-other-keys) + (let ((share (string-append #$output "/share/trinity/")) + (bin (string-append #$output "/bin/"))) + (mkdir-p bin) + (copy-recursively "." share) + (delete-file (string-append share "/Chrysalis/build/CMakeFiles/CMakeOutput.log")) + (delete-file (string-append share "/Inchworm/build/CMakeFiles/CMakeOutput.log")) + + (wrap-program (string-append share "Trinity") + `("R_LIBS_SITE" ":" = (,(getenv "R_LIBS_SITE"))) + `("PERL5LIB" ":" = (,(getenv "PERL5LIB"))) + `("PYTHONPATH" ":" = (,(getenv "GUIX_PYTHONPATH"))) + `("PATH" ":" = + ,(cons (string-append share "/trinity-plugins/BIN") + (filter-map (match-lambda + ((name . dir) + (string-append dir "/bin"))) + inputs)))) + (symlink (string-append share "Trinity") + (string-append bin "Trinity")))))))) + (inputs + (list blast+ + bowtie + fastqc + hisat + htslib + icedtea-8 + jellyfish + kallisto + multiqc + perl + perl-uri-escape + python-numpy + python-wrapper + r-ape + r-argparse + r-biobase + r-ctc + r-deseq2 + r-edger + r-fastcluster + r-glimma + r-goplot + r-goseq + r-gplots + r-minimal + r-qvalue + r-rots + r-sm + r-tidyverse + rsem + salmon + samtools + sra-tools + star + zlib)) + (propagated-inputs + (list coreutils + gzip + which)) + (native-inputs (list cmake)) + (home-page "https://github.com/trinityrnaseq/trinityrnaseq/wiki") + (synopsis "Trinity RNA-Seq de novo transcriptome assembly") + (description "Trinity assembles transcript sequences from Illumina RNA-Seq +data. Trinity represents a novel method for the efficient and robust de novo +reconstruction of transcriptomes from RNA-seq data. Trinity combines three +independent software modules: Inchworm, Chrysalis, and Butterfly, applied +sequentially to process large volumes of RNA-seq reads. Trinity partitions +the sequence data into many individual de Bruijn graphs, each representing the +transcriptional complexity at a given gene or locus, and then processes each +graph independently to extract full-length splicing isoforms and to tease +apart transcripts derived from paralogous genes.") + (license license:bsd-3))) + (define-public repeat-masker (package (name "repeat-masker") @@ -16790,7 +16969,16 @@ (define-public python-hicexplorer (file-name (git-file-name name version)) (sha256 (base32 - "1yavgxry38g326z10bclvdf8glmma05fxj5m73h15m1r2l9xmw3v")))) + "1yavgxry38g326z10bclvdf8glmma05fxj5m73h15m1r2l9xmw3v")) + (modules '((guix build utils))) + ;; setup.py is malformed. The requirements are defined using a catchall + ;; pattern for the patch version number. This has been fixed in version + ;; 3.7.3, but we cannot upgrade to this version yet, since some Guix + ;; packages are not new enough. (See upstream commit + ;; 4845c715ec7b105e938d0c2426e27d0181690bfe for the fix). + (snippet '(substitute* "setup.py" + (("\\.\\*") + ""))))) (build-system pyproject-build-system) (arguments (list @@ -20512,24 +20700,28 @@ (define-public scvelo (uri (pypi-uri "scvelo" version)) (sha256 (base32 "0h5ha1459ljs0qgpnlfsw592i8dxqn6p9bl08l1ikpwk36baxb7z")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - ;; Numba needs a writable dir to cache functions. - (add-before 'check 'set-numba-cache-dir - (lambda _ - (setenv "NUMBA_CACHE_DIR" "/tmp"))) - (replace 'check - (lambda* (#:key outputs tests? #:allow-other-keys) - (when tests? - ;; The discovered test file names must match the names of the - ;; compiled files, so we cannot run the tests from - ;; /tmp/guix-build-*. - (with-directory-excursion - (string-append (assoc-ref outputs "out") - "/lib/python3.10/site-packages/scvelo/core/tests/") - (invoke "pytest" "-v")))))))) + (list + #:test-flags + ;; XXX: these two tests fail for unknown reasons + '(list "-k" "not test_perfect_fit and not test_perfect_fit_2d") + #:phases + #~(modify-phases %standard-phases + ;; Numba needs a writable dir to cache functions. + (add-before 'check 'set-numba-cache-dir + (lambda _ + (setenv "NUMBA_CACHE_DIR" "/tmp"))) + (replace 'check + (lambda* (#:key tests? test-flags #:allow-other-keys) + (when tests? + ;; The discovered test file names must match the names of the + ;; compiled files, so we cannot run the tests from + ;; /tmp/guix-build-*. + (with-directory-excursion + (string-append #$output + "/lib/python3.10/site-packages/scvelo/core/tests/") + (apply invoke "pytest" "-v" test-flags)))))))) (propagated-inputs (list python-anndata python-hnswlib diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index bd8b621e35..c73a0e665d 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -55,9 +55,12 @@ (define-module (gnu packages bootloaders) #:use-module (gnu packages man) #:use-module (gnu packages mtools) #:use-module (gnu packages ncurses) + #:use-module (gnu packages ninja) + #:use-module (gnu packages package-management) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-crypto) #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) @@ -71,6 +74,7 @@ (define-module (gnu packages bootloaders) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (guix build-system gnu) + #:use-module (guix build-system meson) #:use-module (guix build-system pyproject) #:use-module (guix build-system trivial) #:use-module (guix download) @@ -631,7 +635,7 @@ (define-public syslinux (define-public dtc (package (name "dtc") - (version "1.6.1") + (version "1.7.0") (source (origin (method url-fetch) (uri (string-append @@ -639,42 +643,56 @@ (define-public dtc "dtc-" version ".tar.gz")) (sha256 (base32 - "0xm38h31jb29xfh2sfyk48d8wdfq4b8lmb412zx9vjr35izjb9iq")))) - (build-system gnu-build-system) + "0cij9399snpn672pdbda8qbxljdkfg068kvv3g5811rz6yslx124")) + (patches + (search-patches "dtc-meson-cell-overflow.patch")))) + (build-system meson-build-system) (arguments (list - #:modules `(,@%gnu-build-system-modules (srfi srfi-26)) - #:make-flags - #~(list (string-append "CC=" #$(cc-for-target)) - ;; /bin/fdt{get,overlay,put} need help finding libfdt.so.1. - (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib") - (string-append "PREFIX=" #$output) - (string-append "SETUP_PREFIX=" #$output) - "INSTALL=install") + #:modules '((guix build meson-build-system) + (guix build utils) + (srfi srfi-26)) #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'patch-pkg-config + (add-after 'unpack 'preparations (lambda _ - (substitute* '("Makefile" - "tests/run_tests.sh") - (("pkg-config") - #$(pkg-config-for-target))))) - (delete 'configure) ;no configure script - (add-before 'build 'install-doc + ;; The version string is usually derived via setuptools-scm, but + ;; without the git metadata available this fails. + (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version) + + ;; Needed by setup.py. + (setenv "DESTDIR" "/") + + ;; Native gcc needed by run_test.sh. + (setenv "CC" "gcc") + + ;; /bin/fdt{get,overlay,put} need help finding libfdt.so.1. + (setenv "LDFLAGS" + (string-append "-Wl,-rpath=" #$output "/lib")))) + (add-after 'unpack 'install-doc (lambda _ (with-directory-excursion "Documentation" (for-each (cut install-file <> (string-append #$output "/share/doc/dtc/")) '("dts-format.txt" "dt-object-internal.txt" - "manual.txt")))))))) + "manual.txt"))))) + (add-after 'unpack 'patch-pkg-config + (lambda _ + (substitute* '("tests/run_tests.sh") + (("pkg-config") + #$(pkg-config-for-target)))))))) (native-inputs (append (list bison flex libyaml + ninja pkg-config - swig) + python + python-setuptools-scm + swig + which) (if (member (%current-system) (package-supported-systems valgrind)) (list valgrind) '()))) diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index 602d8f26c5..a36bb289cd 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès ;;; Copyright © 2014, 2015, 2018, 2019 Mark H Weaver -;;; Copyright © 2017, 2020 Efraim Flashner +;;; Copyright © 2017, 2020, 2024 Efraim Flashner ;;; Copyright © 2018, 2020, 2022 Jan (janneke) Nieuwenhuizen ;;; Copyright © 2019 Carl Dong ;;; Copyright © 2019 Léo Le Bouter @@ -323,6 +323,9 @@ (define* (glibc-dynamic-linker ((string=? system "powerpc64-linux") "/lib/ld64.so.1") ((string=? system "alpha-linux") "/lib/ld-linux.so.2") + ;; TODO: Differentiate between x86_64-linux-gnu and x86_64-linux-gnux32. + ((string=? system "x86_64-linux-gnux32") "/lib/ld-linux-x32.so.2") + ;; XXX: This one is used bare-bones, without a libc, so add a case ;; here just so we can keep going. ((string=? system "arm-eabi") "no-ld.so") diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm index 7120c2ad75..2df4e6311b 100644 --- a/gnu/packages/display-managers.scm +++ b/gnu/packages/display-managers.scm @@ -69,25 +69,16 @@ (define-module (gnu packages display-managers) (define-public sddm (package (name "sddm") - (version "0.19.0") + (version "0.20.0") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/sddm/sddm" - "/releases/download/v" version "/" - "sddm-" version ".tar.xz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/sddm/sddm") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0hcdysw8ibr66vk8i7v56l0v5ijvhlq67v4460mc2xf2910g2m72")) - (snippet - #~(begin - ;; https://github.com/sddm/sddm/issues/1536 - ;; https://github.com/sddm/sddm/commit/e93bf95c54ad8c2a1604f8d7be05339164b19308 - ;; Commit comes shortly after the 0.19.0 release. - (use-modules ((guix build utils))) - (substitute* "src/daemon/XorgDisplayServer.cpp" - (("m_cookie\\[i\\] = digits\\[dis\\(gen\\)\\]") - "m_cookie[i] = QLatin1Char(digits[dis(gen)])")))))) + "1450zv03d3mbid27986p4mdshw9qf3ar8crl4idybf7khxgan22y")))) (build-system qt-build-system) (native-inputs (list extra-cmake-modules pkg-config qttools-5)) @@ -109,36 +100,39 @@ (define-public sddm shadow wayland)) (arguments - `(#:configure-flags - ,#~(list - ;; This option currently does nothing, but will presumably be enabled - ;; if/when is merged. - "-DENABLE_WAYLAND=ON" - "-DENABLE_PAM=ON" - ;; Both flags are required for elogind support. - "-DNO_SYSTEMD=ON" "-DUSE_ELOGIND=ON" - "-DCONFIG_FILE=/etc/sddm.conf" - ;; Set path to /etc/login.defs. - ;; An alternative would be to use -DUID_MIN and -DUID_MAX. - (string-append "-DLOGIN_DEFS_PATH=" - #$(this-package-input "shadow") - "/etc/login.defs") - (string-append "-DQT_IMPORTS_DIR=" - #$output "/lib/qt5/qml") - (string-append "-DCMAKE_INSTALL_SYSCONFDIR=" - #$output "/etc")) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'embed-loginctl-reference - (lambda _ - (substitute* "CMakeLists.txt" - (("/usr/bin/loginctl") (which "loginctl"))) - #t))))) + (list + #:configure-flags + #~(list + "-DENABLE_WAYLAND=ON" + "-DENABLE_PAM=ON" + ;; Both flags are required for elogind support. + "-DNO_SYSTEMD=ON" + "-DUSE_ELOGIND=ON" + "-DCONFIG_FILE=/etc/sddm.conf" + ;; Set path to /etc/login.defs. + ;; An alternative would be to use -DUID_MIN and -DUID_MAX. + (string-append "-DLOGIN_DEFS_PATH=" + #$(this-package-input "shadow") + "/etc/login.defs") + (string-append "-DCMAKE_CXX_FLAGS=-I" + #$(this-package-input + "qtdeclarative") "/include/qt5") + (string-append "-DQT_IMPORTS_DIR=" + #$output "/lib/qt5/qml") + (string-append "-DCMAKE_INSTALL_SYSCONFDIR=" + #$output "/etc")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'embed-loginctl-reference + (lambda _ + (substitute* "CMakeLists.txt" + (("/usr/bin/loginctl") + (which "loginctl")))))))) (synopsis "QML based X11 and Wayland display manager") (description "SDDM is a display manager for X11 and Wayland aiming to be fast, simple and beautiful. SDDM is themeable and puts no restrictions on the -user interface design. It uses QtQuick which gives the designer the ability to -create smooth, animated user interfaces.") +user interface design. It uses QtQuick which gives the designer the ability +to create smooth, animated user interfaces.") (home-page "https://github.com/sddm/sddm") ;; QML files are MIT licensed and images are CC BY 3.0. (license (list license:gpl2+ license:expat license:cc-by3.0)))) diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index 2fd1d4a632..7b72ed0349 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2017-2023 Efraim Flashner ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice -;;; Copyright © 2018-2023 Nicolas Goaziou +;;; Copyright © 2018-2024 Nicolas Goaziou ;;; Copyright © 2020 Robert Smith ;;; Copyright © 2020 Guy Fleury Iteriteka ;;; Copyright © 2020 Jakub Kądziołka @@ -564,7 +564,7 @@ (define-public openboard (define-public fet (package (name "fet") - (version "6.9.0") + (version "6.15.0") (source (origin (method url-fetch) @@ -573,7 +573,7 @@ (define-public fet (list (string-append directory base) (string-append directory "old/" base)))) (sha256 - (base32 "1lnw58ga1ldhqfznclmk9l21698pg152w3slq2cwmr69ywqr5wys")))) + (base32 "0mmk9f0b23lmmk40mv25wf9vgb7wdgfn5zsa1qrkvkh7dh1hjpax")))) (build-system gnu-build-system) (arguments (list diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index bb3c905252..99c16f382d 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -2017,6 +2017,27 @@ (define-public emacs-suneater-theme theme but now takes more inspiration from the Nano theme.") (license license:gpl3+))) +(define-public emacs-adwaita-dark-theme + ;; Version 1.1.1 isn't tagged upstream. + (package + (name "emacs-adwaita-dark-theme") + (version "1.1.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/jessieh/adwaita-dark-theme") + (commit "057c39313341907b35c68d2179226886a0c276fd"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1g7hyg2hfvn24gaw4lca4g8lw10q2wg9nfrgl7pfdggz202m027c")))) + (build-system emacs-build-system) + (home-page "https://gitlab.com/jessieh/adwaita-dark-theme") + (synopsis "Adwaita-inspired dark color scheme for Emacs") + (description + "This package provides an Adwaita-inspired dark color scheme for Emacs.") + (license license:gpl2+))) + (define-public emacs-treepy (package (name "emacs-treepy") @@ -2950,26 +2971,27 @@ (define-public emacs-anaphora (license license:public-domain))) (define-public emacs-xah-fly-keys - (package - (name "emacs-xah-fly-keys") - (version "17.13.20220526011611") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/xahlee/xah-fly-keys") - (commit "b1b1ea62c3f1a329376d9125592175cf2027ebc7"))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1gv8d9zgmhzjg6zk2a7y76dz30a3l91xb1p15vldka95faz197wn")))) - (build-system emacs-build-system) - (home-page "http://xahlee.info/emacs/misc/ergoemacs_vi_mode.html") - (synopsis "Modal keybinding system for Emacs, based on command frequency and + (let ((commit "e81f8143e9f7b8e55fa549ec6113048e4959b96e")) + (package + (name "emacs-xah-fly-keys") + (version "24.19.20231204080156") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xahlee/xah-fly-keys") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1pnq4p5y0h7d3nj3vcsdfccc0aahdvcgskik337z6k7hmb32xz48")))) + (build-system emacs-build-system) + (home-page "http://xahlee.info/emacs/misc/ergoemacs_vi_mode.html") + (synopsis "Modal keybinding system for Emacs, based on command frequency and ergonomics") - (description "xah-fly-keys.el is a modal editing mode for Emacs, like Vi, + (description "xah-fly-keys.el is a modal editing mode for Emacs, like Vi, but the design of key/command choice is based on command frequency statistics and ease-of-key score. Most frequently used commands have most easy keys.") - (license license:gpl3))) + (license license:gpl3)))) (define-public emacs-xr (package @@ -3329,7 +3351,7 @@ (define-public emacs-dnt (file-name (git-file-name name version)) (sha256 (base32 "1bls9j1ibw0npjapslbrh6nmlbn3d4ajhjygsqlf6h9qg12sxm3r")))) - (inputs (list emacs-s)) + (propagated-inputs (list emacs-s)) (build-system emacs-build-system) (home-page "https://codeberg.org/emacs-weirdware/dnt") (synopsis "Strip trackers from URLs") @@ -4547,7 +4569,7 @@ (define-public emacs-chronometrist (define-public emacs-citeproc-el (package (name "emacs-citeproc-el") - (version "0.9.3") + (version "0.9.4") (source (origin (method git-fetch) @@ -4556,12 +4578,13 @@ (define-public emacs-citeproc-el (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0md8pfmd0v9ipnxj1q13vv81hl90wf4rm46czbk1fdzkyf9js08m")))) + (base32 "1l74c2f2xjzsp3i331sw3db4fhbvdbwyd856j1ygldwrh4rli9ml")))) (build-system emacs-build-system) (arguments `(#:emacs ,emacs)) ;need libxml support (propagated-inputs - (list emacs-dash + (list emacs-compat + emacs-dash emacs-f emacs-parsebib emacs-queue @@ -4771,20 +4794,18 @@ (define-public emacs-elf-mode (license license:gpl3+))) (define-public emacs-org-fc - (let ((commit "f64b5336485a42be91cfe77850c02a41575f5984") - (revision "0")) - (package + (package (name "emacs-org-fc") - (version (git-version "0.1.0" revision commit)) + (version "0.3.0") (source (origin (method git-fetch) (uri (git-reference (url "https://git.sr.ht/~l3kn/org-fc") - (commit commit))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1d0a3vr09zkplclypcgpfbfd6r0h0i3g3zsqb4pcz6x239d59gd5")))) + (base32 "17cdn4sdyb9fs9w725l155lb74inzdn86m8y62m6hn4dgb5l4spm")))) (build-system emacs-build-system) (arguments (list @@ -4819,7 +4840,7 @@ (define-public emacs-org-fc knowledge you want to learn into a question-answer test. These cards are reviewed at regular interval. After each review, the next review interval is calculated based on how well you remembered the contents of the card.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-font-lock+ (let ((commit "aa1c82d05c9222b09099a0ccd7468e955497940c") @@ -6101,32 +6122,42 @@ (define-public emacs-inflections (license license:gpl3+))) (define-public emacs-blight - (let ((commit "6bf9c6192d2bf979eebbfae1963401ef3ff4ef5d") - (revision "0")) - (package - (name "emacs-blight") - (version (git-version "0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://codeberg.org/emacs-weirdware/blight") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1x7s1fcva5kkl9iyb5grd6crf38rrz3zb0c6wb85khi9far10vgq")))) - (build-system emacs-build-system) - (home-page "https://codeberg.org/emacs-weirdware/blight") - (synopsis "Control display brightness") - (description - "Blight allows you to control display brightness from Emacs. It -features object-oriented code using EIEIO, a base class implementing -a reasonable API which focuses on the @emph{set the back light to this -percentage} functionality, it includes a concrete implementation that uses -SysFS to control brightness. Other systems (D-Bus, xbacklight, XELB using -XRandR) are easily supportable, giving the same experience across -environments.") - (license license:gpl3+)))) + (package + (name "emacs-blight") + (version "1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://codeberg.org/emacs-weirdware/blight") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1k1w1jr56pp8dgcpdxrymiam1hxsdy7nh6gi5l17pimwba3r4wbm")))) + (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-udev-rules-absolute-path-bins + (lambda _ + (substitute* "20-backlight.rules" + (("/bin/chgrp") (which "chgrp")) + (("/bin/chmod") (which "chmod"))))) + (add-after 'install 'install-udev-rules + (lambda _ + (install-file "20-backlight.rules" + (string-append #$output "/lib/udev/rules.d"))))))) + (home-page "https://codeberg.org/emacs-weirdware/blight") + (synopsis "Control display brightness") + (description + "Blight allows you to control display brightness from Emacs. It features +object-oriented code using EIEIO, a base class implementing a reasonable API +which focuses on the @emph{set the back light to this percentage} +functionality, it includes a concrete implementation that uses SysFS to +control brightness. Other systems (D-Bus, xbacklight, XELB using XRandR) are +easily supportable, giving the same experience across environments.") + (license license:gpl3+))) (define-public emacs-symon (package @@ -7841,16 +7872,16 @@ (define-public emacs-robe (define-public emacs-robot-mode (package (name "emacs-robot-mode") - (version "0.7.0") + (version "0.8.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/kopoli/robot-mode") - (commit version))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "10i4lwjf60ms3dj8s7k9c0vb24rhszskhciz9lijphcdh8k622hz")))) + (base32 "1a377lws4f0az2y1r3z2i3mghvg7a4094wkchvjvsl1nd6yxdxwa")))) (build-system emacs-build-system) (home-page "https://github.com/kopoli/robot-mode") (synopsis "Emacs mode for Robot Framework") @@ -8102,7 +8133,7 @@ (define-public emacs-sqlite (define-public emacs-sqlite3-api (package (name "emacs-sqlite3-api") - (version "0.17") + (version "0.18") (source (origin (method git-fetch) (uri (git-reference @@ -8111,7 +8142,7 @@ (define-public emacs-sqlite3-api (file-name (git-file-name name version)) (sha256 (base32 - "1y36818nd47mzfi3xcp31nr8n0izzmdyiqfx9hgp7ag98rbm7wlx")))) + "1d1r65ybcf5idbs8sv0l3dna4l1wy3jba9dvv1kkz7zj6qhr48fs")))) (build-system emacs-build-system) (arguments (list @@ -10095,13 +10126,20 @@ (define-public emacs-tagedit (sha256 (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb")))) (build-system emacs-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-spurious-require + (lambda _ + (substitute* "tagedit.el" + (("\\(require 'assoc\\)") ""))))))) (propagated-inputs - (list emacs-s emacs-dash)) + (list emacs-dash emacs-s)) (home-page "https://github.com/magnars/tagedit") - (synopsis "Some paredit-like features for html-mode") + (synopsis "Some Paredit-like features for HTML mode") (description - "This package provides a collection of paredit-like functions for editing -in @code{html-mode}.") + "This package provides a collection of Paredit-like functions for editing +in HTML mode.") (license license:gpl3+))) (define-public emacs-slime @@ -11131,7 +11169,7 @@ (define-public emacs-org-pomodoro (define-public emacs-org-sidebar (package (name "emacs-org-sidebar") - (version "0.3.2") + (version "0.4") (source (origin (method git-fetch) @@ -11140,10 +11178,13 @@ (define-public emacs-org-sidebar (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1r8kp954ciin4j7j7j8ihdkryf5x09s3ryl7bi9h2j6xqc1ij4wq")))) + (base32 "1gccih9wgi31m59flljw4cphfyhlfcqbjih91gkcnldq5z7n83nj")))) (build-system emacs-build-system) (propagated-inputs - (list emacs-dash emacs-org-super-agenda emacs-org emacs-org-ql + (list emacs-dash + emacs-org + emacs-org-ql + emacs-org-super-agenda emacs-s)) (home-page "https://github.com/alphapapa/org-sidebar") (synopsis "Helpful sidebar for Org buffers") @@ -11321,7 +11362,7 @@ (define-public emacs-moe-theme-el (define-public emacs-solarized-theme (package (name "emacs-solarized-theme") - (version "2.0.3") + (version "2.0.4") (source (origin (method git-fetch) @@ -11330,7 +11371,7 @@ (define-public emacs-solarized-theme (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0mip5da7glzylmagxkmi2f68i19phbbzn72vh3jd3w76labcvbzm")))) + (base32 "18z36nzyh4dsd8igys37x0r3lnav77fvjrkxv48v3yjsrwli19gl")))) (build-system emacs-build-system) (propagated-inputs (list emacs-dash)) @@ -11375,6 +11416,30 @@ (define-public emacs-color-theme-solarized Solarized color scheme.") (license license:expat)))) +(define-public emacs-color-identifiers-mode + (let ((commit "a26d00d898e0a3295cb7da9323046397223ea1fe") + (revision "0")) + (package + (name "emacs-color-identifiers-mode") + (version (git-version "1.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ankurdave/color-identifiers-mode") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kky827f922ziiwasrfnv97vqdf62fp9yml36x1fjsm2h6qw0c8v")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-dash)) + (home-page "https://github.com/ankurdave/color-identifiers-mode") + (synopsis "Minor mode for coloring identifiers based on their names") + (description + "This package provides an Emacs minor mode to highlight each source +code identifier uniquely based on its name.") + (license license:gpl3+)))) + (define-public emacs-poet-theme (let ((commit "16eb694f0755c04c4db98614d0eca1199fddad70") (revision "1")) @@ -19496,7 +19561,7 @@ (define-public emacs-commander (define-public emacs-eglot (package (name "emacs-eglot") - (version "1.15") + (version "1.16") (source (origin (method url-fetch) @@ -19504,7 +19569,7 @@ (define-public emacs-eglot ".tar")) (sha256 (base32 - "05brq76xbdkbhbn572n0hyz80lwc3ly5waaqsaan5l1apxgl6ww7")))) + "0zi2r8fp7acqlx8s4k2m9dc8w29bwsxyvfa6cnd1366nm3rlfybn")))) (build-system emacs-build-system) (propagated-inputs (list emacs-external-completion @@ -20398,7 +20463,7 @@ (define-public emacs-emamux (define-public emacs-plz (package (name "emacs-plz") - (version "0.7") + (version "0.7.1") (source (origin (method git-fetch) @@ -20407,7 +20472,7 @@ (define-public emacs-plz (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "18lq7v2gglfnax5r1svh9p0fcd5hs745js57nl8bk58ba047a9q8")))) + (base32 "0x2yhkdagwdqzjkaq54l095m3zvn49dg8y47wg27qdb5m2cjnswr")))) (build-system emacs-build-system) (inputs (list curl)) (arguments @@ -22584,6 +22649,26 @@ (define-public emacs-closql add any additional instance slots.") (license license:gpl3))) +(define-public emacs-sql-indent + (package + (name "emacs-sql-indent") + (version "1.7") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/sql-indent-" version + ".tar")) + (sha256 + (base32 "043qcy97a5hx68w0ac7xsk380l2i7bphgrdz6aby2zfpp90vrjpn")))) + (build-system emacs-build-system) + (home-page "https://github.com/alex-hhh/emacs-sql-indent") + (synopsis "Support for indenting code in SQL files") + (description + "This package provides a minor mode that enables syntax-based indentation +for SQL mode buffers. Indentation rules are flexible and can be customized to +match your personal coding style.") + (license license:gpl3+))) + (define-public emacs-epkg (package (name "emacs-epkg") @@ -24780,7 +24865,7 @@ (define-public emacs-org-reveal (define-public emacs-org-re-reveal (package (name "emacs-org-re-reveal") - (version "3.24.2") + (version "3.25.0") (source (origin (method git-fetch) @@ -24789,7 +24874,7 @@ (define-public emacs-org-re-reveal (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "10x1cinn97wlm3dmv35dxrs78gfzgw59qf4j57m3vgss5q93mqq5")))) + (base32 "13q45c2a4y6pkaiixf931j4rq6sfpklxx854xwadik4a3mm06ipi")))) (build-system emacs-build-system) (propagated-inputs (list emacs-htmlize emacs-org)) @@ -26706,7 +26791,7 @@ (define-public emacs-lingva (define-public emacs-helm-company (package (name "emacs-helm-company") - (version "0.2.7") + (version "0.2.8") (source (origin (method git-fetch) @@ -26716,7 +26801,7 @@ (define-public emacs-helm-company (file-name (git-file-name name version)) (sha256 (base32 - "0zg878i48kmgw9lj772c3kx5v13k9k2afz98j65jx2bjbcm9f338")))) + "0lschnr15c39bnfvm2zdp7f3qvyzrdk8gzzwcb1g2d9jy3mkcq05")))) (build-system emacs-build-system) (propagated-inputs (list emacs-helm emacs-company)) @@ -29525,7 +29610,7 @@ (define-public emacs-navigel (define-public emacs-eat (package (name "emacs-eat") - (version "0.9.2") + (version "0.9.4") (source (origin (method git-fetch) @@ -29535,7 +29620,7 @@ (define-public emacs-eat (file-name (git-file-name name version)) (sha256 (base32 - "1mw3iwid2iky0kwpn90bbswx8m4kkni5zdjc75clzhzzygh340sd")) + "0h4j40amdd92h1bhwcyw0kn6j2ihs671xfmz028qklx5cw8a31yg")) (modules '((guix build utils))) (snippet #~(begin @@ -29579,10 +29664,11 @@ (define-public emacs-eat (license license:gpl3+))) (define-public emacs-vterm - (let ((commit "e19dc2bb9859a75616bf068c341a540d0d329e4d")) + (let ((commit "c3a3a23a5eace137947524c93644204bf6b56cff") + (revision "1")) (package (name "emacs-vterm") - (version "0.0.2") + (version (git-version "0.0.2" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -29591,7 +29677,7 @@ (define-public emacs-vterm (file-name (git-file-name name version)) (sha256 (base32 - "0iqlzpy83ra6xz406fmddfj72bmkdb5b1j59m1dbxf3wxn55320d")))) + "0a3akvqmwh3frgbk1rgmi4b2gwdnpa3fymg7prin3k3jgqih1piv")))) (build-system emacs-build-system) (arguments `(#:modules ((guix build emacs-build-system) @@ -31362,11 +31448,10 @@ (define-public emacs-exwm-firefox-core (license (list license:gpl3+))))) (define-public emacs-exwm-firefox - (let ((commit "7390c3bc425894aeda3c12c23f61a234bb71a2d9") - (revision "1")) + (let ((commit "ba4044cf57f99656bbe1974278336b6abcb15497")) ;version bump (package (name "emacs-exwm-firefox") - (version (git-version "0.4" revision commit)) + (version "1.2") (source (origin (method git-fetch) @@ -31375,9 +31460,20 @@ (define-public emacs-exwm-firefox (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0xmgij04h4cbcgqafyyf9qajf0wp6mxpfpwjm6gi1jgisrql882d")))) + (base32 "1x9hc94a5wygyw714q98jbk4kjvys2ra94qdc2cbgkm6iq982rvq")))) (build-system emacs-build-system) - (inputs (list emacs-exwm-firefox-core emacs-s emacs-exwm)) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "lisp")))) + #:tests? #true + #:test-command #~(list "emacs" "-Q" "--batch" + "-l" "../test/exwm-firefox--tests.el" + "-l" "exwm-firefox.el" + "-f" "ert-run-tests-batch-and-exit"))) + (inputs (list emacs-exwm emacs-exwm-firefox-core emacs-s)) (home-page "https://codeberg.org/emacs-weirdware/exwm-firefox") (synopsis "Enhanced support for Firefox under EXWM") (description @@ -33595,7 +33691,7 @@ (define-public emacs-ssh-agency (define-public emacs-super-save (package (name "emacs-super-save") - (version "0.3.0") + (version "0.4.0") (source (origin (method git-fetch) @@ -33605,7 +33701,7 @@ (define-public emacs-super-save (file-name (git-file-name name version)) (sha256 (base32 - "066fyg4r4pksyandpd7s53hagpvm2rw90q5ks4jlpgy7x00hw09l")))) + "1nypbklgfxyrp55f0dazg9hm7gkqibijd6k4nlb0b0f1rhcm989b")))) (build-system emacs-build-system) (home-page "https://github.com/bbatsov/super-save") (synopsis "Auto-save buffers, based on your activity") @@ -34902,7 +34998,6 @@ (define-public emacs-debase (sha256 (base32 "112vk1svnc6516vhs47sx5jw6bg8lwrc15l99dxj0sc313lxjy3k")))) (build-system emacs-build-system) - (inputs (list)) (home-page "https://codeberg.org/emacs-weirdware/debase") (synopsis "D-Bus convenience layer for Emacs") (description @@ -34926,7 +35021,7 @@ (define-public emacs-discomfort (sha256 (base32 "01p4bfiasqxfmp9x1bxdc7763bh712d3vlp2014y8pzrwb1jqdaq")))) (build-system emacs-build-system) - (inputs (list emacs-debase)) + (propagated-inputs (list emacs-debase)) (home-page "https://codeberg.org/emacs-weirdware/discomfort") (synopsis "User interface to mount & unmount disks in Emacs.") (description "Discomfort is an interface to mount and unmount disks in Emacs, using UDisks2.") @@ -36501,7 +36596,7 @@ (define-public emacs-hyperspace (sha256 (base32 "19h3d12a99i7a92k3iw4zmjmw3dazsgnkc6j4965h033r1s40amx")))) (build-system emacs-build-system) - (inputs (list emacs-s)) + (propagated-inputs (list emacs-s)) (home-page "https://codeberg.org/emacs-weirdware/hyperspace") (synopsis "Get there from here") (description @@ -38450,14 +38545,14 @@ (define-public emacs-bitbake-modes (define-public emacs-vundo (package (name "emacs-vundo") - (version "2.1.0") + (version "2.2.0") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/vundo-" version ".tar")) (sha256 (base32 - "1inm6kvh5j47nsrmq6wpf30dqmx0arzdpa6vdcn834g50i4fh8kc")))) + "1vb5mq51krpcaw741dai3b9s12yicn73l1bqql41gylpanca83py")))) (build-system emacs-build-system) (home-page "https://github.com/casouri/vundo") (synopsis "Visualize the undo tree") @@ -38904,7 +38999,7 @@ (define-public emacs-vcard-mode (define-public emacs-vertico-posframe (package (name "emacs-vertico-posframe") - (version "0.7.5") + (version "0.7.6") (source (origin (method url-fetch) (uri (string-append @@ -38912,7 +39007,7 @@ (define-public emacs-vertico-posframe ".tar")) (sha256 (base32 - "1fa8kg5lqpa1xk2vf1mp420iqki866gd83vzsj166b8mnd34fdlr")))) + "15d7j37rmmg021mciwibcfmdwjn2694ljlh4sj03m1j4gj7igfqd")))) (build-system emacs-build-system) (propagated-inputs (list emacs-posframe emacs-vertico)) (home-page "https://github.com/tumashu/vertico-posframe") diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 28f5032982..4a52290e1b 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -1098,7 +1098,7 @@ (define-public inspekt3d (define-public kicad (package (name "kicad") - (version "7.0.9") + (version "7.0.10") (source (origin (method git-fetch) (uri (git-reference @@ -1106,7 +1106,7 @@ (define-public kicad (commit version))) (sha256 (base32 - "1hq9rba1gcks14zwbr8nbicpsil4imslgfch6ll33fhizbks3fq4")) + "0rmlkgzgvpd70jzspyrrb2f618fimw52qrhpsp777flmpyh91wly")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments @@ -1206,7 +1206,7 @@ (define-public kicad-doc (file-name (git-file-name name version)) (sha256 (base32 - "14dg99fvl6av9sn6gig6d6k1sdcf2svxy4fipqcz994z2khhz1sj")))) + "0lc7d6hn8ya8m51kjnf59v41pbp03l5ncxir75s21pb92l26xgnv")))) (build-system cmake-build-system) (arguments `(#:configure-flags (list "-DBUILD_FORMATS=html") @@ -1240,7 +1240,7 @@ (define-public kicad-symbols (file-name (git-file-name name version)) (sha256 (base32 - "0ynsnjq3z126cjkgm1fjbjvdvpc0walnr42ya9dv46l27kxy2j77")))) + "0nlgmxf9z1vf4g350dfkxql1dawgmw275wqxkgszsfxmhdfpmi9v")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; no tests exist @@ -1269,7 +1269,7 @@ (define-public kicad-footprints (file-name (git-file-name name version)) (sha256 (base32 - "16a4c2xs4i8wbm01a901yxabxk0qdsjkzlccfawddv82bkh4b87h")))) + "1az6fzh1lma71mj12bc4bblnmzjayrxhkb8w9rjvlhvvgv33cdmy")))) (synopsis "Official KiCad footprint libraries") (description "This package contains the official KiCad footprint libraries."))) @@ -1286,7 +1286,7 @@ (define-public kicad-packages3d (file-name (git-file-name name version)) (sha256 (base32 - "1cly28vc07i54v487zbb8d1h70nrd3naxvq146b0xnbrjwnd2q28")))) + "0xzyi4mgyifwc6dppdzh6jq294mkj0a71cwkqw2ymz1kfbksw626")))) (synopsis "Official KiCad 3D model libraries") (description "This package contains the official KiCad 3D model libraries."))) @@ -1303,7 +1303,7 @@ (define-public kicad-templates (file-name (git-file-name name version)) (sha256 (base32 - "11582ldnv7hkljmhaym83962kixq1hjbfmdrn5laq7l4jk3l19vh")))) + "0mykfwwik7472i4r0isc5szj3dnmvd0538p0vlmzh4rcgj3pj3vm")))) (synopsis "Official KiCad project and worksheet templates") (description "This package contains the official KiCad project and worksheet templates."))) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 749f741710..eadaa46102 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -2300,7 +2300,7 @@ (define-public xmrig (define-public p2pool (package (name "p2pool") - (version "3.7") + (version "3.10") (source (origin (method git-fetch) @@ -2309,7 +2309,7 @@ (define-public p2pool (commit (string-append "v" version)) (recursive? #t))) (file-name (git-file-name name version)) - (sha256 (base32 "1sghdk8yq8si0bq0z83fji48q8yrq0ymvsxbbh5mscw6223syrjq")) + (sha256 (base32 "0lp9slfwaq3wp4x6xpsiazam5lv6dz57m20adzlzzk0anb1ascr0")) (modules '((guix build utils))) (snippet #~(for-each delete-file-recursively diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm index 5cebf515bf..e691bf33da 100644 --- a/gnu/packages/firmware.scm +++ b/gnu/packages/firmware.scm @@ -875,7 +875,7 @@ (define-public ovmf (let ((toolchain-ver "GCC5")) (package (name "ovmf") - (version "202308") + (version "202311") (source (origin (method git-fetch) (uri (git-reference @@ -886,7 +886,7 @@ (define-public ovmf (file-name (git-file-name name version)) (sha256 (base32 - "04rnfnaqr2c7ayplj7ib730zp1snw157zx5rmykz5hz1zz2vb20j")))) + "136dl5cxpjpg37whzlqq7jrrjsgybmwrgkbbmks8xaixqmzwhbw0")))) (build-system gnu-build-system) (arguments (list diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 7516e1642b..e050f4fde9 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -123,6 +123,29 @@ (define-public font-artifika titling.") (license license:silofl1.1))) +(define-public font-cardo + (package + (name "font-cardo") + (version "1.04") + (source (origin + (method url-fetch) + (uri (string-append "https://scholarsfonts.net/cardo" + (string-delete #\. version) ".zip")) + (sha256 + (base32 + "0ps55zjva4fzmg47w2i8srrh8sqxz1wkcclihwgzlwfbaxixn0cl")))) + (build-system font-build-system) + (home-page "https://scholarsfonts.net/cardofnt.html") + (synopsis "Unicode font for classical scholarship") + (description + "Cardo is a large unicode font specifically designed for the needs of +classicists, biblical scholars, medievalists, and linguists. Since it may be +used to prepare materials for publication, it also contains features that are +required for high-quality typography, such as ligatures, text figures (also +known as old style numerals), true small capitals and a variety of punctuation +and space characters.") + (license license:silofl1.1))) + (define-public font-chivo (let ((commit "dc61c468d79781eb5183426e88e844af16cdc3e5") (revision "0")) @@ -1952,15 +1975,15 @@ (define-public font-junicode (define-public font-sarasa-gothic (package (name "font-sarasa-gothic") - (version "0.42.6") + (version "1.0.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/be5invis/Sarasa-Gothic" "/releases/download/v" version - "/sarasa-gothic-ttc-" version ".7z")) + "/Sarasa-TTC-" version ".7z")) (sha256 - (base32 "0czx10yph2lxg2k4w6qjnil73zb2pgg3g400apm9gay41m04990v")))) + (base32 "1cgqf15fhg567s2bwjpal3xfcdnbgyy0iav5181zkn6b4k56dgl4")))) (build-system font-build-system) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 73f93a9992..ea1adf0ecf 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -196,69 +196,71 @@ (define-public bullet (license license:zlib))) (define-public dds - (package - (name "dds") - (version "2.9.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dds-bridge/dds") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1iv09qic43nvla02lm8zgnkqpjgnc95p8zh3wyifmnmlh1rz02yj")))) - (build-system gnu-build-system) - (arguments - (list #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'chdir - (lambda _ - (chdir "src"))) - (replace 'configure - ;; Configuration is done by copying the appropriate - ;; make file in the working directory. There is no - ;; configure script. - (lambda _ - (copy-file "Makefiles/Makefile_linux_shared" - "Makefile"))) - (replace 'check - ;; There is no "check" traget. We must compile - ;; a "dtest" program and apply it on a data set. - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (install-file "libdds.so" "../test") - (with-directory-excursion "../test" - (copy-file "Makefiles/Makefile_linux" - "Makefile") - (substitute* "Makefile" - (("-Werror") "")) - (invoke "make") - (invoke "./dtest" "-f" "../hands/list100.txt"))))) - (replace 'install - ;; "install" target merely moves ".so" file around - ;; the source directory. We install it in the store, - ;; along with all shipped documentation (which cannot - ;; be built from source unfortunately). - (lambda _ - (install-file "libdds.so" - (string-append #$output "/lib")) - (let ((doc (string-append #$output - "/share/doc/" - #$name "-" #$version))) - (install-file "../LICENSE" doc) - (copy-recursively "../doc" doc))))))) - (native-inputs - (list gawk procps)) - (inputs - (list boost)) - (home-page "https://privat.bahnhof.se/wb758135/") - (synopsis "Double dummy solver for the bridge card game") - (description "DDS is a double-dummy solver of bridge hands. It supports + (let ((commit "d2bc4c2c703941664fc1d73e69caa5233cdeac18") + (revision "1")) + (package + (name "dds") + (version (git-version "2.9.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dds-bridge/dds") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1ishbb69cvyv96xdxshnly0m5ydwljgdf8fwa1cr9rj2qj40q4rm")))) + (build-system gnu-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "src"))) + (replace 'configure + ;; Configuration is done by copying the appropriate + ;; make file in the working directory. There is no + ;; configure script. + (lambda _ + (copy-file "Makefiles/Makefile_linux_shared" + "Makefile"))) + (replace 'check + ;; There is no "check" traget. We must compile + ;; a "dtest" program and apply it on a data set. + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (install-file "libdds.so" "../test") + (with-directory-excursion "../test" + (copy-file "Makefiles/Makefile_linux" + "Makefile") + (substitute* "Makefile" + (("-Werror") "")) + (invoke "make") + (invoke "./dtest" "-f" "../hands/list100.txt"))))) + (replace 'install + ;; "install" target merely moves ".so" file around + ;; the source directory. We install it in the store, + ;; along with all shipped documentation (which cannot + ;; be built from source unfortunately). + (lambda _ + (install-file "libdds.so" + (string-append #$output "/lib")) + (let ((doc (string-append #$output + "/share/doc/" + #$name "-" #$version))) + (install-file "../LICENSE" doc) + (copy-recursively "../doc" doc))))))) + (native-inputs + (list gawk procps)) + (inputs + (list boost)) + (home-page "https://privat.bahnhof.se/wb758135/") + (synopsis "Double dummy solver for the bridge card game") + (description "DDS is a double-dummy solver of bridge hands. It supports single-threading and multi-threading for improved performance. DDS offers a wide range of functions, including par-score calculations.") - (license license:asl2.0))) + (license license:asl2.0)))) (define-public deutex (package @@ -3269,16 +3271,16 @@ (define-public raylib (define-public bbcsdl (package (name "bbcsdl") - (version "1.35a") + (version "1.39a") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/rtrussell/BBCSDL/") - (commit "b9b2a3eb438cb799edb2766055b3c38e9518e3e3"))) + (commit "93b0ffae960f4c4f45fdc2202bc6e83ee5ca277c"))) (file-name (git-file-name name version)) (sha256 (base32 - "1d03xmhrl6ba6w0vwfk46mpyc9d0w3bixxj2d4irx7wl7bh3bfic")))) + "03ga14k2hbhflnaynbyx9lwlbxlzx3rv6zqq21yhl183s6d4c0wa")))) (build-system gnu-build-system) (arguments (list @@ -3318,6 +3320,7 @@ (define-public bbcsdl inputs (string-append "share/fonts/truetype/" font)) (string-append opt "/lib/" font))) '("DejaVuSans.ttf" "DejaVuSansMono.ttf" + "DejaVuSans-Oblique.ttf" "FreeSans.ttf" "FreeMono.ttf" "FreeSerif.ttf")) (mkdir bin) (symlink (string-append opt "/bbcsdl") diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index c7813790a1..cf2e38f49c 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -78,7 +78,8 @@ ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2023 Florian Pelz ;;; Copyright © 2023 Ivana Drazovic -;;; Copyright © 2023 gemmaro +;;; Copyright © 2023, 2024 gemmaro +;;; Copyright © 2023 Wilko Meyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -193,6 +194,7 @@ (define-module (gnu packages games) #:use-module (gnu packages protobuf) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) + #:use-module (gnu packages python-compression) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) @@ -230,6 +232,7 @@ (define-module (gnu packages games) #:use-module (guix build-system meson) #:use-module (guix build-system perl) #:use-module (guix build-system python) + #:use-module (guix build-system pyproject) #:use-module (guix build-system qt) #:use-module (guix build-system scons) #:use-module (guix build-system trivial) @@ -2367,6 +2370,55 @@ (define-public prboom-plus "PrBoom+ is a Doom source port developed from the original PrBoom project.") (license license:gpl2+))) +(define-public redeal + (let ((commit "e2e81a477fd31ae548a340b5f0f380594d3d0ad6") + (revision "1")) + (package + (name "redeal") + (version (git-version "0.2.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/anntzer/redeal") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1vac36bg4ah9gs4hgmp745xq6nnmd7s71vsq99d72ng3sxap0wa3")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'unbundle-dds + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "setup.py" + (("cmdclass=.*") "")) + (let ((libdds (search-input-file inputs "lib/libdds.so"))) + (substitute* "redeal/dds.py" + ((" and os.path.exists\\(dll_path\\)") "") + (("dll = DLL\\(dll_path\\)") + (format #f "dll = DLL(~s)" libdds)))))) + (add-after 'install 'install-examples + (lambda _ + (let* ((doc (string-append #$output "/share/doc/")) + (examples + (string-append doc #$name "-" #$version "/examples"))) + (mkdir-p examples) + (copy-recursively "examples" examples))))))) + (inputs (list dds `(,python "tk"))) + (propagated-inputs (list python-colorama)) + (home-page "https://github.com/anntzer/redeal") + (synopsis + "Deal generator for bridge card game, written in Python") + (description + "Redeal is a deal generator written in Python. It outputs deals +satisfying whatever conditions you specify --- deals with a double void, deals +with a strong 2♣ opener opposite a yarborough, etc. Using Bo Haglund's double +dummy solver, it can even solve the hands it has generated for you.") + (license license:gpl3)))) + (define-public retux (let ((release "1.6.1") (revision 0)) @@ -3385,25 +3437,29 @@ (define-public talkfilters (define-public taisei (package (name "taisei") - (version "1.3.2") + (version "1.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/taisei-project/" "taisei/releases/download/v" version - "/taisei-v" version ".tar.xz")) + "/taisei-" version ".tar.xz")) (sha256 - (base32 "1g53fcyrlzmvlsb40pw90gaglysv6n1w42hk263iv61ibhdmzh6v")))) + (base32 "1glrr99xiyz674d1izgvmk9w1zxanc94d34pacd0wya66bbml0nc")))) (build-system meson-build-system) (arguments - `(#:build-type "release" ;comment out for bug-reporting (and cheats) - #:configure-flags - (list "-Dr_default=gles30" - "-Dr_gles20=true" - "-Dr_gles30=true" - "-Dshader_transpiler=true"))) + (list + #:build-type "release" ;comment out for bug-reporting (and cheats) + #:configure-flags #~(list "-Dr_default=gles30" + "-Dr_gles20=true" + "-Dr_gles30=true" + "-Dshader_transpiler=true"))) (native-inputs - (list pkg-config python python-docutils python-pygments)) + (list pkg-config + python + python-docutils + python-pygments + python-zstandard)) (inputs (list cglm freetype @@ -3417,21 +3473,23 @@ (define-public taisei sdl2-mixer shaderc spirv-cross - zlib)) + zlib + (list zstd "lib"))) (home-page "https://taisei-project.org/") (synopsis "Shoot'em up fangame and libre clone of Touhou Project") (description "The player controls a character (one of three: Good, Bad, and Dead), dodges the missiles (lots of it cover the screen, but the character's hitbox is very small), and shoot at the adversaries that keep appear on the screen.") - (license (list ;;game - license:expat - ;;resources/00-taisei.pkgdir/bgm/ - ;;atlas/portraits/ - license:cc-by4.0 - ;;miscellaneous - license:cc0 - license:public-domain)))) + (license (list + ;; game + license:expat + ;; resources/00-taisei.pkgdir/bgm/ + ;; atlas/portraits/ + license:cc-by4.0 + ;; miscellaneous + license:cc0 + license:public-domain)))) (define-public cmatrix (package @@ -3833,7 +3891,7 @@ (define-public irrlicht-for-minetest (package (inherit irrlicht) (name "irrlicht-for-minetest") - (version "1.9.0mt10") + (version "1.9.0mt13") (source (origin (method git-fetch) @@ -3843,7 +3901,7 @@ (define-public irrlicht-for-minetest (file-name (git-file-name name version)) (sha256 (base32 - "0y5vchz91khs8dmrkpgc7sqmvzx2yjj6svivvm80r4yppv7s03rw")))) + "11pxg0yh50ym1hvh8va5jbbcjz5dsshj3xxvm3qhkgg96vpism06")))) (build-system cmake-build-system) (arguments ;; No check target. @@ -10115,6 +10173,36 @@ (define-public q5go (home-page "https://github.com/bernds/q5Go") (license license:gpl2+))) +(define-public qcheckers + (package + (name "qcheckers") + (version "0.9.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/portnov/qcheckers") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05wzql6abzdf6l0vdzki4rfy2zn31mcplh1wkw3ddk8w81pvaymw")))) + (build-system qt-build-system) + (arguments + (list + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (replace 'configure + (lambda _ + (invoke "qmake" + (string-append "PREFIX=" #$output))))))) + (inputs (list qtbase-5 qtsvg-5)) + (home-page "https://portnov.github.io/qcheckers/") + (synopsis "Qt-based checkers boardgame") + (description "QCheckers, formely known as KCheckers, is a is a Qt version +of the classic boardgame checkers (also known as draughts).") + (license license:gpl2+))) + (define-public xmoto (package (name "xmoto") @@ -10415,6 +10503,31 @@ (define-public moonfish using any UCI engine and also to connect UCI engines to Lichess.") (license license:agpl3+)))) +(define-public morris + (package + (name "morris") + (version "0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/farindk/morris") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kkcnpkzgybm7rqg7nafd7sqd5m4alns6l4j5zcf3p41jdc9s3iv")))) + (build-system glib-or-gtk-build-system) + (inputs (list automake autoconf pkg-config intltool + gnu-gettext libtool glib gtk+-2 boost)) + (arguments `(#:tests? #f)) + (home-page "http://nine-mens-morris.net/downloads.html") + (synopsis "Morris is an implementation of the board game Nine Men's Morris") + (description "Morris is an implementation of the board game Nine Men's Morris. +It supports not only the standard game, but also several rule-variants and different +board layouts. You can play against the computer, or simply use the program to +present the board, but play against another human opponent.") + (license license:gpl3))) + (define-public barrage (package (name "barrage") diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index a8b74a3632..5590cd3d7e 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014, 2015, 2018 Mark H Weaver ;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2021 Ricardo Wurmus ;;; Copyright © 2015, 2023 Andreas Enge -;;; Copyright © 2015-2018, 2020-2023 Efraim Flashner +;;; Copyright © 2015-2018, 2020-2024 Efraim Flashner ;;; Copyright © 2016 Carlos Sánchez de La Lama ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018, 2020, 2022 Marius Bakke @@ -75,6 +75,9 @@ (define (gcc-configure-flags-for-triplet target) "--with-mode=thumb" "--with-fpu=neon")) + ((string-match "x86_64-linux-gnux32" target) + '("--with-abi=mx32")) + ((and (string-suffix? "-gnu" target) (not (string-contains target "-linux"))) ;; Cross-compilation of libcilkrts in GCC 5.5.0 to GNU/Hurd fails diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index 31abb2cc36..73b7aa3d11 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -3228,3 +3228,31 @@ (define-public navit file format, and data from OpenStreetMap, Garmin maps, Marco Polo Grosser Reiseplaner, Routeplaner Europa 2007, Map + Route.") (license license:gpl2))) + +(define-public laszip + (package + (name "laszip") + (version "3.4.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/LASzip/LASzip") + (commit "3.4.3"))) + (file-name (git-file-name name version)) + (sha256 + (base32 "09lcsgxwv0jq50fhsgfhx0npbf1zcwn3hbnq6q78fshqksbxmz7m")))) + (build-system cmake-build-system) + (arguments + (list + #:configure-flags #~(list "-DLASZIP_BUILD_STATIC=NO") + #:build-type "Release" + ;; No tests. + #:tests? #f)) + (home-page "https://laszip.org/") + (synopsis "Compression library for LAS files") + (description + "LASzip is a library for compressing @code{LAS} files and uncompressing +@code{LAZ} files. The @code{LAS} format is a file format designed for the +interchange and archiving of lidar point cloud data.") + (license license:asl2.0))) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 54643c314e..188aa02293 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -1034,6 +1034,9 @@ (define (runpaths-of-input label) (setenv "MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE" "system") (setenv "MOZ_BUILD_DATE" #$%icecat-build-id) ; avoid timestamp + ;; WM_CLASS (default is "$MOZ_APP_NAME-$MOZ_UPDATE_CHANNEL"). + (setenv "MOZ_APP_REMOTINGNAME" "Icecat") + ;; XXX TODO: Fix this to work on systems other than x86_64-linux. (setenv "GUIX_PYTHONPATH" (string-append (getcwd) @@ -1091,18 +1094,22 @@ (define (runpaths-of-input label) (let* ((lib (string-append #$output "/lib")) (gtk #$(this-package-input "gtk+")) (gtk-share (string-append gtk "/share")) - (ld-libs '#$(map (lambda (label) - (file-append (this-package-input label) "/lib")) - '("libpng-apng" - "libxscrnsaver" - "mesa" - "pciutils" - "mit-krb5" - "eudev" - "pulseaudio" - ;; For the integration of native notifications - ;; (same reason as icedove) - "libnotify")))) + (ld-libs '#$(cons + (file-append + (this-package-input "libcanberra") + "/lib/gtk-3.0/modules") + (map (lambda (label) + (file-append (this-package-input label) "/lib")) + '("libpng-apng" + "libxscrnsaver" + "mesa" + "pciutils" + "mit-krb5" + "eudev" + "pulseaudio" + ;; For the integration of native notifications + ;; (same reason as icedove) + "libnotify"))))) (wrap-program (car (find-files lib "^icecat$")) `("XDG_DATA_DIRS" prefix (,gtk-share)) ;; The following line is commented out because the icecat @@ -1122,7 +1129,7 @@ (define (runpaths-of-input label) (("NewWindow") "new-window") (("NewPrivateWindow") "new-private-window") (("StartupNotify=true") - "StartupNotify=true\nStartupWMClass=Navigator")) + "StartupNotify=true\nStartupWMClass=Icecat")) (install-file desktop-file applications)))) (add-after 'install-desktop-entry 'install-icons (lambda _ diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm index 7759916c35..3e60bfaf33 100644 --- a/gnu/packages/golang-web.scm +++ b/gnu/packages/golang-web.scm @@ -21,6 +21,7 @@ ;;; Copyright © 2023 Hilton Chain ;;; Copyright © 2023 Katherine Cox-Buday ;;; Copyright © 2023 Nicolas Graves +;;; Copyright © 2023 Artyom V. Poptsov ;;; ;;; This file is part of GNU Guix. ;;; @@ -870,7 +871,7 @@ (define-public go-github-com-gorilla-websocket (define-public go-github-com-hjson-hjson-go (package (name "go-github-com-hjson-hjson-go") - (version "3.1.0") + (version "4.3.1") (source (origin (method git-fetch) @@ -879,7 +880,7 @@ (define-public go-github-com-hjson-hjson-go (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1dfdiahimg6z9idg8jiqxwnlwjnmasbjccx8gnag49cz4yfqskaz")))) + (base32 "138vmbnrwzxf64cia27k407clrydvs2jx927dlv6ziydiqyvy7m3")))) (build-system go-build-system) (arguments '(#:import-path "github.com/hjson/hjson-go")) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 36e2c4b23e..58681af958 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -3959,11 +3959,11 @@ (define-public go-golang-org-x-sync (license license:bsd-3)))) (define-public go-golang-org-x-sys - (let ((commit "b60007cc4e6f966b1c542e343d026d06723e5653") + (let ((commit "ca59edaa5a761e1d0ea91d6c07b063f85ef24f78") (revision "0")) (package (name "go-golang-org-x-sys") - (version (git-version "0.4.0" revision commit)) + (version (git-version "0.8.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -3972,7 +3972,7 @@ (define-public go-golang-org-x-sys (file-name (git-file-name name version)) (sha256 (base32 - "0fr2d6fnpbqx6n89sg9lsinqkdaw49y068kqj2g0cxlhbh69hzii")))) + "1p81niiin8dwyrjl2xsc95136w3vdw4kmj0w3mlh0vh5v134s4xq")))) (build-system go-build-system) (arguments (list @@ -3989,24 +3989,6 @@ (define-public go-golang-org-x-sys (home-page "https://go.googlesource.com/sys") (license license:bsd-3)))) -;; XXX: This version is required for "go-github-com-quic-go-qtls-go1-20". -(define-public go-golang-org-x-sys-0.8 - (let ((commit "ca59edaa5a761e1d0ea91d6c07b063f85ef24f78") - (revision "0")) - (package - (inherit go-golang-org-x-sys) - (name "go-golang-org-x-sys") - (version (git-version "0.8.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://go.googlesource.com/sys") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1p81niiin8dwyrjl2xsc95136w3vdw4kmj0w3mlh0vh5v134s4xq"))))))) - (define-public go-golang-org-x-text (package (name "go-golang-org-x-text") @@ -7269,7 +7251,7 @@ (define-public go-github-com-quic-go-qtls-go1-20 #:import-path "github.com/quic-go/qtls-go1-20" #:go go-1.20)) (propagated-inputs (list go-golang-org-x-crypto - go-golang-org-x-sys-0.8)) + go-golang-org-x-sys)) (synopsis "TLS 1.3 for QUIC") (description "Go standard library TLS 1.3 implementation, modified for QUIC. For @@ -7330,21 +7312,17 @@ (define-public go-github-com-quic-go-quic-go #:tests? #f #:go go-1.20)) (propagated-inputs - (let ((p (package-input-rewriting - `((,go-golang-org-x-sys . ,go-golang-org-x-sys-0.8)) - #:deep? #true))) - (cons go-golang-org-x-sys-0.8 - (map p - (list go-github-com-quic-go-qtls-go1-20 - go-github-com-quic-go-qpack - go-golang-org-x-crypto - go-github-com-cheekybits-genny - go-github-com-marten-seemann-chacha20 - go-github-com-golang-protobuf-proto - go-golang-org-x-crypto - go-golang-org-x-exp - go-golang-org-x-net - go-golang-org-x-sync))))) + (list go-github-com-quic-go-qtls-go1-20 + go-github-com-quic-go-qpack + go-golang-org-x-crypto + go-github-com-cheekybits-genny + go-github-com-marten-seemann-chacha20 + go-github-com-golang-protobuf-proto + go-golang-org-x-crypto + go-golang-org-x-exp + go-golang-org-x-net + go-golang-org-x-sys + go-golang-org-x-sync)) (synopsis "QUIC in Go") (description "This package provides a Go language implementation of the QUIC network protocol.") diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm index a40b580417..26b9d03a73 100644 --- a/gnu/packages/graph.scm +++ b/gnu/packages/graph.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017, 2018, 2019, 2020, 2022, 2023 Ricardo Wurmus +;;; Copyright © 2017-2024 Ricardo Wurmus ;;; Copyright © 2018 Joshua Sierles, Nextjournal ;;; Copyright © 2018, 2020, 2022 Tobias Geerinckx-Rice ;;; Copyright © 2019, 2021, 2022 Efraim Flashner @@ -426,6 +426,48 @@ (define-public python-vtraag-louvain large networks.") (license license:gpl3+))) +(define-public python-louvain-igraph + (package + (name "python-louvain-igraph") + (version "0.8.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vtraag/louvain-igraph") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1j2ybihvvzggwjb9zvm829aqb5b94q10h8bw6v0h42xd9w75z9sv")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'find-igraph + (lambda _ + (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version) + (substitute* "setup.py" + (("/usr/include/igraph") + (string-append #$(this-package-input "igraph") + "/include/igraph")))))))) + (propagated-inputs (list python-igraph)) + (inputs (list igraph)) + (native-inputs + (list python-ddt + python-setuptools-scm + pkg-config)) + (home-page "https://github.com/vtraag/louvain-igraph") + (synopsis "Implementation of the Louvain algorithm") + (description "This package implements the Louvain algorithm for community +detection in C++ and exposes it to Python. Besides the relative flexibility +of the implementation, it also scales well, and can be run on graphs of +millions of nodes (as long as they can fit in memory). The core function is +@code{find_partition} which finds the optimal partition using the louvain +algorithm for a number of different methods.") + (license license:gpl3+))) + (define-public faiss (package (name "faiss") @@ -449,8 +491,8 @@ (define-public faiss (build-system cmake-build-system) (arguments `(#:configure-flags - (list "-DBUILD_WITH_GPU=OFF" ; thanks, but no thanks, CUDA. - "-DBUILD_TUTORIAL=OFF") ; we don't need those + (list "-DBUILD_WITH_GPU=OFF" ; thanks, but no thanks, CUDA. + "-DBUILD_TUTORIAL=OFF") ; we don't need those #:phases (modify-phases %standard-phases (add-after 'unpack 'prepare-build @@ -466,7 +508,7 @@ (define-public faiss '())))))) (substitute* "CMakeLists.txt" (("-m64") "") - (("-mpopcnt") "") ; only some architectures + (("-mpopcnt") "") ; only some architectures (("-msse4") (string-append (string-join features) diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm index b91c365e3c..c5507e036c 100644 --- a/gnu/packages/graphviz.scm +++ b/gnu/packages/graphviz.scm @@ -195,7 +195,7 @@ (define-public python-pygraphviz (define-public python-uqbar (package (name "python-uqbar") - (version "0.5.6") + (version "0.5.9") (source (origin (method git-fetch) @@ -205,18 +205,12 @@ (define-public python-uqbar (file-name (git-file-name name version)) (sha256 (base32 - "1ml3x2mf7nlnvrh9lari5yk0sz2mmg39jwsbjxnpzhnw4kcwpdrs")))) + "0c573nzpm51qgz2g296f8pw8ys0i3r6daynxk06zagk5l5fgw9ar")) + (patches (search-patches "python-uqbar-python3.10.patch")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'patch - (lambda _ - (substitute* "setup.py" - ;; Latest versions of sphink-rtd-theme require npm to build. - (("sphinx-rtd-theme >= 0.5.0") "sphinx-rtd-theme >= 0.2.4") - (("black") "black >= 19.10b0")) - #t)) (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index afd8900848..9dc1176797 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -1839,6 +1839,33 @@ (define-public guile-xosd library}.") (license license:gpl3+))) +(define-public guile-yamlpp + (package + (name "guile-yamlpp") + (version "0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/yorgath/guile-yamlpp") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14mlqi7hw7pi9scwk1g432issnqcn185pd8na2plijxq55cy0iq7")))) + (build-system gnu-build-system) + (native-inputs (list autoconf automake libtool pkg-config)) + (inputs (list guile-3.0 yaml-cpp)) + (native-search-paths + (list (search-path-specification + (variable "GUILE_EXTENSIONS_PATH") + (files (list "lib/guile/3.0"))))) + (home-page "https://gitlab.com/yorgath/guile-yamlpp") + (synopsis "Guile YAML reader/writer based on @code{yaml-cpp}") + (description + "A module for GNU Guile to read and write YAML files. It works using +bindings to the @code{yaml-cpp} C++ library.") + (license license:gpl3+))) + (define-public guile-dbi (package (name "guile-dbi") @@ -3565,6 +3592,80 @@ (define-public guile-srfi-128 ;; contains ISC code from the SRFI sample implementation license:isc)))) +(define-public guile-srfi-133 + (package + (name "guile-srfi-133") + (version "0.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/scheme-requests-for-implementation/srfi-133") + (commit "db81a114cd3e23375f024baec15482614ec90453"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0a7srl72291yah0aj6rwddhj041v2spximhknjj7hczlparsrm7f")))) + (build-system guile-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'move-create-and-delete-files + (lambda _ + (rename-file "vectors" "srfi") + (rename-file "srfi/vectors-test.scm" "srfi/srfi-test.scm") + (rename-file "srfi/vectors-impl.scm" "srfi/srfi-impl.scm") + (with-output-to-file "srfi/srfi-133.scm" + (lambda () + (display "(define-module (srfi srfi-133) + #:replace (;; Constructors + vector-copy + + ;; Mutators + vector-fill! vector-copy! + + ;; Conversion + vector->list list->vector) + #:export (;; Constructors + vector-unfold vector-unfold-right vector-reverse-copy + vector-append vector-concatenate vector-append-subvectors + + ;; Predicates + vector-empty? vector= + + ;; Iteration + vector-fold vector-fold-right vector-map vector-map! + vector-for-each vector-count vector-cumulate + + ;; Searching + vector-index vector-index-right vector-skip vector-skip-right + vector-binary-search vector-any vector-every vector-partition + + ;; Mutators + vector-swap! vector-reverse! + vector-reverse-copy! vector-unfold! vector-unfold-right! + + ;; Conversion + reverse-vector->list reverse-list->vector + vector->string string->vector)) + +(include \"srfi-impl.scm\")"))) + (for-each (lambda (filename) + (delete-file filename)) + '("tests/run.scm" + "srfi/vectors.sld" + "srfi/vectors.scm"))))))) + (native-inputs + (list guile-3.0)) + (home-page "https://github.com/scheme-requests-for-implementation/srfi-133") + (synopsis "R7RS-compatible vector library for Guile") + (description + "This package provides a Guile implementation of +@uref{https://srfi.schemers.org/srfi-133/srfi-133.html, SRFI-133}, a +comprehensive library of vector operations.") + (license license:expat))) + (define-public guile-srfi-145 (package (name "guile-srfi-145") @@ -3766,6 +3867,56 @@ (define-public guile-srfi-189 or errors (Left).") (license license:expat)))) +(define-public guile-srfi-232 + (package + (name "guile-srfi-232") + (version "0.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/scheme-requests-for-implementation/srfi-232") + (commit "c3f580d220778cd71492aba4fdd0c7040968e705"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0lp4zcqjjj6hwfh3ix71wak1nffgg4npzsg7cdxfn9hf6iwf9xby")))) + (build-system guile-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'move-and-delete-things + (lambda _ + (let* ((srfi-directory (string-append #$output "/srfi"))) + (mkdir-p "srfi") + (with-output-to-file "srfi/srfi-232.scm" + (lambda () + (display "(define-library (srfi srfi-232) + (export curried define-curried) + (import (only (guile) import) + (scheme base)) + (include \"../srfi-232.scm\"))"))) + (for-each (lambda (filename) + (delete-file filename)) + '("test-body.scm" + "test-chibi.scm" + "test-srfi-64.scm")))))))) + (native-inputs + (list guile-3.0)) + (home-page "https://github.com/scheme-requests-for-implementation/srfi-232") + (synopsis "Flexible curried procedures") + (description + " This package provides an implementation of +@uref{https://srfi.schemers.org/srfi-232/srfi-232.html, SRFI-232}, which +describes @code{curried}, a variant of @code{lambda} that creates true curried +procedures which also behave just like ordinary Scheme procedures. They can +be applied to their arguments one by one, all at once, or anywhere in between, +without any novel syntax. @code{curried} also supports nullary and variadic +procedures, and procedures created with it have predictable behavior when +applied to surplus arguments.") + (license license:expat))) + (define-public emacsy (package (name "emacsy") diff --git a/gnu/packages/libsigsegv.scm b/gnu/packages/libsigsegv.scm index ebbdd2ad90..71afb35be0 100644 --- a/gnu/packages/libsigsegv.scm +++ b/gnu/packages/libsigsegv.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2018 Ludovic Courtès -;;; Copyright © 2017 Efraim Flashner +;;; Copyright © 2017, 2024 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,6 +21,7 @@ (define-module (gnu packages libsigsegv) #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix utils) #:use-module (guix build-system gnu)) (define-public libsigsegv @@ -40,21 +41,15 @@ (define-public libsigsegv (arguments `(;; The shared library isn't built by default but some packages need it. #:configure-flags '("--enable-shared") - - ;; On MIPS, work around this error: - ;; - ;; In file included from fault-linux-mips-old.h:18:0, - ;; [...] - ;; linux-libre-headers-cross-mips64el-linux-gnu-3.3.8/include/asm/sigcontext.h:57:8: error: redefinition of 'struct sigcontext' - ,@(if (string-contains (or (%current-target-system) (%current-system)) - "mips64el") - `(#:phases (modify-phases %standard-phases - (add-before 'configure 'patch-mips-old-h - (lambda _ - (substitute* "src/fault-linux-mips-old.h" - (("#include ") "")) - #t)))) - '()))) + ;; On some architectures 'struct sigcontext' gets redefined from + ;; %linux-libre-headers/include/asm/sigcontext.h + ,@(cond ((%current-target-system) + `(#:phases (modify-phases %standard-phases + (add-before 'configure 'patch-asm-sigcontext-h + (lambda _ + (substitute* (find-files "src" "^fault-.*-old\\.h$") + (("#include ") ""))))))) + (else '())))) (description "GNU libsigsegv is a library to handle page faults, which occur when a program tries to access an unavailable region of memory, in user mode. By diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 1c359cb300..0fe64bacf3 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -76,7 +76,7 @@ ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2023 dan ;;; Copyright © 2023 Foundation Devices, Inc. -;;; Copyright © 2023 Wilko Meyer +;;; Copyright © 2023, 2024 Wilko Meyer ;;; Copyright © 2023 Jaeme Sifat ;;; ;;; This file is part of GNU Guix. @@ -494,17 +494,17 @@ (define (%upstream-linux-source version hash) ;; The current "stable" kernels. That is, the most recently released major ;; versions that are still supported upstream. -(define-public linux-libre-6.6-version "6.6.8") +(define-public linux-libre-6.6-version "6.6.9") (define-public linux-libre-6.6-gnu-revision "gnu") (define deblob-scripts-6.6 (linux-libre-deblob-scripts linux-libre-6.6-version linux-libre-6.6-gnu-revision (base32 "0g8m0rb15b0231dv8ji456s75a67szsaim71may3yprplycz6pav") - (base32 "1hg3ck1j8288fhlhcvhgs1zzwh3i62nfvphw7x3vsaqr75kiwbjp"))) + (base32 "0kavbby960k7wg355p3hjb9v1c4gnk8dv3lkfhpz44ayhv7kihg5"))) (define-public linux-libre-6.6-pristine-source (let ((version linux-libre-6.6-version) - (hash (base32 "05i4ayj9wyjkd1s8ixx7bxwcyagqyx8rhj1zvbc3cjqyw4sc8djh"))) + (hash (base32 "1cs8ym3yq9czjx6sbxpmn16l6a577mc4c1ff7nk1p2gw1jpnbg4f"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-6.6))) @@ -512,17 +512,17 @@ (define-public linux-libre-6.6-pristine-source ;; The "longterm" kernels — the older releases with long-term upstream support. ;; Here are the support timelines: ;; -(define-public linux-libre-6.1-version "6.1.69") +(define-public linux-libre-6.1-version "6.1.70") (define-public linux-libre-6.1-gnu-revision "gnu") (define deblob-scripts-6.1 (linux-libre-deblob-scripts linux-libre-6.1-version linux-libre-6.1-gnu-revision (base32 "1sf80f2i4vf888xjcn84ymn4w5ynn30ib9033zwmv7f09yvfhapy") - (base32 "1hdibv43xbn1lv83i6qjgfmf1bvqxvq17fryfsq4r4sjgs9212js"))) + (base32 "1jg2v1nxd6i5x536vmd1l14xhpzrcimpmjfipb1zkrwil102y25f"))) (define-public linux-libre-6.1-pristine-source (let ((version linux-libre-6.1-version) - (hash (base32 "0hdm28k49kmy9r96hckps0bvvaq9m06l72n8ih305rccs6a2cgby"))) + (hash (base32 "1vxgardfm2fi4c7zkxpljqicllfqqnp835a9lyb7dh2nchk6a4zd"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-6.1))) diff --git a/gnu/packages/lisp-check.scm b/gnu/packages/lisp-check.scm index 5f5e39c193..cbaef71b87 100644 --- a/gnu/packages/lisp-check.scm +++ b/gnu/packages/lisp-check.scm @@ -1038,8 +1038,8 @@ (define-public ecl-stefil (sbcl-package->ecl-package sbcl-stefil)) (define-public sbcl-try - (let ((commit "a1fffad2ca328b3855f629b633ab1daaeec929c2") - (revision "1")) + (let ((commit "cf2a8887d091bf297b72ef69e15012e7e849ba3b") + (revision "2")) (package (name "sbcl-try") (version (git-version "0.0.1" revision commit)) @@ -1051,7 +1051,7 @@ (define-public sbcl-try (commit commit))) (file-name (git-file-name "cl-try" version)) (sha256 - (base32 "03dm2i2y4wiyzz9d25zdxm6gdglnvwali0ylp0rfwpk6wf29sj09")))) + (base32 "166i3fqwxfv9skz6yf95c95nx0jjqy1ak1131bd0sqmd582gi9mg")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-cl-ppcre)) diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 1625197550..aa3ea7c9ce 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -32,7 +32,7 @@ ;;; Copyright © 2021 Aleksandr Vityazev ;;; Copyright © 2021 Jacob MacDonald ;;; Copyright © 2022 Jai Vetrivelan -;;; Copyright © 2022, 2023 Paul A. Patience +;;; Copyright © 2022, 2023, 2024 Paul A. Patience ;;; Copyright © 2022 Thomas Albers Raviola ;;; Copyright © 2022 Arun Isaac ;;; Copyright © 2022 Trevor Richards @@ -1005,11 +1005,11 @@ (define-public cl-adopt (sbcl-package->cl-source-package sbcl-adopt)) (define-public sbcl-clingon - (let ((commit "ff4fda1768551fecdf1c527a3097ae99ba5f40b5") - (revision "1")) + (let ((commit "379fc41e7b3977661f1454cf35acdbfae046d40d") + (revision "0")) (package (name "sbcl-clingon") - (version (git-version "0.4.0" revision commit)) + (version (git-version "0.5.0" revision commit)) (source (origin (method git-fetch) @@ -1018,7 +1018,7 @@ (define-public sbcl-clingon (commit commit))) (file-name (git-file-name "cl-clingon" version)) (sha256 - (base32 "1b5ybq2x8bwsr541cznwv43lf9j5gz1ij52xj181kg32wb3x0y3n")))) + (base32 "11p9lplx0fc5ghx601i150vrd46zdbvw0hfrbrrrdqplxaqpywq5")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-rove)) @@ -1510,8 +1510,8 @@ (define-public ecl-cl-ppcre (sbcl-package->ecl-package sbcl-cl-ppcre)) (define-public sbcl-one-more-re-nightmare - (let ((commit "09c33feed35797512bf123ccca053cf8ba42bfbd") - (revision "0")) + (let ((commit "5b0b02e59f90964baf5737abd13300fa82f27667") + (revision "1")) (package (name "sbcl-one-more-re-nightmare") (version (git-version "0.0.0" revision commit)) @@ -1523,7 +1523,7 @@ (define-public sbcl-one-more-re-nightmare (commit commit))) (file-name (git-file-name "cl-one-more-re-nightmare" version)) (sha256 - (base32 "0vc0lxvn3anjb63hr26r1l18aw5nbj80w9ja3a32fip6nbwfsrfv")))) + (base32 "0mwgjgnp8dsf2zn0290px5q89z93zs0v4dhvs3rcir4mpiw8rbsn")))) (build-system asdf-build-system/sbcl) (arguments '(#:asd-test-systems '("one-more-re-nightmare-tests") @@ -3152,8 +3152,8 @@ (define-public ecl-calm (sbcl-package->ecl-package sbcl-calm)) (define-public sbcl-esrap - (let ((commit "4c82a863871e117f0041b9ef37e61c0b62318aa7") - (revision "3")) + (let ((commit "d806138342a6b27327649fd5f36e0fe2e0966867") + (revision "4")) (package (name "sbcl-esrap") (version (git-version "0.18" revision commit)) @@ -3163,9 +3163,9 @@ (define-public sbcl-esrap (uri (git-reference (url "https://github.com/scymtym/esrap") (commit commit))) + (file-name (git-file-name "cl-esrap" version)) (sha256 - (base32 "16nc3rhxd61xabja1h9akqqva0cmz2gxk0bkaqy10h492wx93d81")) - (file-name (git-file-name "cl-esrap" version)))) + (base32 "0gs0mfamldhaihnlk0qxg2q4bl8bamq68dif9js9fkl8apg3iykl")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-fiveam)) @@ -3407,8 +3407,8 @@ (define-public cl-fn (define-public sbcl-nibbles ;; No tagged release since 2018. - (let ((commit "dad25240928d5cf8f7df69c4398244e03570bb35") - (revision "2")) + (let ((commit "a46a67736e07b548cdd7485cb36834f7942313f1") + (revision "3")) (package (name "sbcl-nibbles") (version (git-version "0.14" revision commit)) @@ -3418,9 +3418,9 @@ (define-public sbcl-nibbles (uri (git-reference (url "https://github.com/sharplispers/nibbles/") (commit commit))) + (file-name (git-file-name "cl-nibbles" version)) (sha256 - (base32 "0r6ljlpgjmkf87pmvdwzva8qj15bhznc3ylgcjjqyy4frbx9lygz")) - (file-name (git-file-name "nibbles" version)))) + (base32 "12qjich11hp31dhbvbsixyjbddmr6faaajigrivgbxy9kw6d279j")))) (build-system asdf-build-system/sbcl) (native-inputs ;; Tests only. @@ -7497,8 +7497,8 @@ (define-public ecl-find-port (sbcl-package->ecl-package sbcl-find-port)) (define-public sbcl-numpy-file-format - (let ((commit "e97aef6c592a412fdd1afa9a5f09d0b1ce134510") - (revision "1")) + (let ((commit "e440c7bbc0d86b9abf73acb0fa665b77b82a6c98") + (revision "2")) (package (name "sbcl-numpy-file-format") (version (git-version "0.0.0" revision commit)) @@ -7510,7 +7510,7 @@ (define-public sbcl-numpy-file-format (commit commit))) (file-name (git-file-name "cl-numpy-file-format" version)) (sha256 - (base32 "0j7jjcf6k3anvgpm4nf81g6gbhff44v0v9rai7kwm2bm3abzsjfd")))) + (base32 "1n0nixc44z1cymm20wif0l2100ydv0h69l6i6xz5bmwcb2zc4gqr")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-ieee-floats sbcl-trivial-features)) @@ -8316,8 +8316,8 @@ (define-public ecl-cl-cookie (sbcl-package->ecl-package sbcl-cl-cookie)) (define-public sbcl-dexador - (let ((commit "74a233edb0ebf2b8c696fb8db984ac568fbcc4e5") - (revision "1")) + (let ((commit "051cbb784ea3015cef9731eb5a624f3122de84b5") + (revision "2")) (package (name "sbcl-dexador") (build-system asdf-build-system/sbcl) @@ -8331,7 +8331,7 @@ (define-public sbcl-dexador (commit commit))) (file-name (git-file-name "cl-dexador" version)) (sha256 - (base32 "14cbykd9j8klm8sz3siq5zk78a0ljd6rdwfq12fi4h1ih50apyfi")))) + (base32 "1sggpi43la8dai102fmkzysh7760hvk6q68f0pkbb9187vz8nd3y")))) (inputs (list sbcl-alexandria sbcl-babel @@ -8342,22 +8342,19 @@ (define-public sbcl-dexador sbcl-cl-base64 sbcl-cl-cookie sbcl-cl-ppcre - sbcl-cl-reexport sbcl-fast-http sbcl-fast-io sbcl-quri + sbcl-trivial-garbage sbcl-trivial-gray-streams sbcl-trivial-mimes sbcl-usocket)) ;; These native-inputs are for tests only, which are disabled. ;; Leave them commented since they add a lot to the closure size. ;; (native-inputs - ;; (list sbcl-cl-ppcre - ;; sbcl-clack + ;; (list sbcl-clack ;; sbcl-lack - ;; sbcl-local-time - ;; sbcl-prove - ;; sbcl-trivial-features)) + ;; sbcl-rove)) (arguments ;; TODO: Circular dependency: tests depend on clack-test which depends on dexador. `(#:tests? #f @@ -13990,8 +13987,8 @@ (define-public ecl-moptilities '(#:tests? #f))))) (define-public sbcl-osicat - (let ((commit "a45eb3b5826e9175f7c94ba97a00d6b4932f3163") - (revision "3")) + (let ((commit "982327905b8980ff3173344ca87282e046565732") + (revision "4")) (package (name "sbcl-osicat") (version (git-version "0.7.0" revision commit)) @@ -14004,7 +14001,7 @@ (define-public sbcl-osicat (commit commit))) (file-name (git-file-name "cl-osicat" version)) (sha256 - (base32 "1ilag0b0xn97acc0m1q93vwp2y3md9a586858zfx04d8wpbvk8sz")) + (base32 "10q1dfkhrvp5ia860q10y4wdm11fmxf7xv8zl4viz2np9xzf5v22")) (snippet '(begin ;; The useless release.sh drags `bash' into the closure. @@ -17455,19 +17452,20 @@ (define-public cl-flamegraph (sbcl-package->cl-source-package sbcl-flamegraph)) (define-public sbcl-trivial-benchmark - (let ((commit "42d76733dd2e873471c6f1e27d39113293f7dd5c")) + (let ((commit "1fbc8d15f09ed8aa426bc73956b8b7c9b2668802") + (revision "2")) (package (name "sbcl-trivial-benchmark") - (version (git-version "2.0.0" "1" commit)) + (version (git-version "2.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Shinmera/trivial-benchmark/") (commit commit))) - (file-name (git-file-name name version)) + (file-name (git-file-name "cl-trivial-benchmark" version)) (sha256 - (base32 "0fbzqbpm2ixz85555krl36kbbbjyn699vdj6k383khi3g9y629fa")))) + (base32 "1p48wgpady0n8frdcgp7sbg93b0fbvpx1qk5valmanhwr9j3xh88")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-alexandria)) @@ -17952,47 +17950,50 @@ (define-public cl-shlex (sbcl-package->cl-source-package sbcl-shlex)) (define-public sbcl-cmd - (let ((commit "dda16c251992d2711dd98a073c436e73355cdb15")) + (let ((commit "0164d574ba236e2001ee1d9dba3f4774c7512a8c") + (revision "8")) (package (name "sbcl-cmd") - (version (git-version "0.0.1" "7" commit)) + (version (git-version "0.0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/ruricolist/cmd/") (commit commit))) - (file-name (git-file-name name version)) + (file-name (git-file-name "cl-cmd" version)) (sha256 - (base32 "1m72vir64h21y3z1dmdywr0r3dl9lwawgd5p9g0cl3bgmz2wjgqr")))) + (base32 "03wbckzmz6pqdlz7pyar6nfg4vs4bl0b2np7n3kk3qhjbrdakc4m")))) (build-system asdf-build-system/sbcl) - (inputs - `(("alexandria" ,sbcl-alexandria) - ("coreutils" ,coreutils) - ("procps" ,procps) - ("serapeum" ,sbcl-serapeum) - ("shlex" ,sbcl-shlex) - ("trivia" ,sbcl-trivia))) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-paths - (lambda* (#:key inputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref inputs "coreutils") "/bin")) - (ps-bin (string-append (assoc-ref inputs "procps") "/bin"))) - (substitute* "cmd.lisp" - (("\\(def \\+env\\+ \"env\"\\)") - (format #f "(def +env+ \"~a/env\")" bin)) - (("\\(def \\+kill\\+ \"kill\"\\)") - (format #f "(def +kill+ \"~a/kill\")" bin)) - (("\\(def \\+ps\\+ \"ps\"\\)") - (format #f "(def +ps+ \"~a/ps\")" ps-bin)) - (("\\(def \\+pwd\\+ \"pwd\"\\)") - (format #f "(def +pwd+ \"~a/pwd\")" bin)) - (("\\(def \\+sh\\+ \"/bin/sh\"\\)") - (format #f "(def +sh+ \"~a\")" (which "sh"))) - (("\\(def \\+tr\\+ \"tr\"\\)") - (format #f "(def +tr+ \"~a/tr\")" bin))))))))) + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref inputs "coreutils") + "/bin")) + (ps-bin (string-append (assoc-ref inputs "procps") + "/bin"))) + (substitute* "cmd.lisp" + (("\\(def \\+env\\+ \"env\"\\)") + (format #f "(def +env+ \"~a/env\")" bin)) + (("\\(def \\+kill\\+ \"kill\"\\)") + (format #f "(def +kill+ \"~a/kill\")" bin)) + (("\\(def \\+ps\\+ \"ps\"\\)") + (format #f "(def +ps+ \"~a/ps\")" ps-bin)) + (("\\(def \\+pwd\\+ \"pwd\"\\)") + (format #f "(def +pwd+ \"~a/pwd\")" bin)) + (("\\(def \\+sh\\+ \"/bin/sh\"\\)") + (format #f "(def +sh+ \"~a\")" (which "sh"))) + (("\\(def \\+tr\\+ \"tr\"\\)") + (format #f "(def +tr+ \"~a/tr\")" bin))))))))) + (inputs + (list coreutils + procps + sbcl-alexandria + sbcl-serapeum + sbcl-shlex + sbcl-trivia)) (home-page "https://github.com/ruricolist/cmd") (synopsis "Conveniently run external programs from Common Lisp") (description @@ -18195,33 +18196,35 @@ (define-public cl-concrete-syntax-tree (sbcl-package->cl-source-package sbcl-concrete-syntax-tree)) (define-public sbcl-eclector - (package - (name "sbcl-eclector") - (version "0.9.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/s-expressionists/Eclector") - (commit version))) - (file-name (git-file-name "cl-eclector" version)) - (sha256 - (base32 "10whwpz08fkdcz59sz1b6rn5r1pdns5wnsb1g26gppiv3rrg3cvh")))) - (build-system asdf-build-system/sbcl) - (native-inputs - (list sbcl-fiveam)) - (inputs - (list sbcl-acclimation - sbcl-alexandria - sbcl-closer-mop - sbcl-concrete-syntax-tree)) - (arguments - '(#:asd-systems '("eclector" - "eclector-concrete-syntax-tree"))) - (home-page "https://s-expressionists.github.io/Eclector/") - (synopsis "Highly customizable, portable Common Lisp reader") - (description - "Eclector is a portable Common Lisp reader that is highly customizable, + (let ((commit "d499b09142c7e39b4ef52e821fa767d5a8d606a0") + (revision "0")) + (package + (name "sbcl-eclector") + (version (git-version "0.9.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/s-expressionists/Eclector") + (commit commit))) + (file-name (git-file-name "cl-eclector" version)) + (sha256 + (base32 "1sg8wmdpm8pcjwk394way5vs2ya3r995lddmi51q9zfn9hmzb7gn")))) + (build-system asdf-build-system/sbcl) + (native-inputs + (list sbcl-fiveam)) + (inputs + (list sbcl-acclimation + sbcl-alexandria + sbcl-closer-mop + sbcl-concrete-syntax-tree)) + (arguments + '(#:asd-systems '("eclector" + "eclector-concrete-syntax-tree"))) + (home-page "https://s-expressionists.github.io/Eclector/") + (synopsis "Highly customizable, portable Common Lisp reader") + (description + "Eclector is a portable Common Lisp reader that is highly customizable, can recover from errors and can return concrete syntax trees. In contrast to many other reader implementations, eclector can recover from @@ -18230,7 +18233,7 @@ (define-public sbcl-eclector It can also produce instances of the concrete syntax tree classes provided by the concrete syntax tree library.") - (license license:bsd-2))) + (license license:bsd-2)))) (define-public ecl-eclector (sbcl-package->ecl-package sbcl-eclector)) @@ -19193,8 +19196,8 @@ (define-public cl-percent-encoding (sbcl-package->cl-source-package sbcl-percent-encoding)) (define-public sbcl-machine-state - (let ((commit "afa7392bc5dcb689cd170bcca765fb6ce6e4efc5") - (revision "1")) + (let ((commit "3d258eea63942e7d2fd7212f1ad8bbcf505634a2") + (revision "2")) (package (name "sbcl-machine-state") (version (git-version "1.0.0" revision commit)) @@ -19204,9 +19207,9 @@ (define-public sbcl-machine-state (uri (git-reference (url "https://github.com/Shinmera/machine-state") (commit commit))) - (file-name (git-file-name "machine-state" version)) + (file-name (git-file-name "cl-machine-state" version)) (sha256 - (base32 "1b897wj06cnalzf5nl6rif1skpa79rzc9a562x1bdhvanhsp7hwa")))) + (base32 "1fjf2v8agx75qnna1n8fn54lvb01w1rk1vddi3p45a2xw1kwhzml")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-bordeaux-threads @@ -19216,7 +19219,7 @@ (define-public sbcl-machine-state (arguments '(#:tests? #f ; No tests. #:asd-systems '("machine-state" "machine-state/opengl"))) - (home-page "https://notabug.org/cage/cl-mount-info.git") + (home-page "https://shinmera.github.io/machine-state/") (synopsis "Retrieve machine state information about CPU time, memory usage and more") (description "This library implements various functions to access status information @@ -19868,8 +19871,8 @@ (define-public cl-abstract-classes (sbcl-package->cl-source-package sbcl-abstract-classes)) (define-public sbcl-coalton - (let ((commit "ba758062bdc7c316438198601f43900c51df25d8") - (revision "3")) + (let ((commit "939342495f55991812c2c2767322c5e51e755216") + (revision "4")) (package (name "sbcl-coalton") (version (git-version "0.0.1" revision commit)) @@ -19881,16 +19884,17 @@ (define-public sbcl-coalton (commit commit))) (file-name (git-file-name "cl-coalton" version)) (sha256 - (base32 "08sxfla1gyf9pczylaq1cn2j1nr2gzc9w0pk6aarsa4q2770zhf7")))) + (base32 "08qzj3v4fvn9h87whyqg650rpap8lva7jr94d1akv6m2z62l5q68")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-fiasco)) (inputs (list sbcl-alexandria + sbcl-concrete-syntax-tree + sbcl-eclector sbcl-float-features sbcl-fset - sbcl-json-streams - sbcl-split-sequence + sbcl-named-readtables sbcl-trivial-garbage)) (home-page "https://coalton-lang.github.io") (synopsis "Dialect of ML in Common Lisp") @@ -20561,6 +20565,118 @@ (define-public sbcl-3d-transforms (define-public cl-3d-transforms (sbcl-package->cl-source-package sbcl-3d-transforms)) +(define-public sbcl-type-templates + (let ((commit "5b389ebcff61b81585a64d0b899b69fa12aa5f96") + (revision "0")) + (package + (name "sbcl-type-templates") + (version (git-version "4.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shinmera/type-templates") + (commit commit))) + (file-name (git-file-name "cl-type-templates" version)) + (sha256 + (base32 "1zmz3bmwg8ncqbnjwimn8n7q9ik9arnhd5ijd22ap1nwhbnmk1rj")))) + (build-system asdf-build-system/sbcl) + (arguments + ;; No tests + (list #:tests? #f)) + (inputs + (list sbcl-alexandria + sbcl-documentation-utils + sbcl-form-fiddle)) + (home-page "https://shinmera.github.io/type-templates/") + (synopsis "Library for defining and expanding templated functions") + (description + "The Type-Templates library allows you to define types and “template +functions” that can be expanded into various type-specialized versions to +eliminate runtime dispatch overhead. It was specifically designed to +implement low-level numerical data types and functionality.") + (license license:zlib)))) + +(define-public cl-type-templates + (sbcl-package->cl-source-package sbcl-type-templates)) + +(define-public ecl-type-templates + (sbcl-package->ecl-package sbcl-type-templates)) + +(define-public sbcl-3d-math + (let ((commit "3831b1706d225def95a7301ef48b393b563f0114") + (revision "0")) + (package + (name "sbcl-3d-math") + (version (git-version "1.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shinmera/3d-math") + (commit commit))) + (file-name (git-file-name "cl-3d-math" version)) + (sha256 + (base32 "052vzx5j7bag9dxvl0j0wrm244js1djldyn31rwxgkq7965rmi5r")))) + (build-system asdf-build-system/sbcl) + (native-inputs + (list sbcl-parachute)) + (inputs + (list sbcl-documentation-utils + sbcl-type-templates)) + (home-page "https://shinmera.github.io/3d-math/") + (synopsis "Linear algebra for 2D and 3D computations") + (description + "The @code{3d-math} library implements types, operators, and algorithms +commonly used in math for 2D and 3D graphics. It supersedes and combines the +prior libraries @code{3d-vectors}, @code{3d-matrices}, @code{3d-quaternions}, +and @code{3d-transforms}. The new API is largely but not entirely backwards +compatible, and adds new functionality.") + (license license:zlib)))) + +(define-public cl-3d-math + (sbcl-package->cl-source-package sbcl-3d-math)) + +(define-public ecl-3d-math + (sbcl-package->ecl-package sbcl-3d-math)) + +(define-public sbcl-3d-spaces + (let ((commit "a93f4915affcf65617366297ad8bd2ec77bae702") + (revision "0")) + (package + (name "sbcl-3d-spaces") + (version (git-version "1.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shirakumo/3d-spaces") + (commit commit))) + (file-name (git-file-name "cl-3d-spaces" version)) + (sha256 + (base32 "1m5cg5zy1731dcgkm1p4m53z1zsp387xligxh32pdrnrhc2lzhmf")))) + (build-system asdf-build-system/sbcl) + (native-inputs + (list sbcl-parachute)) + (inputs + (list sbcl-3d-math + sbcl-documentation-utils + sbcl-for + sbcl-trivial-extensible-sequences)) + (home-page "https://shirakumo.github.io/3d-spaces/") + (synopsis "Implementations of various spatial query structures") + (description + "The 3D-Spaces library implements a number of spatial query data +structures; structures that can answer spatial range queries for optimized +lookup, particularly suited for games.") + (license license:zlib)))) + +(define-public cl-3d-spaces + (sbcl-package->cl-source-package sbcl-3d-spaces)) + +(define-public ecl-3d-spaces + (sbcl-package->ecl-package sbcl-3d-spaces)) + (define-public sbcl-glsl-toolkit (let ((commit "4c4889e75c635772c4df70b11d6f14e7a596da43") (revision "2")) @@ -20785,25 +20901,25 @@ (define-public cl-typesetting (sbcl-package->cl-source-package sbcl-cl-typesetting)) (define-public sbcl-shasht - (let ((commit "4055327ef8e2aaa8627892ab256350ff3cb15e3c") - (revision "1")) + (let ((commit "27ba0a8842e103f2d575b3c8bbcfc19bd172d9ea") + (revision "2")) (package (name "sbcl-shasht") - (version (git-version "0.1.0" revision commit)) + (version (git-version "0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/yitzchak/shasht") (commit commit))) - (file-name (git-file-name "shasht" version)) + (file-name (git-file-name "cl-shasht" version)) (sha256 - (base32 "01mh20s5gj0lajq45anxji77ykq1wcg72mn1y9a1k8i7q1ainjlr")))) + (base32 "1y7qh8kdhk06243vkmxzdk0y9rax4g8pv28bd01j48ix777mpcdc")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-alexandria sbcl-parachute)) (inputs - (list sbcl-trivial-do)) + (list sbcl-closer-mop sbcl-trivial-do)) (home-page "https://yitzchak.github.io/shasht/") (synopsis "Common Lisp JSON reading and writing library") (description @@ -21493,11 +21609,11 @@ (define-public cl-glfw3 (sbcl-package->cl-source-package sbcl-cl-glfw3)) (define-public sbcl-cl-gltf - (let ((commit "7f9193acec80cad775b61b1c7a125c14a7b35a0c") + (let ((commit "dab186ebf9169926ccfcdec121a157162ad6ed83") (revision "0")) (package (name "sbcl-cl-gltf") - (version (git-version "1.0.0" revision commit)) + (version (git-version "2.0.0" revision commit)) (source (origin (method git-fetch) @@ -21506,7 +21622,7 @@ (define-public sbcl-cl-gltf (commit commit))) (file-name (git-file-name "cl-gltf" version)) (sha256 - (base32 "0ni42242a4x052dqlycwrg5j6piwm87s4wgbn2q0a9s3l9f811vk")))) + (base32 "0ijy0paph7w037a2k14pv8j44mnj4gwhddhxzyqsz3qwl6fpb7yb")))) (build-system asdf-build-system/sbcl) (arguments ;; No tests provided. @@ -21733,8 +21849,8 @@ (define-public cl-binding-arrows (define-public sbcl-atomics ;; No release in years. - (let ((commit "9ee0bdebcd2bb9b242671a75460db13fbf45454c") - (revision "1")) + (let ((commit "b7477024894e322bff9c85e6d81e5e8d1d4eae59") + (revision "2")) (package (name "sbcl-atomics") (version (git-version "1.0.0" revision commit)) @@ -21744,9 +21860,9 @@ (define-public sbcl-atomics (uri (git-reference (url "https://github.com/Shinmera/atomics") (commit commit))) - (file-name (git-file-name "atomics" version)) + (file-name (git-file-name "cl-atomics" version)) (sha256 - (base32 "0mp5jdqq0aamdhgnvw149cqqi3zg7dkkibp25qi4rafw1fnpd40z")))) + (base32 "1ah6fgvfva0axnhj4sp1qy6gjyw41fkhpnv998di0wbp6hls8j39")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-documentation-utils)) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index afd50bf46a..e89e02e1e4 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -999,7 +999,7 @@ (define man-for-txr (define-public txr (package (name "txr") - (version "292") + (version "293") (source (origin (method git-fetch) @@ -1008,7 +1008,7 @@ (define-public txr (commit (string-append "txr-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0lly446pinfrr5d4rgsas8c7kqal2g03bbsbmn0yvhvazb39c15g")))) + (base32 "1b3vhlnw4ymznnlh9d71qhkcdc1p69a53hilckc3rql9y4jsik57")))) (build-system gnu-build-system) (arguments (list #:configure-flags @@ -1485,7 +1485,7 @@ (define-public eisl (define-public s7-bootstrap ;; Need s7-bootstrap to build libc_s7.so (for the REPL) and run tests - (let ((commit "a5b4bb49f8bcd7c33ae2366065fc8c254b734460") ;no releases + (let ((commit "618de30e0f9851515724245e3ebbfa1be4de6906") ;no releases (revision "0")) (hidden-package (package @@ -1499,7 +1499,7 @@ (define-public s7-bootstrap (file-name (git-file-name name version)) (sha256 (base32 - "03n1axdlypzmbgzrhlwfqwa1xiw36hi25j2hwc7vw77mz90cd9f8")))) + "0kh1f49g24ppjpr16v1nc9lr7pvr5nzb82bpw8c6q8ll7pqalqaf")))) (build-system gnu-build-system) (arguments (list #:tests? #f ;no tests in bootstrap diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 14fc2a0a72..b4651c80e5 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015-2023 Ricardo Wurmus +;;; Copyright © 2015-2024 Ricardo Wurmus ;;; Copyright © 2016, 2020-2023 Efraim Flashner ;;; Copyright © 2016, 2017, 2020 Marius Bakke ;;; Copyright © 2016 Hartmut Goebel @@ -1151,6 +1151,11 @@ (define-public onnx (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'relax-requirements + (lambda _ + ;; Does this difference really matter? + (substitute* "requirements.txt" + (("3.20.1") "3.20.2")))) (add-before 'build 'pass-cmake-arguments (lambda* (#:key outputs #:allow-other-keys) ;; Pass options to the CMake-based build process. @@ -1235,7 +1240,13 @@ (define-public onnx-for-torch2 '(begin (delete-file-recursively "third_party") (substitute* "onnx/backend/test/runner/__init__.py" - (("urlretrieve\\(.*") "raise unittest.SkipTest('Skipping download')\n")))))))) + (("urlretrieve\\(.*") "raise unittest.SkipTest('Skipping download')\n")))))) + (arguments + ;; reuse build system tweaks + (substitute-keyword-arguments (package-arguments onnx) + ((#:phases phases) + #~(modify-phases #$phases + (delete 'relax-requirements))))))) (define-public python-onnx ;; This used to be called "python-onnx" because it provided nothing but @@ -1262,7 +1273,12 @@ (define-public onnx-optimizer (modules '((guix build utils))) (snippet '(delete-file-recursively "third_party")))) (build-system python-build-system) - (arguments (package-arguments onnx)) ;reuse build system tweaks + (arguments + ;; reuse build system tweaks + (substitute-keyword-arguments (package-arguments onnx) + ((#:phases phases) + #~(modify-phases #$phases + (delete 'relax-requirements))))) (native-inputs (list cmake python-pytest python-pytest-runner python-nbval python-coverage)) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index bf0df314a7..14c47430e3 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -52,7 +52,7 @@ (define-module (gnu packages minetest) (define-public minetest (package (name "minetest") - (version "5.7.0") + (version "5.8.0") (source (origin (method git-fetch) (uri (git-reference @@ -61,7 +61,7 @@ (define-public minetest (file-name (git-file-name name version)) (sha256 (base32 - "008l44zwwsarwk4hn7wx2nj2m21b1iqsphl7g69rrlxj760zl0pl")) + "1sww17h8z77w38jk19nsqxn8xcj27msq0glbil7pyj4i0ffprjrr")) (modules '((guix build utils))) (snippet '(begin @@ -166,7 +166,7 @@ (define minetest-data (file-name (git-file-name name version)) (sha256 (base32 - "02kbj1h6jsq6k8x4v2ir0njczdz7nyx6dbym85ixxp3mrqxiws61")))) + "1pq4rm15lzwcqv6npgyz6v89hi3zj8zybw25n9i0d27qj786xc4z")))) (build-system copy-build-system) (arguments (list #:install-plan diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index e462f0f01d..e16c6bb964 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -117,7 +117,7 @@ (define-public libmpdclient (define-public mpd (package (name "mpd") - (version "0.23.14") + (version "0.23.15") (source (origin (method url-fetch) (uri @@ -126,7 +126,7 @@ (define-public mpd "/mpd-" version ".tar.xz")) (sha256 (base32 - "1lh9nn4a7ng6i08df7rbs8c4nbgmz883pss9p2gswa6m4rsadfc5")))) + "06k60ych9crifyx6zfc98hdcihixq5nba1c9rwngib6ik8ik40am")))) (build-system meson-build-system) (arguments (list @@ -162,6 +162,7 @@ (define-public mpd boost chromaprint curl + dbus elogind expat ffmpeg diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm index 0c6255c129..591170b508 100644 --- a/gnu/packages/multiprecision.scm +++ b/gnu/packages/multiprecision.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2018 Eric Bavier -;;; Copyright © 2018, 2019, 2021, 2023 Efraim Flashner +;;; Copyright © 2018, 2019, 2021, 2023, 2024 Efraim Flashner ;;; Copyright © 2021 Vinicius Monego ;;; Copyright © 2022 Maxim Cournoyer ;;; Copyright © 2023 Janneke Nieuwenhuizen @@ -71,6 +71,8 @@ (define-public gmp ;; they produce different headers. We need shared. `("--disable-static" "--enable-shared")) + ((target-x32?) + `("ABI=x32")) (else '()))) ;; Remove after core-updates merge. ;; Workaround for gcc-7 transition breakage, -system and cross-build, diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index c3796f7328..cc6f1a1e04 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -4445,36 +4445,32 @@ (define-public yggdrasil "github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasilctl" "github.com/yggdrasil-network/yggdrasil-go/cmd/genkeys")))))))) (propagated-inputs - (let ((p (package-input-rewriting - `((,go-golang-org-x-sys . ,go-golang-org-x-sys-0.8)) - #:deep? #true))) - (cons go-golang-org-x-sys-0.8 - (map p - (list go-golang-zx2c4-com-wireguard - go-golang-org-x-text - go-golang-org-x-net - go-golang-org-x-crypto - go-golang-org-x-tools - go-netns - go-netlink - go-github-com-bits-and-blooms-bitset - go-github-com-bits-and-blooms-bloom - go-github-com-quic-go-quic-go - go-github-com-hjson-hjson-go - go-github-com-olekukonko-tablewriter - go-github-com-mitchellh-mapstructure - go-github-com-mattn-go-runewidth - go-github-com-mattn-go-isatty - go-github-com-mattn-go-colorable - go-github-com-kardianos-minwinsvc - go-github-com-hjson-hjson-go - go-github-com-hashicorp-go-syslog - go-github-com-gologme-log - go-github-com-fatih-color - go-github-com-cheggaaa-pb-v3 - go-github-com-vividcortex-ewma - go-github-com-arceliar-phony - go-github-com-arceliar-ironwood))))) + (list go-golang-zx2c4-com-wireguard + go-golang-org-x-text + go-golang-org-x-net + go-golang-org-x-crypto + go-golang-org-x-tools + go-golang-org-x-sys + go-netns + go-netlink + go-github-com-bits-and-blooms-bitset + go-github-com-bits-and-blooms-bloom + go-github-com-quic-go-quic-go + go-github-com-hjson-hjson-go + go-github-com-olekukonko-tablewriter + go-github-com-mitchellh-mapstructure + go-github-com-mattn-go-runewidth + go-github-com-mattn-go-isatty + go-github-com-mattn-go-colorable + go-github-com-kardianos-minwinsvc + go-github-com-hjson-hjson-go + go-github-com-hashicorp-go-syslog + go-github-com-gologme-log + go-github-com-fatih-color + go-github-com-cheggaaa-pb-v3 + go-github-com-vividcortex-ewma + go-github-com-arceliar-phony + go-github-com-arceliar-ironwood)) (home-page "https://yggdrasil-network.github.io/blog.html") (synopsis "Experiment in scalable routing as an encrypted IPv6 overlay network") diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index e12035e47d..8f59331a02 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -64,14 +64,14 @@ (define-module (gnu packages parallel) (define-public parallel (package (name "parallel") - (version "20231122") + (version "20231222") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/parallel/parallel-" version ".tar.bz2")) (sha256 - (base32 "1qpa3dhmdddw7l5906y8ck8rnri66kqkxcbxhsnj058pmbw9qb42")) + (base32 "1alvva2dlnlq5rbbklzc2a7l84mg550l1xc632zdgfx9dzf6sihr")) (snippet '(begin (use-modules (guix build utils)) diff --git a/gnu/packages/patches/dtc-meson-cell-overflow.patch b/gnu/packages/patches/dtc-meson-cell-overflow.patch new file mode 100644 index 0000000000..1c319312f7 --- /dev/null +++ b/gnu/packages/patches/dtc-meson-cell-overflow.patch @@ -0,0 +1,32 @@ +Taken from upstream: +https://git.kernel.org/pub/scm/utils/dtc/dtc.git/commit/?id=32174a66efa4ad19fc6a2a6422e4af2ae4f055cb + +From 32174a66efa4ad19fc6a2a6422e4af2ae4f055cb Mon Sep 17 00:00:00 2001 +From: David Gibson +Date: Tue, 28 Feb 2023 10:33:58 +1100 +Subject: [PATCH] meson: Fix cell overflow tests when running from meson + +Because meson always builds out-of-tree we need to reference things in the +original source tree via $SRCDIR from run_tests.sh. We forgot a couple of +cases for the cell overflow tests. Fix them. + +Signed-off-by: David Gibson +--- + tests/run_tests.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/run_tests.sh b/tests/run_tests.sh +index 91350ad3..f899d8cb 100755 +--- a/tests/run_tests.sh ++++ b/tests/run_tests.sh +@@ -519,8 +519,8 @@ libfdt_tests () { + check_tests "$SRCDIR/phandle-args-overflow.dts" clocks_property + + ## https://github.com/dgibson/dtc/issues/74 +- run_dtc_test -I dts -O dtb -o cell-overflow-results.test.dtb cell-overflow-results.dts +- run_dtc_test -I dts -O dtb -o cell-overflow.test.dtb cell-overflow.dts ++ run_dtc_test -I dts -O dtb -o cell-overflow-results.test.dtb "$SRCDIR/cell-overflow-results.dts" ++ run_dtc_test -I dts -O dtb -o cell-overflow.test.dtb "$SRCDIR/cell-overflow.dts" + run_test dtbs_equal_ordered cell-overflow.test.dtb cell-overflow-results.test.dtb + + # check full tests diff --git a/gnu/packages/patches/emacs-ess-fix-obsolete-function-alias.patch b/gnu/packages/patches/emacs-ess-fix-obsolete-function-alias.patch deleted file mode 100644 index f7b61391c3..0000000000 --- a/gnu/packages/patches/emacs-ess-fix-obsolete-function-alias.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 9cc5520e1998d03f5dec0fbb1fe71b7cdec38b65 Mon Sep 17 00:00:00 2001 -From: Alex Branham -Date: Wed, 6 Jan 2021 06:41:20 -0500 -Subject: [PATCH] Add required when to obsolete function alias - -Closes #1085 ---- - lisp/ess-r-package.el | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lisp/ess-r-package.el b/lisp/ess-r-package.el -index 260959955..397ce14e6 100644 ---- a/lisp/ess-r-package.el -+++ b/lisp/ess-r-package.el -@@ -577,7 +577,7 @@ package mode. Use this function if state of the buffer such as - (error "As of ESS 16.04, `ess-developer' is deprecated. Use `ess-r-set-evaluation-env' instead")) - - (defalias 'ess-toggle-developer 'ess-developer) --(define-obsolete-function-alias 'ess-r-devtools-check-package-buildwin 'ess-r-devtools-check-with-winbuilder) -+(define-obsolete-function-alias 'ess-r-devtools-check-package-buildwin 'ess-r-devtools-check-with-winbuilder "18.04") - (define-obsolete-function-alias 'ess-r-devtools-ask 'ess-r-devtools-execute-command "18.04") - - (make-obsolete-variable 'ess-developer "Please use `ess-developer-select-package' and `ess-r-set-evaluation-env' instead." "16.04") diff --git a/gnu/packages/patches/python-uqbar-python3.10.patch b/gnu/packages/patches/python-uqbar-python3.10.patch new file mode 100644 index 0000000000..164f0c0c64 --- /dev/null +++ b/gnu/packages/patches/python-uqbar-python3.10.patch @@ -0,0 +1,23 @@ +Since Python 3.10 the output of a CLI program created with argparse +uses "options" instead of "optional arguments". This behaviour breaks +the tests in python-uqbar. + +--- a/tests/test_cli.py ++++ b/tests/test_cli.py +@@ -84,7 +84,7 @@ def test_call_help(): + + speak like a cat + +- optional arguments: ++ options: + -h, --help show this help message and exit + --version show program's version number and exit + --loud be adamant +@@ -101,6 +101,6 @@ def test_help(): + """ + usage: vox-aggregator [-h] [--version] {help,list,birds,mammals} ... + +- optional arguments: ++ options: + -h, --help show this help message and exit + --version show program's version number and exit diff --git a/gnu/packages/plan9.scm b/gnu/packages/plan9.scm index f78c26e215..b2d8d75471 100644 --- a/gnu/packages/plan9.scm +++ b/gnu/packages/plan9.scm @@ -73,8 +73,8 @@ (define-public drawterm (define-public plan9port ;; no releases - (let ((commit "cc4571fec67407652b03d6603ada6580de2194dc") - (revision "0")) + (let ((commit "f8681acb374fa0d5ed1568dbedb00a4abe1ca6f1") + (revision "1")) (package (name "plan9port") (version (git-version "0.1.0" revision commit)) @@ -86,7 +86,7 @@ (define-public plan9port (file-name (git-file-name name version)) (sha256 (base32 - "1g2kzlghcghs560na6xalfsjq5zwp015wv9wk8wxn26981zs759x")) + "01343jvn8kr63i78h8xlgscn6wihdsr44xzh1cylvhigjbqw8n2x")) (modules '((guix build utils))) (snippet #~(for-each delete-file-recursively '("font/luc" ;nonfree @@ -94,73 +94,69 @@ (define-public plan9port (build-system gnu-build-system) (arguments (list #:tests? #f ;no tests - #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'setup - (lambda _ - (delete-file "src/cmd/mk/mk.pdf") - (substitute* "src/cmd/acme/acme.c" - (("/lib/font/bit/lucsans/euro.8.font") - (string-append #$output - "/font/fixed/unicode.5x8.font")) - (("/lib/font/bit/lucm/unicode.9.font") - (string-append #$output - "/font/fixed/unicode.6x9.font"))) - (substitute* (find-files "src") - (("/lib/font/bit") - (string-append #$output "/font"))) - (substitute* "bin/9c" - (("which") - (which "which"))) - (substitute* "src/cmd/fontsrv/freetyperules.sh" - (("'\\$i'/freetype2") - (string-append "-I" - #$freetype - "/include/freetype2"))) - (with-output-to-file "LOCAL.config" - (lambda _ - (format #t "CC9=~a~%" #$(cc-for-target)) - (format #t "FONTSRV=fontsrv~%"))) - (setenv "X11" - #$libx11) - (setenv "PLAN9" - (getcwd)) - (setenv "PLAN9_TARGET" - #$output))) - (delete 'configure) ;no configure - (replace 'build - (lambda _ - (invoke "./INSTALL" "-b"))) - (replace 'install - (lambda _ - (for-each (lambda (x) - (let ((out (string-append #$output - "/" x))) - (mkdir-p out) - (copy-recursively x out))) - ;; TODO: use external sky and dict packages - '("bin" "face" - "font" - "include" - "lib" - "lp" - "mail" - "man" - "ndb" - "plumb" - "tmac" - "troff" - "postscript")) - (install-file "rcmain" #$output))) - (add-after 'install 'wrap-executables - (lambda _ - (for-each (lambda (exe) - (wrap-program exe - `("PLAN9" ":" prefix - (,#$output)))) - (find-files - (string-append #$output "/bin"))))) - ;; Plan9 doesn't compress man pages - (delete 'compress-documentation)))) + #:strip-directories #~'("plan9/bin") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'setup + (lambda _ + (let ((dest (string-append #$output "/plan9"))) + (delete-file "src/cmd/mk/mk.pdf") + (substitute* "src/cmd/acme/acme.c" + (("/lib/font/bit/lucsans/euro.8.font") + (string-append dest + "/font/fixed/unicode.5x8.font")) + (("/lib/font/bit/lucm/unicode.9.font") + (string-append dest + "/font/fixed/unicode.6x9.font"))) + (substitute* (find-files "src") + (("/lib/font/bit") + (string-append dest "/font"))) + (substitute* "bin/9c" + (("which") + (which "which"))) + (substitute* "src/cmd/fontsrv/freetyperules.sh" + (("'\\$i'/freetype2") + (string-append "-I" + #$freetype + "/include/freetype2"))) + (with-output-to-file "LOCAL.config" + (lambda _ + (format #t "CC9=~a~%" #$(cc-for-target)) + (format #t "FONTSRV=fontsrv~%"))) + (setenv "X11" #$libx11) + (setenv "PLAN9" (getcwd)) + (setenv "PLAN9_TARGET" dest)))) + (delete 'configure) ;no configure + (replace 'build + (lambda _ + (invoke "./INSTALL" "-b"))) + (replace 'install + (lambda _ + (invoke "./INSTALL" "-c") + (let ((dest (getenv "PLAN9_TARGET"))) + (for-each (lambda (x) + (let ((out (string-append dest "/" x))) + (mkdir-p out) + (copy-recursively x out))) + ;; TODO: use external sky and dict packages + '("bin" "face" + "font" + "include" + "lib" + "lp" + "mail" + "man" + "ndb" + "plumb" + "tmac" + "troff" + "postscript")) + (install-file "rcmain" dest) + (mkdir-p (string-append #$output "/bin")) + (symlink (string-append dest "/bin/9") + (string-append #$output "/bin/9"))))) + ;; Plan9 doesn't compress man pages + (delete 'compress-documentation)))) (native-inputs (list perl which)) (inputs (list bash-minimal ;for 'wrap-program' fontconfig libx11 libxext libxt)) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 2afce6c667..f8bb943122 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -9236,6 +9236,105 @@ (define-public python-lfdfiles experimental data and metadata at the Laboratory for Fluorescence Dynamics.") (license license:bsd-3))) +(define-public python-av + (package + (name "python-av") + (version "10.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "av" version)) + (sha256 + (base32 "01byqsjclkg65mhr6b4i2r2n4y7af9kdd2c35lxny27121b3vzca")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list + ;; Tests require outbound access to download data samples from + ;; http://fate.ffmpeg.org/fate-suite: + ;; + ;; E urllib.error.URLError: + ;; + "--ignore=tests/test_doctests.py" + "--ignore=tests/test_timeout.py" + "-k" + (string-append + "not test_data" + " and not test_container_probing" + " and not test_stream_probing" + " and not test_transcode" + " and not test_codec_tag" + " and not test_parse" + " and not test_decode_audio_sample_count" + " and not test_decoded_motion_vectors" + " and not test_decoded_motion_vectors_no_flag" + " and not test_decoded_time_base" + " and not test_decoded_video_frame_count" + " and not test_encoding_aac" + " and not test_encoding_dnxhd" + " and not test_encoding_dvvideo" + " and not test_encoding_h264" + " and not test_encoding_mjpeg" + " and not test_encoding_mp2" + " and not test_encoding_mpeg1video" + " and not test_encoding_mpeg4" + " and not test_encoding_pcm_s24le" + " and not test_encoding_png" + " and not test_encoding_tiff" + " and not test_encoding_xvid" + " and not test_reading_from_buffer" + " and not test_reading_from_buffer_no_seek" + " and not test_reading_from_file" + " and not test_reading_from_pipe_readonly" + " and not test_reading_from_write_readonly" + " and not test_writing_to_custom_io_dash" + " and not test_writing_to_custom_io_image2" + " and not test_decode_half" + " and not test_seek_end" + " and not test_seek_float" + " and not test_seek_int64" + " and not test_seek_middle" + " and not test_seek_start" + " and not test_stream_seek" + " and not test_selection" + " and not test_stream_tuples" + " and not test_movtext" + " and not test_vobsub" + " and not test_roundtrip" + " and not test_stream_probing")) + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'build-extensions + (lambda _ + (invoke "python" "setup.py" "build_ext" "--inplace")))))) + (native-inputs + (list pkg-config + python-cython + python-editorconfig + python-numpy + python-pillow + python-pytest)) + (inputs + ;; XXX: Build is failing with FFmpeg 6.0, unresolved upstream. + ;; See https://github.com/PyAV-Org/PyAV/issues/1106 + (list ffmpeg-5)) + (home-page "https://github.com/PyAV-Org/PyAV") + (synopsis "Pythonic bindings for FFmpeg's libraries") + (description + "PyAV is a Python library that allows for direct and precise manipulation +of media through containers, streams, packets, codecs, and frames. It provides +access to the powerful FFmpeg libraries while managing the complex details as +much as possible. +PyAV also facilitates data transformation and integration with +other packages such as Numpy and Pillow. However, working with media is a +challenging task and PyAV cannot abstract it away or make all the best decisions +for you. If you can accomplish your tasks with the ffmpeg command, PyAV may not +be necessary. Nonetheless, PyAV is an essential tool when working with media +that requires its specific capabilities.") + (license license:bsd-3))) + (define-public python-ffmpeg-python ;; The latest release (0.2.0) is old and its test suite crashs on Python 3.10. (let ((commit "df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6") (revision "0")) @@ -30176,6 +30275,45 @@ (define-public python-parallel applications with variable CPU loads).") (license license:bsd-3))) +(define-public python-djitellopy + (package + (name "python-djitellopy") + (version "2.5.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "djitellopy" version)) + (sha256 + (base32 "1kc0syb4hpn7fay0rxpazmczag6jw3pncrrc6v762jj0afiwkrps")))) + (build-system pyproject-build-system) + (arguments + (list + #:tests? #f ;no test suite + #:phases + #~(modify-phases %standard-phases + ;; OpenCV does not ship metadata files for its Python library, which + ;; makes it invisible to the sanity_check script (see: + ;; https://github.com/opencv/opencv/issues/24810). + (delete 'sanity-check)))) + (propagated-inputs + (list opencv ;for opencv-python + python-av + python-numpy + python-pillow)) + (home-page "https://github.com/damiafuentes/DJITelloPy") + (synopsis + "DJI Tello drone video streaming, swarms and state packets library") + (description + "DJI Tello drone Python interface using the official Tello SDK and Tello +EDU SDK. This library has the following features: +@itemize +@item Implementation of all tello commands +@item Retrieve a video stream easily +@item Receive and parse state packets +@item Control a swarm of drones. +@end itemize") + (license license:expat))) + (define-public python-djvulibre (package (name "python-djvulibre") diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm index 9993c0b807..00352dc327 100644 --- a/gnu/packages/shellutils.scm +++ b/gnu/packages/shellutils.scm @@ -331,7 +331,7 @@ (define-public zsh-syntax-highlighting (define-public grml-zsh-config (package (name "grml-zsh-config") - (version "0.19.5") + (version "0.19.6") (source (origin (method url-fetch) (uri (string-append @@ -339,7 +339,7 @@ (define-public grml-zsh-config version ".tar.gz")) (sha256 (base32 - "0ifw490z3v9ljccbmm04adz39fj2dmx8mjgayxqj0a9ln90yfdc4")))) + "1k1m2fbmvw73qy9mc6k2ygjg6zz8h7nn3d9pvj6jbjadnx4pz770")))) (build-system copy-build-system) (arguments (list diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index c2cf68fca8..712b1a9c37 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -6757,11 +6757,9 @@ (define-public java-jdistlib (license license:gpl2+))) (define-public emacs-ess - ;; Latest release is old. This is not the latest commit either due to bug - ;; reported here: . - (let ((commit "24da603184ce39246611dd5b8602e769d7ebd5bf") + (let ((commit "3691ecc642eab5d016887e42699648e0eeeef566") (version "18.10.2") - (revision "0")) + (revision "1")) (package (name "emacs-ess") (version (git-version version revision commit)) @@ -6772,60 +6770,96 @@ (define-public emacs-ess (url "https://github.com/emacs-ess/ESS") (commit commit))) (sha256 - (base32 "0j98lv07nzwzd54d4dgcfz01wy5gj48m0mnirxzh5r45ik2myh1r")) + (base32 "19p8djsbgvahpsx1w8i6h3qvpbdr4isjwm3wi82yk2648ri0qsq1")) (file-name (git-file-name name version)) (modules '((guix build utils))) (snippet - '(begin - ;; Stop ESS from trying to bundle an external julia-mode.el. - (substitute* "lisp/Makefile" - ((" \\$\\(JULIAS)") "") - (("\ttest.*julia-mode.*\\.el") "")) - ;; Only build docs in info format. - (substitute* "doc/Makefile" - (("all : info text") - "all : info") - (("install: install-info install-other-docs") - "install: install-info")) - ;; Stop install-info from trying to update the info directory. - (substitute* "doc/Makefile" - ((".*/dir.*") "")) - ;; Fix r-help-mode test. - (substitute* "test/ess-test-r.el" - (("\\(equal ess-help-object \"plot.default\")") "t")) - ;; Avoid generating ess-autoloads.el twice. - (substitute* "Makefile" - (("all: lisp doc etc autoloads") - "all: lisp doc etc")) - ;; Install to correct directories. - (substitute* "Makefile" - (("mkdir -p \\$\\(ESSDESTDIR)") - "$(MAKE) -C lisp install; $(MAKE) -C doc install") - (("\\$\\(INSTALL) -R \\./\\* \\$\\(ESSDESTDIR)/") - "$(MAKE) -C etc install")) - #t)) - (patches - (search-patches "emacs-ess-fix-obsolete-function-alias.patch")))) + #~(begin + ;; Stop ESS from trying to bundle an external julia-mode.el. + (substitute* "lisp/Makefile" + ((" \\$\\(JULIAS)") "") + (("\ttest.*julia-mode.*\\.el") "")) + ;; Only build docs in info format. + (substitute* "doc/Makefile" + (("all : info text") + "all : info") + (("install: install-info install-other-docs") + "install: install-info")) + ;; Stop install-info from trying to update the info directory. + (substitute* "doc/Makefile" + ((".*/dir.*") "")) + ;; Fix r-help-mode test. + (substitute* "test/ess-test-r.el" + (("\\(equal ess-help-object \"plot.default\")") "t")) + ;; Avoid generating ess-autoloads.el twice. + (substitute* "Makefile" + (("all: lisp doc etc autoloads") + "all: lisp doc etc")) + ;; Install to correct directories. + (substitute* "Makefile" + (("mkdir -p \\$\\(ESSDESTDIR)") + "$(MAKE) -C lisp install; $(MAKE) -C doc install") + (("\\$\\(INSTALL) -R \\./\\* \\$\\(ESSDESTDIR)/") + "$(MAKE) -C etc install")))))) (build-system gnu-build-system) (arguments (let ((base-directory "/share/emacs/site-lisp")) - `(#:make-flags (list (string-append "PREFIX=" %output) - (string-append "ETCDIR=" %output - ,base-directory "/etc") - (string-append "LISPDIR=" %output - ,base-directory) - (string-append "INFODIR=" %output - "/share/info")) - #:phases - (modify-phases %standard-phases - (delete 'configure) - (replace 'check - (lambda _ (invoke "make" "test"))))))) + (list + #:modules '((guix build gnu-build-system) + (guix build utils) + (guix build emacs-utils)) + #:imported-modules `(,@%gnu-build-system-modules + (guix build emacs-build-system) + (guix build emacs-utils)) + #:make-flags + #~(list (string-append "PREFIX=" #$output) + (string-append "ETCDIR=" #$output #$base-directory "/etc") + (string-append "LISPDIR=" #$output #$base-directory) + (string-append "INFODIR=" #$output "/share/info")) + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (add-before 'check 'skip-failing-tests + ;; XXX: Skip 10 failing tests (out of 187). + (lambda _ + (let-syntax + ((disable-tests + (syntax-rules () + ((_ file ()) + (syntax-error "test names list must not be empty")) + ((_ file (test-name ...)) + (substitute* file + (((string-append "^\\(ert-deftest " test-name ".*") + all) + (string-append all "(skip-unless nil)\n")) + ...))))) + (disable-tests (list "test/ess-test-inf.el" + "test/ess-test-r.el") + ("ess--derive-connection-path" + "ess-eval-line-test" + "ess-eval-region-test" + "ess-mock-remote-process" + "ess-r-load-ESSR-github-fetch-no" + "ess-r-load-ESSR-github-fetch-yes" + "ess-set-working-directory-test" + "ess-test-r-startup-directory"))) + ;; The two tests below use a different syntax. + (emacs-batch-edit-file "test/ess-test-r-eval.el" + '(progn + (mapc (lambda (test) + (goto-char (point-min)) + (search-forward (format "etest-deftest %s " test)) + (beginning-of-line) + (kill-sexp)) + '("ess-r-eval-ns-env-roxy-tracebug-test" + "ess-r-eval-sink-freeze-test")) + (basic-save-buffer))))) + (replace 'check + (lambda _ (invoke "make" "test"))))))) (native-inputs (list perl r-roxygen2 texinfo)) (inputs - `(("emacs" ,emacs-minimal) - ("r-minimal" ,r-minimal))) + (list emacs-minimal r-minimal)) (propagated-inputs (list emacs-julia-mode)) (home-page "https://ess.r-project.org/") diff --git a/gnu/packages/swig.scm b/gnu/packages/swig.scm index 3f38cd9f9f..7025d05038 100644 --- a/gnu/packages/swig.scm +++ b/gnu/packages/swig.scm @@ -79,7 +79,7 @@ (define-public swig-next (package (inherit swig) (name "swig") - (version "4.1.1") + (version "4.2.0") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/" name "/" name "/" @@ -87,5 +87,5 @@ (define-public swig-next name "-" version ".tar.gz")) (sha256 (base32 - "16xc767gf5ip40jh698wbdrxrghli5v2c966bkdmrmpwv378mw1a")))) + "15wwh9215rdkflpr85r7zxr2nmrib03jr4bvh5i0f9lyb3bs4716")))) (inputs (list pcre2)))) diff --git a/gnu/packages/tbb.scm b/gnu/packages/tbb.scm index ec630a029f..da3ea74fb6 100644 --- a/gnu/packages/tbb.scm +++ b/gnu/packages/tbb.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016, 2022 Ricardo Wurmus +;;; Copyright © 2015, 2016, 2022, 2024 Ricardo Wurmus ;;; Copyright © 2016 Nikita ;;; Copyright © 2019 Tobias Geerinckx-Rice ;;; Copyright © 2021 Guillaume Le Vaillant @@ -51,31 +51,31 @@ (define-public tbb `(#:configure-flags '(,@(if (or (target-riscv64?) (target-ppc32?)) - '("-DTBB_TEST_LINK_FLAGS=-latomic") - `()) + '("-DTBB_TEST_LINK_FLAGS=-latomic") + `()) ,@(if (or (target-arm32?) (target-ppc32?)) - '("-DTBB_TEST_COMPILE_FLAGS=-DTBB_TEST_LOW_WORKLOAD") - `()) - "-DTBB_STRICT=OFF") ;; Don't fail on warnings + '("-DTBB_TEST_COMPILE_FLAGS=-DTBB_TEST_LOW_WORKLOAD") + `()) + "-DTBB_STRICT=OFF") ;; Don't fail on warnings #:phases (modify-phases %standard-phases ,@(cond - ((target-arm32?) - `((add-after 'unpack 'adjust-test-suite - (lambda _ - (substitute* "test/CMakeLists.txt" - ;; Bus error, skipped on mips. - ((".*test_malloc_pools.*") "")))))) - ((target-ppc32?) - `((add-after 'unpack 'adjust-test-suite - (lambda _ - (substitute* "test/CMakeLists.txt" - ;; These tests hang forever. - ((".*test_function_node.*") "") - ((".*test_multifunction_node.*") "") - ((".*test_async_node.*") "")))))) - (else '()))))) + ((target-arm32?) + `((add-after 'unpack 'adjust-test-suite + (lambda _ + (substitute* "test/CMakeLists.txt" + ;; Bus error, skipped on mips. + ((".*test_malloc_pools.*") "")))))) + ((target-ppc32?) + `((add-after 'unpack 'adjust-test-suite + (lambda _ + (substitute* "test/CMakeLists.txt" + ;; These tests hang forever. + ((".*test_function_node.*") "") + ((".*test_multifunction_node.*") "") + ((".*test_async_node.*") "")))))) + (else '()))))) (home-page "https://www.threadingbuildingblocks.org") (synopsis "C++ library for parallel programming") (description @@ -101,7 +101,9 @@ (define-public python-tbb (lambda _ (substitute* "python/CMakeLists.txt" (("\\$\\{PYTHON_BUILD_WORK_DIR\\}/build") - #$output)) + #$output) + (("install --prefix.*-f" m) + (string-append m " --root=/"))) (substitute* "python/setup.py" (("extra_link_args=tbb_flag,") (string-append "extra_link_args=['-Wl,-rpath=" diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index ea182b1925..494e6b5ef5 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -996,13 +996,13 @@ (define-public python-editdistance (define-public txt2tags (package (name "txt2tags") - (version "3.7") + (version "3.9") (source (origin (method url-fetch) (uri (pypi-uri "txt2tags" version)) (sha256 (base32 - "12hpnvdy7dgarq6ini9jp7dp2zcmvpax04zbl3jb84kd423r75i7")))) + "0ik7gpr3gymgxnj0p86k8768kyxncbncv93zq67sbak3dbdl8hky")))) (build-system python-build-system) (native-inputs (list python-tox)) (home-page "https://txt2tags.org") diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 75e6370c72..806a761d9b 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2013, 2015 Andreas Enge ;;; Copyright © 2015 David Thompson ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Leo Famulari -;;; Copyright © 2016, 2017, 2019, 2021-2023 Efraim Flashner +;;; Copyright © 2016, 2017, 2019, 2021-2024 Efraim Flashner ;;; Copyright © 2016, 2017, 2018 Nikita ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2017 Ricardo Wurmus @@ -15,7 +15,7 @@ ;;; Copyright © 2018 Clément Lassieur ;;; Copyright © 2019 Mathieu Othacehe ;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen -;;; Copyright © 2020, 2021, 2023 Maxim Cournoyer +;;; Copyright © 2020, 2021, 2023, 2024 Maxim Cournoyer ;;; Copyright © 2021 Solene Rapenne ;;; Copyright © 2021 Brice Waegeneire ;;; Copyright © 2021 Maxime Devos @@ -200,7 +200,7 @@ (define-public gnutls (package (name "gnutls") (version "3.7.7") - (replacement gnutls-3.8.1) + (replacement gnutls-3.8.2) (source (origin (method url-fetch) ;; Note: Releases are no longer on ftp.gnu.org since the @@ -305,11 +305,11 @@ (define-public gnutls (define-deprecated/public-alias gnutls-latest gnutls) ;; Replacement for gnutls@3.7.7 to address GNUTLS-SA-2020-07-14 / -;; CVE-2023-0361 -(define-public gnutls-3.8.1 +;; CVE-2023-0361 and GNUTLS-SA-2023-10-23 / CVE-2023-5981. +(define gnutls-3.8.2 (package (inherit gnutls) - (version "3.8.1") + (version "3.8.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnutls/v" @@ -318,20 +318,7 @@ (define-public gnutls-3.8.1 (patches (search-patches "gnutls-skip-trust-store-test.patch")) (sha256 (base32 - "1742jiigwsfhx7nj5rz7dwqr8d46npsph6b68j7siar0mqarx2xs")))) - (arguments - (if (target-hurd?) - ;; Fix reference to undefined 'PATH_MAX'. This is fixed in GnuTLS - ;; commit 3b6ec1e01de4e96d36276dfe34ee9e183f285264. - (substitute-keyword-arguments (package-arguments gnutls) - ((#:phases phases #~%standard-phases) - #~(modify-phases #$phases - (add-after 'unpack 'set-path-max - (lambda _ - (substitute* "lib/pathbuf.h" - (("^#define GNUTLS_PATH_MAX PATH_MAX") - "#define GNUTLS_PATH_MAX 8192\n"))))))) - (package-arguments gnutls))))) + "0xzgmp1ck5ifvdki4jg29r278w2p1m3a0qz38g99v6zsdw0yarg7")))))) (define-public gnutls/dane ;; GnuTLS with build libgnutls-dane, implementing DNS-based @@ -429,6 +416,8 @@ (define (target->openssl-target target) (cond ((target-x86-32? target) "x86") + ((target-x32? target) + "x32") ((target-x86-64? target) "x86_64") ((target-mips64el? target) diff --git a/gnu/packages/valgrind.scm b/gnu/packages/valgrind.scm index 06622548a5..b50dabf9ca 100644 --- a/gnu/packages/valgrind.scm +++ b/gnu/packages/valgrind.scm @@ -39,7 +39,7 @@ (define-module (gnu packages valgrind) (define-public valgrind (package (name "valgrind") - (version "3.20.0") + (version "3.22.0") (source (origin (method url-fetch) (uri (list (string-append "https://sourceware.org/pub/valgrind" @@ -48,7 +48,7 @@ (define-public valgrind "/valgrind-" version ".tar.bz2"))) (sha256 (base32 - "1ipkp6yi202pml2r0qwflysmq86dkqd8iyi1y51d6y70vcqw0dl5")))) + "0k1ddnzxfpbng2sp5r31jjxsmp35g977rx6a8jcp4prcvmddn4f8")))) (build-system gnu-build-system) (outputs '("doc" ;16 MB "out")) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 40d7a00dae..4d5d1a9720 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -1072,115 +1072,118 @@ (define-public git-remote-gcrypt (license license:gpl3+))) (define-public cgit - (package - (name "cgit") - ;; Update the ‘git-source’ input as well. - (version "1.2.3") - (source (origin - (method url-fetch) - (uri (string-append - "https://git.zx2c4.com/cgit/snapshot/cgit-" - version ".tar.xz")) - (sha256 - (base32 - "193d990ym10qlslk0p8mjwp2j6rhqa7fq0y1iff65lvbyv914pss")))) - (build-system gnu-build-system) - (arguments - (list - #:tests? #f ; XXX: fail to build the in-source git. - #:test-target "test" - #:make-flags #~(list (string-append "CC=" #$(cc-for-target)) - "SHELL_PATH=sh") - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'unpack-git - (lambda* (#:key inputs #:allow-other-keys) - ;; Unpack the source of git into the 'git' directory. - (invoke "tar" "--strip-components=1" "-C" "git" "-xf" - (assoc-ref inputs "git-source")))) - (add-after 'unpack 'patch-absolute-file-names - (lambda* (#:key inputs #:allow-other-keys) - (define (quoted-file-name input path) - (string-append "\"" input path "\"")) - (substitute* "ui-snapshot.c" - (("\"gzip\"") - (quoted-file-name (assoc-ref inputs "gzip") "/bin/gzip")) - (("\"bzip2\"") - (quoted-file-name (assoc-ref inputs "bzip2") "/bin/bzip2")) - (("\"xz\"") - (quoted-file-name (assoc-ref inputs "xz") "/bin/xz"))) + (let ((commit "793c420897e18eb3474c751d54cf4e0983f85433") + (rev "1")) + (package + (name "cgit") + ;; Update the ‘git-source’ input as well. + (version (git-version "1.2.3" rev commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.zx2c4.com/cgit") + (commit commit))) + (sha256 + (base32 + "1mhrm14wpqvralf9j33ih5ai6naiq3g2jg2z91gnw9dhh8f9ilwz")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (arguments + (list + #:tests? #f ; XXX: fail to build the in-source git. + #:test-target "test" + #:make-flags #~(list (string-append "CC=" #$(cc-for-target)) + "SHELL_PATH=sh") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'unpack-git + (lambda* (#:key inputs #:allow-other-keys) + ;; Unpack the source of git into the 'git' directory. + (invoke "tar" "--strip-components=1" "-C" "git" "-xf" + (assoc-ref inputs "git-source")))) + (add-after 'unpack 'patch-absolute-file-names + (lambda* (#:key inputs #:allow-other-keys) + (define (quoted-file-name input path) + (string-append "\"" input path "\"")) + (substitute* "ui-snapshot.c" + (("\"gzip\"") + (quoted-file-name (assoc-ref inputs "gzip") "/bin/gzip")) + (("\"bzip2\"") + (quoted-file-name (assoc-ref inputs "bzip2") "/bin/bzip2")) + (("\"xz\"") + (quoted-file-name (assoc-ref inputs "xz") "/bin/xz"))) - (substitute* "filters/about-formatting.sh" - (("$\\(dirname $0\\)") (string-append (assoc-ref outputs "out") - "/lib/cgit/filters")) - (("\\| tr") (string-append "| " (which "tr")))) + (substitute* "filters/about-formatting.sh" + (("$\\(dirname $0\\)") (string-append (assoc-ref outputs "out") + "/lib/cgit/filters")) + (("\\| tr") (string-append "| " (which "tr")))) - (substitute* "filters/html-converters/txt2html" - (("sed") (which "sed"))) + (substitute* "filters/html-converters/txt2html" + (("sed") (which "sed"))) - (substitute* "filters/html-converters/man2html" - (("groff") (which "groff"))) + (substitute* "filters/html-converters/man2html" + (("groff") (which "groff"))) - (substitute* "filters/html-converters/rst2html" - (("rst2html\\.py") (which "rst2html.py"))))) - (delete 'configure) ; no configure script - (add-after 'build 'build-man - (lambda* (#:key make-flags #:allow-other-keys) - (apply invoke "make" "doc-man" make-flags))) - (replace 'install - (lambda* (#:key make-flags outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (apply invoke - "make" "install" "install-man" - (string-append "prefix=" out) - (string-append "CGIT_SCRIPT_PATH=" out "/share/cgit") - make-flags) - ;; Move the platform-dependent 'cgit.cgi' into lib to get it - ;; stripped. - (rename-file (string-append out "/share/cgit/cgit.cgi") - (string-append out "/lib/cgit/cgit.cgi"))))) - (add-after 'install 'wrap-python-scripts - (lambda* (#:key outputs #:allow-other-keys) - (for-each - (lambda (file) - (wrap-program (string-append (assoc-ref outputs "out") - "/lib/cgit/filters/" file) - `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))))) - '("syntax-highlighting.py" - "html-converters/md2html"))))))) - (native-inputs - ;; For building manpage. - (list asciidoc)) - (inputs - `(;; Building cgit requires a Git source tree. - ("git-source" - ,(origin - (method url-fetch) - ;; cgit is tightly bound to git. Use GIT_VER from the Makefile, - ;; which may not match the current (package-version git). - (uri "mirror://kernel.org/software/scm/git/git-2.25.4.tar.xz") - (sha256 - (base32 "11am6s46wmn1yll5614smjhzlghbqq6gysgcs64igjr9y5wzpdxq")))) - ("bash-minimal" ,bash-minimal) - ("openssl" ,openssl) - ("python" ,python) - ("python-docutils" ,python-docutils) - ("python-markdown" ,python-markdown) - ("python-pygments" ,python-pygments) - ("zlib" ,zlib) - ;; bzip2, groff, gzip and xz are inputs (not native inputs) - ;; since they are actually substituted into cgit source and - ;; referenced by the built package output. - ("bzip2" ,bzip2) - ("groff" ,groff) - ("gzip" ,gzip) - ("xz" ,xz))) - (home-page "https://git.zx2c4.com/cgit/") - (synopsis "Web frontend for git repositories") - (description - "CGit is an attempt to create a fast web interface for the Git SCM, using + (substitute* "filters/html-converters/rst2html" + (("rst2html\\.py") (which "rst2html.py"))))) + (delete 'configure) ; no configure script + (add-after 'build 'build-man + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "doc-man" make-flags))) + (replace 'install + (lambda* (#:key make-flags outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (apply invoke + "make" "install" "install-man" + (string-append "prefix=" out) + (string-append "CGIT_SCRIPT_PATH=" out "/share/cgit") + make-flags) + ;; Move the platform-dependent 'cgit.cgi' into lib to get it + ;; stripped. + (rename-file (string-append out "/share/cgit/cgit.cgi") + (string-append out "/lib/cgit/cgit.cgi"))))) + (add-after 'install 'wrap-python-scripts + (lambda* (#:key outputs #:allow-other-keys) + (for-each + (lambda (file) + (wrap-program (string-append (assoc-ref outputs "out") + "/lib/cgit/filters/" file) + `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))))) + '("syntax-highlighting.py" + "html-converters/md2html"))))))) + (native-inputs + ;; For building manpage. + (list asciidoc)) + (inputs + `( ;; Building cgit requires a Git source tree. + ("git-source" + ,(origin + (method url-fetch) + ;; cgit is tightly bound to git. Use GIT_VER from the Makefile, + ;; which may not match the current (package-version git). + (uri "mirror://kernel.org/software/scm/git/git-2.43.0.tar.xz") + (sha256 + (base32 "1v3nkfm3gw8wr7595qy86qla8xyjvi85fmly4lfph4frfcz60ijl")))) + ("bash-minimal" ,bash-minimal) + ("openssl" ,openssl) + ("python" ,python) + ("python-docutils" ,python-docutils) + ("python-markdown" ,python-markdown) + ("python-pygments" ,python-pygments) + ("zlib" ,zlib) + ;; bzip2, groff, gzip and xz are inputs (not native inputs) + ;; since they are actually substituted into cgit source and + ;; referenced by the built package output. + ("bzip2" ,bzip2) + ("groff" ,groff) + ("gzip" ,gzip) + ("xz" ,xz))) + (home-page "https://git.zx2c4.com/cgit/") + (synopsis "Web frontend for git repositories") + (description + "CGit is an attempt to create a fast web interface for the Git SCM, using a built-in cache to decrease server I/O pressure.") - (license license:gpl2))) + (license license:gpl2)))) (define-public cgit-pink (package diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 6da4897a57..4181013b0d 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1047,14 +1047,14 @@ (define-public libx264 (define-public mkvtoolnix (package (name "mkvtoolnix") - (version "52.0.0") + (version "80.0") (source (origin (method url-fetch) (uri (string-append "https://mkvtoolnix.download/sources/" "mkvtoolnix-" version ".tar.xz")) (sha256 - (base32 "15y7ahlifsclnkl70wn5w34dil8nwcwcjnw3k2ydqc6dz4vb0j5s")) + (base32 "1x9k9pmw7mzm2amvm251a45dlj9p9iqfank5p4w2fizxkapws25v")) (modules '((guix build utils))) (snippet '(begin ;; Delete bundled libraries. @@ -1070,6 +1070,7 @@ (define-public mkvtoolnix (outputs '("out" "gui")) ; "mkvtoolnix-gui" brings the closure size from ~300 MB to 1.5+ GB. (inputs (list boost + gmp bzip2 cmark libebml @@ -1083,86 +1084,96 @@ (define-public mkvtoolnix lzo pcre2 pugixml - qtbase-5 - qtmultimedia-5 + qtbase + qtmultimedia + qtsvg utfcpp zlib)) (native-inputs - `(("docbook-xsl" ,docbook-xsl) - ("gettext" ,gettext-minimal) - ("googletest" ,googletest) - ("libxslt" ,libxslt) - ("nlohmann-json" ,nlohmann-json) - ("perl" ,perl) - ("pkg-config" ,pkg-config) - ("po4a" ,po4a) - ("qttools-5" ,qttools-5) - ("ruby" ,ruby-2.7))) + (list docbook-xsl + gettext-minimal + googletest + libxslt + nlohmann-json + perl + pkg-config + po4a + qttools + ruby-3.2)) (arguments - `(#:configure-flags - (list (string-append "--with-boost=" - (assoc-ref %build-inputs "boost")) - (string-append "--with-docbook-xsl-root=" - (assoc-ref %build-inputs "docbook-xsl") - "/xml/xsl/docbook-xsl-" - ,(package-version docbook-xsl)) - "--enable-update-check=no" - "--enable-precompiled-headers=no") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-utfcpp-include - (lambda _ - (substitute* "src/common/strings/utf8.cpp" - (("") - "")))) - (add-after 'unpack 'patch-relative-file-names - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* "src/mkvtoolnix-gui/util/settings.cpp" - (("mkvmerge" match) - (string-append out "/bin/" match))) - #t))) - (add-before 'configure 'add-googletest - (lambda* (#:key inputs #:allow-other-keys) - (symlink (search-input-directory inputs "/include/gtest") - "lib/gtest"))) - (replace 'build - (lambda _ - (let ((-j (list "-j" (number->string (parallel-job-count))))) - (apply invoke "rake" -j)))) - (replace 'check - (lambda _ - (invoke "rake" "tests/unit"))) - (replace 'install - (lambda _ - (invoke "rake" "install"))) - (add-after 'install 'post-install - (lambda* (#:key outputs #:allow-other-keys) - ;; Move the Qt interface to "gui". - (let* ((out (assoc-ref outputs "out")) - (gui (assoc-ref outputs "gui")) - (strip-store-dir (lambda (path) - (substring path (string-prefix-length out path))))) - (for-each - (lambda (file) - (mkdir-p (string-append gui (dirname file))) - (rename-file (string-append out file) - (string-append gui file))) - (append '("/bin/mkvtoolnix-gui" - "/share/applications/org.bunkus.mkvtoolnix-gui.desktop" - "/share/metainfo/org.bunkus.mkvtoolnix-gui.appdata.xml" - "/share/mime/packages/org.bunkus.mkvtoolnix-gui.xml") - (map strip-store-dir (find-files out "\\.ogg$")) - (map strip-store-dir (find-files out "mkvtoolnix-gui\\.png$")) - (map strip-store-dir (find-files out "mkvtoolnix-gui\\.1")))) - (for-each - (lambda (file) - (delete-file-recursively (string-append out file))) - '("/share/applications" - "/share/metainfo" - "/share/mime" - "/share/mkvtoolnix"))) - #t))))) + (list + #:configure-flags + #~(list (string-append "--with-boost=" + #$(this-package-input "boost")) + (string-append "--with-docbook-xsl-root=" + #$(this-package-native-input "docbook-xsl") + "/xml/xsl/docbook-xsl-" + #$(package-version + (this-package-native-input "docbook-xsl"))) + "--enable-update-check=no" + "--enable-precompiled-headers=no") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-utfcpp-include + (lambda _ + (substitute* "src/common/strings/utf8.cpp" + (("") + "")))) + (add-after 'unpack 'patch-relative-file-names + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "src/mkvtoolnix-gui/util/settings.cpp" + (("mkvmerge" match) + (string-append out "/bin/" match))) #t))) + (add-before 'configure 'add-googletest + (lambda* (#:key inputs #:allow-other-keys) + (symlink (search-input-directory inputs + "/include/gtest") + "lib/gtest"))) + (replace 'build + (lambda _ + (let ((-j (list "-j" + (number->string (parallel-job-count))))) + (apply invoke "rake" -j)))) + (replace 'check + (lambda _ + (invoke "rake" "tests/unit"))) + (replace 'install + (lambda _ + (invoke "rake" "install"))) + (add-after 'install 'post-install + (lambda* (#:key outputs #:allow-other-keys) + ;; Move the Qt interface to "gui". + (let* ((out (assoc-ref outputs "out")) + (gui (assoc-ref outputs "gui")) + (strip-store-dir (lambda (path) + (substring path + (string-prefix-length + out path))))) + (for-each (lambda (file) + (mkdir-p (string-append gui + (dirname + file))) + (rename-file (string-append out file) + (string-append gui file))) + (append '("/bin/mkvtoolnix-gui" + "/share/applications/org.bunkus.mkvtoolnix-gui.desktop" + "/share/metainfo/org.bunkus.mkvtoolnix-gui.appdata.xml" + "/share/mime/packages/org.bunkus.mkvtoolnix-gui.xml") + (map strip-store-dir + (find-files out "\\.ogg$")) + (map strip-store-dir + (find-files out + "mkvtoolnix-gui\\.png$")) + (map strip-store-dir + (find-files out + "mkvtoolnix-gui\\.1")))) + (for-each (lambda (file) + (delete-file-recursively + (string-append out file))) + '("/share/applications" + "/share/metainfo" "/share/mime" + "/share/mkvtoolnix")))))))) (home-page "https://mkvtoolnix.download") (synopsis "Tools to create, alter and inspect Matroska files") (description @@ -1505,14 +1516,14 @@ (define-public libdv (define-public libmatroska (package (name "libmatroska") - (version "1.6.3") + (version "1.7.1") (source (origin (method url-fetch) (uri (string-append "https://dl.matroska.org/downloads/" "libmatroska/libmatroska-" version ".tar.xz")) (sha256 - (base32 "06h81sxyz2riic0gpzik6ffcnq32wrqphi8c6k55glcdymiimyfs")))) + (base32 "1cqq61qgv6x3xjzjrw71dya7lbsbrsmi9raqm2k4hgfrp0rk0ajp")))) (build-system cmake-build-system) (inputs (list libebml)) @@ -1657,14 +1668,14 @@ (define-public libva-utils (define-public ffmpeg (package (name "ffmpeg") - (version "6.0") + (version "6.1.1") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "10kh2f4y4isfqj4xpcqqnzk611jh89ywcjyjnq9c2jcv5p18ggjp")))) + "0s7r2qv8gh2a3w568n9xxgcz0q8j5ww1jdsci1hm9f4l1yqg9146")))) (outputs '("out" "debug")) (build-system gnu-build-system) (inputs diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index a87eb20428..bd7589b2a6 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -787,7 +787,7 @@ (define-public i3lock-fancy (define-public icewm (package (name "icewm") - (version "3.4.4") + (version "3.4.5") (source (origin (method url-fetch) (uri (string-append @@ -795,7 +795,7 @@ (define-public icewm version "/icewm-" version ".tar.lz")) (sha256 (base32 - "0cdsb2d45dwcr2dm4jfh0z5g6pkb0ghd4jaybxqiz74mbw5rmjhv")))) + "1wd5k0whh2b43a72223cy19pwc29fhrhd2dnc61fha2y5ndgw6ld")))) (build-system gnu-build-system) (native-inputs (list pkg-config)) (inputs (list fontconfig diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 73889c945e..a44a871ba2 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -216,7 +216,7 @@ (define-public libxfce4ui (define-public catfish (package (name "catfish") - (version "4.16.4") + (version "4.18.0") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/apps/" @@ -224,7 +224,7 @@ (define-public catfish "/catfish-" version ".tar.bz2")) (sha256 (base32 - "1z5m9f4cj473n68rrhhbkq3x5df5k394qp4n27lqqyny6k2h2p3f")))) + "16cbsnki7qragwhbfs3h0ja7xg8xlf59ajxhddqm0jkmrirrpbpx")))) (build-system python-build-system) (arguments '(#:phases @@ -270,7 +270,7 @@ (define-public catfish (define-public elementary-xfce-icon-theme (package (name "elementary-xfce-icon-theme") - (version "0.17") + (version "0.18") (source (origin (method git-fetch) (uri @@ -280,7 +280,7 @@ (define-public elementary-xfce-icon-theme (file-name (git-file-name name version)) (sha256 (base32 - "0jlawp6rg55w5cm4d7836r660i2pnc5gkzpdjsq7w5875i85arzm")))) + "124bdgghkjkpcsfn9a2ad6zqy233pi9jqmv8w8a3ha6q3al2s11s")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no check target diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 6539bfd6ce..60388a22dd 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -1798,9 +1798,9 @@ (define-record-type* (chroot-directories guix-configuration-chroot-directories ;list of file-like/strings (default '())) (max-silent-time guix-configuration-max-silent-time ;integer - (default 0)) + (default 3600)) (timeout guix-configuration-timeout ;integer - (default 0)) + (default (* 3600 24))) (log-compression guix-configuration-log-compression (default 'gzip)) (discover? guix-configuration-discover? diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm index e9d3a631c2..8e122f1aab 100644 --- a/gnu/services/shepherd.scm +++ b/gnu/services/shepherd.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013-2016, 2018-2023 Ludovic Courtès +;;; Copyright © 2013-2016, 2018-2024 Ludovic Courtès ;;; Copyright © 2017 Clément Lassieur ;;; Copyright © 2018 Carlo Zancanaro ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen @@ -371,17 +371,6 @@ (define config (use-modules (srfi srfi-34) (system repl error-handling)) - (define (call-with-file file flags proc) - (let ((port #f)) - (dynamic-wind - (lambda () - (set! port (open file flags))) - (lambda () - (proc port)) - (lambda () - (close-port port) - (set! port #f))))) - ;; There's code run from shepherd that uses 'call-with-input-file' & ;; co.--e.g., the 'urandom-seed' service. Starting from Shepherd ;; 0.9.2, users need to make sure not to leak non-close-on-exec file @@ -389,12 +378,12 @@ (define (call-with-file file flags proc) ;; standard bindings with O_CLOEXEC variants. (set! call-with-input-file (lambda (file proc) - (call-with-file file (logior O_RDONLY O_CLOEXEC) - proc))) + (call-with-port (open file (logior O_RDONLY O_CLOEXEC)) + proc))) (set! call-with-output-file (lambda (file proc) - (call-with-file file (logior O_WRONLY O_CREAT O_CLOEXEC) - proc))) + (call-with-port (open file (logior O_WRONLY O_CREAT O_CLOEXEC)) + proc))) ;; Specify the default environment visible to all the services. ;; Without this statement, all the environment variables of PID 1 diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index f8cf9f25b6..1ee15ea90c 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -981,6 +981,11 @@ (define user-profile (lambda (pw) (string-append (passwd:dir pw) "/.guix-profile")))) + (define home-profile + (and=> (getpw (getuid)) + (lambda (pw) + (string-append (passwd:dir pw) "/.guix-home/profile")))) + ;; If we are able to find the user's profile, we can add it to ;; the search paths set below. We need to do this so that D-Bus ;; can start services installed by the user. This allows @@ -988,9 +993,13 @@ (define user-profile ;; 'evolution') to work even if those services are only available ;; in the user's profile. See . (define profiles - (if user-profile - (list user-profile system-profile) - (list system-profile))) + (append (if home-profile + (list home-profile) + '()) + (if user-profile + (list user-profile) + '()) + (list system-profile))) (setenv "XDG_CONFIG_DIRS" (string-join (map (cut string-append <> "/etc/xdg") profiles) diff --git a/guix/build-system/zig.scm b/guix/build-system/zig.scm index 215178ceb4..1fa4782a2e 100644 --- a/guix/build-system/zig.scm +++ b/guix/build-system/zig.scm @@ -83,6 +83,79 @@ (define builder #:system system #:guile-for-build guile))) +(define* (zig-cross-build name + #:key + source target + build-inputs target-inputs host-inputs + (phases '%standard-phases) + (outputs '("out")) + (search-paths '()) + (native-search-paths '()) + (tests? #t) + (test-target #f) + (zig-build-flags ''()) + (zig-test-flags ''()) + (zig-destdir "out") + (zig-test-destdir "test-out") + (zig-release-type #f) + (system (%current-system)) + (guile #f) + (imported-modules %zig-build-system-modules) + (modules '((guix build zig-build-system) + (guix build utils)))) + "Build SOURCE using Zig, and with INPUTS." + (define builder + (with-imported-modules imported-modules + #~(begin + (use-modules #$@(sexp->gexp modules)) + + (define %build-host-inputs + #+(input-tuples->gexp build-inputs)) + + (define %build-target-inputs + (append #$(input-tuples->gexp host-inputs) + #+(input-tuples->gexp target-inputs))) + + (define %build-inputs + (append %build-host-inputs %build-target-inputs)) + + (define %outputs + #$(outputs->gexp outputs)) + + (zig-build #:name #$name + #:source #+source + #:system #$system + #:phases #$phases + #:outputs %outputs + #:target #$target + #:test-target #$test-target + #:inputs %build-target-inputs + #:native-inputs %build-host-inputs + #:search-paths '#$(map search-path-specification->sexp + search-paths) + #:native-search-paths '#$(map + search-path-specification->sexp + native-search-paths) + #:zig-build-flags #$zig-build-flags + #:zig-test-flags #$zig-test-flags + #:zig-release-type #$zig-release-type + #:zig-destdir #$zig-destdir + #:zig-test-destdir #$zig-test-destdir + #:tests? #$tests? + #:search-paths '#$(sexp->gexp + (map search-path-specification->sexp + search-paths)))))) + + (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) + system #:graft? #f))) + (gexp->derivation name builder + #:system system + #:target target + #:graft? #f + #:substitutable? substitutable? + #:guile-for-build guile))) + + (define* (lower name #:key source inputs native-inputs outputs system target (zig (default-zig)) @@ -93,27 +166,30 @@ (define* (lower name (define private-keywords '(#:target #:zig #:inputs #:native-inputs #:outputs)) - ;; TODO: support cross-compilation - ;; It's as simple as adding some build flags to `zig-build-flags` - ;; -Dtarget=aarch64-linux-musl, for example. - (and (not target) - (bag - (name name) - (system system) - (target target) - (host-inputs `(,@(if source - `(("source" ,source)) - '()) - ,@inputs - - ;; Keep the standard inputs of 'gnu-build-system' - ;; TODO: do we need this? - ,@(standard-packages))) - (build-inputs `(("zig" ,zig) - ,@native-inputs)) - (outputs outputs) - (build zig-build) - (arguments (strip-keyword-arguments private-keywords arguments))))) + (bag + (name name) + (system system) + (target target) + (build-inputs `(,@(if source + `(("source" ,source)) + '()) + ,@`(("zig" ,zig)) + ,@native-inputs + ,@(if target '() inputs) + ,@(if target + ;; Use the standard cross inputs of + ;; 'gnu-build-system'. + (standard-cross-packages target 'host) + '()) + ;; Keep the standard inputs of 'gnu-build-system'. + ,@(standard-packages))) + (host-inputs (if target inputs '())) + (target-inputs (if target + (standard-cross-packages target 'target) + '())) + (outputs outputs) + (build (if target zig-cross-build zig-build)) + (arguments (strip-keyword-arguments private-keywords arguments)))) (define zig-build-system (build-system diff --git a/guix/build/zig-build-system.scm b/guix/build/zig-build-system.scm index d414ebfb17..8352a73324 100644 --- a/guix/build/zig-build-system.scm +++ b/guix/build/zig-build-system.scm @@ -47,6 +47,7 @@ (define* (build #:key zig-build-flags zig-release-type ;; "safe", "fast" or "small" empty for a ;; debug build" + target #:allow-other-keys) "Build a given Zig package." @@ -56,6 +57,9 @@ (define* (build #:key "--prefix-lib-dir" "lib" "--prefix-exe-dir" "bin" "--prefix-include-dir" "include" + ,@(if target + (list (string-append "-Dtarget=" target)) + '()) ,@(if zig-release-type (list (string-append "-Drelease-" zig-release-type)) '()) @@ -65,9 +69,10 @@ (define* (build #:key (define* (check #:key tests? zig-test-flags + target #:allow-other-keys) "Run all the tests" - (when tests? + (when (and tests? (not target)) (let ((old-destdir (getenv "DESTDIR"))) (setenv "DESTDIR" "test-out") ;; Avoid colisions with the build output (let ((call `("zig" "build" "test" diff --git a/guix/platforms/x86.scm b/guix/platforms/x86.scm index 4ed5638c14..0c8fc7296c 100644 --- a/guix/platforms/x86.scm +++ b/guix/platforms/x86.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2022 Mathieu Othacehe +;;; Copyright © 2023, 2024 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,6 +22,7 @@ (define-module (guix platforms x86) #:use-module (guix records) #:export (i686-linux x86_64-linux + x86_64-linux-x32 i686-mingw x86_64-mingw i586-gnu)) @@ -41,6 +43,14 @@ (define x86_64-linux (rust-target "x86_64-unknown-linux-gnu") (glibc-dynamic-linker "/lib/ld-linux-x86-64.so.2"))) +(define x86_64-linux-x32 + (platform + (target "x86_64-linux-gnux32") + (system #f) + (linux-architecture "x86_64") + (rust-target "x86_64-unknown-linux-gnux32") + (glibc-dynamic-linker "/lib/ld-linux-x32.so.2"))) + (define i686-mingw (platform (target "i686-w64-mingw32") diff --git a/guix/ui.scm b/guix/ui.scm index e3bf07212f..962d291d2e 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012-2023 Ludovic Courtès +;;; Copyright © 2012-2024 Ludovic Courtès ;;; Copyright © 2013, 2018 Mark H Weaver ;;; Copyright © 2013 Nikita Karetnikov ;;; Copyright © 2014 Cyril Roelandt @@ -555,7 +555,7 @@ (define* (show-version-and-exit #:optional (command (car (command-line)))) (leave-on-EPIPE (simple-format #t "~a (~a) ~a~%" command %guix-package-name %guix-version) - (format #t "Copyright ~a 2023 ~a" + (format #t "Copyright ~a 2024 ~a" ;; TRANSLATORS: Translate "(C)" to the copyright symbol ;; (C-in-a-circle), if this symbol is available in the user's ;; locale. Otherwise, do not translate "(C)"; leave it as-is. */ diff --git a/guix/utils.scm b/guix/utils.scm index 8e71f97e1c..e4e9d922e7 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2015 David Thompson ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2018, 2020 Marius Bakke -;;; Copyright © 2020, 2021 Efraim Flashner +;;; Copyright © 2020, 2021, 2024 Efraim Flashner ;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer ;;; Copyright © 2021 Simon Tournier ;;; Copyright © 2021 Chris Marusich @@ -97,6 +97,7 @@ (define-module (guix utils) target-x86-32? target-x86-64? target-x86? + target-x32? target-arm32? target-aarch64? target-arm? @@ -634,6 +635,8 @@ (define (gnu-triplet->nix-system triplet) (else triplet)))) (cond ((string-match "^arm[^-]*-([^-]+-)?linux-gnueabihf" triplet) "armhf-linux") + ;; Otherwise it will show up as x86_64-linux... which isn't wrong. + ((string-match "x86_64-linux-gnux32" triplet) "x86_64-linux-gnux32") ((string-match "^([^-]+)-([^-]+-)?linux-gnu.*" triplet) => (lambda (m) @@ -710,6 +713,13 @@ (define* (target-x86-64? #:optional (target (or (%current-target-system) architecture (x86_64)?" (string-prefix? "x86_64-" target)) +(define* (target-x32? #:optional (target (or (%current-target-system) + (%current-system)))) + "Is the architecture of TARGET a variant of Intel/AMD's 64-bit +architecture (x86_64) using 32-bit data types?" + (and (target-x86-64? target) + (string-suffix? "gnux32" target))) + (define* (target-x86? #:optional (target (or (%current-target-system) (%current-system)))) (or (target-x86-32? target) (target-x86-64? target))) diff --git a/nix/libstore/globals.cc b/nix/libstore/globals.cc index d4f9a46a74..89add1f107 100644 --- a/nix/libstore/globals.cc +++ b/nix/libstore/globals.cc @@ -32,8 +32,8 @@ Settings::Settings() buildCores = 1; readOnlyMode = false; thisSystem = SYSTEM; - maxSilentTime = 0; - buildTimeout = 0; + maxSilentTime = 3600; + buildTimeout = 3600 * 24; useBuildHook = true; printBuildTrace = false; multiplexedBuildOutput = false;