Merge branch 'master' into core-updates

This commit is contained in:
Marius Bakke 2022-06-27 19:23:48 +02:00
commit 2a7648774f
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
108 changed files with 4080 additions and 1733 deletions

View File

@ -682,6 +682,20 @@ chmod +x guix-install.sh
./guix-install.sh ./guix-install.sh
@end example @end example
If you're running Debian or a derivative such as Ubuntu, you can instead
install the package (it might be a version older than @value{VERSION}
but you can update it afterwards by running @samp{guix pull}):
@example
sudo apt install guix
@end example
Likewise on openSUSE:
@example
sudo zypper install guix
@end example
When you're done, @pxref{Application Setup} for extra configuration you When you're done, @pxref{Application Setup} for extra configuration you
might need, and @ref{Getting Started} for your first steps! might need, and @ref{Getting Started} for your first steps!
@end quotation @end quotation
@ -7379,8 +7393,25 @@ The build system that should be used to build the package (@pxref{Build
Systems}). Systems}).
@item @code{arguments} (default: @code{'()}) @item @code{arguments} (default: @code{'()})
The arguments that should be passed to the build system. This is a The arguments that should be passed to the build system (@pxref{Build
list, typically containing sequential keyword-value pairs. Systems}). This is a list, typically containing sequential
keyword-value pairs, as in this example:
@lisp
(package
(name "example")
;; several fields omitted
(arguments
(list #:tests? #f ;skip tests
#:make-flags #~'("VERBOSE=1") ;pass flags to 'make'
#:configure-flags #~'("--enable-frobbing"))))
@end lisp
The exact set of supported keywords depends on the build system
(@pxref{Build Systems}), but you will find that almost all of them honor
@code{#:configure-flags}, @code{#:make-flags}, @code{#:tests?}, and
@code{#:phases}. The @code{#:phases} keyword in particular lets you
modify the set of build phases for your package (@pxref{Build Phases}).
@item @code{inputs} (default: @code{'()}) @item @code{inputs} (default: @code{'()})
@itemx @code{native-inputs} (default: @code{'()}) @itemx @code{native-inputs} (default: @code{'()})
@ -9713,8 +9744,7 @@ phase before the @code{build} phase, called
(substitute* "Makefile" (substitute* "Makefile"
(("PREFIX =.*") (("PREFIX =.*")
(string-append "PREFIX = " (string-append "PREFIX = "
out "\n"))) out "\n")))))))))))
#true))))))))
@end lisp @end lisp
The new phase that is inserted is written as an anonymous procedure, The new phase that is inserted is written as an anonymous procedure,
@ -13724,7 +13754,6 @@ gnu/packages/emacs.scm:856:13: emacs-auctex would be upgraded from 11.88.6 to 11
@end example @end example
@item --list-updaters @item --list-updaters
@itemx -L
List available updaters and exit (see @option{--type} above). List available updaters and exit (see @option{--type} above).
For each updater, display the fraction of packages it covers; at the For each updater, display the fraction of packages it covers; at the
@ -13855,6 +13884,7 @@ the user whether to download it or not. This is the default behavior.
Use @var{host} as the OpenPGP key server when importing a public key. Use @var{host} as the OpenPGP key server when importing a public key.
@item --load-path=@var{directory} @item --load-path=@var{directory}
@itemx -L @var{directory}
Add @var{directory} to the front of the package module search path Add @var{directory} to the front of the package module search path
(@pxref{Package Modules}). (@pxref{Package Modules}).
@ -14921,8 +14951,8 @@ The command output looks like this:
@smallexample @smallexample
$ guix challenge --substitute-urls="https://@value{SUBSTITUTE-SERVER-1} https://guix.example.org" $ guix challenge --substitute-urls="https://@value{SUBSTITUTE-SERVER-1} https://guix.example.org"
updating list of substitutes from 'https://@value{SUBSTITUTE-SERVER-1}'... 100.0% updating substitutes from 'https://@value{SUBSTITUTE-SERVER-1}'... 100.0%
updating list of substitutes from 'https://guix.example.org'... 100.0% updating substitutes from 'https://guix.example.org'... 100.0%
/gnu/store/@dots{}-openssl-1.0.2d contents differ: /gnu/store/@dots{}-openssl-1.0.2d contents differ:
local hash: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q local hash: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q
https://@value{SUBSTITUTE-SERVER-1}/nar/@dots{}-openssl-1.0.2d: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q https://@value{SUBSTITUTE-SERVER-1}/nar/@dots{}-openssl-1.0.2d: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q
@ -15209,7 +15239,7 @@ Here's a sample run:
$ guix weather --substitute-urls=https://guix.example.org $ guix weather --substitute-urls=https://guix.example.org
computing 5,872 package derivations for x86_64-linux... computing 5,872 package derivations for x86_64-linux...
looking for 6,128 store items on https://guix.example.org.. looking for 6,128 store items on https://guix.example.org..
updating list of substitutes from 'https://guix.example.org'... 100.0% updating substitutes from 'https://guix.example.org'... 100.0%
https://guix.example.org https://guix.example.org
43.4% substitutes available (2,658 out of 6,128) 43.4% substitutes available (2,658 out of 6,128)
7,032.5 MiB of nars (compressed) 7,032.5 MiB of nars (compressed)
@ -15830,6 +15860,11 @@ file, the @command{guix system reconfigure my-system-config.scm} command
instantiates that configuration, and makes it the default GRUB boot instantiates that configuration, and makes it the default GRUB boot
entry (@pxref{Invoking guix system}). entry (@pxref{Invoking guix system}).
@quotation Note
We recommend that you keep this @file{my-system-config.scm} file safe
and under version control to easily track changes to your configuration.
@end quotation
The normal way to change the system configuration is by updating this The normal way to change the system configuration is by updating this
file and re-running @command{guix system reconfigure}. One should never file and re-running @command{guix system reconfigure}. One should never
have to touch files in @file{/etc} or to run commands that modify the have to touch files in @file{/etc} or to run commands that modify the
@ -18699,7 +18734,7 @@ starting with static network configuration.
This is the type for statically-configured network interfaces. Its This is the type for statically-configured network interfaces. Its
value must be a list of @code{static-networking} records. Each of them value must be a list of @code{static-networking} records. Each of them
declares a set of @dfn{addresses}, @dfn{routes}, and @dfn{links}, as declares a set of @dfn{addresses}, @dfn{routes}, and @dfn{links}, as
show below. shown below.
@cindex network interface controller (NIC) @cindex network interface controller (NIC)
@cindex NIC, networking interface controller @cindex NIC, networking interface controller
@ -21105,9 +21140,11 @@ You can do that directly, like this (you need to use the
(list cups-filters epson-inkjet-printer-escpr hplip-minimal)))) (list cups-filters epson-inkjet-printer-escpr hplip-minimal))))
@end lisp @end lisp
Note: If you wish to use the Qt5 based GUI which comes with the hplip @quotation Note
If you wish to use the Qt5 based GUI which comes with the hplip
package then it is suggested that you install the @code{hplip} package, package then it is suggested that you install the @code{hplip} package,
either in your OS configuration file or as your user. either in your OS configuration file or as your user.
@end quotation
The available configuration parameters follow. Each parameter The available configuration parameters follow. Each parameter
definition is preceded by its type; for example, @samp{string-list foo} definition is preceded by its type; for example, @samp{string-list foo}
@ -25555,13 +25592,15 @@ example if you want your users to have addresses like
@samp{"john.smith@@example.com"} then you need to add a host @samp{"john.smith@@example.com"} then you need to add a host
@samp{"example.com"}. All options in this list will apply only to this host. @samp{"example.com"}. All options in this list will apply only to this host.
Note: the name @emph{virtual} host is used in configuration to avoid confusion with @quotation Note
The name @emph{virtual} host is used in configuration to avoid confusion with
the actual physical host that Prosody is installed on. A single Prosody the actual physical host that Prosody is installed on. A single Prosody
instance can serve many domains, each one defined as a VirtualHost entry in instance can serve many domains, each one defined as a VirtualHost entry in
Prosody's configuration. Conversely a server that hosts a single domain would Prosody's configuration. Conversely a server that hosts a single domain would
have just one VirtualHost entry. have just one VirtualHost entry.
See @url{https://prosody.im/doc/configure#virtual_host_settings}. See @url{https://prosody.im/doc/configure#virtual_host_settings}.
@end quotation
Available @code{virtualhost-configuration} fields are: Available @code{virtualhost-configuration} fields are:
@ -26162,8 +26201,10 @@ After setting this option, it is recommend that you inspect your Mumble
server log to ensure that Mumble is using the cipher suites that you server log to ensure that Mumble is using the cipher suites that you
expected it to. expected it to.
Note: Changing this option may impact the backwards compatibility of your @quotation Note
Changing this option may impact the backwards compatibility of your
Mumble-Server server, and can remove the ability for older Mumble clients to be able to connect to it. Mumble-Server server, and can remove the ability for older Mumble clients to be able to connect to it.
@end quotation
@item @code{public-registration} (default: @code{#f}) @item @code{public-registration} (default: @code{#f})
Must be a @code{<mumble-server-public-registration-configuration>} Must be a @code{<mumble-server-public-registration-configuration>}
@ -37538,6 +37579,10 @@ $ guix system extension-graph @var{file} | xdot -
shows the extension relations among services. shows the extension relations among services.
@quotation Note
The @command{dot} program is provided by the @code{graphviz} package.
@end quotation
@anchor{system-shepherd-graph} @anchor{system-shepherd-graph}
@item shepherd-graph @item shepherd-graph
Emit to standard output the @dfn{dependency Emit to standard output the @dfn{dependency
@ -38862,12 +38907,6 @@ Return a G-expression that contains the values corresponding to the
disk by using something like @code{mixed-text-file}. disk by using something like @code{mixed-text-file}.
@end deffn @end deffn
@deffn {Scheme Procedure} validate-configuration @var{configuration}
@var{fields}
Type-check @var{fields}, a list of field names of @var{configuration}, a
configuration record created by @code{define-configuration}.
@end deffn
@deffn {Scheme Procedure} empty-serializer @var{field-name} @var{value} @deffn {Scheme Procedure} empty-serializer @var{field-name} @var{value}
A serializer that just returns an empty string. The A serializer that just returns an empty string. The
@code{serialize-package} procedure is an alias for this. @code{serialize-package} procedure is an alias for this.

View File

@ -25,6 +25,32 @@
(channel-news (channel-news
(version 0) (version 0)
(entry (commit "bdf422176739b473add66eb8cac9fdd8c654f794")
(title
(en "@option{-L} option of @command{guix refresh} repurposed")
(de "Option @option{-L} von @command{guix refresh} wechselt Bedeutung")
(fr "Option @option{-L} de @command{guix refresh} réutilisée"))
(body
(en "The @option{-L} option of @command{guix refresh} has been
repurposed: it used to be synonymous with @option{--list-updaters}; it is now
synonymous with @option{--load-path} as is the case with most other commands.
Run @command{info \"(guix) Invoking guix refresh\"} for more info.")
(de "Die Befehlszeilenoption @option{-L} von @command{guix refresh} hat
einen anderen Zweck bekommen: Früher war sie gleichbedeutend mit
@option{--list-updaters}; jetzt ist sie gleichbedeutend mit
@option{--load-path}, wie bereits beim Großteil der anderen Befehle.
Führen Sie @command{info \"(guix.de) Aufruf von guix refresh\"} aus, wenn Sie
mehr wissen möchten.")
(fr "L'option @option{-L} de @command{guix refresh} a changé de
signification : elle était auparavant synonyme de @option{--list-updaters} ;
elle est maintenant synonyme de @option{--load-path} comme c'est le cas pour
la plupart des autres commandes.
Lancer @command{info \"(guix.fr) Invoquer guix refresh\"} pour plus
d'informations.")))
(entry (commit "35c1edb20ad07250728d3bdcd0296bd0cedaf6bb") (entry (commit "35c1edb20ad07250728d3bdcd0296bd0cedaf6bb")
(title (title
(en "New @command{edit} sub-commands for services") (en "New @command{edit} sub-commands for services")

View File

@ -8,6 +8,7 @@
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Stefan <stefan-guix@vodafonemail.de> ;;; Copyright © 2020 Stefan <stefan-guix@vodafonemail.de>
;;; Copyright © 2022 Karl Hallsby <karl@hallsby.com> ;;; Copyright © 2022 Karl Hallsby <karl@hallsby.com>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -57,6 +58,7 @@
grub-bootloader grub-bootloader
grub-efi-bootloader grub-efi-bootloader
grub-efi-removable-bootloader grub-efi-removable-bootloader
grub-efi32-bootloader
grub-efi-netboot-bootloader grub-efi-netboot-bootloader
grub-mkrescue-bootloader grub-mkrescue-bootloader
grub-minimal-bootloader grub-minimal-bootloader
@ -636,6 +638,29 @@ fi~%"))))
"--bootloader-id=Guix" "--bootloader-id=Guix"
"--efi-directory" target-esp))))) "--efi-directory" target-esp)))))
(define install-grub-efi32
#~(lambda (bootloader efi-dir mount-point)
;; There is nothing useful to do when called in the context of a disk
;; image generation.
(when efi-dir
;; Install GRUB onto the EFI partition mounted at EFI-DIR, for the
;; system whose root is mounted at MOUNT-POINT.
(let ((grub-install (string-append bootloader "/sbin/grub-install"))
(install-dir (string-append mount-point "/boot"))
;; When installing Guix, it's common to mount EFI-DIR below
;; MOUNT-POINT rather than /boot/efi on the live image.
(target-esp (if (file-exists? (string-append mount-point efi-dir))
(string-append mount-point efi-dir)
efi-dir)))
;; Tell 'grub-install' that there might be a LUKS-encrypted /boot or
;; root partition.
(setenv "GRUB_ENABLE_CRYPTODISK" "y")
(invoke/quiet grub-install "--boot-directory" install-dir
"--bootloader-id=Guix"
(cond ((target-x86?) "--target=i386-efi")
((target-arm?) "--target=arm-efi"))
"--efi-directory" target-esp)))))
(define (install-grub-efi-netboot subdir) (define (install-grub-efi-netboot subdir)
"Define a grub-efi-netboot bootloader installer for installation in SUBDIR, "Define a grub-efi-netboot bootloader installer for installation in SUBDIR,
which is usually efi/Guix or efi/boot." which is usually efi/Guix or efi/boot."
@ -768,6 +793,13 @@ considered for security aspects."
(name 'grub-efi-removable-bootloader) (name 'grub-efi-removable-bootloader)
(installer install-grub-efi-removable))) (installer install-grub-efi-removable)))
(define grub-efi32-bootloader
(bootloader
(inherit grub-efi-bootloader)
(installer install-grub-efi32)
(name 'grub-efi32)
(package grub-efi32)))
(define grub-efi-netboot-bootloader (define grub-efi-netboot-bootloader
(bootloader (bootloader
(inherit grub-efi-bootloader) (inherit grub-efi-bootloader)

View File

@ -1,6 +1,8 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2022 Timothy Sample <samplet@ngyro.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -54,8 +56,12 @@
;;; EFI bootloader. ;;; EFI bootloader.
;;; ;;;
(define (install-efi grub grub-config esp) (define* (install-efi grub grub-config esp #:key targets)
"Write a self-contained GRUB EFI loader to the mounted ESP using GRUB-CONFIG." "Write a self-contained GRUB EFI loader to the mounted ESP using
GRUB-CONFIG.
If TARGETS is set, use its car as the GRUB image format and its cdr as
the output filename. Otherwise, use defaults for the host platform."
(let* ((system %host-type) (let* ((system %host-type)
;; Hard code the output location to a well-known path recognized by ;; Hard code the output location to a well-known path recognized by
;; compliant firmware. See "3.5.1.1 Removable Media Boot Behaviour": ;; compliant firmware. See "3.5.1.1 Removable Media Boot Behaviour":
@ -63,14 +69,15 @@
(grub-mkstandalone (string-append grub "/bin/grub-mkstandalone")) (grub-mkstandalone (string-append grub "/bin/grub-mkstandalone"))
(efi-directory (string-append esp "/EFI/BOOT")) (efi-directory (string-append esp "/EFI/BOOT"))
;; Map grub target names to boot file names. ;; Map grub target names to boot file names.
(efi-targets (cond ((string-prefix? "x86_64" system) (efi-targets (or targets
'("x86_64-efi" . "BOOTX64.EFI")) (cond ((string-prefix? "x86_64" system)
((string-prefix? "i686" system) '("x86_64-efi" . "BOOTX64.EFI"))
'("i386-efi" . "BOOTIA32.EFI")) ((string-prefix? "i686" system)
((string-prefix? "armhf" system) '("i386-efi" . "BOOTIA32.EFI"))
'("arm-efi" . "BOOTARM.EFI")) ((string-prefix? "armhf" system)
((string-prefix? "aarch64" system) '("arm-efi" . "BOOTARM.EFI"))
'("arm64-efi" . "BOOTAA64.EFI"))))) ((string-prefix? "aarch64" system)
'("arm64-efi" . "BOOTAA64.EFI"))))))
;; grub-mkstandalone requires a TMPDIR to prepare the firmware image. ;; grub-mkstandalone requires a TMPDIR to prepare the firmware image.
(setenv "TMPDIR" esp) (setenv "TMPDIR" esp)
@ -81,9 +88,12 @@
;; Graft the configuration file onto the image. ;; Graft the configuration file onto the image.
(string-append "boot/grub/grub.cfg=" grub-config)))) (string-append "boot/grub/grub.cfg=" grub-config))))
(define (install-efi-loader grub-efi esp) (define* (install-efi-loader grub-efi esp #:key targets)
"Install in ESP directory the given GRUB-EFI bootloader. Configure it to "Install in ESP directory the given GRUB-EFI bootloader. Configure it to
load the Grub bootloader located in the 'Guix_image' root partition." load the Grub bootloader located in the 'Guix_image' root partition.
If TARGETS is set, use its car as the GRUB image format and its cdr as
the output filename. Otherwise, use defaults for the host platform."
(let ((grub-config "grub.cfg")) (let ((grub-config "grub.cfg"))
(call-with-output-file grub-config (call-with-output-file grub-config
(lambda (port) (lambda (port)
@ -97,5 +107,6 @@ load the Grub bootloader located in the 'Guix_image' root partition."
insmod part_gpt~@ insmod part_gpt~@
search --set=root --label Guix_image~@ search --set=root --label Guix_image~@
configfile /boot/grub/grub.cfg~%"))) configfile /boot/grub/grub.cfg~%")))
(install-efi grub-efi grub-config esp) (install-efi grub-efi grub-config esp #:targets targets)
(delete-file grub-config))) (delete-file grub-config)))

View File

@ -6,6 +6,7 @@
;;; Copyright © 2020, 2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2022 Pavel Shlyak <p.shlyak@pantherx.org> ;;; Copyright © 2022 Pavel Shlyak <p.shlyak@pantherx.org>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -27,6 +28,7 @@
#:use-module (guix build syscalls) #:use-module (guix build syscalls)
#:use-module (guix build utils) #:use-module (guix build utils)
#:use-module (guix store database) #:use-module (guix store database)
#:use-module (guix utils)
#:use-module (gnu build bootloader) #:use-module (gnu build bootloader)
#:use-module (gnu build install) #:use-module (gnu build install)
#:use-module (gnu build linux-boot) #:use-module (gnu build linux-boot)
@ -41,6 +43,7 @@
convert-disk-image convert-disk-image
genimage genimage
initialize-efi-partition initialize-efi-partition
initialize-efi32-partition
initialize-root-partition initialize-root-partition
make-iso9660-image)) make-iso9660-image))
@ -169,6 +172,17 @@ produced by #:references-graphs. Pass WAL-MODE? to call-with-database."
"Install in ROOT directory, an EFI loader using GRUB-EFI." "Install in ROOT directory, an EFI loader using GRUB-EFI."
(install-efi-loader grub-efi root)) (install-efi-loader grub-efi root))
(define* (initialize-efi32-partition root
#:key
grub-efi32
#:allow-other-keys)
"Install in ROOT directory, an EFI 32bit loader using GRUB-EFI32."
(install-efi-loader grub-efi32 root
#:targets (cond ((target-x86?)
'("i386-efi" . "BOOTIA32.EFI"))
((target-arm?)
'("arm-efi" . "BOOTARM.EFI")))))
(define* (initialize-root-partition root (define* (initialize-root-partition root
#:key #:key
bootcfg bootcfg

View File

@ -960,6 +960,7 @@ dist_patch_DATA = \
%D%/packages/patches/cling-use-shared-library.patch \ %D%/packages/patches/cling-use-shared-library.patch \
%D%/packages/patches/clucene-pkgconfig.patch \ %D%/packages/patches/clucene-pkgconfig.patch \
%D%/packages/patches/cmake-curl-certificates.patch \ %D%/packages/patches/cmake-curl-certificates.patch \
%D%/packages/patches/cmh-support-fplll.patch \
%D%/packages/patches/coda-use-system-libs.patch \ %D%/packages/patches/coda-use-system-libs.patch \
%D%/packages/patches/collectd-5.11.0-noinstallvar.patch \ %D%/packages/patches/collectd-5.11.0-noinstallvar.patch \
%D%/packages/patches/combinatorial-blas-awpm.patch \ %D%/packages/patches/combinatorial-blas-awpm.patch \
@ -1000,7 +1001,6 @@ dist_patch_DATA = \
%D%/packages/patches/docbook-xsl-support-old-url.patch \ %D%/packages/patches/docbook-xsl-support-old-url.patch \
%D%/packages/patches/doc++-include-directives.patch \ %D%/packages/patches/doc++-include-directives.patch \
%D%/packages/patches/doc++-segfault-fix.patch \ %D%/packages/patches/doc++-segfault-fix.patch \
%D%/packages/patches/docker-fix-tests.patch \
%D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \ %D%/packages/patches/dovecot-trees-support-dovecot-2.3.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 \
@ -1611,6 +1611,7 @@ dist_patch_DATA = \
%D%/packages/patches/perl-reproducible-build-date.patch \ %D%/packages/patches/perl-reproducible-build-date.patch \
%D%/packages/patches/perl-www-curl-fix-struct-void.patch \ %D%/packages/patches/perl-www-curl-fix-struct-void.patch \
%D%/packages/patches/perl-www-curl-remove-symbol.patch \ %D%/packages/patches/perl-www-curl-remove-symbol.patch \
%D%/packages/patches/phoronix-test-suite-fsdg.patch \
%D%/packages/patches/php-bug-74093-test.patch \ %D%/packages/patches/php-bug-74093-test.patch \
%D%/packages/patches/php-openssl_x509_checkpurpose_basic.patch \ %D%/packages/patches/php-openssl_x509_checkpurpose_basic.patch \
%D%/packages/patches/picard-fix-id3-rename-test.patch \ %D%/packages/patches/picard-fix-id3-rename-test.patch \

View File

@ -1156,8 +1156,7 @@ IPv6, proxies, and Unix sockets.")
(lambda _ (lambda _
;; These #defines aren't well-documented and, e.g., POWER was ;; These #defines aren't well-documented and, e.g., POWER was
;; not actually tested on every possible TARGET-POWERPC?. ;; not actually tested on every possible TARGET-POWERPC?.
(let* ((system #$(cond ((target-x86-32?) "X86") (let* ((system #$(cond ((target-x86?) "X86")
((target-x86-64?) "X86")
((target-arm?) "ARM") ((target-arm?) "ARM")
((target-powerpc?) "POWER") ((target-powerpc?) "POWER")
(else "CROSS_FINGERS")))) (else "CROSS_FINGERS"))))
@ -1845,7 +1844,7 @@ system administrator.")
(define-public sudo (define-public sudo
(package (package
(name "sudo") (name "sudo")
(version "1.9.11p2") (version "1.9.11p3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -1855,7 +1854,7 @@ system administrator.")
version ".tar.gz"))) version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"1lli4z10b5j238cn7471jb8vcjlj5px68x48ysa3f1n0kzmih6d2")) "0w0z9w4vnhjsc4jjghi6wlyv4v055hsy38ncb67p08b7yp9fg1s6"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin

View File

@ -302,7 +302,8 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1ws2yhzxmm2l5xqqqcjcimmg40f9qq5l9i6d4i5434an9v9s8531")))) "1ws2yhzxmm2l5xqqqcjcimmg40f9qq5l9i6d4i5434an9v9s8531"))
(patches (search-patches "cmh-support-fplll.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
(list gmp (list gmp

View File

@ -26,18 +26,15 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages astronomy) (define-module (gnu packages astronomy)
#:use-module (guix packages)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages algebra) #:use-module (gnu packages algebra)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost) #:use-module (gnu packages boost)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
@ -49,16 +46,20 @@
#:use-module (gnu packages libusb) #:use-module (gnu packages libusb)
#:use-module (gnu packages lua) #:use-module (gnu packages lua)
#:use-module (gnu packages maths) #:use-module (gnu packages maths)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages netpbm) #:use-module (gnu packages netpbm)
#: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 pretty-print) #:use-module (gnu packages pretty-print)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check) #:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto) #:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-science) #:use-module (gnu packages python-science)
#: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)
#:use-module (gnu packages readline)
#:use-module (gnu packages time) #:use-module (gnu packages time)
#:use-module (gnu packages version-control) #:use-module (gnu packages version-control)
#:use-module (gnu packages video) #:use-module (gnu packages video)
@ -66,9 +67,15 @@
#:use-module (gnu packages xiph) #:use-module (gnu packages xiph)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (gnu packages)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (srfi srfi-1)) #:use-module (srfi srfi-1))
@ -107,6 +114,93 @@ moment, supported SPICE files are:
@end itemize\n") @end itemize\n")
(license license:cecill))) (license license:cecill)))
(define-public casacore
(package
(name "casacore")
(version "3.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/casacore/casacore")
(commit (string-append "v" version))))
(sha256
(base32
"05ar5gykgh4dm826xplj5ri5rw7znhxrvin2l67a3mjwfys7r2a0"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
(list
;; Note: There are multiple failures in
;; tests which require additional measures data. They are
;; distributed via FTP without any license:
;; ftp://ftp.astron.nl/outgoing/Measures/
;; TODO: Check how to fix tests.
#:tests? #f
#:parallel-build? #t
#:configure-flags
#~(list "-DBUILD_PYTHON3=ON"
"-DBUILD_PYTHON=OFF"
"-DBUILD_TESTING=TRUE"
"-DUSE_HDF5=ON"
"-DUSE_OPENMP=OFF"
"-DUSE_THREADS=ON"
(string-append "-DDATA_DIR=" #$output "/data")
(string-append "-DPYTHON3_EXECUTABLE="
#$(this-package-input "python") "/bin")
(string-append "-DPYTHON3_INCLUDE_DIR="
#$(this-package-input "python") "/include")
(string-append "-DPYTHON3_LIBRARY="
#$(this-package-input "python") "/lib"))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'set-env
(lambda _
(setenv "HOME" "/tmp")))
(add-after 'unpack 'use-absolute-rm
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "casa/OS/test/tFile.run"
(("/bin/rm")
(search-input-file inputs "/bin/rm")))))
(add-after 'unpack 'use-absolute-python3
(lambda _
(substitute* "build-tools/casacore_floatcheck"
(("#!/usr/bin/env python")
(string-append "#!" (which "python3"))))))
;; NOTE: (Sharlatan-20220611T200837+0100): Workaround for casacore
;; tests stuck with missing "qsub" issue.
;; https://github.com/casacore/casacore/issues/1122
(add-after 'unpack 'patch-pre-test-checks
(lambda _
(substitute* "build-tools/casacore_assay"
(("QSUBP=.*$") "QSUBP=\n")
(("YODP=.*$") "YODP=\n")))))))
(native-inputs
(list bison
boost
flex
readline))
(inputs
(list cfitsio
fftw
fftwf
gfortran
hdf5
lapack
ncurses
openblas
python
python-numpy
wcslib))
(home-page "http://casacore.github.io/casacore/")
(synopsis "Suite of C++ libraries for radio astronomy data processing")
(description
"The casacore package contains the core libraries of the old
AIPS++/CASA (Common Astronomy Software Application) package. This split was
made to get a better separation of core libraries and applications.
@url{https://casa.nrao.edu/, CASA} is now built on top of Casacore.")
(license license:gpl2+)))
(define-public cfitsio (define-public cfitsio
(package (package
(name "cfitsio") (name "cfitsio")

View File

@ -86,6 +86,7 @@
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf) #:use-module (gnu packages protobuf)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check) #:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto) #:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web) #:use-module (gnu packages python-web)

View File

@ -39,20 +39,23 @@
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages c) #:use-module (gnu packages c)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
#:use-module (gnu packages docbook) #:use-module (gnu packages docbook)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages lua) #:use-module (gnu packages lua)
#:use-module (gnu packages maths) #:use-module (gnu packages maths)
#:use-module (gnu packages mpi) #:use-module (gnu packages mpi)
#:use-module (gnu packages opencl) #:use-module (gnu packages opencl)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages php)
#: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-science) #:use-module (gnu packages python-science)
#:use-module (gnu packages python-web) #:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
@ -60,6 +63,11 @@
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (ice-9 match)) #:use-module (ice-9 match))
;; Lazily resolve the gcc-toolchain to avoid a circular dependency.
(define gcc-toolchain*
(delay (module-ref (resolve-interface '(gnu packages commencement))
'gcc-toolchain)))
(define-public fio (define-public fio
(package (package
(name "fio") (name "fio")
@ -263,6 +271,59 @@ speed, the number of seeks that can be performed per second, and the number of
file metadata operations that can be performed per second.") file metadata operations that can be performed per second.")
(license license:gpl2))) ;GPL 2 only, see copyright.txt (license license:gpl2))) ;GPL 2 only, see copyright.txt
(define-public phoronix-test-suite
(package
(name "phoronix-test-suite")
(version "10.8.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://phoronix-test-suite.com/releases/"
name "-" version ".tar.gz"))
(sha256
(base32
"105shk78jy46nwj6vnlmgp3y3lv9klar3dmcgasy4bslm4l2wx2b"))
(patches (search-patches "phoronix-test-suite-fsdg.patch"))))
(arguments
(list
#:tests? #f ;no test suite
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(replace 'install
(lambda _
(invoke "./install-sh" #$output "--free-software-only")))
(add-after 'install 'wrap-binary
(lambda* (#:key inputs #:allow-other-keys)
(let ((pts (string-append #$output "/bin/phoronix-test-suite")))
(wrap-program pts
(list "PATH" 'prefix
(map (lambda (binary)
(dirname (search-input-file
inputs (string-append "bin/" binary))))
'("bash" "cat" ;coreutils
"gzip" "make" "php" "sed" "tar" "which"))))))))))
(build-system gnu-build-system)
(native-inputs (list python which))
;; Wrap the most basic build tools needed by Phoronix Test Suite to build
;; simple tests such as 'fio'.
(inputs (list bash coreutils gnu-make gzip php sed tar which))
;; Phoronix Test Suite builds and caches the benchmarking tools itself;
;; the user is required to manually install extra libraries depending on
;; the selected test; but at least a working C/C++ toolchain is assumed to
;; be available.
(propagated-inputs (list (force gcc-toolchain*)))
(home-page "https://www.phoronix-test-suite.com/")
(synopsis "Automated testing/benchmarking software")
(description
"The Phoronix Test Suite is a comprehensive testing and benchmarking platform
that provides an extensible framework for which new tests can be easily added.
It can carry out both qualitative and quantitative benchmarks in a clean,
reproducible, and easy-to-use manner, making it easy to compare one particular
setup against another one.")
(license license:gpl3+)))
(define-public python-locust (define-public python-locust
(package (package
(name "python-locust") (name "python-locust")

View File

@ -15,6 +15,7 @@
;;; Copyright © 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -332,6 +333,18 @@ menu to select one of the installed operating systems.")
"/bin/mcopy\""))) "/bin/mcopy\"")))
#t)))))))))) #t))))))))))
(define-public grub-efi32
(package
(inherit grub-efi)
(name "grub-efi32")
(synopsis "GRand Unified Boot loader (UEFI 32bit version)")
(arguments
`(,@(substitute-keyword-arguments (package-arguments grub-efi)
((#:configure-flags flags
''()) `(cons* ,(cond ((target-x86?) "--target=i386")
((target-arm?) "--target=arm"))
,flags)))))))
;; Because grub searches hardcoded paths it's easiest to just build grub ;; Because grub searches hardcoded paths it's easiest to just build grub
;; again to make it find both grub-pc and grub-efi. There is a command ;; again to make it find both grub-pc and grub-efi. There is a command
;; line argument which allows you to specify ONE platform - but ;; line argument which allows you to specify ONE platform - but

View File

@ -147,44 +147,38 @@ compiler while still keeping it small, simple, fast and understandable.")
(license (list license:bsd-2 license:bsd-3)))) (license (list license:bsd-2 license:bsd-3))))
(define-public qbe (define-public qbe
(let ((commit "2caa26e388b1c904d2f12fb09f84df7e761d8331") (package
(revision "1")) (name "qbe")
(package (version "1.0")
(name "qbe") (source (origin
(version (git-version "0.0" revision commit)) (method git-fetch)
(source (origin (uri (git-reference
(method git-fetch) (url "git://c9x.me/qbe")
(uri (git-reference (commit (string-append "v" version))))
(url "git://c9x.me/qbe") (file-name (git-file-name name version))
(commit commit))) (sha256
(file-name (git-file-name name version)) (base32
(sha256 "0qx4a3fjjrp2m4dsn19rpbjf89k9w7w7l09s96jx8vv15vzsdgis"))))
(base32 (build-system gnu-build-system)
"1gv03ym0gqrl4wkbhysa82025xwrkr1fg44z814b6vnggwlqgljc")))) (arguments
(build-system gnu-build-system) (list #:make-flags
(arguments #~(list (string-append "CC=" #$(cc-for-target))
(list #:make-flags (string-append "PREFIX=" #$output))
#~(list (string-append "CC=" #$(cc-for-target)) #:phases
(string-append "PREFIX=" #$output)) #~(modify-phases %standard-phases
#:phases (add-after 'unpack 'allow-cross-compilation
#~(modify-phases %standard-phases (lambda _
(add-after 'unpack 'allow-cross-compilation (substitute* "Makefile"
(lambda _ (("`uname -m`") #$(or (%current-target-system)
(substitute* "Makefile" (%current-system))))))
(("`uname -m`") #$(or (%current-target-system) (delete 'configure))))
(%current-system)))))) (supported-systems (list "x86_64-linux" "aarch64-linux" "riscv64-linux"))
(add-after 'allow-cross-compilation 'use-$CC-for-tests (synopsis "Simple compiler backend")
(lambda _ (description
(substitute* "tools/test.sh" "QBE is a small compiler backend using an SSA-based intermediate
(("cc=\"cc -no-pie\"") "cc=\"${CC} -no-pie\""))))
(delete 'configure))))
(supported-systems (list "x86_64-linux" "aarch64-linux" "riscv64-linux"))
(synopsis "Simple compiler backend")
(description
"QBE is a small compiler backend using an SSA-based intermediate
language as input.") language as input.")
(home-page "https://c9x.me/compile/") (home-page "https://c9x.me/compile/")
(license license:expat)))) (license license:expat)))
(define-public python-pcpp (define-public python-pcpp
(package (package

View File

@ -50,6 +50,7 @@
#: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-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt) #:use-module (gnu packages qt)
#:use-module (gnu packages sphinx) #:use-module (gnu packages sphinx)

View File

@ -7,7 +7,7 @@
;;; Copyright © 2015, 2017 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2015, 2017 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016, 2018-2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org> ;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org> ;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org>
@ -892,18 +892,28 @@ available via the @code{unittest.mock} module.")
(define-public python-nose2 (define-public python-nose2
(package (package
(name "python-nose2") (name "python-nose2")
(version "0.9.2") (version "0.11.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "nose2" version)) (uri (pypi-uri "nose2" version))
(sha256 (sha256
(base32 (base32
"0pmbb6nk31yhgh4zkcblzxsznml7f7pf5q1ihgrwvbxv4mwzfql7")))) "1scxwvwbgfdj41acma41xzdhcfdwjj9irj6sfifdbyf9dryqs83d"))))
(build-system python-build-system) (build-system python-build-system)
(arguments `(#:tests? #f)) ; 'module' object has no attribute 'collector' (arguments
(list #:phases
#~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; Tests require nose2 itself.
(setenv "PYTHONPATH" (getcwd))
(invoke (string-append #$output "/bin/nose2") "-v")))))))
(native-inputs
(list python-coverage))
(propagated-inputs (propagated-inputs
(list python-cov-core python-pytest-cov python-six)) (list python-six))
(home-page "https://github.com/nose-devs/nose2") (home-page "https://github.com/nose-devs/nose2")
(synopsis "Next generation of nicer testing for Python") (synopsis "Next generation of nicer testing for Python")
(description (description
@ -2036,14 +2046,14 @@ programs, something like CSmith, a random generator of C programs.")
(define-public python-lit (define-public python-lit
(package (package
(name "python-lit") (name "python-lit")
(version "12.0.1") (version "14.0.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "lit" version)) (uri (pypi-uri "lit" version))
(sha256 (sha256
(base32 (base32
"01yggsb73s2gbq36xwifxl6k5ll5lkss5rwz59k9h3jnbnn7m5fj")))) "162x7pddwl395c3mdb0mfn3f5z24x1jz6g27x303lfxpzidnn4m4"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases

View File

@ -50,6 +50,7 @@
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages llvm) #:use-module (gnu packages llvm)
#:use-module (gnu packages kerberos) #:use-module (gnu packages kerberos)
#:use-module (gnu packages maths)
#:use-module (gnu packages ninja) #:use-module (gnu packages ninja)
#:use-module (gnu packages node) #:use-module (gnu packages node)
#:use-module (gnu packages nss) #:use-module (gnu packages nss)
@ -122,6 +123,7 @@
"third_party/ced" ;BSD-3 "third_party/ced" ;BSD-3
"third_party/cld_3" ;ASL2.0 "third_party/cld_3" ;ASL2.0
"third_party/closure_compiler" ;ASL2.0 "third_party/closure_compiler" ;ASL2.0
"third_party/cpuinfo" ;BSD-2
"third_party/crashpad" ;ASL2.0 "third_party/crashpad" ;ASL2.0
"third_party/crashpad/crashpad/third_party/lss" ;ASL2.0 "third_party/crashpad/crashpad/third_party/lss" ;ASL2.0
"third_party/crashpad/crashpad/third_party/zlib/zlib_crashpad.h" ;Zlib "third_party/crashpad/crashpad/third_party/zlib/zlib_crashpad.h" ;Zlib
@ -233,6 +235,7 @@
"third_party/private-join-and-compute" ;ASL2.0 "third_party/private-join-and-compute" ;ASL2.0
"third_party/protobuf" ;BSD-3 "third_party/protobuf" ;BSD-3
"third_party/protobuf/third_party/six" ;Expat "third_party/protobuf/third_party/six" ;Expat
"third_party/pthreadpool" ;BSD-2
"third_party/pyjson5" ;ASL2.0 "third_party/pyjson5" ;ASL2.0
"third_party/qcms" ;Expat "third_party/qcms" ;Expat
"third_party/rnnoise" ;BSD-3 "third_party/rnnoise" ;BSD-3
@ -290,6 +293,7 @@
"third_party/wuffs" ;ASL2.0 "third_party/wuffs" ;ASL2.0
"third_party/xcbproto" ;X11 "third_party/xcbproto" ;X11
"third_party/xdg-utils" ;Expat "third_party/xdg-utils" ;Expat
"third_party/xnnpack" ;BSD-3
;; These are forked components of the X11 keybinding code. ;; These are forked components of the X11 keybinding code.
"third_party/libxcb-keysyms" ;X11 "third_party/libxcb-keysyms" ;X11
@ -312,7 +316,7 @@
;; run the Blink performance tests, just remove everything to save ~70MiB. ;; run the Blink performance tests, just remove everything to save ~70MiB.
'("third_party/blink/perf_tests")) '("third_party/blink/perf_tests"))
(define %chromium-version "102.0.5005.115") (define %chromium-version "103.0.5060.53")
(define %ungoogled-revision (string-append %chromium-version "-1")) (define %ungoogled-revision (string-append %chromium-version "-1"))
(define %debian-revision "debian/102.0.5005.61-1") (define %debian-revision "debian/102.0.5005.61-1")
@ -324,7 +328,7 @@
(file-name (git-file-name "ungoogled-chromium" %ungoogled-revision)) (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
(sha256 (sha256
(base32 (base32
"1z2xkxxviggyyksga74cqa4v73gynlgzi22ckg8yv84qxrklik6p")))) "1g5ciwzrhg9g13gvhrwqf19djk9jhj1d6nx2f6a8d5ch1mhi2z8s"))))
(define %debian-origin (define %debian-origin
(origin (origin
@ -347,11 +351,7 @@
(define %debian-patches (define %debian-patches
(map debian-patch (map debian-patch
'("upstream/libxml.patch" '("system/jsoncpp.patch"
"upstream/dawn-version-fix.patch"
"upstream/blink-ftbfs.patch"
"upstream/nested-nested-nested-nested-nested-nested-regex-patterns.patch"
"system/jsoncpp.patch"
"system/zlib.patch" "system/zlib.patch"
"system/openjpeg.patch"))) "system/openjpeg.patch")))
@ -477,7 +477,7 @@
%chromium-version ".tar.xz")) %chromium-version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1rj7vy824vn513hiivc90lnxvxyi2s0qkdmfqsdssv9v6zjl079h")) "00di0nw6h3kb0qp2wp3ny3zsar1ayn1lyx5zr28dl1h5cwaaxjqf"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (force ungoogled-chromium-snippet)))) (snippet (force ungoogled-chromium-snippet))))
(build-system gnu-build-system) (build-system gnu-build-system)
@ -880,12 +880,14 @@
flac flac
ffmpeg ffmpeg
fontconfig fontconfig
fp16
freetype freetype
fxdiv
gdk-pixbuf gdk-pixbuf
glib glib
gtk+ gtk+
harfbuzz-3.0 harfbuzz-3.0
icu4c icu4c-71
jsoncpp jsoncpp
lcms lcms
libevent libevent

View File

@ -2,7 +2,7 @@
;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org> ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw> ;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org> ;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2021 Dion Mendel <guix@dm9.info> ;;; Copyright © 2021 Dion Mendel <guix@dm9.info>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -22,6 +22,7 @@
(define-module (gnu packages cluster) (define-module (gnu packages cluster)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
@ -29,27 +30,30 @@
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages docbook)
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
#:use-module (gnu packages libevent) #:use-module (gnu packages libevent)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages ruby)
#:use-module (gnu packages sphinx) #:use-module (gnu packages sphinx)
#:use-module (gnu packages sqlite) #:use-module (gnu packages sqlite)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)) #:use-module (gnu packages tls)
#:use-module (gnu packages xml))
(define-public drbd-utils (define-public drbd-utils
(package (package
(name "drbd-utils") (name "drbd-utils")
(version "9.19.1") (version "9.21.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (list (string-append "https://pkg.linbit.com/downloads/drbd" (uri (list (string-append "https://pkg.linbit.com/downloads/drbd"
"/utils/drbd-utils-" version ".tar.gz"))) "/utils/drbd-utils-" version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"1l99kcrb0j85wxxmrdihpx9bk1a4sdi7wlp5m1x5l24k8ck1m5cf")) "1zhinblhpfb7wq3wkaim4xzx1m89671djvnrf4vjabfzpclkz60h"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -65,62 +69,73 @@
(substitute* "configure" (substitute* "configure"
;; Use a sensible default udev rules directory. ;; Use a sensible default udev rules directory.
(("default_udevdir=/lib/udev") (("default_udevdir=/lib/udev")
"default_udevdir='${prefix}/lib/udev'")) "default_udevdir='${prefix}/lib/udev'"))))))
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags '(;; Do not install sysv or systemd init scripts. (list
"--with-initscripttype=none" #:configure-flags
;; Use the pre-built manual pages present in release #~(list "--sysconfdir=/etc"
;; tarballs instead of generating them from scratch. "--localstatedir=/var"
"--with-prebuiltman" ;; Do not install sysv or systemd init scripts.
;; Disable support for DRBD 8.3 as it is only for "--with-initscripttype=none"
;; Linux-Libre versions < 3.8. 8.4 is the latest ;; Disable support for DRBD 8.3 as it is only for
;; kernel driver as of Linux 5.7. ;; Linux-Libre versions < 3.8. 8.4 is the latest
"--without-83support" ;; kernel driver as of Linux 5.18.
"--sysconfdir=/etc" "--without-83support")
"--localstatedir=/var") #:test-target "test"
#:test-target "test" #:make-flags #~(list "WANT_DRBD_REPRODUCIBLE_BUILD=yesplease")
#:make-flags '("WANT_DRBD_REPRODUCIBLE_BUILD=yesplease") #:phases
#:phases #~(modify-phases %standard-phases
(modify-phases %standard-phases (add-after 'unpack 'disable-ja-translation
(add-after 'patch-generated-file-shebangs 'patch-documentation (lambda _
(lambda _ ;; XXX: The japanese documentation cannot be created due to
;; The preceding phase misses some Makefiles with unusual file ;; several "Invalid po file" and "use of uninitialized variable"
;; names, so we handle those here. ;; in po4a.
(for-each patch-makefile-SHELL (find-files "documentation/common" (substitute* "Makefile.in"
"^Makefile")) (("(DOC_DIRS.*)documentation/ja/v[[:digit:]]+" _ match)
#t)) match)
(add-before 'configure 'use-absolute-/lib/drbd (("[[:blank:]]+\\$\\(MAKE\\) -C documentation/ja/v[[:digit:]]+.*")
(lambda* (#:key outputs #:allow-other-keys) ""))))
(let ((out (assoc-ref outputs "out"))) (add-after 'patch-generated-file-shebangs 'patch-documentation
;; Look for auxiliary executables below exec_prefix instead (lambda _
;; of assuming /lib/drbd (see TODO comment in the file). ;; The preceding phase misses some Makefiles with unusual file
(substitute* "user/v9/drbdtool_common.c" ;; names, so we handle those here.
(("\"/lib/drbd\"") (for-each patch-makefile-SHELL (find-files "documentation/common"
(string-append "\"" out "/lib/drbd\""))) "^Makefile"))))
#t))) (add-before 'configure 'use-absolute-/lib/drbd
(add-after 'configure 'adjust-installation-directories (lambda _
(lambda _ ;; Look for auxiliary executables below exec_prefix instead
;; Do not attempt to create /etc or /var. ;; of assuming /lib/drbd (see TODO comment in the file).
(substitute* "scripts/Makefile" (substitute* "user/v9/drbdtool_common.c"
(("\\$\\(DESTDIR\\)\\$\\(sysconfdir\\)") (("\"/lib/drbd\"")
"$(DESTDIR)$(prefix)$(sysconfdir)")) (string-append "\"" #$output "/lib/drbd\"")))))
(substitute* "user/v84/Makefile" (add-after 'configure 'adjust-installation-directories
(("\\$\\(DESTDIR\\)\\$\\(localstatedir\\)") (lambda _
"$(DESTDIR)$(prefix)$(localstatedir)") ;; Do not attempt to create /etc or /var.
(("\\$\\(DESTDIR\\)/lib/drbd") (substitute* "scripts/Makefile"
"$(DESTDIR)$(prefix)/lib/drbd")) (("\\$\\(DESTDIR\\)\\$\\(sysconfdir\\)")
(substitute* "user/v9/Makefile" "$(DESTDIR)$(prefix)$(sysconfdir)"))
(("\\$\\(DESTDIR\\)\\$\\(localstatedir\\)") (substitute* "user/v84/Makefile"
"$(DESTDIR)$(prefix)$(localstatedir)") (("\\$\\(DESTDIR\\)\\$\\(localstatedir\\)")
(("\\$\\(DESTDIR\\)\\$\\(DRBD_LIB_DIR\\)") "$(DESTDIR)$(prefix)$(localstatedir)")
"$(DESTDIR)$(prefix)$(DRBD_LIB_DIR)")) (("\\$\\(DESTDIR\\)/lib/drbd")
#t))))) "$(DESTDIR)$(prefix)/lib/drbd"))
(substitute* "user/v9/Makefile"
(("\\$\\(DESTDIR\\)\\$\\(localstatedir\\)")
"$(DESTDIR)$(prefix)$(localstatedir)")
(("\\$\\(DESTDIR\\)\\$\\(DRBD_LIB_DIR\\)")
"$(DESTDIR)$(prefix)$(DRBD_LIB_DIR)")))))))
(native-inputs (native-inputs
`(("clitest" ,clitest) (list clitest
("flex" ,flex) eudev ;just to satisfy a configure check
("udev" ,eudev))) ;just to satisfy a configure check flex
;; For the documentation.
docbook-xml
docbook-xml-4.4 ;used by documentation/ra2refentry.xsl
docbook-xsl
libxml2 ;for XML_CATALOG_FILES
libxslt ;for xsltproc
ruby-asciidoctor))
(home-page "https://www.linbit.com/drbd/") (home-page "https://www.linbit.com/drbd/")
(synopsis "Replicate block devices between machines") (synopsis "Replicate block devices between machines")
(description (description
@ -128,6 +143,9 @@
shared-nothing, replicated storage solution mirroring the content of block shared-nothing, replicated storage solution mirroring the content of block
devices (hard disks, partitions, logical volumes etc.) over any network devices (hard disks, partitions, logical volumes etc.) over any network
connection. This package contains the userland utilities.") connection. This package contains the userland utilities.")
(properties
'((release-monitoring-url
. "https://www.linbit.com/en/drbd-community/drbd-download/")))
(license license:gpl2+))) (license license:gpl2+)))
(define-public keepalived (define-public keepalived

View File

@ -406,7 +406,7 @@ combination of these streams.")
(define-public xsimd (define-public xsimd
(package (package
(name "xsimd") (name "xsimd")
(version "8.0.5") (version "8.1.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -414,7 +414,7 @@ combination of these streams.")
(url "https://github.com/QuantStack/xsimd") (url "https://github.com/QuantStack/xsimd")
(commit version))) (commit version)))
(sha256 (sha256
(base32 "0fph1gzrj13knfkl3fvg098ccvqkbzs0jb8n323m7pnxajpzhzij")) (base32 "16b9fdvhhsbs93llbzccgpxjdkj8kfvac3wx0b30i306k5f3maq2"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
@ -435,7 +435,7 @@ operating on batches.")
(define-public google-highway (define-public google-highway
(package (package
(name "google-highway") (name "google-highway")
(version "0.15.0") (version "0.17.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -444,7 +444,7 @@ operating on batches.")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1yjwgnrpd9m99x2nqf6ld28zc6y9nlsxqg128bxxmja1gg4g4qdz")))) (base32 "0iwn7m8f1j7bchwbi5h84nzkzmzqd7byddbr4lh6i6lpd87wny08"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:configure-flags (list "-DHWY_SYSTEM_GTEST=on"))) `(#:configure-flags (list "-DHWY_SYSTEM_GTEST=on")))

View File

@ -131,6 +131,7 @@
#:use-module (gnu packages popt) #:use-module (gnu packages popt)
#:use-module (gnu packages protobuf) #:use-module (gnu packages protobuf)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check) #:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto) #:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-science) #:use-module (gnu packages python-science)
@ -650,13 +651,13 @@ replacement for the code@{python-memcached} library.")
(define-public litecli (define-public litecli
(package (package
(name "litecli") (name "litecli")
(version "1.8.0") (version "1.9.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "litecli" version)) (uri (pypi-uri "litecli" version))
(sha256 (sha256
(base32 "0ghh8hq5bw3y2ybiy4ibbdfz55jxvilg1s6zmhxmqikhg5s95xh2")))) (base32 "1897divrdqlhl1p5jvvm29rg3d99f48s58na7hgdzm1x13x2rbr1"))))
(build-system python-build-system) (build-system python-build-system)
(propagated-inputs (propagated-inputs
(list python-cli-helpers (list python-cli-helpers
@ -1184,14 +1185,14 @@ and high-availability (HA).")
(define-public postgresql-14 (define-public postgresql-14
(package (package
(name "postgresql") (name "postgresql")
(version "14.3") (version "14.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://ftp.postgresql.org/pub/source/v" (uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2")) version "/postgresql-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0f5gm43hx8j67nfad8mrfhzb9aq4brfgka5d0nf936pmicv5g417")) "0slg7ld5mldmv3pn1wxxwglm4s3xc6c91ixx24apj713qlvn4fy2"))
(patches (search-patches "postgresql-disable-resolve_symlinks.patch")))) (patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
@ -1426,7 +1427,7 @@ PostgreSQL extension, providing automatic partitioning across time and space
(define-public pgloader (define-public pgloader
(package (package
(name "pgloader") (name "pgloader")
(version "3.6.3") (version "3.6.4")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -1434,7 +1435,7 @@ PostgreSQL extension, providing automatic partitioning across time and space
(url "https://github.com/dimitri/pgloader") (url "https://github.com/dimitri/pgloader")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(sha256 (sha256
(base32 "147dcf0rmi94p95dvifx8qy7602fvs041dv9wlg3q31ly13agwb5")) (base32 "05lpa0r5l7pvx97ljfb0cryxz11krczbb86gi1i1ixp0h9bvqw2a"))
(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

@ -30,6 +30,7 @@
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check) #:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto) #:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web) #:use-module (gnu packages python-web)

View File

@ -31,14 +31,14 @@
(define-public dezyne (define-public dezyne
(package (package
(name "dezyne") (name "dezyne")
(version "2.15.1") (version "2.15.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://dezyne.org/download/dezyne/" (uri (string-append "https://dezyne.org/download/dezyne/"
name "-" version ".tar.gz")) name "-" version ".tar.gz"))
(sha256 (sha256
(base32 "0yid2a9xvp4hc7fry07zp0q2hva89czri6i1m2d1n22srh7r0my6")))) (base32 "0yy4cmpxhw4z82bc1mvxyic4fnmb9a1d3w8fijvk1y2kqx2fiq6f"))))
(inputs (list bash-minimal (inputs (list bash-minimal
guile-3.0-latest guile-3.0-latest
guile-json-4 guile-json-4

View File

@ -73,7 +73,7 @@
(define-public diffoscope (define-public diffoscope
(package (package
(name "diffoscope") (name "diffoscope")
(version "216") (version "217")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -82,7 +82,7 @@
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "066w4mcrjvymwii5j5hylcslpz18wgd5afl11z1n3588j8c1zw15")) (base32 "0vbyg8lm5ddrdkhahcs70rhdmz42blppzliryghxcyyxs7g3gzq5"))
(patches (patches
(search-patches "diffoscope-fix-llvm-test.patch")))) (search-patches "diffoscope-fix-llvm-test.patch"))))
(build-system python-build-system) (build-system python-build-system)

View File

@ -1198,13 +1198,13 @@ FileFields during tests.")
(define-public python-django-auth-ldap (define-public python-django-auth-ldap
(package (package
(name "python-django-auth-ldap") (name "python-django-auth-ldap")
(version "4.0.0") (version "4.1.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "django-auth-ldap" version)) (uri (pypi-uri "django-auth-ldap" version))
(sha256 (sha256
(base32 (base32
"0fajn4bk7m1hk0mjz97q7vlfzh7ibzv8f4qn7zhkq26f4kk7jvr7")))) "0jd9jms9qpa92fk5n7gqcxjk3zs6ay79r73ann7cw1vqn79lkxvp"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
(list #:phases (list #:phases
@ -1271,13 +1271,13 @@ to ElasticSearch.")
(define-public python-django-netfields (define-public python-django-netfields
(package (package
(name "python-django-netfields") (name "python-django-netfields")
(version "1.2.4") (version "1.3.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "django-netfields" version)) (uri (pypi-uri "django-netfields" version))
(sha256 (sha256
(base32 (base32
"0jwlbyaxk91fq69g2y0zpfjgmjgh6l0lqm5mhys7m5968lkihvgp")))) "122d0db1f420cwzrd7hynfbnnpqkjj2ridym5mrnj0l736nin5rr"))))
(build-system python-build-system) (build-system python-build-system)
(arguments '(#:tests? #f)) ;XXX: Requires a running PostgreSQL server (arguments '(#:tests? #f)) ;XXX: Requires a running PostgreSQL server
(propagated-inputs (propagated-inputs

View File

@ -3,10 +3,12 @@
;;; Copyright © 2015, 2018 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2015, 2018 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2017 Frederick Muriithi <fredmanglis@gmail.com> ;;; Copyright © 2017 Frederick Muriithi <fredmanglis@gmail.com>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2019, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org> ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 ( <paren@disroot.org>
;;; Copyright © 2022 Esther Flashner <esther@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -28,19 +30,23 @@
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix gexp)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module ((guix build utils) #:hide (delete which)) #:use-module ((guix build utils) #:hide (delete which))
#: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 copy)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gdb) #:use-module (gnu packages gdb)
#:use-module (gnu packages libedit) #:use-module (gnu packages libedit)
#:use-module (gnu packages llvm) #:use-module (gnu packages llvm)
#:use-module (gnu packages ninja) #:use-module (gnu packages ninja)
#: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-xyz) #:use-module (gnu packages python-xyz)
@ -48,220 +54,101 @@
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (srfi srfi-1)) #:use-module (srfi srfi-1))
(define-public rdmd (define-public d-tools
(package (package
(name "rdmd") (name "d-tools")
(version "2.077.1") (version "2.100.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/dlang/tools/archive/v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0c8w373rv6iz3xfid94w40ncv2lr2ncxi662qsr4lda4aghczmq7"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'check) ; There is no Makefile, so there's no 'make check'.
(replace
'build
(lambda _
(invoke "ldc2" "rdmd.d")))
(replace
'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out") "/bin")))
(install-file "rdmd" bin)))))))
(native-inputs
(list ldc))
(home-page "https://github.com/D-Programming-Language/tools/")
(synopsis "Specialized equivalent to 'make' for the D language")
(description
"rdmd is a companion to the dmd compiler that simplifies the typical
edit-compile-link-run or edit-make-run cycle to a rapid edit-run cycle. Like
make and other tools, rdmd uses the relative dates of the files involved to
minimize the amount of work necessary. Unlike make, rdmd tracks dependencies
and freshness without requiring additional information from the user.")
(license license:boost1.0)))
;;; The 0.17.6 version is the last release to support being bootstrapped
;;; without a D compiler (requiring only a C++ compiler).
;;; TODO: Bootstrap ldc from GDC (the D frontend for GCC).
(define ldc-bootstrap-0.17
(package
(name "ldc")
(version "0.17.6")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/ldc-developers/ldc") (url "https://github.com/dlang/tools")
(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 "1q6hm4fkrcwys83x0p4kfg9xrc1b9g2qicqif2zy5z4nsfsb5vgs")))) (base32 "1jbn0hyskv4ykcckw0iganpyrm0bq2lggswspw21r4hgnxkmjbyw"))))
(build-system cmake-build-system) (build-system gnu-build-system)
(supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
(properties
;; Some of the tests take a very long time on ARMv7. See
;; <https://lists.gnu.org/archive/html/guix-devel/2018-02/msg00312.html>.
`((max-silent-time . ,(* 3600 3))))
(arguments (arguments
`(#:tests? #f ;requires obsolete python-lit test dependency (list #:phases
#:phases #~(modify-phases %standard-phases
(modify-phases %standard-phases (delete 'configure)
(add-after 'unpack 'unpack-submodule-sources (replace 'build
(lambda* (#:key inputs #:allow-other-keys) (lambda _
(let ((unpack (lambda (input target) (mkdir-p "bin")
(let ((source (assoc-ref inputs input))) (setenv "CC" #$(cc-for-target))
;; Git checkouts are directories as long as (setenv "LD" #$(ld-for-target))
;; there are no patches; tarballs otherwise. (invoke "ldc2" "rdmd.d" "--of" "bin/rdmd")
(if (file-is-directory? source) (apply invoke "ldc2" "--of=bin/dustmite"
(copy-recursively source target) (find-files "DustMite" ".*\\.d"))))
(with-directory-excursion target (replace 'check
(invoke "tar" "xvf" source (lambda* (#:key tests? #:allow-other-keys)
"--strip-components=1"))))))) (when tests?
(unpack "phobos-src" "runtime/phobos") (invoke "bin/rdmd" "rdmd_test.d" "bin/rdmd"
(unpack "druntime-src" "runtime/druntime") "--rdmd-default-compiler" "ldmd2"))))
(unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")))) (replace 'install
(add-after 'unpack-submodule-sources 'patch-paths (lambda* (#:key outputs #:allow-other-keys)
(lambda* (#:key inputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out"))
(substitute* "runtime/phobos/std/process.d" (bin (string-append out "/bin"))
(("/bin/sh") (which "sh")) (man (string-append out "/man")))
(("echo") (which "echo"))) (for-each delete-file (find-files "bin" "\\.o$"))
(substitute* "runtime/phobos/std/datetime.d" (copy-recursively "bin" bin)
(("/usr/share/zoneinfo/") (copy-recursively "man" man)))))))
(string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
(("tzName == \"[+]VERSION\"")
"(tzName == \"+VERSION\" || \
std.algorithm.endsWith(tzName, \"/leapseconds\"))")))))))
(inputs
`(("libconfig" ,libconfig)
("libedit" ,libedit)
("tzdata" ,tzdata)
("zlib" ,zlib)))
(native-inputs (native-inputs
`(("llvm" ,llvm-6) (list ldc
("python-wrapper" ,python-wrapper) (module-ref (resolve-interface
("unzip" ,unzip) '(gnu packages commencement))
("phobos-src" 'ld-gold-wrapper)))
,(origin (home-page "https://github.com/dlang/tools")
(method git-fetch) (synopsis "Useful D-related tools")
(uri (git-reference
(url "https://github.com/ldc-developers/phobos")
(commit (string-append "ldc-v" version))))
(file-name (git-file-name "phobos" version))
(sha256
(base32 "15jzs38wanks2jfp2izzl7zqrp4c8ai54ppsgm8ws86p3sbbkmj8"))))
("druntime-src"
,(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ldc-developers/druntime")
(commit (string-append "ldc-v" version))))
(file-name (git-file-name "druntime" version))
(sha256
(base32 "00wr2kiggwnd8h7by51fhj1xc65hv1ysip5gbgdbkfar58p2d0bb"))))
("dmd-testsuite-src"
,(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ldc-developers/dmd-testsuite")
(commit (string-append "ldc-v" version))))
(file-name (git-file-name "dmd-testsuite" version))
(sha256
(base32 "1d1c0979wbippldrkjf7szyj4n87hxz8dwqg1r5b3aai37g9kcky"))))))
(home-page "http://wiki.dlang.org/LDC")
(synopsis "LLVM-based compiler for the D programming language")
(description (description
"LDC is an LLVM compiler for the D programming language. It is based on "@code{d-tools} provides two useful tools for the D language: @code{rdmd},
the latest DMD compiler that was written in C and is used for which runs D source files as scripts, and @code{dustmite}, which reduces D code
bootstrapping more recent compilers written in D.") to a minimal test case.")
;; Most of the code is released under BSD-3, except for code originally (license license:boost1.0)))
;; written for GDC, which is released under GPLv2+, and the DMD frontend,
;; which is released under the "Boost Software License version 1.0".
(license (list license:bsd-3
license:gpl2+
license:boost1.0))))
;;; This is the last version that supports being built with 32 bit machines (define-public gdmd
;;; from 0.17. (let ((commit "ff2c97a47408fb71c18a2d453294d18808a97cc5")
(define ldc-bootstrap-1.12 (revision "1"))
(package (package
(inherit ldc-bootstrap-0.17) (name "gdmd")
(version "1.12.0") (version (git-version "0.1.0" revision commit))
(source (source
(origin (origin
(method url-fetch) (method git-fetch)
;; The official release include the matching source code releases of (uri (git-reference
;; phobos, druntime and dmd-testsuite. (url "https://github.com/D-Programming-GDC/gdmd")
(uri (string-append "https://github.com/ldc-developers/ldc/releases" (commit commit)))
"/download/v" version "/ldc-" version "-src.tar.gz")) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1fdma1w8j37wkr0pqdar11slkk36qymamxnk6d9k8ybhjmxaaawm")))) (base32 "0pd70clk70069xcjysaas7zszzmigrcw1zl2xxv8kzdg7y7xrzvm"))))
(arguments (build-system copy-build-system)
(substitute-keyword-arguments (package-arguments ldc-bootstrap-0.17) (arguments
((#:build-type _ #f) "Release") (list
((#:configure-flags _ #f) #:install-plan
`(list "-GNinja")) #~'(("dmd-script" "bin/gdmd")
((#:make-flags _ #f) ;used as build targets ("dmd-script.1" "share/man/man1/gdmd.1"))
`(list "all")) #:phases
((#:tests? _) #f) #~(modify-phases %standard-phases
((#:phases phases) (add-after 'unpack 'adjust-gdc-location
`(modify-phases ,phases (lambda* (#:key inputs #:allow-other-keys)
(delete 'unpack-submodule-sources) (substitute* "dmd-script"
(replace 'patch-paths (("my \\$gdc_dir.*")
(lambda* (#:key inputs #:allow-other-keys) (string-append "my $gdc_dir = \""
(substitute* '("runtime/phobos/std/process.d") (dirname (search-input-file inputs "/bin/gdc"))
(("/bin/sh") (which "sh")) "\";\n"))))))))
(("echo") (which "echo"))))) (inputs
(replace 'build (list gdc-10 perl))
;; Building with Make would result in "make: *** [Makefile:166: (home-page "https://github.com/D-Programming-GDC/gdmd")
;; all] Error 2". (synopsis "DMD-like wrapper for GDC")
(lambda* (#:key make-flags parallel-tests? #:allow-other-keys) (description "This package provides a DMD-like wrapper for the
(let ((job-count (number->string (or (and parallel-tests? @acronym{GNU D Compiler,GDC}.")
(parallel-job-count)) (license license:gpl3+))))
1))))
(apply invoke "cmake" "--build" "." "-j" job-count
"--target" make-flags))))
(replace 'install
(lambda _
(invoke "cmake" "--install" ".")))))))
(native-inputs
;; Importing (gnu packages commencement) would introduce a cycle.
`(("ld-gold-wrapper" ,(module-ref (resolve-interface
'(gnu packages commencement))
'ld-gold-wrapper))
("llvm" ,llvm-6)
("ldc" ,ldc-bootstrap-0.17)
("ninja" ,ninja)
("python-wrapper" ,python-wrapper)
("unzip" ,unzip)))))
;;; For 32 bits systems, 1.12 cannot build 1.27 directly, so we need another ;; We use GDC, the D frontend for GCC, to bootstrap ldc. We then use
;;; hop. ;; ldc to bootstrap itself so that no reference remains to GDC.
(define ldc-bootstrap-1.24 (define ldc-bootstrap
(package (package
(inherit ldc-bootstrap-1.12) (name "ldc")
(version "1.24.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/ldc-developers/ldc/releases"
"/download/v" version "/ldc-" version "-src.tar.gz"))
(sha256
(base32 "0g5svf55i0kq55q49awmwqj9qi1n907cyrn1vjdjgs8nx6nn35gx"))))
(native-inputs
(fold alist-replace
(package-native-inputs ldc-bootstrap-1.12)
'("ldc" "llvm")
`((,ldc-bootstrap-1.12) (,llvm-11))))))
(define ldc-bootstrap-1.27
(package
(inherit ldc-bootstrap-1.24)
(version "1.27.1") (version "1.27.1")
(source (source
(origin (origin
@ -270,24 +157,78 @@ bootstrapping more recent compilers written in D.")
"/download/v" version "/ldc-" version "-src.tar.gz")) "/download/v" version "/ldc-" version "-src.tar.gz"))
(sha256 (sha256
(base32 "1775001ba6n8w46ln530kb5r66vs935ingnppgddq8wqnc0gbj4k")))) (base32 "1775001ba6n8w46ln530kb5r66vs935ingnppgddq8wqnc0gbj4k"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;skip in the bootstrap
#:build-type "Release"
#:configure-flags
(list "-GNinja")
#:make-flags ;used as build targets
(list "all")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "runtime/phobos/std/process.d"
(("/bin/sh") (which "sh"))
(("echo") (which "echo")))))
(replace 'build
;; Building with Make would result in "make: *** [Makefile:166:
;; all] Error 2".
(lambda* (#:key make-flags parallel-tests? #:allow-other-keys)
(let ((job-count (number->string (or (and parallel-tests?
(parallel-job-count))
1))))
(apply invoke "cmake" "--build" "." "-j" job-count
"--target" make-flags))))
(replace 'install
(lambda _
(invoke "cmake" "--install" "."))))))
(inputs
`(("libconfig" ,libconfig)
("libedit" ,libedit)
("tzdata" ,tzdata)
("zlib" ,zlib)))
(native-inputs (native-inputs
(fold alist-replace ;; Importing (gnu packages commencement) would introduce a cycle.
(package-native-inputs ldc-bootstrap-1.24) `(("ld-gold-wrapper" ,(module-ref (resolve-interface
'("ldc" "llvm") '(gnu packages commencement))
`((,ldc-bootstrap-1.24) (,llvm-11)))))) 'ld-gold-wrapper))
("llvm" ,llvm-11)
("ldc" ,gdmd)
("ninja" ,ninja)
("python-wrapper" ,python-wrapper)
("unzip" ,unzip)))
(home-page "http://wiki.dlang.org/LDC")
(synopsis "LLVM-based compiler for the D programming language")
(description
"LDC is an LLVM compiler for the D programming language. It is based on
the latest DMD compiler that was written in C and is used for
bootstrapping more recent compilers written in D.")
(properties
;; Some of the tests take a very long time on ARMv7. See
;; <https://lists.gnu.org/archive/html/guix-devel/2018-02/msg00312.html>.
`((max-silent-time . ,(* 3600 3))))
;; Most of the code is released under BSD-3, except for code originally
;; written for GDC, which is released under GPLv2+, and the DMD frontend,
;; which is released under the "Boost Software License version 1.0".
(license (list license:bsd-3
license:gpl2+
license:boost1.0))))
(define-public ldc (define-public ldc
(package (package
(inherit ldc-bootstrap-1.27) (inherit ldc-bootstrap)
(arguments (arguments
(substitute-keyword-arguments (package-arguments ldc-bootstrap-1.27) (substitute-keyword-arguments (package-arguments ldc-bootstrap)
((#:make-flags _ #f) ((#:make-flags _ #f)
'(list "all" '(list "all"
;; Also build the test runner binaries. ;; Also build the test runner binaries.
"ldc2-unittest" "all-test-runners")) "ldc2-unittest" "all-test-runners"))
((#:configure-flags flags) ((#:configure-flags flags)
`(,@flags "-DBUILD_SHARED_LIBS=ON" `(,@flags "-DBUILD_SHARED_LIBS=ON"
"-DLDC_LINK_MANUALLY=OFF")) "-DLDC_LINK_MANUALLY=OFF"
"-DLDC_DYNAMIC_COMPILE=OFF"))
((#:tests? _) #t) ((#:tests? _) #t)
((#:phases phases) ((#:phases phases)
`(modify-phases ,phases `(modify-phases ,phases
@ -308,7 +249,8 @@ bootstrapping more recent compilers written in D.")
system))))) system)))))
(matches ("x86_64" => "x86_64") (matches ("x86_64" => "x86_64")
("i686" => "i386") ("i686" => "i386")
("armhf" => "armhf")))) ("armhf" => "armhf")
("aarch64" => "aarch64"))))
;; Coax LLVM into agreeing with Clang about system target ;; Coax LLVM into agreeing with Clang about system target
;; naming. ;; naming.
(substitute* "driver/linker-gcc.cpp" (substitute* "driver/linker-gcc.cpp"
@ -358,30 +300,28 @@ bootstrapping more recent compilers written in D.")
(substitute* "runtime/druntime/test/exceptions/Makefile" (substitute* "runtime/druntime/test/exceptions/Makefile"
((".*TESTS\\+=rt_trap_exceptions_drt_gdb.*") ((".*TESTS\\+=rt_trap_exceptions_drt_gdb.*")
"")) ""))
;; The following tests fail on the supported 32 bit systems, ;; The following tests fail on some systems, not all of
;; which are not tested upstream. ;; which are tested upstream.
(with-directory-excursion "tests" (with-directory-excursion "tests"
(let ((system ,(or (%current-target-system) (cond
(%current-system)))) (,(or (target-x86-32?)
(when (or (string-prefix? "armhf" system ) (target-arm32?))
(string-prefix? "i686" system ))
(for-each delete-file (for-each delete-file
'("PGO/profile_rt_calls.d" '("PGO/profile_rt_calls.d"
"codegen/mangling.d" "codegen/mangling.d"
"debuginfo/print_gdb.d"
"dynamiccompile/bind.d"
"dynamiccompile/bind_bool.d"
"dynamiccompile/bind_func_opt.d"
"dynamiccompile/bind_nested_opt.d"
"dynamiccompile/bind_opt.d"
"dynamiccompile/compiler_context.d"
"dynamiccompile/compiler_context_parallel.d"
"instrument/xray_check_pipeline.d" "instrument/xray_check_pipeline.d"
"instrument/xray_link.d" "instrument/xray_link.d"
"instrument/xray_simple_execution.d" "instrument/xray_simple_execution.d"
"sanitizers/msan_noerror.d" "sanitizers/msan_noerror.d"
"sanitizers/msan_uninitialized.d" "sanitizers/msan_uninitialized.d"
"d2/dmd-testsuite/runnable_cxx/cppa.d"))))))) "d2/dmd-testsuite/runnable_cxx/cppa.d")))
(,(target-aarch64?)
(for-each delete-file
'("d2/dmd-testsuite/runnable/ldc_cabi1.d"
"sanitizers/fuzz_basic.d"
"sanitizers/msan_noerror.d"
"sanitizers/msan_uninitialized.d")))
(#t '())))))
(add-before 'configure 'set-cc-and-cxx-to-use-clang (add-before 'configure 'set-cc-and-cxx-to-use-clang
;; The tests require to be built with Clang; build everything ;; The tests require to be built with Clang; build everything
;; with it, for simplicity. ;; with it, for simplicity.
@ -414,15 +354,15 @@ integration tests...\n")
"-E" "dmd-testsuite|lit-tests|ldc2-unittest"))))))))) "-E" "dmd-testsuite|lit-tests|ldc2-unittest")))))))))
(native-inputs (native-inputs
(append (delete "llvm" (append (delete "llvm"
(alist-replace "ldc" (list ldc-bootstrap-1.27) (alist-replace "ldc" (list ldc-bootstrap)
(package-native-inputs ldc-bootstrap-1.27))) (package-native-inputs ldc-bootstrap)))
`(("clang" ,clang-11) ;propagates llvm and clang-runtime `(("clang" ,clang-11) ;propagates llvm and clang-runtime
("python-lit" ,python-lit)))))) ("python-lit" ,python-lit))))))
(define-public dub (define-public dub
(package (package
(name "dub") (name "dub")
(version "1.7.2") (version "1.23.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -431,26 +371,31 @@ integration tests...\n")
(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 "073ibvgm1gphcqs1yjrav9ryp677nh3b194nxmvicwgvdc0sb6w9")))) (base32 "06a4whsl1m600k096nwif83n7za3vr7pj1xwapncy5fcad1gmady"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; it would have tested itself by installing some packages (vibe etc) (list #:tests? #f ; tests try to install packages
#:phases #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(delete 'configure) ; no configure script (delete 'configure) ; no configure script
(replace 'build (replace 'build
(lambda _ (lambda _
(invoke "./build.sh"))) (setenv "CC" #$(cc-for-target))
(replace 'install (setenv "LD" #$(ld-for-target))
(lambda* (#:key outputs #:allow-other-keys) (invoke "./build.d")))
(let* ((out (assoc-ref outputs "out")) (replace 'install
(bin (string-append out "/bin"))) (lambda* (#:key outputs #:allow-other-keys)
(install-file "bin/dub" bin) (let* ((out (assoc-ref outputs "out"))
#t)))))) (bin (string-append out "/bin")))
(install-file "bin/dub" bin)))))))
(inputs (inputs
(list curl)) (list curl))
(native-inputs (native-inputs
(list ldc)) (list d-tools
ldc
(module-ref (resolve-interface
'(gnu packages commencement))
'ld-gold-wrapper)))
(home-page "https://code.dlang.org/getting_started") (home-page "https://code.dlang.org/getting_started")
(synopsis "Package and build manager for D projects") (synopsis "Package and build manager for D projects")
(description (description

View File

@ -7,6 +7,7 @@
;;; Copyright © 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com> ;;; Copyright © 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
;;; Copyright © 2020 Jesse Dowell <jessedowell@gmail.com> ;;; Copyright © 2020 Jesse Dowell <jessedowell@gmail.com>
;;; Copyright © 2021 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2021 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -28,6 +29,7 @@
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
@ -52,7 +54,7 @@
;; Note - when changing Docker versions it is important to update the versions ;; Note - when changing Docker versions it is important to update the versions
;; of several associated packages (docker-libnetwork and go-sctp). ;; of several associated packages (docker-libnetwork and go-sctp).
(define %docker-version "19.03.15") (define %docker-version "20.10.17")
(define-public python-docker (define-public python-docker
(package (package
@ -173,7 +175,7 @@ Python without keeping their credentials in a Docker configuration file.")
(define-public containerd (define-public containerd
(package (package
(name "containerd") (name "containerd")
(version "1.4.4") (version "1.6.6")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -182,51 +184,58 @@ Python without keeping their credentials in a Docker configuration file.")
(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 "0qjbfj1dw6pykxhh8zahcxlgpyjzgnrngk5vjaf34akwyan8nrxb")))) (base32 "1vsl747i3wyy68j4lp4nprwxadbyga8qxlrk892afcd2990zp5mr"))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
(let ((make-flags (list (string-append "VERSION=" version) (let ((make-flags #~(list (string-append "VERSION=" #$version)
"REVISION=0"))) (string-append "DESTDIR=" #$output)
`(#:import-path "github.com/containerd/containerd" "PREFIX="
#:phases "REVISION=0")))
(modify-phases %standard-phases (list
(add-after 'chdir 'patch-paths #:import-path "github.com/containerd/containerd"
(lambda* (#:key inputs import-path outputs #:allow-other-keys) #:phases
(with-directory-excursion (string-append "src/" import-path) #~(modify-phases %standard-phases
(substitute* "runtime/v1/linux/runtime.go" (add-after 'unpack 'patch-paths
(("defaultRuntime[ \t]*=.*") (lambda* (#:key inputs import-path outputs #:allow-other-keys)
(string-append "defaultRuntime = \"" (with-directory-excursion (string-append "src/" import-path)
(assoc-ref inputs "runc") (substitute* "runtime/v1/linux/runtime.go"
"/sbin/runc\"\n")) (("defaultRuntime[ \t]*=.*")
(("defaultShim[ \t]*=.*") (string-append "defaultRuntime = \""
(string-append "defaultShim = \"" (search-input-file inputs "/sbin/runc")
(assoc-ref outputs "out") "\"\n"))
"/bin/containerd-shim\"\n"))) (("defaultShim[ \t]*=.*")
(substitute* "vendor/github.com/containerd/go-runc/runc.go" (string-append "defaultShim = \""
(("DefaultCommand[ \t]*=.*") (assoc-ref outputs "out")
(string-append "DefaultCommand = \"" "/bin/containerd-shim\"\n")))
(assoc-ref inputs "runc") (substitute* "pkg/cri/config/config_unix.go"
"/sbin/runc\"\n"))) (("DefaultRuntimeName: \"runc\"")
(substitute* "vendor/github.com/containerd/continuity/testutil\ (string-append "DefaultRuntimeName: \""
(search-input-file inputs "/sbin/runc")
"\"")))
(substitute* "vendor/github.com/containerd/go-runc/runc.go"
(("DefaultCommand[ \t]*=.*")
(string-append "DefaultCommand = \""
(search-input-file inputs "/sbin/runc")
"\"\n")))
(substitute* "vendor/github.com/containerd/continuity/testutil\
/loopback/loopback_linux.go" /loopback/loopback_linux.go"
(("exec\\.Command\\(\"losetup\"") (("exec\\.Command\\(\"losetup\"")
(string-append "exec.Command(\"" (string-append "exec.Command(\""
(assoc-ref inputs "util-linux") (search-input-file inputs "/sbin/losetup")
"/sbin/losetup\""))) "\"")))
(substitute* "archive/compression/compression.go" (substitute* "archive/compression/compression.go"
(("exec\\.LookPath\\(\"unpigz\"\\)") (("exec\\.LookPath\\(\"unpigz\"\\)")
(string-append "\"" (assoc-ref inputs "pigz") (string-append "\""
"/bin/unpigz\", error(nil)")))))) (search-input-file inputs "/bin/unpigz")
(replace 'build "\", error(nil)"))))))
(lambda* (#:key import-path #:allow-other-keys) (replace 'build
(with-directory-excursion (string-append "src/" import-path) (lambda* (#:key import-path #:allow-other-keys)
(apply invoke "make" ',make-flags)))) (with-directory-excursion (string-append "src/" import-path)
(replace 'install (apply invoke "make" #$make-flags))))
(lambda* (#:key import-path outputs #:allow-other-keys) (replace 'install
(with-directory-excursion (string-append "src/" import-path) (lambda* (#:key import-path #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))) (with-directory-excursion (string-append "src/" import-path)
(apply invoke "make" (string-append "DESTDIR=" out) "install" (apply invoke "make" "install" #$make-flags))))))))
',make-flags)))))))))
(inputs (inputs
(list btrfs-progs libseccomp pigz runc util-linux)) (list btrfs-progs libseccomp pigz runc util-linux))
(native-inputs (native-inputs
@ -243,11 +252,10 @@ network attachments.")
;;; anyway, as it needs many dependencies that aren't being satisfied. ;;; anyway, as it needs many dependencies that aren't being satisfied.
(define docker-libnetwork (define docker-libnetwork
;; There are no recent release for libnetwork, so choose the last commit of ;; There are no recent release for libnetwork, so choose the last commit of
;; the branch that Docker uses, as can be seen in the Docker source file ;; the branch that Docker uses, as can be seen in the 'vendor.conf' Docker
;; 'hack/dockerfile/install/proxy.installer'. NOTE - It is important that ;; source file. NOTE - It is important that this version is kept in sync
;; this version is kept in sync with the version of Docker being used. ;; with the version of Docker being used.
;; This commit is the "bump_19.03" branch, as mentioned in Docker's vendor.conf. (let ((commit "f6ccccb1c082a432c2a5814aaedaca56af33d9ea")
(let ((commit "55e924b8a84231a065879156c0de95aefc5f5435")
(version (version-major+minor %docker-version)) (version (version-major+minor %docker-version))
(revision "1")) (revision "1"))
(package (package
@ -262,12 +270,10 @@ network attachments.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"19syb3scwiykn44gqfaqrgqv8a0df4ps0ykf3za9xkjc5cyi99mp")) "0nxpr0h0smv4n641g41vxibr5r85ixfcvs9cp3c4fc7zvrhjc49s"))
;; Delete bundled ("vendored") free software source code. ;; Delete bundled ("vendored") free software source code.
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet '(begin (snippet '(delete-file-recursively "vendor"))))
(delete-file-recursively "vendor")
#t))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
`(#:import-path "github.com/moby/libnetwork/")) `(#:import-path "github.com/moby/libnetwork/"))
@ -315,278 +321,269 @@ built-in registry server of Docker.")
(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 "0419iha9zmwlhzhnbfxlsa13vgd04yifnsr8qqnj2ks5dxrcajl8")) (base32 "0hn7fg717rggwk6dbicrwa7aglqp7dp0jp5rvn6p9gfcnrp2w97d"))))
(patches
(search-patches "docker-fix-tests.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:modules (list
((guix build gnu-build-system) #:modules
'((guix build gnu-build-system)
((guix build go-build-system) #:prefix go:) ((guix build go-build-system) #:prefix go:)
(guix build union) (guix build union)
(guix build utils)) (guix build utils))
#:imported-modules #:imported-modules
(,@%gnu-build-system-modules `(,@%gnu-build-system-modules
(guix build union) (guix build union)
(guix build go-build-system)) (guix build go-build-system))
#:phases #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'patch-paths (add-after 'unpack 'patch-paths
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(substitute* "builder/builder-next/executor_unix.go" (substitute* "builder/builder-next/executor_unix.go"
(("CommandCandidates:.*runc.*") (("CommandCandidates:.*runc.*")
(string-append "CommandCandidates: []string{\"" (string-append "CommandCandidates: []string{\""
(assoc-ref inputs "runc") (search-input-file inputs "/sbin/runc")
"/sbin/runc\"},\n"))) "\"},\n")))
(substitute* "vendor/github.com/containerd/go-runc/runc.go" (substitute* "vendor/github.com/containerd/go-runc/runc.go"
(("DefaultCommand = .*") (("DefaultCommand = .*")
(string-append "DefaultCommand = \"" (string-append "DefaultCommand = \""
(assoc-ref inputs "runc") (search-input-file inputs "/sbin/runc")
"/sbin/runc\"\n"))) "\"\n")))
(substitute* "vendor/github.com/containerd/containerd/runtime/v1/linux/runtime.go" (substitute* "vendor/github.com/containerd/containerd/\
(("defaultRuntime[ \t]*=.*") runtime/v1/linux/runtime.go"
(string-append "defaultRuntime = \"" (("defaultRuntime[ \t]*=.*")
(assoc-ref inputs "runc") (string-append "defaultRuntime = \""
"/sbin/runc\"\n")) (search-input-file inputs "/sbin/runc")
(("defaultShim[ \t]*=.*") "\"\n"))
(string-append "defaultShim = \"" (("defaultShim[ \t]*=.*")
(assoc-ref inputs "containerd") (string-append "defaultShim = \""
"/bin/containerd-shim\"\n"))) (search-input-file inputs "/bin/containerd-shim")
(substitute* "daemon/daemon_unix.go" "\"\n")))
(("DefaultShimBinary = .*") (substitute* "daemon/daemon_unix.go"
(string-append "DefaultShimBinary = \"" (("DefaultShimBinary = .*")
(assoc-ref inputs "containerd") (string-append "DefaultShimBinary = \""
"/bin/containerd-shim\"\n")) (search-input-file inputs "/bin/containerd-shim")
(("DefaultRuntimeBinary = .*") "\"\n"))
(string-append "DefaultRuntimeBinary = \"" (("DefaultRuntimeBinary = .*")
(assoc-ref inputs "runc") (string-append "DefaultRuntimeBinary = \""
"/sbin/runc\"\n")) (search-input-file inputs "/sbin/runc")
(("DefaultRuntimeName = .*") "\"\n")))
(string-append "DefaultRuntimeName = \"" (substitute* "daemon/runtime_unix.go"
(assoc-ref inputs "runc") (("defaultRuntimeName = .*")
"/sbin/runc\"\n"))) (string-append "defaultRuntimeName = \""
(substitute* "daemon/config/config.go" (search-input-file inputs "/sbin/runc")
(("StockRuntimeName = .*") "\"\n")))
(string-append "StockRuntimeName = \"" (substitute* "daemon/config/config.go"
(assoc-ref inputs "runc") (("StockRuntimeName = .*")
"/sbin/runc\"\n")) (string-append "StockRuntimeName = \""
(("DefaultInitBinary = .*") (search-input-file inputs "/sbin/runc")
(string-append "DefaultInitBinary = \"" "\"\n"))
(assoc-ref inputs "tini") (("DefaultInitBinary = .*")
"/bin/tini-static\"\n"))) (string-append "DefaultInitBinary = \""
(substitute* "daemon/config/config_common_unix_test.go" (search-input-file inputs "/bin/tini-static")
(("expectedInitPath: \"docker-init\"") "\"\n")))
(string-append "expectedInitPath: \"" (substitute* "daemon/config/config_common_unix_test.go"
(assoc-ref inputs "tini") (("expectedInitPath: \"docker-init\"")
"/bin/tini-static\""))) (string-append "expectedInitPath: \""
(substitute* "vendor/github.com/moby/buildkit/executor/runcexecutor/executor.go" (search-input-file inputs "/bin/tini-static")
(("var defaultCommandCandidates = .*") "\"")))
(string-append "var defaultCommandCandidates = []string{\"" (substitute* "vendor/github.com/moby/buildkit/executor/\
(assoc-ref inputs "runc") "/sbin/runc\"}"))) runcexecutor/executor.go"
(substitute* "vendor/github.com/docker/libnetwork/portmapper/proxy.go" (("var defaultCommandCandidates = .*")
(("var userlandProxyCommandName = .*") (string-append "var defaultCommandCandidates = []string{\""
(string-append "var userlandProxyCommandName = \"" (search-input-file inputs "/sbin/runc") "\"}")))
(assoc-ref inputs "docker-proxy") (substitute* "vendor/github.com/docker/libnetwork/portmapper/proxy.go"
"/bin/proxy\"\n"))) (("var userlandProxyCommandName = .*")
(substitute* "pkg/archive/archive.go" (string-append "var userlandProxyCommandName = \""
(("string\\{\"xz") (search-input-file inputs "/bin/proxy")
(string-append "string{\"" (assoc-ref inputs "xz") "/bin/xz"))) "\"\n")))
;; TODO: Remove when Docker proper uses v1.14.x to build (substitute* "pkg/archive/archive.go"
(substitute* "registry/resumable/resumablerequestreader_test.go" (("string\\{\"xz")
(("I%27m%20not%20an%20url" all) (string-append "string{\"" (search-input-file inputs "/bin/xz"))))
(string-append "\"" all "\"")))
;; TODO: Remove when Docker proper uses v1.14.x to build
(substitute* "vendor/gotest.tools/x/subtest/context.go"
(("func \\(tc \\*testcase\\) Cleanup\\(" all)
(string-append all "func()"))
(("tc\\.Cleanup\\(" all)
(string-append all "nil")))
(let ((source-files (filter (lambda (name) (let ((source-files (filter (lambda (name)
(not (string-contains name "test"))) (not (string-contains name "test")))
(find-files "." "\\.go$")))) (find-files "." "\\.go$"))))
(let-syntax ((substitute-LookPath* (let-syntax ((substitute-LookPath*
(syntax-rules () (syntax-rules ()
((_ (source-text package relative-path) ...) ((_ (source-text path) ...)
(substitute* source-files (substitute* source-files
(((string-append "\\<exec\\.LookPath\\(\"" (((string-append "\\<exec\\.LookPath\\(\""
source-text source-text
"\")")) "\")"))
(string-append "\"" (string-append "\""
(assoc-ref inputs package) (search-input-file inputs path)
"/" relative-path "\", error(nil)")) ...))))
"\", error(nil)")) ...)))) (substitute-Command*
(substitute-Command* (syntax-rules ()
(syntax-rules () ((_ (source-text path) ...)
((_ (source-text package relative-path) ...) (substitute* source-files
(substitute* source-files (((string-append "\\<(re)?exec\\.Command\\(\""
(((string-append "\\<(re)?exec\\.Command\\(\"" source-text
source-text "\"") _ re?)
"\"") _ re?) (string-append (if re? re? "")
(string-append (if re? re? "") "exec.Command(\""
"exec.Command(\"" (search-input-file inputs path)
(assoc-ref inputs package) "\"")) ...)))))
"/" relative-path (substitute-LookPath*
"\"")) ...))))) ("containerd" "/bin/containerd")
(substitute-LookPath* ("ps" "/bin/ps")
("containerd" "containerd" "bin/containerd") ("mkfs.xfs" "/sbin/mkfs.xfs")
("ps" "procps" "bin/ps") ("lvmdiskscan" "/sbin/lvmdiskscan")
("mkfs.xfs" "xfsprogs" "bin/mkfs.xfs") ("pvdisplay" "/sbin/pvdisplay")
("lvmdiskscan" "lvm2" "sbin/lvmdiskscan") ("blkid" "/sbin/blkid")
("pvdisplay" "lvm2" "sbin/pvdisplay") ("unpigz" "/bin/unpigz")
("blkid" "util-linux" "sbin/blkid") ("iptables" "/sbin/iptables")
("unpigz" "pigz" "bin/unpigz") ("ip6tables" "/sbin/ip6tables")
("iptables" "iptables" "sbin/iptables") ("iptables-legacy" "/sbin/iptables")
("iptables-legacy" "iptables" "sbin/iptables") ("ip" "/sbin/ip"))
("ip" "iproute2" "sbin/ip"))
(substitute-Command* (substitute-Command*
("modprobe" "kmod" "bin/modprobe") ("modprobe" "/bin/modprobe")
("pvcreate" "lvm2" "sbin/pvcreate") ("pvcreate" "/sbin/pvcreate")
("vgcreate" "lvm2" "sbin/vgcreate") ("vgcreate" "/sbin/vgcreate")
("lvcreate" "lvm2" "sbin/lvcreate") ("lvcreate" "/sbin/lvcreate")
("lvconvert" "lvm2" "sbin/lvconvert") ("lvconvert" "/sbin/lvconvert")
("lvchange" "lvm2" "sbin/lvchange") ("lvchange" "/sbin/lvchange")
("mkfs.xfs" "xfsprogs" "sbin/mkfs.xfs") ("mkfs.xfs" "/sbin/mkfs.xfs")
("xfs_growfs" "xfsprogs" "sbin/xfs_growfs") ("xfs_growfs" "/sbin/xfs_growfs")
("mkfs.ext4" "e2fsprogs" "sbin/mkfs.ext4") ("mkfs.ext4" "/sbin/mkfs.ext4")
("tune2fs" "e2fsprogs" "sbin/tune2fs") ("tune2fs" "/sbin/tune2fs")
("blkid" "util-linux" "sbin/blkid") ("blkid" "/sbin/blkid")
("resize2fs" "e2fsprogs" "sbin/resize2fs") ("resize2fs" "/sbin/resize2fs")
("ps" "procps" "bin/ps") ("ps" "/bin/ps")
("losetup" "util-linux" "sbin/losetup") ("losetup" "/sbin/losetup")
("uname" "coreutils" "bin/uname") ("uname" "/bin/uname")
("dbus-launch" "dbus" "bin/dbus-launch") ("dbus-launch" "/bin/dbus-launch")
("git" "git" "bin/git"))) ("git" "/bin/git")))
;; docker-mountfrom ?? ;; docker-mountfrom ??
;; docker ;; docker
;; docker-untar ?? ;; docker-untar ??
;; docker-applyLayer ?? ;; docker-applyLayer ??
;; /usr/bin/uname ;; /usr/bin/uname
;; grep ;; grep
;; apparmor_parser ;; apparmor_parser
;; Make compilation fail when, in future versions, Docker ;; Make compilation fail when, in future versions, Docker
;; invokes other programs we don't know about and thus don't ;; invokes other programs we don't know about and thus don't
;; substitute. ;; substitute.
(substitute* source-files (substitute* source-files
;; Search for Java in PATH. ;; Search for Java in PATH.
(("\\<exec\\.Command\\(\"java\"") (("\\<exec\\.Command\\(\"java\"")
"xxec.Command(\"java\"") "xxec.Command(\"java\"")
;; Search for AUFS in PATH (mainline Linux doesn't support it). ;; Search for AUFS in PATH (mainline Linux doesn't support it).
(("\\<exec\\.Command\\(\"auplink\"") (("\\<exec\\.Command\\(\"auplink\"")
"xxec.Command(\"auplink\"") "xxec.Command(\"auplink\"")
;; Fail on other unsubstituted commands. ;; Fail on other unsubstituted commands.
(("\\<exec\\.Command\\(\"([a-zA-Z0-9][a-zA-Z0-9_-]*)\"" (("\\<exec\\.Command\\(\"([a-zA-Z0-9][a-zA-Z0-9_-]*)\""
_ executable) _ executable)
(string-append "exec.Guix_doesnt_want_Command(\"" (string-append "exec.Guix_doesnt_want_Command(\""
executable "\"")) executable "\""))
(("\\<xxec\\.Command") (("\\<xxec\\.Command")
"exec.Command") "exec.Command")
;; Search for ZFS in PATH. ;; Search for ZFS in PATH.
(("\\<LookPath\\(\"zfs\"\\)") "LooxPath(\"zfs\")") (("\\<LookPath\\(\"zfs\"\\)") "LooxPath(\"zfs\")")
;; Fail on other unsubstituted LookPaths. ;; Do not fail when buildkit-qemu-<target> isn't found.
(("\\<LookPath\\(\"") "Guix_doesnt_want_LookPath\\(\"") ;; FIXME: We might need to package buildkit and docker's
(("\\<LooxPath") "LookPath"))) ;; buildx plugin, to support qemu-based docker containers.
#t)) (("\\<LookPath\\(\"buildkit-qemu-\"") "LooxPath(\"buildkit-qemu-\"")
(add-after 'patch-paths 'delete-failing-tests ;; Fail on other unsubstituted LookPaths.
(lambda _ (("\\<LookPath\\(\"") "Guix_doesnt_want_LookPath\\(\"")
;; Needs internet access. (("\\<LooxPath") "LookPath")))))
(delete-file "builder/remotecontext/git/gitutils_test.go") (add-after 'patch-paths 'delete-failing-tests
;; Permission denied. (lambda _
(delete-file "daemon/graphdriver/devmapper/devmapper_test.go") ;; Needs internet access.
;; Operation not permitted (idtools.MkdirAllAndChown). (delete-file "builder/remotecontext/git/gitutils_test.go")
(delete-file "daemon/graphdriver/vfs/vfs_test.go") ;; Permission denied.
;; Timeouts after 5 min. (delete-file "daemon/graphdriver/devmapper/devmapper_test.go")
(delete-file "plugin/manager_linux_test.go") ;; Operation not permitted (idtools.MkdirAllAndChown).
;; Operation not permitted. (delete-file "daemon/graphdriver/vfs/vfs_test.go")
(delete-file "daemon/graphdriver/aufs/aufs_test.go") ;; Timeouts after 5 min.
(delete-file "daemon/graphdriver/btrfs/btrfs_test.go") (delete-file "plugin/manager_linux_test.go")
(delete-file "daemon/graphdriver/overlay/overlay_test.go") ;; Operation not permitted.
(delete-file "daemon/graphdriver/overlay2/overlay_test.go") (delete-file "daemon/graphdriver/aufs/aufs_test.go")
(delete-file "pkg/chrootarchive/archive_unix_test.go") (delete-file "daemon/graphdriver/btrfs/btrfs_test.go")
(delete-file "daemon/container_unix_test.go") (delete-file "daemon/graphdriver/overlay/overlay_test.go")
;; This file uses cgroups and /proc. (delete-file "daemon/graphdriver/overlay2/overlay_test.go")
(delete-file "pkg/sysinfo/sysinfo_linux_test.go") (delete-file "pkg/chrootarchive/archive_unix_test.go")
;; This file uses cgroups. (delete-file "daemon/container_unix_test.go")
(delete-file "runconfig/config_test.go") ;; This file uses cgroups and /proc.
;; This file uses /var. (delete-file "pkg/sysinfo/sysinfo_linux_test.go")
(delete-file "daemon/oci_linux_test.go") ;; This file uses cgroups.
;; Signal tests fail in bizarre ways (delete-file "runconfig/config_test.go")
(delete-file "pkg/signal/signal_linux_test.go") ;; This file uses /var.
#t)) (delete-file "daemon/oci_linux_test.go")
(replace 'configure ;; Signal tests fail in bizarre ways
(lambda _ (delete-file "pkg/signal/signal_linux_test.go")))
(setenv "DOCKER_BUILDTAGS" "seccomp") (replace 'configure
(setenv "DOCKER_GITCOMMIT" (string-append "v" ,%docker-version)) (lambda _
(setenv "VERSION" (string-append ,%docker-version "-ce")) (setenv "DOCKER_BUILDTAGS" "seccomp")
;; Automatically use bundled dependencies. (setenv "DOCKER_GITCOMMIT" (string-append "v" #$%docker-version))
;; TODO: Unbundle - see file "vendor.conf". (setenv "VERSION" (string-append #$%docker-version "-ce"))
(setenv "AUTO_GOPATH" "1") ;; Automatically use bundled dependencies.
;; Respectively, strip the symbol table and debug ;; TODO: Unbundle - see file "vendor.conf".
;; information, and the DWARF symbol table. (setenv "AUTO_GOPATH" "1")
(setenv "LDFLAGS" "-s -w") ;; Respectively, strip the symbol table and debug
;; Make build faster ;; information, and the DWARF symbol table.
(setenv "GOCACHE" "/tmp") (setenv "LDFLAGS" "-s -w")
#t)) ;; Make build faster
(add-before 'build 'setup-go-environment (setenv "GOCACHE" "/tmp")))
(assoc-ref go:%standard-phases 'setup-go-environment)) (add-before 'build 'setup-go-environment
(replace 'build (assoc-ref go:%standard-phases 'setup-go-environment))
(lambda _ (replace 'build
;; Our LD doesn't like the statically linked relocatable things (lambda _
;; that go produces, so install the dynamic version of ;; Our LD doesn't like the statically linked relocatable things
;; dockerd instead. ;; that go produces, so install the dynamic version of
(invoke "hack/make.sh" "dynbinary"))) ;; dockerd instead.
(replace 'check (invoke "hack/make.sh" "dynbinary")))
(lambda _ (replace 'check
;; The build process generated a file because the environment (lambda* (#:key tests? #:allow-other-keys)
;; variable "AUTO_GOPATH" was set. Use it. (when tests?
(setenv "GOPATH" (string-append (getcwd) "/.gopath")) ;; The build process generated a file because the environment
;; ".gopath/src/github.com/docker/docker" is a link to the current ;; variable "AUTO_GOPATH" was set. Use it.
;; directory and chdir would canonicalize to that. (setenv "GOPATH" (string-append (getcwd) "/.gopath"))
;; But go needs to have the uncanonicalized directory name, so ;; ".gopath/src/github.com/docker/docker" is a link to the current
;; store that. ;; directory and chdir would canonicalize to that.
(setenv "PWD" (string-append (getcwd) ;; But go needs to have the uncanonicalized directory name, so
"/.gopath/src/github.com/docker/docker")) ;; store that.
(with-directory-excursion ".gopath/src/github.com/docker/docker" (setenv "PWD" (string-append
(invoke "hack/test/unit")) (getcwd) "/.gopath/src/github.com/docker/docker"))
(setenv "PWD" #f) (with-directory-excursion ".gopath/src/github.com/docker/docker"
#t)) (invoke "hack/test/unit"))
(replace 'install (setenv "PWD" #f))))
(lambda* (#:key outputs #:allow-other-keys) (replace 'install
(let* ((out (assoc-ref outputs "out")) (lambda* (#:key outputs #:allow-other-keys)
(out-bin (string-append out "/bin"))) (let* ((out (assoc-ref outputs "out"))
(install-file "bundles/dynbinary-daemon/dockerd" out-bin) (out-bin (string-append out "/bin")))
(install-file (string-append "bundles/dynbinary-daemon/dockerd-" (install-file "bundles/dynbinary-daemon/dockerd" out-bin)
(getenv "VERSION")) (install-file (string-append "bundles/dynbinary-daemon/dockerd-"
out-bin) (getenv "VERSION"))
#t))) out-bin))))
(add-after 'install 'remove-go-references (add-after 'install 'remove-go-references
(assoc-ref go:%standard-phases 'remove-go-references))))) (assoc-ref go:%standard-phases 'remove-go-references)))))
(inputs (inputs
`(("btrfs-progs" ,btrfs-progs) (list btrfs-progs
("containerd" ,containerd) ; for containerd-shim containerd ; for containerd-shim
("coreutils" ,coreutils) coreutils
("dbus" ,dbus) dbus
("docker-proxy" ,docker-libnetwork-cmd-proxy) docker-libnetwork-cmd-proxy
("e2fsprogs" ,e2fsprogs) e2fsprogs
("git" ,git) git
("iproute2" ,iproute) iproute
("iptables" ,iptables) iptables
("kmod" ,kmod) kmod
("libseccomp" ,libseccomp) libseccomp
("pigz" ,pigz) pigz
("procps" ,procps) procps
("runc" ,runc) runc
("util-linux" ,util-linux) util-linux
("lvm2" ,lvm2) lvm2
("tini" ,tini) tini
("xfsprogs" ,xfsprogs) xfsprogs
("xz" ,xz))) xz))
(native-inputs (native-inputs
(list eudev ; TODO: Should be propagated by lvm2 (.pc -> .pc) (list eudev ; TODO: Should be propagated by lvm2 (.pc -> .pc)
go-1.14 gotestsum pkg-config)) go gotestsum pkg-config))
(synopsis "Docker container component library, and daemon") (synopsis "Container component library and daemon")
(description "This package provides a framework to assemble specialized (description "This package provides a framework to assemble specialized
container systems. It includes components for orchestration, image container systems. It includes components for orchestration, image
management, secret management, configuration management, networking, management, secret management, configuration management, networking,
@ -600,13 +597,13 @@ provisioning etc.")
(version %docker-version) (version %docker-version)
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/docker/cli") (url "https://github.com/docker/cli")
(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 "1asapjj8brvbkd5irgdq82fx1ihrc14qaq30jxvjwflfm5yb7lv0")))) (base32 "0ksicj4iqvgp9jabd4xmhkf3vax6dwn4f5dsr73bdqj4mf3ahav0"))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
`(#:import-path "github.com/docker/cli" `(#:import-path "github.com/docker/cli"
@ -626,21 +623,20 @@ provisioning etc.")
;; Make build reproducible. ;; Make build reproducible.
(setenv "BUILDTIME" "1970-01-01 00:00:01.000000000+00:00") (setenv "BUILDTIME" "1970-01-01 00:00:01.000000000+00:00")
(symlink "src/github.com/docker/cli/scripts" "./scripts") (symlink "src/github.com/docker/cli/scripts" "./scripts")
(symlink "src/github.com/docker/cli/docker.Makefile" "./docker.Makefile") (symlink "src/github.com/docker/cli/docker.Makefile" "./docker.Makefile")))
#t))
(replace 'build (replace 'build
(lambda _ (lambda _
(invoke "./scripts/build/dynbinary"))) (setenv "GO_LINKMODE" "dynamic")
(invoke "./scripts/build/binary")))
(replace 'check (replace 'check
(lambda* (#:key make-flags tests? #:allow-other-keys) (lambda* (#:key make-flags tests? #:allow-other-keys)
(setenv "PATH" (string-append (getcwd) "/build:" (getenv "PATH"))) (setenv "PATH" (string-append (getcwd) "/build:" (getenv "PATH")))
(if tests? (when tests?
;; Use the newly-built docker client for the tests. ;; Use the newly-built docker client for the tests.
(with-directory-excursion "src/github.com/docker/cli" (with-directory-excursion "src/github.com/docker/cli"
;; TODO: Run test-e2e as well? ;; TODO: Run test-e2e as well?
(apply invoke "make" "-f" "docker.Makefile" "test-unit" (apply invoke "make" "-f" "docker.Makefile" "test-unit"
(or make-flags '()))) (or make-flags '()))))))
#t)))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
@ -653,8 +649,7 @@ provisioning etc.")
(string-append etc "/fish/completions")) (string-append etc "/fish/completions"))
(install-file "zsh/_docker" (install-file "zsh/_docker"
(string-append etc "/zsh/site-functions"))) (string-append etc "/zsh/site-functions")))
(install-file "build/docker" out-bin) (install-file "build/docker" out-bin)))))))
#t))))))
(native-inputs (native-inputs
(list go libltdl pkg-config)) (list go libltdl pkg-config))
(synopsis "Command line interface to Docker") (synopsis "Command line interface to Docker")

View File

@ -579,7 +579,7 @@ a pen-tablet display and a beamer.")
(define-public fet (define-public fet
(package (package
(name "fet") (name "fet")
(version "6.2.2") (version "6.5.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -588,20 +588,21 @@ 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 "1x8m543n88iqprh4zccx1zcfm20balmh0h6syrbv03cszmkvfw07")))) (base32 "030njv53azzw6fn2d5mkxn7hyvyb45yss2y49wxb8bgj3ayv1rgp"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases (list
(modify-phases %standard-phases #:phases
(add-after 'unpack 'fix-hardcoded-directories #~(modify-phases %standard-phases
(lambda* (#:key outputs #:allow-other-keys) (add-after 'unpack 'fix-hardcoded-directories
(substitute* (list "fet.pro" (lambda _
"src/src.pro" (substitute* (list "fet.pro"
"src/src-cl.pro" "src/src.pro"
"src/interface/fet.cpp") "src/src-cl.pro"
(("/usr") (assoc-ref outputs "out"))))) "src/interface/fet.cpp")
(replace 'configure (("/usr") #$output))))
(lambda _ (invoke "qmake" "fet.pro")))))) (replace 'configure
(lambda _ (invoke "qmake" "fet.pro"))))))
(inputs (inputs
(list qtbase)) (list qtbase))
(home-page "https://www.lalescu.ro/liviu/fet/") (home-page "https://www.lalescu.ro/liviu/fet/")

View File

@ -114,6 +114,7 @@
;;; Copyright © 2022 Luis Felipe López Acevedo <luis.felipe.la@protonmail.com> ;;; Copyright © 2022 Luis Felipe López Acevedo <luis.felipe.la@protonmail.com>
;;; Copyright © 2022 Thomas Albers Raviola <thomas@thomaslabs.org> ;;; Copyright © 2022 Thomas Albers Raviola <thomas@thomaslabs.org>
;;; Copyright © 2022 Haider Mirza <haider@haider.gq> ;;; Copyright © 2022 Haider Mirza <haider@haider.gq>
;;; Copyright © 2022 Jose G Perez Taveras <josegpt27@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -778,10 +779,10 @@ information in the mode line.")
(method url-fetch) (method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/project-" version ".tar")) (uri (string-append "https://elpa.gnu.org/packages/project-" version ".tar"))
(sha256 (sha256
(base32 "1x3zkbjsi04v5ny3yxqrb75vcacrj9kxmpm9mvkp0n07j5g34f68")))) (base32 "0q2js8qihlhchpx2mx0f992ygslsqri2q4iv8kcl4fx31lpp7c1k"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (list emacs-xref)) (propagated-inputs (list emacs-xref))
(home-page "http://elpa.gnu.org/packages/project.html") (home-page "https://elpa.gnu.org/packages/project.html")
(synopsis "Operations on the current project") (synopsis "Operations on the current project")
(description (description
"This library contains generic infrastructure for dealing with projects, "This library contains generic infrastructure for dealing with projects,
@ -1627,92 +1628,99 @@ replacement.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-haskell-mode (define-public emacs-haskell-mode
(package (let ((revision "0")
(name "emacs-haskell-mode") (commit "5a9f8072c7b9168f0a8409adf9d62a3e4ad4ea3d"))
(version "17.2") (package
(source (name "emacs-haskell-mode")
(origin (version (git-version "17.2" revision commit))
(method git-fetch) (source
(uri (git-reference (origin
(url "https://github.com/haskell/haskell-mode") (method git-fetch)
(commit version))) (uri (git-reference
(file-name (git-file-name name version)) (url "https://github.com/haskell/haskell-mode")
(sha256 (commit commit)))
(base32 "0zxbacqzr84krmhqpvzndnvlcjh1gs1x20ys0dykgd7chyhci5j5")))) (file-name (git-file-name name version))
(propagated-inputs (sha256
(list emacs-dash)) (base32 "0np1wrwdq7b9hpqpl9liampacnkx6diphyk8h2sbz2mfn9qr7pxs"))))
(native-inputs (propagated-inputs
(list emacs-minimal emacs-el-search emacs-stream texinfo)) (list emacs-dash))
(build-system gnu-build-system) (native-inputs
(arguments (list emacs-minimal emacs-el-search emacs-stream texinfo))
(list (build-system gnu-build-system)
#:make-flags #~(list (arguments
(string-append "EMACS=" #$emacs-minimal "/bin/emacs")) (list
#:modules `((ice-9 match) #:make-flags #~(list
(srfi srfi-26) (string-append "EMACS=" #$emacs-minimal "/bin/emacs"))
((guix build emacs-build-system) #:prefix emacs:) #:modules `((ice-9 match)
,@%gnu-build-system-modules) (srfi srfi-26)
#:imported-modules `(,@%gnu-build-system-modules ((guix build emacs-build-system) #:prefix emacs:)
(guix build emacs-build-system) ,@%gnu-build-system-modules)
(guix build emacs-utils)) #:imported-modules `(,@%gnu-build-system-modules
#:phases (guix build emacs-build-system)
#~(modify-phases %standard-phases (guix build emacs-utils))
(delete 'configure) #:phases
(add-before 'build 'pre-build #~(modify-phases %standard-phases
(lambda* (#:key inputs #:allow-other-keys) (delete 'configure)
(define (el-dir store-dir) (add-before 'build 'pre-build
(match (find-files store-dir "\\.el$") (lambda* (#:key inputs #:allow-other-keys)
((f1 f2 ...) (dirname f1)) (define (el-dir store-dir)
(_ ""))) (match (find-files store-dir "\\.el$")
((f1 f2 ...) (dirname f1))
(_ "")))
(let ((sh (search-input-file inputs "/bin/sh"))) (let ((sh (search-input-file inputs "/bin/sh")))
(define emacs-prefix? (cut string-prefix? "emacs-" <>)) (define emacs-prefix? (cut string-prefix? "emacs-" <>))
(setenv "SHELL" "sh") (setenv "SHELL" "sh")
(setenv "EMACSLOADPATH" (setenv "EMACSLOADPATH"
(string-concatenate (string-concatenate
(map (match-lambda (map (match-lambda
(((? emacs-prefix? name) . dir) (((? emacs-prefix? name) . dir)
(string-append (el-dir dir) ":")) (string-append (el-dir dir) ":"))
(_ "")) (_ ""))
inputs))) inputs)))
(substitute* (find-files "." "\\.el") (("/bin/sh") sh))))) (substitute* (find-files "." "\\.el") (("/bin/sh") sh)))))
(add-before 'check 'delete-failing-tests (add-before 'check 'delete-failing-tests
;; XXX: these tests require GHC executable, which would be a big ;; XXX: these tests require GHC executable, which would be a big
;; native input. ;; native input.
(lambda _ (lambda _
(with-directory-excursion "tests" (with-directory-excursion "tests"
;; File `haskell-indent-tests.el' fails with ;; File `haskell-indent-tests.el' fails with
;; `haskell-indent-put-region-in-literate-2' ;; `haskell-indent-put-region-in-literate-2'
;; on Emacs 27.1+ ;; on Emacs 27.1+
;; XXX: https://github.com/haskell/haskell-mode/issues/1714 ;; XXX: https://github.com/haskell/haskell-mode/issues/1714
(for-each delete-file (for-each delete-file
'("haskell-indent-tests.el" '("haskell-indent-tests.el"
"haskell-customize-tests.el" "haskell-customize-tests.el"
"inferior-haskell-tests.el"))))) "inferior-haskell-tests.el"))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(el-dir (emacs:elpa-directory out))
(doc (string-append
out "/share/doc/haskell-mode-" #$version))
(info (string-append out "/share/info")))
(define (copy-to-dir dir files)
(for-each (lambda (f)
(install-file f dir))
files))
(with-directory-excursion "doc" ;; requires many external tools (e.g. git, hasktags)
(invoke "makeinfo" "haskell-mode.texi") (substitute* "haskell-mode-tests.el"
(install-file "haskell-mode.info" info)) (("\\(ert-deftest haskell-generate-tags.*" all)
(copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md")) (string-append all " (skip-unless nil)"))))))
(copy-to-dir el-dir (find-files "." "\\.elc?")))))))) (replace 'install
(home-page "https://github.com/haskell/haskell-mode") (lambda* (#:key outputs #:allow-other-keys)
(synopsis "Haskell mode for Emacs") (let* ((out (assoc-ref outputs "out"))
(description (el-dir (emacs:elpa-directory out))
"This is an Emacs mode for editing, debugging and developing Haskell (doc (string-append
out "/share/doc/haskell-mode-" #$version))
(info (string-append out "/share/info")))
(define (copy-to-dir dir files)
(for-each (lambda (f)
(install-file f dir))
files))
(with-directory-excursion "doc"
(invoke "makeinfo" "haskell-mode.texi")
(install-file "haskell-mode.info" info))
(copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
(copy-to-dir el-dir (find-files "." "\\.elc?"))))))))
(home-page "https://github.com/haskell/haskell-mode")
(synopsis "Haskell mode for Emacs")
(description
"This is an Emacs mode for editing, debugging and developing Haskell
programs.") programs.")
(license license:gpl3+))) (license license:gpl3+))))
(define-public emacs-dante (define-public emacs-dante
(let ((commit "38b589417294c7ea44bf65b73b8046d950f9531b") (let ((commit "38b589417294c7ea44bf65b73b8046d950f9531b")
@ -1746,47 +1754,44 @@ supports type hints, definition-jumping, completion, and more.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-flycheck (define-public emacs-flycheck
;; Last release version was more than 500 commits ago. (package
(let ((commit "9bcf6b665e15db94870bebc81dc8248c3eec20d3") (name "emacs-flycheck")
(revision "2")) (version "32")
(package (source
(name "emacs-flycheck") (origin
(version (git-version "31" revision commit)) (method git-fetch)
(source (uri (git-reference
(origin (url "https://github.com/flycheck/flycheck/")
(method git-fetch) (commit version)))
(uri (git-reference (sha256
(url "https://github.com/flycheck/flycheck/") (base32 "0dx6wqxz1yfp4shas4yn6abqc8bz21ks3glcyzznm3xspjdaq21s"))
(commit commit))) (file-name (git-file-name name version))))
(sha256 (build-system emacs-build-system)
(base32 "015ixss5bjr7gvhj8mkw5x2x1hy6fvvsjarr2xpv0gskkkngs7pg")) (propagated-inputs
(file-name (git-file-name name version)))) (list emacs-dash))
(build-system emacs-build-system) (native-inputs
(propagated-inputs (list emacs-shut-up))
(list emacs-dash)) (arguments
(native-inputs (list
(list emacs-shut-up)) #:phases
(arguments #~(modify-phases %standard-phases
(list (add-after 'unpack 'change-flycheck-version
#:phases (lambda _
#~(modify-phases %standard-phases (substitute* "flycheck.el"
(add-after 'unpack 'change-flycheck-version (("\\(pkg-info-version-info 'flycheck\\)")
(lambda _ (string-append "\"" #$version "\""))))))
(substitute* "flycheck.el" ;; TODO: many failing tests
(("\\(pkg-info-version-info 'flycheck\\)") #:tests? #f
(string-append "\"" #$version "\"")))))) #:test-command
;; TODO: many failing tests #~(list "emacs" "-Q" "--batch"
#:tests? #f "-L" "."
#:test-command "--load" "test/flycheck-test"
#~(list "emacs" "-Q" "--batch" "--load" "test/run.el"
"-L" "." "-f" "flycheck-run-tests-main")))
"--load" "test/flycheck-test" (home-page "https://www.flycheck.org")
"--load" "test/run.el" (synopsis "On-the-fly syntax checking")
"-f" "flycheck-run-tests-main"))) (description
(home-page "https://www.flycheck.org") "This package provides on-the-fly syntax checking for GNU Emacs. It is a
(synopsis "On-the-fly syntax checking")
(description
"This package provides on-the-fly syntax checking for GNU Emacs. It is a
replacement for the older Flymake extension which is part of GNU Emacs, with replacement for the older Flymake extension which is part of GNU Emacs, with
many improvements and additional features. many improvements and additional features.
@ -1794,7 +1799,7 @@ Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
checking for over 30 programming and markup languages with more than 70 checking for over 30 programming and markup languages with more than 70
different tools. It highlights errors and warnings inline in the buffer, and different tools. It highlights errors and warnings inline in the buffer, and
provides an optional IDE-like error list.") provides an optional IDE-like error list.")
(license license:gpl3+)))) ;+GFDLv1.3+ for the manual (license license:gpl3+))) ;+GFDLv1.3+ for the manual
(define-public emacs-flymake-flycheck (define-public emacs-flymake-flycheck
(package (package
@ -2571,14 +2576,14 @@ directories or regex patterns.")
(define-public emacs-bbdb (define-public emacs-bbdb
(package (package
(name "emacs-bbdb") (name "emacs-bbdb")
(version "3.2.1") (version "3.2.2.2")
(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/"
"bbdb-" version ".tar")) "bbdb-" version ".tar"))
(sha256 (sha256
(base32 "01vsnifs47krq1srgdkk9agbv3p2fykl9nydr4nrfjxbqpnyh3ij")))) (base32 "0bf20r5xhxln6z4qp8zrlln0303dkci2ydsr74pxcj08aqgk5xxf"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
;; XXX: The following file cannot be byte-compiled, because et requires ;; XXX: The following file cannot be byte-compiled, because et requires
@ -2897,14 +2902,14 @@ as a library for other Emacs packages.")
(define-public emacs-auctex (define-public emacs-auctex
(package (package
(name "emacs-auctex") (name "emacs-auctex")
(version "13.1.1") (version "13.1.3")
(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/"
"auctex-" version ".tar")) "auctex-" version ".tar"))
(sha256 (sha256
(base32 "193sqq2wiq3lg99m8hifl9rjxdazpy638r99sqvmxmkfm98cr34r")))) (base32 "0v9rxwz6ngnwrgvzgdki861s136gq30lqhy2gcd9q0a36gb6zhwk"))))
(build-system emacs-build-system) (build-system emacs-build-system)
;; We use 'emacs' because AUCTeX requires dbus at compile time ;; We use 'emacs' because AUCTeX requires dbus at compile time
;; ('emacs-minimal' does not provide dbus). ;; ('emacs-minimal' does not provide dbus).
@ -6778,6 +6783,37 @@ tupfiles, such as rule definitions, user-defined variables, macros, flags, bin
variables, and so on. The mode also allows you to execute Tup commands.") variables, and so on. The mode also allows you to execute Tup commands.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-compat
(package
(name "emacs-compat")
(version "28.1.1.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.sr.ht/~pkal/compat")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"19abp29rnbkw91q0h2yqm2z7awzzjhci8h6v875g5ahvplrp6337"))))
(build-system emacs-build-system)
(propagated-inputs (list emacs-nadvice))
(home-page "https://git.sr.ht/~pkal/compat")
(synopsis "Emacs Lisp Compatibility Library")
(description
"To allow for the usage of Emacs functions and macros that are defined
in newer versions of Emacs, @code{compat.el} provides definitions that
are installed ONLY if necessary. These reimplementations of functions
and macros are at least subsets of the actual implementations. Be
sure to read the documentation string to make sure.
Not every function provided in newer versions of Emacs is provided
here. Some depend on new features from the core, others cannot be
implemented to a meaningful degree. The main audience for this
library are not regular users, but package maintainers. Therefore
commands and user options are usually not implemented here.")
(license license:gpl3+)))
(define-public emacs-company (define-public emacs-company
(package (package
(name "emacs-company") (name "emacs-company")
@ -7797,8 +7833,39 @@ using @code{python-isort}.")
(base32 (base32
"1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1")))) "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(native-inputs (arguments
(list emacs-mocker)) (list
#:imported-modules `(,@%emacs-build-system-modules
(guix build python-build-system))
#:modules '((guix build emacs-build-system)
((guix build python-build-system) #:prefix python:)
(guix build emacs-utils)
(guix build utils))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'ensure-no-mtimes-pre-1980
(assoc-ref python:%standard-phases
'ensure-no-mtimes-pre-1980))
(add-after 'ensure-no-mtimes-pre-1980 'relax-python-requirements
(lambda _
;; Argparse should only be required for Python < 3.2
;; (see: https://github.com/tkf/emacs-jedi/issues/365).
(substitute* "setup.py"
((".*argparse.*") ""))))
(add-after 'relax-python-requirements 'python:add-install-to-pythonpath
(assoc-ref python:%standard-phases 'add-install-to-pythonpath))
(add-after 'python:add-install-to-pythonpath 'python:install
;; This is needed to get the Python-built 'jediepcserver' command.
(assoc-ref python:%standard-phases 'install))
(add-after 'python:install 'python:wrap
(assoc-ref python:%standard-phases 'wrap))
(add-after 'python:wrap 'patch-jedi:server-command
(lambda* (#:key outputs #:allow-other-keys)
(emacs-substitute-variables "jedi-core.el"
("jedi:server-command"
(search-input-file outputs "bin/jediepcserver"))))))))
(native-inputs (list emacs-mocker python-wrapper))
(inputs (list python-wrapper python-epc python-jedi)) ;wrapped
(propagated-inputs (propagated-inputs
(list emacs-auto-complete emacs-python-environment emacs-epc)) (list emacs-auto-complete emacs-python-environment emacs-epc))
(home-page "https://github.com/tkf/emacs-jedi") (home-page "https://github.com/tkf/emacs-jedi")
@ -8499,7 +8566,7 @@ variants.")
(define-public emacs-solarized-theme (define-public emacs-solarized-theme
(package (package
(name "emacs-solarized-theme") (name "emacs-solarized-theme")
(version "1.3.1") (version "2.0.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -8508,7 +8575,7 @@ variants.")
(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 "15ql8xcixgm7mbs7rsbybwszanqibq057j5b5ds89a31dw7zxf1g")))) (base32 "17z6cj8ids88xj2i6zs1s0mxs0fhn3gr7g5nhhy8s8khnzmyy2vj"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
(list emacs-dash)) (list emacs-dash))
@ -8834,7 +8901,7 @@ them easier to distinguish from other, less important buffers.")
(define-public emacs-embark (define-public emacs-embark
(package (package
(name "emacs-embark") (name "emacs-embark")
(version "0.16") (version "0.17")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -8842,7 +8909,7 @@ them easier to distinguish from other, less important buffers.")
(url "https://github.com/oantolin/embark") (url "https://github.com/oantolin/embark")
(commit version))) (commit version)))
(sha256 (sha256
(base32 "04xxwhh577aam0fqfmprxqaw0v1l6yidikr6chajcf16mf1wd2gv")) (base32 "1s0ssf4q9kg4c5w87h2ypyvrhi31mz3s6k4h7pxi9a47lkccq8n1"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
@ -8952,7 +9019,7 @@ style, or as multiple word prefixes.")
(define-public emacs-consult (define-public emacs-consult
(package (package
(name "emacs-consult") (name "emacs-consult")
(version "0.17") (version "0.18")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -8960,9 +9027,10 @@ style, or as multiple word prefixes.")
(url "https://github.com/minad/consult") (url "https://github.com/minad/consult")
(commit version))) (commit version)))
(sha256 (sha256
(base32 "08l3h7b5j1q9nwcq660667b245qspl20ikhfdvd9k3g3n2p6p5kz")) (base32 "0sy4rn1vjk1g50r8z14hzj8lds6s7ij2zkjqfi6mfash5il75wnq"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (list emacs-compat))
(home-page "https://github.com/minad/consult") (home-page "https://github.com/minad/consult")
(synopsis "Consulting completing-read") (synopsis "Consulting completing-read")
(description "This package provides various handy commands based on the (description "This package provides various handy commands based on the
@ -9018,6 +9086,27 @@ replaced with the directory you choose.")
and present results either as single emails or full trees.") and present results either as single emails or full trees.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-consult-eglot
(package
(name "emacs-consult-eglot")
(version "0.2.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mohkale/consult-eglot")
(commit (string-append "v" version))))
(sha256
(base32 "1qxk1npxbf8m3g9spikgdxcf6mzjx6cwy3f5vn6zz5ksh14xw3sd"))
(file-name (git-file-name name version))))
(build-system emacs-build-system)
(propagated-inputs (list emacs-consult emacs-eglot))
(home-page "https://github.com/mohkale/consult-eglot")
(synopsis "Consulting-read interface for eglot")
(description "This package acts as a parallel of consult-lsp for eglot and
provides a front-end interface for the workspace/symbols LSP procedure
call.")
(license license:gpl3+)))
(define-public emacs-marginalia (define-public emacs-marginalia
(package (package
(name "emacs-marginalia") (name "emacs-marginalia")
@ -9071,6 +9160,35 @@ features found in other packages it also brings many improvements as
well as completely new features.") well as completely new features.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-dumbparens
;; There are no releases.
(let ((commit "18b668772f25e5f7b62c0a000b8169eaf7515057")
(revision "0"))
(package
(name "emacs-dumbparens")
(version (git-version "0" revision commit))
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/raxod502/dumbparens")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0xv2yzjzq2450z007jppf86knnwzb2s3sxvqyk1yp6qs9mgrmnyp"))))
(build-system emacs-build-system)
(arguments
(list
#:tests? #t
#:test-command #~(list "make" "test")))
(home-page "https://github.com/raxod502/dumbparens/")
(synopsis "Minor mode that provides improvements on Smartparens")
(description
"@code{emacs-dumbparens} is a minor mode for Emacs that deals with parens
pairs and doesn't try to be smart about it.")
(license license:expat))))
(define-public emacs-highlight-symbol (define-public emacs-highlight-symbol
;; We prefer a more recent commit that provides an option to squelch ;; We prefer a more recent commit that provides an option to squelch
;; echo-area alerts that can drown out useful information like eldoc ;; echo-area alerts that can drown out useful information like eldoc
@ -9982,8 +10100,9 @@ state and will work even without lispy being enabled.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-lpy (define-public emacs-lpy
(let ((commit "43b401fe15f0f0d01edb189378b9498121e9f766") ;; There is no proper release/tag.
(revision "3")) (let ((commit "076ce9acb68f6ac1b39127b634a91ffd865d13d8")
(revision "4"))
(package (package
(name "emacs-lpy") (name "emacs-lpy")
(version (git-version "0.1.0" revision commit)) (version (git-version "0.1.0" revision commit))
@ -9995,7 +10114,7 @@ state and will work even without lispy being enabled.")
(commit commit))) (commit commit)))
(sha256 (sha256
(base32 (base32
"0xj1r7cn1rivaxhvawvmgx9fg3xilpfw4lkf2x2aqplr4s85ijas")) "10sab50wmr3zn7jgzx93201ymhmacqacn3m2qllsqkfw2gpsi6dn"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(propagated-inputs (propagated-inputs
(list emacs-zoutline emacs-lispy)) (list emacs-zoutline emacs-lispy))
@ -11575,7 +11694,7 @@ Emacs.")
(define-public emacs-web-mode (define-public emacs-web-mode
(package (package
(name "emacs-web-mode") (name "emacs-web-mode")
(version "17") (version "17.2.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -11584,7 +11703,7 @@ Emacs.")
(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 "0jr5a1nzp8nbdng0k2fcaymiiv9ngrbknbrqaswgqn3akvx793jk")))) (base32 "0sd2ysysn8x4iwz2fhnvh8knr3pdqgkvhkhsl948smmfl0dwj42f"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(synopsis "Major mode for editing web templates") (synopsis "Major mode for editing web templates")
(description "Web mode is an Emacs major mode for editing web templates (description "Web mode is an Emacs major mode for editing web templates
@ -16006,8 +16125,8 @@ which avoids some of the issues with using Emacss built-in Url library.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-ement (define-public emacs-ement
(let ((commit "c951737dc855604aba389166bb0e7366afadc533") (let ((commit "45b7882c8a8f28eb59113f78db0e79918f2c58ee")
(revision "1")) (revision "2"))
(package (package
(name "emacs-ement") (name "emacs-ement")
(version (git-version "0.1-pre" revision commit)) (version (git-version "0.1-pre" revision commit))
@ -16019,12 +16138,15 @@ which avoids some of the issues with using Emacss built-in Url library.")
(commit commit))) (commit commit)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "00iwwz4hzg4g59wrb5df6snqz3ppvrsadhfp61w1pa8gvg2z9bvy")))) (base32 "1f79h9l7chazan7kh2g73banqim5p4gz2nyx3cvp9jjfz32c4k46"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
`(#:emacs ,emacs)) ;need libxml support `(#:emacs ,emacs)) ;need libxml support
(propagated-inputs (propagated-inputs
(list emacs-plz emacs-ts)) (list emacs-plz
emacs-svg-lib
emacs-taxy
emacs-ts))
(home-page "https://github.com/alphapapa/ement.el") (home-page "https://github.com/alphapapa/ement.el")
(synopsis "Matrix client for Emacs") (synopsis "Matrix client for Emacs")
(description "Ement.el is a Matrix client for Emacs.") (description "Ement.el is a Matrix client for Emacs.")
@ -16359,8 +16481,8 @@ key. Optionally, a mouse pop-up can be added by binding
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-idris-mode (define-public emacs-idris-mode
(let ((commit "b77eadd8ac2048d5c882b4464bd9673e45dd6a59") (let ((commit "9bc7697406f719258d93835df3c1761efbfecaa7")
(revision "0")) (revision "1"))
(package (package
(name "emacs-idris-mode") (name "emacs-idris-mode")
(version (git-version "1.0" revision commit)) (version (git-version "1.0" revision commit))
@ -16373,7 +16495,7 @@ key. Optionally, a mouse pop-up can be added by binding
(file-name (git-file-name name commit)) (file-name (git-file-name name commit))
(sha256 (sha256
(base32 (base32
"1v8av6jza1j00ln75zjwaca0vmmv0fhhhi94p84rlfzgzykyb9g1")))) "1d1f7kx0fw632js7qd1sra5wbpwyamcqs5wpzhyynmr5ybb0vyl7"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
(list emacs-prop-menu)) (list emacs-prop-menu))
@ -26600,14 +26722,14 @@ well as an option for visually flashing evaluated s-expressions.")
(define-public emacs-tramp (define-public emacs-tramp
(package (package
(name "emacs-tramp") (name "emacs-tramp")
(version "2.5.2.2") (version "2.5.2.5")
(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/"
"tramp-" version ".tar")) "tramp-" version ".tar"))
(sha256 (sha256
(base32 "104nn6xdmcviqqv4cx5llhwj1sh4q04w3h9s8gimmi2kg0z8s36r")))) (base32 "05f59x7jl4m187y2cidhnfz7p8q85gav4xpipazfvm5dicxz4j7c"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
(list (list
@ -27248,7 +27370,7 @@ it forcibly
(define-public emacs-elpher (define-public emacs-elpher
(package (package
(name "emacs-elpher") (name "emacs-elpher")
(version "3.3.3") (version "3.4.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -27257,7 +27379,7 @@ it forcibly
(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 "166fjq9d883hifa35zklyjrm4c575nd6zxdx7akbwibrgwi65bl0")))) (base32 "0dv71zc95m5sa4824vk3d1xk726nh2v50i0yp6w3ydfzzsfph6j6"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
(list (list
@ -31029,7 +31151,7 @@ and preferred services can easily be configured.")
(define-public emacs-vertico (define-public emacs-vertico
(package (package
(name "emacs-vertico") (name "emacs-vertico")
(version "0.23") (version "0.24")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -31038,7 +31160,7 @@ and preferred services can easily be configured.")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1lyvnpqplwdawlplriz0rphsjsaqdcbc3nwzpd7bs9qghpsfb56z")))) (base32 "03p9rf80jnralxpydvxi88igs0r6qa6v41xf1fafwgsf235b49yi"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -31205,6 +31327,30 @@ to the @url{https://multitran.com} online dictionary.")
@command{python} buffers.") @command{python} buffers.")
(license license:gpl3))) (license license:gpl3)))
(define-public emacs-code-cells
;; No tagged release upstream
(let ((commit "8660bdeedee360e5eb632f1eb1356eb09d7dfbee")
(revision "0"))
(package
(name "emacs-code-cells")
(version (git-version "0.2" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/astoff/code-cells.el")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0mvfsdlhc3znc0d2p8vm7apkbpvbs688wmwvd0sms33qly53f546"))))
(build-system emacs-build-system)
(home-page "https://github.com/astoff/code-cells.el")
(synopsis "Emacs utilities for code split into cells, including Jupyter
notebooks")
(description "This package lets you efficiently navigate, edit and
execute code split into cells according to certain magic comments.")
(license license:gpl3+))))
(define-public emacs-kibit-helper (define-public emacs-kibit-helper
(package (package
(name "emacs-kibit-helper") (name "emacs-kibit-helper")
@ -31398,14 +31544,14 @@ are prefixed with @code{seq-} and work on lists, strings, and vectors.")
(define-public emacs-setup (define-public emacs-setup
(package (package
(name "emacs-setup") (name "emacs-setup")
(version "1.2.0") (version "1.3.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/setup-" (uri (string-append "https://elpa.gnu.org/packages/setup-"
version ".tar")) version ".tar"))
(sha256 (sha256
(base32 "1fyzkm42gsvsjpk3vahfb7asfldarixm0wsw3g66q3ad0r7cbjnz")))) (base32 "0r13ry73jm31j8fq7v1sh0k113fr4blfkiz85696bdpah2pnca87"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(home-page "https://git.sr.ht/~pkal/setup") (home-page "https://git.sr.ht/~pkal/setup")
(synopsis "Helpful configuration macro") (synopsis "Helpful configuration macro")
@ -31565,6 +31711,60 @@ headlines, keywords, tables and source blocks.")
"@code{emacs-pyimport} manages python imports from Emacs via @code{python-pyflakes}.") "@code{emacs-pyimport} manages python imports from Emacs via @code{python-pyflakes}.")
(license license:gpl3+)))) ; License is in pyimport.el (license license:gpl3+)))) ; License is in pyimport.el
(define-public emacs-straight-el
(let ((commit "4517e118ee43f849f708025dbb2cf4f281793121")
(revision "0"))
(package
(name "emacs-straight-el")
(version (git-version "0" revision commit))
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/raxod502/straight.el")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0idhgh203rac9c046286gir9rq0lgnlllzj4b4hrjpd3idg9v0r8"))))
(build-system emacs-build-system)
(arguments
(list
#:tests? #t
#:test-command
#~(list "emacs" "-Q" "--batch"
"-L" "."
"--load" "ert"
"--load" "tests/straight-test.el"
"--eval" "(progn (require 'straight-ert-print-hack) (ert-run-tests-batch-and-exit))")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-git-executable
(lambda* (#:key inputs #:allow-other-keys)
(make-file-writable "straight.el")
(substitute* "straight.el"
(("\"git\"")
(string-append "\""
(search-input-file inputs "/bin/git")
"\"")))))
(add-after 'check 'delete-tests
;; "tests" directory includes bogus ".el" files that can make
;; `patch-el-files' phase fail.
(lambda _
(delete-file-recursively "tests"))))))
(native-inputs
(list texinfo))
(inputs
(list git))
(propagated-inputs
(list emacs-magit))
(home-page "https://github.com/raxod502/straight.el/")
(synopsis "Purely functional package manager for the Emacs hacker")
(description
"@code{emacs-straight-el} is a purely functional package manager for the Emacs
hacker.")
(license license:expat))))
(define-public emacs-osm (define-public emacs-osm
(package (package
(name "emacs-osm") (name "emacs-osm")

View File

@ -106,7 +106,7 @@
;; Make sure Tramp looks for binaries in the right places on ;; Make sure Tramp looks for binaries in the right places on
;; remote Guix System machines, where 'getconf PATH' returns ;; remote Guix System machines, where 'getconf PATH' returns
;; something bogus. ;; something bogus.
(substitute* "net/tramp-sh.el" (substitute* "net/tramp.el"
;; Patch the line after "(defcustom tramp-remote-path". ;; Patch the line after "(defcustom tramp-remote-path".
(("\\(tramp-default-remote-path") (("\\(tramp-default-remote-path")
(format #f "(tramp-default-remote-path ~s ~s ~s ~s " (format #f "(tramp-default-remote-path ~s ~s ~s ~s "

View File

@ -33,6 +33,7 @@
;;; Copyright © 2022 Malte Frank Gerdes <malte.f.gerdes@gmail.com> ;;; Copyright © 2022 Malte Frank Gerdes <malte.f.gerdes@gmail.com>
;;; Copyright © 2022 Konstantinos Agiannis <agiannis.kon@gmail.com> ;;; Copyright © 2022 Konstantinos Agiannis <agiannis.kon@gmail.com>
;;; Copyright © 2022 Greg Hogan <code@greghogan.com> ;;; Copyright © 2022 Greg Hogan <code@greghogan.com>
;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -942,7 +943,7 @@ Emacs).")
(define-public kicad (define-public kicad
(package (package
(name "kicad") (name "kicad")
(version "6.0.5") (version "6.0.6")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -950,7 +951,7 @@ Emacs).")
(commit version))) (commit version)))
(sha256 (sha256
(base32 (base32
"19mg672h1gjdvnkp13cpkhk67xpwms72y4gd6g8983fcsxr8nq23")) "0cb9zba812dlmn2w27s1q38mjpfdwhv0nnbilwsxchpvwg8j4k2j"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
@ -1057,7 +1058,7 @@ electrical diagrams), gerbview (viewing Gerber files) and others.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"190pnrf2cy06wnnskyb4fqj4a4nfmz17i3y79rnrz3j62h3fmg0w")))) "1kxv0j3nx6zn45znrhqq6bdqrsd60mgmgvr1gjv5p8g3cbkkslrx"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:configure-flags (list "-DBUILD_FORMATS=html") `(#:configure-flags (list "-DBUILD_FORMATS=html")
@ -1091,7 +1092,7 @@ electrical diagrams), gerbview (viewing Gerber files) and others.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1dhgdp08ah08fc5nvwkqmgpl2any9vgy1gykmyzsd4dl8hhvznh5")))) "02z3vqhz1rlf57zi8vyrlxvvdl1hpsh447p41qdgcpn5dyjycb9d"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f)) ; no tests exist `(#:tests? #f)) ; no tests exist
@ -1120,7 +1121,7 @@ libraries.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0sxzd4dr1g12ck8b2wsyg9r2s1j3472nksrjrwpzjdyfc8rqbjai")))) "1phynxisha2pq2knbx5l1hkdz1bmjm0qxl3lcb4ab82h8d35r37c"))))
(synopsis "Official KiCad footprint libraries") (synopsis "Official KiCad footprint libraries")
(description "This package contains the official KiCad footprint libraries."))) (description "This package contains the official KiCad footprint libraries.")))
@ -1137,7 +1138,7 @@ libraries.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"00i6mybg3pprzb283b26z5b2g7a8sbghlvc0fwk9gwrp3wz1yqzc")))) "0ci9gxbpfnfqwah95ki4qcwlca78s1z6s7hckisnp58a1cm9siya"))))
(synopsis "Official KiCad 3D model libraries") (synopsis "Official KiCad 3D model libraries")
(description "This package contains the official KiCad 3D model libraries."))) (description "This package contains the official KiCad 3D model libraries.")))
@ -1154,7 +1155,7 @@ libraries.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"13h9ly6amiwm7zkwa2fd9730kh295ls8j95fszlfjp9rczv2yyzm")))) "08zxh83fbygh1x2jhca8nrp3f9kihf7kmg65qmyp95wvps4p5h8v"))))
(synopsis "Official KiCad project and worksheet templates") (synopsis "Official KiCad project and worksheet templates")
(description "This package contains the official KiCad project and (description "This package contains the official KiCad project and
worksheet templates."))) worksheet templates.")))
@ -3169,7 +3170,7 @@ visualization, matrix manipulation.")
(define-public prusa-slicer (define-public prusa-slicer
(package (package
(name "prusa-slicer") (name "prusa-slicer")
(version "2.4.1") (version "2.4.2")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -3178,7 +3179,7 @@ visualization, matrix manipulation.")
(url "https://github.com/prusa3d/PrusaSlicer") (url "https://github.com/prusa3d/PrusaSlicer")
(commit (string-append "version_" version)))) (commit (string-append "version_" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (base32 "0q1m8fcz39s03r9csq411ss8vbbpjx45icj8vgkysy8hqgqz3gz0")) (sha256 (base32 "17p56f0zmiryy8k4da02in1l6yxniz286gf9yz8s1gaz5ksqj4af"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin

View File

@ -44,7 +44,7 @@
(define-public erlang (define-public erlang
(package (package
(name "erlang") (name "erlang")
(version "24.3.4") (version "25.0.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
;; The tarball from http://erlang.org/download contains many ;; The tarball from http://erlang.org/download contains many
@ -56,7 +56,7 @@
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0rrnppglh261x81w9bzmh6wvxy8xjqiiw3nvv4q2214pmc1pxilr")) "0xgp035vy0yy5m155rpmf22m6rq7pvw3m65s5mz22bcpj2rw4b0x"))
(patches (search-patches "erlang-man-path.patch")))) (patches (search-patches "erlang-man-path.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
@ -70,7 +70,7 @@
(version-major+minor version) ".tar.gz")) (version-major+minor version) ".tar.gz"))
(sha256 (sha256
(base32 (base32
"057nrw8563nyd98l5zp9ffi3npw6h3jx06j1hv110wzpxqi25bb8")))))) "17ap4kawlbqmcl13c543gh54p1ng8ivxmbn6lbbij07k81ry5p1y"))))))
(inputs (inputs
(list ncurses openssl wxwidgets)) (list ncurses openssl wxwidgets))
(propagated-inputs (propagated-inputs

View File

@ -1146,7 +1146,7 @@ with the included @command{xfstests-check} helper.")
(define-public zfs (define-public zfs
(package (package
(name "zfs") (name "zfs")
(version "2.1.4") (version "2.1.5")
(outputs '("out" "module" "src")) (outputs '("out" "module" "src"))
(source (source
(origin (origin
@ -1155,7 +1155,7 @@ with the included @command{xfstests-check} helper.")
"/download/zfs-" version "/download/zfs-" version
"/zfs-" version ".tar.gz")) "/zfs-" version ".tar.gz"))
(sha256 (sha256
(base32 "1xmcy4f0damf1pkb1sy1339ir1jkky0dwzd8vhwgc1pqjgac0liv")))) (base32 "0371j5k28cymqngfl76dfxzggvdf8n0ssij37350gzs4bhg084qr"))))
(build-system linux-module-build-system) (build-system linux-module-build-system)
(arguments (arguments
(list (list

View File

@ -212,43 +212,31 @@ Cyrillic, Canadian Syllabics and most Latin based languages are supported.")
(version "0.303") (version "0.303")
(source (source
(origin (origin
(method url-fetch/zipbomb) (method git-fetch)
(uri (string-append "https://gitlab.gnome.org/GNOME/cantarell-fonts/-/" (uri (git-reference
"jobs/1515399/artifacts/download")) (url "https://gitlab.gnome.org/GNOME/cantarell-fonts")
(file-name (string-append name "-" version "-static")) (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 "1dz551xrrhx6l40j57ksk2alllrihghg4947z1r88dpcq3snpn1s")))) (base32
(build-system font-build-system) "1d1ay0fdqchk0wa5yqxis2c98imvzsbbd2kjv0x8sk4fm419847b"))))
(build-system meson-build-system)
(arguments (arguments
`(#:phases (list #:configure-flags #~(list "-Dbuildstatics=true")))
(modify-phases %standard-phases
(add-after 'unpack 'unpack-source
;; The actual OTF fonts are prebuilt (building them requires at least
;; the currently unpackaged psautohint and its numerous dependencies;
;; TODO), but unpack the source so that COPYING is installed later.
(lambda* (#:key outputs #:allow-other-keys)
(invoke "tar" "--strip-components=1" "-xvf"
(string-append "build/meson-dist/cantarell-fonts-"
,version ".tar.xz"))))
(add-after 'unpack 'unpack-variable-font
(lambda* (#:key inputs #:allow-other-keys)
(let ((variable-font (assoc-ref inputs "variable-font")))
(copy-recursively (string-append variable-font "/prebuilt")
".")))))))
(native-inputs (native-inputs
`(("variable-font" (list gettext-minimal
,(origin psautohint
(method url-fetch/zipbomb) python
(uri (string-append "https://gitlab.gnome.org/GNOME/cantarell-fonts/-/" python-cffsubr
"jobs/1515398/artifacts/download")) python-fontmath
(file-name (string-append name "-" version "-variable")) python-statmake
(sha256 python-ufo2ft))
(base32 "0z93pbkxidsx3y98rsl2jm2qpvxv5pj0w870xhnsciglw6pc9a9i"))))
("unzip" ,unzip)))
(home-page "https://wiki.gnome.org/Projects/CantarellFonts") (home-page "https://wiki.gnome.org/Projects/CantarellFonts")
(synopsis "Cantarell sans-serif typeface") (synopsis "Cantarell sans-serif typeface")
(description "The Cantarell font family is a contemporary Humanist (description "The Cantarell font family is a contemporary Humanist
sans-serif designed for on-screen reading. It is used by GNOME@tie{}3.") sans-serif designed for on-screen reading. It is used by GNOME@tie{}3.
This package contains both the non-variable as well as the variable versions
of the font.")
(license license:silofl1.1))) (license license:silofl1.1)))
(define-public font-lato (define-public font-lato

View File

@ -1396,6 +1396,79 @@ generate bitmaps.")
`(("python" ,python-2) `(("python" ,python-2)
,@(alist-delete "python" (package-inputs fontforge)))))) ,@(alist-delete "python" (package-inputs fontforge))))))
(define-public python-statmake
(package
(name "python-statmake")
(version "0.5.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/daltonmaag/statmake")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0qavzspxhwnaayj5mxq6ncjjziggabxj157ls04h2rdrpq167706"))))
(build-system python-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
;; XXX: PEP 517 manual build copied from python-isort.
(add-after 'unpack 'adjust-for-older-attrs
;; Our older attrs package is using the 'attr' rather than 'attrs'
;; namespace.
;; TODO: Remove after python-attrs is updated to >= 21.4.0.
(lambda _
(substitute* "pyproject.toml"
(("attrs = \">=21.3\"")
"attrs = \">=21.2\""))
(substitute* (find-files "." "\\.py$")
(("from attrs\\b")
"from attr")
(("import attrs")
"import attr")
(("@attrs")
"@attr")
(("\\battrs\\.")
"attr."))))
(replace 'build
(lambda _
(invoke "python" "-m" "build" "--wheel" "--no-isolation" ".")))
(replace 'install
(lambda _
(let ((whl (car (find-files "dist" "\\.whl$"))))
(invoke "pip" "--no-cache-dir" "--no-input"
"install" "--no-deps" "--prefix" #$output whl))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "pytest" "-vv" "tests"
;;"-n" (number->string (parallel-job-count))
;; This test requires orjson, which needs the maturin
;; build system and new Rust dependencies.
;;"--ignore" "tests/test_preconf.py"
)))))))
(native-inputs
(list python-poetry-core
python-pypa-build
python-pytest
python-ufo2ft))
(propagated-inputs
(list python-attrs
python-cattrs
python-fonttools))
(home-page "https://github.com/daltonmaag/statmake")
(synopsis "Apply OpenType STAT information to a variable font")
(description
"@command{statmake} takes a user-written Stylespace that defines
@url{https://docs.microsoft.com/en-us/typography/opentype/spec/stat, OpenType
STAT information} for an entire font family and then (potentially subsets and)
applies it to a specific variable font. This spares users from having to deal
with @url{https://github.com/fonttools/fonttools/, raw TTX dumps} and juggling
with @samp{nameIDs}.")
(license license:expat)))
(define-public python-ufolib2 (define-public python-ufolib2
(package (package
(name "python-ufolib2") (name "python-ufolib2")

View File

@ -31,6 +31,7 @@
;;; Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de> ;;; Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de>
;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com> ;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com>
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com> ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2022 muradm <mail@muradm.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -704,6 +705,32 @@ the org.freedesktop.login1 interface over the system bus, allowing other parts
of a the system to know what users are logged in, and where.") of a the system to know what users are logged in, and where.")
(license license:lgpl2.1+))) (license license:lgpl2.1+)))
(define-public basu
(package
(name "basu")
(version "0.2.0")
(home-page "https://git.sr.ht/~emersion/basu")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0h23n7wg18xc7xwldca18wi00iajyliixwicqyvv38qx831d8q18"))))
(build-system meson-build-system)
(native-inputs
(list pkg-config python gperf))
(inputs
(list libcap))
(synopsis "The sd-bus library, extracted from systemd")
(description "Some projects rely on the sd-bus library for DBus support.
However not all systems have systemd or elogind installed.
This library provides just sd-bus (and the busctl utility).")
(license license:lgpl2.1+)))
(define-public localed (define-public localed
;; XXX: This package is extracted from systemd but we retain so little of it ;; XXX: This package is extracted from systemd but we retain so little of it
;; that it would make more sense to maintain a fork of the bits we need. ;; that it would make more sense to maintain a fork of the bits we need.

View File

@ -177,14 +177,14 @@ as required.")
(define-public libfilezilla (define-public libfilezilla
(package (package
(name "libfilezilla") (name "libfilezilla")
(version "0.36.0") (version "0.37.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://download.filezilla-project.org/" (uri (string-append "https://download.filezilla-project.org/"
"libfilezilla/libfilezilla-" version ".tar.bz2")) "libfilezilla/libfilezilla-" version ".tar.bz2"))
(sha256 (sha256
(base32 "0wm8acwbrsblilfwj5asxr26gy8grg175j91df1bryz7xlc1q9y0")))) (base32 "1mg2zqmpkkcimx6kq3a1ab26v515zzxw2s8rwhmajsv4cgp404g5"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
@ -217,14 +217,14 @@ output.
(define-public filezilla (define-public filezilla
(package (package
(name "filezilla") (name "filezilla")
(version "3.58.0") (version "3.60.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://download.filezilla-project.org/client/" (uri (string-append "https://download.filezilla-project.org/client/"
"FileZilla_" version "_src.tar.bz2")) "FileZilla_" version "_src.tar.bz2"))
(sha256 (sha256
(base32 "122x72rvd178y2rffvidyvzr33kf325q2rk4l2x44xqzw1r7zznh")))) (base32 "1bv643abf8jai552j9fqcl4i54h1yrs5hgn6w0w1ibwccdinryc1"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
;; Don't let filezilla phone home to check for updates. ;; Don't let filezilla phone home to check for updates.

View File

@ -1101,6 +1101,14 @@ provides the GNU compiler for the Go programming language."))
(custom-gcc gcc-10 "gcc-objc" '("objc") (custom-gcc gcc-10 "gcc-objc" '("objc")
%objc-search-paths)) %objc-search-paths))
(define-public gcc-objc-11
(custom-gcc gcc-11 "gcc-objc" '("objc")
%objc-search-paths))
(define-public gcc-objc-12
(custom-gcc gcc-12 "gcc-objc" '("objc")
%objc-search-paths))
(define-public gcc-objc gcc-objc-10) (define-public gcc-objc gcc-objc-10)
(define %objc++-search-paths (define %objc++-search-paths
@ -1143,6 +1151,14 @@ provides the GNU compiler for the Go programming language."))
(custom-gcc gcc-10 "gcc-objc++" '("obj-c++") (custom-gcc gcc-10 "gcc-objc++" '("obj-c++")
%objc++-search-paths)) %objc++-search-paths))
(define-public gcc-objc++-11
(custom-gcc gcc-11 "gcc-objc++" '("obj-c++")
%objc++-search-paths))
(define-public gcc-objc++-12
(custom-gcc gcc-12 "gcc-objc++" '("obj-c++")
%objc++-search-paths))
(define-public gcc-objc++ gcc-objc++-10) (define-public gcc-objc++ gcc-objc++-10)
(define (make-libstdc++-doc gcc) (define (make-libstdc++-doc gcc)

View File

@ -18,6 +18,7 @@
;;; Copyright © 2021 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2021 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2021 Nikolay Korotkiy <sikmir@disroot.org> ;;; Copyright © 2021 Nikolay Korotkiy <sikmir@disroot.org>
;;; Copyright © 2022 Roman Scherer <roman.scherer@burningswell.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -113,6 +114,7 @@
#:use-module (gnu packages sqlite) #:use-module (gnu packages sqlite)
#:use-module (gnu packages textutils) #:use-module (gnu packages textutils)
#:use-module (gnu packages time) #:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages web) #:use-module (gnu packages web)
#:use-module (gnu packages webkit) #:use-module (gnu packages webkit)
#:use-module (gnu packages wxwidgets) #:use-module (gnu packages wxwidgets)
@ -914,7 +916,7 @@ development.")
(define-public gdal (define-public gdal
(package (package
(name "gdal") (name "gdal")
(version "3.3.3") (version "3.5.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -922,7 +924,7 @@ development.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0nk09lws1hk873yn5f4wzqfvr82gm4hw3gq8w9g1h0kvf6j5x4i8")) "0h7dgjx8nk3dd17wwqm2yjnaqciyrd2mz9gcjswpcnmap09wbzrs"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
`(begin `(begin
@ -946,27 +948,23 @@ development.")
(string-append option "=" (string-append option "="
(assoc-ref %build-inputs input)))))) (assoc-ref %build-inputs input))))))
(list (list
;; TODO: --with-pcidsk, --with-pcraster ;; TODO: --with-pcidsk, --with-pcraster
(with "--with-freexl" "freexl") (with "--with-expat" "expat")
(with "--with-libjson-c" "json-c") (with "--with-freexl" "freexl")
(with "--with-png" "libpng") (with "--with-geotiff" "libgeotiff")
(with "--with-webp" "libwebp") (with "--with-gif" "giflib")
(with "--with-gif" "giflib") (with "--with-jpeg" "libjpeg-turbo")
(with "--with-jpeg" "libjpeg-turbo") (with "--with-libjson-c" "json-c")
(with "--with-libtiff" "libtiff") (with "--with-libtiff" "libtiff")
(with "--with-geotiff" "libgeotiff") (with "--with-libz" "zlib")
(with "--with-libz" "zlib") (with "--with-png" "libpng")
(with "--with-expat" "expat") (with "--with-sqlite3" "sqlite")
(with "--with-sqlite3" "sqlite") (with "--with-webp" "libwebp")
"--with-pcre")) "--without-jpeg12"
#:phases "--with-pcre"))))
(modify-phases %standard-phases
(add-before 'build 'fix-path
(lambda _
(substitute* "frmts/mrf/mrf_band.cpp"
(("\"../zlib/zlib.h\"") "<zlib.h>")))))))
(inputs (inputs
(list expat (list curl
expat
freexl freexl
geos geos
giflib giflib
@ -977,6 +975,7 @@ development.")
libtiff libtiff
libwebp libwebp
netcdf netcdf
openssl
pcre pcre
postgresql ; libpq postgresql ; libpq
proj proj
@ -1147,6 +1146,7 @@ Shapely capabilities
json-c json-c
libjpeg-turbo libjpeg-turbo
libxml2 libxml2
openssl
pcre pcre
postgresql postgresql
protobuf-c protobuf-c
@ -2485,6 +2485,7 @@ growing set of geoscientific methods.")
"PyQgsProviderConnectionSpatialite" "PyQgsProviderConnectionSpatialite"
"PyQgsPythonProvider" "PyQgsPythonProvider"
"PyQgsRasterLayer" "PyQgsRasterLayer"
"PyQgsRasterResampler"
"PyQgsRulebasedRenderer" "PyQgsRulebasedRenderer"
"PyQgsSelectiveMasking" "PyQgsSelectiveMasking"
"PyQgsSettings" "PyQgsSettings"

View File

@ -17,6 +17,7 @@
;;; Copyright © 2021 Attila Lendvai <attila@lendvai.name> ;;; Copyright © 2021 Attila Lendvai <attila@lendvai.name>
;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com> ;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
;;; Copyright © 2022 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2022 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2022 Sughosha <sughosha@proton.me>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -985,6 +986,102 @@ animation of closing windowed applications.")
GNOME Shell, including the top panel, dash and overview.") GNOME Shell, including the top panel, dash and overview.")
(license license:gpl3))) (license license:gpl3)))
(define-public gnome-shell-extension-radio
(package
(name "gnome-shell-extension-radio")
(version "19")
(source (origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/hslbck/gnome-shell-extension-radio")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1qsi6c57hxh4jqdw18knm06601lhag6jdbvzg0r79aa9572zy8a0"))))
(build-system copy-build-system)
(arguments
(list
#:install-plan #~'(("radio@hslbck.gmail.com"
"/share/gnome-shell/extensions/"))
#:phases
#~(modify-phases %standard-phases
(add-before 'install 'glib-compile-schemas
(lambda _
(invoke "glib-compile-schemas"
"radio@hslbck.gmail.com/schemas"))))))
(native-inputs (list `(,glib "bin")))
(home-page "https://github.com/hslbck/gnome-shell-extension-radio")
(synopsis "Internet radio for GNOME Shell")
(description "This extension implements an internet radio player
directly inside GNOME Shell. It can manage stations and play streams.")
(license license:gpl3+)))
(define-public gnome-shell-extension-sound-output-device-chooser
(package
(name "gnome-shell-extension-sound-output-device-chooser")
(version "43")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/kgshank/gse-sound-output-device-chooser")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1qk6ypyqbv8zwwlky6cgk9hgp1zh32jmzw4wza200g4v94ifkwm9"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ; no check target
#:make-flags #~(list (string-append "INSTALL_DIR="
#$output
"/share/gnome-shell/extensions"))
#:phases
#~(modify-phases %standard-phases (delete 'configure))))
(native-inputs (list gettext-minimal `(,glib "bin")))
(inputs (list python))
(home-page
"https://extensions.gnome.org/extension/906/sound-output-device-chooser")
(synopsis "Sound output chooser for GNOME Shell")
(description "This extension shows a list of sound output and input devices
in the status menu below the volume slider. Various active ports like HDMI,
Speakers etc. of the same device are also displayed for selection.")
(license license:gpl3+)))
(define-public gnome-shell-extension-transparent-window
(let ((commit "cc9bc70c192dd565fa6f1d1b28d9a20f99684f2a")
(revision "45"))
(package
(name "gnome-shell-extension-transparent-window")
(version (git-version "0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url (string-append "https://github.com/pbxqdown/"
"gnome-shell-extension-transparent-window"))
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1f9iqqjpmmylqz0ws8cy5rs475bwzi7jy44q9ip44ig2acz2wxzp"))))
(build-system copy-build-system)
(arguments
(list
#:install-plan
#~'(("."
#$(string-append "/share/gnome-shell/extensions"
"/transparent-window@pbxqdown.github.com")))))
(home-page
"https://github.com/pbxqdown/gnome-shell-extension-transparent-window")
(synopsis "Change the opacity of windows in GNOME Shell")
(description "This extension adds keybindings to change the opacity
of windows.")
(license license:expat))))
(define-public arc-theme (define-public arc-theme
(package (package
(name "arc-theme") (name "arc-theme")

View File

@ -461,8 +461,8 @@ contains supporting code for evaluation and parameter tuning.")
(lambda () (lambda ()
(let ((python-version ,(version-major+minor (package-version python)))) (let ((python-version ,(version-major+minor (package-version python))))
(format #t "\ (format #t "\
PYTHONCFLAGS =-I~a/include/python~am/ -I~a/lib/python~a/site-packages/numpy/core/include PYTHONCFLAGS =-I~a/include/python~a/ -I~a/lib/python~a/site-packages/numpy/core/include
LIBS = -lpython~am -lfaiss LIBS = -lpython~a -lfaiss
SHAREDFLAGS = -shared -fopenmp SHAREDFLAGS = -shared -fopenmp
CXXFLAGS = -fpermissive -fopenmp -fPIC CXXFLAGS = -fpermissive -fopenmp -fPIC
CPUFLAGS = ~{~a ~}~%" CPUFLAGS = ~{~a ~}~%"

View File

@ -30,6 +30,7 @@
;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2022 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2022 Tobias Kortkamp <tobias.kortkamp@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -2054,3 +2055,68 @@ and build scripts for the OpenXR loader.")
such as VR and AR on mobile, PC/desktop, and any other device. Monado aims to be such as VR and AR on mobile, PC/desktop, and any other device. Monado aims to be
a complete and conforming implementation of the OpenXR API made by Khronos.") a complete and conforming implementation of the OpenXR API made by Khronos.")
(license license:boost1.0))) (license license:boost1.0)))
(define-public azpainter
(package
(name "azpainter")
(version "3.0.5")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/azelpg/azpainter")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1iplp3p8pw9q44kb43hrk89sv2aff6bdy9fk58j2v6k5lqbk6kvf"))))
(build-system gnu-build-system) ;actually a home grown build system
(arguments
(list #:tests? #f
#:phases
#~(modify-phases %standard-phases
(replace 'configure
(lambda _
(invoke "./configure"
(string-append "--prefix="
#$output))))
(replace 'build
(lambda* (#:key parallel-build? #:allow-other-keys)
(let ((job-count (if parallel-build?
(number->string (parallel-job-count))
"1")))
(invoke "ninja" "-j" job-count "-C" "build"))))
(add-before 'install 'disable-cache-generation
(lambda _
(setenv "DESTDIR" "/") #t))
(replace 'install
(lambda _
(invoke "ninja" "-C" "build" "install"))))))
(inputs (list fontconfig
freetype
libjpeg-turbo
libpng
libtiff
libwebp
libx11
libxcursor
libxext
libxi
zlib))
(native-inputs (list ninja pkg-config))
(home-page "http://azsky2.html.xdomain.jp/soft/azpainter.html")
(synopsis "Paint software for editing illustrations and images")
(description
"AzPainter is a lightweight full color painting application for editing
illustrations and images.
Features include:
@itemize
@item Layers
@item Many artistic filters
@item Good range of selection tools
@item Pen pressure support with automatic brush size adjustment
@item Support for 16-bit color images with transparency (RGBA)
@item Support for image formats like PSD, PNG, JPEG, TIFF, WebP
@end itemize
")
(license license:gpl3+)))

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012-2022 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012-2022 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 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>
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com> ;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com>
@ -496,34 +496,31 @@ and then run @command{scm example.scm}.")
,@(package-arguments guile2.0-bash))))) ,@(package-arguments guile2.0-bash)))))
(define-public guile-8sync (define-public guile-8sync
(package (let ((commit "183b4f02e68279d4984e79b79e06bfcf1861fcbf") (revision "0"))
(name "guile-8sync") (package
(version "0.4.2") (name "guile-8sync")
(source (origin (version (git-version "0.4.2" revision commit))
(method url-fetch) (source (origin
(uri (string-append "mirror://gnu/8sync/8sync-" version (method git-fetch)
".tar.gz")) (uri (git-reference
(sha256 (commit commit)
(base32 (url "https://git.savannah.gnu.org/git/8sync.git")))
"031wm13srak3wsnll7j2mbbi29g1pcm4swdb71ds9yn567pn20qw")))) (sha256
(build-system gnu-build-system) (base32
(native-inputs (list autoconf automake guile-2.2 pkg-config texinfo)) "0r22kxasv1zqnf1ykzyx6c226qxn1wgjb1gc54526bid24x508ij"))
(arguments (file-name (git-file-name name version))))
`(#:phases (modify-phases %standard-phases (build-system gnu-build-system)
(add-before 'configure 'setenv (native-inputs (list autoconf automake guile-3.0 pkg-config texinfo))
(lambda _ (arguments
;; quiet warnings (list #:make-flags
(setenv "GUILE_AUTO_COMPILE" "0") #~(list "GUILE_AUTO_COMPILE=0")))
#t))))) (home-page "https://gnu.org/s/8sync/")
(home-page "https://gnu.org/s/8sync/") (synopsis "Asynchronous actor model library for Guile")
(synopsis "Asynchronous actor model library for Guile") (description
(description "GNU 8sync (pronounced \"eight-sync\") is an asynchronous programming
"GNU 8sync (pronounced \"eight-sync\") is an asynchronous programming library for GNU Guile based on the actor model.")
library for GNU Guile based on the actor model. (properties '((upstream-name . "8sync")))
(license license:lgpl3+))))
Note that 8sync is only available for Guile 2.2.")
(properties '((upstream-name . "8sync")))
(license license:lgpl3+)))
(define-public guile-daemon (define-public guile-daemon
(package (package
@ -5103,3 +5100,46 @@ Protocol (TAP). It comes with an experimental harness (tap-harness).")
termios API is used. GNU Guile doesn't have an interface for that built in. termios API is used. GNU Guile doesn't have an interface for that built in.
This module implements this interface by use of Guile's dynamic FFI.") This module implements this interface by use of Guile's dynamic FFI.")
(license license:bsd-2))) (license license:bsd-2)))
(define-public guile-goblins
(package
(name "guile-goblins")
(version "0.8")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/spritely/guile-goblins/")
(commit (string-append "v" version))))
(file-name (string-append name "-" version))
(sha256
(base32
"1mmyykh79jwhrfgnhhw94aw7a8m6qw249kj7k60ynj16mcfm5iyy"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags
#~(list "GUILE_AUTO_COMPILE=0")))
(native-inputs
(list autoconf automake pkg-config texinfo))
(inputs (list guile-3.0))
(propagated-inputs
(list guile-fibers guile-gcrypt))
(home-page "https://spritely.institute/goblins")
(synopsis "Distributed programming environment for Guile")
;; In guile-goblins 0.9, OCapN support will be added (it already
;; exists in racket-goblins). At that point we should add the
;; following to this description:
;;
;; Goblins allows for cooperation between networked programs
;; in a mutually suspicious network through OCapN, the Object
;; Capability Network. This includes collaboration across
;; runtimes; for instance, programs written in the Guile and Racket
;; versions of Goblins are able to speak to each other.
(description
"@code{guile-goblins} is the Guile version of
@url{https://spritely.institute/goblins, Spritely Goblins},
a transactional, distributed programming environment following object
capability security designs. Goblins is a general toolkit, and also
the core layer of Spritely's work to support healthy distributed
networked communities.")
(license license:asl2.0)))

View File

@ -650,14 +650,14 @@ specification. These are the main features:
(package (package
(inherit guile-json-3) (inherit guile-json-3)
(name "guile-json") (name "guile-json")
(version "4.5.2") (version "4.7.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://savannah/guile-json/guile-json-" (uri (string-append "mirror://savannah/guile-json/guile-json-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0cqr0ljqmzlc2bwrapcsmcgxg147h66mcxf23824ri5i6vn4dc0s")))))) "0hv8jjb6wdhvfrprwdi36125sci1ip4zfflv79hqlz7nh0irld65"))))))
(define-public guile2.2-json (define-public guile2.2-json
(package-for-guile-2.2 guile-json-4)) (package-for-guile-2.2 guile-json-4))

View File

@ -34,23 +34,34 @@
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages admin) #:use-module (gnu packages admin)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
#:use-module (gnu packages base)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages bison) #:use-module (gnu packages bison)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages cpp) #:use-module (gnu packages cpp)
#:use-module (gnu packages crypto) #:use-module (gnu packages crypto)
#:use-module (gnu packages cups)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages debian)
#:use-module (gnu packages disk)
#:use-module (gnu packages documentation) #:use-module (gnu packages documentation)
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages libusb) #:use-module (gnu packages libusb)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages lxqt) #:use-module (gnu packages lxqt)
#:use-module (gnu packages package-management)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
#:use-module (gnu packages openldap) #:use-module (gnu packages openldap)
#:use-module (gnu packages pciutils) #:use-module (gnu packages pciutils)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
@ -62,8 +73,12 @@
#: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)
#:use-module (gnu packages scanner)
#:use-module (gnu packages security-token)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages video)
#:use-module (gnu packages virtualization) #:use-module (gnu packages virtualization)
#:use-module (gnu packages vulkan)
#:use-module (gnu packages web) #:use-module (gnu packages web)
#:use-module (gnu packages xdisorg) #:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
@ -71,6 +86,7 @@
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system meson) #:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix gexp) #:use-module (guix gexp)
@ -84,7 +100,6 @@
;; This is a module for packages related to physical hardware that don't (yet) ;; This is a module for packages related to physical hardware that don't (yet)
;; have a more specific home like gps.scm, security-token.scm, &c. ;; have a more specific home like gps.scm, security-token.scm, &c.
(define-public envytools (define-public envytools
(let ((commit "9014a51b1436461c7b3b005bdae72bf4912f4e72") (let ((commit "9014a51b1436461c7b3b005bdae72bf4912f4e72")
(revision "1")) (revision "1"))
@ -111,6 +126,195 @@ drivers, including an assembler and a disassembler for several GPU instruction
sets, and tools to deal with register databases.") sets, and tools to deal with register databases.")
(license license:expat)))) (license license:expat))))
(define-public hw-probe
(package
(name "hw-probe")
(version "1.6.4")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/linuxhw/hw-probe")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "028wnhrbn10lfxwmcpzdbz67ygldimv7z1k1bm64ggclykvg5aim"))))
(build-system perl-build-system)
(arguments
(list
#:tests? #f ;no test suite
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-source
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Correct install prefix.
(substitute* "Makefile"
(("/usr") #$output))
(define preserve
;; Either not available in Guix or better left untouched.
'("$HWInfoCmd" "$CurlCmd" "$NvidiaSmi_Path" ;perl variables
"vblank_mode=0" "DRI_PRIME=1" ;environment variables
"sha512" ;fall-back to sha512sum
;; hp-probe comes from the full 'hplib' package, which would
;; pull Qt and increase the size of the closure by 600 MiB.
"hp-probe"
;; Android.
"apk" "getprop"
;; BSD-related.
"atactl" "acpiconf"
"bsdhwmon" "camcontrol"
"devinfo" "diskinfo" "disklabel"
"freebsd-version" "ghostbsd-version"
"hwstat" "kldstat" "mfiutil" "modstat" "mport"
"ofwdump" "opnsense-version"
"pcictl" "pcidump" "pciconf" "pkg" "pkg_info" "pkgin"
"start-hello" "sysinfo" "usbconfig" "usbdevs"
;; Package managers.
"eopkg" "pacman" "swupd"
;; Not packaged in Guix (TODO).
"apm" ;apmd
"drm_info" ;drm_info
"megactl" ;megactl
"lspnp" ;pnputils
"lsb_release" ;lsb-release
"lsinitrd" ;dracut
"optirun" ;bumblebee
"usbctl" ;usbctl
"monitor-get-edid" ;monitor-edid
"journalctl" "systemctl" "systemd-analyze" ;systemd
"superiotool" ;superiotool
"x86info" ;x86info
;; Other.
"arcconf" ;proprietary
"config" ;unknown origin (Linux-related)
"dkms" ;unknown origin (Linux-related)
"amdconfig" "fglrxinfo" ;proprietary/obsolete
"geom" ;unknown origin
"hciconfig" "hcitool" ;deprecated from bluez
"nm-tool")) ;replaced by nmcli in network-manager
(substitute* "hw-probe.pl"
(("(check|find|run)Cmd\\(\"([^\" ]+)" _ prefix command)
(string-append
prefix "Cmd(\""
(if (member command preserve)
command
(or (false-if-exception
(search-input-file
inputs (string-append "bin/" command)))
(search-input-file
inputs (string-append "sbin/" command))))))
(("(my \\$HWInfoCmd = \")hwinfo" _ head)
(string-append head (search-input-file inputs "sbin/hwinfo")))
(("(my \\$CurlCmd = \")curl" _ head)
(string-append head (search-input-file inputs "bin/curl")))
(("(\\$LsblkCmd = \")lsblk" _ head)
(string-append head (search-input-file inputs "bin/lsblk")))
(("(\\$SmartctlCmd = \")smartctl" _ head)
(string-append head (search-input-file inputs "sbin/smartctl")))
(("(my \\$FindmntCmd = \")findmnt" _ head)
(string-append head (search-input-file inputs "bin/findmnt")))
(("(\\$DDCUtilCmd = \")ddcutil" _ head)
(string-append head (search-input-file inputs "bin/ddcutil")))
(("(my \\$VaInfoCmd = \")vainfo" _ head)
(string-append head (search-input-file inputs "bin/vainfo")))
(("(\\$CheckHddCmd = \")hdparm" _ head)
(string-append head (search-input-file inputs "sbin/hdparm")))
(("(\\$USE_DIGEST_ALT = \")sha512sum" _ head)
(string-append head (search-input-file inputs "bin/sha512sum"))))))
(delete 'configure)
(add-after 'install 'wrap
(lambda* (#:key inputs outputs #:allow-other-keys)
(define hw-probe (search-input-file outputs "bin/hw-probe"))
;; 'NeedProgs' core utilities are specially checked for
;; availability. It's easier to wrap them in PATH than patching
;; their references.
;; TODO: package edid-decode and add "bin/edid-decode" below:
(define need-progs (list "sbin/dmidecode" "sbin/smartctl"
"sbin/lspci" "bin/lsusb"))
(wrap-script hw-probe
(list "PERL5LIB" 'prefix (list (getenv "PERL5LIB")))
(list "PATH" 'prefix
(map (lambda (command)
(dirname (search-input-file inputs command)))
need-progs))))))))
(inputs
(list acpi
acpica
alsa-utils
avahi
bash-minimal
coreutils
cpuid
cpupower
curl
ddcutil
dmidecode
dpkg
edid-decode
efibootmgr
efivar
ethtool
eudev
findutils
gpart
grep
guile-3.0 ;for wrap-script
hddtemp
hdparm
i2c-tools
inxi
iproute
iw
libva-utils
lm-sensors
mcelog
memtester
mesa-utils
modem-manager
module-init-tools
neofetch
net-tools
network-manager
numactl
nvme-cli
opensc
openssl
p7zip
pciutils
perl-data-dumper
perl-digest-sha
perl-libwww
procps
psmisc ;for pstree
rpm
sane-backends
smartmontools
sysstat
upower
usbutils
util-linux
wireless-tools
vdpauinfo
vulkan-tools
xdpyinfo
xinput
xrandr
xvinfo))
(propagated-inputs (list hwinfo))
(home-page "https://linux-hardware.org")
(synopsis "Hardware Probe")
(description "Hardware Probe is a tool to probe for hardware, check its
operability and find drivers.")
(license (list license:lgpl2.1+ license:bsd-4)))) ;dual-licensed
(define-public hwinfo (define-public hwinfo
(package (package
(name "hwinfo") (name "hwinfo")

View File

@ -9,6 +9,8 @@
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 Felix Gruber <felgru@posteo.net> ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2021 Songlin Jiang <hollowman@hollowman.ml> ;;; Copyright © 2021 Songlin Jiang <hollowman@hollowman.ml>
;;; Copyright © 2021 Taiju HIGASHI <higashi@taiju.info>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -307,7 +309,7 @@ Chinese pinyin input methods.")
(define-public ibus-anthy (define-public ibus-anthy
(package (package
(name "ibus-anthy") (name "ibus-anthy")
(version "1.5.9") (version "1.5.14")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -315,34 +317,41 @@ Chinese pinyin input methods.")
version "/ibus-anthy-" version ".tar.gz")) version "/ibus-anthy-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1y8sf837rmp662bv6zakny0xcm7c9c5qda7f9kq9riv9ywpcbw6x")))) "16vd0k8wm13s38869jqs3dnwmjvywgn0snnpyi41m28binhlssf8"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags '(#:configure-flags
;; Use absolute exec path in the anthy.xml. ;; Use absolute exec path in the anthy.xml.
(list (string-append "--libexecdir=" %output "/libexec")) (list (string-append "--libexecdir=" %output "/libexec"))
;; The test suite fails (see:
;; https://github.com/ibus/ibus-anthy/issues/28).
#:tests? #f
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'install 'wrap-programs (add-after 'install 'wrap-programs
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (for-each (lambda (prog)
(for-each (wrap-program (search-input-file
(lambda (prog) outputs (string-append "libexec/" prog))
(wrap-program (string-append out "/libexec/" prog) `("GUIX_PYTHONPATH" ":" prefix
`("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
(,(getenv "GUIX_PYTHONPATH"))) `("GI_TYPELIB_PATH" ":" prefix
`("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")
(,(getenv "GI_TYPELIB_PATH") ,(search-input-directory
,(string-append out "/lib/girepository-1.0"))))) inputs "lib/girepository-1.0")))))
'("ibus-engine-anthy" "ibus-setup-anthy")) '("ibus-engine-anthy" "ibus-setup-anthy")))))))
#t))))))
(native-inputs (native-inputs
`(("gettext" ,gettext-minimal) (list gettext-minimal
("intltool" ,intltool) `(,glib "bin")
("pkg-config" ,pkg-config) intltool
("python" ,python))) pkg-config
python))
(inputs (inputs
(list anthy gtk+ ibus gobject-introspection python-pygobject)) (list anthy
gtk+
ibus
gobject-introspection
python-pygobject))
(synopsis "Anthy Japanese language input method for IBus") (synopsis "Anthy Japanese language input method for IBus")
(description "IBus-Anthy is an engine for the input bus \"IBus\"). It (description "IBus-Anthy is an engine for the input bus \"IBus\"). It
adds the Anthy Japanese language input method to IBus. Because most graphical adds the Anthy Japanese language input method to IBus. Because most graphical

View File

@ -106,6 +106,22 @@ C/C++ part.")
(license x11) (license x11)
(home-page "http://site.icu-project.org/"))) (home-page "http://site.icu-project.org/")))
(define-public icu4c-71
(package
(inherit icu4c)
(version "71.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/unicode-org/icu/releases/download/release-"
(string-map (lambda (x) (if (char=? x #\.) #\- x)) version)
"/icu4c-"
(string-map (lambda (x) (if (char=? x #\.) #\_ x)) version)
"-src.tgz"))
(sha256
(base32
"1gqywaqj9jmdwrng9lm6inyqmi5j2cz36db9dcqg3yk13zjyd9v7"))))))
(define-public icu4c-70 (define-public icu4c-70
(package (package
(inherit icu4c) (inherit icu4c)

View File

@ -80,6 +80,7 @@
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages photo) #:use-module (gnu packages photo)
#:use-module (gnu packages popt)
#: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-xyz) #:use-module (gnu packages python-xyz)
@ -2233,56 +2234,57 @@ Format) file format decoder and encoder.")
(license license:lgpl3+))) (license license:lgpl3+)))
(define-public libjxl (define-public libjxl
(package (let ((commit "b7076f1869914eee47b3eae107750f3a3ce43a76")
(name "libjxl") (revision "0"))
(version "0.6.1") (package
(source (name "libjxl")
(origin (version (git-version "0.6.1" revision commit))
(method git-fetch) (source
(uri (git-reference (origin
(url "https://github.com/libjxl/libjxl") (method git-fetch)
(commit (string-append "v" version)) (uri (git-reference
(recursive? #t))) (url "https://github.com/libjxl/libjxl")
(file-name (git-file-name name version)) (commit commit)
(sha256 (recursive? #t)))
(base32 "17pvc5zgm9az5hfg2p80325f42w3dqspyb03iakrwg9x4n3vjckx")) (file-name (git-file-name name version))
(modules '((guix build utils))) (sha256
(snippet (base32 "0jx0hkd2nk15mmnzlk7y7fp644w336il7nsnp5yhf14j8zfaiqz8"))
;; Delete the bundles that will not be used. libjxl bundles LCMS (modules '((guix build utils)))
;; which is in Guix but there is no option to use the system package. (snippet
;; This option will be introduced after version 0.6.1 and then we ;; Delete the bundles that will not be used. libjxl bundles LCMS,
;; probably won't need to download the submodules. ;; which is in Guix, but a newer version is required.
'(begin '(begin
(for-each (lambda (directory) (for-each (lambda (directory)
(delete-file-recursively (delete-file-recursively
(string-append "third_party/" directory))) (string-append "third_party/" directory)))
'("brotli" "googletest" "highway")))))) '("brotli" "googletest" "highway"))))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
(list "-DJPEGXL_FORCE_SYSTEM_GTEST=true" (list "-DJPEGXL_FORCE_SYSTEM_GTEST=true"
"-DJPEGXL_FORCE_SYSTEM_BROTLI=true" "-DJPEGXL_FORCE_SYSTEM_BROTLI=true"
;; "-DJPEGXL_FORCE_SYSTEM_LCMS2=true" ; next version after 0.6.1 ;; "-DJPEGXL_FORCE_SYSTEM_LCMS2=true" ; requires lcms@2.13
"-DJPEGXL_FORCE_SYSTEM_HWY=true"))) "-DJPEGXL_FORCE_SYSTEM_HWY=true")))
(native-inputs (native-inputs
(list asciidoc doxygen googletest pkg-config python)) (list asciidoc doxygen googletest pkg-config python))
(inputs (inputs
(list freeglut (list freeglut
giflib gflags
google-brotli giflib
google-highway google-brotli
imath google-highway
;; lcms ; next version after 0.6.1 imath
libavif ;; lcms ; requires lcms@2.13
libjpeg-turbo libavif
libpng libjpeg-turbo
libwebp libpng
openexr)) libwebp
(home-page "https://github.com/libjxl/libjxl") openexr))
(synopsis "JPEG XL image format reference implementation") (home-page "https://github.com/libjxl/libjxl")
(description "This package contains a reference implementation of JPEG XL (synopsis "JPEG XL image format reference implementation")
(description "This package contains a reference implementation of JPEG XL
(encoder and decoder).") (encoder and decoder).")
(license license:bsd-3))) (license license:bsd-3))))
(define-public mtpaint (define-public mtpaint
(package (package

View File

@ -7905,6 +7905,40 @@ Commons CLI supports different types of options:
@item long options with single hyphen (ie. ant -projecthelp) @item long options with single hyphen (ie. ant -projecthelp)
@end itemize @end itemize
This is a part of the Apache Commons Project.")
(license license:asl2.0)))
(define-public java-commons-text
(package
(name "java-commons-text")
(version "1.9")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/commons/text/source/"
"commons-text-" version "-src.tar.gz"))
(sha256
(base32
"1k99ib2dxlqxb5y94kpzf4ix8xgxz1j3n9kq3ddssqqcccsp5ik2"))))
(build-system ant-build-system)
(arguments
(list #:jar-name "java-commons-text.jar"
#:source-dir "src/main/java"
#:test-dir "src/test"
#:tests? #f ; Tests require JUnit5.
#:phases
#~(modify-phases %standard-phases
(replace 'install
(install-from-pom "pom.xml")))))
(inputs
(list java-commons-io))
(propagated-inputs
(list java-commons-lang3
apache-commons-parent-pom-51))
(home-page "https://commons.apache.org/text/")
(synopsis "Library focused on algorithms working on strings")
(description "Apache Commons Text is a library focused on algorithms
working on strings.
This is a part of the Apache Commons Project.") This is a part of the Apache Commons Project.")
(license license:asl2.0))) (license license:asl2.0)))

View File

@ -479,7 +479,7 @@ expression library, that is used in Krita.")
(define-public krita (define-public krita
(package (package
(name "krita") (name "krita")
(version "5.0.2") (version "5.0.8")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -487,7 +487,7 @@ expression library, that is used in Krita.")
"mirror://kde/stable/krita/" version "/krita-" version "mirror://kde/stable/krita/" version "/krita-" version
".tar.gz")) ".tar.gz"))
(sha256 (sha256
(base32 "1gww95fyd5r3x2260j2ls7d8fp4rsfxnwdqai2j7fjahxg3iyxg6")))) (base32 "0iaypyv21zxvhr989r9j9nlhx642jc89xphz1qaw9q1y0yjiy7gd"))))
(build-system qt-build-system) (build-system qt-build-system)
(arguments (arguments
`(#:tests? #f `(#:tests? #f

View File

@ -25,6 +25,7 @@
#:use-module (gnu packages check) #:use-module (gnu packages check)
#: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 python-build)
#: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 perl) #:use-module (guix build-system perl)
@ -168,13 +169,13 @@ belonging to various licenses.")
(define-public reuse (define-public reuse
(package (package
(name "reuse") (name "reuse")
(version "0.14.0") (version "1.0.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "reuse" version)) (uri (pypi-uri "reuse" version))
(sha256 (sha256
(base32 "1q84qv982y67inqb67iy3r6z7339593w7zdaaxswjqxfrd1by7bp")))) (base32 "1m78q5x19xvhywi1xl0prrag89ihvqiq14lba27rrxl75nz24c6v"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
(list python-pytest python-setuptools-scm)) (list python-pytest python-setuptools-scm))

View File

@ -370,92 +370,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-5.15-version "5.15.47") (define-public linux-libre-5.15-version "5.15.49")
(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 "1n57mz5agvf1d0ggbg080d7hvx8p9y0iqxkq4ypg10a7n96zy7y5") (base32 "1n57mz5agvf1d0ggbg080d7hvx8p9y0iqxkq4ypg10a7n96zy7y5")
(base32 "17xsn91h0c2d8igpzgmjm1g58nfpihlhgg9wm8zbfyd5g4airs8f"))) (base32 "129qlhwdv2mfb85gbvq03kkbdfp73b444rryr4rrbvi0jmq4cp24")))
(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 "1700js21yimx8rz4bsglszry564l2ycmmcr36rdqspzbmlx5w8wb"))) (hash (base32 "1p2r02h2z0j34hpkp3kr4741pr15ii72b94zllravx27pa9phj9j")))
(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.122") (define-public linux-libre-5.10-version "5.10.124")
(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 "0mw7qn77y9c6wrnw4rjvf75cpm1w6n1aqqhf8cnghcb97p2yxxrf") (base32 "0mw7qn77y9c6wrnw4rjvf75cpm1w6n1aqqhf8cnghcb97p2yxxrf")
(base32 "1ryfc8fppigssrzz5lfbqgli49cgs3lmf0yh46lpi2k0j2x30qcc"))) (base32 "1981axxswghza3iadp94q54y8w30h9w9vyq4cbjiiv9alvbv0pb8")))
(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 "0h0gfi3p1dd4p8xxklrl8sc3rv4xd08q7nv0i4m166w8188v62wj"))) (hash (base32 "0yz3yw02b6b1sq800r46x5b3dagswb6z4clrfq485c4669sb2ipc")))
(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.198") (define-public linux-libre-5.4-version "5.4.200")
(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 "1nlgk8ajb5wl3aa96h9a0pb9j5a5wmrbpk63varn557x1d00r7wj") (base32 "1nlgk8ajb5wl3aa96h9a0pb9j5a5wmrbpk63varn557x1d00r7wj")
(base32 "05i286d98fm2pdf9724x1dsmfcm7gsd7yyyvxqlpisyj1kx14hda"))) (base32 "1vnjbdyssa7dwyjl9kg35alwvf7yh597cl74yr1wy2gk5bc9paw6")))
(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 "0wvscr5wia2xdiqfxxdwl8kxf1s085qdj5h4423mraj7dh6l0ihh"))) (hash (base32 "1f15al9g4cd17fm43im5rqqrbz1cqhz2hq5ycpqvwa02pydprsga")))
(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.247") (define-public linux-libre-4.19-version "4.19.248")
(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 "06pqv050bkii0hc2v7ymny5264w1bca8db0dp1pw9mfmjg865am5") (base32 "06pqv050bkii0hc2v7ymny5264w1bca8db0dp1pw9mfmjg865am5")
(base32 "1dnjgx1nmawm9gm0yf15nl80nmg7hy7q2vl3jxjbwj6hlrfv5dmx"))) (base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im")))
(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 "136gmsmvgb2nid4by2ld003w06lsr7hgn9ajx0wfziag7pfnjsv2"))) (hash (base32 "0cdflfk6l13slw1cawpkhpjzbbnffcbyffrh29p9jg73pdqx23y4")))
(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.283") (define-public linux-libre-4.14-version "4.14.284")
(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 "02rxvr0gmxb3zfsyyzdmzgfq04gkdkv1cc38md0xfl0mxzdzdfyk") (base32 "02rxvr0gmxb3zfsyyzdmzgfq04gkdkv1cc38md0xfl0mxzdzdfyk")
(base32 "1dnjgx1nmawm9gm0yf15nl80nmg7hy7q2vl3jxjbwj6hlrfv5dmx"))) (base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im")))
(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 "191gybhnck4mh9yjzwgv1crrbxjc90p12bcif721rbs6xzszmxzh"))) (hash (base32 "1f7bidisa6b4ff0mgn66h1nmf94j5mcx4wnkwnd9f49im6hcqllq")))
(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)))
(define-public linux-libre-4.9-version "4.9.318") (define-public linux-libre-4.9-version "4.9.319")
(define-public linux-libre-4.9-gnu-revision "gnu1") (define-public linux-libre-4.9-gnu-revision "gnu1")
(define deblob-scripts-4.9 (define deblob-scripts-4.9
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
linux-libre-4.9-version linux-libre-4.9-version
linux-libre-4.9-gnu-revision linux-libre-4.9-gnu-revision
(base32 "0nai5m4rbh37qaj1xf2qj7656l2gacfh0847q5d07y22b048fq5n") (base32 "0nai5m4rbh37qaj1xf2qj7656l2gacfh0847q5d07y22b048fq5n")
(base32 "14jyn2yrbm6ayp0bszs4f9jy3p1qkrj5p5gf5c42spr67aa2lv2v"))) (base32 "0bib3641dbcqdkx3anna3caxnsg3nw9cnmhcklq0s93g3m57041h")))
(define-public linux-libre-4.9-pristine-source (define-public linux-libre-4.9-pristine-source
(let ((version linux-libre-4.9-version) (let ((version linux-libre-4.9-version)
(hash (base32 "09czsc0ynyw068yczs9qx4cliqmrh5hvz93c77lhh014wn02pba4"))) (hash (base32 "11242bn95k51knm9da7xk7r10vk7iji06wix1cq4g5nzldrfp9sp")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-4.9))) deblob-scripts-4.9)))

View File

@ -21467,3 +21467,78 @@ in a native template application).")
(define-public ecl-clog (define-public ecl-clog
(sbcl-package->ecl-package sbcl-clog)) (sbcl-package->ecl-package sbcl-clog))
(define-public sbcl-nkeymaps
(package
(name "sbcl-nkeymaps")
(version "0.1.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/atlas-engineer/nkeymaps")
(commit version)))
(file-name (git-file-name "cl-nkeymaps" version))
(sha256
(base32 "0shkklc3aiq44hyv1q6fahw4vjcr0iw4zsmxbhmxqh04r7185ddf"))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-alexandria
sbcl-cl-str
sbcl-fset
sbcl-trivial-package-local-nicknames))
(native-inputs
(list sbcl-prove))
(home-page "https://github.com/atlas-engineer/nkeymaps")
(synopsis "Keymap facility for Common Lisp")
(description
"This is a keymap facility for Common Lisp inspired by Emacsy
(keymap.scm) which is inspired by Emacs.
@itemize
@item Support prefix keys to other keymaps. For instance, if you prefix
my-mode-map with C-c, then all bindings for my-mode will be accessible after
pressing C-c.
@item List all bindings matching a given prefix. (Also known as which-key in
Emacs.)
@item List the bindings associated to a command.
@item Support multiple inheritance.
@item Support keycode.
@item Validate keyspec at compile time.
@item define-key can set multiple bindings in a single call.
@item Support multiple scheme to make it easy to switch between, say,
Emacs-style and VI-style bindings. This orthogonality to keymaps composes
better than having multiple keymaps: changing scheme applies to the entire
program, which is easier than looping through all keymaps to change them.
@item Translate keyspecs as a fallback. For instance if shift-a is not bound,
check A.
@item Behaviour can be customized with global parameters such as
*print-shortcut*.
@item The compose function can merge multiple keymaps together.
@item Support multiple arguments when that makes sense (e.g. multiple keymaps
for lookup-key).
@item Key remapping à-la Emacs.
@item Typed keymaps, i.e. keymaps where bound values can only be of a given
type. This is convenient to catch typos, for instance when binding 'FOO
instead of #'FOO.
@end itemize")
(license license:bsd-3)))
(define-public cl-nkeymaps
(sbcl-package->cl-source-package sbcl-nkeymaps))
(define-public ecl-nkeymaps
(sbcl-package->ecl-package sbcl-nkeymaps))

View File

@ -1165,7 +1165,7 @@ including a built-in database engine and a GUI system.")
(define-public janet (define-public janet
(package (package
(name "janet") (name "janet")
(version "1.21.1") (version "1.23.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -1174,7 +1174,7 @@ including a built-in database engine and a GUI system.")
(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 "1c8lrwg518182rnz47mahv5r9jd3haj6ysigk0bkv8lpb0d2b760")))) (base32 "1qfahq1203kv5jxd0im7nxm3yy1p9k1wc0pk34b5h2sfships1hm"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list #:make-flags (list #:make-flags

View File

@ -878,7 +878,22 @@ of programming tools as well as libraries with equivalent functionality.")
(patches (search-patches (patches (search-patches
"llvm-9-fix-bitcast-miscompilation.patch" "llvm-9-fix-bitcast-miscompilation.patch"
"llvm-9-fix-scev-miscompilation.patch" "llvm-9-fix-scev-miscompilation.patch"
"llvm-9-fix-lpad-miscompilation.patch")))))) "llvm-9-fix-lpad-miscompilation.patch"))))
(arguments
(if (target-riscv64?)
(substitute-keyword-arguments (package-arguments llvm-10)
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'patch-dsymutil-link
(lambda _
(substitute* "tools/dsymutil/CMakeLists.txt"
(("endif\\(APPLE\\)")
(string-append
"endif(APPLE)\n\n"
"if (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES \"riscv64\")\n"
" target_link_libraries(dsymutil PRIVATE atomic)\n"
"endif()"))))))))
(package-arguments llvm-10)))))
(define-public clang-runtime-9 (define-public clang-runtime-9
(clang-runtime-from-llvm (clang-runtime-from-llvm

View File

@ -138,6 +138,7 @@
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf) #:use-module (gnu packages protobuf)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check) #:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto) #:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web) #:use-module (gnu packages python-web)
@ -1782,7 +1783,7 @@ delivery.")
(define-public exim (define-public exim
(package (package
(name "exim") (name "exim")
(version "4.95") (version "4.96")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1796,86 +1797,84 @@ delivery.")
(string-append "https://ftp.exim.org/pub/exim/exim4/old/" (string-append "https://ftp.exim.org/pub/exim/exim4/old/"
file-name)))) file-name))))
(sha256 (sha256
(base32 "0rzi0kc3qiiaw8vnv5qrpwdvvh4sr5chns026xy99spjzx9vd76c")))) (base32 "18ziihkpa23lybm7m2l9wp2farxw0bd5ng7xm9ylgcrfgf95d6i9"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs
`(("bdb" ,bdb-5.3) ; #error Version 6 and later BDB API is not supported
("gnutls" ,gnutls/dane)
("gzip" ,gzip)
("bzip2" ,bzip2)
("xz" ,xz)
("perl" ,perl)
("libnsl" ,libnsl)
("libxt" ,libxt)
("libxaw" ,libxaw)))
(native-inputs
(list `(,pcre "bin") perl pkg-config))
(arguments (arguments
`(#:phases (list #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(replace 'configure (replace 'configure
;; We'd use #:make-flags but the top-level Makefile calls others ;; We'd use #:make-flags but the top-level Makefile calls
;; recursively, so just set all variables this way. ;; others recursively, so just set all variables this way.
(lambda* (#:key outputs inputs #:allow-other-keys) (lambda* (#:key outputs inputs #:allow-other-keys)
(substitute* '("Makefile" "OS/Makefile-Default") (substitute* (list "Makefile" "OS/Makefile-Default")
(("(RM_COMMAND=).*" all var) (("(RM_COMMAND=).*" all var)
(string-append var "rm\n"))) (string-append var "rm\n")))
(copy-file "src/EDITME" "Local/Makefile") (copy-file "src/EDITME" "Local/Makefile")
(copy-file "exim_monitor/EDITME" "Local/eximon.conf") (copy-file "exim_monitor/EDITME" "Local/eximon.conf")
(let ((out (assoc-ref outputs "out")) (let ((out (assoc-ref outputs "out")))
(gzip (assoc-ref inputs "gzip")) (substitute* "Local/Makefile"
(bzip2 (assoc-ref inputs "bzip2")) (("(BIN_DIRECTORY=).*" all var)
(xz (assoc-ref inputs "xz"))) (string-append var out "/bin\n"))
(substitute* '("Local/Makefile") (("(CONFIGURE_FILE=).*" all var)
(("(BIN_DIRECTORY=).*" all var) (string-append var out "/etc/exim.conf\n"))
(string-append var out "/bin\n")) (("(EXIM_USER=).*" all var)
(("(CONFIGURE_FILE=).*" all var) (string-append var "nobody\n"))
(string-append var out "/etc/exim.conf\n")) (("(FIXED_NEVER_USERS=).*" all var)
(("(EXIM_USER=).*" all var) (string-append var "\n")) ; no root in build environment
(string-append var "nobody\n")) (("(COMPRESS_COMMAND=).*" all var)
(("(FIXED_NEVER_USERS=).*" all var) (string-append var (search-input-file inputs "bin/gzip")
(string-append var "\n")) ; XXX no root in build environment "\n"))
(("(COMPRESS_COMMAND=).*" all var) (("(ZCAT_COMMAND=).*" all var)
(string-append var gzip "/bin/gzip\n")) (string-append var (search-input-file inputs "bin/zcat")
(("(ZCAT_COMMAND=).*" all var) "\n"))
(string-append var gzip "/bin/zcat\n")) (("# (USE_GNUTLS(|_PC)=.*)" all line)
(("# (USE_GNUTLS(|_PC)=.*)" all line) (string-append line "\n"))
(string-append line "\n")) (("# (AUTH_CRAM_MD5=yes)" all line) line)
(("# (AUTH_CRAM_MD5=yes)" all line) line) (("# (AUTH_DOVECOT=yes)" all line) line)
(("# (AUTH_DOVECOT=yes)" all line) line) (("# (AUTH_EXTERNAL=yes)" all line) line)
(("# (AUTH_EXTERNAL=yes)" all line) line) (("# (AUTH_PLAINTEXT=yes)" all line) line)
(("# (AUTH_PLAINTEXT=yes)" all line) line) (("# (AUTH_SPA=yes)" all line) line)
(("# (AUTH_SPA=yes)" all line) line) (("# (AUTH_TLS=yes)" all line) line))
(("# (AUTH_TLS=yes)" all line) line)) ;; This file has hard-coded relative file names for tools
;; This file has hard-coded relative file names for tools despite ;; despite the zcat configuration above.
;; the zcat configuration above. (substitute* "src/exigrep.src"
(substitute* '("src/exigrep.src") (("'(bzcat|xzcat|zcat|lzma)'" _ command)
(("'zcat'") (string-append "'" gzip "/bin/zcat'")) (format #f "'~a'"
(("'bzcat'") (string-append "'" bzip2 "/bin/bzcat'")) (search-input-file
(("'xzcat'") (string-append "'" xz "/bin/xzcat'")) inputs (string-append "bin/" command))))))))
(("'lzma'") (string-append "'" xz "/bin/lzma'")))))) (add-before 'build 'fix-sh-file-names
(add-before 'build 'fix-sh-paths (lambda _
(lambda* (#:key inputs #:allow-other-keys) (substitute* (list "scripts/lookups-Makefile"
(substitute* '("scripts/lookups-Makefile" "scripts/reversion") "scripts/reversion")
(("SHELL=/bin/sh") "SHELL=sh")) (("SHELL=/bin/sh") "SHELL=sh"))
(substitute* '("scripts/Configure-config.h") (substitute* "scripts/Configure-config.h"
(("\\| /bin/sh") "| sh")) (("\\| /bin/sh") "| sh"))
(let ((bash (assoc-ref inputs "bash"))) (patch-shebang "scripts/Configure-eximon")))
(substitute* '("scripts/Configure-eximon") (add-before 'build 'build-reproducibly
(("#!/bin/sh") (string-append "#!" bash "/bin/sh")))))) (lambda _
(add-before 'build 'build-reproducibly ;; The compilation number increments on every build in the
(lambda _ ;; same source tree and varies across different (parallel?)
;; The compilation number is incremented for every build from the ;; builds. Make it a constant number instead.
;; same source tree. It appears to vary over different (parallel?) (substitute* "src/version.c"
;; builds. Make it a constant number instead. (("#include \"cnumber.h\"") "1")))))
(substitute* "src/version.c" #:make-flags
(("#include \"cnumber.h\"") "1"))))) #~(list (string-append "CC=" #$(cc-for-target))
#:make-flags "INSTALL_ARG=-no_chown")
(list (string-append "CC=" ,(cc-for-target)) ;; No check target. The test/ suite assumes that particular
"INSTALL_ARG=-no_chown") ;; build options were (not) used and that it can freely sudo.
;; No 'check' target. There is a test suite in test/, which assumes that #:tests? #f))
;; certain build options were (not) used and that it can freely sudo. (native-inputs
#:tests? #f)) (list pcre2 perl pkg-config))
(inputs
(list bdb-5.3 ; #error Version 6 and later BDB API is not supported
bzip2
gnutls/dane
gzip
libnsl
libxaw
libxt
perl
xz))
(home-page "https://www.exim.org/") (home-page "https://www.exim.org/")
(synopsis (synopsis
"Message Transfer Agent (MTA) developed at the University of Cambridge") "Message Transfer Agent (MTA) developed at the University of Cambridge")
@ -1885,6 +1884,7 @@ Cambridge for use on Unix systems connected to the Internet. In style it is
similar to Smail 3, but its facilities are more general. There is a great similar to Smail 3, but its facilities are more general. There is a great
deal of flexibility in the way mail can be routed, and there are extensive deal of flexibility in the way mail can be routed, and there are extensive
facilities for checking incoming mail.") facilities for checking incoming mail.")
(properties '((lint-hidden-cve . ("CVE-2020-28017"))))
(license license:gpl2+))) (license license:gpl2+)))
(define-public dovecot (define-public dovecot

View File

@ -5524,9 +5524,11 @@ set.")
texlive-capt-of texlive-capt-of
texlive-caption texlive-caption
texlive-cm texlive-cm
texlive-courier
texlive-etoolbox texlive-etoolbox
texlive-fancyhdr texlive-fancyhdr
texlive-fancyvrb texlive-fancyvrb
texlive-helvetic
texlive-jknappen texlive-jknappen
texlive-sectsty texlive-sectsty
texlive-tex-gyre texlive-tex-gyre

View File

@ -143,6 +143,11 @@
"50" "0ki8px35dan51ashblpw6rdl27c2fq62slazhslhq3lr4fwlpvxs" "50" "0ki8px35dan51ashblpw6rdl27c2fq62slazhslhq3lr4fwlpvxs"
apache-parent-pom-21)) apache-parent-pom-21))
(define-public apache-commons-parent-pom-51
(make-apache-commons-parent-pom
"51" "05najrpys26jymla2p5jdz4mf4fjp525h6mnr0jfx55lp03xi939"
apache-parent-pom-23))
(define-public apache-commons-parent-pom-52 (define-public apache-commons-parent-pom-52
(make-apache-commons-parent-pom (make-apache-commons-parent-pom
"52" "0fb6id9cs9944fjlirjc07bf234bwi96i642px09m9nrfj338n5d" "52" "0fb6id9cs9944fjlirjc07bf234bwi96i642px09m9nrfj338n5d"

View File

@ -3938,3 +3938,30 @@ method and a end of tag by @code{xxxx_()} method.")
(description "@samp{Doxia} is a content generation framework that provides (description "@samp{Doxia} is a content generation framework that provides
powerful techniques for generating static and dynamic content, supporting a powerful techniques for generating static and dynamic content, supporting a
variety of markup languages."))) variety of markup languages.")))
(define-public maven-doxia-core
(package
(inherit maven-doxia-sink-api)
(name "maven-doxia-core")
(arguments
`(#:jar-name "doxia-core.jar"
#:source-dir "doxia-core/src/main/java"
#:test-dir "doxia-core/src/test/java"
#:tests? #f ; tests require JUnit5
#:phases (modify-phases %standard-phases
(replace 'install
(install-from-pom "doxia-core/pom.xml")))))
(propagated-inputs (list maven-doxia-parent-pom
maven-doxia-sink-api
java-slf4j-api
java-javax-inject
java-plexus-utils
java-eclipse-sisu-plexus
java-commons-text))
(synopsis "Doxia core classes and interfaces")
(description
"Doxia is a content generation framework that provides powerful
techniques for generating static and dynamic content, supporting a variety of
markup languages.
This package contains Doxia core classes and interfaces.")))

View File

@ -1146,14 +1146,14 @@ simultaneously and therefore appear under the same nickname on IRC.")
(define-public python-nbxmpp (define-public python-nbxmpp
(package (package
(name "python-nbxmpp") (name "python-nbxmpp")
(version "2.0.4") (version "3.1.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (uri
(pypi-uri "nbxmpp" version)) (pypi-uri "nbxmpp" version))
(sha256 (sha256
(base32 "1s2phiipq7ks8vrd93p96dzd5wgmgg8q9h2rxsnh2gg7iy06gj9c")))) (base32 "0c32090gr1fiy7hkn73dcj4ad9gfdpks8hivl1dl8bql01jsfdnj"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
(list `(,glib "bin"))) (list `(,glib "bin")))
@ -1175,7 +1175,7 @@ of xmpppy.")
(define-public gajim (define-public gajim
(package (package
(name "gajim") (name "gajim")
(version "1.3.3") (version "1.4.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1184,7 +1184,7 @@ of xmpppy.")
(version-major+minor version) (version-major+minor version)
"/gajim-" version ".tar.gz")) "/gajim-" version ".tar.gz"))
(sha256 (sha256
(base32 "1337qkpcv7j0fgws9scnk82mn2l7s17060vmrbh3ihinmxmbxg6x")) (base32 "08a7kkc8vzjr5jxjkb96vs1bqnrgmmmcc5spy308z0zfxbpamsin"))
(patches (search-patches "gajim-honour-GAJIM_PLUGIN_PATH.patch")))) (patches (search-patches "gajim-honour-GAJIM_PLUGIN_PATH.patch"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
@ -1198,13 +1198,6 @@ of xmpppy.")
(guix build utils)) (guix build utils))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'disable-failing-tests
(lambda _
;; XXX Gajim builds fine on some (my) machines but fails elsewhere:
;; ModuleNotFoundError: No module named 'gajim.gui.emoji_data'
;; https://dev.gajim.org/gajim/gajim/-/issues/10478
(delete-file "test/lib/gajim_mocks.py")
(delete-file "test/unit/test_gui_interface.py")))
(replace 'check (replace 'check
(lambda _ (lambda _
;; Tests require a running X server. ;; Tests require a running X server.
@ -1232,7 +1225,7 @@ of xmpppy.")
(wrap-program file (wrap-program file
`("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)) `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
`("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))) `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))
'("gajim" "gajim-remote" "gajim-history-manager")))))))) '("gajim" "gajim-remote"))))))))
(native-search-paths (native-search-paths
(list (list
(search-path-specification (search-path-specification
@ -1274,6 +1267,7 @@ of xmpppy.")
("gstreamer" ,gstreamer) ("gstreamer" ,gstreamer)
("gst-plugins-base" ,gst-plugins-base) ("gst-plugins-base" ,gst-plugins-base)
("gtk+" ,gtk+) ("gtk+" ,gtk+)
("gtksourceview" ,gtksourceview)
("gupnp-igd" ,gupnp-igd) ("gupnp-igd" ,gupnp-igd)
("libnice" ,libnice) ("libnice" ,libnice)
("libsecret" ,libsecret) ("libsecret" ,libsecret)
@ -1282,6 +1276,7 @@ of xmpppy.")
("network-manager" ,network-manager) ("network-manager" ,network-manager)
("python-css-parser" ,python-css-parser) ("python-css-parser" ,python-css-parser)
("python-dbus" ,python-dbus) ("python-dbus" ,python-dbus)
("python-gssapi" ,python-gssapi)
("python-keyring" ,python-keyring) ("python-keyring" ,python-keyring)
("python-nbxmpp" ,python-nbxmpp) ("python-nbxmpp" ,python-nbxmpp)
("python-packaging" ,python-packaging) ("python-packaging" ,python-packaging)
@ -1302,7 +1297,7 @@ and OpenPGP) and available in 29 languages.")
(define-public gajim-omemo (define-public gajim-omemo
(package (package
(name "gajim-omemo") (name "gajim-omemo")
(version "2.7.14") (version "2.8.13")
(source (source
(origin (origin
(method url-fetch/zipbomb) (method url-fetch/zipbomb)
@ -1311,7 +1306,7 @@ and OpenPGP) and available in 29 languages.")
"https://ftp.gajim.org/plugins_releases/omemo_" "https://ftp.gajim.org/plugins_releases/omemo_"
version ".zip")) version ".zip"))
(sha256 (sha256
(base32 "0jmyjqfc4vimvq5vdqsvz25dsij6bh92alml8qnn59p5farnf86v")))) (base32 "10ym9abvlfpi6llpsqc0691xdnqp9hrwnl361fnwb1nx2zw6bjbd"))))
(build-system trivial-build-system) (build-system trivial-build-system)
(arguments (arguments
`(#:modules ((guix build utils)) `(#:modules ((guix build utils))
@ -1338,7 +1333,7 @@ multi-client end-to-end encryption.")
(define-public gajim-openpgp (define-public gajim-openpgp
(package (package
(name "gajim-openpgp") (name "gajim-openpgp")
(version "1.3.9") (version "1.4.8")
(source (source
(origin (origin
(method url-fetch/zipbomb) (method url-fetch/zipbomb)
@ -1347,7 +1342,7 @@ multi-client end-to-end encryption.")
"https://ftp.gajim.org/plugins_releases/openpgp_" "https://ftp.gajim.org/plugins_releases/openpgp_"
version ".zip")) version ".zip"))
(sha256 (sha256
(base32 "0fzvvrap1hmj4rbrcjs6cs5c9l9c0795bgw9vxxxk915n6j91m23")))) (base32 "05kgcrxalxsc034kq1i6nriqjb6sdlgf3yb2mani8vk9p00v3j90"))))
(build-system trivial-build-system) (build-system trivial-build-system)
(arguments (arguments
`(#:modules ((guix build utils)) `(#:modules ((guix build utils))

View File

@ -61,6 +61,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 (gnu packages rrdtool) #:use-module (gnu packages rrdtool)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages time) #:use-module (gnu packages time)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages web)) #:use-module (gnu packages web))
@ -164,7 +165,7 @@ etc. via a Web interface. Features include:
(define-public zabbix-agentd (define-public zabbix-agentd
(package (package
(name "zabbix-agentd") (name "zabbix-agentd")
(version "6.0.3") (version "6.0.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -172,7 +173,7 @@ etc. via a Web interface. Features include:
"https://cdn.zabbix.com/zabbix/sources/stable/" "https://cdn.zabbix.com/zabbix/sources/stable/"
(version-major+minor version) "/zabbix-" version ".tar.gz")) (version-major+minor version) "/zabbix-" version ".tar.gz"))
(sha256 (sha256
(base32 "0hihi94dk235cn4rwhrzm496dlihk0pv8785y2jyqi17jhl566g6")) (base32 "1hmx6dgsag84dpv867p12bkln141nypgkp6zhipxbnn5xxip1sry"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(substitute* '("src/zabbix_proxy/proxy.c" '(substitute* '("src/zabbix_proxy/proxy.c"
@ -252,7 +253,7 @@ solution (server-side)")))
(define-public zabbix-cli (define-public zabbix-cli
(package (package
(name "zabbix-cli") (name "zabbix-cli")
(version "2.2.1") (version "2.3.0")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -261,23 +262,40 @@ solution (server-side)")))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0wzmrn8p09ksqhhgawr179c4az7p2liqr0l4q2dra62bxliawyqz")))) "1p8xkq3mxg476srwrgqax76vjzji0rjx32njmgnpa409vaqrbj5p"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
'(#:phases (modify-phases %standard-phases (list #:phases
(add-after 'unpack 'use-absolute-ncurses #~(modify-phases %standard-phases
(lambda _ (add-after 'unpack 'use-absolute-ncurses
(substitute* "bin/zabbix-cli" (lambda* (#:key inputs #:allow-other-keys)
(("'clear'") (let ((clear (search-input-file inputs "bin/clear")))
(string-append "'" (which "clear") "'"))))) (substitute* "bin/zabbix-cli"
(add-after 'unpack 'patch-setup.py (("'clear'")
(lambda _ (string-append "'" clear "'"))))))
;; Install data_files to $out/share instead of /usr/share. (add-after 'unpack 'patch-setup.py
(substitute* "setup.py" (lambda _
(("/usr/") ""))))))) ;; Install data_files to $out/share instead of /usr/share.
(substitute* "setup.py"
(("/usr/") ""))))
(add-after 'build 'build-docs
(lambda _
(invoke "make" "-C" "docs" "manual")
(invoke "make" "-C" "docs" "singlehtml")))
(add-after 'install 'install-docs
(lambda _
(install-file "docs/_build/man/zabbix-cli.1"
(string-append #$output "/share/man/man1"))
(copy-recursively "docs/_build/singlehtml"
(string-append #$output "/share/doc/"
#$name "/html"))))
(replace 'check
(lambda _
(invoke "pytest" "-vv"))))))
(native-inputs
(list python-pytest python-sphinx))
(inputs (inputs
`(("clear" ,ncurses) (list ncurses python-requests))
("python-requests" ,python-requests)))
(home-page "https://github.com/unioslo/zabbix-cli") (home-page "https://github.com/unioslo/zabbix-cli")
(synopsis "Command-line interface to Zabbix") (synopsis "Command-line interface to Zabbix")
(description (description

View File

@ -6769,3 +6769,61 @@ local music library, along with flexible search capabilities. It includes
a tag editor, which can also be invoked as a standalone program, and further a tag editor, which can also be invoked as a standalone program, and further
supports streaming audio and feeds (such as podcasts).") supports streaming audio and feeds (such as podcasts).")
(license license:gpl2+))) (license license:gpl2+)))
(define-public orca-music
(let ((commit "e55b8fdc3606341345938d5b24b2d9d9326afdb5") (revision "1"))
(package
(name "orca-music")
;; No upstream version numbers; Using commit instead.
(version (git-version "0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.sr.ht/~rabbits/orca")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0xf5i9vd2wyrhvfp68j5gvd40iqm9rf6g1p74jan7d875g6kpppq"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
#:phases
(modify-phases %standard-phases
(delete 'configure) ;No autoconf
(replace 'build
(lambda* (#:key inputs outputs #:allow-other-keys)
(setenv "CC"
,(cc-for-target))
(invoke "make" "release")))
(add-after 'build 'rename-orca
(lambda* _
(invoke "mv" "-v" "./build/orca" "./build/orca-music")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (dest-bin (string-append
out "/bin"))
(share (string-append out "/share"))
(dest-examples (string-append share "/examples"))
(dest-doc (string-append share "/doc")))
(install-file "./build/orca-music" dest-bin)
(copy-recursively "./examples" dest-examples)
(install-file "./README.md" dest-doc)))))))
(inputs (list ncurses portmidi alsa-plugins
`(,alsa-plugins "pulseaudio")))
(native-inputs (list pkg-config))
(native-search-paths
(list (search-path-specification
(variable "TERMINFO_DIRS")
(files '("share/terminfo")))))
(synopsis "Musical live-coding environment")
(description
"This is the C implementation of the ORCΛ language and terminal
livecoding environment. It's designed to be power efficient. It can handle
large files, even if your terminal is small.
Orca is not a synthesizer, but a flexible livecoding environment capable of
sending MIDI, OSC, and UDP to your audio/visual interfaces like Ableton,
Renoise, VCV Rack, or SuperCollider.")
(home-page "https://100r.co/site/orca.html")
(license license:expat))))

View File

@ -50,6 +50,7 @@
;;; Copyright © 2022 Simon South <simon@simonsouth.net> ;;; Copyright © 2022 Simon South <simon@simonsouth.net>
;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com> ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2022 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -184,6 +185,33 @@ oriented, reliable transport protocol with direct support for multihoming that
runs on top of IP or UDP, and supports both v4 and v6 versions.") runs on top of IP or UDP, and supports both v4 and v6 versions.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public arp-scan
(package
(name "arp-scan")
(version "1.9.7")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/royhills/arp-scan/")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1mf7a4f9vzvnkiavc87aqyciswggsb4fpy7j05jxnvjyyxv3l7gp"))))
(build-system gnu-build-system)
(inputs
(list libpcap))
(native-inputs
(list autoconf automake libtool pkg-config))
(propagated-inputs
(list perl-libwww))
(home-page "https://github.com/royhills/arp-scan")
(synopsis "Discover and fingerprint IP hosts on the local network using ARP")
(description "Arp-scan is a tool that uses ARP to discover and fingerprint
IP hosts on the local network.")
(license license:gpl3+)))
(define-public axel (define-public axel
(package (package
(name "axel") (name "axel")
@ -216,33 +244,37 @@ protocols.")
(define-public libcamera (define-public libcamera
(package (package
(name "libcamera") (name "libcamera")
(version "0.0.0") (version "0.0.0-1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (uri
(git-reference (git-reference
(url "git://linuxtv.org/libcamera.git") (url "git://linuxtv.org/libcamera.git")
(commit "74c8b508338ccdd0780aa1e067a1e8fcb9ee326b"))) (commit "10be87fa7c3bfb097b21ca3d469c67e40c333f7e")))
(file-name (file-name
(git-file-name name version)) (git-file-name name version))
(sha256 (sha256
(base32 "0d9lp8b9gyxh4jwfh55kp8zl1xyyg32z684v3y29378zpksncss1")))) (base32 "0qgirhlalmk9f9v6piwz50dr2asb64rvbb9zb1vix7y9zh7m11by"))))
(build-system meson-build-system) (build-system meson-build-system)
(outputs '("out" "doc")) (outputs '("out" "doc"))
(arguments (arguments
`(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
#:configure-flags #:configure-flags
(list (list
"-Dv4l2=true") "-Dv4l2=true"
;; XXX: Requires bundled pybind11.
"-Dpycamera=disabled")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'disable-failing-tests (add-after 'unpack 'disable-failing-tests
(lambda _ (lambda _
(substitute* "test/meson.build" (substitute* "test/meson.build"
(("\\['list-cameras', 'list-cameras.cpp'\\],") (("\\['list-cameras', 'list-cameras.cpp'\\],")
"")) "")
#t)) ;; TODO: Why do the gstreamer tests fail.
(("^subdir\\('gstreamer'\\)")
""))))
(add-after 'install 'move-doc (add-after 'install 'move-doc
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
@ -250,24 +282,26 @@ protocols.")
(mkdir-p (string-append doc "/share")) (mkdir-p (string-append doc "/share"))
(rename-file (rename-file
(string-append out "/share/doc") (string-append out "/share/doc")
(string-append doc "/share/doc")) (string-append doc "/share/doc"))))))))
#t))))))
(native-inputs (native-inputs
`(("dot" ,graphviz) (list graphviz ;for 'dot'
("doxygen" ,doxygen) doxygen
("pkg-config" ,pkg-config) pkg-config
("python" ,python-wrapper) python-wrapper
("sphinx" ,python-sphinx) python-sphinx
("yaml" ,python-pyyaml))) python-pyyaml))
(inputs (inputs
`(("boost" ,boost) (list boost
("glib" ,glib) eudev
("gstreamer" ,gst-plugins-base) glib
("gnutls" ,gnutls) gst-plugins-base
("libtiff" ,libtiff) gnutls
("openssl" ,openssl) libtiff
("qt5" ,qtbase-5) libyaml
("udev" ,eudev))) openssl
python-jinja2
python-ply
qtbase-5))
(synopsis "Camera stack and framework") (synopsis "Camera stack and framework")
(description "LibCamera is a complex camera support library for GNU+Linux, (description "LibCamera is a complex camera support library for GNU+Linux,
Android, and ChromeOS.") Android, and ChromeOS.")
@ -1744,8 +1778,8 @@ handling network namespaces in Go.")
(define-public go-sctp (define-public go-sctp
;; docker-libnetwork-cmd-proxy requires this exact commit. ;; docker-libnetwork-cmd-proxy requires this exact commit.
;; This commit is mentioned in docker-libnetwork-cmd-proxy's vendor.conf. ;; This commit is mentioned in docker-libnetwork-cmd-proxy's vendor.conf.
(let ((commit "6e2cb1366111dcf547c13531e3a263a067715847") (let ((commit "f2269e66cdee387bd321445d5d300893449805be")
(revision "2")) (revision "3"))
(package (package
(name "go-sctp") (name "go-sctp")
(version (git-version "0.0.0" revision commit)) (version (git-version "0.0.0" revision commit))
@ -1757,7 +1791,7 @@ handling network namespaces in Go.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1ba90fmpdwxa1ba4hrsjhi3gfy3pwmz7x8amw1p5dc9p5a7nnqrb")))) "04463rnn9y9psp11ac5di6wrwxlhymw5h9hfhhhnxqwla90ikp0g"))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
`(#:tests? #f ; Test suite is flakey. `(#:tests? #f ; Test suite is flakey.

View File

@ -49,14 +49,14 @@
(define-public python-bandit (define-public python-bandit
(package (package
(name "python-bandit") (name "python-bandit")
(version "1.6.2") (version "1.7.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "bandit" version)) (uri (pypi-uri "bandit" version))
(sha256 (sha256
(base32 (base32
"0rb034c99pyhb4a60z7f2kz40cjydhm8m9v2blaal1rmhlam7rs1")))) "1lkvf5ffdqa9504mm5fd9vvq0q5wdyqbkm32i4rswys1fg2shqrd"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
;; The tests are disabled to avoid a circular dependency with ;; The tests are disabled to avoid a circular dependency with
@ -77,25 +77,25 @@ scanning all the files it generates a report.")
(define-public python-cliff (define-public python-cliff
(package (package
(name "python-cliff") (name "python-cliff")
(version "3.5.0") (version "3.10.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "cliff" version)) (uri (pypi-uri "cliff" version))
(sha256 (sha256
(base32 (base32
"0n8pzr0mnn9lq2mykds69ij2xrn0fsirh4ndmkx0mzydbx5niysv")))) "180059m5ky3hlw2m9fszh4h2ykja8zl7ql5dsxjijiv47hzywnh4"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:tests? #f)) `(#:tests? #f))
(native-inputs (native-inputs
(list python-pbr)) (list python-pbr))
(propagated-inputs (propagated-inputs
(list python-cmd2 (list python-autopage
python-cmd2
python-prettytable python-prettytable
python-pyparsing python-pyparsing
python-pyyaml python-pyyaml
python-bandit
python-stevedore)) python-stevedore))
(home-page "https://opendev.org/openstack/cliff") (home-page "https://opendev.org/openstack/cliff")
(synopsis "Framework for building command line programs") (synopsis "Framework for building command line programs")

View File

@ -1342,8 +1342,8 @@ environments.")
(license (list license:gpl3+ license:agpl3+ license:silofl1.1)))) (license (list license:gpl3+ license:agpl3+ license:silofl1.1))))
(define-public guix-build-coordinator (define-public guix-build-coordinator
(let ((commit "3de63f1f66d5f0eb157ee60bc864404f386ee2b0") (let ((commit "07b0b61d21a5ad2637271869414fa47eea34a8d9")
(revision "53")) (revision "54"))
(package (package
(name "guix-build-coordinator") (name "guix-build-coordinator")
(version (git-version "0" revision commit)) (version (git-version "0" revision commit))
@ -1354,7 +1354,7 @@ environments.")
(commit commit))) (commit commit)))
(sha256 (sha256
(base32 (base32
"1ld761c48ad925p3kisnjvad50p6hyk77z0yjcr29681n73xzzz4")) "09zxwlkxngs6hx3hfd1gzrf99c07jdr0lslcms2nn8x77bdfp9i0"))
(file-name (string-append name "-" version "-checkout")))) (file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
@ -1650,8 +1650,8 @@ in an isolated environment, in separate namespaces.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public nar-herder (define-public nar-herder
(let ((commit "042f49e5fb52ea844ed5d29c17b26fbc8ad49f0e") (let ((commit "5acfcc0a9d99d78a167c365534aa5bf592f5625e")
(revision "8")) (revision "9"))
(package (package
(name "nar-herder") (name "nar-herder")
(version (git-version "0" revision commit)) (version (git-version "0" revision commit))
@ -1662,7 +1662,7 @@ in an isolated environment, in separate namespaces.")
(commit commit))) (commit commit)))
(sha256 (sha256
(base32 (base32
"1i9vwjdvkchwndjikqq3j73x0mvp3ny63s62ixql70yhpdgz5l69")) "1mxdkay3l1la7b6m0455s8cansd6qcdhv0k231aik0ayhbck8kby"))
(file-name (string-append name "-" version "-checkout")))) (file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
@ -1693,6 +1693,7 @@ in an isolated environment, in separate namespaces.")
"guile-gcrypt" "guile-gcrypt"
"guix" "guix"
"guile-lib" "guile-lib"
"guile-lzlib"
"guile-prometheus" "guile-prometheus"
"guile-sqlite3" "guile-sqlite3"
"gnutls" "gnutls"
@ -1732,6 +1733,7 @@ in an isolated environment, in separate namespaces.")
guile-fibers-1.1 guile-fibers-1.1
guile-prometheus guile-prometheus
guile-lib guile-lib
guile-lzlib
guile-sqlite3)) guile-sqlite3))
(inputs (inputs
(list bash-minimal (list bash-minimal
@ -1743,6 +1745,7 @@ in an isolated environment, in separate namespaces.")
guile-fibers-1.1 guile-fibers-1.1
guile-prometheus guile-prometheus
guile-lib guile-lib
guile-lzlib
guile-sqlite3 guile-sqlite3
gnutls)) gnutls))
(home-page "https://git.cbaines.net/guix/nar-herder") (home-page "https://git.cbaines.net/guix/nar-herder")

View File

@ -0,0 +1,27 @@
Patch from the CMH git, after the 1.1.0 release.
From 2328c819317dda2171217002268f57c74cedc476 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Emmanuel=20Thom=C3=A9?= <Emmanuel.Thome@inria.fr>
Date: Tue, 7 Jun 2022 12:17:05 -0700
Subject: [PATCH] patch suggested by @x-YVicto
---
src/lll.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/lll.cpp b/src/lll.cpp
index 83dab07..f005931 100644
--- a/src/lll.cpp
+++ b/src/lll.cpp
@@ -37,7 +37,7 @@
#ifdef HAVE_FPLLL
static void lll_fplll (mpz_t *v, mpz_t **M, const int m, const int n)
{
- ZZ_mat <mpz_t> Mp (m, n);
+ fplll::ZZ_mat <mpz_t> Mp (m, n);
int i, j;
for (i = 0; i < m; i++)
--
2.36.1

View File

@ -1,28 +0,0 @@
Author: Danny Milosavljevic <dannym@scratchpost.org>
The socket name ended up too long inside the container.
Use a shorter one.
--- a/pkg/authorization/authz_unix_test.go 2019-01-10 01:55:02.997985947 +0100
+++ b/pkg/authorization/authz_unix_test.go 2019-01-10 02:03:21.177439757 +0100
@@ -24,7 +24,7 @@
)
const (
- pluginAddress = "authz-test-plugin.sock"
+ pluginAddress = "/tmp/authz-test-plugin.sock"
)
func TestAuthZRequestPluginError(t *testing.T) {
@@ -263,12 +263,7 @@
// createTestPlugin creates a new sample authorization plugin
func createTestPlugin(t *testing.T) *authorizationPlugin {
- pwd, err := os.Getwd()
- if err != nil {
- t.Fatal(err)
- }
-
- client, err := plugins.NewClient("unix:///"+path.Join(pwd, pluginAddress), &tlsconfig.Options{InsecureSkipVerify: true})
+ client, err := plugins.NewClient("unix:///"+path.Join("/", pluginAddress), &tlsconfig.Options{InsecureSkipVerify: true})
if err != nil {
t.Fatalf("Failed to create client %v", err)
}

View File

@ -0,0 +1,308 @@
Submitted upstream at https://github.com/phoronix-test-suite/phoronix-test-suite/pull/642.
diff --git a/delete-nonfree-metadata b/delete-nonfree-metadata
new file mode 100755
index 000000000..e25e3b48c
--- /dev/null
+++ b/delete-nonfree-metadata
@@ -0,0 +1,195 @@
+#!/usr/bin/env python3
+
+# Copyright (C) 2022, Maxim Cournoyer
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Commentary:
+#
+# This script prunes the 'ob-cache' test metadata cache from any
+# nonfree test. This is useful for users who concerned with running
+# only free software or distributions complying with the Free Software
+# Distribution Guidelines (GNU FSDG,
+# https://www.gnu.org/distros/free-system-distribution-guidelines.html).
+import argparse
+import json
+import logging
+import pathlib
+import pprint
+import re
+import shutil
+import xml.etree.ElementTree as ET
+
+
+logger = logging.getLogger(__name__)
+logging.basicConfig(level='INFO', format='%(levelname)s: %(message)s')
+
+
+DEFAULT_ROOT_DIR = pathlib.Path(__file__).parent.resolve()
+# Global cache used to keep the test/suite definition licenses, keyed
+# by their test name key (e.g., 'caffe').
+TEST_DEFINITION_LICENSES = {}
+
+
+def get_test_definitions(root_dir=DEFAULT_ROOT_DIR):
+ """Return the list of all test definition XML files."""
+ return sorted(pathlib.Path(root_dir).glob('**/test-definition.xml'))
+
+
+def get_suite_definitions(root_dir=DEFAULT_ROOT_DIR):
+ return sorted(pathlib.Path(root_dir).glob('**/suite-definition.xml'))
+
+
+def get_index_files(root_dir=DEFAULT_ROOT_DIR):
+ return sorted(pathlib.Path(root_dir).glob('**/*.index'))
+
+
+def sanitize_index_files(index_files, nonfree_test_names):
+ """Remove non free test entries from `index_files`."""
+ for index_file in index_files:
+ with index_file.open() as f:
+ index = json.load(f)
+ filtered_tests = {k: v for k, v in index['tests'].items()
+ if k not in nonfree_test_names}
+ index['tests'] = filtered_tests
+ if index['suites']:
+ filtered_suites = {k: v for k, v in index['suites'].items()
+ if k not in nonfree_test_names}
+ index['suites'] = filtered_suites
+
+ with index_file.open('w') as f:
+ json.dump(index, f)
+
+
+def get_test_definition_license(test_definition_file,
+ root_dir=DEFAULT_ROOT_DIR):
+ """Return the licenses from `test_definition_file`, or None."""
+ name = get_name_from_definition_file(test_definition_file)
+ if name in TEST_DEFINITION_LICENSES:
+ return TEST_DEFINITION_LICENSES[name]
+
+ root = ET.parse(test_definition_file)
+ try:
+ license = next(root.iter('License')).text
+ except StopIteration:
+ # No license field; check if it extends another test.
+ try:
+ extended_test = next(root.iter('Extends')).text # e.g. 'pts/caffe'
+ extended_name = extended_test.split('/')[-1]
+ if extended_name in TEST_DEFINITION_LICENSES:
+ license = TEST_DEFINITION_LICENSES[extended_name]
+ else:
+ extended_definition_file = sorted(
+ pathlib.Path(root_dir).glob(
+ '**/test-profiles/' + extended_test
+ + '-*/test-definition.xml'))[-1]
+ license = get_test_definition_license(extended_definition_file,
+ root_dir)
+ except StopIteration:
+ logger.warning('could not find license for %s',
+ test_definition_file)
+ return None
+
+ TEST_DEFINITION_LICENSES[name] = license
+ return license
+
+
+def is_test_definition_free(test_definition_file):
+ """True if `test_definition_file` has its license tag set to 'Free'."""
+ license = get_test_definition_license(test_definition_file)
+ return license == 'Free'
+
+
+def is_suite_definition_free(suite_definition_file, nonfree_test_names):
+ """True if `suite_definition_file` is free.
+
+ The suite definition is considered free when it doesn't reference
+ any test part of `nonfree_test_names`.
+ """
+ root = ET.parse(suite_definition_file)
+ for test in root.iter('Test'):
+ test_name = test.text
+ name = test_name.split('/')[-1] # strip any prefix
+ if name in nonfree_test_names:
+ return False
+
+ return True
+
+
+def get_name_from_definition_file(definition_file):
+ """Return the parent directory name of a definition file.
+
+ The version information in stripped from the name."""
+ parent_dir_name = pathlib.Path(definition_file).parent.name
+ # Strip the version from the name.
+ return re.search(r'^(.*)-', parent_dir_name).group(1)
+
+
+def get_default_user_config_file(root_dir):
+ return next(pathlib.Path(root_dir).glob('**/user-config-defaults.xml'))
+
+
+def disallow_refreshing_repositories(user_config_file):
+ """Set the 'AllowRefreshingRepositoryLists' option to FALSE."""
+ config = ET.parse(user_config_file)
+ for option in config.iter('AllowRefreshingRepositoryLists'):
+ option.text = 'FALSE'
+ config.write(user_config_file)
+
+
+def main(root_dir):
+ # Gather data.
+ test_definitions = get_test_definitions(root_dir)
+ suite_definitions = get_suite_definitions(root_dir)
+ nonfree_test_definitions = [d for d in test_definitions
+ if not is_test_definition_free(d)]
+ nonfree_test_names = [get_name_from_definition_file(t)
+ for t in nonfree_test_definitions]
+ nonfree_suite_definitions = [
+ s for s in suite_definitions
+ if not is_suite_definition_free(s, nonfree_test_names)]
+ nonfree_suite_names = [get_name_from_definition_file(s)
+ for s in nonfree_suite_definitions]
+ nonfree_definitions = nonfree_test_definitions + nonfree_suite_definitions
+ nonfree_definition_names = sorted(set(nonfree_test_names
+ + nonfree_suite_names))
+
+ # Delete nonfree definitions.
+ for nonfree_definition in nonfree_definitions:
+ shutil.rmtree(nonfree_definition.parent)
+
+ # Delete nonfree entries in index files.
+ indexes = get_index_files(root_dir)
+ sanitize_index_files(indexes, nonfree_definition_names)
+
+ logger.info('The following nonfree test suites were deleted:\n%s',
+ pprint.pformat([str(d) for d in nonfree_definitions]))
+
+ # This is necessary to avoid downloading the
+ # OpenBenchmarking-provided tests metadata which includes all the
+ # tests, including teh proprietary ones.
+ user_config_file = get_default_user_config_file(root_dir)
+ disallow_refreshing_repositories(user_config_file)
+ logger.info('Disabled test metadata updates in default user config')
+
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser(
+ description='Remove nonfree cached metadata')
+ parser.add_argument('--root-dir', type=str,
+ help='the Phoronix Test Suite root directory',
+ default=DEFAULT_ROOT_DIR)
+ args = parser.parse_args()
+
+ main(args.root_dir)
diff --git a/documentation/phoronix-test-suite.md b/documentation/phoronix-test-suite.md
index c2e04ae4e..0c71ecf37 100644
--- a/documentation/phoronix-test-suite.md
+++ b/documentation/phoronix-test-suite.md
@@ -817,7 +817,18 @@ The Phoronix Test Suite can be simply extracted from the downloaded *.tar.gz* or
### Generic Installation
-Running *install-sh* from the root directory of the Phoronix Test Suite will install the software for system-wide access. By default the *phoronix-test-suite* executable is in */usr/bin/* , the Phoronix Test Suite files in */usr/share/phoronix-test-suite/* , and the documentation in / *usr/share/doc/phoronix-test-suite/* . Root access is required. The default installation prefix is /usr/ but can be adjusted as the first argument (example: *install-sh /home/user/* to install the Phoronix Test Suite in your home directory).
+Running *install-sh* from the root directory of the Phoronix Test
+Suite will install the software for system-wide access. By default the
+*phoronix-test-suite* executable is in */usr/bin/* , the Phoronix Test
+Suite files in */usr/share/phoronix-test-suite/* , and the
+documentation in / *usr/share/doc/phoronix-test-suite/* . Root access
+is required. The default installation prefix is /usr/ but can be
+adjusted as the first argument (example: *install-sh /home/user/* to
+install the Phoronix Test Suite in your home directory). Use the
+`--free-software-only` option of the `install-sh` script if you'd like
+to be offered only test profiles and suites relying on free software
+only. Note that this option disables the automatic fetching of new
+tests definitions from OpenBenchmarking.org.
### Debian/Ubuntu Installation
@@ -937,6 +948,11 @@ If this option is set to *TRUE* , the system logs (i.e. dmesg, lspci, lsusb, Xor
#### AllowResultUploadsToOpenBenchmarking
This option defines whether to allow/support result uploads to OpenBenchmarking.org. If set to *FALSE* , the user will not be prompted to allow uploading of test results to the public site.
+#### AllowRefreshingRepositoryLists
+This option defines whether to allow refreshing the test profiles
+(metadata) content from OpenBenchmarking.org. If set to *FALSE* ,
+only the locally available test profiles will be used, and no updates
+will made to it.
## General Options
#### DefaultBrowser
diff --git a/install-sh b/install-sh
index f6228cde9..ff9bf9bd7 100755
--- a/install-sh
+++ b/install-sh
@@ -1,4 +1,5 @@
#!/bin/sh
+set -e
# Phoronix Test Suite
# URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
@@ -28,6 +29,13 @@ else
INSTALL_PREFIX="$1"
fi
+# XXX: Perhaps this should be the default?
+for arg in "$@"; do
+ if [ "$arg" = "--free-software-only" ]; then
+ FREE_SOFTWARE_ONLY=yes
+ fi
+done
+
# Ensure the user is in the correct directory
if [ ! -f pts-core/phoronix-test-suite.php ]
then
@@ -114,6 +122,11 @@ else
fi
+# Post-installation process.
+if [ -n FREE_SOFTWARE_ONLY ]; then
+ ./delete-nonfree-metadata --root-dir="$DESTDIR$INSTALL_PREFIX/share/phoronix-test-suite/"
+fi
+
echo -e "\nPhoronix Test Suite Installation Completed\n
Executable File: $INSTALL_PREFIX/bin/phoronix-test-suite
Documentation: $INSTALL_PREFIX/share/doc/phoronix-test-suite/
@@ -124,4 +137,3 @@ then
echo "Installed to chroot: $DESTDIR"
echo "Please update your desktop and mime-database manually"
fi
-
diff --git a/pts-core/objects/pts_openbenchmarking.php b/pts-core/objects/pts_openbenchmarking.php
index 081f55c31..e9396ea36 100644
--- a/pts-core/objects/pts_openbenchmarking.php
+++ b/pts-core/objects/pts_openbenchmarking.php
@@ -330,6 +330,11 @@ class pts_openbenchmarking
}
public static function refresh_repository_lists($repos = null, $force_refresh = false)
{
+ if(!pts_config::read_bool_config('PhoronixTestSuite/Options/OpenBenchmarking/AllowRefreshingRepositoryLists', true))
+ {
+ return true;
+ }
+
if($repos == null)
{
if($force_refresh == false)
diff --git a/pts-core/static/user-config-defaults.xml b/pts-core/static/user-config-defaults.xml
index 878c5137f..c9a67df5f 100644
--- a/pts-core/static/user-config-defaults.xml
+++ b/pts-core/static/user-config-defaults.xml
@@ -6,6 +6,7 @@
<IndexCacheTTL>3</IndexCacheTTL>
<AlwaysUploadSystemLogs>FALSE</AlwaysUploadSystemLogs>
<AllowResultUploadsToOpenBenchmarking>TRUE</AllowResultUploadsToOpenBenchmarking>
+ <AllowRefreshingRepositoryLists>TRUE</AllowRefreshingRepositoryLists>
</OpenBenchmarking>
<General>
<DefaultBrowser></DefaultBrowser>

View File

@ -33,6 +33,7 @@
#:use-module (gnu packages mail) ; for libetpan #:use-module (gnu packages mail) ; for libetpan
#:use-module (gnu packages nettle) #:use-module (gnu packages nettle)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages sequoia) #:use-module (gnu packages sequoia)
#:use-module (gnu packages sqlite) #:use-module (gnu packages sqlite)

View File

@ -51,6 +51,11 @@
`(#:tests? #f ; Test suite hasn't withstood the test of time. `(#:tests? #f ; Test suite hasn't withstood the test of time.
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'loosen-requirements
(lambda _
;; Remove version pinning.
(substitute* "requirements.txt"
(("pbr>=.*") "pbr"))))
(replace 'wrap (replace 'wrap
(lambda* (#:key python inputs outputs #:allow-other-keys) (lambda* (#:key python inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
@ -68,8 +73,9 @@
"/site-packages") "/site-packages")
(search-path-as-string->list (search-path-as-string->list
(or (getenv "GUIX_PYTHONPATH") "")))))) (or (getenv "GUIX_PYTHONPATH") ""))))))
'("presentty" "presentty-console"))) '("presentty" "presentty-console")))))
#t))))) ;; XXX: console import test fails to find palette.py from the lib?
(delete 'sanity-check))))
(inputs (inputs
(list cowsay (list cowsay
figlet figlet

View File

@ -1,4 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
@ -403,3 +404,73 @@ specified by PEP 517, @code{flit_core.buildapi}.")
(propagated-inputs (propagated-inputs
(modify-inputs (package-propagated-inputs python-flit-core-bootstrap) (modify-inputs (package-propagated-inputs python-flit-core-bootstrap)
(replace "python-toml" python-tomli))))) (replace "python-toml" python-tomli)))))
(define-public python-flit-scm
(package
(name "python-flit-scm")
(version "1.6.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "flit_scm" version))
(sha256
(base32
"0p3lj2g1643m2dm14kihvfb6gn6jviglhm3dzdpn2c8zpqs17svg"))))
(build-system python-build-system)
(arguments
(list
#:tests? #f ;no test suite
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'relax-setuptools-scm-version
(lambda _
(substitute* "pyproject.toml"
(("setuptools_scm~=6.4")
"setuptools_scm>=6.3"))))
;; XXX: PEP 517 manual build/install procedures copied from
;; python-isort.
(replace 'build
(lambda _
;; ZIP does not support timestamps before 1980.
(setenv "SOURCE_DATE_EPOCH" "315532800")
(invoke "python" "-m" "build" "--wheel" "--no-isolation" ".")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((whl (car (find-files "dist" "\\.whl$"))))
(invoke "pip" "--no-cache-dir" "--no-input"
"install" "--no-deps" "--prefix" #$output whl)))))))
(native-inputs
(list python-pypa-build
python-flit-core
python-setuptools-scm
python-tomli))
(propagated-inputs
(list python-flit-core
python-setuptools-scm
python-tomli))
(home-page "https://gitlab.com/WillDaSilva/flit_scm")
(synopsis "PEP 518 build backend combining flit_core and setuptools_scm")
(description "This package provides a PEP 518 build backend that uses
@code{setuptools_scm} to generate a version file from your version control
system, then @code{flit_core} to build the package.")
(license license:expat)))
(define-public python-setuptools-scm
(package
(name "python-setuptools-scm")
(version "6.3.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "setuptools_scm" version))
(sha256
(base32 "1wm0i27siyy1yqr9rv7lqvb65agay9051yi8jzmi8dgb3q4ai6m4"))))
(build-system python-build-system)
(propagated-inputs
`(("python-packaging",python-packaging-bootstrap)
("python-tomli" ,python-tomli)))
(home-page "https://github.com/pypa/setuptools_scm/")
(synopsis "Manage Python package versions in SCM metadata")
(description
"Setuptools_scm handles managing your Python package versions in
@dfn{software configuration management} (SCM) metadata instead of declaring
them as the version argument or in a SCM managed file.")
(license license:expat)))

View File

@ -4,7 +4,7 @@
;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019, 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019, 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019, 2021 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2019, 2021 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2020, 2022 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org> ;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com> ;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com>
;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
@ -2324,3 +2324,32 @@ provided for the main Python test runners.")
(description "This package provides a pytest fixture to mock httpx (description "This package provides a pytest fixture to mock httpx
requests to be replied to with user provided responses.") requests to be replied to with user provided responses.")
(license license:expat))) (license license:expat)))
(define-public python-pycotap
(package
(name "python-pycotap")
(version "1.2.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pycotap" version))
(sha256
(base32 "1v69fxial9i5wlap6wc4igq3hydvxbak7dlgb7cikk8wjgafqf7r"))))
(build-system python-build-system)
(home-page "https://el-tramo.be/pycotap")
(synopsis "Tiny Python TAP test runner")
(description "This package provides a simple Python test runner for
unittest that outputs Test Anything Protocol (TAP) results to standard
output. Contrary to other TAP runners for Python, pycotap...
@itemize
@item
prints TAP (and only TAP) to standard output instead of to a separate file,
allowing you to pipe it directly to TAP pretty printers and processors;
@item only contains a TAP reporter, so no parsers, no frameworks, no
dependencies, etc;
@item
is configurable: you can choose how you want the test output and test result
diagnostics to end up in your TAP output (as TAP diagnostics, YAML blocks, or
attachments).
@end itemize")
(license license:expat)))

View File

@ -26,6 +26,7 @@
;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -1651,3 +1652,29 @@ It does not provide such an implementation itself -- this is just the
scaffolding for the command line, which should make it relatively easy to scaffolding for the command line, which should make it relatively easy to
supply a handful of python functions as methods to a class.") supply a handful of python functions as methods to a class.")
(license license:expat))) ; MIT license (license license:expat))) ; MIT license
(define-public python-starkbank-ecdsa
(package
(name "python-starkbank-ecdsa")
(version "2.0.3")
(home-page "https://github.com/starkbank/ecdsa-python")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1k9h4p0frkgj76vrqfjim4mik98g09mivdxxcmxr6raa5jwr83sh"))))
(arguments
(list #:phases #~(modify-phases %standard-phases
(add-after 'unpack 'remove-broken-test
(lambda _
(delete-file "tests/testOpenSSL.py"))))))
(build-system python-build-system)
(native-inputs (list python-pytest))
(synopsis "Python ECDSA library")
(description "This package provides a Python ECDSA library, optimized for
speed but without C extensions.")
(license license:expat)))

View File

@ -1088,7 +1088,7 @@ computing in Python. It extends both the @code{concurrent.futures} and
(define-public python-modin (define-public python-modin
(package (package
(name "python-modin") (name "python-modin")
(version "0.10.1") (version "0.15.1")
(source (source
(origin (origin
;; The archive on pypi does not include all required files. ;; The archive on pypi does not include all required files.
@ -1099,7 +1099,7 @@ computing in Python. It extends both the @code{concurrent.futures} and
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"128ghfb9ncmnn8km409xjcdppvn9nr9jqw8rkvsfavh7wnwlk509")))) "0nf2pdqna2vn7vq7q7b51f3cfbrxfn77pyif3clibjsxzvfm9k03"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases

View File

@ -51,6 +51,7 @@
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> ;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2022 Felix Gruber <felgru@posteo.net> ;;; Copyright © 2022 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2022 Peter Polidoro <peter@polidoro.io> ;;; Copyright © 2022 Peter Polidoro <peter@polidoro.io>
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -1423,26 +1424,24 @@ C, yielding parse times that can be a thirtieth of the html5lib parse times.")
(define-public python-minio (define-public python-minio
(package (package
(name "python-minio") (name "python-minio")
(version "6.0.0") (version "7.1.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "minio" version)) (uri (pypi-uri "minio" version))
(sha256 (sha256
(base32 (base32
"1cxpa0m7mdvpdbc1g6wlihq6ja4g4paxkl6f3q84bbnx07zpbllp")))) "02nh865xbf2glxvcy70ir6gkcwqxl119zryfc70q7w0yjvkg64d7"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
'(#:phases (modify-phases %standard-phases '(#:phases (modify-phases %standard-phases
(add-before 'check 'disable-failing-tests (add-before 'check 'disable-failing-tests
(lambda _ (lambda _
;; This test requires network access. ;; This test requires network access.
(delete-file "tests/unit/credentials_test.py") (delete-file "tests/unit/credentials_test.py"))))))
#t)))))
(native-inputs (native-inputs
(list python-faker python-mock python-nose)) (list python-faker python-mock python-nose))
(propagated-inputs (propagated-inputs
(list python-certifi python-configparser python-dateutil python-pytz (list python-certifi python-dateutil python-pytz python-urllib3))
python-urllib3))
(home-page "https://github.com/minio/minio-py") (home-page "https://github.com/minio/minio-py")
(synopsis "Programmatically access Amazon S3 from Python") (synopsis "Programmatically access Amazon S3 from Python")
(description (description
@ -1808,7 +1807,7 @@ another XPath engine to find the matching elements in an XML or HTML document.")
(define-public python-databricks-cli (define-public python-databricks-cli
(package (package
(name "python-databricks-cli") (name "python-databricks-cli")
(version "0.14.1") (version "0.17.0")
(home-page "https://github.com/databricks/databricks-cli") (home-page "https://github.com/databricks/databricks-cli")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
@ -1816,21 +1815,25 @@ another XPath engine to find the matching elements in an XML or HTML document.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"03w19rzh72jll9phai23wp0c2mlv39qsrv50mhckziy39z60yxh8")))) "1qwbxnx64kw7lrzlyx3hfbnjxpc19cqvvj0gcrkqpyjsgd08vja0"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases '(#:phases (modify-phases %standard-phases
(replace 'check (replace 'check
(lambda _ (lambda _
(invoke "pytest" "tests" "-vv" (invoke "pytest" "tests" "-vv"))))))
;; XXX: This fails with newer Pytest
;; (upstream uses Pytest 3..).
"-k" "not test_get_request_with_list"))))))
(native-inputs (native-inputs
(list ;; For tests. ;; For tests.
python-decorator python-mock python-pytest python-requests-mock)) (list python-decorator
python-mock
python-pytest
python-requests-mock))
(propagated-inputs (propagated-inputs
(list python-click python-configparser python-requests python-six (list python-click
python-oauthlib
python-pyjwt
python-requests
python-six
python-tabulate)) python-tabulate))
(synopsis "Command line interface for Databricks") (synopsis "Command line interface for Databricks")
(description (description
@ -4196,13 +4199,13 @@ addon modules.")
(define-public python-bottle (define-public python-bottle
(package (package
(name "python-bottle") (name "python-bottle")
(version "0.12.19") (version "0.12.21")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "bottle" version)) (uri (pypi-uri "bottle" version))
(sha256 (sha256
(base32 "0b6s50vc4iad97b6bb3xnyrgajb3nj6n6jbr5p54a4vapky3zmx9")))) (base32 "0zl8sy4dhafyxqpavy7pjz0qzpakmhgh2qr6pwlw5f82rjv62z3q"))))
(build-system python-build-system) (build-system python-build-system)
(home-page "https://bottlepy.org/") (home-page "https://bottlepy.org/")
(synopsis "WSGI framework for small web-applications") (synopsis "WSGI framework for small web-applications")
@ -6328,7 +6331,16 @@ the @code{BasicRouter}.")
(arguments (arguments
;; PyPi sources does not contain tests, recursive dependency on ;; PyPi sources does not contain tests, recursive dependency on
;; python-sanic. ;; python-sanic.
(list #:tests? #f)) (list #:tests? #f
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'loosen-requirements
(lambda _
;; Don't place an upper boundary on httpx version.
;; https://github.com/sanic-org/sanic-testing/pull/39
(substitute* "setup.py"
(("httpx>=0\\.18,<0\\.23")
"httpx>=0.18")))))))
(propagated-inputs (list python-httpx python-sanic-bootstrap (propagated-inputs (list python-httpx python-sanic-bootstrap
python-websockets)) python-websockets))
(home-page "https://github.com/sanic-org/sanic-testing/") (home-page "https://github.com/sanic-org/sanic-testing/")
@ -7535,3 +7547,50 @@ resources using Web Application Description Language (WADL) files as guides.")
@end itemize") @end itemize")
(license license:expat))) (license license:expat)))
(define-public python-http-client
(package
(name "python-http-client")
(version "3.3.7")
(home-page "https://github.com/sendgrid/python-http-client")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0z0ziw3f4zw5fj4spiwhhs2x8qs3i5999ry2p6a5sc8b1lkkj2zi"))
(snippet #~(begin
(use-modules (guix build utils))
(delete-file "tests/profile.py")))))
(build-system python-build-system)
(synopsis "HTTP REST client for Python")
(description
"This package provides access to any RESTful or RESTful-like API.")
(license license:expat)))
(define-public python-sendgrid
(package
(name "python-sendgrid")
(version "6.9.7")
(home-page "https://github.com/sendgrid/sendgrid-python/")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0kvp4gm3bpcsj2mkv05pgvlcv1jlsfhcljcv61wz5kq9d273h7rg"))))
(build-system python-build-system)
(arguments
(list #:tests? #f)) ;241/340 tests fail due to attempted web access
(propagated-inputs (list python-http-client python-starkbank-ecdsa))
(synopsis "SendGrid API library for Python")
(description
"The @code{sendgrid} Python library allows access to the
SendGrid Web API v3. Version 3+ of the library provides full support for all
SendGrid Web API v3 endpoints, including the new v3 /mail/send.")
(license license:expat)))

View File

@ -2949,6 +2949,48 @@ software.")
(inherit (package-with-python2 scons)) (inherit (package-with-python2 scons))
(name "scons-python2"))) (name "scons-python2")))
(define-public python-exceptiongroup
(package
(name "python-exceptiongroup")
(version "1.0.0rc8")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/agronholm/exceptiongroup")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0xsbpv22n51p6yvyvz231mf8zhbi1i88b4zmacaxxx31zrq5ifv4"))))
(build-system python-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
;; XXX: PEP 517 manual build/install procedures copied from
;; python-isort.
(replace 'build
(lambda _
(setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version)
;; ZIP does not support timestamps before 1980.
(setenv "SOURCE_DATE_EPOCH" "315532800")
(invoke "python" "-m" "build" "--wheel" "--no-isolation" ".")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((whl (car (find-files "dist" "\\.whl$"))))
(invoke "pip" "--no-cache-dir" "--no-input"
"install" "--no-deps" "--prefix" #$output whl))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "pytest" "-vv" "tests")))))))
(native-inputs (list python-flit-scm python-pypa-build python-pytest))
(home-page "https://github.com/agronholm/exceptiongroup")
(synopsis "PEP 654 backport from Python 3.11")
(description "This is a backport of the @code{BaseExceptionGroup} and
@code{ExceptionGroup} classes from Python 3.11.")
(license license:expat)))
(define-public python-extension-helpers (define-public python-extension-helpers
(package (package
(name "python-extension-helpers") (name "python-extension-helpers")
@ -5038,7 +5080,7 @@ which can produce feeds in RSS 2.0, RSS 0.91, and Atom formats.")
(define-public python-pydantic (define-public python-pydantic
(package (package
(name "python-pydantic") (name "python-pydantic")
(version "1.9.0") (version "1.9.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -5047,32 +5089,11 @@ which can produce feeds in RSS 2.0, RSS 0.91, and Atom formats.")
(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 "14wj3k9007fpbxk7593w6gdqrr68yzrsw4a41sj5ji4cv3r8z18b")))) (base32 "1406kgppqa7524mxllsipj7gb8fn7pwf51l11lqik59xjhsfv94f"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
'(#:phases '(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'check 'disable-test
(lambda _
;; Reported upstream:
;; <https://github.com/samuelcolvin/pydantic/issues/1580>.
;; Disable the faulty test as the fix is unclear.
(substitute* "tests/test_validators.py"
(("test_assert_raises_validation_error")
"_test_assert_raises_validation_error"))
;; These fail because of <https://bugs.python.org/issue40398>.
;; Remove after Python has been upgraded to >= 3.9.
(substitute* "tests/test_generics.py"
(("assert replace_types\\(Callable, \\{T: int\\}\\) == Callable")
""))
(substitute* "tests/test_schema.py"
(("test_unenforced_constraints_schema")
"_test_unenforced_constraints_schema"))
;; Disable tests for the Hypothesis plugin because it is tricky
;; to configure in the build container.
(delete-file "tests/test_hypothesis_plugin.py")))
(replace 'check (replace 'check
(lambda _ (invoke "pytest" "-vv")))))) (lambda _ (invoke "pytest" "-vv"))))))
(native-inputs (native-inputs
@ -5132,7 +5153,6 @@ Server (PLS).")
"not test_pyqt_completion")))))) "not test_pyqt_completion"))))))
(propagated-inputs (propagated-inputs
(list python-autopep8 (list python-autopep8
python-configparser
python-pydocstyle python-pydocstyle
python-flake8 python-flake8
python-future python-future
@ -6668,6 +6688,58 @@ multivalue dictionary that retains the order of insertions and deletions.")
run simple @code{argparse} parsers from function signatures.") run simple @code{argparse} parsers from function signatures.")
(license license:lgpl3+))) (license license:lgpl3+)))
(define-public python-autopage
(package
(name "python-autopage")
(version "0.5.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "autopage" version))
(sha256
(base32
"169ixll1ncm2a2pcc86665ikjv2lrzs10p6c1w4yj55p3gk3xgh1"))))
(build-system python-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
;; Do a manual PEP 517 style build/install procedure until the
;; python-build-system overhaul is merged.
(replace 'build
(lambda _
;; ZIP does not support timestamps before 1980.
(let ((circa-1980 (* 10 366 24 60 60)))
(setenv "SOURCE_DATE_EPOCH" (number->string circa-1980))
(invoke "python" "-m" "build" "--wheel" "--no-isolation" "."))))
(add-before 'check 'disable-e2e-tests
(lambda _
;; These tests rely on KeyboardInterrupts which do not
;; work in the build container.
(delete-file "autopage/tests/test_end_to_end.py")))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "pytest" "-vv"))))
(replace 'install
(lambda _
(let ((whl (car (find-files "dist" "\\.whl$"))))
(invoke "pip" "--no-cache-dir" "--no-input"
"install" "--no-deps" "--prefix" #$output whl)))))))
(native-inputs
(list python-pypa-build
python-setuptools
python-wheel
;; For tests.
python-fixtures
python-pytest
python-testtools))
(home-page "https://github.com/zaneb/autopage")
(synopsis "Automatic paging for console output")
(description
"Autopage is a Python library to automatically display terminal output
from a program in a @dfn{pager} such as @command{less}.")
(license license:asl2.0)))
(define-public python-autopep8 (define-public python-autopep8
(package (package
(name "python-autopep8") (name "python-autopep8")
@ -7783,27 +7855,6 @@ Pexpect works like Don Libes Expect. Pexpect allows your script to spawn a
child application and control it as if a human were typing commands.") child application and control it as if a human were typing commands.")
(license license:isc))) (license license:isc)))
(define-public python-setuptools-scm
(package
(name "python-setuptools-scm")
(version "6.3.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "setuptools_scm" version))
(sha256
(base32 "1wm0i27siyy1yqr9rv7lqvb65agay9051yi8jzmi8dgb3q4ai6m4"))))
(build-system python-build-system)
(propagated-inputs
`(("python-packaging",python-packaging-bootstrap)
("python-tomli" ,python-tomli)))
(home-page "https://github.com/pypa/setuptools_scm/")
(synopsis "Manage Python package versions in SCM metadata")
(description
"Setuptools_scm handles managing your Python package versions in
@dfn{software configuration management} (SCM) metadata instead of declaring
them as the version argument or in a SCM managed file.")
(license license:expat)))
(define-public python-sexpdata (define-public python-sexpdata
(package (package
(name "python-sexpdata") (name "python-sexpdata")
@ -8298,25 +8349,24 @@ cluster down and deletes the throwaway profile.")
(define-public python-ipython-sql (define-public python-ipython-sql
(package (package
(name "python-ipython-sql") (name "python-ipython-sql")
(version "0.4.0") (version "0.4.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "ipython-sql" version)) (uri (pypi-uri "ipython-sql" version))
(sha256 (sha256
(base32 "0v74ayc6vw98f4jljmwy45qpqbcbhlrb4g1qdyypq9sppxcqx21y")))) (base32 "1r6rz8jgrqzhkf2flwjw75d96g8l7kykmx5wli3q1988w96391ip"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases (list #:tests? #f ;must run under IPython
(modify-phases %standard-phases #:phases
(add-after 'unpack 'fix-build #~(modify-phases %standard-phases
(lambda _ (add-after 'unpack 'permit-newer-prettytable
;; The "NEWS.rst" file is missing from the PyPI distribution. ;; See https://github.com/catherinedevlin/ipython-sql/issues/202
;; (see: https://github.com/catherinedevlin/ipython-sql/issues/164) (lambda _
(substitute* "setup.py" (substitute* "setup.py"
(("NEWS = [^\n]*") "") (("prettytable<1")
(("long_description=README \\+ '\\\\n\\\\n' \\+ NEWS,") "prettytable")))))))
"long_description=README,")))))))
(propagated-inputs (propagated-inputs
(list python-ipython (list python-ipython
python-ipython-genutils python-ipython-genutils
@ -9956,7 +10006,25 @@ applications.")
(method url-fetch) (method url-fetch)
(uri (pypi-uri "pyzmq" version)) (uri (pypi-uri "pyzmq" version))
(sha256 (sha256
(base32 "0737kizh53n4rjq1xbm6nhr0bq65xflg04i1d8fcky0nwwrw1pcf")))) (base32 "0737kizh53n4rjq1xbm6nhr0bq65xflg04i1d8fcky0nwwrw1pcf"))
(snippet
#~(begin
(use-modules (guix build utils))
;; The bundled zeromq source code.
(delete-file-recursively "bundled")
;; Delete cythonized files.
(for-each delete-file
(list "zmq/backend/cython/constants.c"
"zmq/backend/cython/context.c"
"zmq/backend/cython/_device.c"
"zmq/backend/cython/error.c"
"zmq/backend/cython/message.c"
"zmq/backend/cython/_poll.c"
"zmq/backend/cython/_proxy_steerable.c"
"zmq/backend/cython/socket.c"
"zmq/backend/cython/utils.c"
"zmq/backend/cython/_version.c"
"zmq/devices/monitoredqueue.c"))))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
@ -11454,14 +11522,15 @@ distribution. It is not intended as an end-user tool.")
(define-public python-immutables (define-public python-immutables
(package (package
(name "python-immutables") (name "python-immutables")
(version "0.14") (version "0.18")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "immutables" version)) (uri (pypi-uri "immutables" version))
(sha256 (sha256
(base32 "0y0aqw29g525frdnmv9paljzacpp4s21sadfbca5b137iciwr8d0")))) (base32 "1x4cinh0xbl6p6p2yfm2s07mxxy3lf0zzai9gqpydk4482bwfdjk"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (list python-mypy python-pytest))
(home-page "https://github.com/MagicStack/immutables") (home-page "https://github.com/MagicStack/immutables")
(synopsis "High-performance immutable mapping type for Python") (synopsis "High-performance immutable mapping type for Python")
(description (description
@ -11473,16 +11542,28 @@ functional languages.")
(define-public python-prettytable (define-public python-prettytable
(package (package
(name "python-prettytable") (name "python-prettytable")
(version "0.7.2") (version "3.3.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "prettytable" version ".tar.bz2")) (uri (pypi-uri "prettytable" version))
(sha256 (sha256
(base32 (base32
"0diwsicwmiq2cpzpxri7cyl5fmsvicafw6nfqf6p6p322dji2g45")))) "1c599w31i2ndzbkn85xwsgv9sd2j16r56dl922w4jh3rs97vb3hi"))))
(build-system python-build-system) (build-system python-build-system)
(home-page "https://code.google.com/archive/p/prettytable/") (arguments
(list #:phases
#~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "pytest" "-vv")))))))
(native-inputs
(list python-pytest
python-pytest-lazy-fixture
python-setuptools-scm))
(propagated-inputs (list python-wcwidth))
(home-page "https://github.com/jazzband/prettytable")
(synopsis "Display tabular data in an ASCII table format") (synopsis "Display tabular data in an ASCII table format")
(description (description
"A library designed to represent tabular data in visually appealing ASCII "A library designed to represent tabular data in visually appealing ASCII
@ -13063,7 +13144,7 @@ time.")
texlive-zapfding)))) texlive-zapfding))))
(home-page "https://jupyter.org") (home-page "https://jupyter.org")
(synopsis "Converting Jupyter Notebooks") (synopsis "Converting Jupyter Notebooks")
(description "The @code{nbconvert} tool, @{jupyter nbconvert}, converts (description "The @code{nbconvert} tool, @code{jupyter nbconvert}, converts
notebooks to various other formats via Jinja templates. It allows you to notebooks to various other formats via Jinja templates. It allows you to
convert an @code{.ipynb} notebook file into various static formats including: convert an @code{.ipynb} notebook file into various static formats including:
@ -16133,7 +16214,7 @@ focus on event-based network programming and multiprotocol integration.")
(define-public python-pika (define-public python-pika
(package (package
(name "python-pika") (name "python-pika")
(version "1.2.0") (version "1.2.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -16143,27 +16224,29 @@ focus on event-based network programming and multiprotocol integration.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0cm45xydk2jigydwszwik89qlbk6l3l18sxhzppzqmxw2rdkm22s")))) "0sqj3bg6jwign8vwvn337fbwy69sm684ns1vh5kbfnskq4him9i2"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
'(#:phases (modify-phases %standard-phases '(#:phases (modify-phases %standard-phases
(add-before 'check 'disable-live-tests (add-after 'unpack 'disable-live-tests
(lambda _ (lambda _
;; Disable tests that require RabbitMQ, which is not ;; Disable tests that require RabbitMQ, which is not
;; yet available in Guix. ;; yet available in Guix.
(substitute* "setup.cfg" (substitute* "nose2.cfg"
(("tests/unit,tests/acceptance") (("tests=tests/unit,tests/acceptance")
"tests/unit")) "start-dir=tests/unit"))
(with-directory-excursion "tests" (with-directory-excursion "tests"
(for-each delete-file (for-each delete-file
'("unit/base_connection_tests.py" '("unit/base_connection_tests.py"
"unit/threaded_test_wrapper_test.py"))))) "unit/threaded_test_wrapper_test.py")))))
(replace 'check (replace 'check
(lambda _ (lambda* (#:key tests? #:allow-other-keys)
(invoke "nosetests")))))) (when tests?
(setenv "PYTHONPATH" (getcwd))
(invoke "nose2" "-v")))))))
(native-inputs (native-inputs
(list python-mock (list python-mock
python-nose python-nose2
;; These are optional at runtime, and provided here for tests. ;; These are optional at runtime, and provided here for tests.
python-gevent python-gevent
python-tornado python-tornado
@ -16493,6 +16576,73 @@ smaller. Small integers are encoded into a single byte, and typical short
strings require only one extra byte in addition to the strings themselves.") strings require only one extra byte in addition to the strings themselves.")
(license license:asl2.0))) (license license:asl2.0)))
(define-public python-cattrs
(package
(name "python-cattrs")
(version "22.1.0")
(source (origin
(method git-fetch) ;for tests
(uri (git-reference
(url "https://github.com/python-attrs/cattrs")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1n0h25gj6zd02kqyl040xpdvg4hpy1j92716sz0rg019xjqqijqb"))))
(build-system python-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
;; XXX: PEP 517 manual build copied from python-isort.
(add-after 'unpack 'adjust-for-older-attrs
;; Our older attrs package is using the 'attr' rather than 'attrs'
;; namespace.
;; TODO: Remove after python-attrs is updated to >= 21.4.0.
(lambda _
(substitute* (find-files "." "\\.py$")
(("from attrs\\b")
"from attr"))))
(replace 'build
(lambda _
(invoke "python" "-m" "build" "--wheel" "--no-isolation" ".")))
(replace 'install
(lambda _
(let ((whl (car (find-files "dist" "\\.whl$"))))
(invoke "pip" "--no-cache-dir" "--no-input"
"install" "--no-deps" "--prefix" #$output whl))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; Do not use the 'pytest' binary as it hard-codes an older
;; python-hypothesis version near the beginning of its
;; GUIX_PYTHONPATH.
(invoke "python" "-m" "pytest" "-vv" "-c" "/dev/null" "tests"
"-n" (number->string (parallel-job-count))
;; This test requires orjson, which needs the maturin
;; build system and new Rust dependencies.
"--ignore" "tests/test_preconf.py")))))))
(native-inputs
(list python-hypothesis-next
python-immutables
python-msgpack
python-poetry-core
python-pymongo ;for the bson module
python-pypa-build
python-pytest
python-pytest-xdist))
(propagated-inputs
(list python-attrs
python-exceptiongroup
python-typing-extensions))
(home-page "https://github.com/python-attrs/cattrs")
(synopsis "Python library for structuring and unstructuring data")
(description "@code{cattrs} is an Python library for structuring and
unstructuring data. @code{cattrs} works best with @code{attrs} classes,
@code{dataclasses} and the usual Python collections, but other kinds of
classes can also be supported by manually registering converters.")
(license license:expat)))
(define-public python-cachy (define-public python-cachy
(package (package
(name "python-cachy") (name "python-cachy")
@ -17003,17 +17153,31 @@ scans through a file and detects issues.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"07drmi3ai49jw5n23ibkambcgijqcw073ihypjgxfnks5lv4yqy1")))) "07drmi3ai49jw5n23ibkambcgijqcw073ihypjgxfnks5lv4yqy1"))
(modules '((guix build utils)))
(snippet
;; Adjust comprehension syntax for Python > 3.8.
;; From <https://github.com/davidhalter/jedi/issues/1824>.
'(substitute* "test/completion/lambdas.py"
(("if lambda: 3")
"if (lambda: 3)")))))
(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 'fix-completion-test
(lambda _
;; This resolves a failure in the 'test_completion' test (see:
;; https://github.com/davidhalter/jedi/issues/1824).
;; TODO: Remove after a new release is made (currently: 0.18.1).
(substitute* "test/completion/lambdas.py"
(("\\[a for a in \\[1,2\\] if lambda: 3\\]\\[0\\]")
"[a for a in [1,2] if (lambda: 3)][0]"))))
(replace 'check (replace 'check
(lambda* (#:key tests? #:allow-other-keys) (lambda* (#:key tests? #:allow-other-keys)
(when tests? (when tests?
(setenv "HOME" "/tmp") (setenv "HOME" "/tmp")
(invoke "python" "-m" "pytest" "-vv")) (invoke "python" "-m" "pytest" "-vv")))))))
#t)))))
(native-inputs (native-inputs
(list python-colorama python-docopt python-pytest)) (list python-colorama python-docopt python-pytest))
(propagated-inputs (propagated-inputs
@ -17458,6 +17622,50 @@ multitouch applications.")
Design spec without sacrificing ease of use or application performance.") Design spec without sacrificing ease of use or application performance.")
(license license:expat))) (license license:expat)))
(define-public python-asynckivy
(package
(name "python-asynckivy")
(version "0.5.3")
(source
(origin
(method url-fetch)
(uri
(pypi-uri "asynckivy" version))
(sha256
(base32 "0ivjvch8yn3k1ybfp7c1nm8mhc0ymg7d04mq54lly7yjvg0jvcni"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'check 'set-home
(lambda _
;; 'kivy/__init__.py' wants to create $HOME/.kivy.
(setenv "HOME" (getcwd)))))))
(propagated-inputs (list python-kivy python-asyncgui))
(home-page "https://github.com/gottadiveintopython/asynckivy")
(synopsis "Async library for Kivy")
(description
"This package provides async versions of Kivy functions to avoid the
callback-heavy mode of interaction typical in some Kivy applications.")
(license license:expat)))
(define-public python-asyncgui
(package
(name "python-asyncgui")
(version "0.5.3")
(source (origin
(method url-fetch)
(uri (pypi-uri "asyncgui" version))
(sha256
(base32
"0614130afg2qc1qq4p82piskvvx6lpjl4nlsakbjzdyd78xywnb7"))))
(build-system python-build-system)
(home-page "https://github.com/gottadiveintopython/asyncgui")
(synopsis "Enables async/await without an event loop")
(description "This package provides support for async/await applications
without requiring an event loop, useful for creative responsive GUIs.")
(license license:expat)))
(define-public python-binaryornot (define-public python-binaryornot
(package (package
(name "python-binaryornot") (name "python-binaryornot")
@ -17591,13 +17799,13 @@ JSON) codec.")
(define-public python-pymongo (define-public python-pymongo
(package (package
(name "python-pymongo") (name "python-pymongo")
(version "3.7.2") (version "4.1.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "pymongo" version)) (uri (pypi-uri "pymongo" version))
(sha256 (sha256
(base32 (base32
"0zis4707r9hdg5qgkhp3wss9camr9h56ixyfc8n9dxwlnnly4x4c")))) "1m9hc2a4kgg10xy3g5x00z4a7rrk9s0rbf5qfypwnhq0kdfg5f6p"))))
(build-system python-build-system) (build-system python-build-system)
(propagated-inputs (propagated-inputs
(list python-certifi)) (list python-certifi))
@ -21383,20 +21591,23 @@ time-based (TOTP) passwords.")
(define-public python-parso (define-public python-parso
(package (package
(name "python-parso") (name "python-parso")
(version "0.8.2") (version "0.8.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "parso" version)) (uri (pypi-uri "parso" version))
(sha256 (sha256
(base32 "161k8771m7w60qakyvrwf9q62lvakmix7mpfylpy7713qs939f0j")))) (base32 "185gkxq92kqiw2h5zp1cmyn04055x0lix4hmi5c077xm1clvw1wc"))))
(native-inputs (native-inputs
(list python-pytest)) (list python-pytest))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases
(replace 'check (modify-phases %standard-phases
(lambda _ (invoke "pytest" "-vv")))))) (replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "pytest" "-vv")))))))
(home-page "https://github.com/davidhalter/parso") (home-page "https://github.com/davidhalter/parso")
(synopsis "Python Parser") (synopsis "Python Parser")
(description "Parso is a Python parser that supports error recovery and (description "Parso is a Python parser that supports error recovery and
@ -25151,23 +25362,30 @@ choose to use Base64 without the “=” padding.")
(license license:asl2.0))) (license license:asl2.0)))
(define-public python-py-cpuinfo (define-public python-py-cpuinfo
(package ;; This is the first commit where riscv64-linux support is available.
(name "python-py-cpuinfo") ;; We can move back to pypi releases with the next release.
(version "5.0.0") (let ((commit "4d6987e5c30f2ebacb20781892c01329042cce60")
(source (revision "1"))
(origin (package
(method url-fetch) (name "python-py-cpuinfo")
(uri (pypi-uri "py-cpuinfo" version)) (version (git-version "8.0.0" revision commit))
(sha256 (source
(base32 (origin
"0045y6832gqjg63jmw0qj2jwyypgjwr7sfdq3lfv49b6fxpl5xic")))) (method git-fetch)
(build-system python-build-system) (uri (git-reference
(home-page "https://github.com/workhorsy/py-cpuinfo") (url "https://github.com/workhorsy/py-cpuinfo")
(synopsis "Get CPU info with Python") (commit commit)))
(description (file-name (git-file-name name version))
"This Python module returns the CPU info by using the best sources of (sha256
(base32
"0h5wi1bfcqqr1x3j1pa7dmkx7siprsyksbsy80fl2sdrrgpji0b0"))))
(build-system python-build-system)
(home-page "https://github.com/workhorsy/py-cpuinfo")
(synopsis "Get CPU info with Python")
(description
"This Python module returns the CPU info by using the best sources of
information for your operating system.") information for your operating system.")
(license license:expat))) (license license:expat))))
(define-public python-canonicaljson (define-public python-canonicaljson
(package (package

View File

@ -132,6 +132,42 @@
useful in modems implemented with @dfn{digital signal processing} (DSP).") useful in modems implemented with @dfn{digital signal processing} (DSP).")
(license license:lgpl2.1)))) (license license:lgpl2.1))))
(define-public libcorrect
(let ((commit "f5a28c74fba7a99736fe49d3a5243eca29517ae9")
(revision "1"))
(package
(name "libcorrect")
(version (git-version "0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/quiet/libcorrect")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0qc9k8x51k2xfvp6cx8vdiyb3g6fl1y657z4m201aw2m06hs1hzg"))))
(build-system cmake-build-system)
(arguments
(list
#:test-target "check"
#:phases
#~(modify-phases %standard-phases
(add-after 'build 'build-libfec-compatibility-layer
(lambda _
(invoke "make" "shim")))
(add-after 'install 'delete-static-libraries
(lambda _
(delete-file (string-append #$output "/lib/libcorrect.a"))
(delete-file (string-append #$output "/lib/libfec.a")))))))
(home-page "https://github.com/quiet/libcorrect")
(synopsis "Forward error correction library")
(description
"This library provides convolutional and Reed-Solomon codes for forward
error correction. It also includes a compatibility layer so that it can be
used as a drop-in substitute for @code{libfec}.")
(license license:bsd-3))))
(define-public liquid-dsp (define-public liquid-dsp
(package (package
(name "liquid-dsp") (name "liquid-dsp")

View File

@ -12666,3 +12666,100 @@ into Money objects.")
(description "This package provides a gem that calculates the exchange rate (description "This package provides a gem that calculates the exchange rate
using published rates from open-exchange-rates. Compatible with the money gem.") using published rates from open-exchange-rates. Compatible with the money gem.")
(license license:expat))) (license license:expat)))
(define-public ruby-roda
(package
(name "ruby-roda")
(version "3.57.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "roda" version))
(sha256
(base32 "0nkfxnbcfnriywvx9kpamp850cwjmqv8ssajc95d0aiyjr4kdrfy"))))
(build-system ruby-build-system)
(arguments
;; No rakefile
`(#:tests? #f))
(propagated-inputs (list ruby-rack))
(home-page "http://roda.jeremyevans.net")
(synopsis "Routing Tree Web Toolkit")
(description "Roda is a routing tree web toolkit, designed for building fast
and maintainable web applications in ruby.")
(license license:expat)))
(define-public ruby-nori
(package
(name "ruby-nori")
(version "2.6.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "nori" version))
(sha256
(base32 "066wc774a2zp4vrq3k7k8p0fhv30ymqmxma1jj7yg5735zls8agn"))))
(build-system ruby-build-system)
(arguments
;; Tests require too old version of rspec
`(#:tests? #f))
(native-inputs
(list ruby-nokogiri
ruby-rake
ruby-rspec))
(home-page "https://github.com/savonrb/nori")
(synopsis "XML to Hash translator")
(description "Nori is a simple XML parsing ripped from Crack which in-turn
ripped from Merb. It supports pluggable parsers and ships with both REXML and
Nokogiri implementations.")
(license license:expat)))
(define-public ruby-faraday-middleware
(package
(name "ruby-faraday-middleware")
(version "1.2.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "faraday_middleware" version))
(sha256
(base32 "1bw8mfh4yin2xk7138rg3fhb2p5g2dlmdma88k82psah9mbmvlfy"))))
(build-system ruby-build-system)
(arguments
;; No rakefile
`(#:tests? #f))
(propagated-inputs
(list ruby-faraday))
(home-page "https://github.com/lostisland/faraday_middleware")
(synopsis "Various middleware for Faraday")
(description "Faraday_Middleware is a collection of middleware for the
Faraday-based API wrappers.")
(license license:expat)))
(define-public ruby-bandwidth-iris
(package
(name "ruby-bandwidth-iris")
(version "5.1.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "ruby-bandwidth-iris" version))
(sha256
(base32 "1hmrxs0dif6fw5npyzcshk4nq9qr2kbmnx7mdjr5v1nhzlfr0678"))))
(build-system ruby-build-system)
(arguments
;; XXX: Tests don't require helper for some reason, so all fail.
`(#:tests? #f))
(native-inputs
(list ruby-rspec
ruby-yard))
(propagated-inputs
(list ruby-activesupport
ruby-builder
ruby-faraday
ruby-faraday-middleware
ruby-nori))
(home-page "https://github.com/Bandwidth/ruby-bandwidth-iris")
(synopsis "Gem for integrating to Bandwidth's Iris API")
(description "Bandwidth IRIS is a Ruby SDK for Bandwidth Phone Number
Dashboard. It is a Ruby Client library for IRIS / BBS API.")
(license license:expat)))

View File

@ -10,6 +10,8 @@
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2020, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Jean-Pierre De Jesus DIAZ <me@jeandudey.tech>
;;; Copyright © 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -32,7 +34,7 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix licenses) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages acl) #:use-module (gnu packages acl)
@ -116,7 +118,7 @@ mounting and managing @acronym{CIFS, Common Internet File System} shares using
the Linux kernel CIFS client.") the Linux kernel CIFS client.")
(home-page "https://wiki.samba.org/index.php/LinuxCIFS_utils") (home-page "https://wiki.samba.org/index.php/LinuxCIFS_utils")
;; cifs-utils is licensed as GPL3 or later, but 3 files contain LGPL code. ;; cifs-utils is licensed as GPL3 or later, but 3 files contain LGPL code.
(license gpl3+))) (license license:gpl3+)))
(define-public iniparser (define-public iniparser
(package (package
@ -178,7 +180,7 @@ are easy to read, write, and modify.
The library is small, thread safe, and written in portable ANSI C with no The library is small, thread safe, and written in portable ANSI C with no
external dependencies.") external dependencies.")
(license x11))) (license license:x11)))
(define-public samba (define-public samba
(package (package
@ -282,7 +284,7 @@ DOS and Windows, OS/2, GNU/Linux and many others.
Samba is an important component to seamlessly integrate Linux/Unix Servers and Samba is an important component to seamlessly integrate Linux/Unix Servers and
Desktops into Active Directory environments using the winbind daemon.") Desktops into Active Directory environments using the winbind daemon.")
(license gpl3+))) (license license:gpl3+)))
(define-public samba/fixed (define-public samba/fixed
;; Version that rarely changes, depended on by libsoup. ;; Version that rarely changes, depended on by libsoup.
@ -329,7 +331,7 @@ Desktops into Active Directory environments using the winbind daemon.")
(description (description
"Talloc is a hierarchical, reference counted memory pool system with "Talloc is a hierarchical, reference counted memory pool system with
destructors. It is the core memory allocator used in Samba.") destructors. It is the core memory allocator used in Samba.")
(license gpl3+))) ;; The bundled "replace" library uses LGPL3. (license license:gpl3+))) ;; The bundled "replace" library uses LGPL3.
(define-public talloc/static (define-public talloc/static
(package (package
@ -396,7 +398,7 @@ destructors. It is the core memory allocator used in Samba.")
"Tevent is an event system based on the talloc memory management library. "Tevent is an event system based on the talloc memory management library.
It is the core event system used in Samba. The low level tevent has support for It is the core event system used in Samba. The low level tevent has support for
many event types, including timers, signals, and the classic file descriptor events.") many event types, including timers, signals, and the classic file descriptor events.")
(license lgpl3+))) (license license:lgpl3+)))
(define-public ldb (define-public ldb
(package (package
@ -452,7 +454,7 @@ many event types, including timers, signals, and the classic file descriptor eve
is provide a fast database with an LDAP-like API designed to be used within an is provide a fast database with an LDAP-like API designed to be used within an
application. In some ways it can be seen as a intermediate solution between application. In some ways it can be seen as a intermediate solution between
key-value pair databases and a real LDAP database.") key-value pair databases and a real LDAP database.")
(license lgpl3+))) (license license:lgpl3+)))
(define-public ppp (define-public ppp
(package (package
@ -461,7 +463,7 @@ key-value pair databases and a real LDAP database.")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/paulusmack/ppp") (url "https://github.com/ppp-project/ppp")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
@ -469,26 +471,24 @@ key-value pair databases and a real LDAP database.")
"1bhhksdclsnkw54a517ndrw55q5zljjbh9pcqz1z4a2z2flxpsgk")))) "1bhhksdclsnkw54a517ndrw55q5zljjbh9pcqz1z4a2z2flxpsgk"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f ; no check target (list #:tests? #f ;; No "check" target
#:make-flags '("CC=gcc") #:make-flags #~(list (string-append "CC=" #$(cc-for-target)))
#:phases #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-before 'configure 'patch-Makefile (add-before 'configure 'patch-Makefile
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((libc (assoc-ref inputs "libc")) (let ((openssl (assoc-ref inputs "openssl"))
(openssl (assoc-ref inputs "openssl")) (libpcap (assoc-ref inputs "libpcap")))
(libpcap (assoc-ref inputs "libpcap"))) (substitute* "pppd/Makefile.linux"
(substitute* "pppd/Makefile.linux" (("/usr/include/openssl")
(("/usr/include/crypt\\.h") (string-append openssl "/include"))
(string-append libc "/include/crypt.h")) (("-DPPP_FILTER")
(("/usr/include/openssl") (string-append "-DPPP_FILTER -I" libpcap "/include")))
(string-append openssl "/include/openssl")) (substitute* "pppd/pppcrypt.h"
(("/usr/include/pcap-bpf.h") (("des\\.h") "openssl/des.h")))
(string-append libpcap "/include/pcap-bpf.h"))) #t)))))
#t))))))
(inputs (inputs
(list libpcap (list libpcap openssl))
(@ (gnu packages tls) openssl)))
(synopsis "Implementation of the Point-to-Point Protocol") (synopsis "Implementation of the Point-to-Point Protocol")
(home-page "https://ppp.samba.org/") (home-page "https://ppp.samba.org/")
(description (description
@ -498,5 +498,7 @@ and IPV6 and the protocols layered above them, such as TCP and UDP.")
;; pppd, pppstats and pppdump are under BSD-style notices. ;; pppd, pppstats and pppdump are under BSD-style notices.
;; some of the pppd plugins are GPL'd. ;; some of the pppd plugins are GPL'd.
;; chat is public domain. ;; chat is public domain.
(license (list bsd-3 bsd-4 gpl2+ public-domain)))) (license (list license:bsd-3
license:bsd-4
license:gpl2+
license:public-domain))))

View File

@ -10,6 +10,7 @@
;;; Copyright © 2021 Alexandr Vityazev <avityazev@posteo.org> ;;; Copyright © 2021 Alexandr Vityazev <avityazev@posteo.org>
;;; Copyright © 2021, 2022 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2021, 2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com> ;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -27,8 +28,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages search) (define-module (gnu packages search)
#:use-module ((guix licenses) #:use-module ((guix licenses) #:prefix license:)
#:select (gpl2 gpl2+ gpl3+ agpl3+ lgpl2.1+ bsd-3 x11 perl-license))
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
@ -73,14 +73,14 @@
(define-public xapian (define-public xapian
(package (package
(name "xapian") (name "xapian")
(version "1.4.18") (version "1.4.19")
;; Note: When updating Xapian, remember to update xapian-bindings below. ;; Note: When updating Xapian, remember to update xapian-bindings below.
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://oligarchy.co.uk/xapian/" version (uri (string-append "https://oligarchy.co.uk/xapian/" version
"/xapian-core-" version ".tar.xz")) "/xapian-core-" version ".tar.xz"))
(sha256 (sha256
(base32 "0xsb4ihf3p767f0zx9p4janwni6r9sg5j6lry0002i8hmnsdnv8r")))) (base32 "1hx92kbqdl38gsrwzvbqgf2jc4wwzsad2gd99g62cdfclvy4ijhz"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (list zlib (inputs (list zlib
`(,util-linux "lib"))) `(,util-linux "lib")))
@ -106,7 +106,7 @@ add advanced indexing and search facilities to their own applications. It
supports the Probabilistic Information Retrieval model and also supports a supports the Probabilistic Information Retrieval model and also supports a
rich set of boolean query operators.") rich set of boolean query operators.")
(home-page "https://xapian.org/") (home-page "https://xapian.org/")
(license (list gpl2+ bsd-3 x11)))) (license (list license:gpl2+ license:bsd-3 license:x11))))
(define-public python-xapian-bindings (define-public python-xapian-bindings
(package (inherit xapian) (package (inherit xapian)
@ -118,7 +118,7 @@ rich set of boolean query operators.")
"/xapian-bindings-" version ".tar.xz")) "/xapian-bindings-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"13ziql8027glgihgvnbsa75vkcn82g83mbihj60zf0njj170clpy")))) "0gc8l9cn8jdma0p73jl14z17yizp6dax5zsycvgprajii6j8bhwi"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags '("--with-python3") `(#:configure-flags '("--with-python3")
@ -133,7 +133,7 @@ rich set of boolean query operators.")
(inputs (inputs
(list python xapian zlib)) (list python xapian zlib))
(synopsis "Python bindings for the Xapian search engine library") (synopsis "Python bindings for the Xapian search engine library")
(license gpl2+))) (license license:gpl2+)))
(define-public perl-search-xapian (define-public perl-search-xapian
(package (package
@ -157,7 +157,7 @@ rich set of boolean query operators.")
"Search::Xapian wraps most methods of most Xapian classes. The missing "Search::Xapian wraps most methods of most Xapian classes. The missing
classes and methods should be added in the future. It also provides a classes and methods should be added in the future. It also provides a
simplified, more 'perlish' interface to some common operations.") simplified, more 'perlish' interface to some common operations.")
(license perl-license))) (license license:perl-license)))
(define-public libtocc (define-public libtocc
(package (package
@ -201,7 +201,7 @@ simplified, more 'perlish' interface to some common operations.")
system. The goal of Tocc is to provide a better system for classifying files system. The goal of Tocc is to provide a better system for classifying files
that is more flexible than classic file systems that are based on a tree of that is more flexible than classic file systems that are based on a tree of
files and directories.") files and directories.")
(license gpl3+))) (license license:gpl3+)))
(define-public tocc (define-public tocc
(package (package
@ -222,7 +222,7 @@ files and directories.")
(description (description
"Tocc is a tag-based file management system. This package contains the "Tocc is a tag-based file management system. This package contains the
command line tool for interacting with libtocc.") command line tool for interacting with libtocc.")
(license gpl3+))) (license license:gpl3+)))
(define-public searx (define-public searx
(package (package
@ -269,7 +269,7 @@ command line tool for interacting with libtocc.")
(home-page "https://searx.github.io/searx/") (home-page "https://searx.github.io/searx/")
(synopsis "Privacy-respecting metasearch engine") (synopsis "Privacy-respecting metasearch engine")
(description "Searx is a privacy-respecting, hackable metasearch engine.") (description "Searx is a privacy-respecting, hackable metasearch engine.")
(license agpl3+))) (license license:agpl3+)))
(define-public bool (define-public bool
(package (package
@ -294,7 +294,7 @@ statements, as well as the NEAR statement to search for the occurrence of
words in close proximity to each other. It handles context gracefully, words in close proximity to each other. It handles context gracefully,
accounting for new lines and paragraph changes. It also has robust support accounting for new lines and paragraph changes. It also has robust support
for parsing HTML files.") for parsing HTML files.")
(license gpl3+))) (license license:gpl3+)))
(define-public fsearch (define-public fsearch
(package (package
@ -325,7 +325,7 @@ for parsing HTML files.")
(description (description
"FSearch is a fast file search utility, inspired by Everything "FSearch is a fast file search utility, inspired by Everything
Search Engine. It is written in C and based on GTK3.") Search Engine. It is written in C and based on GTK3.")
(license gpl2+))) (license license:gpl2+)))
(define-public recoll (define-public recoll
(package (package
@ -421,7 +421,7 @@ their file names. It can search most document formats, but you may need
external applications for text extraction. It can reach any storage place: external applications for text extraction. It can reach any storage place:
files, archive members, email attachments, transparently handling files, archive members, email attachments, transparently handling
decompression.") decompression.")
(license gpl2+))) (license license:gpl2+)))
(define-public hyperestraier (define-public hyperestraier
(package (package
@ -447,7 +447,7 @@ decompression.")
(description "Hyper Estraier can be used to integrate full-text (description "Hyper Estraier can be used to integrate full-text
search into applications, using either the provided command line and CGI search into applications, using either the provided command line and CGI
interfaces, or a C API.") interfaces, or a C API.")
(license lgpl2.1+))) (license license:lgpl2.1+)))
(define-public mlocate (define-public mlocate
(package (package
@ -470,7 +470,7 @@ most of the file system, which makes it faster and does not trash the system
caches as much. The locate(1) utility is intended to be completely compatible caches as much. The locate(1) utility is intended to be completely compatible
with slocate, and attempts to be compatible to GNU locate when it does not with slocate, and attempts to be compatible to GNU locate when it does not
conflict with slocate compatibility.") conflict with slocate compatibility.")
(license gpl2))) (license license:gpl2)))
(define-public plocate (define-public plocate
(package (package
@ -508,7 +508,7 @@ conflict with slocate compatibility.")
(description "Plocate is a @code{locate} based on posting lists, (description "Plocate is a @code{locate} based on posting lists,
completely replacing @command{mlocate} with a faster and smaller index. It is completely replacing @command{mlocate} with a faster and smaller index. It is
suitable as a default locate on your system.") suitable as a default locate on your system.")
(license gpl2))) (license license:gpl2)))
(define-public swish-e (define-public swish-e
(package (package
@ -569,7 +569,7 @@ suitable as a default locate on your system.")
"Swish-e is Simple Web Indexing System for Humans - Enhanced. Swish-e "Swish-e is Simple Web Indexing System for Humans - Enhanced. Swish-e
can quickly and easily index directories of files or remote web sites and can quickly and easily index directories of files or remote web sites and
search the generated indexes.") search the generated indexes.")
(license gpl2+))) ;with exception (license license:gpl2+))) ; with exception
(define-public xapers (define-public xapers
(package (package
@ -637,7 +637,7 @@ geared towards academic journal articles build on the Xapian search engine.
Think of it as your own personal document search engine, or a local cache of Think of it as your own personal document search engine, or a local cache of
online libraries. It provides fast search of document text and online libraries. It provides fast search of document text and
bibliographic data and simple document and bibtex retrieval.") bibliographic data and simple document and bibtex retrieval.")
(license gpl3+))) (license license:gpl3+)))
(define-public ugrep (define-public ugrep
(package (package
@ -692,6 +692,6 @@ multi-threaded and other techniques to speed up search, pattern-matching and
decompression. Many pre-defined regexps ease searching e.g. C typdefs or XML decompression. Many pre-defined regexps ease searching e.g. C typdefs or XML
attributes. Results can be output in several structured or self-defined attributes. Results can be output in several structured or self-defined
formats.") formats.")
(license bsd-3))) (license license:bsd-3)))
;;; search.scm ends here ;;; search.scm ends here

View File

@ -14,6 +14,7 @@
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com> ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;; Copyright © 2021 Wiktor Żelazny <wzelazny@vurv.cz> ;;; Copyright © 2021 Wiktor Żelazny <wzelazny@vurv.cz>
;;; Copyright © 2022 Jose G Perez Taveras <josegpt27@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -368,7 +369,7 @@ are already there.")
(define-public direnv (define-public direnv
(package (package
(name "direnv") (name "direnv")
(version "2.31.0") (version "2.32.1")
(source (source
(origin (method git-fetch) (origin (method git-fetch)
(uri (git-reference (uri (git-reference
@ -377,7 +378,7 @@ are already there.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1c52izjzkdhmyrfx1gmbp34n0qpxyxw0s94f0vy3ldlg8xr36wmk")))) "1i473j7j4sx8p83zqlnakskqk0jyd3byajp7jmv2gym9s4k841y7"))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
'(#:import-path "github.com/direnv/direnv" '(#:import-path "github.com/direnv/direnv"

View File

@ -468,6 +468,8 @@ builder does not support SVG images natively (e.g. LaTeX).")
(arguments (arguments
;; FIXME: Tests depend on Sphinx, which depends on this. ;; FIXME: Tests depend on Sphinx, which depends on this.
`(#:tests? #f)) `(#:tests? #f))
(propagated-inputs
(list python-sphinxcontrib-serializinghtml))
(home-page "https://sphinx-doc.org/") (home-page "https://sphinx-doc.org/")
(synopsis "Sphinx API for web applications") (synopsis "Sphinx API for web applications")
(description (description
@ -717,14 +719,14 @@ and several other projects.")
(define-public python-breathe (define-public python-breathe
(package (package
(name "python-breathe") (name "python-breathe")
(version "4.30.0") (version "4.34.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "breathe" version)) (uri (pypi-uri "breathe" version))
(sha256 (sha256
(base32 (base32
"055h95fkdld7s49878fqjx1nri1drj1czc184vrb7i60mf2yqg9n")))) "18fvphs1cb2cns9q82195fx7lmlwfikzwa10cczavpaax2jnh1xc"))))
(build-system python-build-system) (build-system python-build-system)
(propagated-inputs (propagated-inputs
(list python-docutils python-sphinx)) (list python-docutils python-sphinx))
@ -817,7 +819,7 @@ enabled web server.")
(define-public python-sphinx-autodoc-typehints (define-public python-sphinx-autodoc-typehints
(package (package
(name "python-sphinx-autodoc-typehints") (name "python-sphinx-autodoc-typehints")
(version "1.18.1") (version "1.18.3")
(source (source
(origin (origin
(method git-fetch) ;no tests in pypi archive (method git-fetch) ;no tests in pypi archive
@ -827,7 +829,7 @@ enabled web server.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"16yhpwfdmybir80a6892cnr98m58p19rklmjdlzhk3njx7di8jzp")))) "049dlay21f4bccig31fkbzq2m8v0h6g63p1cn3dxay9q3h0mzgs0"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
(list (list

View File

@ -39,6 +39,7 @@
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages libbsd) #:use-module (gnu packages libbsd)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages mpd) #:use-module (gnu packages mpd)
@ -519,31 +520,33 @@ point surf to another URI by setting its XProperties.")
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases (modify-phases %standard-phases
(delete 'configure)) ; no configuration (delete 'configure) ;no configuration
#:tests? #f ; no test suite (add-before 'build 'patch-farbfeld
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "config.def.h"
(("2ff") (search-input-file inputs "/bin/2ff"))))))
#:tests? #f ;no test suite
#:make-flags #:make-flags
(let ((pkg-config (lambda (flag) (let ((pkg-config (lambda (flag)
(string-append (string-append "$(shell pkg-config " flag " "
"$(shell pkg-config " flag " " "xft fontconfig x11 libpng)"))))
"xft fontconfig x11 libpng)")))) (list (string-append "CC="
(list (string-append "CC=" ,(cc-for-target)) ,(cc-for-target))
(string-append "PREFIX=" %output) (string-append "PREFIX=" %output)
(string-append "INCS=-I. " (pkg-config "--cflags")) (string-append "INCS=-I. "
(string-append "LIBS=" (pkg-config "--libs") " -lm"))))) (pkg-config "--cflags"))
(native-inputs (string-append "LIBS="
(list pkg-config)) (pkg-config "--libs") " -lm")))))
(inputs (native-inputs (list pkg-config))
`(("libpng" ,libpng) (inputs (list farbfeld libpng libx11 libxft fontconfig))
("libx11" ,libx11)
("libxft" ,libxft)
("fontconfig" ,fontconfig)))
(synopsis "Plain-text presentation tool") (synopsis "Plain-text presentation tool")
(description "Sent uses plain-text files and PNG images to create slideshow (description
"Sent uses plain-text files and PNG images to create slideshow
presentations. Each paragraph represents a slide in the presentation. presentations. Each paragraph represents a slide in the presentation.
Especially for presentations using the Takahashi method this is very nice and Especially for presentations using the Takahashi method this is very nice and
allows you to write down the presentation for a quick lightning talk within a allows you to write down the presentation for a quick lightning talk within a
few minutes.") few minutes.")
(home-page "https://tools.suckless.org/sent") (home-page "https://tools.suckless.org/sent/")
(license license:x11))) (license license:x11)))
(define-public wmname (define-public wmname
@ -1049,7 +1052,7 @@ support.")
(define-public sfeed (define-public sfeed
(package (package
(name "sfeed") (name "sfeed")
(version "1.1") (version "1.5")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -1059,7 +1062,7 @@ support.")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1b0l6f9aymk54ncc2kxavhg4flcqv7d4mpkpw8ljx7mzg0g4ygyk")))) (base32 "1w3xk00nv502q2nr23y1sig7bkqa7f431f4fcaybfcfk7dbv2piq"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list (list
@ -1084,3 +1087,43 @@ There are formatting programs included to convert this TAB-separated format to
various other formats. There are also some programs and scripts included to various other formats. There are also some programs and scripts included to
import and export OPML and to fetch, filter, merge and order feed items.") import and export OPML and to fetch, filter, merge and order feed items.")
(license license:isc))) (license license:isc)))
(define-public farbfeld
(let ((commit "ab5e3dfc9cdb476218538c6687df9f44826d8f11") (revision "0"))
(package
(name "farbfeld")
(version (git-version "4" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "git://git.suckless.org/farbfeld")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0pkmkvv5ggpzqwqdchd19442x8gh152xy5z1z13ipfznhspsf870"))))
(build-system gnu-build-system)
(inputs (list libpng libjpeg-turbo imagemagick))
(arguments
(list #:tests?
#f ;no check target
#:make-flags
#~(list (string-append "PREFIX="
#$output)
(string-append "CC="
#$(cc-for-target)))
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'patch-2ff
(lambda* (#:key inputs outputs #:allow-other-keys)
(substitute* "2ff"
(("png2ff") (string-append #$output "/bin/png2ff"))
(("jpg2ff") (string-append #$output "/bin/jpg2ff"))
(("convert") (search-input-file inputs "/bin/convert")))))
(delete 'configure))))
(synopsis "Image format and conversion tools")
(description
"farbfeld is a lossless image format which is easy to parse,
pipe and compress.")
(home-page "https://git.suckless.org/farbfeld/")
(license license:isc))))

View File

@ -37,6 +37,7 @@
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#: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-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages time) #:use-module (gnu packages time)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)

View File

@ -56,6 +56,7 @@
#:use-module (gnu packages code) #:use-module (gnu packages code)
#:use-module (gnu packages cpp) #:use-module (gnu packages cpp)
#:use-module (gnu packages crates-io) #:use-module (gnu packages crates-io)
#:use-module (gnu packages datastructures)
#:use-module (gnu packages documentation) #:use-module (gnu packages documentation)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop) #:use-module (gnu packages freedesktop)
@ -1215,3 +1216,53 @@ can be embedded in any application
This package includes the @code{libtree-sitter} runtime library. This package includes the @code{libtree-sitter} runtime library.
") ")
(license license:expat))) (license license:expat)))
(define-public mle
(package
(name "mle")
(version "1.5.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/adsr/mle")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1nhd00lsx9v12zdmps92magz76c2d8zzln3lxvzl4ng73gbvq3n0"))))
(build-system gnu-build-system)
(inputs (list lua pcre uthash))
(arguments
`(#:test-target "test"
#:phases (modify-phases %standard-phases
(add-after 'unpack 'fix-lua
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "mle.h"
(("<lua5.4/") "<"))
(substitute* "Makefile"
(("-llua5.4") "-llua")
(("/bin/sh") (which "sh")))))
(add-after 'unpack 'patch-test-shebangs
(lambda _
(substitute* (find-files "tests/func" "\\.sh$")
(("/usr/bin/env bash") (which "bash")))))
(delete 'configure) ;no configure script
(add-after 'install 'install-man-pages
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(man (string-append out
"/share/man/man1")))
(install-file "mle.1"
(string-append man))))))
#:make-flags (list (string-append "CC="
,(cc-for-target))
(string-append "prefix=" %output))))
(home-page "https://github.com/adsr/mle")
(synopsis "Small, flexible, terminal-based text editor")
(description
"mle is a small, flexible, terminal-based text editor written in C.
Notable features include: full Unicode support, syntax highlighting,
scriptable rc file, macros, search and replace (PCRE), window
splitting, multiple cursors, and integration with various shell
commands.")
(license license:asl2.0)))

View File

@ -43,6 +43,7 @@
#:use-module (gnu packages golang) #:use-module (gnu packages golang)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages terminals) #:use-module (gnu packages terminals)
#:use-module (gnu packages textutils) #:use-module (gnu packages textutils)

View File

@ -351,6 +351,7 @@ OpenSSL for TARGET."
(package (package
(name "openssl") (name "openssl")
(version "1.1.1n") (version "1.1.1n")
(replacement openssl/fixed)
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (list (string-append "https://www.openssl.org/source/openssl-" (uri (list (string-append "https://www.openssl.org/source/openssl-"
@ -473,10 +474,29 @@ OpenSSL for TARGET."
(license license:openssl) (license license:openssl)
(home-page "https://www.openssl.org/"))) (home-page "https://www.openssl.org/")))
(define openssl/fixed
(package
(inherit openssl)
(name "openssl")
(version "1.1.1p")
(source (origin
(method url-fetch)
(uri (list (string-append "https://www.openssl.org/source/openssl-"
version ".tar.gz")
(string-append "ftp://ftp.openssl.org/source/"
"openssl-" version ".tar.gz")
(string-append "ftp://ftp.openssl.org/source/old/"
(string-trim-right version char-set:letter)
"/openssl-" version ".tar.gz")))
(patches (search-patches "openssl-1.1-c-rehash-in.patch"))
(sha256
(base32
"0vyfibydji26wk1fmm0piz0810mfr7j4vaa2k5iwgiv6m8mbcqdz"))))))
(define-public openssl-3.0 (define-public openssl-3.0
(package (package
(inherit openssl) (inherit openssl)
(version "3.0.3") (version "3.0.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (list (string-append "https://www.openssl.org/source/openssl-" (uri (list (string-append "https://www.openssl.org/source/openssl-"
@ -489,7 +509,7 @@ OpenSSL for TARGET."
(patches (search-patches "openssl-3.0-c-rehash-in.patch")) (patches (search-patches "openssl-3.0-c-rehash-in.patch"))
(sha256 (sha256
(base32 (base32
"02wcan5izwsxg6vl5fzkqq4icwi7cp4hrj327h05zppirsnph07f")))) "03y0q2pzpkpgfgf74x4pf8gyar9d7pb0l0p7g2s0m2k6k8z88c98"))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments openssl) (substitute-keyword-arguments (package-arguments openssl)
((#:phases phases '%standard-phases) ((#:phases phases '%standard-phases)

View File

@ -2467,7 +2467,7 @@ YouTube.com and many more sites.")
(define-public yt-dlp (define-public yt-dlp
(package/inherit youtube-dl (package/inherit youtube-dl
(name "yt-dlp") (name "yt-dlp")
(version "2022.05.18") (version "2022.06.22.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/yt-dlp/yt-dlp/" (uri (string-append "https://github.com/yt-dlp/yt-dlp/"
@ -2475,7 +2475,7 @@ YouTube.com and many more sites.")
version "/yt-dlp.tar.gz")) version "/yt-dlp.tar.gz"))
(sha256 (sha256
(base32 (base32
"0wiiwqj8m4z6lladmrsp9354ddwlhn2gf0b39j271001g6fyi82r")) "1nr6g3dhvjc10jzhyvgjrrxqhsgi3hiw8bswp8bi6bscimd9vhps"))
(snippet (snippet
'(begin '(begin
;; Delete the pre-generated files, except for the man page ;; Delete the pre-generated files, except for the man page

View File

@ -18,7 +18,7 @@
;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2021 Leo Famulari <leo@famulari.name> ;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2021, 2022 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2021 Dion Mendel <guix@dm9.info> ;;; Copyright © 2021 Dion Mendel <guix@dm9.info>
;;; Copyright © 2021 Andrew Whatson <whatson@gmail.com> ;;; Copyright © 2021 Andrew Whatson <whatson@gmail.com>
;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
@ -1166,7 +1166,7 @@ It started as a side project of LXC but can be used by any run-time.")
(define-public lxd (define-public lxd
(package (package
(name "lxd") (name "lxd")
(version "4.22") (version "4.24")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1174,7 +1174,7 @@ It started as a side project of LXC but can be used by any run-time.")
"lxd-" version "/lxd-" version ".tar.gz")) "lxd-" version "/lxd-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"119345936fcm1vv06k82k9hvj5yjf9jdrwqm9ccphhl5mswf8xq9")))) "0lmjmvm98m6yjxcqlfw690i71nazfzgrm3mzbjj77g1631df3ylp"))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
`(#:import-path "github.com/lxc/lxd" `(#:import-path "github.com/lxc/lxd"
@ -1817,7 +1817,7 @@ main monitor/GPU.")
(define-public runc (define-public runc
(package (package
(name "runc") (name "runc")
(version "1.0.0-rc93") (version "1.1.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1826,7 +1826,7 @@ main monitor/GPU.")
(file-name (string-append name "-" version ".tar.xz")) (file-name (string-append name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0b90r1bkvlqli53ca1yc1l488dba0isd3i6l7nlhszxi8p7hzvkh")))) "0jx56x49dgkygdbrfb3pmxycy1n37arj97jra8n422dj36xz1hbm"))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
'(#:import-path "github.com/opencontainers/runc" '(#:import-path "github.com/opencontainers/runc"
@ -1851,8 +1851,7 @@ main monitor/GPU.")
(invoke "make" "install" "install-bash" "install-man" (invoke "make" "install" "install-bash" "install-man"
(string-append "PREFIX=" out))))))))) (string-append "PREFIX=" out)))))))))
(native-inputs (native-inputs
`(("go-md2man" ,go-github-com-go-md2man) (list go-github-com-go-md2man pkg-config))
("pkg-config" ,pkg-config)))
(inputs (inputs
(list libseccomp)) (list libseccomp))
(synopsis "Open container initiative runtime") (synopsis "Open container initiative runtime")

View File

@ -37,7 +37,7 @@
;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl> ;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
;;; Copyright © 2020 EuAndreh <eu@euandre.org> ;;; Copyright © 2020 EuAndreh <eu@euandre.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2020, 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com> ;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;; Copyright © 2020 Niklas Eklund <niklas.eklund@posteo.net> ;;; Copyright © 2020 Niklas Eklund <niklas.eklund@posteo.net>
;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net> ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
@ -55,6 +55,7 @@
;;; Copyright © 2022 Pier-Hugues Pellerin <ph@heykimo.com> ;;; Copyright © 2022 Pier-Hugues Pellerin <ph@heykimo.com>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 muradm <mail@muradm.net> ;;; Copyright © 2022 muradm <mail@muradm.net>
;;; Copyright © 2022 Elais Player <elais@fastmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -130,6 +131,7 @@
#:use-module (gnu packages pretty-print) #:use-module (gnu packages pretty-print)
#: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-build)
#:use-module (gnu packages python-crypto) #:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages readline) #:use-module (gnu packages readline)
@ -1469,19 +1471,29 @@ its size
(define-public polybar (define-public polybar
(package (package
(name "polybar") (name "polybar")
(version "3.5.7") (version "3.6.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/polybar/polybar/releases/" (uri (string-append "https://github.com/polybar/polybar/releases/"
"download/" version "/polybar-" version ".tar.gz")) "download/" version "/polybar-" version ".tar.gz"))
(sha256 (sha256
(base32 "1nr386jdlm8qkbdf23w7lyvbfhr362s90f957fawnyi1finhw8bk")))) (base32 "19azx5dpfyfh0pv4q2fcrf4p7a0pc5d13m7lnv3qy8376mbmhmzj"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
;; Test is disabled because it requires downloading googletest from the ;; Test is disabled because it requires downloading googletest from the
;; Internet. ;; Internet.
'(#:tests? #f)) (list #:tests? #f
#:phases
#~(modify-phases %standard-phases
;; Make polybar find its default configuration file in the
;; store.
(add-after 'unpack 'patch-config-path
(lambda _
(substitute* "CMakeLists.txt"
(("/etc") (string-append #$output "/etc")))
(substitute* "src/utils/file.cpp"
(("\"/etc\"") (string-append "\"" #$output "/etc\""))))))))
(inputs (inputs
(list alsa-lib (list alsa-lib
cairo cairo
@ -1489,6 +1501,7 @@ its size
jsoncpp jsoncpp
libmpdclient libmpdclient
libnl libnl
libuv
libxcb libxcb
pulseaudio pulseaudio
xcb-proto xcb-proto
@ -1498,12 +1511,9 @@ its size
xcb-util-wm xcb-util-wm
xcb-util-xrm)) xcb-util-xrm))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) (list pkg-config
("python-sphinx" ,python-sphinx) ; for the manual python-sphinx ; for the manual
;; XXX: "python" input must be located after "python-2", or the package python)) ; xcb-proto depends on python 3
;; fails to build with "missing required python module: xcbgen".
("python-2" ,python-2) ; lib/xpp depends on python 2
("python" ,python))) ; xcb-proto depends on python 3
(home-page "https://polybar.github.io/") (home-page "https://polybar.github.io/")
(synopsis "Fast and easy-to-use status bar") (synopsis "Fast and easy-to-use status bar")
(description "Polybar aims to help users build beautiful and highly (description "Polybar aims to help users build beautiful and highly
@ -1538,7 +1548,7 @@ functionality to display information about the most commonly used services.")
(propagated-inputs (propagated-inputs
(list ;; As required by wlroots.pc. (list ;; As required by wlroots.pc.
eudev eudev
libinput libinput-minimal
libxkbcommon libxkbcommon
mesa mesa
pixman pixman
@ -1572,7 +1582,10 @@ modules for building a Wayland compositor.")
(base32 "0ss3l258blyf2d0lwd7pi7ga1fxfj8pxhag058k7cmjhs3y30y5l")))) (base32 "0ss3l258blyf2d0lwd7pi7ga1fxfj8pxhag058k7cmjhs3y30y5l"))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments (arguments
`(#:phases `(;; elogind is propagated by wlroots -> libseat
;; and would otherwise shadow basu.
#:configure-flags '("-Dsd-bus-provider=basu")
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'hardcode-paths (add-before 'configure 'hardcode-paths
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
@ -1587,12 +1600,12 @@ modules for building a Wayland compositor.")
(string-append "'" (assoc-ref inputs "scdoc") (string-append "'" (assoc-ref inputs "scdoc")
"/bin/scdoc'"))) "/bin/scdoc'")))
#t))))) #t)))))
(inputs (list cairo (inputs (list basu
elogind cairo
gdk-pixbuf gdk-pixbuf
json-c json-c
libevdev libevdev
libinput libinput-minimal
libxkbcommon libxkbcommon
pango pango
swaybg swaybg
@ -1724,7 +1737,7 @@ display a clock or apply image manipulation techniques to the background image."
gtkmm-3 gtkmm-3
jsoncpp jsoncpp
libdbusmenu libdbusmenu
libinput libinput-minimal
libmpdclient libmpdclient
libnl libnl
libxml2 libxml2
@ -1785,16 +1798,16 @@ compositors that support the layer-shell protocol.")
(define-public kanshi (define-public kanshi
(package (package
(name "kanshi") (name "kanshi")
(version "1.1.0") (version "1.2.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/emersion/kanshi") (url "https://git.sr.ht/~emersion/kanshi")
(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 "0nbpgm8qnn7ljsg9vgs35kl8l4rrk542vdcbx8wrn9r909ld3x92")))) (base32 "10lxagwc2pkq86g2sxkwljjd39sahp3w1j5yx853d3c4d95iwls5"))))
(build-system meson-build-system) (build-system meson-build-system)
(inputs (list wayland)) (inputs (list wayland))
(native-inputs (list pkg-config scdoc)) (native-inputs (list pkg-config scdoc))
@ -1808,7 +1821,7 @@ Wayland compositors supporting the wlr-output-management protocol.")
(define-public stumpwm (define-public stumpwm
(package (package
(name "stumpwm") (name "stumpwm")
(version "20.11") (version "22.05")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -1817,55 +1830,60 @@ Wayland compositors supporting the wlr-output-management protocol.")
(commit version))) (commit version)))
(file-name (git-file-name "stumpwm" version)) (file-name (git-file-name "stumpwm" version))
(sha256 (sha256
(base32 "1ghs6ihvmb3bz4q4ys1d3h6rdi96xyiw7l2ip7jh54c25049aymf")))) (base32 "12hf70mpwy0ixiyvv8sf8pkwrzz8nb12a8ybvsdpibsxfjxgxnan"))))
(build-system asdf-build-system/sbcl) (build-system asdf-build-system/sbcl)
(native-inputs `(("fiasco" ,sbcl-fiasco) (native-inputs
("texinfo" ,texinfo) (list sbcl-fiasco
texinfo
;; To build the manual. ;; To build the manual.
("autoconf" ,autoconf) autoconf
("automake" ,automake))) automake))
(inputs `(("cl-ppcre" ,sbcl-cl-ppcre) (inputs
("clx" ,sbcl-clx) (list sbcl-alexandria
("alexandria" ,sbcl-alexandria))) sbcl-cl-ppcre
sbcl-clx))
(outputs '("out" "lib")) (outputs '("out" "lib"))
(arguments (arguments
'(#:asd-systems '("stumpwm") (list
#:phases #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'create-asdf-configuration 'build-program (add-after 'unpack 'fix-tests
(lambda* (#:key outputs #:allow-other-keys) (lambda _
(build-program (substitute* "stumpwm-tests.asd"
(string-append (assoc-ref outputs "out") "/bin/stumpwm") (("\"ALL-TESTS\"")
outputs "\"RUN-PACKAGE-TESTS\" :package"))))
#:entry-program '((stumpwm:stumpwm) 0)))) (add-after 'create-asdf-configuration 'build-program
(add-after 'build-program 'create-desktop-file (lambda* (#:key outputs #:allow-other-keys)
(lambda* (#:key outputs #:allow-other-keys) (build-program
(let* ((out (assoc-ref outputs "out")) (string-append (assoc-ref outputs "out") "/bin/stumpwm")
(xsessions (string-append out "/share/xsessions"))) outputs
(mkdir-p xsessions) #:entry-program '((stumpwm:stumpwm) 0))))
(call-with-output-file (add-after 'build-program 'create-desktop-file
(string-append xsessions "/stumpwm.desktop") (lambda* (#:key outputs #:allow-other-keys)
(lambda (file) (let* ((out (assoc-ref outputs "out"))
(format file (xsessions (string-append out "/share/xsessions")))
"[Desktop Entry]~@ (mkdir-p xsessions)
Name=stumpwm~@ (call-with-output-file
Comment=The Stump Window Manager~@ (string-append xsessions "/stumpwm.desktop")
Exec=~a/bin/stumpwm~@ (lambda (file)
TryExec=~@*~a/bin/stumpwm~@ (format file
Icon=~@ "[Desktop Entry]~@
Type=Application~%" Name=stumpwm~@
out))) Comment=The Stump Window Manager~@
#t))) Exec=~a/bin/stumpwm~@
(add-after 'install 'install-manual TryExec=~@*~a/bin/stumpwm~@
(lambda* (#:key (make-flags '()) outputs #:allow-other-keys) Icon=~@
(let* ((out (assoc-ref outputs "out")) Type=Application~%"
(info (string-append out "/share/info"))) out))))))
(invoke "./autogen.sh") (add-after 'install 'install-manual
(invoke "sh" "./configure" "SHELL=sh") (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
(apply invoke "make" "stumpwm.info" make-flags) (let* ((out (assoc-ref outputs "out"))
(install-file "stumpwm.info" info) (info (string-append out "/share/info")))
#t)))))) (invoke "./autogen.sh")
(invoke "sh" "./configure" "SHELL=sh")
(apply invoke "make" "stumpwm.info" make-flags)
(install-file "stumpwm.info" info)))))))
(synopsis "Window manager written in Common Lisp") (synopsis "Window manager written in Common Lisp")
(description "Stumpwm is a window manager written entirely in Common Lisp. (description "Stumpwm is a window manager written entirely in Common Lisp.
It attempts to be highly customizable while relying entirely on the keyboard It attempts to be highly customizable while relying entirely on the keyboard
@ -2566,7 +2584,7 @@ read and write, and compatible with JSON.")
(list bmake pkg-config wayland-protocols)) (list bmake pkg-config wayland-protocols))
(inputs (inputs
(list cairo (list cairo
libinput libinput-minimal
libucl libucl
libxkbcommon libxkbcommon
linux-pam linux-pam

View File

@ -27,7 +27,8 @@
#:use-module (guix records) #:use-module (guix records)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module ((guix utils) #:select (source-properties->location)) #:use-module ((guix utils) #:select (source-properties->location))
#:use-module ((guix diagnostics) #:select (formatted-message location-file)) #:use-module ((guix diagnostics)
#:select (formatted-message location-file &error-location))
#:use-module ((guix modules) #:select (file-name->module-name)) #:use-module ((guix modules) #:select (file-name->module-name))
#:use-module (guix i18n) #:use-module (guix i18n)
#:autoload (texinfo) (texi-fragment->stexi) #:autoload (texinfo) (texi-fragment->stexi)
@ -56,7 +57,6 @@
serialize-configuration serialize-configuration
define-maybe define-maybe
define-maybe/no-serialization define-maybe/no-serialization
validate-configuration
generate-documentation generate-documentation
configuration->documentation configuration->documentation
empty-serializer empty-serializer
@ -87,9 +87,17 @@
(define (configuration-error message) (define (configuration-error message)
(raise (condition (&message (message message)) (raise (condition (&message (message message))
(&configuration-error)))) (&configuration-error))))
(define (configuration-field-error field val) (define (configuration-field-error loc field value)
(configuration-error (raise (apply
(format #f "Invalid value for field ~a: ~s" field val))) make-compound-condition
(formatted-message (G_ "invalid value ~s for field '~a'")
value field)
(condition (&configuration-error))
(if loc
(list (condition
(&error-location (location loc))))
'()))))
(define (configuration-missing-field kind field) (define (configuration-missing-field kind field)
(configuration-error (configuration-error
(format #f "~a configuration missing required field ~a" kind field))) (format #f "~a configuration missing required field ~a" kind field)))
@ -116,14 +124,6 @@ does not have a default value" field kind)))
((configuration-field-getter field) config))) ((configuration-field-getter field) config)))
fields))) fields)))
(define (validate-configuration config fields)
(for-each (lambda (field)
(let ((val ((configuration-field-getter field) config)))
(unless ((configuration-field-predicate field) val)
(configuration-field-error
(configuration-field-name field) val))))
fields))
(define-syntax-rule (id ctx parts ...) (define-syntax-rule (id ctx parts ...)
"Assemble PARTS into a raw (unhygienic) identifier." "Assemble PARTS into a raw (unhygienic) identifier."
(datum->syntax ctx (symbol-append (syntax->datum parts) ...))) (datum->syntax ctx (symbol-append (syntax->datum parts) ...)))
@ -210,9 +210,33 @@ does not have a default value" field kind)))
(id #'stem #'serialize- type)))))) (id #'stem #'serialize- type))))))
#'(field-type ...) #'(field-type ...)
#'((custom-serializer ...) ...)))) #'((custom-serializer ...) ...))))
(define (field-sanitizer name pred)
;; Define a macro for use as a record field sanitizer, where NAME
;; is the name of the field and PRED is the predicate that tells
;; whether a value is valid for this field.
#`(define-syntax #,(id #'stem #'validate- #'stem #'- name)
(lambda (s)
;; Make sure the given VALUE, for field NAME, passes PRED.
(syntax-case s ()
((_ value)
(with-syntax ((name #'#,name)
(pred #'#,pred)
(loc (datum->syntax #'value
(syntax-source #'value))))
#'(if (pred value)
value
(configuration-field-error
(and=> 'loc source-properties->location)
'name value))))))))
#`(begin #`(begin
;; Define field validation macros.
#,@(map field-sanitizer
#'(field ...)
#'(field-predicate ...))
(define-record-type* #,(id #'stem #'< #'stem #'>) (define-record-type* #,(id #'stem #'< #'stem #'>)
#,(id #'stem #'% #'stem) stem
#,(id #'stem #'make- #'stem) #,(id #'stem #'make- #'stem)
#,(id #'stem #'stem #'?) #,(id #'stem #'stem #'?)
(%location #,(id #'stem #'stem #'-location) (%location #,(id #'stem #'stem #'-location)
@ -220,10 +244,13 @@ does not have a default value" field kind)))
source-properties->location)) source-properties->location))
(innate)) (innate))
#,@(map (lambda (name getter def) #,@(map (lambda (name getter def)
#`(#,name #,getter (default #,def))) #`(#,name #,getter (default #,def)
(sanitize
#,(id #'stem #'validate- #'stem #'- name))))
#'(field ...) #'(field ...)
#'(field-getter ...) #'(field-getter ...)
#'(field-default ...))) #'(field-default ...)))
(define #,(id #'stem #'stem #'-fields) (define #,(id #'stem #'stem #'-fields)
(list (configuration-field (list (configuration-field
(name 'field) (name 'field)
@ -240,12 +267,7 @@ does not have a default value" field kind)))
'#,(id #'stem #'% #'stem) 'field) '#,(id #'stem #'% #'stem) 'field)
field-default))) field-default)))
(documentation doc)) (documentation doc))
...)) ...))))))))
(define-syntax-rule (stem arg (... ...))
(let ((conf (#,(id #'stem #'% #'stem) arg (... ...))))
(validate-configuration conf
#,(id #'stem #'stem #'-fields))
conf))))))))
(define no-serialization ;syntactic keyword for 'define-configuration' (define no-serialization ;syntactic keyword for 'define-configuration'
'(no serialization)) '(no serialization))

View File

@ -285,7 +285,7 @@ the section name.")
(serialize-fifo-listener-configuration field-name val)) (serialize-fifo-listener-configuration field-name val))
((inet-listener-configuration? val) ((inet-listener-configuration? val)
(serialize-inet-listener-configuration field-name val)) (serialize-inet-listener-configuration field-name val))
(else (configuration-field-error field-name val)))) (else (configuration-field-error #f field-name val))))
(define (listener-configuration-list? val) (define (listener-configuration-list? val)
(and (list? val) (and-map listener-configuration? val))) (and (list? val) (and-map listener-configuration? val)))
(define (serialize-listener-configuration-list field-name val) (define (serialize-listener-configuration-list field-name val)
@ -1610,10 +1610,6 @@ POP3, IMAP, and LMTP. @var{config} should be a configuration object created
by @code{dovecot-configuration}. @var{config} may also be created by by @code{dovecot-configuration}. @var{config} may also be created by
@code{opaque-dovecot-configuration}, which allows specification of the @code{opaque-dovecot-configuration}, which allows specification of the
@code{dovecot.conf} as a string." @code{dovecot.conf} as a string."
(validate-configuration config
(if (opaque-dovecot-configuration? config)
opaque-dovecot-configuration-fields
dovecot-configuration-fields))
(service dovecot-service-type config)) (service dovecot-service-type config))
;; A little helper to make it easier to document all those fields. ;; A little helper to make it easier to document all those fields.

View File

@ -540,11 +540,9 @@ is truncated and rewritten every minute.")
to an existing @acronym{VPN, virtual private network}."))) to an existing @acronym{VPN, virtual private network}.")))
(define* (openvpn-client-service #:key (config (openvpn-client-configuration))) (define* (openvpn-client-service #:key (config (openvpn-client-configuration)))
(validate-configuration config openvpn-client-configuration-fields)
(service openvpn-client-service-type config)) (service openvpn-client-service-type config))
(define* (openvpn-server-service #:key (config (openvpn-server-configuration))) (define* (openvpn-server-service #:key (config (openvpn-server-configuration)))
(validate-configuration config openvpn-server-configuration-fields)
(service openvpn-server-service-type config)) (service openvpn-server-service-type config))
(define (generate-openvpn-server-documentation) (define (generate-openvpn-server-documentation)
@ -814,7 +812,8 @@ PostUp = ~a set %i private-key ~a
(start #~(lambda _ (start #~(lambda _
(invoke #$wg-quick "up" #$config))) (invoke #$wg-quick "up" #$config)))
(stop #~(lambda _ (stop #~(lambda _
(invoke #$wg-quick "down" #$config))) (invoke #$wg-quick "down" #$config)
#f)) ;stopped!
(documentation "Run the Wireguard VPN tunnel")))))) (documentation "Run the Wireguard VPN tunnel"))))))
(define wireguard-service-type (define wireguard-service-type

View File

@ -2,6 +2,7 @@
;;; Copyright © 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2022 Pavel Shlyak <p.shlyak@pantherx.org> ;;; Copyright © 2022 Pavel Shlyak <p.shlyak@pantherx.org>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -66,6 +67,7 @@
root-label root-label
esp-partition esp-partition
esp32-partition
root-partition root-partition
efi-disk-image efi-disk-image
@ -75,6 +77,7 @@
image-with-os image-with-os
efi-raw-image-type efi-raw-image-type
efi32-raw-image-type
qcow2-image-type qcow2-image-type
iso-image-type iso-image-type
uncompressed-iso-image-type uncompressed-iso-image-type
@ -110,6 +113,11 @@
(flags '(esp)) (flags '(esp))
(initializer (gexp initialize-efi-partition)))) (initializer (gexp initialize-efi-partition))))
(define esp32-partition
(partition
(inherit esp-partition)
(initializer (gexp initialize-efi32-partition))))
(define root-partition (define root-partition
(partition (partition
(size 'guess) (size 'guess)
@ -123,6 +131,11 @@
(format 'disk-image) (format 'disk-image)
(partitions (list esp-partition root-partition)))) (partitions (list esp-partition root-partition))))
(define efi32-disk-image
(image
(format 'disk-image)
(partitions (list esp32-partition root-partition))))
(define iso9660-image (define iso9660-image
(image (image
(format 'iso9660) (format 'iso9660)
@ -164,6 +177,11 @@ set to the given OS."
(name 'efi-raw) (name 'efi-raw)
(constructor (cut image-with-os efi-disk-image <>)))) (constructor (cut image-with-os efi-disk-image <>))))
(define efi32-raw-image-type
(image-type
(name 'efi32-raw)
(constructor (cut image-with-os efi32-disk-image <>))))
(define qcow2-image-type (define qcow2-image-type
(image-type (image-type
(name 'qcow2) (name 'qcow2)
@ -376,6 +394,7 @@ used in the image."
#$(image-shared-store? image)) #$(image-shared-store? image))
#:system-directory #$os #:system-directory #$os
#:grub-efi #+grub-efi #:grub-efi #+grub-efi
#:grub-efi32 #+grub-efi32
#:bootloader-package #:bootloader-package
#+(bootloader-package bootloader) #+(bootloader-package bootloader)
#:bootloader-installer #:bootloader-installer

View File

@ -79,7 +79,8 @@ inside %DOCKER-OS."
(gnu build marionette)) (gnu build marionette))
(define marionette (define marionette
(make-marionette (list #$vm))) ;; Relax timeout to accommodate older systems.
(make-marionette (list #$vm) #:timeout 60))
(test-runner-current (system-test-runner #$output)) (test-runner-current (system-test-runner #$output))
(test-begin "docker") (test-begin "docker")
@ -221,7 +222,8 @@ inside %DOCKER-OS."
(guix build utils)) (guix build utils))
(define marionette (define marionette
(make-marionette (list #$vm))) ;; Relax timeout to accommodate older systems.
(make-marionette (list #$vm) #:timeout 60))
(test-runner-current (system-test-runner #$output)) (test-runner-current (system-test-runner #$output))
(test-begin "docker") (test-begin "docker")

View File

@ -58,7 +58,9 @@
(guix combinators)))) (guix combinators))))
(define vm (define vm
(virtual-machine os)) (virtual-machine
(operating-system os)
(memory-size 1024)))
(define test (define test
(with-imported-modules '((gnu build marionette)) (with-imported-modules '((gnu build marionette))

View File

@ -51,6 +51,13 @@
(let ((pkg-config (resolve-interface '(gnu packages pkg-config)))) (let ((pkg-config (resolve-interface '(gnu packages pkg-config))))
(module-ref pkg-config 'pkg-config))) (module-ref pkg-config 'pkg-config)))
(define (default-ld-gold-wrapper)
"Return the default ld-gold-wrapper package."
;; LDC doesn't work with Guix's default (BFD) linker.
;; Lazily resolve the binding to avoid a circular dependency.
(let ((commencement (resolve-interface '(gnu packages commencement))))
(module-ref commencement 'ld-gold-wrapper)))
(define %dub-build-system-modules (define %dub-build-system-modules
;; Build-side modules imported by default. ;; Build-side modules imported by default.
`((guix build dub-build-system) `((guix build dub-build-system)
@ -100,6 +107,7 @@
(ldc (default-ldc)) (ldc (default-ldc))
(dub (default-dub)) (dub (default-dub))
(pkg-config (default-pkg-config)) (pkg-config (default-pkg-config))
(ld-gold-wrapper (default-ld-gold-wrapper))
#:allow-other-keys #:allow-other-keys
#:rest arguments) #:rest arguments)
"Return a bag for NAME." "Return a bag for NAME."
@ -121,6 +129,7 @@
,@(standard-packages))) ,@(standard-packages)))
(build-inputs `(("ldc" ,ldc) (build-inputs `(("ldc" ,ldc)
("dub" ,dub) ("dub" ,dub)
("ld-gold-wrapper" ,ld-gold-wrapper)
,@native-inputs)) ,@native-inputs))
(outputs outputs) (outputs outputs)
(build dub-build) (build dub-build)

View File

@ -112,6 +112,17 @@ unpacking."
(when tests? (when tests?
(invoke "chicken-install" "-cached" "-test" "-no-install" egg-name))) (invoke "chicken-install" "-cached" "-test" "-no-install" egg-name)))
(define* (stamp-egg-version #:key egg-name name #:allow-other-keys)
"Check if EGG-NAME.egg contains version information and add some if not."
(let* ((filename (string-append egg-name "/" egg-name ".egg"))
(egg-info (call-with-input-file filename read))
(ver? (find (lambda (i) (eqv? (car i) 'version)) egg-info))
(ver (substring name (1+ (string-rindex name #\-)))))
(when (not ver?)
(make-file-writable filename)
(call-with-output-file filename
(lambda (f) (write (cons `(version ,ver) egg-info) f))))))
;; It doesn't look like Chicken generates any unnecessary references. ;; It doesn't look like Chicken generates any unnecessary references.
;; So we don't have to remove them either. Nice. ;; So we don't have to remove them either. Nice.
@ -122,6 +133,7 @@ unpacking."
(delete 'configure) (delete 'configure)
(delete 'patch-generated-file-shebangs) (delete 'patch-generated-file-shebangs)
(add-before 'unpack 'setup-chicken-environment setup-chicken-environment) (add-before 'unpack 'setup-chicken-environment setup-chicken-environment)
(add-before 'build 'stamp-egg-version stamp-egg-version)
(replace 'build build) (replace 'build build)
(delete 'check) (delete 'check)
(replace 'install install) (replace 'install install)

View File

@ -48,10 +48,10 @@
(_ #f))) (_ #f)))
(define* (configure #:key inputs #:allow-other-keys) (define* (configure #:key inputs #:allow-other-keys)
"Prepare one new directory with all the required dependencies. "Prepare one new directory with all the required dependencies. It's necessary
It's necessary to do this (instead of just using /gnu/store as the to do this (instead of just using /gnu/store as the directory) because we want
directory) because we want to hide the libraries in subdirectories to hide the libraries in subdirectories lib/dub/... instead of polluting the
lib/dub/... instead of polluting the user's profile root." user's profile root."
(let* ((dir (mkdtemp! "/tmp/dub.XXXXXX")) (let* ((dir (mkdtemp! "/tmp/dub.XXXXXX"))
(vendor-dir (string-append dir "/vendor"))) (vendor-dir (string-append dir "/vendor")))
(setenv "HOME" dir) (setenv "HOME" dir)
@ -67,8 +67,7 @@
(symlink (string-append path "/lib/dub/" d-basename) (symlink (string-append path "/lib/dub/" d-basename)
(string-append vendor-dir "/" d-basename)))))))) (string-append vendor-dir "/" d-basename))))))))
inputs) inputs)
(invoke "dub" "add-path" vendor-dir) (invoke "dub" "add-path" vendor-dir)))
#t))
(define (grep string file-name) (define (grep string file-name)
"Find the first occurrence of STRING in the file named FILE-NAME. "Find the first occurrence of STRING in the file named FILE-NAME.
@ -92,19 +91,11 @@
(unless (or (grep* "sourceLibrary" "package.json") (unless (or (grep* "sourceLibrary" "package.json")
(grep* "sourceLibrary" "dub.sdl") ; note: format is different! (grep* "sourceLibrary" "dub.sdl") ; note: format is different!
(grep* "sourceLibrary" "dub.json")) (grep* "sourceLibrary" "dub.json"))
(apply invoke `("dub" "build" ,@dub-build-flags)) (apply invoke `("dub" "build" ,@dub-build-flags))))
(substitute* ".dub/dub.json"
(("\"lastUpgrade\": \"[^\"]*\"")
"\"lastUpgrade\": \"1970-01-01T00:00:00.0000000\"")))
#t)
(define* (check #:key tests? #:allow-other-keys) (define* (check #:key tests? #:allow-other-keys)
(when tests? (when tests?
(invoke "dub" "test") (invoke "dub" "test")))
(substitute* ".dub/dub.json"
(("\"lastUpgrade\": \"[^\"]*\"")
"\"lastUpgrade\": \"1970-01-01T00:00:00.0000000\"")))
#t)
(define* (install #:key inputs outputs #:allow-other-keys) (define* (install #:key inputs outputs #:allow-other-keys)
"Install a given DUB package." "Install a given DUB package."
@ -115,8 +106,7 @@
;; TODO remove "-test-application" ;; TODO remove "-test-application"
(copy-recursively "bin" outbin) (copy-recursively "bin" outbin)
(mkdir-p outlib) (mkdir-p outlib)
(copy-recursively "." (string-append outlib)) (copy-recursively "." (string-append outlib))))
#t))
(define %standard-phases (define %standard-phases
(modify-phases gnu:%standard-phases (modify-phases gnu:%standard-phases

View File

@ -81,7 +81,10 @@
(names (map string->symbol (names (map string->symbol
(string-tokenize arg not-comma)))) (string-tokenize arg not-comma))))
(alist-cons 'updaters names result)))) (alist-cons 'updaters names result))))
(option '(#\L "list-updaters") #f #f (find (lambda (option)
(member "load-path" (option-names option)))
%standard-build-options)
(option '("list-updaters") #f #f
(lambda args (lambda args
(list-updaters-and-exit))) (list-updaters-and-exit)))
(option '(#\m "manifest") #t #f (option '(#\m "manifest") #t #f
@ -119,19 +122,6 @@
(leave (G_ "unsupported policy: ~a~%") (leave (G_ "unsupported policy: ~a~%")
arg))))) arg)))))
;; The short option -L is already used by --list-updaters, therefore
;; it needs to be removed from %standard-build-options.
(let ((load-path-option (find (lambda (option)
(member "load-path"
(option-names option)))
%standard-build-options)))
(option
(filter (lambda (name) (not (equal? #\L name)))
(option-names load-path-option))
(option-required-arg? load-path-option)
(option-optional-arg? load-path-option)
(option-processor load-path-option)))
(option '(#\h "help") #f #f (option '(#\h "help") #f #f
(lambda args (lambda args
(show-help) (show-help)
@ -160,7 +150,7 @@ specified with `--select'.\n"))
-t, --type=UPDATER,... restrict to updates from the specified updaters -t, --type=UPDATER,... restrict to updates from the specified updaters
(e.g., 'gnu')")) (e.g., 'gnu')"))
(display (G_ " (display (G_ "
-L, --list-updaters list available updaters and exit")) --list-updaters list available updaters and exit"))
(display (G_ " (display (G_ "
-l, --list-dependent list top-level dependent packages that would need to -l, --list-dependent list top-level dependent packages that would need to
be rebuilt as a result of upgrading PACKAGE...")) be rebuilt as a result of upgrading PACKAGE..."))
@ -182,7 +172,7 @@ specified with `--select'.\n"))
used when 'key-download' is not specified")) used when 'key-download' is not specified"))
(newline) (newline)
(display (G_ " (display (G_ "
--load-path=DIR prepend DIR to the package module search path")) -L, --load-path=DIR prepend DIR to the package module search path"))
(newline) (newline)
(display (G_ " (display (G_ "
-h, --help display this help and exit")) -h, --help display this help and exit"))

View File

@ -303,7 +303,8 @@ FORMAT-COMMENT is 'canonicalize-comment'."
(newline port) (newline port)
(display (make-string indent #\space) port)) (display (make-string indent #\space) port))
(let ((column (if newline? indent column))) (let ((column (if newline? indent column)))
(print tail #f (print tail
(keyword? item) ;keep #:key value next to one another
(comment? item) (comment? item)
(loop indent column (loop indent column
(or newline? delimited?) (or newline? delimited?)

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2014 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.com> ;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2020 Christopher Baines <mail@cbaines.net> ;;; Copyright © 2020 Christopher Baines <mail@cbaines.net>
@ -55,11 +55,11 @@
#:use-module (ice-9 ftw) #:use-module (ice-9 ftw)
#:use-module (rnrs bytevectors) #:use-module (rnrs bytevectors)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-19) #:use-module (srfi srfi-19)
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
#:use-module (srfi srfi-34) #:use-module (srfi srfi-34)
#:use-module (srfi srfi-35) #:use-module (srfi srfi-35)
#:use-module (srfi srfi-71)
#:use-module (web uri) #:use-module (web uri)
#:use-module (guix http-client) #:use-module (guix http-client)
#:export (%allow-unauthenticated-substitutes? #:export (%allow-unauthenticated-substitutes?
@ -293,10 +293,10 @@ daemon."
(for-each (cute format port "~a/~a~%" (%store-prefix) <>) (for-each (cute format port "~a/~a~%" (%store-prefix) <>)
(narinfo-references narinfo)) (narinfo-references narinfo))
(let-values (((uri compression file-size) (let ((uri compression file-size
(narinfo-best-uri narinfo (narinfo-best-uri narinfo
#:fast-decompression? #:fast-decompression?
%prefer-fast-decompression?))) %prefer-fast-decompression?)))
(format port "~a\n~a\n" (format port "~a\n~a\n"
(or file-size 0) (or file-size 0)
(or (narinfo-size narinfo) 0)))) (or (narinfo-size narinfo) 0))))
@ -378,13 +378,13 @@ server certificates."
(#f (#f
;; Open a new connection to URI and evict old entries from ;; Open a new connection to URI and evict old entries from
;; CACHE, if any. ;; CACHE, if any.
(let-values (((socket) (let ((socket
(guix:open-connection-for-uri (guix:open-connection-for-uri
uri uri
#:verify-certificate? verify-certificate? #:verify-certificate? verify-certificate?
#:timeout timeout)) #:timeout timeout))
((new-cache evicted) (new-cache evicted
(at-most (- %max-cached-connections 1) cache))) (at-most (- %max-cached-connections 1) cache)))
(for-each (match-lambda (for-each (match-lambda
((_ . port) ((_ . port)
(false-if-exception (close-port port)))) (false-if-exception (close-port port))))
@ -494,49 +494,47 @@ PORT."
(leave (G_ "no valid substitute for '~a'~%") (leave (G_ "no valid substitute for '~a'~%")
store-item)) store-item))
(let-values (((uri compression file-size) (let ((uri compression file-size
(narinfo-best-uri narinfo (narinfo-best-uri narinfo
#:fast-decompression? #:fast-decompression?
%prefer-fast-decompression?))) %prefer-fast-decompression?)))
(unless print-build-trace? (unless print-build-trace?
(format (current-error-port) (format (current-error-port)
(G_ "Downloading ~a...~%") (uri->string uri))) (G_ "Downloading ~a...~%") (uri->string uri)))
(let*-values (((raw download-size) (let* ((raw download-size
;; 'guix publish' without '--cache' doesn't specify a ;; 'guix publish' without '--cache' doesn't specify a
;; Content-Length, so DOWNLOAD-SIZE is #f in this case. ;; Content-Length, so DOWNLOAD-SIZE is #f in this case.
(fetch uri)) (fetch uri))
((progress) (progress
(let* ((dl-size (or download-size (let* ((dl-size (or download-size
(and (equal? compression "none") (and (equal? compression "none")
(narinfo-size narinfo)))) (narinfo-size narinfo))))
(reporter (if print-build-trace? (reporter (if print-build-trace?
(progress-reporter/trace (progress-reporter/trace
destination destination
(uri->string uri) dl-size (uri->string uri) dl-size
(current-error-port)) (current-error-port))
(progress-reporter/file (progress-reporter/file
(uri->string uri) dl-size (uri->string uri) dl-size
(current-error-port) (current-error-port)
#:abbreviation nar-uri-abbreviation)))) #:abbreviation nar-uri-abbreviation))))
;; Keep RAW open upon completion so we can later reuse ;; Keep RAW open upon completion so we can later reuse
;; the underlying connection. Pass the download size so ;; the underlying connection. Pass the download size so
;; that this procedure won't block reading from RAW. ;; that this procedure won't block reading from RAW.
(progress-report-port reporter raw (progress-report-port reporter raw
#:close? #f #:close? #f
#:download-size dl-size))) #:download-size dl-size)))
((input pids) (input pids
;; NOTE: This 'progress' port of current process will be ;; NOTE: This 'progress' port of current process will be
;; closed here, while the child process doing the ;; closed here, while the child process doing the
;; reporting will close it upon exit. ;; reporting will close it upon exit.
(decompressed-port (string->symbol compression) (decompressed-port (string->symbol compression)
progress)) progress))
;; Compute the actual nar hash as we read it. ;; Compute the actual nar hash as we read it.
((algorithm expected) (algorithm expected (narinfo-hash-algorithm+value narinfo))
(narinfo-hash-algorithm+value narinfo)) (hashed get-hash (open-hash-input-port algorithm input)))
((hashed get-hash)
(open-hash-input-port algorithm input)))
;; Unpack the Nar at INPUT into DESTINATION. ;; Unpack the Nar at INPUT into DESTINATION.
(define cpu-usage (define cpu-usage
(with-cpu-usage-monitoring (with-cpu-usage-monitoring

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