me
/
guix
Archived
1
0
Fork 0

Merge branch 'master' into lisp-team

Change-Id: I6c2ce53e782a00861c3adf01c2505099daef7728
master
Guillaume Le Vaillant 2024-01-10 13:27:11 +01:00
commit 749c3e016a
No known key found for this signature in database
GPG Key ID: 6BE8208ADF21FE3F
118 changed files with 5287 additions and 1701 deletions

View File

@ -100,6 +100,8 @@
(;; primary: "D6B0 C593 DA8C 5EDC A44C 7A58 C336 91F7 1188 B004" (;; primary: "D6B0 C593 DA8C 5EDC A44C 7A58 C336 91F7 1188 B004"
"A02C 2D82 0EF4 B25B A6B5 1D90 2AC6 A5EC 1C35 7C59" "A02C 2D82 0EF4 B25B A6B5 1D90 2AC6 A5EC 1C35 7C59"
(name "samplet")) (name "samplet"))
("9847 81DE 689C 21C2 6418 0867 76D7 27BF F62C D2B5"
(name "sharlatan"))
("F494 72F4 7A59 00D5 C235 F212 89F9 6D48 08F3 59C7" ("F494 72F4 7A59 00D5 C235 F212 89F9 6D48 08F3 59C7"
(name "snape")) (name "snape"))
("6580 7361 3BFC C5C7 E2E4 5D45 DC51 8FC8 7F97 16AA" ("6580 7361 3BFC C5C7 E2E4 5D45 DC51 8FC8 7F97 16AA"

View File

@ -90,6 +90,7 @@ Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
Theodoros Foradis <theodoros.for@openmailbox.org> <theodoros@foradis.org> Theodoros Foradis <theodoros.for@openmailbox.org> <theodoros@foradis.org>
Thomas Danckaert <thomas.danckaert@gmail.com> <post@thomasdanckaert.be> Thomas Danckaert <thomas.danckaert@gmail.com> <post@thomasdanckaert.be>
Tobias Geerinckx-Rice <me@tobias.gr> <tobias.geerinckx.rice@gmail.com> Tobias Geerinckx-Rice <me@tobias.gr> <tobias.geerinckx.rice@gmail.com>
Tomas Volf <~@wolfsden.cz> <wolf@wolfsden.cz>
Tomáš Čech <sleep_walker@gnu.org> <sleep_walker@suse.cz> Tomáš Čech <sleep_walker@gnu.org> <sleep_walker@suse.cz>
Vincent Legoll <vincent.legoll@gmail.com> <vincent.legoll@idgrilles.fr> Vincent Legoll <vincent.legoll@gmail.com> <vincent.legoll@idgrilles.fr>
Zheng Junjie <873216071@qq.com> Z572 <873216071@qq.com> Zheng Junjie <873216071@qq.com> Z572 <873216071@qq.com>

View File

@ -3,7 +3,7 @@ exec guile --no-auto-compile -e main -s "$0" "$@"
!# !#
;;;; test-driver.scm - Guile test driver for Automake testsuite harness ;;;; 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 <mthl@gnu.org> ;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@ -274,6 +274,7 @@ cases based on their names."
(exit 0))) (exit 0)))
;;; Local Variables: ;;; Local Variables:
;;; mode: scheme
;;; eval: (add-hook 'write-file-functions 'time-stamp) ;;; eval: (add-hook 'write-file-functions 'time-stamp)
;;; time-stamp-start: "(define script-version \"" ;;; time-stamp-start: "(define script-version \""
;;; time-stamp-format: "%:y-%02m-%02d.%02H" ;;; time-stamp-format: "%:y-%02m-%02d.%02H"

View File

@ -56,7 +56,7 @@ Copyright @copyright{} 2017 Andy Wingo@*
Copyright @copyright{} 2017, 2018, 2019, 2020, 2023 Arun Isaac@* Copyright @copyright{} 2017, 2018, 2019, 2020, 2023 Arun Isaac@*
Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2017 nee@*
Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Rutger Helling@*
Copyright @copyright{} 2018, 2021 Oleg Pykhalov@* Copyright @copyright{} 2018, 2021, 2023 Oleg Pykhalov@*
Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Mike Gerwitz@*
Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@*
Copyright @copyright{} 2018, 2019 Gábor Boskovits@* Copyright @copyright{} 2018, 2019 Gábor Boskovits@*
@ -122,6 +122,7 @@ Copyright @copyright{} 2023 Felix Lechner@*
Copyright @copyright{} 2023 Foundation Devices, Inc.@* Copyright @copyright{} 2023 Foundation Devices, Inc.@*
Copyright @copyright{} 2023 Thomas Ieong@* Copyright @copyright{} 2023 Thomas Ieong@*
Copyright @copyright{} 2023 Saku Laesvuori@* Copyright @copyright{} 2023 Saku Laesvuori@*
Copyright @copyright{} 2023 Graham James Addis@*
Permission is granted to copy, distribute and/or modify this document Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or under the terms of the GNU Free Documentation License, Version 1.3 or
@ -1799,7 +1800,7 @@ Setup}), or simply fail.
When the build or substitution process remains silent for more than When the build or substitution process remains silent for more than
@var{seconds}, terminate it and report a build failure. @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 The value specified here can be overridden by clients (@pxref{Common
Build Options, @option{--max-silent-time}}). Build Options, @option{--max-silent-time}}).
@ -1808,7 +1809,7 @@ Build Options, @option{--max-silent-time}}).
Likewise, when the build or substitution process lasts for more than Likewise, when the build or substitution process lasts for more than
@var{seconds}, terminate it and report a build failure. @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 The value specified here can be overridden by clients (@pxref{Common
Build Options, @option{--timeout}}). Build Options, @option{--timeout}}).
@ -7406,7 +7407,7 @@ execution engines listed above by setting the
@env{GUIX_EXECUTION_ENGINE} environment variable accordingly. @env{GUIX_EXECUTION_ENGINE} environment variable accordingly.
@end quotation @end quotation
@cindex entry point, for Docker images @cindex entry point, for Docker and Singularity images
@item --entry-point=@var{command} @item --entry-point=@var{command}
Use @var{command} as the @dfn{entry point} of the resulting pack, if the pack Use @var{command} as the @dfn{entry point} of the resulting pack, if the pack
format supports it---currently @code{docker} and @code{squashfs} (Singularity) format supports it---currently @code{docker} and @code{squashfs} (Singularity)
@ -7429,6 +7430,41 @@ docker load -i pack.tar.gz
docker run @var{image-id} docker run @var{image-id}
@end example @end example
@cindex entry point arguments, for docker images
@item --entry-point-argument=@var{command}
@itemx -A @var{command}
Use @var{command} as an argument to @dfn{entry point} of the resulting pack.
This option is only valid in conjunction with @code{--entry-point} and can
appear multiple times on the command line.
@example
guix pack -f docker --entry-point=bin/guile --entry-point-argument="--help" guile
@end example
@cindex maximum layers argument, for docker images
@item --max-layers=@code{n}
Specifies the maximum number of Docker image layers allowed when
building an image.
@example
guix pack -f docker --max-layers=100 guile
@end example
This option allows you to limit the number of layers in a Docker image.
Docker images are comprised of multiple layers, and each layer adds to
the overall size and complexity of the image. By setting a maximum
number of layers, you can control the following effects:
@itemize
@item Disk Usage:
Increasing the number of layers can help optimize the disk space
required to store multiple images built with a similar package graph.
@item Pulling:
When transferring images between different nodes or systems, having more
layers can reduce the time required to pull the image.
@end itemize
@item --expression=@var{expr} @item --expression=@var{expr}
@itemx -e @var{expr} @itemx -e @var{expr}
Consider the package @var{expr} evaluates to. Consider the package @var{expr} evaluates to.
@ -14549,6 +14585,13 @@ Additional options include:
Traverse the dependency graph of the given upstream package recursively Traverse the dependency graph of the given upstream package recursively
and generate package expressions for all those packages that are not yet and generate package expressions for all those packages that are not yet
in Guix. in Guix.
@item --recursive-dev-dependencies
If @option{--recursive-dev-dependencies} is specified, also the recursively
imported packages contain their development dependencies, which are recursively
imported as well.
@item --allow-yanked
If no non-yanked version of a crate is available, use the latest yanked
version instead instead of aborting.
@end table @end table
@item elm @item elm
@ -19455,8 +19498,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 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. not need it and where the extra boot time is a problem.
@item @code{max-silent-time} (default: @code{0}) @item @code{max-silent-time} (default: @code{3600})
@itemx @code{timeout} (default: @code{0}) @itemx @code{timeout} (default: @code{(* 3600 24)})
The number of seconds of silence and the number of seconds of activity, 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 respectively, after which a build process times out. A value of zero
disables the timeout. disables the timeout.

View File

@ -18,6 +18,7 @@
;; Copyright © 2021 Andrew Tropin <andrew@trop.in> ;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
;; Copyright © 2021, 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de> ;; Copyright © 2021, 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;; Copyright © 2022 Thiago Jung Bauermann <bauermann@kolabnow.com> ;; Copyright © 2022 Thiago Jung Bauermann <bauermann@kolabnow.com>
;; Copyright © 2024 Oleg Pykhalov <go.wigust@gmail.com>
;; ;;
;; Copying and distribution of this file, with or without modification, are ;; Copying and distribution of this file, with or without modification, are
;; permitted in any medium without royalty provided the copyright notice and ;; permitted in any medium without royalty provided the copyright notice and
@ -26,6 +27,62 @@
(channel-news (channel-news
(version 0) (version 0)
(entry (commit "519e1e3eb88ec532fc83ebb742d9919269b57c87")
(title
(de "Neues Option @samp{--max-layers=N} für den Befehl @command{guix pack}")
(en "New @samp{--max-layers=N} option for the @command{guix pack} command")
(ru "Новая опция @samp{--max-layers=N} для @command{guix pack} команды"))
(body
(de "Sie können jetzt auch mehrschichtige Docker-Abbilder mit dem Befehl
@command{guix pack --format=docker --max-layers=N} erzeugen. Damit bekommen Sie ein
Docker-Abbild, bei dem Store-Pfade auf getrennten Schichten (Layer)
untergebracht sind, die sich mehrere Abbilder teilen können. Das Abbild wird
im Store als gzip-komprimierter Tarball erzeugt. Hier ist ein einfaches
Beispiel, wo ein mehrschichtiges Docker-Abbild für das Paket @code{hello}
angelegt wird:
@example
guix pack --format=docker --max-layers=N --symlink=/usr/bin/hello=bin/hello hello
@end example
@command{guix system image} kann jetzt geschichtete Docker-Abbilder erzeugen,
indem Sie @code{--max-layers=N}.
Siehe @command{info \"(guix.de) Aufruf von guix pack\"} und
@command{info \"(guix.de) Systemabbilder\"} für weitere Informationen.")
(en "Docker layered images can now be produced via the @command{guix
pack --format=docker --max-layers=N} command, providing a Docker image with
many of the store paths being on their own layer to improve sharing between
images. The image is realized into the GNU store as a gzipped tarball. Here
is a simple example that generates a layered Docker image for the @code{hello}
package:
@example
guix pack --format=docker --max-layers=N --symlink=/usr/bin/hello=bin/hello hello
@end example
The @command{guix system image} can now produce layered Docker image by passing
@code{--max-layers=N}.
See @command{info \"(guix) Invoking guix pack\"} and
@command{info \"(guix) System Images\"} for more information.")
(ru "Появилась команда создания многослойных Docker образов с помощью
@command{guix pack --format=docker --max-layers=N}, которая соберет Docker образ с
путями в store расположенными на отдельных слоях, ускоряя таким образом
передачу образов. Образ будет создан в GNU store в качестве gzipped tarball.
Пример создания Docker layered образ с @code{hello} пакетом:
@example
guix pack --format=docker --max-layers=N --symlink=/usr/bin/hello=bin/hello hello
@end example
@command{guix system image} теперь может создавать layered Docker образ путем
указания опции @option{--max-layers=N}.
Смотрите @command{info \"(guix) Invoking guix pack\"} и
@command{info \"(guix) System Images\"} для получения более детальных
сведений.")))
(entry (commit "953c65ffdd43c02c934518fb7a1c68542584b223") (entry (commit "953c65ffdd43c02c934518fb7a1c68542584b223")
(title (title
(en "Declarative offloading on Guix System and childhurds") (en "Declarative offloading on Guix System and childhurds")

View File

@ -310,7 +310,8 @@ asdf-build-system."
(define-team bootstrap (define-team bootstrap
(team 'bootstrap (team 'bootstrap
#:name "Bootstrap" #:name "Bootstrap"
#:scope (list "gnu/packages/mes.scm"))) #:scope (list "gnu/packages/commencement.scm"
"gnu/packages/mes.scm")))
(define-team embedded (define-team embedded
(team 'embedded (team 'embedded
@ -424,6 +425,21 @@ asdf-build-system."
(make-regexp* "^guix/scripts/") (make-regexp* "^guix/scripts/")
(make-regexp* "^guix/store/")))) (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 (define-team games
(team 'games (team 'games
#:name "Games and Toys" #:name "Games and Toys"
@ -556,7 +572,7 @@ GLib/GIO, GTK, GStreamer and Webkit."
(define-member (person "Ludovic Courtès" (define-member (person "Ludovic Courtès"
"ludo@gnu.org") "ludo@gnu.org")
core home bootstrap installer mentors) core home bootstrap core-packages installer mentors)
(define-member (person "Andreas Enge" (define-member (person "Andreas Enge"
"andreas@enge.fr") "andreas@enge.fr")

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021, 2023 Andrew Tropin <andrew@trop.in> ;;; Copyright © 2021, 2023 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2024 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -75,11 +76,8 @@ as shepherd package."
#~(begin #~(begin
(use-modules (srfi srfi-34) (use-modules (srfi srfi-34)
(system repl error-handling)) (system repl error-handling))
(apply
register-services (register-services (map load '#$files))
(map
(lambda (file) (load file))
'#$files))
#$@(if daemonize? #$@(if daemonize?
`((action 'root 'daemonize)) `((action 'root 'daemonize))
@ -90,9 +88,7 @@ as shepherd package."
'#$(append-map shepherd-service-provision '#$(append-map shepherd-service-provision
(filter shepherd-service-auto-start? (filter shepherd-service-auto-start?
services)))) services))))
(if (defined? 'start-in-the-background)
(start-in-the-background services-to-start) (start-in-the-background services-to-start)
(for-each start services-to-start))
(redirect-port (open-input-file "/dev/null") (redirect-port (open-input-file "/dev/null")
(current-input-port))))) (current-input-port)))))

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020, 2022 Mathieu Othacehe <othacehe@gnu.org> ;;; Copyright © 2020, 2022 Mathieu Othacehe <othacehe@gnu.org>
;;; Copyright © 2023 Oleg Pykhalov <go.wigust@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -42,6 +43,7 @@
image-format image-format
image-platform image-platform
image-size image-size
image-max-layers
image-operating-system image-operating-system
image-partition-table-type image-partition-table-type
image-partitions image-partitions
@ -170,6 +172,8 @@ that is not in SET, mentioning FIELD in the error message."
(size image-size ;size in bytes as integer (size image-size ;size in bytes as integer
(default 'guess) (default 'guess)
(sanitize validate-size)) (sanitize validate-size))
(max-layers image-max-layers ;number of layers as integer
(default #false))
(operating-system image-operating-system) ;<operating-system> (operating-system image-operating-system) ;<operating-system>
(partition-table-type image-partition-table-type ; 'mbr or 'gpt (partition-table-type image-partition-table-type ; 'mbr or 'gpt
(default 'mbr) (default 'mbr)

View File

@ -1,5 +1,5 @@
# GNU Guix --- Functional package management for GNU # GNU Guix --- Functional package management for GNU
# Copyright © 2012-2023 Ludovic Courtès <ludo@gnu.org> # Copyright © 2012-2024 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2022, 2023 Andreas Enge <andreas@enge.fr> # Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2022, 2023 Andreas Enge <andreas@enge.fr>
# Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> # Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Mark H Weaver <mhw@netris.org> # Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Mark H Weaver <mhw@netris.org>
@ -62,6 +62,7 @@
# Copyright © 2023 B. Wilson <elaexuotee@wilsonb.com> # Copyright © 2023 B. Wilson <elaexuotee@wilsonb.com>
# Copyright © 2023 gemmaro <gemmaro.dev@gmail.com> # Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
# Copyright © 2023 Herman Rimm <herman@rimm.ee> # Copyright © 2023 Herman Rimm <herman@rimm.ee>
# Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
# #
# This file is part of GNU Guix. # This file is part of GNU Guix.
# #
@ -1092,6 +1093,7 @@ dist_patch_DATA = \
%D%/packages/patches/doxygen-hurd.patch \ %D%/packages/patches/doxygen-hurd.patch \
%D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \ %D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \
%D%/packages/patches/dstat-skip-devices-without-io.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-common-skip-failing-tests.patch \
%D%/packages/patches/dune-grid-add-missing-include-cassert.patch \ %D%/packages/patches/dune-grid-add-missing-include-cassert.patch \
%D%/packages/patches/dune-istl-fix-solver-playground.patch \ %D%/packages/patches/dune-istl-fix-solver-playground.patch \
@ -1111,7 +1113,6 @@ dist_patch_DATA = \
%D%/packages/patches/emacs-deferred-fix-number-of-arguments.patch \ %D%/packages/patches/emacs-deferred-fix-number-of-arguments.patch \
%D%/packages/patches/emacs-elpy-dup-test-name.patch \ %D%/packages/patches/emacs-elpy-dup-test-name.patch \
%D%/packages/patches/emacs-exec-path.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-git-email-missing-parens.patch \
%D%/packages/patches/emacs-fix-scheme-indent-function.patch \ %D%/packages/patches/emacs-fix-scheme-indent-function.patch \
%D%/packages/patches/emacs-json-reformat-fix-tests.patch \ %D%/packages/patches/emacs-json-reformat-fix-tests.patch \
@ -1166,6 +1167,13 @@ dist_patch_DATA = \
%D%/packages/patches/fenics-dolfin-demo-init.patch \ %D%/packages/patches/fenics-dolfin-demo-init.patch \
%D%/packages/patches/fenics-dolfin-boost.patch \ %D%/packages/patches/fenics-dolfin-boost.patch \
%D%/packages/patches/fenics-dolfin-config-slepc.patch \ %D%/packages/patches/fenics-dolfin-config-slepc.patch \
%D%/packages/patches/ffmpeg-jami-change-RTCP-ratio.patch \
%D%/packages/patches/ffmpeg-jami-rtp_ext_abs_send_time.patch \
%D%/packages/patches/ffmpeg-jami-libopusdec-enable-FEC.patch \
%D%/packages/patches/ffmpeg-jami-libopusenc-enable-FEC.patch \
%D%/packages/patches/ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.patch \
%D%/packages/patches/ffmpeg-jami-remove-mjpeg-log.patch \
%D%/packages/patches/ffmpeg-jami-screen-sharing-x11-fix.patch \
%D%/packages/patches/fifengine-boost-compat.patch \ %D%/packages/patches/fifengine-boost-compat.patch \
%D%/packages/patches/fifengine-swig-compat.patch \ %D%/packages/patches/fifengine-swig-compat.patch \
%D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \ %D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \
@ -1384,6 +1392,7 @@ dist_patch_DATA = \
%D%/packages/patches/guile-fibers-fd-finalizer-leak.patch \ %D%/packages/patches/guile-fibers-fd-finalizer-leak.patch \
%D%/packages/patches/guile-fibers-wait-for-io-readiness.patch \ %D%/packages/patches/guile-fibers-wait-for-io-readiness.patch \
%D%/packages/patches/guile-fibers-libevent-32-bit.patch \ %D%/packages/patches/guile-fibers-libevent-32-bit.patch \
%D%/packages/patches/guile-fibers-libevent-timeout.patch \
%D%/packages/patches/guile-fix-invalid-unicode-handling.patch \ %D%/packages/patches/guile-fix-invalid-unicode-handling.patch \
%D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch \ %D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch \
%D%/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch \ %D%/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch \
@ -1458,6 +1467,9 @@ dist_patch_DATA = \
%D%/packages/patches/itk-snap-alt-glibc-compat.patch \ %D%/packages/patches/itk-snap-alt-glibc-compat.patch \
%D%/packages/patches/jami-disable-integration-tests.patch \ %D%/packages/patches/jami-disable-integration-tests.patch \
%D%/packages/patches/jami-libjami-headers-search.patch \ %D%/packages/patches/jami-libjami-headers-search.patch \
%D%/packages/patches/jami-qml-tests-discovery.patch \
%D%/packages/patches/jami-skip-tests-requiring-internet.patch \
%D%/packages/patches/jami-unbundle-dependencies.patch \
%D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \ %D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \
%D%/packages/patches/jamvm-1.5.1-armv7-support.patch \ %D%/packages/patches/jamvm-1.5.1-armv7-support.patch \
%D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \ %D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \
@ -1548,6 +1560,7 @@ dist_patch_DATA = \
%D%/packages/patches/libgnome-encoding.patch \ %D%/packages/patches/libgnome-encoding.patch \
%D%/packages/patches/libgnomeui-utf8.patch \ %D%/packages/patches/libgnomeui-utf8.patch \
%D%/packages/patches/libgrss-CVE-2016-2001.patch \ %D%/packages/patches/libgrss-CVE-2016-2001.patch \
%D%/packages/patches/libjami-ac-config-files.patch \
%D%/packages/patches/libjxr-fix-function-signature.patch \ %D%/packages/patches/libjxr-fix-function-signature.patch \
%D%/packages/patches/libjxr-fix-typos.patch \ %D%/packages/patches/libjxr-fix-typos.patch \
%D%/packages/patches/libofa-ftbfs-1.diff \ %D%/packages/patches/libofa-ftbfs-1.diff \
@ -1776,6 +1789,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-louvain-fix-test.patch \ %D%/packages/patches/python-louvain-fix-test.patch \
%D%/packages/patches/python-random2-getrandbits-test.patch \ %D%/packages/patches/python-random2-getrandbits-test.patch \
%D%/packages/patches/python-poppler-qt5-fix-build.patch \ %D%/packages/patches/python-poppler-qt5-fix-build.patch \
%D%/packages/patches/python-pyreadstat-link-libiconv.patch \
%D%/packages/patches/python-pypdf-annotate-tests-appropriately.patch \ %D%/packages/patches/python-pypdf-annotate-tests-appropriately.patch \
%D%/packages/patches/python-pytorch2-system-libraries.patch \ %D%/packages/patches/python-pytorch2-system-libraries.patch \
%D%/packages/patches/python-sip-include-dirs.patch \ %D%/packages/patches/python-sip-include-dirs.patch \
@ -1783,6 +1797,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-sphinx-prompt-docutils-0.19.patch \ %D%/packages/patches/python-sphinx-prompt-docutils-0.19.patch \
%D%/packages/patches/python-telingo-fix-comparison.patch \ %D%/packages/patches/python-telingo-fix-comparison.patch \
%D%/packages/patches/python-typeguard-python3.10.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/python-wxwidgets-type-errors.patch \
%D%/packages/patches/qtdeclarative-5-disable-qmlcache.patch \ %D%/packages/patches/qtdeclarative-5-disable-qmlcache.patch \
%D%/packages/patches/qtdeclarative-disable-qmlcache.patch \ %D%/packages/patches/qtdeclarative-disable-qmlcache.patch \

View File

@ -373,14 +373,14 @@ interface and is based on GNU Guile.")
(define-public shepherd-0.10 (define-public shepherd-0.10
(package (package
(inherit shepherd-0.9) (inherit shepherd-0.9)
(version "0.10.2") (version "0.10.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/shepherd/shepherd-" (uri (string-append "mirror://gnu/shepherd/shepherd-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0v9ld9gbqdp5ya380fbkdsxa0iqr90gi6yk004ccz3n792nq6wlj")))) "1vxghlxnxajx2iciqmjia49c5hkir8li0gv29kl55frhn2zgxilf"))))
(native-inputs (modify-inputs (package-native-inputs shepherd-0.9) (native-inputs (modify-inputs (package-native-inputs shepherd-0.9)
(replace "guile-fibers" (replace "guile-fibers"
;; Work around ;; Work around

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015-2023 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015-2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2018, 2020, 2021 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016, 2017, 2018, 2020, 2021 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
@ -7324,13 +7324,13 @@ global-scaling and full-quantile normalization.")
(define-public r-edger (define-public r-edger
(package (package
(name "r-edger") (name "r-edger")
(version "4.0.3") (version "4.0.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "edgeR" version)) (uri (bioconductor-uri "edgeR" version))
(sha256 (sha256
(base32 (base32
"0sz46pwa1bsqrff2igswfhhj1fcwzn34zrlawy4fnb58z48kccb0")))) "16cghh83v14jdq5n6xkm3jxj87n6l6zrxjgqdwb2ffgc26vkpb7w"))))
(properties `((upstream-name . "edgeR"))) (properties `((upstream-name . "edgeR")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -10510,6 +10510,38 @@ expression information. The package functions as a wrapper for Startrac and
powerTCR R packages.") powerTCR R packages.")
(license license:gpl2))) (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 (define-public r-scry
(package (package
(name "r-scry") (name "r-scry")

View File

@ -130,6 +130,7 @@
#:use-module (gnu packages pdf) #:use-module (gnu packages pdf)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages perl-check) #:use-module (gnu packages perl-check)
#:use-module (gnu packages perl-web)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt) #:use-module (gnu packages popt)
#:use-module (gnu packages protobuf) #:use-module (gnu packages protobuf)
@ -574,6 +575,30 @@ BED, GFF/GTF, VCF.")
whole-genome bisulfite sequencing (WGBS) reads from directional protocol.") whole-genome bisulfite sequencing (WGBS) reads from directional protocol.")
(license license:asl2.0))) (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 (define-public cellsnp-lite
;; Last release is from November 2021 and does not contain fixes. ;; Last release is from November 2021 and does not contain fixes.
(let ((commit "0885d746b0b1ea65c8ef92f8943ca7669ca9734a") (let ((commit "0885d746b0b1ea65c8ef92f8943ca7669ca9734a")
@ -2365,6 +2390,40 @@ sequencing data and the end result are tables of UMI-unique DamID and CEL-Seq
counts.") counts.")
(license license:expat))) (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 (define-public python-bioframe
(package (package
(name "python-bioframe") (name "python-bioframe")
@ -4999,6 +5058,126 @@ be of arbitrary length. Repeats with pattern size in the range from 1 to 2000
bases are detected.") bases are detected.")
(license license:agpl3+))) (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 (define-public repeat-masker
(package (package
(name "repeat-masker") (name "repeat-masker")
@ -20521,24 +20700,28 @@ aligner.")
(uri (pypi-uri "scvelo" version)) (uri (pypi-uri "scvelo" version))
(sha256 (sha256
(base32 "0h5ha1459ljs0qgpnlfsw592i8dxqn6p9bl08l1ikpwk36baxb7z")))) (base32 "0h5ha1459ljs0qgpnlfsw592i8dxqn6p9bl08l1ikpwk36baxb7z"))))
(build-system python-build-system) (build-system pyproject-build-system)
(arguments (arguments
`(#:phases (list
(modify-phases %standard-phases #: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. ;; Numba needs a writable dir to cache functions.
(add-before 'check 'set-numba-cache-dir (add-before 'check 'set-numba-cache-dir
(lambda _ (lambda _
(setenv "NUMBA_CACHE_DIR" "/tmp"))) (setenv "NUMBA_CACHE_DIR" "/tmp")))
(replace 'check (replace 'check
(lambda* (#:key outputs tests? #:allow-other-keys) (lambda* (#:key tests? test-flags #:allow-other-keys)
(when tests? (when tests?
;; The discovered test file names must match the names of the ;; The discovered test file names must match the names of the
;; compiled files, so we cannot run the tests from ;; compiled files, so we cannot run the tests from
;; /tmp/guix-build-*. ;; /tmp/guix-build-*.
(with-directory-excursion (with-directory-excursion
(string-append (assoc-ref outputs "out") (string-append #$output
"/lib/python3.10/site-packages/scvelo/core/tests/") "/lib/python3.10/site-packages/scvelo/core/tests/")
(invoke "pytest" "-v")))))))) (apply invoke "pytest" "-v" test-flags))))))))
(propagated-inputs (propagated-inputs
(list python-anndata (list python-anndata
python-hnswlib python-hnswlib

View File

@ -55,9 +55,12 @@
#:use-module (gnu packages man) #:use-module (gnu packages man)
#:use-module (gnu packages mtools) #:use-module (gnu packages mtools)
#:use-module (gnu packages ncurses) #: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 perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-crypto) #:use-module (gnu packages python-crypto)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
@ -71,6 +74,7 @@
#:use-module (gnu packages python-web) #:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject) #:use-module (guix build-system pyproject)
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (guix download) #:use-module (guix download)
@ -631,7 +635,7 @@ The SUBDIR argument defaults to \"efi/Guix\", as it is also the case for
(define-public dtc (define-public dtc
(package (package
(name "dtc") (name "dtc")
(version "1.6.1") (version "1.7.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -639,42 +643,56 @@ The SUBDIR argument defaults to \"efi/Guix\", as it is also the case for
"dtc-" version ".tar.gz")) "dtc-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0xm38h31jb29xfh2sfyk48d8wdfq4b8lmb412zx9vjr35izjb9iq")))) "0cij9399snpn672pdbda8qbxljdkfg068kvv3g5811rz6yslx124"))
(build-system gnu-build-system) (patches
(search-patches "dtc-meson-cell-overflow.patch"))))
(build-system meson-build-system)
(arguments (arguments
(list (list
#:modules `(,@%gnu-build-system-modules (srfi srfi-26)) #:modules '((guix build meson-build-system)
#:make-flags (guix build utils)
#~(list (string-append "CC=" #$(cc-for-target)) (srfi srfi-26))
;; /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")
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'patch-pkg-config (add-after 'unpack 'preparations
(lambda _ (lambda _
(substitute* '("Makefile" ;; The version string is usually derived via setuptools-scm, but
"tests/run_tests.sh") ;; without the git metadata available this fails.
(("pkg-config") (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version)
#$(pkg-config-for-target)))))
(delete 'configure) ;no configure script ;; Needed by setup.py.
(add-before 'build 'install-doc (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 _ (lambda _
(with-directory-excursion "Documentation" (with-directory-excursion "Documentation"
(for-each (cut install-file <> (string-append (for-each (cut install-file <> (string-append
#$output "/share/doc/dtc/")) #$output "/share/doc/dtc/"))
'("dts-format.txt" '("dts-format.txt"
"dt-object-internal.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 (native-inputs
(append (append
(list bison (list bison
flex flex
libyaml libyaml
ninja
pkg-config pkg-config
swig) python
python-setuptools-scm
swig
which)
(if (member (%current-system) (package-supported-systems valgrind)) (if (member (%current-system) (package-supported-systems valgrind))
(list valgrind) (list valgrind)
'()))) '())))

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2018, 2019 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2018, 2019 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2017, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2020, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2020, 2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2018, 2020, 2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2019 Carl Dong <contact@carldong.me> ;;; Copyright © 2019 Carl Dong <contact@carldong.me>
;;; Copyright © 2019 Léo Le Bouter <lle-bout@zaclys.net> ;;; Copyright © 2019 Léo Le Bouter <lle-bout@zaclys.net>
@ -323,6 +323,9 @@ or false to signal an error."
((string=? system "powerpc64-linux") "/lib/ld64.so.1") ((string=? system "powerpc64-linux") "/lib/ld64.so.1")
((string=? system "alpha-linux") "/lib/ld-linux.so.2") ((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 ;; XXX: This one is used bare-bones, without a libc, so add a case
;; here just so we can keep going. ;; here just so we can keep going.
((string=? system "arm-eabi") "no-ld.so") ((string=? system "arm-eabi") "no-ld.so")

View File

@ -47,6 +47,7 @@
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu> ;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
;;; Copyright © 2023 Reza Housseini <reza@housseini.me> ;;; Copyright © 2023 Reza Housseini <reza@housseini.me>
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space> ;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -602,10 +603,10 @@ It allows the specification of behaviour scenarios using a given-when-then
pattern.") pattern.")
(license license:apsl2)))) (license license:apsl2))))
(define-public catch2-3.3 (define-public catch2-3
(package (package
(name "catch2") (name "catch2")
(version "3.4.0") (version "3.5.1")
(home-page "https://github.com/catchorg/Catch2") (home-page "https://github.com/catchorg/Catch2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
@ -615,7 +616,7 @@ pattern.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1gdfsva6mnd66px85fmm3s65h8qzqnmgbmws2i3nygfav1y8d88f")))) "0p7rk01n4qfnnm1bgakllyqi83n1kbpz11gh65z1vspfz58hs9iv"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
(list (list
@ -1416,6 +1417,30 @@ distributed testing in both @code{load} and @code{each} modes. It also
supports coverage of subprocesses.") supports coverage of subprocesses.")
(license license:expat))) (license license:expat)))
(define-public python-pytest-dotenv
(package
(name "python-pytest-dotenv")
(version "0.5.2")
(source
(origin
;; No tests in the PyPI tarball.
(method git-fetch)
(uri (git-reference
(url "https://github.com/quiqua/pytest-dotenv")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0bdxwaak5clhsd63b9q65nf2amqqv5hfn7dskfakyldxsqnnh0y6"))))
(build-system pyproject-build-system)
(propagated-inputs (list python-dotenv))
(native-inputs (list python-pytest))
(home-page "https://github.com/quiqua/pytest-dotenv")
(synopsis "Automatically detect and load a .env file before running tests")
(description
"This Pytest plugin automatically detects and loads environment variables
from a .env file before running tests.")
(license license:expat)))
(define-public python-pytest-httpserver (define-public python-pytest-httpserver
(package (package
(name "python-pytest-httpserver") (name "python-pytest-httpserver")

View File

@ -263,7 +263,7 @@ molecules.")
(arguments '(#:tests? #f)) (arguments '(#:tests? #f))
;; There is no support for modern msgpack versions yet (see: ;; There is no support for modern msgpack versions yet (see:
;; https://github.com/rcsb/mmtf-cpp/issues/44). ;; https://github.com/rcsb/mmtf-cpp/issues/44).
(propagated-inputs (list msgpack)) ;included by mmtf/structure_data.hpp (propagated-inputs (list msgpack-3)) ;included by mmtf/structure_data.hpp
(home-page "https://mmtf.rcsb.org/") (home-page "https://mmtf.rcsb.org/")
(synopsis "C++ API for the Macromolecular Transmission Format") (synopsis "C++ API for the Macromolecular Transmission Format")
(description "This package is a library for the (description "This package is a library for the

View File

@ -31,7 +31,7 @@
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2022, 2023 David Elsing <david.elsing@posteo.net> ;;; Copyright © 2022, 2023 David Elsing <david.elsing@posteo.net>
;;; Copyright © 2022, 2023 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2022, 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org> ;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
;;; Copyright © 2023 Sughosha <Sughosha@proton.me> ;;; Copyright © 2023 Sughosha <Sughosha@proton.me>
;;; Copyright © 2023 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2023 Artyom V. Poptsov <poptsov.artyom@gmail.com>
@ -327,6 +327,28 @@ the @code{Clang/LLVM} infrastructure to extract the data, and emits it in
various formats, including @code{json}.") various formats, including @code{json}.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public expected-lite
(package
(name "expected-lite")
(version "0.6.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/martinmoene/expected-lite")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0d58nqh2fwdzdpln2wlnf898wyfxdnskq6ff33azbg92d5ibzys2"))))
(build-system cmake-build-system)
(home-page "https://github.com/martinmoene/expected-lite")
(synopsis "Expected objects in C++11 and later")
(description "@i{expected lite} is a single-file header-only library for
objects that either represent a valid value or an error that can be passed by
value. It is intended for use with C++11 and later. The library is based on
the @code{std::expected} proposal (@url{http://wg21.link/p0323}).")
(license license:boost1.0)))
(define-public libzen (define-public libzen
(package (package
(name "libzen") (name "libzen")

View File

@ -65,14 +65,14 @@
(define-public curl (define-public curl
(package (package
(name "curl") (name "curl")
(version "8.4.0") (version "8.5.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://curl.se/download/curl-" (uri (string-append "https://curl.se/download/curl-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0bd8y8v66biyqvg70ka1sdd0aixs6yzpnvfsig907xzh9af2mihn")) "1sqfflilf7mcz1g03lazyr6v6pf1rsrzprrknsir10hdwawqvas2"))
(patches (search-patches "curl-use-ssl-cert-env.patch")))) (patches (search-patches "curl-use-ssl-cert-env.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" (outputs '("out"
@ -127,15 +127,20 @@
(if parallel-tests? (if parallel-tests?
(number->string (parallel-job-count)) (number->string (parallel-job-count))
"1"))) "1")))
;; Ignore test 1477 due to a missing file in the 8.5.0
;; release. See
;; <https://github.com/curl/curl/issues/12462>.
(arguments `("-C" "tests" "test" (arguments `("-C" "tests" "test"
,@make-flags ,@make-flags
,(if #$(or (system-hurd?) ,(if #$(or (system-hurd?)
(target-arm32?) (target-arm32?)
(target-aarch64?)) (target-aarch64?))
;; protocol FAIL ;; protocol FAIL
(string-append "TFLAGS=\"~1474 " (string-append "TFLAGS=~1474 "
job-count "\"") "!1477 "
(string-append "TFLAGS=" job-count))))) job-count)
(string-append "TFLAGS=\"~1477 "
job-count "\"")))))
;; The top-level "make check" does "make -C tests quiet-test", which ;; The top-level "make check" does "make -C tests quiet-test", which
;; is too quiet. Use the "test" target instead, which is more ;; is too quiet. Use the "test" target instead, which is more
;; verbose. ;; verbose.

View File

@ -69,25 +69,16 @@
(define-public sddm (define-public sddm
(package (package
(name "sddm") (name "sddm")
(version "0.19.0") (version "0.20.0")
(source (origin (source (origin
(method url-fetch) (method git-fetch)
(uri (string-append (uri (git-reference
"https://github.com/sddm/sddm" (url "https://github.com/sddm/sddm")
"/releases/download/v" version "/" (commit (string-append "v" version))))
"sddm-" version ".tar.xz")) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0hcdysw8ibr66vk8i7v56l0v5ijvhlq67v4460mc2xf2910g2m72")) "1450zv03d3mbid27986p4mdshw9qf3ar8crl4idybf7khxgan22y"))))
(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)])"))))))
(build-system qt-build-system) (build-system qt-build-system)
(native-inputs (native-inputs
(list extra-cmake-modules pkg-config qttools-5)) (list extra-cmake-modules pkg-config qttools-5))
@ -109,36 +100,39 @@
shadow shadow
wayland)) wayland))
(arguments (arguments
`(#:configure-flags (list
,#~(list #:configure-flags
;; This option currently does nothing, but will presumably be enabled #~(list
;; if/when <https://github.com/sddm/sddm/pull/616> is merged.
"-DENABLE_WAYLAND=ON" "-DENABLE_WAYLAND=ON"
"-DENABLE_PAM=ON" "-DENABLE_PAM=ON"
;; Both flags are required for elogind support. ;; Both flags are required for elogind support.
"-DNO_SYSTEMD=ON" "-DUSE_ELOGIND=ON" "-DNO_SYSTEMD=ON"
"-DUSE_ELOGIND=ON"
"-DCONFIG_FILE=/etc/sddm.conf" "-DCONFIG_FILE=/etc/sddm.conf"
;; Set path to /etc/login.defs. ;; Set path to /etc/login.defs.
;; An alternative would be to use -DUID_MIN and -DUID_MAX. ;; An alternative would be to use -DUID_MIN and -DUID_MAX.
(string-append "-DLOGIN_DEFS_PATH=" (string-append "-DLOGIN_DEFS_PATH="
#$(this-package-input "shadow") #$(this-package-input "shadow")
"/etc/login.defs") "/etc/login.defs")
(string-append "-DCMAKE_CXX_FLAGS=-I"
#$(this-package-input
"qtdeclarative") "/include/qt5")
(string-append "-DQT_IMPORTS_DIR=" (string-append "-DQT_IMPORTS_DIR="
#$output "/lib/qt5/qml") #$output "/lib/qt5/qml")
(string-append "-DCMAKE_INSTALL_SYSCONFDIR=" (string-append "-DCMAKE_INSTALL_SYSCONFDIR="
#$output "/etc")) #$output "/etc"))
#:phases #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'embed-loginctl-reference (add-after 'unpack 'embed-loginctl-reference
(lambda _ (lambda _
(substitute* "CMakeLists.txt" (substitute* "CMakeLists.txt"
(("/usr/bin/loginctl") (which "loginctl"))) (("/usr/bin/loginctl")
#t))))) (which "loginctl"))))))))
(synopsis "QML based X11 and Wayland display manager") (synopsis "QML based X11 and Wayland display manager")
(description "SDDM is a display manager for X11 and Wayland aiming to be (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 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 user interface design. It uses QtQuick which gives the designer the ability
create smooth, animated user interfaces.") to create smooth, animated user interfaces.")
(home-page "https://github.com/sddm/sddm") (home-page "https://github.com/sddm/sddm")
;; QML files are MIT licensed and images are CC BY 3.0. ;; QML files are MIT licensed and images are CC BY 3.0.
(license (list license:gpl2+ license:expat license:cc-by3.0)))) (license (list license:gpl2+ license:expat license:cc-by3.0))))

View File

@ -4,7 +4,7 @@
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2017-2023 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017-2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 20182021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 20182021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2018-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net> ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org> ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
@ -564,7 +564,7 @@ a pen-tablet display and a beamer.")
(define-public fet (define-public fet
(package (package
(name "fet") (name "fet")
(version "6.9.0") (version "6.15.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -573,7 +573,7 @@ a pen-tablet display and a beamer.")
(list (string-append directory base) (list (string-append directory base)
(string-append directory "old/" base)))) (string-append directory "old/" base))))
(sha256 (sha256
(base32 "1lnw58ga1ldhqfznclmk9l21698pg152w3slq2cwmr69ywqr5wys")))) (base32 "0mmk9f0b23lmmk40mv25wf9vgb7wdgfn5zsa1qrkvkh7dh1hjpax"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list (list

View File

@ -2017,6 +2017,27 @@ Apprentice and Sourcerer.")
theme but now takes more inspiration from the Nano theme.") theme but now takes more inspiration from the Nano theme.")
(license license:gpl3+))) (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 (define-public emacs-treepy
(package (package
(name "emacs-treepy") (name "emacs-treepy")
@ -10105,13 +10126,20 @@ constants and units into an Emacs buffer.")
(sha256 (sha256
(base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb")))) (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
(build-system emacs-build-system) (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 (propagated-inputs
(list emacs-s emacs-dash)) (list emacs-dash emacs-s))
(home-page "https://github.com/magnars/tagedit") (home-page "https://github.com/magnars/tagedit")
(synopsis "Some paredit-like features for html-mode") (synopsis "Some Paredit-like features for HTML mode")
(description (description
"This package provides a collection of paredit-like functions for editing "This package provides a collection of Paredit-like functions for editing
in @code{html-mode}.") in HTML mode.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-slime (define-public emacs-slime
@ -11388,6 +11416,30 @@ package provides a light and a dark variant.")
Solarized color scheme.") Solarized color scheme.")
(license license:expat)))) (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 (define-public emacs-poet-theme
(let ((commit "16eb694f0755c04c4db98614d0eca1199fddad70") (let ((commit "16eb694f0755c04c4db98614d0eca1199fddad70")
(revision "1")) (revision "1"))
@ -29880,14 +29932,14 @@ buffer and launches Magit from the status buffer for the project at point.")
(define-public emacs-repology (define-public emacs-repology
(package (package
(name "emacs-repology") (name "emacs-repology")
(version "1.2.3") (version "1.2.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/" (uri (string-append "https://elpa.gnu.org/packages/"
"repology-" version ".tar")) "repology-" version ".tar"))
(sha256 (sha256
(base32 "1ngx23b7dilyps20nznrrn867kbxyn6nryf4p1sy5m576hkw18kn")))) (base32 "0l53wl0bk8rnqwsjdh1hwvkvbay080l10bslcj3scn42bgbi59j1"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
(list (list

View File

@ -2300,7 +2300,7 @@ mining.")
(define-public p2pool (define-public p2pool
(package (package
(name "p2pool") (name "p2pool")
(version "3.7") (version "3.10")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -2309,7 +2309,7 @@ mining.")
(commit (string-append "v" version)) (commit (string-append "v" version))
(recursive? #t))) (recursive? #t)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (base32 "1sghdk8yq8si0bq0z83fji48q8yrq0ymvsxbbh5mscw6223syrjq")) (sha256 (base32 "0lp9slfwaq3wp4x6xpsiazam5lv6dz57m20adzlzzk0anb1ascr0"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
#~(for-each delete-file-recursively #~(for-each delete-file-recursively

View File

@ -875,7 +875,7 @@ Executables included are:
(let ((toolchain-ver "GCC5")) (let ((toolchain-ver "GCC5"))
(package (package
(name "ovmf") (name "ovmf")
(version "202308") (version "202311")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -886,7 +886,7 @@ Executables included are:
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"04rnfnaqr2c7ayplj7ib730zp1snw157zx5rmykz5hz1zz2vb20j")))) "136dl5cxpjpg37whzlqq7jrrjsgybmwrgkbbmks8xaixqmzwhbw0"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list (list

View File

@ -123,6 +123,29 @@
titling.") titling.")
(license license:silofl1.1))) (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 (define-public font-chivo
(let ((commit "dc61c468d79781eb5183426e88e844af16cdc3e5") (let ((commit "dc61c468d79781eb5183426e88e844af16cdc3e5")
(revision "0")) (revision "0"))
@ -1952,15 +1975,15 @@ weights and five widths in both Roman and Italic, plus variable fonts.")
(define-public font-sarasa-gothic (define-public font-sarasa-gothic
(package (package
(name "font-sarasa-gothic") (name "font-sarasa-gothic")
(version "0.42.6") (version "1.0.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/be5invis/Sarasa-Gothic" (uri (string-append "https://github.com/be5invis/Sarasa-Gothic"
"/releases/download/v" version "/releases/download/v" version
"/sarasa-gothic-ttc-" version ".7z")) "/Sarasa-TTC-" version ".7z"))
(sha256 (sha256
(base32 "0czx10yph2lxg2k4w6qjnil73zb2pgg3g400apm9gay41m04990v")))) (base32 "1cgqf15fhg567s2bwjpal3xfcdnbgyy0iav5181zkn6b4k56dgl4"))))
(build-system font-build-system) (build-system font-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases (modify-phases %standard-phases

View File

@ -196,19 +196,21 @@ is used in some video games and movies.")
(license license:zlib))) (license license:zlib)))
(define-public dds (define-public dds
(let ((commit "d2bc4c2c703941664fc1d73e69caa5233cdeac18")
(revision "1"))
(package (package
(name "dds") (name "dds")
(version "2.9.0") (version (git-version "2.9.0" revision commit))
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/dds-bridge/dds") (url "https://github.com/dds-bridge/dds")
(commit (string-append "v" version)))) (commit commit)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1iv09qic43nvla02lm8zgnkqpjgnc95p8zh3wyifmnmlh1rz02yj")))) "1ishbb69cvyv96xdxshnly0m5ydwljgdf8fwa1cr9rj2qj40q4rm"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list #:phases (list #:phases
@ -258,7 +260,7 @@ is used in some video games and movies.")
(description "DDS is a double-dummy solver of bridge hands. It supports (description "DDS is a double-dummy solver of bridge hands. It supports
single-threading and multi-threading for improved performance. DDS single-threading and multi-threading for improved performance. DDS
offers a wide range of functions, including par-score calculations.") offers a wide range of functions, including par-score calculations.")
(license license:asl2.0))) (license license:asl2.0))))
(define-public deutex (define-public deutex
(package (package
@ -3269,16 +3271,16 @@ progresses the level, or you may regenerate tiles as the world changes.")
(define-public bbcsdl (define-public bbcsdl
(package (package
(name "bbcsdl") (name "bbcsdl")
(version "1.35a") (version "1.39a")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/rtrussell/BBCSDL/") (url "https://github.com/rtrussell/BBCSDL/")
(commit "b9b2a3eb438cb799edb2766055b3c38e9518e3e3"))) (commit "93b0ffae960f4c4f45fdc2202bc6e83ee5ca277c")))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1d03xmhrl6ba6w0vwfk46mpyc9d0w3bixxj2d4irx7wl7bh3bfic")))) "03ga14k2hbhflnaynbyx9lwlbxlzx3rv6zqq21yhl183s6d4c0wa"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list (list
@ -3318,6 +3320,7 @@ progresses the level, or you may regenerate tiles as the world changes.")
inputs (string-append "share/fonts/truetype/" font)) inputs (string-append "share/fonts/truetype/" font))
(string-append opt "/lib/" font))) (string-append opt "/lib/" font)))
'("DejaVuSans.ttf" "DejaVuSansMono.ttf" '("DejaVuSans.ttf" "DejaVuSansMono.ttf"
"DejaVuSans-Oblique.ttf"
"FreeSans.ttf" "FreeMono.ttf" "FreeSerif.ttf")) "FreeSans.ttf" "FreeMono.ttf" "FreeSerif.ttf"))
(mkdir bin) (mkdir bin)
(symlink (string-append opt "/bbcsdl") (symlink (string-append opt "/bbcsdl")

View File

@ -78,7 +78,8 @@
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023 Florian Pelz <pelzflorian@pelzflorian.de> ;;; Copyright © 2023 Florian Pelz <pelzflorian@pelzflorian.de>
;;; Copyright © 2023 Ivana Drazovic <iv.dra@hotmail.com> ;;; Copyright © 2023 Ivana Drazovic <iv.dra@hotmail.com>
;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com> ;;; Copyright © 2023, 2024 gemmaro <gemmaro.dev@gmail.com>
;;; Copyright © 2023 Wilko Meyer <w@wmeyer.eu>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -193,6 +194,7 @@
#:use-module (gnu packages protobuf) #:use-module (gnu packages protobuf)
#:use-module (gnu packages pulseaudio) #:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-compression)
#:use-module (gnu packages python-web) #:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt) #:use-module (gnu packages qt)
@ -230,6 +232,7 @@
#:use-module (guix build-system meson) #:use-module (guix build-system meson)
#:use-module (guix build-system perl) #:use-module (guix build-system perl)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system qt) #:use-module (guix build-system qt)
#:use-module (guix build-system scons) #:use-module (guix build-system scons)
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
@ -2367,6 +2370,55 @@ Every puzzle has a complete solution, although there may be more than one.")
"PrBoom+ is a Doom source port developed from the original PrBoom project.") "PrBoom+ is a Doom source port developed from the original PrBoom project.")
(license license:gpl2+))) (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 (define-public retux
(let ((release "1.6.1") (let ((release "1.6.1")
(revision 0)) (revision 0))
@ -3385,25 +3437,29 @@ a C library, so they can easily be integrated into other programs.")
(define-public taisei (define-public taisei
(package (package
(name "taisei") (name "taisei")
(version "1.3.2") (version "1.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/taisei-project/" (uri (string-append "https://github.com/taisei-project/"
"taisei/releases/download/v" version "taisei/releases/download/v" version
"/taisei-v" version ".tar.xz")) "/taisei-" version ".tar.xz"))
(sha256 (sha256
(base32 "1g53fcyrlzmvlsb40pw90gaglysv6n1w42hk263iv61ibhdmzh6v")))) (base32 "1glrr99xiyz674d1izgvmk9w1zxanc94d34pacd0wya66bbml0nc"))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments (arguments
`(#:build-type "release" ;comment out for bug-reporting (and cheats) (list
#:configure-flags #:build-type "release" ;comment out for bug-reporting (and cheats)
(list "-Dr_default=gles30" #:configure-flags #~(list "-Dr_default=gles30"
"-Dr_gles20=true" "-Dr_gles20=true"
"-Dr_gles30=true" "-Dr_gles30=true"
"-Dshader_transpiler=true"))) "-Dshader_transpiler=true")))
(native-inputs (native-inputs
(list pkg-config python python-docutils python-pygments)) (list pkg-config
python
python-docutils
python-pygments
python-zstandard))
(inputs (inputs
(list cglm (list cglm
freetype freetype
@ -3417,14 +3473,16 @@ a C library, so they can easily be integrated into other programs.")
sdl2-mixer sdl2-mixer
shaderc shaderc
spirv-cross spirv-cross
zlib)) zlib
(list zstd "lib")))
(home-page "https://taisei-project.org/") (home-page "https://taisei-project.org/")
(synopsis "Shoot'em up fangame and libre clone of Touhou Project") (synopsis "Shoot'em up fangame and libre clone of Touhou Project")
(description (description
"The player controls a character (one of three: Good, Bad, and Dead), "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 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.") is very small), and shoot at the adversaries that keep appear on the screen.")
(license (list ;;game (license (list
;; game
license:expat license:expat
;; resources/00-taisei.pkgdir/bgm/ ;; resources/00-taisei.pkgdir/bgm/
;; atlas/portraits/ ;; atlas/portraits/
@ -3833,7 +3891,7 @@ for common mesh file formats, and collision detection.")
(package (package
(inherit irrlicht) (inherit irrlicht)
(name "irrlicht-for-minetest") (name "irrlicht-for-minetest")
(version "1.9.0mt10") (version "1.9.0mt13")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -3843,7 +3901,7 @@ for common mesh file formats, and collision detection.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0y5vchz91khs8dmrkpgc7sqmvzx2yjj6svivvm80r4yppv7s03rw")))) "11pxg0yh50ym1hvh8va5jbbcjz5dsshj3xxvm3qhkgg96vpism06"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
;; No check target. ;; No check target.
@ -10115,6 +10173,36 @@ can be downloaded from @url{https://zero.sjeng.org/best-network}.")
(home-page "https://github.com/bernds/q5Go") (home-page "https://github.com/bernds/q5Go")
(license license:gpl2+))) (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 (define-public xmoto
(package (package
(name "xmoto") (name "xmoto")
@ -10415,6 +10503,31 @@ sunfish, but is written in C rather than Python. It also has TUI tools for
using any UCI engine and also to connect UCI engines to Lichess.") using any UCI engine and also to connect UCI engines to Lichess.")
(license license:agpl3+)))) (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 (define-public barrage
(package (package
(name "barrage") (name "barrage")

View File

@ -3,7 +3,7 @@
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2023 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015, 2023 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015-2018, 2020-2023 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015-2018, 2020-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll@gmail.com> ;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll@gmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2020, 2022 Marius Bakke <marius@gnu.org> ;;; Copyright © 2018, 2020, 2022 Marius Bakke <marius@gnu.org>
@ -75,6 +75,9 @@ where the OS part is overloaded to denote a specific ABI---into GCC
"--with-mode=thumb" "--with-mode=thumb"
"--with-fpu=neon")) "--with-fpu=neon"))
((string-match "x86_64-linux-gnux32" target)
'("--with-abi=mx32"))
((and (string-suffix? "-gnu" target) ((and (string-suffix? "-gnu" target)
(not (string-contains target "-linux"))) (not (string-contains target "-linux")))
;; Cross-compilation of libcilkrts in GCC 5.5.0 to GNU/Hurd fails ;; Cross-compilation of libcilkrts in GCC 5.5.0 to GNU/Hurd fails

View File

@ -3228,3 +3228,31 @@ For maps, it can uses its own \"binfile\" map format, or Garmin map
file format, and data from OpenStreetMap, Garmin maps, Marco Polo file format, and data from OpenStreetMap, Garmin maps, Marco Polo
Grosser Reiseplaner, Routeplaner Europa 2007, Map + Route.") Grosser Reiseplaner, Routeplaner Europa 2007, Map + Route.")
(license license:gpl2))) (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)))

View File

@ -18,7 +18,7 @@
;;; Copyright © 2021, 2022, 2023 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2021, 2022, 2023 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com> ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2023 Kaelyn Takata <kaelyn.alexi@protonmail.com> ;;; Copyright © 2023 Kaelyn Takata <kaelyn.alexi@protonmail.com>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -62,6 +62,7 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix hg-download) #:use-module (guix hg-download)
#:use-module (gnu packages cmake)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system meson) #:use-module (guix build-system meson)
@ -294,7 +295,7 @@ also known as DXTn or DXTC) for Mesa.")
(define-public mesa (define-public mesa
(package (package
(name "mesa") (name "mesa")
(version "23.2.1") (version "23.3.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -304,7 +305,7 @@ also known as DXTn or DXTC) for Mesa.")
"mesa-" version ".tar.xz"))) "mesa-" version ".tar.xz")))
(sha256 (sha256
(base32 (base32
"1k61pgw0vcjrlb4299q98cy7iqmk2r7jmb5ika91z01dzhb0dpk4")))) "1p4swrbmz3kb1805kdj973hf8virgmix4m9qprmcb2bgl4gviz1w"))))
(build-system meson-build-system) (build-system meson-build-system)
(propagated-inputs (propagated-inputs
;; The following are in the Requires.private field of gl.pc. ;; The following are in the Requires.private field of gl.pc.
@ -338,7 +339,8 @@ also known as DXTn or DXTC) for Mesa.")
python-wrapper python-wrapper
(@ (gnu packages base) which) (@ (gnu packages base) which)
(if (%current-target-system) (if (%current-target-system)
(list pkg-config-for-build (list cmake-minimal-cross
pkg-config-for-build
wayland wayland
wayland-protocols) wayland-protocols)
'()))) '())))
@ -351,16 +353,16 @@ also known as DXTn or DXTC) for Mesa.")
((target-aarch64?) ((target-aarch64?)
;; TODO: Fix svga driver for non-Intel architectures. ;; TODO: Fix svga driver for non-Intel architectures.
'("-Dgallium-drivers=etnaviv,freedreno,kmsro,lima,nouveau,\ '("-Dgallium-drivers=etnaviv,freedreno,kmsro,lima,nouveau,\
panfrost,r300,r600,swrast,tegra,v3d,vc4,virgl")) panfrost,r300,r600,swrast,tegra,v3d,vc4,virgl,zink"))
((target-arm32?) ((target-arm32?)
;; Freedreno FTBFS when built on a 64-bit machine. ;; Freedreno FTBFS when built on a 64-bit machine.
'("-Dgallium-drivers=etnaviv,kmsro,lima,nouveau,panfrost,\ '("-Dgallium-drivers=etnaviv,kmsro,lima,nouveau,panfrost,\
r300,r600,swrast,tegra,v3d,vc4,virgl")) r300,r600,swrast,tegra,v3d,vc4,virgl,zink"))
((or (target-ppc64le?) (target-ppc32?) (target-riscv64?)) ((or (target-ppc64le?) (target-ppc32?) (target-riscv64?))
'("-Dgallium-drivers=nouveau,r300,r600,radeonsi,swrast,virgl")) '("-Dgallium-drivers=nouveau,r300,r600,radeonsi,swrast,virgl,zink"))
(else (else
'("-Dgallium-drivers=crocus,iris,nouveau,r300,r600,radeonsi,\ '("-Dgallium-drivers=crocus,iris,nouveau,r300,r600,radeonsi,\
svga,swrast,virgl"))) svga,swrast,virgl,zink")))
;; Enable various optional features. TODO: opencl requires libclc, ;; Enable various optional features. TODO: opencl requires libclc,
;; omx requires libomxil-bellagio ;; omx requires libomxil-bellagio
"-Dplatforms=x11,wayland" "-Dplatforms=x11,wayland"
@ -415,10 +417,13 @@ svga,swrast,virgl")))
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
#$@(if (%current-target-system) #$@(if (%current-target-system)
#~((add-after 'unpack 'fix-cross-compiling #~((add-after 'unpack 'fix-cross-compiling
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key native-inputs #:allow-other-keys)
;; It isn't a problem to use the host's llvm-config. ;; When cross compiling, we use cmake to find llvm, not
(setenv "LLVM_CONFIG" ;; llvm-config, because llvm-config cannot be executed
(search-input-file inputs "/bin/llvm-config"))))) ;; see https://github.com/llvm/llvm-project/issues/58984
(setenv "CMAKE"
(search-input-file
native-inputs "/bin/cmake")))))
#~()) #~())
(add-after 'unpack 'disable-failing-test (add-after 'unpack 'disable-failing-test
(lambda _ (lambda _

View File

@ -11,7 +11,7 @@
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2023 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017, 2018, 2021 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2016, 2017, 2018, 2021 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015-2023 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com> ;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net> ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
@ -4781,12 +4781,15 @@ GLib and GObject, and integrates JSON with GLib data types.")
(string-append #$output:doc (string-append #$output:doc
"/share/gtk-doc")))))))))) "/share/gtk-doc"))))))))))
(native-inputs (native-inputs
(if (%current-target-system)
;; No docs, no additional inputs.
(package-native-inputs json-glib-minimal)
(modify-inputs (package-native-inputs json-glib-minimal) (modify-inputs (package-native-inputs json-glib-minimal)
(prepend docbook-xml-4.3 (prepend docbook-xml-4.3
docbook-xsl docbook-xsl
gobject-introspection gobject-introspection
gtk-doc gtk-doc
libxslt))))) libxslt))))))
(define-public libxklavier (define-public libxklavier
(package (package

View File

@ -1034,6 +1034,9 @@ variable defined below. It requires guile-json to be installed."
(setenv "MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE" "system") (setenv "MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE" "system")
(setenv "MOZ_BUILD_DATE" #$%icecat-build-id) ; avoid timestamp (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. ;; XXX TODO: Fix this to work on systems other than x86_64-linux.
(setenv "GUIX_PYTHONPATH" (setenv "GUIX_PYTHONPATH"
(string-append (getcwd) (string-append (getcwd)
@ -1126,7 +1129,7 @@ variable defined below. It requires guile-json to be installed."
(("NewWindow") "new-window") (("NewWindow") "new-window")
(("NewPrivateWindow") "new-private-window") (("NewPrivateWindow") "new-private-window")
(("StartupNotify=true") (("StartupNotify=true")
"StartupNotify=true\nStartupWMClass=Navigator")) "StartupNotify=true\nStartupWMClass=Icecat"))
(install-file desktop-file applications)))) (install-file desktop-file applications))))
(add-after 'install-desktop-entry 'install-icons (add-after 'install-desktop-entry 'install-icons
(lambda _ (lambda _

View File

@ -21,6 +21,7 @@
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space> ;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2023 Katherine Cox-Buday <cox.katherine.e@gmail.com> ;;; Copyright © 2023 Katherine Cox-Buday <cox.katherine.e@gmail.com>
;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr> ;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2023 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -870,7 +871,7 @@ protocol.")
(define-public go-github-com-hjson-hjson-go (define-public go-github-com-hjson-hjson-go
(package (package
(name "go-github-com-hjson-hjson-go") (name "go-github-com-hjson-hjson-go")
(version "3.1.0") (version "4.3.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -879,7 +880,7 @@ protocol.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1dfdiahimg6z9idg8jiqxwnlwjnmasbjccx8gnag49cz4yfqskaz")))) (base32 "138vmbnrwzxf64cia27k407clrydvs2jx927dlv6ziydiqyvy7m3"))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
'(#:import-path "github.com/hjson/hjson-go")) '(#:import-path "github.com/hjson/hjson-go"))

View File

@ -3959,11 +3959,11 @@ packages.")
(license license:bsd-3)))) (license license:bsd-3))))
(define-public go-golang-org-x-sys (define-public go-golang-org-x-sys
(let ((commit "b60007cc4e6f966b1c542e343d026d06723e5653") (let ((commit "ca59edaa5a761e1d0ea91d6c07b063f85ef24f78")
(revision "0")) (revision "0"))
(package (package
(name "go-golang-org-x-sys") (name "go-golang-org-x-sys")
(version (git-version "0.4.0" revision commit)) (version (git-version "0.8.0" revision commit))
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -3972,7 +3972,7 @@ packages.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0fr2d6fnpbqx6n89sg9lsinqkdaw49y068kqj2g0cxlhbh69hzii")))) "1p81niiin8dwyrjl2xsc95136w3vdw4kmj0w3mlh0vh5v134s4xq"))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
(list (list
@ -3989,24 +3989,6 @@ support for low-level interaction with the operating system.")
(home-page "https://go.googlesource.com/sys") (home-page "https://go.googlesource.com/sys")
(license license:bsd-3)))) (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 (define-public go-golang-org-x-text
(package (package
(name "go-golang-org-x-text") (name "go-golang-org-x-text")
@ -7269,7 +7251,7 @@ implementation of generics.")
#:import-path "github.com/quic-go/qtls-go1-20" #:import-path "github.com/quic-go/qtls-go1-20"
#:go go-1.20)) #:go go-1.20))
(propagated-inputs (list go-golang-org-x-crypto (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") (synopsis "TLS 1.3 for QUIC")
(description (description
"Go standard library TLS 1.3 implementation, modified for QUIC. For "Go standard library TLS 1.3 implementation, modified for QUIC. For
@ -7330,11 +7312,6 @@ the Go standard library}.")
#:tests? #f #:tests? #f
#:go go-1.20)) #:go go-1.20))
(propagated-inputs (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 (list go-github-com-quic-go-qtls-go1-20
go-github-com-quic-go-qpack go-github-com-quic-go-qpack
go-golang-org-x-crypto go-golang-org-x-crypto
@ -7344,7 +7321,8 @@ the Go standard library}.")
go-golang-org-x-crypto go-golang-org-x-crypto
go-golang-org-x-exp go-golang-org-x-exp
go-golang-org-x-net go-golang-org-x-net
go-golang-org-x-sync))))) go-golang-org-x-sys
go-golang-org-x-sync))
(synopsis "QUIC in Go") (synopsis "QUIC in Go")
(description "This package provides a Go language implementation of the QUIC (description "This package provides a Go language implementation of the QUIC
network protocol.") network protocol.")

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018, 2019, 2020, 2022, 2023 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017-2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com> ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
;;; Copyright © 2018, 2020, 2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2020, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
@ -426,6 +426,48 @@ algorithm for community detection in large networks.")
large networks.") large networks.")
(license license:gpl3+))) (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 (define-public faiss
(package (package
(name "faiss") (name "faiss")

View File

@ -195,7 +195,7 @@ structure and layout algorithms.")
(define-public python-uqbar (define-public python-uqbar
(package (package
(name "python-uqbar") (name "python-uqbar")
(version "0.5.6") (version "0.5.9")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -205,18 +205,12 @@ structure and layout algorithms.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1ml3x2mf7nlnvrh9lari5yk0sz2mmg39jwsbjxnpzhnw4kcwpdrs")))) "0c573nzpm51qgz2g296f8pw8ys0i3r6daynxk06zagk5l5fgw9ar"))
(patches (search-patches "python-uqbar-python3.10.patch"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-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 (replace 'check
(lambda* (#:key tests? #:allow-other-keys) (lambda* (#:key tests? #:allow-other-keys)
(when tests? (when tests?

View File

@ -1178,7 +1178,11 @@ application suites.")
;; The unaligned-offscreen test fails for unknown reasons, also ;; The unaligned-offscreen test fails for unknown reasons, also
;; on different distributions (see: ;; on different distributions (see:
;; https://gitlab.gnome.org/GNOME/gtk/-/issues/4889). ;; https://gitlab.gnome.org/GNOME/gtk/-/issues/4889).
((" 'unaligned-offscreen',") "")) ((" 'unaligned-offscreen',") "")
;; This test, 'gtk:tools / validate', started failing for
;; unknown reasons after updating mesa to 23.3.1 and xorgproto
;; to 2023.2.
((" 'validate',") ""))
(substitute* "testsuite/reftests/meson.build" (substitute* "testsuite/reftests/meson.build"
(("[ \t]*'label-wrap-justify.ui',") "") (("[ \t]*'label-wrap-justify.ui',") "")
;; The inscription-markup.ui fails due to /etc/machine-id ;; The inscription-markup.ui fails due to /etc/machine-id

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012-2023 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2017, 2022 Christine Lemmer-Webber <cwebber@dustycloud.org> ;;; Copyright © 2015, 2017, 2022 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co> ;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
@ -816,7 +816,8 @@ tables.")
(base32 (base32
"0wvdi4l58f9a5c9wi3cdc9l1bniscsixb6w2zj86mch7j7j814lc")) "0wvdi4l58f9a5c9wi3cdc9l1bniscsixb6w2zj86mch7j7j814lc"))
(patches (patches
(search-patches "guile-fibers-libevent-32-bit.patch")))) (search-patches "guile-fibers-libevent-32-bit.patch"
"guile-fibers-libevent-timeout.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list #:make-flags (list #:make-flags
@ -1839,6 +1840,33 @@ written in pure Scheme by using Guile's foreign function interface.")
library}.") library}.")
(license license:gpl3+))) (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 (define-public guile-dbi
(package (package
(name "guile-dbi") (name "guile-dbi")
@ -3565,6 +3593,80 @@ structures. This package re-uses the SRFI sample implementation.")
;; contains ISC code from the SRFI sample implementation ;; contains ISC code from the SRFI sample implementation
license:isc)))) 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 (define-public guile-srfi-145
(package (package
(name "guile-srfi-145") (name "guile-srfi-145")
@ -3766,6 +3868,56 @@ Either represents the concept of values which are either correct (Right)
or errors (Left).") or errors (Left).")
(license license:expat)))) (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 (define-public emacsy
(package (package
(name "emacsy") (name "emacsy")

View File

@ -2,7 +2,7 @@
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2019, 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> ;;; Copyright © 2019, 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020, 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -38,6 +38,7 @@
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (gnu packages libcanberra) #:use-module (gnu packages libcanberra)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages markup)
#:use-module (gnu packages networking) #:use-module (gnu packages networking)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
@ -54,6 +55,7 @@
#:use-module (gnu packages version-control) #:use-module (gnu packages version-control)
#:use-module (gnu packages video) #:use-module (gnu packages video)
#:use-module (gnu packages vulkan) #:use-module (gnu packages vulkan)
#:use-module (gnu packages web)
#:use-module (gnu packages webkit) #:use-module (gnu packages webkit)
#:use-module (gnu packages xdisorg) #:use-module (gnu packages xdisorg)
#:use-module (gnu packages xiph) #:use-module (gnu packages xiph)
@ -68,307 +70,33 @@
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix utils)) #:use-module (guix utils))
(define %jami-version "20230323.0") ;;; We use nightlies as stable versions are a bit far in-between, and often
;;; have bugs anyway. When the nightly version change, do not forget to
;;; retrieve the associated daemon submodule commit and update it in
;;; %jami-daemon-commit variable below.
(define %jami-sources ;;; When updating Jami, make sure that the patches used for ffmpeg-jami are up
;; Return an origin object of the tarball release sources archive of the ;;; to date with those listed in
;; Jami project. ;;; <https://review.jami.net/plugins/gitiles/jami-daemon/+/refs/heads/master/contrib/src/ffmpeg/rules.mak>.
(origin (define %jami-nightly-version "20231222.2")
(method url-fetch) (define %jami-daemon-commit "317b7317dcda4afb733ddb9bd5b450d4635941ae")
(uri (string-append "https://dl.jami.net/release/tarballs/jami-"
%jami-version ".tar.gz"))
(modules '((guix build utils)))
(snippet
;; Delete multiple MiBs of bundled tarballs. The daemon/contrib
;; directory contains the custom patches for pjproject and other
;; libraries used by Jami.
'(delete-file-recursively "daemon/contrib/tarballs"))
(sha256
(base32
"0vjsjr37cb87j9hqbmipyxn4877k1wn3l0vzca3l3ldgknglz7v2"))
(patches (search-patches "jami-disable-integration-tests.patch"
"jami-libjami-headers-search.patch"))))
;; Jami maintains a set of patches for some key dependencies (currently
;; pjproject and ffmpeg) of Jami that haven't yet been integrated upstream.
;; This procedure simplifies the process of applying them.
(define jami-apply-custom-patches
#~(lambda* (#:key dep-name patches)
(let ((patches-directory "patches"))
(mkdir-p patches-directory)
(invoke "tar" "-xvf" #$%jami-sources
"-C" patches-directory
"--strip-components=5"
"--wildcards"
(string-append "jami-*/daemon/contrib/src/" dep-name))
(for-each (lambda (f)
(invoke "patch" "--force" "--ignore-whitespace" "-p1" "-i"
(string-append patches-directory "/" f ".patch")))
patches))))
(define-public pjproject-jami
(let ((commit "e4b83585a0bdf1523e808a4fc1946ec82ac733d0")
(revision "3"))
(package
(inherit pjproject)
(name "pjproject-jami")
(version (git-version "2.12" revision commit))
(source (origin
(inherit (package-source pjproject))
;; The Jami development team regularly issues patches to
;; pjproject to extend the its functionality and fix bugs;
;; they are submitted for inclusion upstream but larger
;; patches take time to be reviewed and merged, hence this
;; forked repository.
(method git-fetch)
(uri (git-reference
(url "https://github.com/savoirfairelinux/pjproject")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0gky5idyyqxhqk959lzys5l7x1i925db773lfdpvxxmkmfizdq21"))))
(arguments
(substitute-keyword-arguments (package-arguments pjproject)
((#:phases phases '%standard-phases)
#~(modify-phases #$phases
(add-after 'unpack 'apply-patches
(lambda _
(#$jami-apply-custom-patches
#:dep-name "pjproject"
#:patches
;; This adds a config_site.h configuration file that sets
;; constants such as PJ_ICE_MAX_CAND that cannot be
;; configured at build time.
'("0009-add-config-site")))))))))))
;; The following variables are configure flags used by ffmpeg-jami. They're
;; from the jami/daemon/contrib/src/ffmpeg/rules.mak file. We try to keep it
;; as close to the official Jami package as possible, to provide all the
;; codecs and extra features that are expected (see:
;; https://review.jami.net/plugins/gitiles/jami-daemon/+/refs/heads/master/contrib/src/ffmpeg/rules.mak).
;; An exception are the ffnvcodec-related switches, which is not packaged in
;; Guix and would not work with Mesa.
(define %ffmpeg-default-configure-flags
'("--disable-everything"
"--enable-zlib"
"--enable-gpl"
"--enable-swscale"
"--enable-bsfs"
"--disable-filters"
"--disable-programs"
"--disable-postproc"
"--disable-protocols"
"--enable-protocol=crypto"
"--enable-protocol=file"
"--enable-protocol=rtp"
"--enable-protocol=srtp"
"--enable-protocol=tcp"
"--enable-protocol=udp"
"--enable-protocol=unix"
"--enable-protocol=pipe"
;; Enable muxers/demuxers.
"--disable-demuxers"
"--disable-muxers"
"--enable-muxer=rtp"
"--enable-muxer=g722"
"--enable-muxer=g726"
"--enable-muxer=g726le"
"--enable-muxer=h263"
"--enable-muxer=h264"
"--enable-muxer=hevc"
"--enable-muxer=matroska"
"--enable-muxer=wav"
"--enable-muxer=webm"
"--enable-muxer=ogg"
"--enable-muxer=pcm_s16be"
"--enable-muxer=pcm_s16le"
"--enable-demuxer=rtp"
"--enable-demuxer=mjpeg"
"--enable-demuxer=mjpeg_2000"
"--enable-demuxer=mpegvideo"
"--enable-demuxer=gif"
"--enable-demuxer=image_jpeg_pipe"
"--enable-demuxer=image_png_pipe"
"--enable-demuxer=image_webp_pipe"
"--enable-demuxer=matroska"
"--enable-demuxer=m4v"
"--enable-demuxer=mp3"
"--enable-demuxer=ogg"
"--enable-demuxer=flac"
"--enable-demuxer=wav"
"--enable-demuxer=ac3"
"--enable-demuxer=g722"
"--enable-demuxer=g723_1"
"--enable-demuxer=g726"
"--enable-demuxer=g726le"
"--enable-demuxer=pcm_mulaw"
"--enable-demuxer=pcm_alaw"
"--enable-demuxer=pcm_s16be"
"--enable-demuxer=pcm_s16le"
"--enable-demuxer=h263"
"--enable-demuxer=h264"
"--enable-demuxer=hevc"
;; Enable parsers.
"--enable-parser=h263"
"--enable-parser=h264"
"--enable-parser=hevc"
"--enable-parser=mpeg4video"
"--enable-parser=vp8"
"--enable-parser=vp9"
"--enable-parser=opus"
;; Encoders/decoders.
"--enable-encoder=adpcm_g722"
"--enable-decoder=adpcm_g722"
"--enable-encoder=adpcm_g726"
"--enable-decoder=adpcm_g726"
"--enable-encoder=adpcm_g726le"
"--enable-decoder=adpcm_g726le"
"--enable-decoder=g729"
"--enable-encoder=g723_1"
"--enable-decoder=g723_1"
"--enable-encoder=rawvideo"
"--enable-decoder=rawvideo"
"--enable-encoder=libx264"
"--enable-decoder=h264"
"--enable-encoder=pcm_alaw"
"--enable-decoder=pcm_alaw"
"--enable-encoder=pcm_mulaw"
"--enable-decoder=pcm_mulaw"
"--enable-encoder=mpeg4"
"--enable-decoder=mpeg4"
"--enable-encoder=libvpx_vp8"
"--enable-decoder=vp8"
"--enable-decoder=vp9"
"--enable-encoder=h263"
"--enable-encoder=h263p"
"--enable-decoder=h263"
"--enable-encoder=mjpeg"
"--enable-decoder=mjpeg"
"--enable-decoder=mjpegb"
"--enable-libspeex"
"--enable-libopus"
"--enable-libvpx"
"--enable-libx264"
"--enable-encoder=libspeex"
"--enable-decoder=libspeex"
"--enable-encoder=libopus"
"--enable-decoder=libopus"
;; Encoders/decoders for ringtones and audio streaming.
"--enable-decoder=flac"
"--enable-decoder=vorbis"
"--enable-decoder=aac"
"--enable-decoder=ac3"
"--enable-decoder=eac3"
"--enable-decoder=mp3"
"--enable-decoder=pcm_u24le"
"--enable-decoder=pcm_u32le"
"--enable-decoder=pcm_u8"
"--enable-decoder=pcm_f16le"
"--enable-decoder=pcm_f32le"
"--enable-decoder=pcm_f64le"
"--enable-decoder=pcm_s16le"
"--enable-decoder=pcm_s24le"
"--enable-decoder=pcm_s32le"
"--enable-decoder=pcm_s64le"
"--enable-decoder=pcm_u16le"
"--enable-encoder=pcm_u8"
"--enable-encoder=pcm_f32le"
"--enable-encoder=pcm_f64le"
"--enable-encoder=pcm_s16le"
"--enable-encoder=pcm_s32le"
"--enable-encoder=pcm_s64le"
;; Encoders/decoders for images.
"--enable-encoder=gif"
"--enable-decoder=gif"
"--enable-encoder=jpegls"
"--enable-decoder=jpegls"
"--enable-encoder=ljpeg"
"--enable-decoder=jpeg2000"
"--enable-encoder=png"
"--enable-decoder=png"
"--enable-encoder=bmp"
"--enable-decoder=bmp"
"--enable-encoder=tiff"
"--enable-decoder=tiff"
;; Filters.
"--enable-filter=scale"
"--enable-filter=overlay"
"--enable-filter=amix"
"--enable-filter=amerge"
"--enable-filter=aresample"
"--enable-filter=format"
"--enable-filter=aformat"
"--enable-filter=fps"
"--enable-filter=transpose"
"--enable-filter=pad"))
(define %ffmpeg-linux-configure-flags
'("--enable-pic"
"--extra-cxxflags=-fPIC"
"--extra-cflags=-fPIC"
"--target-os=linux"
"--enable-indev=v4l2"
"--enable-indev=xcbgrab"
"--enable-vdpau"
"--enable-hwaccel=h264_vdpau"
"--enable-hwaccel=mpeg4_vdpau"
"--enable-vaapi"
"--enable-hwaccel=h264_vaapi"
"--enable-hwaccel=mpeg4_vaapi"
"--enable-hwaccel=h263_vaapi"
"--enable-hwaccel=vp8_vaapi"
"--enable-hwaccel=mjpeg_vaapi"
"--enable-hwaccel=hevc_vaapi"
"--enable-encoder=h264_vaapi"
"--enable-encoder=vp8_vaapi"
"--enable-encoder=mjpeg_vaapi"
"--enable-encoder=hevc_vaapi"))
(define (ffmpeg-compose-configure-flags)
"Compose the configure flag lists of ffmpeg-jami."
#~(append '#$%ffmpeg-default-configure-flags
(if (string-contains #$(%current-system) "linux")
'#$%ffmpeg-linux-configure-flags
'())))
(define-public ffmpeg-jami
(package
(inherit ffmpeg)
(name "ffmpeg-jami")
(arguments
(substitute-keyword-arguments (package-arguments ffmpeg)
((#:configure-flags _ '())
#~(cons* "--disable-static"
"--enable-shared"
"--disable-stripping"
#$(ffmpeg-compose-configure-flags)))
((#:phases phases)
#~(modify-phases #$phases
(add-after 'unpack 'apply-patches
(lambda _
;; These patches come from:
;; "jami-project/daemon/contrib/src/ffmpeg/rules.mak".
(#$jami-apply-custom-patches
#:dep-name "ffmpeg"
#:patches '("remove-mjpeg-log"
"change-RTCP-ratio"
"rtp_ext_abs_send_time"
"libopusdec-enable-FEC"
"libopusenc-reload-packet-loss-at-encode"
"screen-sharing-x11-fix"))))))))))
(define-public libjami (define-public libjami
(package (package
(name "libjami") (name "libjami")
(version %jami-version) (version %jami-nightly-version)
(source %jami-sources) (source (origin
(method git-fetch)
(uri (git-reference
(url "https://review.jami.net/jami-daemon")
(commit %jami-daemon-commit)))
(file-name (git-file-name name version))
(sha256
(base32
"16qx50xz2mkw894irjsvql82iw7wpc5xncxpvw1nqd2sxhgfiq0i"))
(patches (search-patches
"libjami-ac-config-files.patch"
"jami-disable-integration-tests.patch"))))
(outputs '("out" "bin" "debug")) ;"bin' contains jamid (outputs '("out" "bin" "debug")) ;"bin' contains jamid
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
@ -378,13 +106,25 @@
;; user scripts too, until more general purpose Scheme bindings are made ;; user scripts too, until more general purpose Scheme bindings are made
;; available (see: test/agent/README.md). ;; available (see: test/agent/README.md).
#:configure-flags #~(list "--enable-agent" "--enable-debug") #:configure-flags #~(list "--enable-agent" "--enable-debug")
#:make-flags #~(list "V=1") ;build verbosely #:make-flags
#~(list
"V=1" ;build verbosely
;; The 'ut_media_player' is known to fail (see:
;; https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/935).
"XFAIL_TESTS=ut_media_player")
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'change-directory/maybe (add-after 'unpack 'change-directory/maybe
(lambda _ (lambda _
;; Allow building from the tarball or a git checkout. ;; Allow building from the tarball or a git checkout.
(false-if-exception (chdir "daemon")))) (false-if-exception (chdir "daemon"))))
(add-after 'change-directory/maybe 'extend-scheduler-test-timeout
(lambda _
;; The ut_scheduler unit test may fail on slower machines (see:
;; https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/939).
(substitute* "test/unitTest/scheduler.cpp"
(("std::chrono::seconds\\(3)")
"std::chrono::seconds(30)"))))
(add-after 'install 'delete-static-libraries (add-after 'install 'delete-static-libraries
;; Remove 100+ MiB of static libraries. "--disable-static" cannot ;; Remove 100+ MiB of static libraries. "--disable-static" cannot
;; be used as the test suite requires access to private symbols ;; be used as the test suite requires access to private symbols
@ -409,14 +149,14 @@
(inputs (inputs
(list alsa-lib (list alsa-lib
asio asio
dbus-c++ dhtnet
eudev eudev
ffmpeg-jami ffmpeg-jami
guile-3.0 guile-3.0
jack-1 jack-1
jsoncpp jsoncpp
libarchive libarchive
libgit2 libgit2-1.6
libnatpmp libnatpmp
libsecp256k1 libsecp256k1
libupnp libupnp
@ -424,6 +164,7 @@
openssl openssl
pjproject-jami pjproject-jami
pulseaudio pulseaudio
sdbus-c++
speex speex
speexdsp speexdsp
webrtc-audio-processing webrtc-audio-processing
@ -447,18 +188,71 @@ service definitions.")
(home-page "https://jami.net/") (home-page "https://jami.net/")
(license license:gpl3+))) (license license:gpl3+)))
;;; Private package; this is used in source form: the project build system has
;;; no install target.
(define sortfilterproxymodel
;; Use the latest commit available from the 'qt-6' branch.
(let ((commit "6cc21205dbf36640613f0e6e67b2b13b1855c377")
(revision "0"))
(package
(name "sortfilterproxymodel")
;; There are no recent release tag; the module version defined in the
;; source is used (see:
;; https://github.com/oKcerG/SortFilterProxyModel/blob/
;; 5a930885b7ea99f7f41c25fce08bf8006ee54e3f/
;; qqmlsortfilterproxymodel.cpp#L574C15-L574C15).
(version (git-version "0.2" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
;; The upstream is
;; https://github.com/oKcerG/SortFilterProxyModel, but
;; it lacks Qt 6 support, so use this fork, which is the
;; one used by Jami.
(url "https://github.com/atraczyk/SortFilterProxyModel")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1n54jkimr3a818i3w7w3lnbqn47x72nnr5xi9vk0mdnbwri3viwy"))))
(build-system qt-build-system)
(arguments
(list #:qtbase qtbase ;use Qt 6
#:tests? #f ;no test suite
#:configure-flags #~(list "BUILD_SFPM_PIC=ON")))
(inputs (list qtdeclarative))
(home-page "https://github.com/oKcerG/SortFilterProxyModel")
(synopsis "Improved QSortFilterProxyModel implementation for QML")
(description "SortFilterProxyModel is an implementation of
QSortFilterProxyModel conveniently exposed for QML.")
(license license:expat))))
(define-public jami (define-public jami
(package (package
(name "jami") (name "jami")
(version %jami-version) (version %jami-nightly-version)
(source %jami-sources) (source (origin
(method git-fetch)
(uri (git-reference
(url "https://review.jami.net/jami-client-qt")
(commit (string-append "nightly/" %jami-nightly-version))))
(file-name (git-file-name name version))
(sha256
(base32
"0ypbbyqmq6x9zq4sr550k38v8pg7yq685bmwqmigqzhqgfazcg97"))
(patches (search-patches
"jami-libjami-headers-search.patch"
"jami-qml-tests-discovery.patch"
"jami-skip-tests-requiring-internet.patch"
"jami-unbundle-dependencies.patch"))))
(build-system qt-build-system) (build-system qt-build-system)
(outputs '("out" "debug")) (outputs '("out" "debug"))
(arguments (arguments
(list (list
#:qtbase qtbase #:qtbase qtbase
#:configure-flags #:configure-flags
#~(list "-DENABLE_TESTS=ON" #~(list "-DWITH_DAEMON_SUBMODULE=OFF"
"-DENABLE_TESTS=ON"
;; Disable the webengine since it grows the closure size by ;; Disable the webengine since it grows the closure size by
;; about 450 MiB and requires more resources. ;; about 450 MiB and requires more resources.
"-DWITH_WEBENGINE=OFF" "-DWITH_WEBENGINE=OFF"
@ -467,11 +261,7 @@ service definitions.")
"-DENABLE_LIBWRAP=ON") "-DENABLE_LIBWRAP=ON")
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'change-directory/maybe (add-after 'unpack 'fix-version-string
(lambda _
;; Allow building from the tarball or a git checkout.
(false-if-exception (chdir "client-qt"))))
(add-after 'change-directory/maybe 'fix-version-string
(lambda _ (lambda _
(substitute* "src/app/version.h" (substitute* "src/app/version.h"
(("VERSION_STRING") (("VERSION_STRING")
@ -480,6 +270,17 @@ service definitions.")
(string-append "const char VERSION_STRING[] = \"" (string-append "const char VERSION_STRING[] = \""
#$version "\";\n" #$version "\";\n"
anchor))))) anchor)))))
(add-after 'unpack 'copy-3rdparty-source-dependencies
(lambda _
(copy-recursively #$(package-source sortfilterproxymodel)
"3rdparty/SortFilterProxyModel")))
(add-before 'configure 'fake-x11-environment
(lambda _
;; This works around the lack of configuration for the X11
;; push-to-talk feature, which is auto-detected via the
;; XDG_SESSION_TYPE environment variable (see:
;; https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1504).
(setenv "XDG_SESSION_TYPE" "x11")))
(replace 'check (replace 'check
(lambda* (#:key tests? #:allow-other-keys) (lambda* (#:key tests? #:allow-other-keys)
(when tests? (when tests?
@ -489,21 +290,12 @@ service definitions.")
(setenv "HOME" "/tmp") (setenv "HOME" "/tmp")
(display "Running unit tests...\n") (display "Running unit tests...\n")
(invoke "tests/unittests" "-mutejamid") (invoke "tests/unit_tests")
;; XXX: There are currently multiple failures with the ;; XXX: The QML test suite fails, exiting with status code 1 (see:
;; functional tests (see: ;; https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/883).
;; https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/883),
;; so the code below is disabled for now.
;;
;; (display "Running functional tests...\n") ;; (display "Running functional tests...\n")
;; ;; This is to allow building from the source tarball or ;; (invoke "tests/qml_tests")
;; ;; directly from the git repository.
;; (let ((tests-qml (if (file-exists? "../client-qt/tests")
;; "../client-qt/tests/qml"
;; "../tests/qml")))
;; (invoke "tests/qml_tests" "-mutejamid"
;; "-input" tests-qml))
)))))) ))))))
(native-inputs (native-inputs
(list googletest (list googletest
@ -518,6 +310,7 @@ service definitions.")
libnotify libnotify
libxcb libxcb
libxkbcommon libxkbcommon
md4c
network-manager network-manager
qrencode qrencode
qt5compat qt5compat
@ -526,6 +319,7 @@ service definitions.")
qtnetworkauth qtnetworkauth
qtpositioning qtpositioning
qtsvg qtsvg
tidy-html ;used by src/app/htmlparser.h
vulkan-loader)) vulkan-loader))
(home-page "https://jami.net") (home-page "https://jami.net")
(synopsis "Qt Jami client") (synopsis "Qt Jami client")
@ -538,8 +332,8 @@ P2P-DHT.")
(define-public jami-docs (define-public jami-docs
;; There aren't any tags, so use the latest commit. ;; There aren't any tags, so use the latest commit.
(let ((revision "1") (let ((revision "2")
(commit "ff466ebadb9b99a1672a814126793de670c3099b")) (commit "a48997de84cc4933bd111fa93fbf6a58189b166d"))
(package (package
(name "jami-docs") (name "jami-docs")
(version (git-version "0.0.0" revision commit)) (version (git-version "0.0.0" revision commit))
@ -551,7 +345,7 @@ P2P-DHT.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1n8a9dk8mi617rk3ycz5jrzbwv9ybfynlci5faz1klckx0aqdf6q")))) "0a1kcflvk39aag2vk83cn4m0ifkgb3gvwkr8pbbvf0hcd2cj2j31"))))
(build-system copy-build-system) (build-system copy-build-system)
(arguments (arguments
(list (list

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -21,6 +21,7 @@
#:use-module (guix licenses) #:use-module (guix licenses)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)) #:use-module (guix build-system gnu))
(define-public libsigsegv (define-public libsigsegv
@ -40,21 +41,15 @@
(arguments (arguments
`(;; The shared library isn't built by default but some packages need it. `(;; The shared library isn't built by default but some packages need it.
#:configure-flags '("--enable-shared") #:configure-flags '("--enable-shared")
;; On some architectures 'struct sigcontext' gets redefined from
;; On MIPS, work around this error: ;; %linux-libre-headers/include/asm/sigcontext.h
;; ,@(cond ((%current-target-system)
;; 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 `(#:phases (modify-phases %standard-phases
(add-before 'configure 'patch-mips-old-h (add-before 'configure 'patch-asm-sigcontext-h
(lambda _ (lambda _
(substitute* "src/fault-linux-mips-old.h" (substitute* (find-files "src" "^fault-.*-old\\.h$")
(("#include <asm/sigcontext\\.h>") "")) (("#include <asm/sigcontext\\.h>") "")))))))
#t)))) (else '()))))
'())))
(description (description
"GNU libsigsegv is a library to handle page faults, which occur when a "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 program tries to access an unavailable region of memory, in user mode. By

View File

@ -76,7 +76,7 @@
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023 dan <i@dan.games> ;;; Copyright © 2023 dan <i@dan.games>
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com> ;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
;;; Copyright © 2023 Wilko Meyer <w@wmeyer.eu> ;;; Copyright © 2023, 2024 Wilko Meyer <w@wmeyer.eu>
;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com> ;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -494,17 +494,17 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "stable" kernels. That is, the most recently released major ;; The current "stable" kernels. That is, the most recently released major
;; versions that are still supported upstream. ;; 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.10")
(define-public linux-libre-6.6-gnu-revision "gnu") (define-public linux-libre-6.6-gnu-revision "gnu")
(define deblob-scripts-6.6 (define deblob-scripts-6.6
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
linux-libre-6.6-version linux-libre-6.6-version
linux-libre-6.6-gnu-revision linux-libre-6.6-gnu-revision
(base32 "0g8m0rb15b0231dv8ji456s75a67szsaim71may3yprplycz6pav") (base32 "0g8m0rb15b0231dv8ji456s75a67szsaim71may3yprplycz6pav")
(base32 "1hg3ck1j8288fhlhcvhgs1zzwh3i62nfvphw7x3vsaqr75kiwbjp"))) (base32 "0kavbby960k7wg355p3hjb9v1c4gnk8dv3lkfhpz44ayhv7kihg5")))
(define-public linux-libre-6.6-pristine-source (define-public linux-libre-6.6-pristine-source
(let ((version linux-libre-6.6-version) (let ((version linux-libre-6.6-version)
(hash (base32 "05i4ayj9wyjkd1s8ixx7bxwcyagqyx8rhj1zvbc3cjqyw4sc8djh"))) (hash (base32 "0v2l0l90w7scv7bxkxxjgqnay0fjh678k9gdlgycgbh9q7j2grly")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-6.6))) deblob-scripts-6.6)))
@ -512,92 +512,92 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The "longterm" kernels — the older releases with long-term upstream support. ;; The "longterm" kernels — the older releases with long-term upstream support.
;; Here are the support timelines: ;; Here are the support timelines:
;; <https://www.kernel.org/category/releases.html> ;; <https://www.kernel.org/category/releases.html>
(define-public linux-libre-6.1-version "6.1.69") (define-public linux-libre-6.1-version "6.1.71")
(define-public linux-libre-6.1-gnu-revision "gnu") (define-public linux-libre-6.1-gnu-revision "gnu")
(define deblob-scripts-6.1 (define deblob-scripts-6.1
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
linux-libre-6.1-version linux-libre-6.1-version
linux-libre-6.1-gnu-revision linux-libre-6.1-gnu-revision
(base32 "1sf80f2i4vf888xjcn84ymn4w5ynn30ib9033zwmv7f09yvfhapy") (base32 "1sf80f2i4vf888xjcn84ymn4w5ynn30ib9033zwmv7f09yvfhapy")
(base32 "1hdibv43xbn1lv83i6qjgfmf1bvqxvq17fryfsq4r4sjgs9212js"))) (base32 "1jg2v1nxd6i5x536vmd1l14xhpzrcimpmjfipb1zkrwil102y25f")))
(define-public linux-libre-6.1-pristine-source (define-public linux-libre-6.1-pristine-source
(let ((version linux-libre-6.1-version) (let ((version linux-libre-6.1-version)
(hash (base32 "0hdm28k49kmy9r96hckps0bvvaq9m06l72n8ih305rccs6a2cgby"))) (hash (base32 "0hghnwsa282js9hy4krhdbgrb4khjzslr05zgvjx9zzragfp9xrd")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-6.1))) deblob-scripts-6.1)))
(define-public linux-libre-5.15-version "5.15.145") (define-public linux-libre-5.15-version "5.15.146")
(define-public linux-libre-5.15-gnu-revision "gnu") (define-public linux-libre-5.15-gnu-revision "gnu")
(define deblob-scripts-5.15 (define deblob-scripts-5.15
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
linux-libre-5.15-version linux-libre-5.15-version
linux-libre-5.15-gnu-revision linux-libre-5.15-gnu-revision
(base32 "18ac30kxg2mf2f6gk3p935hzhz2qs110jy4xwk21kblnnkskbxj8") (base32 "18ac30kxg2mf2f6gk3p935hzhz2qs110jy4xwk21kblnnkskbxj8")
(base32 "1idjrn2w8jrixj8ifkk1awxyyq5042nc4p2mld4rda96azlnp948"))) (base32 "14pw0yl0yxdgcdp01rpi91ylil9irwzxfq04kfvn3gg2abaq37bn")))
(define-public linux-libre-5.15-pristine-source (define-public linux-libre-5.15-pristine-source
(let ((version linux-libre-5.15-version) (let ((version linux-libre-5.15-version)
(hash (base32 "086nssif66s86wkixz4yb7xilz1k49g32l0ib28r8fjzc23rv95j"))) (hash (base32 "14nijbspmzd4r38l8cpl4vn9dhawzcfnhyc0gnaxl2m8l9gpm02s")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-5.15))) deblob-scripts-5.15)))
(define-public linux-libre-5.10-version "5.10.205") (define-public linux-libre-5.10-version "5.10.206")
(define-public linux-libre-5.10-gnu-revision "gnu1") (define-public linux-libre-5.10-gnu-revision "gnu1")
(define deblob-scripts-5.10 (define deblob-scripts-5.10
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
linux-libre-5.10-version linux-libre-5.10-version
linux-libre-5.10-gnu-revision linux-libre-5.10-gnu-revision
(base32 "1b33rkn32b923025iiz4xzxiy8y5ii9j5qk4021mg575890rl4ch") (base32 "1b33rkn32b923025iiz4xzxiy8y5ii9j5qk4021mg575890rl4ch")
(base32 "0xrrnmb5kcc5r21bdm24aq0fnkk1imn367c1cxlj78b6l6gigx4b"))) (base32 "0zmmqj5gyiy2q81f199c29b14isfiqbvl87y72k14yy0q5398276")))
(define-public linux-libre-5.10-pristine-source (define-public linux-libre-5.10-pristine-source
(let ((version linux-libre-5.10-version) (let ((version linux-libre-5.10-version)
(hash (base32 "0qw8g0h4k0b4dyvspbj51cwr68ihwjzsi2b2261ipy3l1nl1fln5"))) (hash (base32 "0ns8qxcrxj9i76b93xcghl002l8vbkg7ksd435sikig62qr62gf4")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-5.10))) deblob-scripts-5.10)))
(define-public linux-libre-5.4-version "5.4.265") (define-public linux-libre-5.4-version "5.4.266")
(define-public linux-libre-5.4-gnu-revision "gnu1") (define-public linux-libre-5.4-gnu-revision "gnu1")
(define deblob-scripts-5.4 (define deblob-scripts-5.4
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
linux-libre-5.4-version linux-libre-5.4-version
linux-libre-5.4-gnu-revision linux-libre-5.4-gnu-revision
(base32 "0xg5cz82k2cb0ikxvwv1hp5c3h377jkb5sd6aszvsk7hnabhk62v") (base32 "0xg5cz82k2cb0ikxvwv1hp5c3h377jkb5sd6aszvsk7hnabhk62v")
(base32 "0sw67b2pk3lng4y67diqqnhxaggnp3nbkx8dxc5fs27rinfxr4m1"))) (base32 "08wn4rjrmi8asmdkg92xbbm6v0sw44kackp69agbw57zy6fp2zys")))
(define-public linux-libre-5.4-pristine-source (define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version) (let ((version linux-libre-5.4-version)
(hash (base32 "05cvvwjiznn7hfd02qklklalg0chahvh5v18w64lcva6kzj9kbjd"))) (hash (base32 "1dmcn9i3nvf1gldm1a32gnl5ybwbk2lizb3wa4gc06g7dxz2y1ys")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-5.4))) deblob-scripts-5.4)))
(define-public linux-libre-4.19-version "4.19.303") (define-public linux-libre-4.19-version "4.19.304")
(define-public linux-libre-4.19-gnu-revision "gnu1") (define-public linux-libre-4.19-gnu-revision "gnu1")
(define deblob-scripts-4.19 (define deblob-scripts-4.19
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
linux-libre-4.19-version linux-libre-4.19-version
linux-libre-4.19-gnu-revision linux-libre-4.19-gnu-revision
(base32 "0pjal2cc2f99cvw8r4icb4l24j41k48jkj6bqk7pcahzcgx33ycb") (base32 "0pjal2cc2f99cvw8r4icb4l24j41k48jkj6bqk7pcahzcgx33ycb")
(base32 "1425mhkfxn18vxn05bb4h3li7x1jl7l1hf1zi8xhnqv3wa31h9wl"))) (base32 "07j33w4pq319gaypfsym6v0i2xqc5jagm47nxyy2010zn8k6y8kd")))
(define-public linux-libre-4.19-pristine-source (define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version) (let ((version linux-libre-4.19-version)
(hash (base32 "0dlbl47xs7z4yf9cxbxqzd7zs1f9070jr6ck231wgppa6lwwwb82"))) (hash (base32 "165mljr8v1cf4vf4a4b44hx089rprkssvi2azq5wbxxg3basbind")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-4.19))) deblob-scripts-4.19)))
(define-public linux-libre-4.14-version "4.14.334") (define-public linux-libre-4.14-version "4.14.335")
(define-public linux-libre-4.14-gnu-revision "gnu1") (define-public linux-libre-4.14-gnu-revision "gnu1")
(define deblob-scripts-4.14 (define deblob-scripts-4.14
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
linux-libre-4.14-version linux-libre-4.14-version
linux-libre-4.14-gnu-revision linux-libre-4.14-gnu-revision
(base32 "1vbgykwzf7j0yjqcwn747cfhwj0rgw3s9h627q94wb9a19x9p0fr") (base32 "1vbgykwzf7j0yjqcwn747cfhwj0rgw3s9h627q94wb9a19x9p0fr")
(base32 "1faagsj4i31z2bp83hflx3q9vrddjnn37a3ah2b47iaplva7z1nd"))) (base32 "1ir96bbhw77xw6lmsnh42gi130nnzjklpgfyd46pxmqckrpydcvx")))
(define-public linux-libre-4.14-pristine-source (define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version) (let ((version linux-libre-4.14-version)
(hash (base32 "0iaaqdkszmfarvjfszc9rf7y9zsv3w82934xmvmzmsbiz86547ca"))) (hash (base32 "0aa0xi1sn4rw9ichgmvxp0s9hsi6rfzhzd9wgbvzvc90md2qfs19")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-4.14))) deblob-scripts-4.14)))

View File

@ -23,7 +23,7 @@
;;; Copyright © 2020-2023 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2020-2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2021, 2022 Aurora <rind38@disroot.org> ;;; Copyright © 2021, 2022 Aurora <rind38@disroot.org>
;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org> ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
;;; Copyright © 2021, 2022, 2023 André A. Gomes <andremegafone@gmail.com> ;;; Copyright © 2021-2024 André A. Gomes <andremegafone@gmail.com>
;;; Copyright © 2021, 2022, 2023 Cage <cage-dev@twistfold.it> ;;; Copyright © 2021, 2022, 2023 Cage <cage-dev@twistfold.it>
;;; Copyright © 2021 Cameron Chaparro <cameron@cameronchaparro.com> ;;; Copyright © 2021 Cameron Chaparro <cameron@cameronchaparro.com>
;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com> ;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
@ -6126,6 +6126,38 @@ BTCPay, Paypal, and Stripe.")
(define-public ecl-lisp-pay (define-public ecl-lisp-pay
(sbcl-package->ecl-package sbcl-lisp-pay)) (sbcl-package->ecl-package sbcl-lisp-pay))
(define-public sbcl-stripe
(let ((commit "b59631d21d63e101de6eb96b56941471504ba644")
(revision "0"))
(package
(name "sbcl-stripe")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/atlas-engineer/stripe")
(commit commit)))
(file-name (git-file-name "cl-stripe" version))
(sha256
(base32 "00sfq2f6dnpwa6pf7rgw5hazbwx4yf1g0jrkfz9h4kq5zyxwk1cy"))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-dexador
sbcl-golden-utils
sbcl-local-time
sbcl-yason))
(home-page "https://github.com/atlas-engineer/stripe")
(synopsis "Stripe payment API client for Common Lisp")
(description "A client for the Stripe payment API.")
(license license:expat))))
(define-public cl-stripe
(sbcl-package->cl-source-package sbcl-stripe))
(define-public ecl-stripe
(sbcl-package->ecl-package sbcl-stripe))
(define-public sbcl-drakma (define-public sbcl-drakma
(package (package
(name "sbcl-drakma") (name "sbcl-drakma")
@ -26284,19 +26316,21 @@ extra features like type inference.")
(sbcl-package->cl-source-package sbcl-nclasses)) (sbcl-package->cl-source-package sbcl-nclasses))
(define-public sbcl-prompter (define-public sbcl-prompter
(let ((commit "7890ed5d02e70aba01ceb964c6ee4f40776e7dc0")
(revision "0"))
(package (package
(name "sbcl-prompter") (name "sbcl-prompter")
(version "0.1.1") (version (git-version "0.1.1" revision commit))
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/atlas-engineer/prompter") (url "https://github.com/atlas-engineer/prompter")
(commit version))) (commit commit)))
(file-name (git-file-name "cl-prompter" version)) (file-name (git-file-name "cl-prompter" version))
(sha256 (sha256
(base32 (base32
"008bq36siza9qwmz6b1pvpm53lxmzryahnhy372l18gl3180in03")))) "0r15a6cagyp5x8aqx92ln2anni737h73bdshkvpzrac04ajss4md"))))
(build-system asdf-build-system/sbcl) (build-system asdf-build-system/sbcl)
(inputs (inputs
(list (list
@ -26320,7 +26354,7 @@ Helm (@url{https://emacs-helm.github.io/helm/}). It only deals with the
backend side of things, it does not handle any display. Features include backend side of things, it does not handle any display. Features include
asynchronous suggestion computation, multiple sources, actions and resumable asynchronous suggestion computation, multiple sources, actions and resumable
prompters.") prompters.")
(license license:bsd-3))) (license license:bsd-3))))
(define-public cl-prompter (define-public cl-prompter
(sbcl-package->cl-source-package sbcl-prompter)) (sbcl-package->cl-source-package sbcl-prompter))

View File

@ -1486,7 +1486,7 @@ includes a compiler as well as an interpreter.")
(define-public s7-bootstrap (define-public s7-bootstrap
;; Need s7-bootstrap to build libc_s7.so (for the REPL) and run tests ;; 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")) (revision "0"))
(hidden-package (hidden-package
(package (package
@ -1500,7 +1500,7 @@ includes a compiler as well as an interpreter.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"03n1axdlypzmbgzrhlwfqwa1xiw36hi25j2hwc7vw77mz90cd9f8")))) "0kh1f49g24ppjpr16v1nc9lr7pvr5nzb82bpw8c6q8ll7pqalqaf"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list #:tests? #f ;no tests in bootstrap (list #:tests? #f ;no tests in bootstrap

View File

@ -27,6 +27,7 @@
;;; Copyright © 2022 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2022 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com> ;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space> ;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -2169,20 +2170,31 @@ using @code{clang-rename}.")))
;; AMDGPU is needed by the vulkan drivers. ;; AMDGPU is needed by the vulkan drivers.
#$(string-append "-DLLVM_TARGETS_TO_BUILD=" #$(string-append "-DLLVM_TARGETS_TO_BUILD="
(system->llvm-target) ";AMDGPU") (system->llvm-target) ";AMDGPU")
#$@(if (%current-target-system)
'("-DBUILD_SHARED_LIBS:BOOL=TRUE"
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE")
'())
;; Skipping tools and utils decreases the output by ~100 MiB. ;; Skipping tools and utils decreases the output by ~100 MiB.
"-DLLVM_BUILD_TOOLS=NO" "-DLLVM_BUILD_TOOLS=NO"
(remove (cut string-match (remove
"-DLLVM_(TARGETS_TO_BUILD|INSTALL_UTILS).*" <>) (cut string-match
#$(if (%current-target-system)
"-DLLVM_(LINK_LLVM_DYLIB|TARGETS_TO_BUILD|INSTALL_UTILS).*"
"-DLLVM_(TARGETS_TO_BUILD|INSTALL_UTILS).*") <>)
#$cf))) #$cf)))
((#:phases phases '%standard-phases) ((#:phases phases '%standard-phases)
#~(modify-phases #$phases #~(modify-phases #$phases
(add-after 'install 'delete-static-libraries #$@(if (%current-target-system)
;; If these are just relocated then llvm-config can't find them. '()
#~((add-after 'install 'delete-static-libraries
;; If these are just relocated then llvm-config
;; can't find them.
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(for-each delete-file (for-each delete-file
(find-files (string-append (find-files
(string-append
(assoc-ref outputs "out") "/lib") (assoc-ref outputs "out") "/lib")
"\\.a$")))) "\\.a$"))))))
;; llvm-config is how mesa and others find the various ;; llvm-config is how mesa and others find the various
;; libraries and headers they use. ;; libraries and headers they use.
(add-after 'install 'build-and-install-llvm-config (add-after 'install 'build-and-install-llvm-config

View File

@ -232,7 +232,7 @@ output in multiple windows in a terminal.")
(list "-DSPDLOG_BUILD_BENCH=OFF" (list "-DSPDLOG_BUILD_BENCH=OFF"
"-DSPDLOG_BUILD_SHARED=ON" "-DSPDLOG_BUILD_SHARED=ON"
"-DSPDLOG_BUILD_TESTS=ON"))) "-DSPDLOG_BUILD_TESTS=ON")))
(native-inputs (list catch2-3.3)) (native-inputs (list catch2-3))
(home-page "https://github.com/gabime/spdlog") (home-page "https://github.com/gabime/spdlog")
(synopsis "Fast C++ logging library") (synopsis "Fast C++ logging library")
(description "Spdlog is a very fast header-only/compiled C++ logging (description "Spdlog is a very fast header-only/compiled C++ logging

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015-2023 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015-2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2020-2023 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2020-2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016, 2017, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
@ -21,6 +21,7 @@
;;; Copyright © 2023 zamfofex <zamfofex@twdb.moe> ;;; Copyright © 2023 zamfofex <zamfofex@twdb.moe>
;;; Copyright © 2023 Navid Afkhami <navid.afkhami@mdc-berlin.de> ;;; Copyright © 2023 Navid Afkhami <navid.afkhami@mdc-berlin.de>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -812,6 +813,94 @@ SentencePiece allows us to make a purely end-to-end system that does not
depend on language-specific pre- or post-processing.") depend on language-specific pre- or post-processing.")
(license license:asl2.0))) (license license:asl2.0)))
(define-public python-hopcroftkarp
;; This commit fixes a broken import, but has not been released to PyPI.
(let ((commit "2846e1dd3265d95d2bddb0cf4190b830cbb4efe6")
(revision "1"))
(package
(name "python-hopcroftkarp")
(version (git-version "1.2.5" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sofiatolaosebikan/hopcroftkarp")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "018ilrp41fcclmb5lsml3aijwbmhbq3m7wy65hr1fryj0avic8fr"))))
(build-system pyproject-build-system)
(home-page "https://github.com/sofiatolaosebikan/hopcroftkarp")
(synopsis "Implementation of the Hopcroft-Karp algorithm")
(description
"This package implements the Hopcroft-Karp algorithm, producing a maximum
cardinality matching from a bipartite graph.")
(license license:gpl3))))
(define-public python-persim
(package
(name "python-persim")
(version "0.3.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "persim" version))
(sha256
(base32 "0q8wfakx8q4h3ryvw8cba0v6z7xn9139qkrzs3mi1ggyzacnx9d7"))))
(build-system pyproject-build-system)
(propagated-inputs (list python-deprecated
python-hopcroftkarp
python-joblib
python-matplotlib
python-numpy
python-scikit-learn
python-scipy))
(native-inputs (list python-pytest python-pytest-cov))
(home-page "https://persim.scikit-tda.org")
(synopsis "Tools for analyzing persistence diagrams in Python")
(description
"This package includes a variety of tools used to analyze persistence diagrams.
It currently houses implementations of
@itemize
@item Persistence images
@item Persistence landscapes
@item Bottleneck distance
@item Modified GromovHausdorff distance
@item Sliced Wasserstein kernel
@item Heat kernel
@item Diagram plotting
@end itemize
")
(license license:expat))) ; MIT License
(define-public python-ripser
(package
(name "python-ripser")
(version "0.6.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ripser" version))
(sha256
(base32 "1575nwsn6b29z7w1mjk23ri83bxq2b4ld979hpgm174642a3x6vs"))))
(build-system pyproject-build-system)
(propagated-inputs (list python-numpy python-persim python-scikit-learn
python-scipy))
(native-inputs (list python-cython python-pytest))
(home-page "https://ripser.scikit-tda.org")
(synopsis "Persistent homology library for Python")
(description
"This package implements a variety of persistent homology algorithms. It
provides an interface for
@itemize
@item computing persistence cohomology of sparse and dense data sets
@item visualizing persistence diagrams
@item computing lowerstar filtrations on images
@item computing representative cochains
@end itemize
")
(license license:expat))) ; MIT License
(define-public python-sacrebleu (define-public python-sacrebleu
(package (package
(name "python-sacrebleu") (name "python-sacrebleu")
@ -1151,6 +1240,11 @@ in terms of new algorithms.")
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
'(#:phases (modify-phases %standard-phases '(#: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 (add-before 'build 'pass-cmake-arguments
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
;; Pass options to the CMake-based build process. ;; Pass options to the CMake-based build process.
@ -1235,7 +1329,13 @@ operators and standard data types.")
'(begin '(begin
(delete-file-recursively "third_party") (delete-file-recursively "third_party")
(substitute* "onnx/backend/test/runner/__init__.py" (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 (define-public python-onnx
;; This used to be called "python-onnx" because it provided nothing but ;; This used to be called "python-onnx" because it provided nothing but
@ -1262,7 +1362,12 @@ operators and standard data types.")
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet '(delete-file-recursively "third_party")))) (snippet '(delete-file-recursively "third_party"))))
(build-system python-build-system) (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 (native-inputs
(list cmake python-pytest python-pytest-runner python-nbval (list cmake python-pytest python-pytest-runner python-nbval
python-coverage)) python-coverage))

View File

@ -52,7 +52,7 @@
(define-public minetest (define-public minetest
(package (package
(name "minetest") (name "minetest")
(version "5.7.0") (version "5.8.0")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -61,7 +61,7 @@
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"008l44zwwsarwk4hn7wx2nj2m21b1iqsphl7g69rrlxj760zl0pl")) "1sww17h8z77w38jk19nsqxn8xcj27msq0glbil7pyj4i0ffprjrr"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -166,7 +166,7 @@ in different ways.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"02kbj1h6jsq6k8x4v2ir0njczdz7nyx6dbym85ixxp3mrqxiws61")))) "1pq4rm15lzwcqv6npgyz6v89hi3zj8zybw25n9i0d27qj786xc4z"))))
(build-system copy-build-system) (build-system copy-build-system)
(arguments (arguments
(list #:install-plan (list #:install-plan

View File

@ -117,7 +117,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
(define-public mpd (define-public mpd
(package (package
(name "mpd") (name "mpd")
(version "0.23.14") (version "0.23.15")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -126,7 +126,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
"/mpd-" version ".tar.xz")) "/mpd-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1lh9nn4a7ng6i08df7rbs8c4nbgmz883pss9p2gswa6m4rsadfc5")))) "06k60ych9crifyx6zfc98hdcihixq5nba1c9rwngib6ik8ik40am"))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments (arguments
(list (list
@ -162,6 +162,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
boost boost
chromaprint chromaprint
curl curl
dbus
elogind elogind
expat expat
ffmpeg ffmpeg

View File

@ -6,7 +6,7 @@
;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018, 2019, 2021, 2023 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018, 2019, 2021, 2023, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
@ -71,6 +71,8 @@
;; they produce different headers. We need shared. ;; they produce different headers. We need shared.
`("--disable-static" `("--disable-static"
"--enable-shared")) "--enable-shared"))
((target-x32?)
`("ABI=x32"))
(else '()))) (else '())))
;; Remove after core-updates merge. ;; Remove after core-updates merge.
;; Workaround for gcc-7 transition breakage, -system and cross-build, ;; Workaround for gcc-7 transition breakage, -system and cross-build,

View File

@ -26,7 +26,7 @@
;;; Copyright © 2018, 2020-2022 Marius Bakke <marius@gnu.org> ;;; Copyright © 2018, 2020-2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2018, 2020, 2021, 2022 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018, 2020, 2021, 2022 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019, 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019, 2020, 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Vasile Dumitrascu <va511e@yahoo.com> ;;; Copyright © 2019 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si> ;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
@ -164,8 +164,10 @@
#:use-module (gnu packages sqlite) #:use-module (gnu packages sqlite)
#:use-module (gnu packages ssh) #:use-module (gnu packages ssh)
#:use-module (gnu packages tcl) #:use-module (gnu packages tcl)
#:use-module (gnu packages telephony)
#:use-module (gnu packages textutils) #:use-module (gnu packages textutils)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages upnp)
#:use-module (gnu packages valgrind) #:use-module (gnu packages valgrind)
#:use-module (gnu packages web) #:use-module (gnu packages web)
#:use-module (gnu packages wxwidgets) #:use-module (gnu packages wxwidgets)
@ -1414,39 +1416,50 @@ files contain direct mappings of the abstractions provided by the ØMQ C API.")
(license license:expat))) (license license:expat)))
(define-public libnatpmp (define-public libnatpmp
;; Install the latest commit as it provides a pkg-config (.pc) file.
(let ((base-version "20230423")
(commit "6a850fd2bd9b08e6edc886382a1dbae2a7df55ec")
(revision "0"))
(package (package
(name "libnatpmp") (name "libnatpmp")
(version "20230423") (version (git-version base-version revision commit))
(source (origin (source (origin
(method url-fetch) (method git-fetch)
(uri (string-append (uri (git-reference
"http://miniupnp.free.fr/files/" (url "https://github.com/miniupnp/libnatpmp")
name "-" version ".tar.gz")) (commit commit)))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0w7wvf4yi8qv659dg9d3ndqvh3bqhgm21gd135spwhq6hhnfv106")))) "18hf9a3i3mncl3w80nzi1684iac3by86bv0hgmbm1v2w8gbfjyw0"))))
(build-system gnu-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'check)) ; no tests
#:make-flags
(let* ((target ,(%current-target-system))
(gcc (if target
(string-append target "-gcc")
"gcc")))
(list (list
(string-append "CC=" gcc) #:tests? #f ;no test suite
(string-append "INSTALLPREFIX=" (assoc-ref %outputs "out")) #:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON")
(string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))))) #:phases
(home-page "http://miniupnp.free.fr/libnatpmp.html") #~(modify-phases %standard-phases
(add-after 'unpack 'patch-build-system
;; Have CMake install the natpmp_declspec.h missing header file
;; that is referenced by natpmp.h (see:
;; https://github.com/miniupnp/libnatpmp/issues/41).
(lambda _
(substitute* "CMakeLists.txt"
(("install\\(FILES natpmp.h")
"install(FILES natpmp.h natpmp_declspec.h"))))
(add-after 'unpack 'fix-version
(lambda _
(with-output-to-file "VERSION"
(lambda ()
(display #$base-version))))))))
(native-inputs (list which))
(home-page "https://miniupnp.tuxfamily.org/libnatpmp.html")
(synopsis "C library implementing NAT-PMP") (synopsis "C library implementing NAT-PMP")
(description (description
"@code{libnatpmp} is a portable and asynchronous implementation of "@code{libnatpmp} is a portable and asynchronous implementation of
the Network Address Translation - Port Mapping Protocol (NAT-PMP) the Network Address Translation - Port Mapping Protocol (NAT-PMP)
written in the C programming language.") written in the C programming language.")
(license license:bsd-3))) (license license:bsd-3))))
(define-public librdkafka (define-public librdkafka
(package (package
@ -3382,14 +3395,14 @@ eight bytes) tools
(define-public asio (define-public asio
(package (package
(name "asio") (name "asio")
(version "1.22.2") (version "1.28.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/asio/asio/" (uri (string-append "mirror://sourceforge/asio/asio/"
version " (Stable)/asio-" version ".tar.bz2")) version " (Stable)/asio-" version ".tar.bz2"))
(sha256 (sha256
(base32 "0v5w9j4a02j2rkc7mrdj3ms0kfpqbgq2ipkixlz2l0p8xs0vfsvp")))) (base32 "0cp2c4v0kz0ln4bays0s3fr1mcxl527ay2lp7s14qbxx38vc5pfh"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
(list boost openssl)) (list boost openssl))
@ -3701,23 +3714,81 @@ communication over HTTP.")
(license license:agpl3+))) (license license:agpl3+)))
(define-public restinio (define-public restinio
;; Temporarily use an unreleased commit, which includes fixes to be able to
;; run the test suite in the resolver-less Guix build environment.
(let ((revision "0")
(commit "eda471ec3a2815965ca02ec93a1124a342b7601d"))
(package (package
(name "restinio") (name "restinio")
(version (git-version "0.6.18" revision commit)) (version "0.7.1")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/Stiffstream/restinio") (url "https://github.com/Stiffstream/restinio")
(commit commit))) (commit (string-append "v." version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0f4w7714r0ic7csgxydw2vzfh35ssk34pns9jycmc08dzc3r7whb")))) "06p9gcnzgynsgfxxa1lk58pq5755px7sn00x2xh21qjnspwld1sy"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments
(list
#:configure-flags
#~(list "-DRESTINIO_INSTALL=ON"
"-DRESTINIO_TEST=ON"
"-DRESTINIO_DEP_LLHTTP=system"
"-DRESTINIO_DEP_FMT=system"
"-DRESTINIO_DEP_EXPECTED_LITE=system"
"-DRESTINIO_DEP_CATCH2=system"
;; No support to use a system provided so_5
;; (see:
;; https://github.com/Stiffstream/restinio/issues/207).
"-DRESTINIO_WITH_SOBJECTIZER=OFF")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'change-directory
(lambda _
(chdir "dev")))
(add-after 'change-directory 'use-system-catch2
;; It's not currently possible to select a system-provided catch2,
;; so patch the build system (see:
;; https://github.com/Stiffstream/restinio/issues/208).
(lambda _
(substitute* "CMakeLists.txt"
(("add_subdirectory\\(catch2\\)")
"find_package(Catch2 REQUIRED)")))))))
(native-inputs
(list catch2-3
expected-lite
json-dto))
(inputs
(list openssl
sobjectizer))
(propagated-inputs
;; These are all #include'd by restinio's .hpp header files.
(list asio
fmt
llhttp
pcre
pcre2
zlib))
(home-page "https://stiffstream.com/en/products/restinio.html")
(synopsis "C++14 library that gives you an embedded HTTP/Websocket server")
(description "RESTinio is a header-only C++14 library that gives you an embedded
HTTP/Websocket server. It is based on standalone version of ASIO
and targeted primarily for asynchronous processing of HTTP-requests.")
(license license:bsd-3)))
(define-public restinio-0.6
(package
(inherit restinio)
(name "restinio")
(version "0.6.19")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Stiffstream/restinio")
(commit (string-append "v." version))))
(file-name (git-file-name name version))
(sha256
(base32
"1qrb1qr075r5059w984c4slgpsiwv94j6fmi9naa5l48dbi1p7jz"))))
(arguments (arguments
(list (list
#:configure-flags #~(list "-DRESTINIO_FIND_DEPS=ON" #:configure-flags #~(list "-DRESTINIO_FIND_DEPS=ON"
@ -3730,32 +3801,16 @@ communication over HTTP.")
(add-after 'unpack 'change-directory (add-after 'unpack 'change-directory
(lambda _ (lambda _
(chdir "dev")))))) (chdir "dev"))))))
(native-inputs (native-inputs (list catch2 clara json-dto))
(list catch2
clara
json-dto))
(inputs
(list openssl
sobjectizer))
(propagated-inputs
;; These are all #include'd by restinio's .hpp header files. ;; These are all #include'd by restinio's .hpp header files.
(list asio (propagated-inputs
fmt (modify-inputs (package-propagated-inputs restinio)
http-parser (replace "llhttp" http-parser)))))
pcre
pcre2
zlib))
(home-page "https://stiffstream.com/en/products/restinio.html")
(synopsis "C++14 library that gives you an embedded HTTP/Websocket server")
(description "RESTinio is a header-only C++14 library that gives you an embedded
HTTP/Websocket server. It is based on standalone version of ASIO
and targeted primarily for asynchronous processing of HTTP-requests.")
(license license:bsd-3))))
(define-public opendht (define-public opendht
(package (package
(name "opendht") (name "opendht")
(version "2.4.12") (version "3.1.7")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -3764,7 +3819,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0yji5pziqxfvyfizk3fn9j59bqlfdwfa1a0y9jjfknb2mmlwwb9w")))) "15jx62fm1frbbvpkxysvvwz1a8d605xi53aacf0bvp4mb1dzpddn"))))
(outputs '("out" "python" "tools" "debug")) (outputs '("out" "python" "tools" "debug"))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
@ -3792,6 +3847,14 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
(substitute* "tests/Makefile.am" (substitute* "tests/Makefile.am"
(("\\bdhtrunnertester\\.(h|cpp)\\b") (("\\bdhtrunnertester\\.(h|cpp)\\b")
"")))) ""))))
(add-after 'unupack 'relax-test-timeouts
(lambda _
;; At least the 'test_send_json' has been seen to fail
;; non-deterministically, but it seems hard to reproducible that
;; failure.
(substitute* "tests/httptester.cpp"
(("std::chrono::seconds\\(10)")
"std::chrono::seconds(30)"))))
(add-after 'unpack 'fix-python-installation-prefix (add-after 'unpack 'fix-python-installation-prefix
;; Specify the installation prefix for the compiled Python module ;; Specify the installation prefix for the compiled Python module
;; that would otherwise attempt to installs itself to Python's own ;; that would otherwise attempt to installs itself to Python's own
@ -3835,8 +3898,8 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
fmt fmt
readline)) readline))
(propagated-inputs (propagated-inputs
(list msgpack ;included in several installed headers (list msgpack-cxx ;included in several installed headers
restinio ;included in opendht/http.h restinio-0.6 ;included in opendht/http.h
;; The following are listed in the 'Requires.private' field of ;; The following are listed in the 'Requires.private' field of
;; opendht.pc: ;; opendht.pc:
argon2 argon2
@ -3880,6 +3943,60 @@ A very simple IM client working over the DHT.
@end table") @end table")
(license license:gpl3+))) (license license:gpl3+)))
(define-public dhtnet
;; There is no tag nor release; use the latest available commit.
(let ((revision "0")
(commit "8b6e99fd34f150fde5f21f3a57e0e9f28174c70c"))
(package
(name "dhtnet")
;; The base version is taken from the CMakeLists.txt file.
(version (git-version "0.0.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/savoirfairelinux/dhtnet")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1yhygsimcl9j6hbww1b77am1kgbcriczslcrfb838nbfh18n1780"))))
(outputs (list "out" "debug"))
(build-system cmake-build-system)
(arguments
(list
#:configure-flags #~(list "-DBUILD_DEPENDENCIES=OFF"
"-DBUILD_SHARED_LIBS=ON"
"-DBUILD_TESTING=ON")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'delete-problematic-tests
(lambda _
(substitute* "CMakeLists.txt"
;; The connectionManager test currently segfaults (see:
;; https://git.jami.net/savoirfairelinux/dhtnet/-/issues/18).
((".*tests_connectionManager.*") "")
;; The fileutils test fail, asserting an unexpected returned
;; value for the removeAll call when the directory to be
;; removed is missing (see:
;; https://git.jami.net/savoirfairelinux/dhtnet/-/issues/17).
((".*tests_fileutils.*") "")))))))
(native-inputs (list cppunit pkg-config))
;; This library depends on the Jami fork of pjproject that adds ICE
;; support.
(inputs
(list asio
fmt
msgpack-cxx
opendht
libupnp
pjproject-jami
readline))
(home-page "https://github.com/savoirfairelinux/dhtnet/")
(synopsis "OpenDHT network library for C++")
(description "The @code{dhtnet} is a C++ library providing abstractions
for interacting with an OpenDHT distributed network.")
(license license:gpl3+))))
(define-public frrouting (define-public frrouting
(package (package
(name "frrouting") (name "frrouting")
@ -4445,16 +4562,12 @@ QUIC protocol.")
"github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasilctl" "github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasilctl"
"github.com/yggdrasil-network/yggdrasil-go/cmd/genkeys")))))))) "github.com/yggdrasil-network/yggdrasil-go/cmd/genkeys"))))))))
(propagated-inputs (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 (list go-golang-zx2c4-com-wireguard
go-golang-org-x-text go-golang-org-x-text
go-golang-org-x-net go-golang-org-x-net
go-golang-org-x-crypto go-golang-org-x-crypto
go-golang-org-x-tools go-golang-org-x-tools
go-golang-org-x-sys
go-netns go-netns
go-netlink go-netlink
go-github-com-bits-and-blooms-bitset go-github-com-bits-and-blooms-bitset
@ -4474,7 +4587,7 @@ QUIC protocol.")
go-github-com-cheggaaa-pb-v3 go-github-com-cheggaaa-pb-v3
go-github-com-vividcortex-ewma go-github-com-vividcortex-ewma
go-github-com-arceliar-phony go-github-com-arceliar-phony
go-github-com-arceliar-ironwood))))) go-github-com-arceliar-ironwood))
(home-page "https://yggdrasil-network.github.io/blog.html") (home-page "https://yggdrasil-network.github.io/blog.html")
(synopsis (synopsis
"Experiment in scalable routing as an encrypted IPv6 overlay network") "Experiment in scalable routing as an encrypted IPv6 overlay network")

View File

@ -64,14 +64,14 @@
(define-public parallel (define-public parallel
(package (package
(name "parallel") (name "parallel")
(version "20231122") (version "20231222")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/parallel/parallel-" (uri (string-append "mirror://gnu/parallel/parallel-"
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 "1qpa3dhmdddw7l5906y8ck8rnri66kqkxcbxhsnj058pmbw9qb42")) (base32 "1alvva2dlnlq5rbbklzc2a7l84mg550l1xc632zdgfx9dzf6sihr"))
(snippet (snippet
'(begin '(begin
(use-modules (guix build utils)) (use-modules (guix build utils))

View File

@ -5,10 +5,10 @@ must be called when no other threads exist).
This fixes network functionality in rust:cargo, and probably removes the need This fixes network functionality in rust:cargo, and probably removes the need
for other future workarounds. for other future workarounds.
=================================================================== ===================================================================
--- curl-7.66.0.orig/lib/easy.c 2020-01-02 15:43:11.883921171 +0100 --- curl-8.5.0.orig/lib/easy.c 2023-12-17 00:36:32.400468561 -0500
+++ curl-7.66.0/lib/easy.c 2020-01-02 16:18:54.691882797 +0100 +++ curl-8.5.0/lib/easy.c 2023-12-17 00:39:08.898612331 -0500
@@ -134,6 +134,9 @@ @@ -137,6 +137,9 @@
# pragma warning(default:4232) /* MSVC extension, dllimport identity */ static char *leakpointer;
#endif #endif
+char * Curl_ssl_cert_dir = NULL; +char * Curl_ssl_cert_dir = NULL;
@ -17,8 +17,8 @@ for other future workarounds.
/** /**
* curl_global_init() globally initializes curl given a bitwise set of the * curl_global_init() globally initializes curl given a bitwise set of the
* different features of what to initialize. * different features of what to initialize.
@@ -155,6 +158,9 @@ @@ -163,6 +166,9 @@
#endif goto fail;
} }
+ Curl_ssl_cert_dir = curl_getenv("SSL_CERT_DIR"); + Curl_ssl_cert_dir = curl_getenv("SSL_CERT_DIR");
@ -26,16 +26,16 @@ for other future workarounds.
+ +
if(!Curl_ssl_init()) { if(!Curl_ssl_init()) {
DEBUGF(fprintf(stderr, "Error: Curl_ssl_init failed\n")); DEBUGF(fprintf(stderr, "Error: Curl_ssl_init failed\n"));
return CURLE_FAILED_INIT; goto fail;
@@ -260,6 +266,9 @@ @@ -287,6 +293,9 @@
Curl_ssl_cleanup(); Curl_ssl_cleanup();
Curl_resolver_global_cleanup(); Curl_resolver_global_cleanup();
+ free(Curl_ssl_cert_dir); + free(Curl_ssl_cert_dir);
+ free(Curl_ssl_cert_file); + free(Curl_ssl_cert_file);
+ +
#ifdef WIN32 #ifdef _WIN32
Curl_win32_cleanup(init_flags); Curl_win32_cleanup(easy_init_flags);
#endif #endif
diff -ur curl-7.66.0.orig/lib/url.c curl-7.66.0/lib/url.c diff -ur curl-7.66.0.orig/lib/url.c curl-7.66.0/lib/url.c
--- curl-7.66.0.orig/lib/url.c 2020-01-02 15:43:11.883921171 +0100 --- curl-7.66.0.orig/lib/url.c 2020-01-02 15:43:11.883921171 +0100

View File

@ -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 <david@gibson.dropbear.id.au>
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 <david@gibson.dropbear.id.au>
---
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

View File

@ -1,23 +0,0 @@
From 9cc5520e1998d03f5dec0fbb1fe71b7cdec38b65 Mon Sep 17 00:00:00 2001
From: Alex Branham <alex.branham@gmail.com>
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")

View File

@ -0,0 +1,27 @@
From a884b62c9e6f23b9f4369d724e25db2f42dad28d Mon Sep 17 00:00:00 2001
From: Pierre LESPAGNOL <pierre.lespagnol@savoirfairelinux.com>
Date: Tue, 28 May 2019 16:18:20 -0400
Subject: [PATCH] Changement du ratio de 0.5% a 5%
---
libavformat/rtp.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavformat/rtp.h b/libavformat/rtp.h
index 54512c6f71..16916ff86a 100644
--- a/libavformat/rtp.h
+++ b/libavformat/rtp.h
@@ -78,8 +78,8 @@ enum AVCodecID ff_rtp_codec_id(const char *buf, enum AVMediaType codec_type);
#define RTP_VERSION 2
#define RTP_MAX_SDES 256 /**< maximum text length for SDES */
-/* RTCP packets use 0.5% of the bandwidth */
-#define RTCP_TX_RATIO_NUM 5
+/* RTCP packets use 2.5% of the bandwidth */
+#define RTCP_TX_RATIO_NUM 25
#define RTCP_TX_RATIO_DEN 1000
/* An arbitrary id value for RTP Xiph streams - only relevant to indicate
--
2.17.1

View File

@ -0,0 +1,127 @@
diff --git a/libavcodec/libopusdec.c b/libavcodec/libopusdec.c
index 9b9a610343..8ec5bfc1ad 100644
--- a/libavcodec/libopusdec.c
+++ b/libavcodec/libopusdec.c
@@ -45,6 +45,8 @@ struct libopus_context {
#ifdef OPUS_SET_PHASE_INVERSION_DISABLED_REQUEST
int apply_phase_inv;
#endif
+ int decode_fec;
+ int64_t expected_next_pts;
};
#define OPUS_HEAD_SIZE 19
@@ -141,6 +143,8 @@ static av_cold int libopus_decode_init(AVCodecContext *avc)
/* Decoder delay (in samples) at 48kHz */
avc->delay = avc->internal->skip_samples = opus->pre_skip;
+ opus->expected_next_pts = AV_NOPTS_VALUE;
+
return 0;
}
@@ -161,27 +165,82 @@ static int libopus_decode(AVCodecContext *avc, AVFrame *frame,
int *got_frame_ptr, AVPacket *pkt)
{
struct libopus_context *opus = avc->priv_data;
- int ret, nb_samples;
+ uint8_t *outptr;
+ int ret, nb_samples = 0, nb_lost_samples = 0, nb_samples_left;
+
+ // If FEC is enabled, calculate number of lost samples
+ if (opus->decode_fec &&
+ opus->expected_next_pts != AV_NOPTS_VALUE &&
+ pkt->pts != AV_NOPTS_VALUE &&
+ pkt->pts != opus->expected_next_pts) {
+ // Cap at recovering 120 ms of lost audio.
+ nb_lost_samples = pkt->pts - opus->expected_next_pts;
+ nb_lost_samples = FFMIN(nb_lost_samples, MAX_FRAME_SIZE);
+ }
- frame->nb_samples = MAX_FRAME_SIZE;
+ frame->nb_samples = MAX_FRAME_SIZE + nb_lost_samples;
if ((ret = ff_get_buffer(avc, frame, 0)) < 0)
return ret;
+ outptr = frame->data[0];
+ nb_samples_left = frame->nb_samples;
+
+ if (opus->decode_fec && nb_lost_samples) {
+ // Try to recover the lost samples with FEC data from this one.
+ // If there's no FEC data, the decoder will do loss concealment instead.
+ if (avc->sample_fmt == AV_SAMPLE_FMT_S16)
+ nb_samples = opus_multistream_decode(opus->dec, pkt->data, pkt->size,
+ (opus_int16 *)outptr,
+ nb_lost_samples, 1);
+ else
+ nb_samples = opus_multistream_decode_float(opus->dec, pkt->data, pkt->size,
+ (float *)outptr,
+ nb_lost_samples, 1);
+
+ if (nb_samples < 0) {
+ av_log(avc, AV_LOG_ERROR, "Decoding error: %s\n",
+ opus_strerror(nb_samples));
+ return ff_opus_error_to_averror(nb_samples);
+ }
+
+ av_log(avc, AV_LOG_WARNING, "Recovered %d samples with FEC/PLC\n",
+ nb_samples);
+
+ outptr += nb_samples * avc->channels * av_get_bytes_per_sample(avc->sample_fmt);
+ nb_samples_left -= nb_samples;
+ if (pkt->pts != AV_NOPTS_VALUE) {
+ pkt->pts -= nb_samples;
+ frame->pts = pkt->pts;
+ }
+ }
+
+ // Decode the actual, non-lost data.
if (avc->sample_fmt == AV_SAMPLE_FMT_S16)
- nb_samples = opus_multistream_decode(opus->dec, pkt->data, pkt->size,
- (opus_int16 *)frame->data[0],
- frame->nb_samples, 0);
+ ret = opus_multistream_decode(opus->dec, pkt->data, pkt->size,
+ (opus_int16 *)outptr,
+ nb_samples_left, 0);
else
- nb_samples = opus_multistream_decode_float(opus->dec, pkt->data, pkt->size,
- (float *)frame->data[0],
- frame->nb_samples, 0);
+ ret = opus_multistream_decode_float(opus->dec, pkt->data, pkt->size,
+ (float *)outptr,
+ nb_samples_left, 0);
- if (nb_samples < 0) {
+ if (ret < 0) {
av_log(avc, AV_LOG_ERROR, "Decoding error: %s\n",
- opus_strerror(nb_samples));
- return ff_opus_error_to_averror(nb_samples);
+ opus_strerror(ret));
+ return ff_opus_error_to_averror(ret);
}
+ nb_samples += ret;
+
+ if (opus->decode_fec)
+ {
+ // Calculate the next expected pts
+ if (pkt->pts == AV_NOPTS_VALUE) {
+ opus->expected_next_pts = AV_NOPTS_VALUE;
+ } else {
+ opus->expected_next_pts = pkt->pts + nb_samples;
+ }
+ }
#ifndef OPUS_SET_GAIN
{
int i = avc->ch_layout.nb_channels * nb_samples;
@@ -220,6 +279,7 @@ static const AVOption libopusdec_options[] = {
#ifdef OPUS_SET_PHASE_INVERSION_DISABLED_REQUEST
{ "apply_phase_inv", "Apply intensity stereo phase inversion", OFFSET(apply_phase_inv), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, FLAGS },
#endif
+ { "decode_fec", "Decode FEC data or use PLC", OFFSET(decode_fec), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, FLAGS },
{ NULL },
};
--
2.34.1

View File

@ -0,0 +1,50 @@
diff --git a/libavcodec/libopusencc.c b/libavcodec/libopusencc.c
index 2a97811d18..40ee7b8fec 100644
--- a/libavcodec/libopusenc.c
+++ b/libavcodec/libopusenc.c
@@ -33,6 +33,7 @@
typedef struct LibopusEncOpts {
int vbr;
int application;
+ int enable_fec;
int packet_loss;
int complexity;
float frame_duration;
@@ -143,6 +144,13 @@
"Unable to set constrained VBR: %s\n", opus_strerror(ret));
ret = opus_multistream_encoder_ctl(enc,
+ OPUS_SET_INBAND_FEC(opts->enable_fec));
+ if (ret != OPUS_OK)
+ av_log(avctx, AV_LOG_WARNING,
+ "Unable to set enable FEC flag percentage: %s\n",
+ opus_strerror(ret));
+
+ ret = opus_multistream_encoder_ctl(enc,
OPUS_SET_PACKET_LOSS_PERC(opts->packet_loss));
if (ret != OPUS_OK)
av_log(avctx, AV_LOG_WARNING,
@@ -452,6 +460,15 @@
int ret;
int discard_padding;
+ // Reload packet loss setting
+ ret = opus_multistream_encoder_ctl(opus->enc,
+ OPUS_SET_PACKET_LOSS_PERC(opus->opts.packet_loss));
+ if (ret != OPUS_OK)
+ av_log(avctx, AV_LOG_WARNING,
+ "Unable to set expected packet loss percentage: %s\n",
+ opus_strerror(ret));
+
+
if (frame) {
ret = ff_af_queue_add(&opus->afq, frame);
if (ret < 0)
@@ -543,6 +560,7 @@
{ "audio", "Favor faithfulness to the input", 0, AV_OPT_TYPE_CONST, { .i64 = OPUS_APPLICATION_AUDIO }, 0, 0, FLAGS, "application" },
{ "lowdelay", "Restrict to only the lowest delay modes", 0, AV_OPT_TYPE_CONST, { .i64 = OPUS_APPLICATION_RESTRICTED_LOWDELAY }, 0, 0, FLAGS, "application" },
{ "frame_duration", "Duration of a frame in milliseconds", OFFSET(frame_duration), AV_OPT_TYPE_FLOAT, { .dbl = 20.0 }, 2.5, 120.0, FLAGS },
+ { "enable_fec", "Enable forward error correction", OFFSET(enable_fec), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, FLAGS },
{ "packet_loss", "Expected packet loss percentage", OFFSET(packet_loss), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 100, FLAGS },
{ "vbr", "Variable bit rate mode", OFFSET(vbr), AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 2, FLAGS, "vbr" },
{ "off", "Use constant bit rate", 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, 0, 0, FLAGS, "vbr" },

View File

@ -0,0 +1,44 @@
From dba13d03bc8e827fededc20b0ab1f574a1500f2a Mon Sep 17 00:00:00 2001
From: Philip-Dylan Gleonec <philip-dylan.gleonec@savoirfairelinux.com>
Date: Thu, 11 Feb 2021 12:25:14 +0100
Subject: [PATCH 2/2] avcodec/libopusenc: reload packet loss at encode
An estimation of packet loss is required by libopus to compute its FEC
data. Currently, this estimation is constant, and can not be changed
after configuration. This means an application using libopus through
ffmpeg can not adapt the packet loss estimation when the network
quality degrades.
This patch makes the encoder reload the packet_loss AVOption before
encoding samples, if fec is enabled. This way an application can modify
the packet loss estimation by changing the AVOption. Typical use-case
is a RTP stream, where packet loss can be estimated from RTCP packets.
Signed-off-by: Philip-Dylan Gleonec <philip-dylan.gleonec@savoirfairelinux.com>
---
libavcodec/libopusenc.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/libavcodec/libopusenc.c b/libavcodec/libopusenc.c
index 70d17f802b..c18e8ae7fa 100644
--- a/libavcodec/libopusenc.c
+++ b/libavcodec/libopusenc.c
@@ -460,6 +460,15 @@ static int libopus_encode(AVCodecContext *avctx, AVPacket *avpkt,
int ret;
int discard_padding;
+ if (opus->opts.fec) {
+ ret = opus_multistream_encoder_ctl(opus->enc,
+ OPUS_SET_PACKET_LOSS_PERC(opus->opts.packet_loss));
+ if (ret != OPUS_OK)
+ av_log(avctx, AV_LOG_WARNING,
+ "Unable to set expected packet loss percentage: %s\n",
+ opus_strerror(ret));
+ }
+
if (frame) {
ret = ff_af_queue_add(&opus->afq, frame);
if (ret < 0)
--
2.25.1

View File

@ -0,0 +1,26 @@
From c557a6211f5a29d89fc2ab561e0fb3d8878fb6ad Mon Sep 17 00:00:00 2001
From: philippegorley <gorley.philippe@gmail.com>
Date: Mon, 17 Dec 2018 15:27:57 -0500
Subject: [PATCH] remove mjpeg log
---
libavcodec/mjpegdec.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index d1dca84d36..4a26c23cd4 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -2294,9 +2294,7 @@ int ff_mjpeg_decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
"restart marker: %d\n", start_code & 0x0f);
/* APP fields */
} else if (start_code >= APP0 && start_code <= APP15) {
- if ((ret = mjpeg_decode_app(s)) < 0)
- av_log(avctx, AV_LOG_ERROR, "unable to decode APP fields: %s\n",
- av_err2str(ret));
+ ret = mjpeg_decode_app(s);
/* Comment */
} else if (start_code == COM) {
ret = mjpeg_decode_com(s);
--
2.17.1

View File

@ -0,0 +1,71 @@
diff --git a/libavformat/rtpenc.c b/libavformat/rtpenc.c
index 63047beccc..d59ec3dc8c 100644
--- a/libavformat/rtpenc.c
+++ b/libavformat/rtpenc.c
@@ -28,6 +28,8 @@
#include "rtpenc.h"
+#define EXT_ABS_SEND_TIME
+
static const AVOption options[] = {
FF_RTP_FLAG_OPTS(RTPMuxContext, flags),
{ "payload_type", "Specify RTP payload type", offsetof(RTPMuxContext, payload_type), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, 127, AV_OPT_FLAG_ENCODING_PARAM },
@@ -146,7 +148,11 @@ static int rtp_write_header(AVFormatContext *s1)
s1->pb->max_packet_size);
} else
s1->packet_size = s1->pb->max_packet_size;
+#ifdef EXT_ABS_SEND_TIME
+ if (s1->packet_size <= 20) {
+#else
if (s1->packet_size <= 12) {
+#endif
av_log(s1, AV_LOG_ERROR, "Max packet size %u too low\n", s1->packet_size);
return AVERROR(EIO);
}
@@ -154,7 +160,11 @@ static int rtp_write_header(AVFormatContext *s1)
if (!s->buf) {
return AVERROR(ENOMEM);
}
+#ifdef EXT_ABS_SEND_TIME
+ s->max_payload_size = s1->packet_size - 20;
+#else
s->max_payload_size = s1->packet_size - 12;
+#endif
if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) {
avpriv_set_pts_info(st, 32, 1, st->codecpar->sample_rate);
@@ -332,16 +342,34 @@ static void rtcp_send_sr(AVFormatContext *s1, int64_t ntp_time, int bye)
void ff_rtp_send_data(AVFormatContext *s1, const uint8_t *buf1, int len, int m)
{
RTPMuxContext *s = s1->priv_data;
+ uint64_t ntp64_time;
+ uint32_t absoluteSendTime;
av_log(s1, AV_LOG_TRACE, "rtp_send_data size=%d\n", len);
/* build the RTP header */
+#ifdef EXT_ABS_SEND_TIME
+ avio_w8(s1->pb, RTP_VERSION << 6 | 0x10); // extention bit
+#else
avio_w8(s1->pb, RTP_VERSION << 6);
+#endif
avio_w8(s1->pb, (s->payload_type & 0x7f) | ((m & 0x01) << 7));
avio_wb16(s1->pb, s->seq);
avio_wb32(s1->pb, s->timestamp);
avio_wb32(s1->pb, s->ssrc);
+#ifdef EXT_ABS_SEND_TIME
+ avio_wb16(s1->pb, 0xBEDE); // magic word
+ avio_wb16(s1->pb, 0x0001); // length=1
+ avio_w8(s1->pb, 0x32); // ID=3 and lenght=2
+ ntp64_time = ff_get_formatted_ntp_time(ff_ntp_time());
+ absoluteSendTime = (uint32_t)((ntp64_time>> 14) & 0x00ffffff);
+ av_log(s1, AV_LOG_TRACE, "ntp64:%lu, abs_time:%u\n", ntp64_time, absoluteSendTime);
+ avio_w8(s1->pb, (uint8_t)(absoluteSendTime >> 16));
+ avio_w8(s1->pb, (uint8_t)(absoluteSendTime >> 8 & 0xff));
+ avio_w8(s1->pb, (uint8_t)(absoluteSendTime & 0xff));
+#endif
+
avio_write(s1->pb, buf1, len);
avio_flush(s1->pb);

View File

@ -0,0 +1,302 @@
From c1b210534b15188c964b31dc47e172f8ed4aca55 Mon Sep 17 00:00:00 2001
From: Aline Gondim Santos <aline.gondimsantos@savoirfairelinux.com>
Date: Tue, 19 Jul 2022 13:35:19 -0300
Subject: [PATCH] Screen sharing x11 fixes
+ We can now have a single stream in the x11grab, which can be updated to follow window resizing
+ Due to stream reinit, shm may cause memory issues and was removed
+ Adds one option (is_area) that defines if we are grabing a region of the display/window or the hole screen/window.
note: This is a custom patch for later rebase
---
libavdevice/xcbgrab.c | 186 ++++++++++--------------------------------
1 file changed, 45 insertions(+), 141 deletions(-)
diff --git a/libavdevice/xcbgrab.c b/libavdevice/xcbgrab.c
index 64a68ba497..76e654b424 100644
--- a/libavdevice/xcbgrab.c
+++ b/libavdevice/xcbgrab.c
@@ -29,11 +29,6 @@
#include <xcb/xfixes.h>
#endif
-#if CONFIG_LIBXCB_SHM
-#include <sys/shm.h>
-#include <xcb/shm.h>
-#endif
-
#if CONFIG_LIBXCB_SHAPE
#include <xcb/shape.h>
#endif
@@ -53,9 +48,6 @@ typedef struct XCBGrabContext {
xcb_connection_t *conn;
xcb_screen_t *screen;
xcb_window_t window;
-#if CONFIG_LIBXCB_SHM
- AVBufferPool *shm_pool;
-#endif
int64_t time_frame;
AVRational time_base;
int64_t frame_duration;
@@ -72,10 +64,9 @@ typedef struct XCBGrabContext {
int region_border;
int centered;
int select_region;
+ int is_area;
const char *framerate;
-
- int has_shm;
} XCBGrabContext;
#define FOLLOW_CENTER -1
@@ -97,6 +88,7 @@ static const AVOption options[] = {
{ "show_region", "Show the grabbing region.", OFFSET(show_region), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, D },
{ "region_border", "Set the region border thickness.", OFFSET(region_border), AV_OPT_TYPE_INT, { .i64 = 3 }, 1, 128, D },
{ "select_region", "Select the grabbing region graphically using the pointer.", OFFSET(select_region), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, D },
+ { "is_area", "Define if we are grabing a region of the display/window.", OFFSET(is_area), AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 1, D },
{ NULL },
};
@@ -216,99 +208,6 @@ static int64_t wait_frame(AVFormatContext *s, AVPacket *pkt)
return curtime;
}
-#if CONFIG_LIBXCB_SHM
-static int check_shm(xcb_connection_t *conn)
-{
- xcb_shm_query_version_cookie_t cookie = xcb_shm_query_version(conn);
- xcb_shm_query_version_reply_t *reply;
-
- reply = xcb_shm_query_version_reply(conn, cookie, NULL);
- if (reply) {
- free(reply);
- return 1;
- }
-
- return 0;
-}
-
-static void free_shm_buffer(void *opaque, uint8_t *data)
-{
- shmdt(data);
-}
-
-static AVBufferRef *allocate_shm_buffer(void *opaque, size_t size)
-{
- xcb_connection_t *conn = opaque;
- xcb_shm_seg_t segment;
- AVBufferRef *ref;
- uint8_t *data;
- int id;
-
- id = shmget(IPC_PRIVATE, size, IPC_CREAT | 0777);
- if (id == -1)
- return NULL;
-
- segment = xcb_generate_id(conn);
- xcb_shm_attach(conn, segment, id, 0);
- data = shmat(id, NULL, 0);
- shmctl(id, IPC_RMID, 0);
- if ((intptr_t)data == -1 || !data)
- return NULL;
-
- ref = av_buffer_create(data, size, free_shm_buffer, (void *)(ptrdiff_t)segment, 0);
- if (!ref)
- shmdt(data);
-
- return ref;
-}
-
-static int xcbgrab_frame_shm(AVFormatContext *s, AVPacket *pkt)
-{
- XCBGrabContext *c = s->priv_data;
- xcb_shm_get_image_cookie_t iq;
- xcb_shm_get_image_reply_t *img;
- xcb_drawable_t drawable = c->window_id;
- xcb_generic_error_t *e = NULL;
- AVBufferRef *buf;
- xcb_shm_seg_t segment;
-
- buf = av_buffer_pool_get(c->shm_pool);
- if (!buf) {
- av_log(s, AV_LOG_ERROR, "Could not get shared memory buffer.\n");
- return AVERROR(ENOMEM);
- }
- segment = (xcb_shm_seg_t)(uintptr_t)av_buffer_pool_buffer_get_opaque(buf);
-
- iq = xcb_shm_get_image(c->conn, drawable,
- c->x, c->y, c->width, c->height, ~0,
- XCB_IMAGE_FORMAT_Z_PIXMAP, segment, 0);
- img = xcb_shm_get_image_reply(c->conn, iq, &e);
-
- xcb_flush(c->conn);
-
- if (e) {
- av_log(s, AV_LOG_ERROR,
- "Cannot get the image data "
- "event_error: response_type:%u error_code:%u "
- "sequence:%u resource_id:%u minor_code:%u major_code:%u.\n",
- e->response_type, e->error_code,
- e->sequence, e->resource_id, e->minor_code, e->major_code);
-
- free(e);
- av_buffer_unref(&buf);
- return AVERROR(EACCES);
- }
-
- free(img);
-
- pkt->buf = buf;
- pkt->data = buf->data;
- pkt->size = c->frame_size;
-
- return 0;
-}
-#endif /* CONFIG_LIBXCB_SHM */
-
#if CONFIG_LIBXCB_XFIXES
static int check_xfixes(xcb_connection_t *conn)
{
@@ -462,14 +361,7 @@ static int xcbgrab_read_packet(AVFormatContext *s, AVPacket *pkt)
if (c->show_region)
xcbgrab_update_region(s, win_x, win_y);
-#if CONFIG_LIBXCB_SHM
- if (c->has_shm && xcbgrab_frame_shm(s, pkt) < 0) {
- av_log(s, AV_LOG_WARNING, "Continuing without shared memory.\n");
- c->has_shm = 0;
- }
-#endif
- if (!c->has_shm)
- ret = xcbgrab_frame(s, pkt);
+ ret = xcbgrab_frame(s, pkt);
pkt->dts = pkt->pts = pts;
pkt->duration = c->frame_duration;
@@ -488,11 +380,8 @@ static av_cold int xcbgrab_read_close(AVFormatContext *s)
{
XCBGrabContext *ctx = s->priv_data;
-#if CONFIG_LIBXCB_SHM
- av_buffer_pool_uninit(&ctx->shm_pool);
-#endif
-
xcb_disconnect(ctx->conn);
+ ctx->conn = NULL;
return 0;
}
@@ -572,7 +461,15 @@ static int pixfmt_from_pixmap_format(AVFormatContext *s, int depth,
static int create_stream(AVFormatContext *s)
{
XCBGrabContext *c = s->priv_data;
- AVStream *st = avformat_new_stream(s, NULL);
+
+ // If we try to open another stream to x11grab, there is no reason
+ // to keep more than one stream in the context.
+ AVStream *st;
+ if (!s->nb_streams) {
+ st = avformat_new_stream(s, NULL);
+ } else {
+ st = s->streams[0];
+ }
xcb_get_geometry_cookie_t gc;
xcb_get_geometry_reply_t *geo;
int64_t frame_size_bits;
@@ -594,11 +491,26 @@ static int create_stream(AVFormatContext *s)
return AVERROR_EXTERNAL;
}
+ // av_log(s, AV_LOG_ERROR, "Capture is_area %d\n", c->is_area);
+ // Width and Height are not 0 only when we set a window area to share
+ // This if may be valid only in the first call to create_stream
if (!c->width || !c->height) {
+ // av_log(s, AV_LOG_ERROR, "Capture area!\n");
+ c->is_area = 0;
+ c->width = geo->width;
+ c->height = geo->height;
+ }
+ // If not a predefined area, then we should follow geometry changes
+ // This can be valid only on the second call onwards
+ if (!c->is_area && (c->width != geo->width || c->height != geo->height)) {
c->width = geo->width;
c->height = geo->height;
}
+ // av_log(s, AV_LOG_ERROR, "Capture area %dx%d at position %d.%d\n",
+ // c->width, c->height,
+ // c->x, c->y);
+
if (c->x + c->width > geo->width ||
c->y + c->height > geo->height) {
av_log(s, AV_LOG_ERROR,
@@ -628,13 +540,6 @@ static int create_stream(AVFormatContext *s)
}
c->frame_size = frame_size_bits / 8;
-#if CONFIG_LIBXCB_SHM
- c->shm_pool = av_buffer_pool_init2(c->frame_size + AV_INPUT_BUFFER_PADDING_SIZE,
- c->conn, allocate_shm_buffer, NULL);
- if (!c->shm_pool)
- return AVERROR(ENOMEM);
-#endif
-
st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO;
st->codecpar->codec_id = AV_CODEC_ID_RAWVIDEO;
st->codecpar->width = c->width;
@@ -829,23 +734,26 @@ static av_cold int xcbgrab_read_header(AVFormatContext *s)
sscanf(s->url, "+%d,%d", &c->x, &c->y);
}
- c->conn = xcb_connect(display_name[0] ? display_name : NULL, &screen_num);
- av_freep(&display_name);
+ if (!c->conn || !c->screen) {
+ xcbgrab_read_close(s);
+ c->conn = xcb_connect(display_name[0] ? display_name : NULL, &screen_num);
+ av_freep(&display_name);
- if ((ret = xcb_connection_has_error(c->conn))) {
- av_log(s, AV_LOG_ERROR, "Cannot open display %s, error %d.\n",
- s->url[0] ? s->url : "default", ret);
- return AVERROR(EIO);
- }
+ if ((ret = xcb_connection_has_error(c->conn))) {
+ av_log(s, AV_LOG_ERROR, "Cannot open display %s, error %d.\n",
+ s->url[0] ? s->url : "default", ret);
+ return AVERROR(EIO);
+ }
- setup = xcb_get_setup(c->conn);
+ setup = xcb_get_setup(c->conn);
- c->screen = get_screen(setup, screen_num);
- if (!c->screen) {
- av_log(s, AV_LOG_ERROR, "The screen %d does not exist.\n",
- screen_num);
- xcbgrab_read_close(s);
- return AVERROR(EIO);
+ c->screen = get_screen(setup, screen_num);
+ if (!c->screen) {
+ av_log(s, AV_LOG_ERROR, "The screen %d does not exist.\n",
+ screen_num);
+ xcbgrab_read_close(s);
+ return AVERROR(EIO);
+ }
}
if (c->window_id == XCB_NONE)
@@ -876,10 +784,6 @@ static av_cold int xcbgrab_read_header(AVFormatContext *s)
return ret;
}
-#if CONFIG_LIBXCB_SHM
- c->has_shm = check_shm(c->conn);
-#endif
-
#if CONFIG_LIBXCB_XFIXES
if (c->draw_mouse) {
if (!(c->draw_mouse = check_xfixes(c->conn))) {
--
2.34.1

View File

@ -0,0 +1,61 @@
commit 2ca397bfcca94c106380368b5b0ce920b0a62a95
Author: Ludovic Courtès <ludo@gnu.org>
Date: Sat Jan 6 16:22:45 2024 +0100
libevent: Fix computation of the timeout value.
diff --git a/extensions/libevent.c b/extensions/libevent.c
index 134460a..62e50a3 100644
--- a/extensions/libevent.c
+++ b/extensions/libevent.c
@@ -192,30 +192,27 @@ scm_primitive_resize (SCM lst, SCM eventsv)
}
#undef FUNC_NAME
-static uint64_t time_units_per_microsec;
+static uint64_t time_units_per_microsec, microsec_per_time_units;
static void*
run_event_loop (void *p)
#define FUNC_NAME "primitive-event-loop"
{
- int ret = 0;
- int microsec = 0;
- struct timeval tv;
-
+ int ret;
struct loop_data *data = p;
- if (data->timeout < 0)
- microsec = -1;
- else if (data->timeout >= 0)
+ if (data->timeout >= 0)
{
- microsec = (time_units_per_microsec == 0)
- ? 0 : data->timeout / time_units_per_microsec;
- tv.tv_sec = 0;
- tv.tv_usec = microsec;
- }
+ struct timeval tv;
+
+ tv.tv_sec = data->timeout / scm_c_time_units_per_second;
+ tv.tv_usec =
+ time_units_per_microsec > 0
+ ? ((data->timeout % scm_c_time_units_per_second)
+ / time_units_per_microsec)
+ : ((data->timeout % scm_c_time_units_per_second)
+ * microsec_per_time_units);
- if (microsec >= 0)
- {
ret = event_base_loopexit (data->base, &tv);
if (ret == -1)
SCM_MISC_ERROR ("event loop exit failed", SCM_EOL);
@@ -307,6 +304,7 @@ void
init_fibers_libevt (void)
{
time_units_per_microsec = scm_c_time_units_per_second / 1000000;
+ microsec_per_time_units = 1000000 / scm_c_time_units_per_second;
scm_c_define_gsubr ("primitive-event-wake", 1, 0, 0,
scm_primitive_event_wake);

View File

@ -1,3 +1,5 @@
This issue is tracked at https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/824.
From 3fd7acc6e5a8c316c366827956d7c06affdc9685 Mon Sep 17 00:00:00 2001 From 3fd7acc6e5a8c316c366827956d7c06affdc9685 Mon Sep 17 00:00:00 2001
From: Olivier Dion <olivier.dion@savoirfairelinux.com> From: Olivier Dion <olivier.dion@savoirfairelinux.com>
Date: Fri, 7 Oct 2022 15:20:37 -0400 Date: Fri, 7 Oct 2022 15:20:37 -0400
@ -17,8 +19,8 @@ With file names adjusted for the source tarball.
diff --git a/configure.ac b/configure.ac diff --git a/configure.ac b/configure.ac
index 27215d044..aaeef1c1b 100644 index 27215d044..aaeef1c1b 100644
--- a/daemon/configure.ac --- a/configure.ac
+++ b/daemon/configure.ac +++ b/configure.ac
@@ -40,6 +40,11 @@ AS_IF([test "x$enable_debug" = "xyes"], @@ -40,6 +40,11 @@ AS_IF([test "x$enable_debug" = "xyes"],
[DAEMONCFLAGS+=" -DNDEBUG=1 -O3" [DAEMONCFLAGS+=" -DNDEBUG=1 -O3"
DAEMONCXXFLAGS+=" -DNDEBUG=1 -O3 -Wno-deprecated"]) DAEMONCXXFLAGS+=" -DNDEBUG=1 -O3 -Wno-deprecated"])
@ -33,8 +35,8 @@ index 27215d044..aaeef1c1b 100644
[Build fuzzing tools])) [Build fuzzing tools]))
diff --git a/test/unitTest/Makefile.am b/test/unitTest/Makefile.am diff --git a/test/unitTest/Makefile.am b/test/unitTest/Makefile.am
index f2b0fd994..ab232ddb7 100644 index f2b0fd994..ab232ddb7 100644
--- a/daemon/test/unitTest/Makefile.am --- a/test/unitTest/Makefile.am
+++ b/daemon/test/unitTest/Makefile.am +++ b/test/unitTest/Makefile.am
@@ -13,30 +13,6 @@ check_PROGRAMS = @@ -13,30 +13,6 @@ check_PROGRAMS =
####### Unit Test ######## ####### Unit Test ########

View File

@ -1,4 +1,7 @@
Upstream status: https://review.jami.net/c/jami-client-qt/+/24273. It was applied, then reverted (by mistake?) in 4d2c55348bc014.
It's been resubmitted here:
https://lists.gnu.org/archive/html/jami/2024-01/msg00005.html
diff --git a/CMakeLists.txt b/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8d71b84b..36729698 100644 index 8d71b84b..36729698 100644

View File

@ -0,0 +1,15 @@
Upstream status: https://review.jami.net/c/jami-client-qt/+/25640
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index d50908cf..587c9d15 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -73,6 +73,8 @@ endif()
string(TOUPPER ${CMAKE_BUILD_TYPE} BUILD_TYPE)
+set(QUICK_TEST_SOURCE_DIR "${CMAKE_SOURCE_DIR}tests/qml/src")
+
set(QML_TESTS_SOURCE_FILES
${CMAKE_SOURCE_DIR}/tests/qml/main.cpp
${TEST_QML_RESOURCES}

View File

@ -0,0 +1,51 @@
Forwarded upstream: https://lists.gnu.org/archive/html/jami/2024-01/msg00010.html
From 1d3b044c85c32341cca392254fe8bbf34a4639e1 Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Date: Tue, 9 Jan 2024 11:14:04 -0500
Subject: [PATCH] tests: Skip tests that need Internet when there's none.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* tests/unittests/messageparser_unittest.cpp (ALinkIsParsedCorrectly)
(YoutubeLinkIsParsedCorrectly): Skip when there is no Internet.
Series-to: jami@gnu.org
Series-cc: Sébastien Blin <sebastien.blin@savoirfairelinux.com>
Fixes: <https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1507>
Change-Id: I0a5b57cd82f93fd7edf3fbeb73fb3db5a04c628c
---
tests/unittests/messageparser_unittest.cpp | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/tests/unittests/messageparser_unittest.cpp b/tests/unittests/messageparser_unittest.cpp
index c10b0d0b..df7a0692 100644
--- a/tests/unittests/messageparser_unittest.cpp
+++ b/tests/unittests/messageparser_unittest.cpp
@@ -69,6 +69,9 @@ TEST_F(MessageParserFixture, TextIsParsedCorrectly)
*/
TEST_F(MessageParserFixture, ALinkIsParsedCorrectly)
{
+ if (!globalEnv.connectivityMonitor->isOnline())
+ GTEST_SKIP() << "ALinkIsParsedCorrectly requires Internet connectivity";
+
auto linkColor = QColor::fromRgb(0, 0, 255);
auto backgroundColor = QColor::fromRgb(0, 0, 255);
@@ -174,6 +177,9 @@ TEST_F(MessageParserFixture, FencedCodeIsParsedCorrectly)
*/
TEST_F(MessageParserFixture, YoutubeLinkIsParsedCorrectly)
{
+ if (!globalEnv.connectivityMonitor->isOnline())
+ GTEST_SKIP() << "YoutubeLinkIsParsedCorrectly requires Internet connectivity";
+
auto url = "https://www.youtube.com/watch?v=1234567890";
auto msg = "blah blah " + QString(url) + " blah blah";
base-commit: a4300308dc8d03d59f620bb5fed753df5cf31ed9
prerequisite-patch-id: 90a419e7de1f4fa5bb68bc58ad0da2817ed268e0
--
2.41.0

View File

@ -0,0 +1,71 @@
Forwarded here: https://lists.gnu.org/archive/html/jami/2024-01/msg00007.html
From a302dc0a0faf2778331745a1d01bc3071e182d4d Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Date: Mon, 8 Jan 2024 16:07:05 -0500
Subject: [PATCH] build: Allow using system-provided md4c and tidy libraries.
* CMakeLists.txt <md4c, tidy>: Search for libraries in the system
first, falling back to bundled copies in case they aren't found.
Series-to: jami@gnu.org
Fixes: <https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1506>
Change-Id: I637959fefce6a21b0ee73a793acb6c3c42dcdce0
---
CMakeLists.txt | 36 +++++++++++++++++++++++++-----------
1 file changed, 25 insertions(+), 11 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 38e7a4e2..3f1bd599 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -545,19 +545,33 @@ add_subdirectory(3rdparty/SortFilterProxyModel)
set(SFPM_OBJECTS $<TARGET_OBJECTS:SortFilterProxyModel>)
# md4c
-set(BUILD_SHARED_LIBS OFF CACHE BOOL "Don't build shared md4c library" FORCE)
-add_subdirectory(3rdparty/md4c EXCLUDE_FROM_ALL)
-list(APPEND CLIENT_LINK_DIRS ${MD4C_BINARY_DIR}/src)
-list(APPEND CLIENT_INCLUDE_DIRS ${MD4C_SOURCE_DIR}/src)
-list(APPEND CLIENT_LIBS md4c-html)
+find_package(md4c)
+if(md4c_FOUND)
+ message(STATUS "Using system-provided md4c-html")
+ list(APPEND CLIENT_LIBS md4c::md4c-html)
+else()
+ message("Using bundled md4c-html library")
+ set(BUILD_SHARED_LIBS OFF CACHE BOOL "Don't build shared md4c library" FORCE)
+ add_subdirectory(3rdparty/md4c EXCLUDE_FROM_ALL)
+ list(APPEND CLIENT_LINK_DIRS ${MD4C_BINARY_DIR}/src)
+ list(APPEND CLIENT_INCLUDE_DIRS ${MD4C_SOURCE_DIR}/src)
+ list(APPEND CLIENT_LIBS md4c-html)
+endif()
# tidy-html5
-set(BUILD_SHARED_LIB OFF CACHE BOOL "Don't build shared tidy library" FORCE)
-set(SUPPORT_CONSOLE_APP OFF CACHE BOOL "Don't build tidy console app" FORCE)
-add_subdirectory(3rdparty/tidy-html5 EXCLUDE_FROM_ALL)
-list(APPEND CLIENT_LINK_DIRS ${tidy_BINARY_DIR}/Release)
-list(APPEND CLIENT_INCLUDE_DIRS ${tidy_SOURCE_DIR}/include)
-list(APPEND CLIENT_LIBS tidy-static)
+pkg_check_modules(tidy IMPORTED_TARGET tidy)
+if(tidy_FOUND)
+ message(STATUS "Using system-provided tidy")
+ list(APPEND CLIENT_LIBS PkgConfig::tidy)
+else()
+ message("Using bundled tidy library")
+ set(BUILD_SHARED_LIB OFF CACHE BOOL "Don't build shared tidy library" FORCE)
+ set(SUPPORT_CONSOLE_APP OFF CACHE BOOL "Don't build tidy console app" FORCE)
+ add_subdirectory(3rdparty/tidy-html5 EXCLUDE_FROM_ALL)
+ list(APPEND CLIENT_LINK_DIRS ${tidy_BINARY_DIR}/Release)
+ list(APPEND CLIENT_INCLUDE_DIRS ${tidy_SOURCE_DIR}/include)
+ list(APPEND CLIENT_LIBS tidy-static)
+endif()
# common executable sources
qt_add_executable(
base-commit: a4300308dc8d03d59f620bb5fed753df5cf31ed9
--
2.41.0

View File

@ -0,0 +1,52 @@
Forwarded here: https://lists.gnu.org/archive/html/jami/2024-01/msg00003.html
From 20a1702d881b381979d31c456f1b8cf5e0f728ad Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Date: Sun, 7 Jan 2024 16:40:41 -0500
Subject: [PATCH] configure.ac: Expand AC_CONFIG_FILES to fix a race.
The commands apparently run for each file listed, or something
similar, leading to:
configure: creating ./config.status
config.status: creating test/agent/Makefile
chmod: cannot access 'test/agent/pre-inst-env': No such file or directory
chmod: cannot access 'test/agent/scenarios/bulk-calls/run-scenario': No such file or directory
config.status: creating test/agent/pre-inst-env
chmod: cannot access 'test/agent/scenarios/bulk-calls/run-scenario': No such file or directory
* configure.ac [ENABLE_AGENT]: Separate AC_CONFIG_FILES uses per file.
Series-to: jami@gnu.org
Series-postfix: daemon
Change-Id: Ib283955b73540248e09bf31ef44ef3d178b216fa
---
configure.ac | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/configure.ac b/configure.ac
index cdea5ff1c..2ab96d817 100644
--- a/configure.ac
+++ b/configure.ac
@@ -61,11 +61,11 @@ AC_ARG_ENABLE([agent],
[Build agent]))
AM_CONDITIONAL([ENABLE_AGENT], [test "x$enable_agent" = "xyes"])
AM_COND_IF([ENABLE_AGENT],
- [AC_CONFIG_FILES([test/agent/Makefile
- test/agent/pre-inst-env:test/agent/build-aux/pre-inst-env.in
- test/agent/scenarios/bulk-calls/run-scenario],
- [chmod +x test/agent/pre-inst-env
- chmod +x test/agent/scenarios/bulk-calls/run-scenario])])
+ [AC_CONFIG_FILES([test/agent/Makefile])
+ AC_CONFIG_FILES([test/agent/pre-inst-env:test/agent/build-aux/pre-inst-env.in],
+ [chmod +x test/agent/pre-inst-env])
+ AC_CONFIG_FILES([test/agent/scenarios/bulk-calls/run-scenario],
+ [chmod +x test/agent/scenarios/bulk-calls/run-scenario])])
AC_ARG_ENABLE([tracepoints], AS_HELP_STRING([--enable-tracepoints], [Enable tracepoints]))
base-commit: e246fb2e090c9b3de55e2d455eee5a6f05a5b286
--
2.41.0

View File

@ -0,0 +1,15 @@
To ensure libiconv can be found by Guix, we need to link the library.
--- a/setup.py
+++ b/setup.py
@@ -81,8 +81,7 @@ else:
libraries.extend(["m", "z"])
_platform = sys.platform
# Mac: iconv needs to be linked statically
- if _platform.lower().startswith("darwin"):
- libraries.append("iconv")
+ libraries.append("iconv")
# Extensions
sources.sort()

View File

@ -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

View File

@ -73,8 +73,8 @@ reconstruct a Plan 9 terminal-like experience from a non-Plan 9 system.")
(define-public plan9port (define-public plan9port
;; no releases ;; no releases
(let ((commit "cc4571fec67407652b03d6603ada6580de2194dc") (let ((commit "f8681acb374fa0d5ed1568dbedb00a4abe1ca6f1")
(revision "0")) (revision "1"))
(package (package
(name "plan9port") (name "plan9port")
(version (git-version "0.1.0" revision commit)) (version (git-version "0.1.0" revision commit))
@ -86,7 +86,7 @@ reconstruct a Plan 9 terminal-like experience from a non-Plan 9 system.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1g2kzlghcghs560na6xalfsjq5zwp015wv9wk8wxn26981zs759x")) "01343jvn8kr63i78h8xlgscn6wihdsr44xzh1cylvhigjbqw8n2x"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet #~(for-each delete-file-recursively (snippet #~(for-each delete-file-recursively
'("font/luc" ;nonfree '("font/luc" ;nonfree
@ -94,20 +94,23 @@ reconstruct a Plan 9 terminal-like experience from a non-Plan 9 system.")
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list #:tests? #f ;no tests (list #:tests? #f ;no tests
#:phases #~(modify-phases %standard-phases #:strip-directories #~'("plan9/bin")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'setup (add-after 'unpack 'setup
(lambda _ (lambda _
(let ((dest (string-append #$output "/plan9")))
(delete-file "src/cmd/mk/mk.pdf") (delete-file "src/cmd/mk/mk.pdf")
(substitute* "src/cmd/acme/acme.c" (substitute* "src/cmd/acme/acme.c"
(("/lib/font/bit/lucsans/euro.8.font") (("/lib/font/bit/lucsans/euro.8.font")
(string-append #$output (string-append dest
"/font/fixed/unicode.5x8.font")) "/font/fixed/unicode.5x8.font"))
(("/lib/font/bit/lucm/unicode.9.font") (("/lib/font/bit/lucm/unicode.9.font")
(string-append #$output (string-append dest
"/font/fixed/unicode.6x9.font"))) "/font/fixed/unicode.6x9.font")))
(substitute* (find-files "src") (substitute* (find-files "src")
(("/lib/font/bit") (("/lib/font/bit")
(string-append #$output "/font"))) (string-append dest "/font")))
(substitute* "bin/9c" (substitute* "bin/9c"
(("which") (("which")
(which "which"))) (which "which")))
@ -120,21 +123,19 @@ reconstruct a Plan 9 terminal-like experience from a non-Plan 9 system.")
(lambda _ (lambda _
(format #t "CC9=~a~%" #$(cc-for-target)) (format #t "CC9=~a~%" #$(cc-for-target))
(format #t "FONTSRV=fontsrv~%"))) (format #t "FONTSRV=fontsrv~%")))
(setenv "X11" (setenv "X11" #$libx11)
#$libx11) (setenv "PLAN9" (getcwd))
(setenv "PLAN9" (setenv "PLAN9_TARGET" dest))))
(getcwd))
(setenv "PLAN9_TARGET"
#$output)))
(delete 'configure) ;no configure (delete 'configure) ;no configure
(replace 'build (replace 'build
(lambda _ (lambda _
(invoke "./INSTALL" "-b"))) (invoke "./INSTALL" "-b")))
(replace 'install (replace 'install
(lambda _ (lambda _
(invoke "./INSTALL" "-c")
(let ((dest (getenv "PLAN9_TARGET")))
(for-each (lambda (x) (for-each (lambda (x)
(let ((out (string-append #$output (let ((out (string-append dest "/" x)))
"/" x)))
(mkdir-p out) (mkdir-p out)
(copy-recursively x out))) (copy-recursively x out)))
;; TODO: use external sky and dict packages ;; TODO: use external sky and dict packages
@ -150,15 +151,10 @@ reconstruct a Plan 9 terminal-like experience from a non-Plan 9 system.")
"tmac" "tmac"
"troff" "troff"
"postscript")) "postscript"))
(install-file "rcmain" #$output))) (install-file "rcmain" dest)
(add-after 'install 'wrap-executables (mkdir-p (string-append #$output "/bin"))
(lambda _ (symlink (string-append dest "/bin/9")
(for-each (lambda (exe) (string-append #$output "/bin/9")))))
(wrap-program exe
`("PLAN9" ":" prefix
(,#$output))))
(find-files
(string-append #$output "/bin")))))
;; Plan9 doesn't compress man pages ;; Plan9 doesn't compress man pages
(delete 'compress-documentation)))) (delete 'compress-documentation))))
(native-inputs (list perl which)) (native-inputs (list perl which))

View File

@ -209,7 +209,7 @@ satisfiability checking (SAT).")
"unpool-ast-v2" "parse_term" "unpool-ast-v2" "parse_term"
"propagator" "propgator-sequence-mining" "propagator" "propgator-sequence-mining"
"symbol" "visitor")))))))))) "symbol" "visitor"))))))))))
(inputs (list catch2-3.3 clasp libpotassco)) (inputs (list catch2-3 clasp libpotassco))
(native-inputs (list mpark-variant (native-inputs (list mpark-variant
pkg-config pkg-config
tl-optional tl-optional

View File

@ -7,6 +7,7 @@
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020, 2022, 2023 Marius Bakke <marius@gnu.org> ;;; Copyright © 2020, 2022, 2023 Marius Bakke <marius@gnu.org>
;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot> ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -416,6 +417,39 @@ the LZ4 frame format.")
(description "Lz-string is a string compressor library for Python.") (description "Lz-string is a string compressor library for Python.")
(license license:expat))) (license license:expat)))
(define-public python-python-snappy
(package
;; PyPI contains both `snappy' and `python-snappy' as completely distinct
;; packages. To avoid a name collision in Guix, we use the variable name
;; `python-python-snappy' for the package called `python-snappy' on PyPI.
(name "python-python-snappy")
(version "0.6.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-snappy" version))
(sha256
(base32 "0amv12w0ybn6n1lk36x70a3l8bdjv4mn7iflb59wqsi00smhg8dn"))))
(build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "pytest" "-vv" "-k"
;; CFFI is only supported for PyPy builds.
(string-append "not test_snappy_cffi_enum "
"and not test_snappy_all_cffi"))))))))
(inputs (list snappy))
(native-inputs (list python-pytest))
(home-page "https://github.com/andrix/python-snappy")
(synopsis "Python bindings for the Snappy compression library")
(description
"@code{python-python-snappy} provides bindings to the Snappy library and
can be used to compress and decompress files and streams. It can also be used
directly from the command line.")
(license license:bsd-3)))
(define-public bitshuffle (define-public bitshuffle
(package (package
(name "bitshuffle") (name "bitshuffle")

View File

@ -60,6 +60,7 @@
;;; Copyright © 2022 Baptiste Strazzulla <bstrazzull@hotmail.fr> ;;; Copyright © 2022 Baptiste Strazzulla <bstrazzull@hotmail.fr>
;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2023 Ivan Vilata-i-Balaguer <ivan@selidor.net> ;;; Copyright © 2023 Ivan Vilata-i-Balaguer <ivan@selidor.net>
;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -201,6 +202,38 @@ scripting Launchpad via its the web service API.")
reusable library for parsing, manipulating, and generating URIs.") reusable library for parsing, manipulating, and generating URIs.")
(license license:lgpl3))) (license license:lgpl3)))
(define-public python-portend
(package
(name "python-portend")
(version "3.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "portend" version))
(sha256
(base32 "0wpvixicc3d0lack65554mvdrrckkn18p1xcgiv9v5cwq59a6l2j"))))
(build-system pyproject-build-system)
;; Do not test pyproject.toml with python-pytest-checkdocs as it tries to
;; download dependencies.
(arguments
'(#:test-flags '("-k" "not project")))
(propagated-inputs (list python-tempora))
;; TODO: Add python-pytest-ruff to native-inputs once it has been packaged.
(native-inputs (list python-pytest
python-pytest-black
python-pytest-checkdocs
python-pytest-cov
python-pytest-enabler
python-pytest-mypy))
(home-page "https://github.com/jaraco/portend")
(synopsis "Monitor TCP ports for bound or unbound states")
(description
"@code{python-portend} can be used to monitor TCP ports for bound or
unbound states. For example, waiting for a port to be occupied or freed
within a set timeout. @code{python-portend} can also be used directly from
the command line.")
(license license:expat)))
(define-public python-prawcore (define-public python-prawcore
(package (package
(name "python-prawcore") (name "python-prawcore")
@ -2595,6 +2628,32 @@ your Web app.")
object to help create WSGI responses.") object to help create WSGI responses.")
(license license:expat))) (license license:expat)))
(define-public python-zc-lockfile
(package
(name "python-zc-lockfile")
(version "3.0.post1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "zc.lockfile" version))
(sha256
(base32 "1v41irj7azaag3f14xyviv3l8mvap74v5p3q274k68vakrnyxcmd"))))
(build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(if tests?
(invoke "zope-testrunner" "--test-path=src")
(format #t "test suite not run~%")))))))
(native-inputs (list python-zope-testing python-zope-testrunner))
(home-page "https://github.com/zopefoundation/zc.lockfile")
(synopsis "Interprocess locks using lock files")
(description
"This package provides an implementation of interprocess locks using lock
files. These locks can also be used to mediate access to other files.")
(license license:zpl2.1)))
(define-public python-zope-event (define-public python-zope-event
(package (package
(name "python-zope-event") (name "python-zope-event")

View File

@ -145,7 +145,7 @@
;;; Copyright © c4droid <c4droid@foxmail.com> ;;; Copyright © c4droid <c4droid@foxmail.com>
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2023 Attila Lendvai <attila@lendvai.name> ;;; Copyright © 2023 Attila Lendvai <attila@lendvai.name>
;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com> ;;; Copyright © 2023, 2024 Troy Figiel <troy@troyfigiel.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -2253,22 +2253,18 @@ library.")
(method url-fetch) (method url-fetch)
(uri (pypi-uri "h5py" version)) (uri (pypi-uri "h5py" version))
(sha256 (sha256
(base32 (base32 "0pyr6z4h2xqbp49yx2i1401gl6yqh03h771zslwcy0201hpxiskg"))))
"0pyr6z4h2xqbp49yx2i1401gl6yqh03h771zslwcy0201hpxiskg"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:tests? #f ; no test target '(#:phases (modify-phases %standard-phases
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-hdf5-paths (add-after 'unpack 'fix-hdf5-paths
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(setenv "HDF5_DIR" (assoc-ref inputs "hdf5"))))))) (setenv "HDF5_DIR"
(propagated-inputs (assoc-ref inputs "hdf5")))))))
(list python-six python-numpy)) (propagated-inputs (list python-six python-numpy))
(inputs (inputs (list hdf5-1.10))
(list hdf5-1.10)) (native-inputs (list pkg-config python-cython python-ipython
(native-inputs python-pkgconfig python-pytest))
(list python-cython python-pkgconfig pkg-config))
(home-page "https://www.h5py.org/") (home-page "https://www.h5py.org/")
(synopsis "Read and write HDF5 files from Python") (synopsis "Read and write HDF5 files from Python")
(description (description
@ -2279,6 +2275,30 @@ access to HDF5 files, datasets and groups using established Python and NumPy
concepts.") concepts.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public python-hdf5storage
(package
(name "python-hdf5storage")
(version "0.1.19")
(source
(origin
(method url-fetch)
(uri (pypi-uri "hdf5storage" version))
(sha256
(base32 "11pgxsqap9l7jsf52649q9mpj8a0w6p9im929lpr9s26ynnnn6ks"))))
(build-system pyproject-build-system)
(propagated-inputs (list python-h5py python-numpy))
(native-inputs (list python-nose))
(home-page "https://github.com/frejanordsiek/hdf5storage")
(synopsis "Read and write Python data types from and to HDF5 files")
(description
"This Python package provides high-level utilities to read and write a
variety of Python types from and to @acronym{HDF5, Hierarchical Data Format}
formatted files. This package also provides support for MATLAB MAT v7.3
formatted files, which are HDF5 files with a different extension and some
extra metadata. Because HDF5 and MAT files might need to be read from
untrusted sources, pickling is avoided in this package.")
(license license:bsd-2)))
(define-public python-hjson (define-public python-hjson
;; Using commit from master branch as the PyPI version does not contain ;; Using commit from master branch as the PyPI version does not contain
;; the hjson/tests/ directory. ;; the hjson/tests/ directory.
@ -9236,6 +9256,105 @@ converting, and viewing many of the proprietary file formats used to store
experimental data and metadata at the Laboratory for Fluorescence Dynamics.") experimental data and metadata at the Laboratory for Fluorescence Dynamics.")
(license license:bsd-3))) (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: <urlopen error [Errno -3]
;; Temporary failure in name resolution>
;;
"--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 (define-public python-ffmpeg-python
;; The latest release (0.2.0) is old and its test suite crashs on Python 3.10. ;; The latest release (0.2.0) is old and its test suite crashs on Python 3.10.
(let ((commit "df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6") (revision "0")) (let ((commit "df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6") (revision "0"))
@ -10275,6 +10394,67 @@ finding unresolved symbols in Python code and their corresponding imports.")
class constructs.") class constructs.")
(license license:expat))) (license license:expat)))
(define-public python-jaraco-collections
(package
(name "python-jaraco-collections")
(version "5.0.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "jaraco.collections" version))
(sha256
(base32 "0s7y3jr7c173k38pck1b17kxnvx2fl0qh9m9gdf64pr9kz8fi00n"))))
(build-system pyproject-build-system)
;; Do not test pyproject.toml with python-pytest-checkdocs as it tries to
;; download dependencies.
(arguments
'(#:test-flags '("-k" "not project")))
(propagated-inputs (list python-jaraco-text))
;; TODO: Add python-pytest-ruff to native-inputs once it has been
;; packaged.
(native-inputs (list python-pytest
python-pytest-black
python-pytest-checkdocs
python-pytest-cov
python-pytest-enabler
python-pytest-mypy))
(home-page "https://github.com/jaraco/jaraco.collections")
(synopsis "Provides various collection objects")
(description
"This package provides models and classes to supplement the
standard library @code{collections} module. Examples include
@itemize
@item
RangeMap: A mapping that accepts a range of values for keys.
@item
Projection: A subset over an existing mapping.
@item
KeyTransformingDict: Generalized mapping with keys transformed by a function.
@item
FoldedCaseKeyedDict: A dict whose string keys are case-insensitive.
@item
BijectiveMap: A map where keys map to values and values back to their keys.
@item
ItemsAsAttributes: A mapping mix-in exposing items as attributes.
@item
IdentityOverrideMap: A map whose keys map by default to themselves unless overridden.
@item
FrozenDict: A hashable, immutable map.
@item
Enumeration: An object whose keys are enumerated.
@item
Everything: A container that contains all things.
@item
Least, Greatest: Objects that are always less than or greater than any other.
@item
pop_all: Return all items from the mutable sequence and remove them from that sequence.
@item
DictStack: A stack of dicts, great for sharing scopes.
@item
WeightedLookup: A specialized RangeMap for selecting an item by weights.
@end itemize")
(license license:expat)))
;;; Variant used to break a cycle with python-pytest-enabler. ;;; Variant used to break a cycle with python-pytest-enabler.
(define-public python-jaraco-context-bootstrap (define-public python-jaraco-context-bootstrap
(hidden-package (hidden-package
@ -10439,6 +10619,41 @@ releases.")
(description "This package provides testing support by jaraco.") (description "This package provides testing support by jaraco.")
(license license:expat))) (license license:expat)))
(define-public python-jaraco-text
(package
(name "python-jaraco-text")
(version "3.12.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "jaraco.text" version))
(sha256
(base32 "0b2rmx0sa61f75lkkr4nfaj3mkgmn3x9c1akpwarfbmksk42b7iq"))))
(build-system pyproject-build-system)
;; Do not test pyproject.toml with python-pytest-checkdocs as it tries to
;; download dependencies.
(arguments
'(#:test-flags '("-k" "not project")))
(propagated-inputs (list python-autocommand python-inflect
python-jaraco-context python-jaraco-functools
python-more-itertools))
;; TODO: Add python-pytest-ruff to native-inputs once it has been
;; packaged.
(native-inputs (list python-pytest
python-pytest-black
python-pytest-checkdocs
python-pytest-cov
python-pytest-enabler
python-pytest-mypy))
(home-page "https://github.com/jaraco/jaraco.text")
(synopsis "Provides various routines for text manipulation")
(description
"This package provides handy routines for dealing with text,
such as wrapping, substitution, trimming, stripping, prefix and suffix
removal, line continuation, indentation, comment processing, identifier
processing, values parsing, case insensitive comparison, and more.")
(license license:expat)))
(define-public python-simplegeneric (define-public python-simplegeneric
(package (package
(name "python-simplegeneric") (name "python-simplegeneric")
@ -30176,6 +30391,45 @@ heterogeneous and multi-platform clusters (including clusters running other
applications with variable CPU loads).") applications with variable CPU loads).")
(license license:bsd-3))) (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 (define-public python-djvulibre
(package (package
(name "python-djvulibre") (name "python-djvulibre")
@ -31490,6 +31744,30 @@ graph can be output for rendering by GraphViz or yEd.")
function implementations based on the types of the arguments.") function implementations based on the types of the arguments.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public python-multimethod
(package
(name "python-multimethod")
(version "1.10")
(source
(origin
;; No tests in the PyPI tarball.
(method git-fetch)
(uri (git-reference
(url "https://github.com/coady/multimethod")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "07xv92q7f4bkp6dzkqvcv0zxr11729qdak4s3ldmbhdwgsf44g5h"))))
(build-system pyproject-build-system)
(native-inputs (list python-pytest))
(home-page "https://github.com/coady/multimethod")
(synopsis "Python support for multiple argument dispatching")
(description
"This package provides a decorator for adding multiple argument
dispatching to functions. The decorator creates a multimethod object as
needed and registers the function with its annotations.")
(license license:asl2.0)))
(define-public python-logical-unification (define-public python-logical-unification
(package (package
(name "python-logical-unification") (name "python-logical-unification")

View File

@ -15,6 +15,7 @@
;;; Copyright © 2023 Alexey Abramov <levenson@mmer.org> ;;; Copyright © 2023 Alexey Abramov <levenson@mmer.org>
;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2023 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2023 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -219,8 +220,60 @@ such as compact binary encodings, XML, or JSON.")
(list doxygen gcc-10 (list doxygen gcc-10
(package-source cereal))))) (package-source cereal)))))
(define-public msgpack (define-public msgpack-c
(package (package
(name "msgpack-c")
(version "6.0.0")
(source
(origin
(method url-fetch)
(uri
(string-append
"https://github.com/msgpack/msgpack-c/releases/download/"
"c-" version "/" name "-" version ".tar.gz"))
(sha256
(base32 "1fmf08babfsjq5qkgw034wk2nw6mayxp1qlkm7h55p2jqvigam1n"))
(snippet
'(let ((p (open-file "msgpack-c.pc.in" "a")))
(display "Requires: zlib\n" p)
(close-output-port p)))))
(build-system cmake-build-system)
(arguments (list #:configure-flags #~(list "-DMSGPACK_BUILD_TESTS=ON")))
(native-inputs (list googletest))
(propagated-inputs (list zlib)) ;zbuffer.h includes zlib.h
(home-page "https://www.msgpack.org")
(synopsis "Binary serialization library")
(description "Msgpack is a library for C that implements binary
serialization.")
(license license:boost1.0)))
(define-public msgpack-cxx
(package
(inherit msgpack-c)
(name "msgpack-cxx")
(version "6.1.0")
(source
(origin
(method url-fetch)
(uri
(string-append
"https://github.com/msgpack/msgpack-c/releases/download/"
"cpp-" version "/" name "-" version ".tar.gz"))
(sha256
(base32 "1rrrf3nskcv994z3pbq6a5z2021piz118rccmm1y7zlf7klygv93"))))
(build-system cmake-build-system)
(propagated-inputs (list boost zlib)) ;included in headers
(description "Msgpack is a library for C++ that implements binary
serialization.")))
;;; The msgpack package was split into msgpack-c and msgpack-cxx starting from
;;; version 4.0.0.
(define-public msgpack
(deprecated-package "msgpack" msgpack-c))
(define-public msgpack-3
(package
(inherit msgpack-c)
(name "msgpack") (name "msgpack")
(version "3.3.0") (version "3.3.0")
(source (source
@ -234,23 +287,13 @@ such as compact binary encodings, XML, or JSON.")
'(let ((p (open-file "msgpack.pc.in" "a"))) '(let ((p (open-file "msgpack.pc.in" "a")))
(display (display
(string-append "Requires: " "zlib" "\n") p) (string-append "Requires: " "zlib" "\n") p)
(close-output-port p) (close-output-port p)))
#t))
(sha256 (sha256
(base32 "0yzhq50ijvwrfkr97knhvn54lj3f4hr3zy39yq8wpf6xll94s4bf")))) (base32 "0yzhq50ijvwrfkr97knhvn54lj3f4hr3zy39yq8wpf6xll94s4bf"))))
(build-system cmake-build-system) (native-inputs (list googletest-1.8))
(native-inputs
(list googletest-1.8 pkg-config))
(propagated-inputs
(list zlib)) ;; Msgpack installs two headers (zbuffer.h,
;; zbuffer.hpp) which #include <zlib.h>. However, 'guix gc --references'
;; does not detect a store reference to zlib since these headers are not
;; compiled.
(home-page "https://www.msgpack.org")
(synopsis "Binary serialization library")
(description "Msgpack is a library for C/C++ that implements binary (description "Msgpack is a library for C/C++ that implements binary
serialization.") serialization. This is the legacy version that predates the split into C and
(license license:boost1.0))) C++ specific packages.")))
(define-public libmpack (define-public libmpack
(package (package

View File

@ -331,7 +331,7 @@ particularly in catching syntax errors.")
(define-public grml-zsh-config (define-public grml-zsh-config
(package (package
(name "grml-zsh-config") (name "grml-zsh-config")
(version "0.19.5") (version "0.19.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -339,7 +339,7 @@ particularly in catching syntax errors.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0ifw490z3v9ljccbmm04adz39fj2dmx8mjgayxqj0a9ln90yfdc4")))) "1k1m2fbmvw73qy9mc6k2ygjg6zz8h7nn3d9pvj6jbjadnx4pz770"))))
(build-system copy-build-system) (build-system copy-build-system)
(arguments (arguments
(list (list

View File

@ -18,6 +18,7 @@
;;; Copyright © 2021 Frank Pursel <frank.pursel@gmail.com> ;;; Copyright © 2021 Frank Pursel <frank.pursel@gmail.com>
;;; Copyright © 2022 Simon Tournier <zimon.toutoune@gmail.com> ;;; Copyright © 2022 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com> ;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -6757,11 +6758,9 @@ Java package that provides routines for various statistical distributions.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public emacs-ess (define-public emacs-ess
;; Latest release is old. This is not the latest commit either due to bug (let ((commit "3691ecc642eab5d016887e42699648e0eeeef566")
;; reported here: <https://github.com/emacs-ess/ESS/issues/987>.
(let ((commit "24da603184ce39246611dd5b8602e769d7ebd5bf")
(version "18.10.2") (version "18.10.2")
(revision "0")) (revision "1"))
(package (package
(name "emacs-ess") (name "emacs-ess")
(version (git-version version revision commit)) (version (git-version version revision commit))
@ -6772,11 +6771,11 @@ Java package that provides routines for various statistical distributions.")
(url "https://github.com/emacs-ess/ESS") (url "https://github.com/emacs-ess/ESS")
(commit commit))) (commit commit)))
(sha256 (sha256
(base32 "0j98lv07nzwzd54d4dgcfz01wy5gj48m0mnirxzh5r45ik2myh1r")) (base32 "19p8djsbgvahpsx1w8i6h3qvpbdr4isjwm3wi82yk2648ri0qsq1"))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin #~(begin
;; Stop ESS from trying to bundle an external julia-mode.el. ;; Stop ESS from trying to bundle an external julia-mode.el.
(substitute* "lisp/Makefile" (substitute* "lisp/Makefile"
((" \\$\\(JULIAS)") "") ((" \\$\\(JULIAS)") "")
@ -6802,30 +6801,66 @@ Java package that provides routines for various statistical distributions.")
(("mkdir -p \\$\\(ESSDESTDIR)") (("mkdir -p \\$\\(ESSDESTDIR)")
"$(MAKE) -C lisp install; $(MAKE) -C doc install") "$(MAKE) -C lisp install; $(MAKE) -C doc install")
(("\\$\\(INSTALL) -R \\./\\* \\$\\(ESSDESTDIR)/") (("\\$\\(INSTALL) -R \\./\\* \\$\\(ESSDESTDIR)/")
"$(MAKE) -C etc install")) "$(MAKE) -C etc install"))))))
#t))
(patches
(search-patches "emacs-ess-fix-obsolete-function-alias.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(let ((base-directory "/share/emacs/site-lisp")) (let ((base-directory "/share/emacs/site-lisp"))
`(#:make-flags (list (string-append "PREFIX=" %output) (list
(string-append "ETCDIR=" %output #:modules '((guix build gnu-build-system)
,base-directory "/etc") (guix build utils)
(string-append "LISPDIR=" %output (guix build emacs-utils))
,base-directory) #:imported-modules `(,@%gnu-build-system-modules
(string-append "INFODIR=" %output (guix build emacs-build-system)
"/share/info")) (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 #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(delete 'configure) (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 (replace 'check
(lambda _ (invoke "make" "test"))))))) (lambda _ (invoke "make" "test")))))))
(native-inputs (native-inputs
(list perl r-roxygen2 texinfo)) (list perl r-roxygen2 texinfo))
(inputs (inputs
`(("emacs" ,emacs-minimal) (list emacs-minimal r-minimal))
("r-minimal" ,r-minimal)))
(propagated-inputs (propagated-inputs
(list emacs-julia-mode)) (list emacs-julia-mode))
(home-page "https://ess.r-project.org/") (home-page "https://ess.r-project.org/")
@ -6885,6 +6920,50 @@ files, including Rmarkdown files.")
popular stats packages like SAS, Stata and SPSS.") popular stats packages like SAS, Stata and SPSS.")
(license license:expat))) (license license:expat)))
(define-public python-pyreadstat
(package
(name "python-pyreadstat")
(version "1.2.4")
;; No tests in the PyPI tarball.
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Roche/pyreadstat")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0zysrzixvqw2lwwykxqg5yj8a0zyv5s2bmk22x30f4rj2hgvq1pv"))
(patches (search-patches "python-pyreadstat-link-libiconv.patch"))))
(arguments
'(#:phases (modify-phases %standard-phases
(add-before 'check 'change-home-dir
(lambda _
;; test_sav_expand and test_sav_write_basic_expanduser need a
;; home directory with write permissions.
(setenv "HOME" "/tmp")))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; The source also contains tests/test_version.py
;; which checks the version in __init__.py against the
;; one in setup.py. Since this requires texlive
;; dependencies to run and is also not mentioned in
;; how_to_test.md, this test is skipped.
(invoke "python" "tests/test_basic.py")))))))
(build-system python-build-system)
(propagated-inputs (list python-pandas))
(inputs (list libiconv zlib))
(native-inputs (list python-cython-3))
(home-page "https://github.com/Roche/pyreadstat")
(synopsis
"Read and write SAS, SPSS and Stata files into/from Pandas DataFrames")
(description
"This Python package can be used to read and write SAS, SPSS and Stata
files into/from Pandas DataFrames. It is a wrapper around the C library
@code{readstat}.")
(license license:asl2.0)))
(define-public r-quantpsyc (define-public r-quantpsyc
(package (package
(name "r-quantpsyc") (name "r-quantpsyc")

View File

@ -79,7 +79,7 @@ you tailor the wrapping process to suit your application.")
(package (package
(inherit swig) (inherit swig)
(name "swig") (name "swig")
(version "4.1.1") (version "4.2.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/" name "/" name "/" (uri (string-append "mirror://sourceforge/" name "/" name "/"
@ -87,5 +87,5 @@ you tailor the wrapping process to suit your application.")
name "-" version ".tar.gz")) name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"16xc767gf5ip40jh698wbdrxrghli5v2c966bkdmrmpwv378mw1a")))) "15wwh9215rdkflpr85r7zxr2nmrib03jr4bvh5i0f9lyb3bs4716"))))
(inputs (list pcre2)))) (inputs (list pcre2))))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2022 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2022, 2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Nikita <nikita@n0.is> ;;; Copyright © 2016 Nikita <nikita@n0.is>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
@ -101,7 +101,9 @@ tasks, synchronization primitives, atomic operations, and more.")
(lambda _ (lambda _
(substitute* "python/CMakeLists.txt" (substitute* "python/CMakeLists.txt"
(("\\$\\{PYTHON_BUILD_WORK_DIR\\}/build") (("\\$\\{PYTHON_BUILD_WORK_DIR\\}/build")
#$output)) #$output)
(("install --prefix.*-f" m)
(string-append m " --root=/")))
(substitute* "python/setup.py" (substitute* "python/setup.py"
(("extra_link_args=tbb_flag,") (("extra_link_args=tbb_flag,")
(string-append "extra_link_args=['-Wl,-rpath=" (string-append "extra_link_args=['-Wl,-rpath="

View File

@ -17,7 +17,7 @@
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org> ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020, 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org> ;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
@ -855,6 +855,75 @@ your calls and messages.")
Initiation Protocol (SIP) and a multimedia framework.") Initiation Protocol (SIP) and a multimedia framework.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public pjproject-jami
(let ((commit "d044ad6c5b4221648c555da16196804e4721299c")
(revision "0"))
(package
(inherit pjproject)
(name "pjproject-jami")
;; The version is taken from
;; <https://raw.githubusercontent.com/savoirfairelinux/pjproject/master/version.mak>.
(version (git-version "2.13.1" revision commit))
(source (origin
(inherit (package-source pjproject))
;; The Jami development team regularly issues patches to
;; pjproject to extend the its functionality and fix bugs;
;; they are submitted for inclusion upstream but larger
;; patches take time to be reviewed and merged, hence this
;; forked repository.
(method git-fetch)
(uri (git-reference
(url "https://github.com/savoirfairelinux/pjproject")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0z4d7wdpa2mlaygb283k0j8n3l6q68gn0xqd62b5ngqvkhlaf775"))))
(arguments
(substitute-keyword-arguments (package-arguments pjproject)
((#:configure-flags _ ''())
;; This package is tailored for DhtNet; see how it is built for its
;; CI in
;; <https://git.jami.net/savoirfairelinux/dhtnet/-/raw/master/Dockerfile>.
#~(list
;; Some flags preserved flags from parent package.
"--with-external-srtp"
#$@(if (string-contains (or (%current-system)
(%current-target-system)) "linux")
#~("--enable-epoll")
#~())
"--with-gnutls" ;disable OpenSSL checks
;; -DNDEBUG is set to prevent pjproject from raising
;; assertions that aren't critical, crashing
;; applications as the result.
"CFLAGS=-DNDEBUG"
;; Specify a runpath reference to itself, which is missing and
;; causes the validate-runpath phase to fail.
(string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib")
"--enable-shared"
"--disable-libyuv" ;TODO: add missing package
;; These flags are specific to DhtNet.
"--disable-sound"
"--enable-video"
"--enable-ext-sound"
"--disable-speex-aec"
"--disable-g711-codec"
"--disable-l16-codec"
"--disable-gsm-codec"
"--disable-g722-codec"
"--disable-g7221-codec"
"--disable-speex-codec"
"--disable-ilbc-codec"
"--disable-opencore-amr"
"--disable-silk"
"--disable-sdl"
"--disable-ffmpeg"
"--disable-v4l2"
"--disable-openh264"
"--disable-resample"
"--disable-libwebrtc")))))))
(define-public libtgvoip (define-public libtgvoip
(package (package
(name "libtgvoip") (name "libtgvoip")

View File

@ -1289,10 +1289,8 @@ that can be displayed terminal.")
(base32 (base32
"0x5c31yq7ansmiy20a0qf59wagba9v3pq97mlkxrqxn4n1gcc6vi")))) "0x5c31yq7ansmiy20a0qf59wagba9v3pq97mlkxrqxn4n1gcc6vi"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs (list libevent libssh msgpack-3 ncurses))
(list libevent libssh msgpack ncurses)) (native-inputs (list autoconf automake pkg-config))
(native-inputs
(list autoconf automake pkg-config))
(home-page "https://tmate.io/") (home-page "https://tmate.io/")
(synopsis "Terminal sharing application") (synopsis "Terminal sharing application")
(description "tmate is a terminal sharing application that allows you to (description "tmate is a terminal sharing application that allows you to

View File

@ -996,13 +996,13 @@ and Cython.")
(define-public txt2tags (define-public txt2tags
(package (package
(name "txt2tags") (name "txt2tags")
(version "3.7") (version "3.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "txt2tags" version)) (uri (pypi-uri "txt2tags" version))
(sha256 (sha256
(base32 (base32
"12hpnvdy7dgarq6ini9jp7dp2zcmvpax04zbl3jb84kd423r75i7")))) "0ik7gpr3gymgxnj0p86k8768kyxncbncv93zq67sbak3dbdl8hky"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (list python-tox)) (native-inputs (list python-tox))
(home-page "https://txt2tags.org") (home-page "https://txt2tags.org")

View File

@ -5,7 +5,7 @@
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Leo Famulari <leo@famulari.name> ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017, 2019, 2021-2023 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2019, 2021-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2018 Nikita <nikita@n0.is> ;;; Copyright © 2016, 2017, 2018 Nikita <nikita@n0.is>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
@ -15,7 +15,7 @@
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020, 2021, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020, 2021, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Solene Rapenne <solene@perso.pw> ;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
@ -200,7 +200,7 @@ living in the same process.")
(package (package
(name "gnutls") (name "gnutls")
(version "3.7.7") (version "3.7.7")
(replacement gnutls-3.8.1) (replacement gnutls-3.8.2)
(source (origin (source (origin
(method url-fetch) (method url-fetch)
;; Note: Releases are no longer on ftp.gnu.org since the ;; Note: Releases are no longer on ftp.gnu.org since the
@ -305,11 +305,11 @@ required structures.")
(define-deprecated/public-alias gnutls-latest gnutls) (define-deprecated/public-alias gnutls-latest gnutls)
;; Replacement for gnutls@3.7.7 to address GNUTLS-SA-2020-07-14 / ;; Replacement for gnutls@3.7.7 to address GNUTLS-SA-2020-07-14 /
;; CVE-2023-0361 ;; CVE-2023-0361 and GNUTLS-SA-2023-10-23 / CVE-2023-5981.
(define-public gnutls-3.8.1 (define gnutls-3.8.2
(package (package
(inherit gnutls) (inherit gnutls)
(version "3.8.1") (version "3.8.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnupg/gnutls/v" (uri (string-append "mirror://gnupg/gnutls/v"
@ -318,20 +318,7 @@ required structures.")
(patches (search-patches "gnutls-skip-trust-store-test.patch")) (patches (search-patches "gnutls-skip-trust-store-test.patch"))
(sha256 (sha256
(base32 (base32
"1742jiigwsfhx7nj5rz7dwqr8d46npsph6b68j7siar0mqarx2xs")))) "0xzgmp1ck5ifvdki4jg29r278w2p1m3a0qz38g99v6zsdw0yarg7"))))))
(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)))))
(define-public gnutls/dane (define-public gnutls/dane
;; GnuTLS with build libgnutls-dane, implementing DNS-based ;; GnuTLS with build libgnutls-dane, implementing DNS-based
@ -429,6 +416,8 @@ OpenSSL for TARGET."
(cond (cond
((target-x86-32? target) ((target-x86-32? target)
"x86") "x86")
((target-x32? target)
"x32")
((target-x86-64? target) ((target-x86-64? target)
"x86_64") "x86_64")
((target-mips64el? target) ((target-mips64el? target)

View File

@ -39,7 +39,7 @@
(define-public valgrind (define-public valgrind
(package (package
(name "valgrind") (name "valgrind")
(version "3.20.0") (version "3.22.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (list (string-append "https://sourceware.org/pub/valgrind" (uri (list (string-append "https://sourceware.org/pub/valgrind"
@ -48,7 +48,7 @@
"/valgrind-" version ".tar.bz2"))) "/valgrind-" version ".tar.bz2")))
(sha256 (sha256
(base32 (base32
"1ipkp6yi202pml2r0qwflysmq86dkqd8iyi1y51d6y70vcqw0dl5")))) "0k1ddnzxfpbng2sp5r31jjxsmp35g977rx6a8jcp4prcvmddn4f8"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("doc" ;16 MB (outputs '("doc" ;16 MB
"out")) "out"))

View File

@ -33,7 +33,7 @@
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2021 Greg Hogan <code@greghogan.com> ;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2021 Léo Le Bouter <lle-bout@zaclys.net> ;;; Copyright © 2021 Léo Le Bouter <lle-bout@zaclys.net>
;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org> ;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
@ -823,6 +823,52 @@ on @command{git}, and use any regular Git hosting service.")
to GitHub contributions calendar.") to GitHub contributions calendar.")
(license license:expat))) (license license:expat)))
(define-public xdiff
(let ((revision "0")
(commit "a137bc7ee6c76618ed1737c257548eaa10ac0089"))
(package
(name "xdiff")
;; The base version is taken from the CMakeLists.txt file.
(version (git-version "0.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/libgit2/xdiff")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1rxzpag2pih64qlgq40xg1z6mz0bzvps4baxw7bmykyhjhc2gx75"))))
(build-system cmake-build-system)
(arguments
(list
#:modules '((guix build cmake-build-system)
(guix build utils)
(srfi srfi-26))
#:tests? #f ;no test suite
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'create-shared-library
(lambda _
(substitute* "CMakeLists.txt"
(("add_library\\(xdiff STATIC")
"add_library(xdiff SHARED"))))
(replace 'install ;no install target
(lambda _
(with-directory-excursion "../source"
(for-each (cute install-file <>
(string-append #$output "/include"))
(list "xdiff.h"
"git-xdiff.h"))) ;included by xdiff.h
(install-file "libxdiff.so"
(string-append #$output "/lib")))))))
(home-page "https://github.com/libgit2/xdiff")
(synopsis "File differential library used by git")
(description "@code{xdiff} is the file differential library used by git,
which has been extracted into a standalone library for compatibility with
other git-like projects such as @code{libgit2}.")
(license license:lgpl2.1+))))
(define-public libgit2 (define-public libgit2
(package (package
(name "libgit2") (name "libgit2")
@ -1072,18 +1118,21 @@ collaboration using typical untrusted file hosts or services.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public cgit (define-public cgit
(let ((commit "793c420897e18eb3474c751d54cf4e0983f85433")
(rev "1"))
(package (package
(name "cgit") (name "cgit")
;; Update the git-source input as well. ;; Update the git-source input as well.
(version "1.2.3") (version (git-version "1.2.3" rev commit))
(source (origin (source (origin
(method url-fetch) (method git-fetch)
(uri (string-append (uri (git-reference
"https://git.zx2c4.com/cgit/snapshot/cgit-" (url "https://git.zx2c4.com/cgit")
version ".tar.xz")) (commit commit)))
(sha256 (sha256
(base32 (base32
"193d990ym10qlslk0p8mjwp2j6rhqa7fq0y1iff65lvbyv914pss")))) "1mhrm14wpqvralf9j33ih5ai6naiq3g2jg2z91gnw9dhh8f9ilwz"))
(file-name (git-file-name name version))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list (list
@ -1158,9 +1207,9 @@ collaboration using typical untrusted file hosts or services.")
(method url-fetch) (method url-fetch)
;; cgit is tightly bound to git. Use GIT_VER from the Makefile, ;; cgit is tightly bound to git. Use GIT_VER from the Makefile,
;; which may not match the current (package-version git). ;; which may not match the current (package-version git).
(uri "mirror://kernel.org/software/scm/git/git-2.25.4.tar.xz") (uri "mirror://kernel.org/software/scm/git/git-2.43.0.tar.xz")
(sha256 (sha256
(base32 "11am6s46wmn1yll5614smjhzlghbqq6gysgcs64igjr9y5wzpdxq")))) (base32 "1v3nkfm3gw8wr7595qy86qla8xyjvi85fmly4lfph4frfcz60ijl"))))
("bash-minimal" ,bash-minimal) ("bash-minimal" ,bash-minimal)
("openssl" ,openssl) ("openssl" ,openssl)
("python" ,python) ("python" ,python)
@ -1180,7 +1229,7 @@ collaboration using typical untrusted file hosts or services.")
(description (description
"CGit is an attempt to create a fast web interface for the Git SCM, using "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.") a built-in cache to decrease server I/O pressure.")
(license license:gpl2))) (license license:gpl2))))
(define-public cgit-pink (define-public cgit-pink
(package (package

View File

@ -50,7 +50,7 @@
;;; Copyright © 2021 Alexey Abramov <levenson@mmer.org> ;;; Copyright © 2021 Alexey Abramov <levenson@mmer.org>
;;; Copyright © 2021, 2022, 2023 Andrew Tropin <andrew@trop.in> ;;; Copyright © 2021, 2022, 2023 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2021 David Wilson <david@daviwil.com> ;;; Copyright © 2021 David Wilson <david@daviwil.com>
;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
;;; Copyright © 2021 Thiago Jung Bauermann <bauermann@kolabnow.com> ;;; Copyright © 2021 Thiago Jung Bauermann <bauermann@kolabnow.com>
@ -1047,14 +1047,14 @@ H.264 (MPEG-4 AVC) video streams.")
(define-public mkvtoolnix (define-public mkvtoolnix
(package (package
(name "mkvtoolnix") (name "mkvtoolnix")
(version "52.0.0") (version "80.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://mkvtoolnix.download/sources/" (uri (string-append "https://mkvtoolnix.download/sources/"
"mkvtoolnix-" version ".tar.xz")) "mkvtoolnix-" version ".tar.xz"))
(sha256 (sha256
(base32 "15y7ahlifsclnkl70wn5w34dil8nwcwcjnw3k2ydqc6dz4vb0j5s")) (base32 "1x9k9pmw7mzm2amvm251a45dlj9p9iqfank5p4w2fizxkapws25v"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet '(begin (snippet '(begin
;; Delete bundled libraries. ;; Delete bundled libraries.
@ -1070,6 +1070,7 @@ H.264 (MPEG-4 AVC) video streams.")
(outputs '("out" "gui")) ; "mkvtoolnix-gui" brings the closure size from ~300 MB to 1.5+ GB. (outputs '("out" "gui")) ; "mkvtoolnix-gui" brings the closure size from ~300 MB to 1.5+ GB.
(inputs (inputs
(list boost (list boost
gmp
bzip2 bzip2
cmark cmark
libebml libebml
@ -1083,33 +1084,36 @@ H.264 (MPEG-4 AVC) video streams.")
lzo lzo
pcre2 pcre2
pugixml pugixml
qtbase-5 qtbase
qtmultimedia-5 qtmultimedia
qtsvg
utfcpp utfcpp
zlib)) zlib))
(native-inputs (native-inputs
`(("docbook-xsl" ,docbook-xsl) (list docbook-xsl
("gettext" ,gettext-minimal) gettext-minimal
("googletest" ,googletest) googletest
("libxslt" ,libxslt) libxslt
("nlohmann-json" ,nlohmann-json) nlohmann-json
("perl" ,perl) perl
("pkg-config" ,pkg-config) pkg-config
("po4a" ,po4a) po4a
("qttools-5" ,qttools-5) qttools
("ruby" ,ruby-2.7))) ruby-3.2))
(arguments (arguments
`(#:configure-flags (list
(list (string-append "--with-boost=" #:configure-flags
(assoc-ref %build-inputs "boost")) #~(list (string-append "--with-boost="
#$(this-package-input "boost"))
(string-append "--with-docbook-xsl-root=" (string-append "--with-docbook-xsl-root="
(assoc-ref %build-inputs "docbook-xsl") #$(this-package-native-input "docbook-xsl")
"/xml/xsl/docbook-xsl-" "/xml/xsl/docbook-xsl-"
,(package-version docbook-xsl)) #$(package-version
(this-package-native-input "docbook-xsl")))
"--enable-update-check=no" "--enable-update-check=no"
"--enable-precompiled-headers=no") "--enable-precompiled-headers=no")
#:phases #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'fix-utfcpp-include (add-after 'unpack 'fix-utfcpp-include
(lambda _ (lambda _
(substitute* "src/common/strings/utf8.cpp" (substitute* "src/common/strings/utf8.cpp"
@ -1120,15 +1124,16 @@ H.264 (MPEG-4 AVC) video streams.")
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(substitute* "src/mkvtoolnix-gui/util/settings.cpp" (substitute* "src/mkvtoolnix-gui/util/settings.cpp"
(("mkvmerge" match) (("mkvmerge" match)
(string-append out "/bin/" match))) (string-append out "/bin/" match))) #t)))
#t)))
(add-before 'configure 'add-googletest (add-before 'configure 'add-googletest
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(symlink (search-input-directory inputs "/include/gtest") (symlink (search-input-directory inputs
"/include/gtest")
"lib/gtest"))) "lib/gtest")))
(replace 'build (replace 'build
(lambda _ (lambda _
(let ((-j (list "-j" (number->string (parallel-job-count))))) (let ((-j (list "-j"
(number->string (parallel-job-count)))))
(apply invoke "rake" -j)))) (apply invoke "rake" -j))))
(replace 'check (replace 'check
(lambda _ (lambda _
@ -1142,27 +1147,33 @@ H.264 (MPEG-4 AVC) video streams.")
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(gui (assoc-ref outputs "gui")) (gui (assoc-ref outputs "gui"))
(strip-store-dir (lambda (path) (strip-store-dir (lambda (path)
(substring path (string-prefix-length out path))))) (substring path
(for-each (string-prefix-length
(lambda (file) out path)))))
(mkdir-p (string-append gui (dirname file))) (for-each (lambda (file)
(mkdir-p (string-append gui
(dirname
file)))
(rename-file (string-append out file) (rename-file (string-append out file)
(string-append gui file))) (string-append gui file)))
(append '("/bin/mkvtoolnix-gui" (append '("/bin/mkvtoolnix-gui"
"/share/applications/org.bunkus.mkvtoolnix-gui.desktop" "/share/applications/org.bunkus.mkvtoolnix-gui.desktop"
"/share/metainfo/org.bunkus.mkvtoolnix-gui.appdata.xml" "/share/metainfo/org.bunkus.mkvtoolnix-gui.appdata.xml"
"/share/mime/packages/org.bunkus.mkvtoolnix-gui.xml") "/share/mime/packages/org.bunkus.mkvtoolnix-gui.xml")
(map strip-store-dir (find-files out "\\.ogg$")) (map strip-store-dir
(map strip-store-dir (find-files out "mkvtoolnix-gui\\.png$")) (find-files out "\\.ogg$"))
(map strip-store-dir (find-files out "mkvtoolnix-gui\\.1")))) (map strip-store-dir
(for-each (find-files out
(lambda (file) "mkvtoolnix-gui\\.png$"))
(delete-file-recursively (string-append out file))) (map strip-store-dir
(find-files out
"mkvtoolnix-gui\\.1"))))
(for-each (lambda (file)
(delete-file-recursively
(string-append out file)))
'("/share/applications" '("/share/applications"
"/share/metainfo" "/share/metainfo" "/share/mime"
"/share/mime" "/share/mkvtoolnix"))))))))
"/share/mkvtoolnix")))
#t)))))
(home-page "https://mkvtoolnix.download") (home-page "https://mkvtoolnix.download")
(synopsis "Tools to create, alter and inspect Matroska files") (synopsis "Tools to create, alter and inspect Matroska files")
(description (description
@ -1505,14 +1516,14 @@ SMPTE 314M.")
(define-public libmatroska (define-public libmatroska
(package (package
(name "libmatroska") (name "libmatroska")
(version "1.6.3") (version "1.7.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://dl.matroska.org/downloads/" (uri (string-append "https://dl.matroska.org/downloads/"
"libmatroska/libmatroska-" version ".tar.xz")) "libmatroska/libmatroska-" version ".tar.xz"))
(sha256 (sha256
(base32 "06h81sxyz2riic0gpzik6ffcnq32wrqphi8c6k55glcdymiimyfs")))) (base32 "1cqq61qgv6x3xjzjrw71dya7lbsbrsmi9raqm2k4hgfrp0rk0ajp"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(inputs (inputs
(list libebml)) (list libebml))
@ -1657,14 +1668,14 @@ operate properly.")
(define-public ffmpeg (define-public ffmpeg
(package (package
(name "ffmpeg") (name "ffmpeg")
(version "6.0") (version "6.1.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-" (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"10kh2f4y4isfqj4xpcqqnzk611jh89ywcjyjnq9c2jcv5p18ggjp")))) "0s7r2qv8gh2a3w568n9xxgcz0q8j5ww1jdsci1hm9f4l1yqg9146"))))
(outputs '("out" "debug")) (outputs '("out" "debug"))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
@ -1989,6 +2000,252 @@ audio/video codec library.")
"--enable-static")))) "--enable-static"))))
(inputs '())))) (inputs '()))))
;;; Custom ffmpeg package used by Jami, which incorporates custom patches.
(define-public ffmpeg-jami
(package
(inherit ffmpeg)
(name "ffmpeg-jami")
(source (let ((ffmpeg-origin (package-source ffmpeg)))
(origin
(inherit ffmpeg-origin)
;; These patches originate come from
;; <https://review.jami.net/plugins/gitiles/jami-daemon/+/refs/heads/master/contrib/src/ffmpeg/>.
;; Make sure to keep them update and/or register any new ones
;; here.
(patches
(append
(origin-patches ffmpeg-origin)
(search-patches
"ffmpeg-jami-remove-mjpeg-log.patch"
"ffmpeg-jami-change-RTCP-ratio.patch"
"ffmpeg-jami-rtp_ext_abs_send_time.patch"
"ffmpeg-jami-libopusdec-enable-FEC.patch"
"ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.patch"
"ffmpeg-jami-screen-sharing-x11-fix.patch"))))))
(arguments
(substitute-keyword-arguments (package-arguments ffmpeg)
((#:configure-flags _ '())
#~(list "--disable-static"
"--enable-shared"
"--disable-stripping"
;; The following variables are configure flags used by
;; ffmpeg-jami. They're from the
;; jami/daemon/contrib/src/ffmpeg/rules.mak file. We try to
;; keep it as close to the official Jami package as possible,
;; to provide all the codecs and extra features that are
;; expected (see:
;; https://review.jami.net/plugins/gitiles/jami-daemon/+/
;; refs/heads/master/contrib/src/ffmpeg/rules.mak).
;; An exception are the ffnvcodec-related switches, which is
;; not packaged in Guix and would not work with Mesa.
#$@(if (string-contains (%current-system) "linux")
'("--enable-pic"
"--extra-cxxflags=-fPIC"
"--extra-cflags=-fPIC"
"--target-os=linux"
"--enable-indev=v4l2"
"--enable-indev=xcbgrab"
"--enable-vdpau"
"--enable-hwaccel=h264_vdpau"
"--enable-hwaccel=mpeg4_vdpau"
"--enable-vaapi"
"--enable-hwaccel=h264_vaapi"
"--enable-hwaccel=mpeg4_vaapi"
"--enable-hwaccel=h263_vaapi"
"--enable-hwaccel=vp8_vaapi"
"--enable-hwaccel=mjpeg_vaapi"
"--enable-hwaccel=hevc_vaapi"
"--enable-encoder=h264_vaapi"
"--enable-encoder=vp8_vaapi"
"--enable-encoder=mjpeg_vaapi"
"--enable-encoder=hevc_vaapi")
'())
"--disable-everything"
"--enable-zlib"
"--enable-gpl"
"--enable-swscale"
"--enable-bsfs"
"--disable-filters"
"--disable-programs"
"--disable-postproc"
"--disable-protocols"
"--enable-protocol=crypto"
"--enable-protocol=file"
"--enable-protocol=rtp"
"--enable-protocol=srtp"
"--enable-protocol=tcp"
"--enable-protocol=udp"
"--enable-protocol=unix"
"--enable-protocol=pipe"
;; Enable muxers/demuxers.
"--disable-demuxers"
"--disable-muxers"
"--enable-muxer=rtp"
"--enable-muxer=g722"
"--enable-muxer=g726"
"--enable-muxer=g726le"
"--enable-muxer=h263"
"--enable-muxer=h264"
"--enable-muxer=hevc"
"--enable-muxer=matroska"
"--enable-muxer=wav"
"--enable-muxer=webm"
"--enable-muxer=ogg"
"--enable-muxer=pcm_s16be"
"--enable-muxer=pcm_s16le"
"--enable-demuxer=rtp"
"--enable-demuxer=mjpeg"
"--enable-demuxer=mjpeg_2000"
"--enable-demuxer=mpegvideo"
"--enable-demuxer=gif"
"--enable-demuxer=image_jpeg_pipe"
"--enable-demuxer=image_png_pipe"
"--enable-demuxer=image_webp_pipe"
"--enable-demuxer=matroska"
"--enable-demuxer=m4v"
"--enable-demuxer=mp3"
"--enable-demuxer=ogg"
"--enable-demuxer=flac"
"--enable-demuxer=wav"
"--enable-demuxer=ac3"
"--enable-demuxer=g722"
"--enable-demuxer=g723_1"
"--enable-demuxer=g726"
"--enable-demuxer=g726le"
"--enable-demuxer=pcm_mulaw"
"--enable-demuxer=pcm_alaw"
"--enable-demuxer=pcm_s16be"
"--enable-demuxer=pcm_s16le"
"--enable-demuxer=h263"
"--enable-demuxer=h264"
"--enable-demuxer=hevc"
;; Enable parsers.
"--enable-parser=h263"
"--enable-parser=h264"
"--enable-parser=hevc"
"--enable-parser=mpeg4video"
"--enable-parser=vp8"
"--enable-parser=vp9"
"--enable-parser=opus"
;; Encoders/decoders.
"--enable-encoder=adpcm_g722"
"--enable-decoder=adpcm_g722"
"--enable-encoder=adpcm_g726"
"--enable-decoder=adpcm_g726"
"--enable-encoder=adpcm_g726le"
"--enable-decoder=adpcm_g726le"
"--enable-decoder=g729"
"--enable-encoder=g723_1"
"--enable-decoder=g723_1"
"--enable-encoder=rawvideo"
"--enable-decoder=rawvideo"
"--enable-encoder=libx264"
"--enable-decoder=h264"
"--enable-encoder=pcm_alaw"
"--enable-decoder=pcm_alaw"
"--enable-encoder=pcm_mulaw"
"--enable-decoder=pcm_mulaw"
"--enable-encoder=mpeg4"
"--enable-decoder=mpeg4"
"--enable-encoder=libvpx_vp8"
"--enable-decoder=vp8"
"--enable-decoder=vp9"
"--enable-encoder=h263"
"--enable-encoder=h263p"
"--enable-decoder=h263"
"--enable-encoder=mjpeg"
"--enable-decoder=mjpeg"
"--enable-decoder=mjpegb"
"--enable-libspeex"
"--enable-libopus"
"--enable-libvpx"
"--enable-libx264"
"--enable-encoder=libspeex"
"--enable-decoder=libspeex"
"--enable-encoder=libopus"
"--enable-decoder=libopus"
;; Encoders/decoders for ringtones and audio streaming.
"--enable-decoder=flac"
"--enable-decoder=vorbis"
"--enable-decoder=aac"
"--enable-decoder=ac3"
"--enable-decoder=eac3"
"--enable-decoder=mp3"
"--enable-decoder=pcm_u24le"
"--enable-decoder=pcm_u32le"
"--enable-decoder=pcm_u8"
"--enable-decoder=pcm_f16le"
"--enable-decoder=pcm_f32le"
"--enable-decoder=pcm_f64le"
"--enable-decoder=pcm_s16le"
"--enable-decoder=pcm_s24le"
"--enable-decoder=pcm_s32le"
"--enable-decoder=pcm_s64le"
"--enable-decoder=pcm_u16le"
"--enable-encoder=pcm_u8"
"--enable-encoder=pcm_f32le"
"--enable-encoder=pcm_f64le"
"--enable-encoder=pcm_s16le"
"--enable-encoder=pcm_s32le"
"--enable-encoder=pcm_s64le"
"--enable-decoder=pcm_s16be"
"--enable-decoder=pcm_s16be_planar"
"--enable-decoder=pcm_s16le_planar"
"--enable-decoder=pcm_s24be"
"--enable-decoder=pcm_s24le_planar"
"--enable-decoder=pcm_s32be"
"--enable-decoder=pcm_s32le_planar"
"--enable-decoder=pcm_s64be"
"--enable-decoder=pcm_s8"
"--enable-decoder=pcm_s8_planar"
"--enable-decoder=pcm_u16be"
;; Encoders/decoders for images.
"--enable-encoder=gif"
"--enable-decoder=gif"
"--enable-encoder=jpegls"
"--enable-decoder=jpegls"
"--enable-encoder=ljpeg"
"--enable-decoder=jpeg2000"
"--enable-encoder=png"
"--enable-decoder=png"
"--enable-encoder=bmp"
"--enable-decoder=bmp"
"--enable-encoder=tiff"
"--enable-decoder=tiff"
;; Filters.
"--enable-filter=scale"
"--enable-filter=overlay"
"--enable-filter=amix"
"--enable-filter=amerge"
"--enable-filter=aresample"
"--enable-filter=format"
"--enable-filter=aformat"
"--enable-filter=fps"
"--enable-filter=transpose"
"--enable-filter=pad"
"--enable-filter=afir"
"--enable-filter=split"
"--enable-filter=drawbox"
"--enable-filter=drawtext"
"--enable-filter=rotate"
"--enable-filter=loop"
"--enable-filter=setpts"
"--enable-filter=movie"
"--enable-filter=alphamerge"
"--enable-filter=boxblur"
"--enable-filter=lut"
"--enable-filter=negate"
"--enable-filter=colorkey"
"--enable-filter=transpose"))))))
(define-public ffmpegthumbnailer (define-public ffmpegthumbnailer
(package (package
(name "ffmpegthumbnailer") (name "ffmpegthumbnailer")
@ -3631,7 +3888,10 @@ be used for realtime video capture via Linux-specific APIs.")
(lambda* _ (lambda* _
(let ((plugin-path (getenv "QT_PLUGIN_PATH"))) (let ((plugin-path (getenv "QT_PLUGIN_PATH")))
(wrap-program (string-append #$output "/bin/obs") (wrap-program (string-append #$output "/bin/obs")
`("QT_PLUGIN_PATH" ":" prefix (,plugin-path))))))))) `("QT_PLUGIN_PATH" ":" prefix (,plugin-path))
`("LD_LIBRARY_PATH" ":" prefix
(,(string-append #$(this-package-input "vlc")
"/lib"))))))))))
(native-search-paths (native-search-paths
(list (search-path-specification (list (search-path-specification
(variable "OBS_PLUGINS_DIRECTORY") (variable "OBS_PLUGINS_DIRECTORY")

View File

@ -884,6 +884,14 @@ refactor Vim in order to:
'(#:tests? #false ;no tests '(#:tests? #false ;no tests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'help-cmake-find-msgpack-c
(lambda _
;; Patch the build system so that it can find the modern
;; 'msgpack-c' named pkg-config file (see:
;; https://github.com/jeanguyomarch/eovim/issues/73).
(substitute* "cmake/Modules/FindMsgPack.cmake"
(("MSGPACK QUIET msgpack")
"MSGPACK QUIET msgpack-c msgpack"))))
(add-after 'configure 'reference-nvim (add-after 'configure 'reference-nvim
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((nvim (search-input-file inputs "/bin/nvim"))) (let ((nvim (search-input-file inputs "/bin/nvim")))
@ -894,10 +902,8 @@ refactor Vim in order to:
(string-append start nvim)))))) (string-append start nvim))))))
(add-before 'build 'set-home (add-before 'build 'set-home
(lambda _ (setenv "HOME" "/tmp")))))) (lambda _ (setenv "HOME" "/tmp"))))))
(native-inputs (native-inputs (list pkg-config))
(list pkg-config)) (inputs (list efl msgpack-c neovim))
(inputs
(list efl msgpack neovim))
(home-page "https://github.com/jeanguyomarch/eovim/") (home-page "https://github.com/jeanguyomarch/eovim/")
(synopsis "EFL GUI for Neovim") (synopsis "EFL GUI for Neovim")
(description "Graphical Neovim interface based on the @acronym{EFL, Enlightenment (description "Graphical Neovim interface based on the @acronym{EFL, Enlightenment

View File

@ -587,7 +587,7 @@ driven and does not detract you from your daily work.")
(define-public nyxt (define-public nyxt
(package (package
(name "nyxt") (name "nyxt")
(version "3.10.0") (version "3.11.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -596,7 +596,7 @@ driven and does not detract you from your daily work.")
(commit version))) (commit version)))
(sha256 (sha256
(base32 (base32
"1rz2082kk3fdvszqmi3fgndrq205vbxl3i0x4qyli0jy3lpvjin8")) "0hzkpk8kshw7afz3pryi99xz2vg3v676day0mgji3hvaazfan39p"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments

View File

@ -46,7 +46,7 @@
;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020, 2021 Ryan Prior <rprior@protonmail.com> ;;; Copyright © 2020, 2021 Ryan Prior <rprior@protonmail.com>
;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro> ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at> ;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2021 la snesne <lasnesne@lagunposprasihopre.org> ;;; Copyright © 2021 la snesne <lasnesne@lagunposprasihopre.org>
;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org> ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
@ -6621,6 +6621,28 @@ Depending on your architecture, it only requires about 40 bytes of data per
message stream (in a web server that is per connection).") message stream (in a web server that is per connection).")
(license license:expat)))) (license license:expat))))
(define-public llhttp
(package
(name "llhttp")
(version "9.1.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/nodejs/llhttp")
(commit (string-append "release/v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1nkv64c5fs8x6n5f9f6g28w5hvg776p55cwa0f82ni548nx279s1"))))
(build-system cmake-build-system)
(arguments (list #:tests? #f)) ;FIXME: tests depend on node-mocha
(home-page "https://github.com/nodejs/llhttp")
(synopsis "Port of http_parser to llparse")
(description "@code{llparse} is a port of @code{http_parser} to
@code{llparse} which aims making it more maintainable, verifiable and
efficient where possible.")
(license license:expat)))
(define-public python-httpretty (define-public python-httpretty
(package (package
(name "python-httpretty") (name "python-httpretty")

View File

@ -787,7 +787,7 @@ desktop environment.")
(define-public icewm (define-public icewm
(package (package
(name "icewm") (name "icewm")
(version "3.4.4") (version "3.4.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -795,7 +795,7 @@ desktop environment.")
version "/icewm-" version ".tar.lz")) version "/icewm-" version ".tar.lz"))
(sha256 (sha256
(base32 (base32
"0cdsb2d45dwcr2dm4jfh0z5g6pkb0ghd4jaybxqiz74mbw5rmjhv")))) "1wd5k0whh2b43a72223cy19pwc29fhrhd2dnc61fha2y5ndgw6ld"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (list pkg-config)) (native-inputs (list pkg-config))
(inputs (list fontconfig (inputs (list fontconfig

View File

@ -216,7 +216,7 @@ to share commonly used Xfce widgets among the Xfce applications.")
(define-public catfish (define-public catfish
(package (package
(name "catfish") (name "catfish")
(version "4.16.4") (version "4.18.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://archive.xfce.org/src/apps/" (uri (string-append "https://archive.xfce.org/src/apps/"
@ -224,7 +224,7 @@ to share commonly used Xfce widgets among the Xfce applications.")
"/catfish-" version ".tar.bz2")) "/catfish-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1z5m9f4cj473n68rrhhbkq3x5df5k394qp4n27lqqyny6k2h2p3f")))) "16cbsnki7qragwhbfs3h0ja7xg8xlf59ajxhddqm0jkmrirrpbpx"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
'(#:phases '(#:phases
@ -270,7 +270,7 @@ it to your needs by using several command line options.")
(define-public elementary-xfce-icon-theme (define-public elementary-xfce-icon-theme
(package (package
(name "elementary-xfce-icon-theme") (name "elementary-xfce-icon-theme")
(version "0.17") (version "0.18")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (uri
@ -280,7 +280,7 @@ it to your needs by using several command line options.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0jlawp6rg55w5cm4d7836r660i2pnc5gkzpdjsq7w5875i85arzm")))) "124bdgghkjkpcsfn9a2ad6zqy233pi9jqmv8w8a3ha6q3al2s11s"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f ; no check target '(#:tests? #f ; no check target

View File

@ -245,14 +245,14 @@ which can be read by any architecture.")
(define-public xorgproto (define-public xorgproto
(package (package
(name "xorgproto") (name "xorgproto")
(version "2022.2") (version "2023.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://xorg/individual/proto" (uri (string-append "mirror://xorg/individual/proto"
"/xorgproto-" version ".tar.xz")) "/xorgproto-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"17kbq1x68jl9mz69ays5c0w72lpkqi937raxk0im7y88pvrdn4sx")))) "0b4c27aq25w1fccks49p020avf9jzh75kaq5qwnww51bp1yvq7xn"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(propagated-inputs (propagated-inputs
;; To get util-macros in (almost?) all package inputs. ;; To get util-macros in (almost?) all package inputs.
@ -5250,7 +5250,7 @@ EGLStream families of extensions.")
(define-public xorg-server-xwayland (define-public xorg-server-xwayland
(package (package
(name "xorg-server-xwayland") (name "xorg-server-xwayland")
(version "21.1.3") (version "23.2.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -5258,7 +5258,7 @@ EGLStream families of extensions.")
"/xserver/xwayland-" version ".tar.xz")) "/xserver/xwayland-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"18pqvg76grbsyxa3mm3j06i1l8cwb28nbn2gcnqpsk7x75zpbhpb")))) "00p30yyikh7h9xsqgir66xb06pspgjlibv1mi0n42irc4fkrm7gb"))))
(inputs (list font-dejavu (inputs (list font-dejavu
dbus dbus
egl-wayland egl-wayland
@ -5268,6 +5268,7 @@ EGLStream families of extensions.")
libepoxy libepoxy
libgcrypt libgcrypt
libtirpc libtirpc
libxcvt
libxfont2 libxfont2
libxkbfile libxkbfile
pixman pixman
@ -5283,6 +5284,7 @@ EGLStream families of extensions.")
wayland wayland
wayland-protocols) wayland-protocols)
'()))) '())))
(properties '((upstream-name . "xwayland")))
(build-system meson-build-system) (build-system meson-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags

View File

@ -1798,9 +1798,9 @@ archive' public keys, with GUIX."
(chroot-directories guix-configuration-chroot-directories ;list of file-like/strings (chroot-directories guix-configuration-chroot-directories ;list of file-like/strings
(default '())) (default '()))
(max-silent-time guix-configuration-max-silent-time ;integer (max-silent-time guix-configuration-max-silent-time ;integer
(default 0)) (default 3600))
(timeout guix-configuration-timeout ;integer (timeout guix-configuration-timeout ;integer
(default 0)) (default (* 3600 24)))
(log-compression guix-configuration-log-compression (log-compression guix-configuration-log-compression
(default 'gzip)) (default 'gzip))
(discover? guix-configuration-discover? (discover? guix-configuration-discover?

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2015, 2017-2020, 2022, 2023 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2017-2020, 2022-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr> ;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -857,9 +857,7 @@ string, you could instantiate a prosody service like this:
;; on 'networking'. ;; on 'networking'.
(requirement '(user-processes networking)) (requirement '(user-processes networking))
(start #~(if (defined? 'make-inetd-constructor) (start #~(make-inetd-constructor
(make-inetd-constructor
(list #$bitlbee* "-I" "-c" #$conf) (list #$bitlbee* "-I" "-c" #$conf)
(list (endpoint (list (endpoint
(addrinfo:addr (addrinfo:addr
@ -875,21 +873,8 @@ string, you could instantiate a prosody service like this:
#:environment-variables #:environment-variables
(list (string-append "PURPLE_PLUGIN_PATH=" (list (string-append "PURPLE_PLUGIN_PATH="
#$plugins "/lib/purple-2") #$plugins "/lib/purple-2")
"GUIX_LOCPATH=/run/current-system/locale")) "GUIX_LOCPATH=/run/current-system/locale")))
(stop #~(make-inetd-destructor))))))))
(make-forkexec-constructor
(list #$(file-append bitlbee "/sbin/bitlbee")
"-n" "-F" "-u" "bitlbee" "-c" #$conf)
;; Allow 'bitlbee-purple' to use libpurple plugins.
#:environment-variables
(list (string-append "PURPLE_PLUGIN_PATH="
#$plugins "/lib/purple-2"))
#:pid-file "/var/run/bitlbee.pid")))
(stop #~(if (defined? 'make-inetd-destructor)
(make-inetd-destructor)
(make-kill-destructor)))))))))
(define %bitlbee-accounts (define %bitlbee-accounts
;; User group and account to run BitlBee. ;; User group and account to run BitlBee.

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013-2016, 2018-2023 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013-2016, 2018-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018 Carlo Zancanaro <carlo@zancanaro.id.au> ;;; Copyright © 2018 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
@ -183,7 +183,6 @@ DEFAULT is given, use it as the service's default value."
(define %default-modules (define %default-modules
;; Default set of modules visible in a service's file. ;; Default set of modules visible in a service's file.
`((shepherd service) `((shepherd service)
(oop goops)
((guix build utils) #:hide (delete)) ((guix build utils) #:hide (delete))
(guix build syscalls))) (guix build syscalls)))
@ -300,10 +299,10 @@ stored."
#~(begin #~(begin
(use-modules #$@(shepherd-service-modules service)) (use-modules #$@(shepherd-service-modules service))
(make <service> (service
#:docstring '#$(shepherd-service-documentation service) '#$(shepherd-service-provision service)
#:provides '#$(shepherd-service-provision service) #:documentation '#$(shepherd-service-documentation service)
#:requires '#$(shepherd-service-requirement service) #:requirement '#$(shepherd-service-requirement service)
;; The 'one-shot?' slot is new in Shepherd 0.6.0. ;; The 'one-shot?' slot is new in Shepherd 0.6.0.
;; Older versions ignore it. ;; Older versions ignore it.
@ -313,7 +312,7 @@ stored."
#:start #$(shepherd-service-start service) #:start #$(shepherd-service-start service)
#:stop #$(shepherd-service-stop service) #:stop #$(shepherd-service-stop service)
#:actions #:actions
(make-actions (actions
#$@(map (match-lambda #$@(map (match-lambda
(($ <shepherd-action> name proc doc) (($ <shepherd-action> name proc doc)
#~(#$name #$doc #$proc))) #~(#$name #$doc #$proc)))
@ -338,7 +337,6 @@ and return the resulting '.go' file. SHEPHERD is used as shepherd package."
;; Do the same as the Shepherd's 'load-in-user-module'. ;; Do the same as the Shepherd's 'load-in-user-module'.
(let ((env (make-fresh-user-module))) (let ((env (make-fresh-user-module)))
(module-use! env (resolve-interface '(oop goops)))
(module-use! env (resolve-interface '(shepherd service))) (module-use! env (resolve-interface '(shepherd service)))
(with-target #$(or target #~%host-type) (with-target #$(or target #~%host-type)
(lambda _ (lambda _
@ -371,17 +369,6 @@ as shepherd package."
(use-modules (srfi srfi-34) (use-modules (srfi srfi-34)
(system repl error-handling)) (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' & ;; There's code run from shepherd that uses 'call-with-input-file' &
;; co.--e.g., the 'urandom-seed' service. Starting from Shepherd ;; 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 ;; 0.9.2, users need to make sure not to leak non-close-on-exec file
@ -389,11 +376,11 @@ as shepherd package."
;; standard bindings with O_CLOEXEC variants. ;; standard bindings with O_CLOEXEC variants.
(set! call-with-input-file (set! call-with-input-file
(lambda (file proc) (lambda (file proc)
(call-with-file file (logior O_RDONLY O_CLOEXEC) (call-with-port (open file (logior O_RDONLY O_CLOEXEC))
proc))) proc)))
(set! call-with-output-file (set! call-with-output-file
(lambda (file proc) (lambda (file proc)
(call-with-file file (logior O_WRONLY O_CREAT O_CLOEXEC) (call-with-port (open file (logior O_WRONLY O_CREAT O_CLOEXEC))
proc))) proc)))
;; Specify the default environment visible to all the services. ;; Specify the default environment visible to all the services.
@ -412,7 +399,7 @@ as shepherd package."
;; than a kernel panic. ;; than a kernel panic.
(call-with-error-handling (call-with-error-handling
(lambda () (lambda ()
(apply register-services (register-services
(parameterize ((current-warning-port (parameterize ((current-warning-port
(%make-void-port "w"))) (%make-void-port "w")))
(map load-compiled '#$(map scm->go files)))))) (map load-compiled '#$(map scm->go files))))))
@ -422,15 +409,7 @@ as shepherd package."
'#$(append-map shepherd-service-provision '#$(append-map shepherd-service-provision
(filter shepherd-service-auto-start? (filter shepherd-service-auto-start?
services)))) services))))
(if (defined? 'start-in-the-background)
(start-in-the-background services-to-start) (start-in-the-background services-to-start)
(for-each (lambda (service) ;pre-0.9.0 compatibility
(guard (c ((service-error? c)
(format (current-error-port)
"failed to start service '~a'~%"
service)))
(start service)))
services-to-start))
;; Hang up stdin. At this point, we assume that 'start' methods ;; Hang up stdin. At this point, we assume that 'start' methods
;; that required user interaction on the console (e.g., ;; that required user interaction on the console (e.g.,

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014-2019, 2022, 2023 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014-2019, 2022-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2016 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
@ -592,7 +592,10 @@ of user-name/file-like tuples."
(list (shepherd-service (list (shepherd-service
(documentation "OpenSSH server.") (documentation "OpenSSH server.")
(requirement '(pam syslogd loopback))
;; On the Hurd, this can only be started after pfinet is up, hence
;; the dependency on 'networking'.
(requirement '(pam syslogd loopback networking))
(provision '(ssh-daemon ssh sshd)) (provision '(ssh-daemon ssh sshd))
(start #~(if #$inetd-style? (start #~(if #$inetd-style?

View File

@ -981,6 +981,11 @@ argument.")))
(lambda (pw) (lambda (pw)
(string-append (passwd:dir pw) "/.guix-profile")))) (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 ;; 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 ;; the search paths set below. We need to do this so that D-Bus
;; can start services installed by the user. This allows ;; can start services installed by the user. This allows
@ -988,8 +993,12 @@ argument.")))
;; 'evolution') to work even if those services are only available ;; 'evolution') to work even if those services are only available
;; in the user's profile. See <https://bugs.gnu.org/35267>. ;; in the user's profile. See <https://bugs.gnu.org/35267>.
(define profiles (define profiles
(append (if home-profile
(list home-profile)
'())
(if user-profile (if user-profile
(list user-profile system-profile) (list user-profile)
'())
(list system-profile))) (list system-profile)))
(setenv "XDG_CONFIG_DIRS" (setenv "XDG_CONFIG_DIRS"

View File

@ -803,9 +803,7 @@ bookkeeping."
%boot-service %boot-service
%hurd-startup-service %hurd-startup-service
%activation-service %activation-service
(service shepherd-root-service-type (service shepherd-root-service-type)
(shepherd-configuration
(shepherd shepherd-0.8))) ;no Fibers
(service user-processes-service-type) (service user-processes-service-type)
(account-service (append (operating-system-accounts os) (account-service (append (operating-system-accounts os)

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020-2022 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2020-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -70,7 +70,7 @@
;; Note: the Shepherd comes before the Hurd, not just because its duty is to ;; Note: the Shepherd comes before the Hurd, not just because its duty is to
;; shepherd the herd, but also because we want its 'halt' and 'reboot' ;; shepherd the herd, but also because we want its 'halt' and 'reboot'
;; commands to take precedence. ;; commands to take precedence.
(list shepherd-0.8 hurd netdde bash coreutils file findutils grep sed (list shepherd-0.10 hurd netdde bash coreutils file findutils grep sed
diffutils patch gawk tar gzip bzip2 xz lzip diffutils patch gawk tar gzip bzip2 xz lzip
guile-3.0-latest guile-colorized guile-readline guile-3.0-latest guile-colorized guile-readline
net-base nss-certs inetutils less procps shadow sudo which net-base nss-certs inetutils less procps shadow sudo which

View File

@ -5,6 +5,7 @@
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> ;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2022 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2022 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2023 Oleg Pykhalov <go.wigust@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -686,7 +687,8 @@ returns an image record where the first partition's label is set to <label>."
(define* (system-docker-image image (define* (system-docker-image image
#:key #:key
(name "docker-image")) (name "docker-image")
(archiver tar))
"Build a docker image for IMAGE. NAME is the base name to use for the "Build a docker image for IMAGE. NAME is the base name to use for the
output file." output file."
(define boot-program (define boot-program
@ -731,6 +733,7 @@ output file."
(use-modules (guix docker) (use-modules (guix docker)
(guix build utils) (guix build utils)
(gnu build image) (gnu build image)
(srfi srfi-1)
(srfi srfi-19) (srfi srfi-19)
(guix build store-copy) (guix build store-copy)
(guix store database)) (guix store database))
@ -754,18 +757,30 @@ output file."
#:register-closures? #$register-closures? #:register-closures? #$register-closures?
#:deduplicate? #f #:deduplicate? #f
#:system-directory #$os) #:system-directory #$os)
(build-docker-image (when #$(image-max-layers image)
#$output (setenv "PATH"
(cons* image-root (string-join (list #+(file-append archiver "/bin")
#+(file-append gzip "/bin"))
":")))
(apply build-docker-image
(append (list #$output
(append (if #$(image-max-layers image)
'()
(list image-root))
(map store-info-item (map store-info-item
(call-with-input-file #$graph (call-with-input-file #$graph
read-reference-graph))) read-reference-graph)))
#$os #$os
#:entry-point '(#$boot-program #$os) #:entry-point '(#$boot-program #$os)
#:compressor '(#+(file-append gzip "/bin/gzip") "-9n") #:compressor
'(#+(file-append gzip "/bin/gzip") "-9n")
#:creation-time (make-time time-utc 0 1) #:creation-time (make-time time-utc 0 1)
#:system #$image-target #:system #$image-target
#:transformations `((,image-root -> "")))))))) #:transformations `((,image-root -> "")))
(if #$(image-max-layers image)
(list #:root-system image-root
#:max-layers #$(image-max-layers image))
'()))))))))
(computed-file name builder (computed-file name builder
;; Allow offloading so that this I/O-intensive process ;; Allow offloading so that this I/O-intensive process

Some files were not shown because too many files have changed in this diff Show More