me
/
guix
Archived
1
0
Fork 0

Merge branch 'master' into gnome-team

master
Liliana Marie Prikler 2024-03-09 22:31:25 +01:00
commit 2ee5451319
No known key found for this signature in database
GPG Key ID: 442A84B8C70E2F87
101 changed files with 4987 additions and 2484 deletions

View File

@ -111,7 +111,7 @@ Copyright @copyright{} 2022 (@*
Copyright @copyright{} 2022 John Kehayias@*
Copyright @copyright{} 20222023 Bruno Victal@*
Copyright @copyright{} 2022 Ivan Vilata-i-Balaguer@*
Copyright @copyright{} 2023 Giacomo Leidi@*
Copyright @copyright{} 2023-2024 Giacomo Leidi@*
Copyright @copyright{} 2022 Antero Mejr@*
Copyright @copyright{} 2023 Karl Hallsby@*
Copyright @copyright{} 2023 Nathaniel Nicandro@*
@ -358,6 +358,7 @@ Foreign Architectures
System Configuration
* Getting Started with the System:: Your first steps.
* Using the Configuration System:: Customizing your GNU system.
* operating-system Reference:: Detail of operating-system declarations.
* File Systems:: Configuring file system mounts.
@ -2879,8 +2880,8 @@ unless your configuration specifies otherwise
@node After System Installation
@section After System Installation
Success, you've now booted into Guix System! From then on, you can update the
system whenever you want by running, say:
Success, you've now booted into Guix System! You can upgrade the system
whenever you want by running:
@example
guix pull
@ -2888,24 +2889,10 @@ sudo guix system reconfigure /etc/config.scm
@end example
@noindent
This builds a new system generation with the latest packages and services
(@pxref{Invoking guix system}). We recommend doing that regularly so that
your system includes the latest security updates (@pxref{Security Updates}).
This builds a new system @dfn{generation} with the latest packages and
services.
@c See <https://lists.gnu.org/archive/html/guix-devel/2019-01/msg00268.html>.
@quotation Note
@cindex sudo vs. @command{guix pull}
Note that @command{sudo guix} runs your user's @command{guix} command and
@emph{not} root's, because @command{sudo} leaves @env{PATH} unchanged. To
explicitly run root's @command{guix}, type @command{sudo -i guix @dots{}}.
The difference matters here, because @command{guix pull} updates
the @command{guix} command and package definitions only for the user it is run
as. This means that if you choose to use @command{guix system reconfigure} in
root's login shell, you'll need to @command{guix pull} separately.
@end quotation
Now, @pxref{Getting Started}, and
Now, @pxref{Getting Started with the System}, and
join us on @code{#guix} on the Libera Chat IRC network or on
@email{guix-devel@@gnu.org} to share your experience!
@ -3159,22 +3146,9 @@ sudo guix system reconfigure /etc/config.scm
@end example
Upon completion, the system runs the latest versions of its software
packages. When you eventually reboot, you'll notice a sub-menu in the
bootloader that reads ``Old system generations'': it's what allows you
to boot @emph{an older generation of your system}, should the latest
generation be ``broken'' or otherwise unsatisfying. Just like for
packages, you can always @emph{roll back} to a previous generation
@emph{of the whole system}:
@example
sudo guix system roll-back
@end example
There are many things you'll probably want to tweak on your system:
adding new user accounts, adding new system services, fiddling with the
configuration of those services, etc. The system configuration is
@emph{entirely} described in the @file{/etc/config.scm} file.
@xref{Using the Configuration System}, to learn how to change it.
packages. Just like for packages, you can always @emph{roll back} to a
previous generation @emph{of the whole system}. @xref{Getting Started
with the System}, to learn how to manage your system.
Now you know enough to get started!
@ -3283,7 +3257,7 @@ out to have a serious bug, users may roll back to the previous instance
of their profile, which was known to work well. Similarly, the global
system configuration on Guix is subject to
transactional upgrades and roll-back
(@pxref{Using the Configuration System}).
(@pxref{Getting Started with the System}).
All packages in the package store may be @emph{garbage-collected}.
Guix can determine which packages are still referenced by user
@ -17101,6 +17075,7 @@ instantiated. Then we show how this mechanism can be extended, for
instance to support new system services.
@menu
* Getting Started with the System:: Your first steps.
* Using the Configuration System:: Customizing your GNU system.
* operating-system Reference:: Detail of operating-system declarations.
* File Systems:: Configuring file system mounts.
@ -17121,14 +17096,222 @@ instance to support new system services.
* Defining Services:: Adding new service definitions.
@end menu
@node Getting Started with the System
@section Getting Started
@cindex system configuration file
@cindex configuration file, of the system
You're reading this section probably because you have just installed
Guix System (@pxref{System Installation}) and would like to know where
to go from here. If you're already familiar with GNU/Linux system
administration, the way Guix System is configured is very different from
what you're used to: you won't install a system service by running
@command{guix install}, you won't configure services by modifying files
under @file{/etc}, and you won't create user accounts by invoking
@command{useradd}; instead, all these aspects are spelled out in a
@dfn{system configuration file}.
The first step with Guix System is thus to write the @dfn{system
configuration file}; luckily, system installation already generated one
for you and stored it under @file{/etc/config.scm}.
@quotation Note
You can store your system configuration file anywhere you like---it
doesn't have to be at @file{/etc/config.scm}. It's a good idea to keep
it under version control, for instance in a
@uref{https://git-scm.com/book/en/, Git repository}.
@end quotation
The @emph{entire} configuration of the system---user accounts, system
services, timezone, locale settings---is declared in this file, which
follows this template:
@lisp
(use-modules (gnu))
(use-package-modules @dots{})
(use-service-modules @dots{})
(operating-system
(host-name @dots{})
(timezone @dots{})
(locale @dots{})
(bootloader @dots{})
(file-systems @dots{})
(users @dots{})
(packages @dots{})
(services @dots{}))
@end lisp
This configuration file is in fact a Scheme program; the first lines
pull in modules providing variables you might need in the rest of the
file---e.g., packages, services, etc. The @code{operating-system} form
declares the system configuration as a @dfn{record} with a number of
@dfn{fields}. @xref{Using the Configuration System}, to view complete
examples and learn what to put in there.
The second step, once you have this configuration file, is to test it.
Of course, you can skip this step if you're feeling lucky---you choose!
To do that, pass your configuration file to @command{guix system vm} (no
need to be root, you can do that as a regular user):
@example
guix system vm /etc/config.scm
@end example
@noindent
This command returns the name of a shell script that starts a virtual
machine (VM) running the system @emph{as described in the configuration
file}:
@example
/gnu/store/@dots{}-run-vm.sh
@end example
@noindent
In this VM, you can log in as @code{root} with no password. That's a
good way to check that your configuration file is correct and that it
gives the expected result, without touching your system. @xref{Invoking
guix system}, for more information.
@quotation Note
When using @command{guix system vm}, aspects tied to your hardware such
as file systems and mapped devices are overridden because they cannot be
meaningfully tested in the VM@. Other aspects such as static network
configuration (@pxref{Networking Setup,
@code{static-networking-service-type}}) are @emph{not} overridden but
they may not work inside the VM@.
@end quotation
@cindex system instantiation
@cindex reconfiguring the system
The third step, once you're happy with your configuration, is to
@dfn{instantiate} it---make this configuration effective on your system.
To do that, run:
@example
sudo guix system reconfigure /etc/config.scm
@end example
@cindex upgrading system services
@cindex system services, upgrading
@noindent
This operation is @dfn{transactional}: either it succeeds and you end up
with an upgraded system, or it fails and nothing has changed. Note that
it does @emph{not} restart system services that were already running.
Thus, to upgrade those services, you have to reboot or to explicitly
restart them; for example, to restart the secure shell (SSH) daemon, you
would run:
@example
sudo herd restart sshd
@end example
@quotation Note
System services are managed by the Shepherd (@pxref{Jump Start,,,
shepherd, The GNU Shepherd Manual}). The @code{herd} command lets you
inspect, start, and stop services. To view the status of services, run:
@example
sudo herd status
@end example
To view detailed information about a given service, add its name to the
command:
@example
sudo herd status sshd
@end example
@xref{Services}, for more information.
@end quotation
@cindex provenance, of the system
The system records its @dfn{provenance}---the configuration file and
channels that were used to deploy it. You can view it like so:
@example
guix system describe
@end example
Additionally, @command{guix system reconfigure} preserves previous
system generations, which you can list:
@example
guix system list-generations
@end example
@noindent
@cindex roll back, for the system
Crucially, that means that you can always @emph{roll back} to an earlier
generation should something go wrong! When you eventually reboot,
you'll notice a sub-menu in the bootloader that reads ``Old system
generations'': it's what allows you to boot @emph{an older generation of
your system}, should the latest generation be ``broken'' or otherwise
unsatisfying. You can also ``permanently'' roll back, like so:
@example
sudo guix system roll-back
@end example
@noindent
Alternatively, you can use @command{guix system switch-generation} to
switch to a specific generation.
Once in a while, you'll want to delete old generations that you do not
need anymore to allow @dfn{garbage collection} to free space
(@pxref{Invoking guix gc}). For example, to remove generations older
than 4 months, run:
@example
sudo guix system delete-generations 4m
@end example
From there on, anytime you want to change something in the system
configuration, be it adding a user account or changing parameters of a
service, you will first update your configuration file and then run
@command{guix system reconfigure} as shown above.
@cindex upgrade, of the system
Likewise, to @emph{upgrade} system software, you first fetch an
up-to-date Guix and then reconfigure your system with that new Guix:
@example
guix pull
sudo guix system reconfigure /etc/config.scm
@end example
@noindent
We recommend doing that regularly so that your system includes the
latest security updates (@pxref{Security Updates}).
@c See <https://lists.gnu.org/archive/html/guix-devel/2019-01/msg00268.html>.
@quotation Note
@cindex sudo vs. @command{guix pull}
@command{sudo guix} runs your user's @command{guix} command and
@emph{not} root's, because @command{sudo} leaves @env{PATH} unchanged.
The difference matters here, because @command{guix pull} updates
the @command{guix} command and package definitions only for the user it is run
as. This means that if you choose to use @command{guix system reconfigure} in
root's login shell, you'll need to @command{guix pull} separately.
@end quotation
That's it! If you're getting started with Guix entirely,
@pxref{Getting Started}. The next sections dive in more detail into the
crux of the matter: system configuration.
@node Using the Configuration System
@section Using the Configuration System
The previous section showed the overall workflow you would follow when
administering a Guix System machine (@pxref{Getting Started with the
System}). Let's now see in more detail what goes into the system
configuration file.
The operating system is configured by providing an
@code{operating-system} declaration in a file that can then be passed to
the @command{guix system} command (@pxref{Invoking guix system}). A
simple setup, with the default Linux-Libre
kernel, initial RAM disk, and a couple of system services added to those
the @command{guix system} command (@pxref{Invoking guix system}), as
we've seen before. A simple setup, with the default Linux-Libre kernel,
initial RAM disk, and a couple of system services added to those
provided by default looks like this:
@findex operating-system
@ -17136,8 +17319,8 @@ provided by default looks like this:
@include os-config-bare-bones.texi
@end lisp
The configuration is declarative and hopefully mostly self-describing.
It is actually code in the Scheme programming language; the whole
The configuration is declarative.
It is code in the Scheme programming language; the whole
@code{(operating-system @dots{})} expression produces a @dfn{record}
with a number of @dfn{fields}.
Some of the fields defined
@ -17146,16 +17329,21 @@ Others, such as @code{packages} and @code{services}, can be omitted, in
which case they get a default value. @xref{operating-system Reference},
for details about all the available fields.
Below we discuss the effect of some of the most important fields,
and how to @dfn{instantiate} the operating system using
@command{guix system}.
Below we discuss the meaning of some of the most important fields.
@quotation Do not panic
@cindex Scheme programming language, getting started
Intimidated by the Scheme language or curious about it? The Cookbook
has a short section to get started that explains the fundamentals, which
you will find helpful when hacking your configuration. @xref{A Scheme
Crash Course,,, guix-cookbook, GNU Guix Cookbook}.
@quotation Troubleshooting
The configuration file is a Scheme program and you might get the syntax
or semantics wrong as you get started. Syntactic issues such as
misplaced parentheses can often be identified by reformatting your file:
@example
guix style -f config.scm
@end example
The Cookbook has a short section to get started with the Scheme
programming language that explains the fundamentals, which you will find
helpful when hacking your configuration. @xref{A Scheme Crash Course,,,
guix-cookbook, GNU Guix Cookbook}.
@end quotation
@unnumberedsubsec Bootloader
@ -17348,18 +17536,70 @@ Alternatively, the @code{modify-services} macro can be used:
(delete avahi-service-type))
@end lisp
@unnumberedsubsec Inspecting Services
@cindex troubleshooting, for system services
@cindex inspecting system services
@cindex system services, inspecting
As you work on your system configuration, you might wonder why some
system service doesn't show up or why the system is not as you expected.
There are several ways to inspect and troubleshoot problems.
@cindex dependency graph, of Shepherd services
First, you can inspect the dependency graph of Shepherd services like
so:
@example
guix system shepherd-graph /etc/config.scm | \
guix shell xdot -- xdot -
@end example
This lets you visualize the Shepherd services as defined in
@file{/etc/config.scm}. Each box is a service as would be shown by
@command{sudo herd status} on the running system, and each arrow denotes
a dependency (in the sense that if service @var{A} depends on @var{B},
then @var{B} must be started before @var{A}).
@cindex extension graph, of services
Not all ``services'' are Shepherd services though, since Guix System
uses a broader definition of the term (@pxref{Services}). To visualize
system services and their relations at a higher level, run:
@example
guix system extension-graph /etc/config.scm | \
guix shell xdot -- xdot -
@end example
This lets you view the @dfn{service extension graph}: how services
``extend'' each other, for instance by contributing to their
configuration. @xref{Service Composition}, to understand the meaning of
this graph.
Last, you may also find it useful to inspect your system configuration
at the REPL (@pxref{Using Guix Interactively}). Here is an example
session:
@example
$ guix repl
scheme@@(guix-user)> ,use (gnu)
scheme@@(guix-user)> (define os (load "config.scm"))
scheme@@(guix-user)> ,pp (map service-kind (operating-system-services os))
$1 = (#<service-type localed cabba93>
@dots{})
@end example
@xref{Service Reference}, to learn about the Scheme interface to
manipulate and inspect services.
@unnumberedsubsec Instantiating the System
@cindex system instantiation
@cindex reconfiguring the system
Assuming the @code{operating-system} declaration
is stored in the @file{my-system-config.scm}
file, the @command{guix system reconfigure my-system-config.scm} command
instantiates that configuration, and makes it the default GRUB boot
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
is stored in the @file{config.scm}
file, the @command{sudo guix system reconfigure config.scm} command
instantiates that configuration, and makes it the default boot
entry. @xref{Getting Started with the System}, for an overview.
The normal way to change the system configuration is by updating this
file and re-running @command{guix system reconfigure}. One should never
@ -17369,23 +17609,6 @@ fact, you must avoid that since that would not only void your warranty
but also prevent you from rolling back to previous versions of your
system, should you ever need to.
@cindex roll-back, of the operating system
Speaking of roll-back, each time you run @command{guix system
reconfigure}, a new @dfn{generation} of the system is created---without
modifying or deleting previous generations. Old system generations get
an entry in the bootloader boot menu, allowing you to boot them in case
something went wrong with the latest generation. Reassuring, no? The
@command{guix system list-generations} command lists the system
generations available on disk. It is also possible to roll back the
system via the commands @command{guix system roll-back} and
@command{guix system switch-generation}.
Although the @command{guix system reconfigure} command will not modify
previous generations, you must take care when the current generation is not
the latest (e.g., after invoking @command{guix system roll-back}), since
the operation might overwrite a later generation (@pxref{Invoking guix
system}).
@unnumberedsubsec The Programming Interface
At the Scheme level, the bulk of an @code{operating-system} declaration
@ -44479,17 +44702,42 @@ directory, and some way of automatically deploy changes to their user home.
@cindex Stow-like dot file management
The @code{home-dotfiles-service-type} from @code{(gnu home services dotfiles)}
is designed to ease the way into using Guix Home for this kind of users,
allowing them to point the service to their dotfiles directory, which must
follow the layout suggested by
@uref{https://www.gnu.org/software/stow/, GNU Stow},
and have their dotfiles automatically deployed to their user home, without
allowing them to point the service to their dotfiles directory without
migrating them to Guix native configurations.
The dotfiles directory layout is expected to be structured as follows. Please
keep in mind that it is advisable to keep your dotfiles directories under
Please keep in mind that it is advisable to keep your dotfiles directories under
version control, for example in the same repository where you'd track your
Guix Home configuration.
There are two supported dotfiles directory layouts, for now. The
@code{'plain} layout, which is structured as follows:
@example
~$ tree -a ./dotfiles/
dotfiles/
├── .gitconfig
├── .gnupg
│ ├── gpg-agent.conf
│ └── gpg.conf
├── .guile
├── .config
│ ├── guix
│ │ └── channels.scm
│ └── nixpkgs
│ └── config.nix
├── .nix-channels
├── .tmux.conf
└── .vimrc
@end example
This tree structure is installed as is to the
home directory upon @command{guix home reconfigure}.
The @code{'stow} layout, which must
follow the layout suggested by
@uref{https://www.gnu.org/software/stow/, GNU Stow} presents an additional
application specific directory layer, just like:
@example
~$ tree -a ./dotfiles/
dotfiles/
@ -44519,8 +44767,10 @@ dotfiles/
@end example
For an informal specification please refer to the Stow manual
(@pxref{Top,,, stow, Introduction}). A suitable configuration would then
be:
(@pxref{Top,,, stow, Introduction}). This tree structure is installed following
GNU Stow's logic to the home directory upon @command{guix home reconfigure}.
A suitable configuration with a @code{'plain} layout could be:
@lisp
(home-environment
@ -44528,7 +44778,7 @@ be:
(services
(service home-dotfiles-service-type
(home-dotfiles-configuration
(directories (list "./dotfiles"))))))
(directories '("./dotfiles"))))))
@end lisp
The expected home directory state would then be:
@ -44555,32 +44805,47 @@ Return a service which is very similiar to @code{home-files-service-type}
(and actually extends it), but designed to ease the way into using Guix
Home for users that already track their dotfiles under some kind of version
control. This service allows users to point Guix Home to their dotfiles
directory and have their files automatically deployed to their home directory
just like Stow would, without migrating all of their dotfiles to Guix native
directory and have their files automatically provisioned to their home
directory, without migrating all of their dotfiles to Guix native
configurations.
@end defvar
@c %start of fragment
@deftp {Data Type} home-dotfiles-configuration
Available @code{home-dotfiles-configuration} fields are:
@table @asis
@item @code{source-directory} (default: @code{(current-source-directory)})
The path where dotfile directories are resolved. By default dotfile directories
are resolved relative the source location where
@item @code{source-directory} (default: @code{(current-source-directory)}) (type: string)
The path where dotfile directories are resolved. By default dotfile
directories are resolved relative the source location where
@code{home-dotfiles-configuration} appears.
@item @code{directories} (type: list-of-strings)
The list of dotfiles directories where @code{home-dotfiles-service-type} will
look for application dotfiles.
@item @code{layout} (default: @code{'plain}) (type: symbol)
The intended layout of the specified @code{directory}. It can be either
@code{'stow} or @code{'plain}.
@item @code{exclude} (default: @code{'(".*~" ".*\\.swp" "\\.git" "\\.gitignore")})
The list of file patterns @code{home-dotfiles-service-type} will exclude while
visiting each one of the @code{directories}.
@item @code{directories} (default: @code{'()}) (type: list-of-strings)
The list of dotfiles directories where @code{home-dotfiles-service-type}
will look for application dotfiles.
@item @code{packages} (type: maybe-list-of-strings)
The names of a subset of the GNU Stow package layer directories. When provided
the @code{home-dotfiles-service-type} will only provision dotfiles from this
subset of applications. This field will be ignored if @code{layout} is set
to @code{'plain}.
@item @code{excluded} (default: @code{'(".*~" ".*\\.swp" "\\.git" "\\.gitignore")}) (type: list-of-strings)
The list of file patterns @code{home-dotfiles-service-type} will exclude
while visiting each one of the @code{directories}.
@end table
@end deftp
@c %end of fragment
@defvar home-xdg-configuration-files-service-type
The service is very similar to @code{home-files-service-type} (and
actually extends it), but used for defining files, which will go to

View File

@ -549,8 +549,7 @@ GLib/GIO, GTK, GStreamer and Webkit."
(team 'lxqt
#:name "LXQt team"
#:description "LXQt desktop environment."
#:scope (list "gnu/packages/lxqt.scm"
"gnu/packages/qt.scm")))
#:scope (list "gnu/packages/lxqt.scm")))
(define-team audio
(team 'audio
@ -666,7 +665,7 @@ GLib/GIO, GTK, GStreamer and Webkit."
(define-member (person "宋文武"
"iyzsong@envs.net")
games localization lxqt xfce)
games localization lxqt qt xfce)
(define-member (person "Vagrant Cascadian"
"vagrant@debian.org")
@ -724,6 +723,10 @@ GLib/GIO, GTK, GStreamer and Webkit."
"mhw@netris.org")
mozilla)
(define-member (person "Adam Faiz"
"adam.faiz@disroot.org")
games)
(define (find-team name)
(or (hash-ref %teams (string->symbol name))

View File

@ -20,17 +20,25 @@
(define-module (gnu home services dotfiles)
#:use-module (gnu home services)
#:use-module (gnu services)
#:use-module (gnu services configuration)
#:autoload (guix build utils) (find-files)
#:use-module (guix diagnostics)
#:use-module (guix gexp)
#:use-module (guix records)
#:use-module (guix i18n)
#:use-module ((guix utils) #:select (current-source-directory))
#:use-module (srfi srfi-1)
#:use-module (ice-9 ftw)
#:use-module (ice-9 match)
#:use-module (ice-9 regex)
#:export (home-dotfiles-service-type
home-dotfiles-configuration->files
home-dotfiles-configuration
home-dotfiles-configuration?
home-dotfiles-configuration-fields
home-dotfiles-configuration-layout
home-dotfiles-configuration-source-directory
home-dotfiles-configuration-packages
home-dotfiles-configuration-directories
home-dotfiles-configuration-excluded))
@ -40,26 +48,64 @@
"\\.git"
"\\.gitignore"))
(define-record-type* <home-dotfiles-configuration>
home-dotfiles-configuration make-home-dotfiles-configuration
home-dotfiles-configuration?
(source-directory home-dotfiles-configuration-source-directory
(default (current-source-directory))
(innate))
(directories home-dotfiles-configuration-directories ;list of strings
(default '()))
(excluded home-dotfiles-configuration-excluded ;list of strings
(default %home-dotfiles-excluded)))
(define %home-dotfiles-layouts
'(plain stow))
(define (import-dotfiles directory files)
(define (sanitize-layout value)
(if (member value %home-dotfiles-layouts)
value
(raise
(formatted-message
(G_ "layout field of home-dotfiles-configuration should be either 'plain
or 'stow, but ~a was found.")
value))))
(define list-of-strings?
(list-of string?))
(define-maybe list-of-strings)
(define-configuration/no-serialization home-dotfiles-configuration
(source-directory
(string (current-source-directory))
"The path where dotfile directories are resolved. By default dotfile
directories are resolved relative the source location where
@code{home-dotfiles-configuration} appears.")
(layout
(symbol 'plain)
"The intended layout of the specified @code{directory}. It can be either
@code{'stow} or @code{'plain}."
(sanitizer sanitize-layout))
(directories
(list-of-strings '())
"The list of dotfiles directories where @code{home-dotfiles-service-type}
will look for application dotfiles.")
(packages
(maybe-list-of-strings)
"The names of a subset of the GNU Stow package layer directories. When provided
the @code{home-dotfiles-service-type} will only provision dotfiles from this
subset of applications. This field will be ignored if @code{layout} is set
to @code{'plain}.")
(excluded
(list-of-strings %home-dotfiles-excluded)
"The list of file patterns @code{home-dotfiles-service-type} will exclude
while visiting @code{directory}."))
(define (strip-stow-dotfile file-name directory)
(let ((dotfile-name (string-drop file-name (1+ (string-length directory)))))
(match (string-split dotfile-name #\/)
((package parts ...)
(string-join parts "/")))))
(define (strip-plain-dotfile file-name directory)
(string-drop file-name (+ 1 (string-length directory))))
(define (import-dotfiles directory files strip)
"Return a list of objects compatible with @code{home-files-service-type}'s
value. Each object is a pair where the first element is the relative path
of a file and the second is a gexp representing the file content. Objects are
generated by recursively visiting DIRECTORY and mapping its contents to the
user's home directory, excluding files that match any of the patterns in EXCLUDED."
(define (strip file)
(string-drop file (+ 1 (string-length directory))))
(define (format file)
;; Remove from FILE characters that cannot be used in the store.
(string-append
@ -73,7 +119,7 @@ user's home directory, excluding files that match any of the patterns in EXCLUDE
file)))
(map (lambda (file)
(let ((stripped (strip file)))
(let ((stripped (strip file directory)))
(list stripped
(local-file file (format stripped)
#:recursive? #t))))
@ -81,18 +127,25 @@ user's home directory, excluding files that match any of the patterns in EXCLUDE
(define (home-dotfiles-configuration->files config)
"Return a list of objects compatible with @code{home-files-service-type}'s
value, generated following GNU Stow's algorithm for each of the
directories in CONFIG, excluding files that match any of the patterns configured."
value, excluding files that match any of the patterns configured."
(define stow? (eq? (home-dotfiles-configuration-layout config) 'stow))
(define excluded
(home-dotfiles-configuration-excluded config))
(define exclusion-rx
(make-regexp (string-append "^.*(" (string-join excluded "|") ")$")))
(define (directory-contents directory)
(define* (directory-contents directory #:key (packages #f))
(define (filter-files directory)
(find-files directory
(lambda (file stat)
(not (regexp-exec exclusion-rx
(basename file))))))
(if (and stow? packages (maybe-value-set? packages))
(append-map filter-files
(map (lambda (pkg)
(string-append directory "/" pkg))
packages))
(filter-files directory)))
(define (resolve directory)
;; Resolve DIRECTORY relative to the 'source-directory' field of CONFIG.
@ -103,15 +156,23 @@ directories in CONFIG, excluding files that match any of the patterns configured
(append-map (lambda (directory)
(let* ((directory (resolve directory))
(contents (directory-contents directory)))
(import-dotfiles directory contents)))
(packages
(home-dotfiles-configuration-packages config))
(contents
(directory-contents directory
#:packages packages))
(strip
(if stow? strip-stow-dotfile strip-plain-dotfile)))
(import-dotfiles directory contents strip)))
(home-dotfiles-configuration-directories config)))
(define-public home-dotfiles-service-type
(service-type (name 'home-dotfiles)
(extensions
(list (service-extension home-files-service-type
home-dotfiles-configuration->files)))
(lambda (config)
(when config
(home-dotfiles-configuration->files config))))))
(default-value (home-dotfiles-configuration))
(description "Files that will be put in the user's home directory
following GNU Stow's algorithm, and further processed during activation.")))

View File

@ -1295,7 +1295,6 @@ dist_patch_DATA = \
%D%/packages/patches/gdm-remove-hardcoded-xwayland-path.patch \
%D%/packages/patches/gdm-wayland-session-wrapper-from-env.patch \
%D%/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch \
%D%/packages/patches/gegl-compatibility-old-librsvg.patch \
%D%/packages/patches/gemmi-fix-pegtl-usage.patch \
%D%/packages/patches/gemmi-fix-sajson-types.patch \
%D%/packages/patches/genimage-mke2fs-test.patch \
@ -1450,7 +1449,6 @@ dist_patch_DATA = \
%D%/packages/patches/http-parser-CVE-2020-8287.patch \
%D%/packages/patches/htslib-for-stringtie.patch \
%D%/packages/patches/hubbub-sort-entities.patch \
%D%/packages/patches/hubbub-maybe-uninitialized.patch \
%D%/packages/patches/hueplusplus-mbedtls.patch \
%D%/packages/patches/hurd-add-without-rump-configure-option.patch \
%D%/packages/patches/hurd-fix-rumpdisk-build.patch \
@ -1521,6 +1519,7 @@ dist_patch_DATA = \
%D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch \
%D%/packages/patches/julia-Use-MPFR-4.2.patch \
%D%/packages/patches/libcall-ui-make-it-installable.patch \
%D%/packages/patches/libcss-check-format.patch \
%D%/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch \
%D%/packages/patches/libgeotiff-fix-tests-with-proj-9.1.1.patch \
%D%/packages/patches/libgeotiff-fix-tests-with-proj-9.3.0.patch \
@ -1617,8 +1616,6 @@ dist_patch_DATA = \
%D%/packages/patches/libtiff-CVE-2022-34526.patch \
%D%/packages/patches/libtirpc-CVE-2021-46828.patch \
%D%/packages/patches/libtirpc-hurd.patch \
%D%/packages/patches/libtommath-fix-linkage.patch \
%D%/packages/patches/libtommath-integer-overflow.patch \
%D%/packages/patches/libtool-grep-compat.patch \
%D%/packages/patches/libtool-skip-tests2.patch \
%D%/packages/patches/libtree-fix-check-non-x86.patch \
@ -1798,6 +1795,7 @@ dist_patch_DATA = \
%D%/packages/patches/plasp-fix-normalization.patch \
%D%/packages/patches/plasp-include-iostream.patch \
%D%/packages/patches/pocketfft-cpp-prefer-preprocessor-if.patch \
%D%/packages/patches/podman-program-lookup.patch \
%D%/packages/patches/pokerth-boost.patch \
%D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \
%D%/packages/patches/procps-strtod-test.patch \
@ -1805,6 +1803,7 @@ dist_patch_DATA = \
%D%/packages/patches/prusa-slicer-fix-tests.patch \
%D%/packages/patches/prusa-slicer-with-cereal-1.3.1.patch \
%D%/packages/patches/pthreadpool-system-libraries.patch \
%D%/packages/patches/python-3.12-fix-tests.patch \
%D%/packages/patches/python-accupy-use-matplotx.patch \
%D%/packages/patches/python-accupy-fix-use-of-perfplot.patch \
%D%/packages/patches/python-chai-drop-python2.patch \
@ -1828,11 +1827,6 @@ dist_patch_DATA = \
%D%/packages/patches/quodlibet-fix-invalid-glob.patch \
%D%/packages/patches/quodlibet-fix-mtime-tests.patch \
%D%/packages/patches/qxlsx-fix-include-directory.patch \
%D%/packages/patches/scribus-1.5.8-poppler-22.03.0.patch \
%D%/packages/patches/scribus-1.5.8-poppler-22.04.0.patch \
%D%/packages/patches/scribus-1.5.8-poppler-22.09.0.patch \
%D%/packages/patches/scribus-1.5.8-poppler-22.2.0-1.patch \
%D%/packages/patches/scribus-1.5.8-poppler-22.2.0-2.patch \
%D%/packages/patches/sdcc-disable-non-free-code.patch \
%D%/packages/patches/sdl-pango-api_additions.patch \
%D%/packages/patches/sdl-pango-blit_overflow.patch \
@ -1840,6 +1834,7 @@ dist_patch_DATA = \
%D%/packages/patches/sdl-pango-header-guard.patch \
%D%/packages/patches/sdl-pango-matrix_declarations.patch \
%D%/packages/patches/sdl-pango-sans-serif.patch \
%D%/packages/patches/sioyek-fix-build.patch \
%D%/packages/patches/smalltalk-multiplication-overflow.patch \
%D%/packages/patches/sqlite-hurd.patch \
%D%/packages/patches/strace-readlink-tests.patch \
@ -2026,6 +2021,7 @@ dist_patch_DATA = \
%D%/packages/patches/rxvt-unicode-fix-cursor-position.patch \
%D%/packages/patches/s7-flint-3.patch \
%D%/packages/patches/sajson-for-gemmi-numbers-as-strings.patch \
%D%/packages/patches/sajson-build-with-gcc10.patch \
%D%/packages/patches/sbc-fix-build-non-x86.patch \
%D%/packages/patches/sbcl-aserve-add-HTML-5-elements.patch \
%D%/packages/patches/sbcl-aserve-fix-rfe12668.patch \

View File

@ -5188,7 +5188,7 @@ disk utilization, priority, username, state, and exit code.")
`())
(inputs
`(("go-golang-org-x-text" ,go-golang-org-x-text)
("go-github.com-ulikunitz-xz" ,go-github.com-ulikunitz-xz)))
("go-github-com-ulikunitz-xz" ,go-github-com-ulikunitz-xz)))
(synopsis "UEFI image editor")
(description "This package provides a command-line UEFI image editor.")
(home-page "https://github.com/linuxboot/fiano")

View File

@ -6198,20 +6198,21 @@ mapping.")
(define-public r-nebulosa
(package
(name "r-nebulosa")
(version "1.12.0")
(version "1.12.1")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "Nebulosa" version))
(sha256
(base32
"0kzkdwxrhl7plbcbqr58gnadhhbhx2811ian0s4kds14y4mxl26c"))))
"11wn6l27cshhb1djsgqaqr8d33j4bipy0w0gafp3fkvg7mnpnhps"))))
(properties `((upstream-name . "Nebulosa")))
(build-system r-build-system)
(propagated-inputs (list r-ggplot2
r-ggrastr
r-ks
r-matrix
r-patchwork
r-seurat
r-seuratobject
r-singlecellexperiment
r-summarizedexperiment))
(native-inputs (list r-knitr))
@ -7211,13 +7212,13 @@ self-defined annotation graphics.")
(define-public r-conos
(package
(name "r-conos")
(version "1.5.1")
(version "1.5.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "conos" version))
(sha256
(base32 "01d2knwyf0g2pvqq3dy5vhf0i7mc5f7rzg3a7cbglsw3l9irsixv"))))
(base32 "0p66gb308w2zfsppm0k1vsvgr33kzzhql0vh7l39vlsgayi00skk"))))
(properties `((upstream-name . "conos")))
(build-system r-build-system)
(propagated-inputs
@ -13866,14 +13867,14 @@ data.")
(define-public r-ggtree
(package
(name "r-ggtree")
(version "3.10.0")
(version "3.10.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "ggtree" version))
(sha256
(base32
"12w2l1q0c5aznd5fls04wvgsmjidqhr1kkqj4gajz1abj9f49cqf"))))
"1p475vh567q4szb8hy2qk72pvqh5rlbyqfjcdd0i83fa2y4bi31d"))))
(properties `((upstream-name . "ggtree")))
(build-system r-build-system)
(propagated-inputs
@ -18395,14 +18396,14 @@ manipulation of flow cytometry data.")
(define-public r-ggcyto
(package
(name "r-ggcyto")
(version "1.30.0")
(version "1.30.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "ggcyto" version))
(sha256
(base32
"13zc5952drl187fl07v1nh6gv0g6ba11vxpxl4ghvavnknvi5phd"))))
"0ig23b6apyp35rxxiqd5nw46yjm2784njlafsgw98akhl8ck0g7n"))))
(properties `((upstream-name . "ggcyto")))
(build-system r-build-system)
(propagated-inputs
@ -21299,13 +21300,13 @@ routines.")
(define-public r-s4arrays
(package
(name "r-s4arrays")
(version "1.2.0")
(version "1.2.1")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "S4Arrays" version))
(sha256
(base32
"0x420l98f6b10r3qrdjq5ijs2p0msdcg6d6aghr3yvj1f9g06h8y"))))
"1z6kcgjb5fzslr02vmsvchbilrhwpgh1ghk1zmlq0h0lyzncaapd"))))
(properties `((upstream-name . "S4Arrays")))
(build-system r-build-system)
(propagated-inputs
@ -23015,13 +23016,13 @@ segmented data for individual and multiple arrays.")
(define-public r-snprelate
(package
(name "r-snprelate")
(version "1.36.0")
(version "1.36.1")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "SNPRelate" version))
(sha256
(base32
"0jw9ziz0a472mnnvmqwas5w646xfgx8dn1bdpwz8c99m663d8ayp"))))
"0d15r7qwwrr6m9saikx4x6hj56kb3p2w3v1awkgm3wfqfgdf1pin"))))
(properties `((upstream-name . "SNPRelate")))
(build-system r-build-system)
(propagated-inputs (list r-gdsfmt))

View File

@ -22484,7 +22484,7 @@ useful for bioinformatic analysis.")
#:tests? #false)) ;require network access
(propagated-inputs
(list go-gopkg-in-check-v1
go-github.com-ulikunitz-xz
go-github-com-ulikunitz-xz
go-github-com-kortschak-utter))
(synopsis "HTS CRAM module for biogo")
(description "This package provides tools for handling CRAM files.")))

View File

@ -574,7 +574,7 @@ features.")
#~(cons "-DGUI=OFF" #$configure-flags))))
(inputs
(modify-inputs (package-inputs base)
(delete "qtsvg-5"))))))
(delete "qtsvg"))))))
(define-public qbittorrent-nox
(deprecated-package "qbittorrent-nox" qbittorrent-no-x))
@ -583,7 +583,7 @@ features.")
(package
(inherit qbittorrent)
(name "qbittorrent-enhanced")
(version "4.6.1.10")
(version "4.6.3.10")
(source
(origin
(method git-fetch)
@ -593,7 +593,7 @@ features.")
(file-name (git-file-name name version))
(sha256
(base32
"101a9n2vk9d6b4vc3schkmpc56l0i0i60fcjh8hwadc6amc2ymvy"))))
"09b8237h0gn6y3s0a7qg247hsdra5f5kg6xhirnhhfvjd8k6qviv"))))
(home-page "https://github.com/c0re100/qBittorrent-Enhanced-Edition")
(description
"qBittorrent Enhanced is a bittorrent client based on qBittorrent with
@ -607,12 +607,15 @@ the following features:
@item Peer whitelist/blacklist
@end itemize")))
(define-public qbittorrent-enhanced-nox
(define-public qbittorrent-enhanced-no-x
(package
(inherit qbittorrent-enhanced)
(name "qbittorrent-enhanced-nox")
(arguments (package-arguments qbittorrent-nox))
(inputs (package-inputs qbittorrent-nox))))
(name "qbittorrent-enhanced-no-x")
(arguments (package-arguments qbittorrent-no-x))
(inputs (package-inputs qbittorrent-no-x))))
(define-public qbittorrent-enhanced-nox
(deprecated-package "qbittorrent-enhanced-nox" qbittorrent-enhanced-no-x))
(define-public deluge
(package

View File

@ -49,6 +49,7 @@
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
;;; Copyright © 2024 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -609,7 +610,7 @@ pattern.")
(define-public catch2-3
(package
(name "catch2")
(version "3.5.1")
(version "3.5.3")
(home-page "https://github.com/catchorg/Catch2")
(source (origin
(method git-fetch)
@ -619,19 +620,12 @@ pattern.")
(file-name (git-file-name name version))
(sha256
(base32
"0p7rk01n4qfnnm1bgakllyqi83n1kbpz11gh65z1vspfz58hs9iv"))))
"11yla93vm2896fzhm3fz8lk3y3iz5iy7vd6wa7wnwvhsfd2dbfq3"))))
(build-system cmake-build-system)
(arguments
(list
#:configure-flags
#~(list #$@(match (%current-system)
((or "x86_64-linux" "i686-linux")
;; Tests fail on i686-linux without SSE2 for floats, see
;; upstream report
;; <https://github.com/catchorg/Catch2/issues/2796>.
'("-DCMAKE_CXX_FLAGS=-msse2 -mfpmath=sse"))
(_ '()))
"-DCATCH_DEVELOPMENT_BUILD=ON"
#~(list "-DCATCH_DEVELOPMENT_BUILD=ON"
"-DCATCH_ENABLE_WERROR=OFF"
"-DBUILD_SHARED_LIBS=ON")))
(inputs (list python-wrapper))

View File

@ -248,6 +248,46 @@ containers or various tools.")
network namespaces.")
(license license:gpl2+)))
(define-public passt
(package
(name "passt")
(version "2023_12_30.f091893")
(source
(origin
(method url-fetch)
(uri (string-append "https://passt.top/passt/snapshot/passt-" version
".tar.gz"))
(sha256
(base32 "1nyd4h93qlxn1r01ffijpsd7r7ny62phki5j58in8gz021jj4f3d"))))
(build-system gnu-build-system)
(arguments
(list
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
"RLIMIT_STACK_VAL=1024" ; ¯\_ (ツ)_/¯
(string-append "VERSION=" #$version)
(string-append "prefix=" #$output))
#:tests? #f
#:phases
#~(modify-phases %standard-phases
(delete 'configure))))
(home-page "https://passt.top")
(synopsis "Plug A Simple Socket Transport")
(description
"passt implements a thin layer between guest and host, that only
implements what's strictly needed to pretend processes are running locally.
The TCP adaptation doesn't keep per-connection packet buffers, and reflects
observed sending windows and acknowledgements between the two sides. This TCP
adaptation is needed as passt runs without the CAP_NET_RAW capability: it
can't create raw IP sockets on the pod, and therefore needs to map packets at
Layer-2 to Layer-4 sockets offered by the host kernel.
Also provides pasta, which similarly to slirp4netns, provides networking to
containers by creating a tap interface available to processes in the
namespace, and mapping network traffic outside the namespace using native
Layer-4 sockets.")
(license (list license:gpl2+ license:bsd-3))))
(define-public cni-plugins
(package
(name "cni-plugins")
@ -302,7 +342,7 @@ configure network interfaces in Linux containers.")
(define-public podman
(package
(name "podman")
(version "4.4.1")
(version "4.9.3")
(source
(origin
(method git-fetch)
@ -313,8 +353,11 @@ configure network interfaces in Linux containers.")
;; FIXME: Btrfs libraries not detected by these scripts.
(snippet '(substitute* "Makefile"
((".*hack/btrfs.*") "")))
(patches
(search-patches
"podman-program-lookup.patch"))
(sha256
(base32 "0qbr6rbyig3c2hvdvmd94jjkg820hpdz6j7dgyv62dl6wfwvj5jj"))
(base32 "17g7n09ndxhpjr39s9qwxdcv08wavjj0g5nmnrvrkz2wgdqigl1x"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
@ -341,10 +384,11 @@ configure network interfaces in Linux containers.")
(invoke "make" "remotesystem"))))
(add-after 'unpack 'fix-hardcoded-paths
(lambda _
(substitute* (find-files "libpod" "\\.go")
(("exec.LookPath[(][\"]slirp4netns[\"][)]")
(string-append "exec.LookPath(\""
(which "slirp4netns") "\")")))
(substitute* "vendor/github.com/containers/common/pkg/config/config.go"
(("@SLIRP4NETNS_DIR@")
(string-append #$slirp4netns "/bin"))
(("@PASST_DIR@")
(string-append #$passt "/bin")))
(substitute* "hack/install_catatonit.sh"
(("CATATONIT_PATH=\"[^\"]+\"")
(string-append "CATATONIT_PATH=" (which "true"))))
@ -374,11 +418,12 @@ configure network interfaces in Linux containers.")
libassuan
libseccomp
libselinux
passt
slirp4netns))
(native-inputs
(list bats
git
go-1.19
go-1.21
; strace ; XXX debug
pkg-config
python))
@ -387,7 +432,10 @@ configure network interfaces in Linux containers.")
(description
"Podman (the POD MANager) is a tool for managing containers and images,
volumes mounted into those containers, and pods made from groups of
containers.")
containers.
The @code{machine} subcommand is not supported due to gvproxy not being
packaged.")
(license license:asl2.0)))
(define-public buildah

View File

@ -1026,27 +1026,26 @@ axis breaks of a ggplot.")
(define-public r-ggdist
(package
(name "r-ggdist")
(version "3.3.1")
(version "3.3.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggdist" version))
(sha256
(base32 "0agr1l65s7vimdb88a7n3ahr6pp9ng5zf9mypdic26vhaaifh1b7"))))
(base32 "1wc3pqnf2r0324jm0vv1872smriv25h0lx0mni7qp93wrf8k0mpn"))))
(properties `((upstream-name . "ggdist")))
(build-system r-build-system)
(propagated-inputs (list r-cli
r-distributional
r-dplyr
r-ggplot2
r-glue
r-gtable
r-numderiv
r-quadprog
r-rcpp
r-rlang
r-scales
r-tibble
r-tidyselect
r-vctrs
r-withr))
(native-inputs (list r-knitr))
@ -2710,13 +2709,13 @@ respecting the grammar of its graphics paradigm.")
(define-public r-ggside
(package
(name "r-ggside")
(version "0.3.0")
(version "0.3.1")
(source (origin
(method url-fetch)
(uri (cran-uri "ggside" version))
(sha256
(base32
"0mx6j9wi54inklmyydcqm0ahbx0b6c6y4sfh2awqsbgwigc3056p"))))
"1r36hsnha9bqzfb3rhpj11zg307wzacnkn4i6hi627xrx4knj5cl"))))
(properties `((upstream-name . "ggside")))
(build-system r-build-system)
(propagated-inputs
@ -2977,13 +2976,13 @@ functions which can speed up workflow.")
(define-public r-pagoda2
(package
(name "r-pagoda2")
(version "1.0.11")
(version "1.0.12")
(source
(origin
(method url-fetch)
(uri (cran-uri "pagoda2" version))
(sha256
(base32 "13x2l7hcvd6975921c5hba8hm2qijkslviszfizah8wxynhbayy1"))))
(base32 "1kck12ri52nwsrxhjs8ghjji3rv1dxxjy8bxn1kk1hbg30265fsw"))))
(properties `((upstream-name . "pagoda2")))
(build-system r-build-system)
(propagated-inputs
@ -3973,13 +3972,13 @@ scraping tasks, inspired by libraries like @code{BeautifulSoup}.")
(define-public r-secretbase
(package
(name "r-secretbase")
(version "0.3.0")
(version "0.3.0.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "secretbase" version))
(sha256
(base32 "1wgbk16by9w933cff5ybb2sa0ndgj3sv9ahr2r1843vgqiyvx2xi"))))
(base32 "0mhfkkl35g10lgz4llm017f2jbgp7vmgi0g301r4agx1iqj5g51w"))))
(properties `((upstream-name . "secretbase")))
(build-system r-build-system)
(home-page "https://shikokuchuo.net/secretbase/")
@ -4704,13 +4703,13 @@ LaTeX.")
(define-public r-curl
(package
(name "r-curl")
(version "5.2.0")
(version "5.2.1")
(source (origin
(method url-fetch)
(uri (cran-uri "curl" version))
(sha256
(base32
"12gldddkfkdwm6h0lb1pjrcpqc9kmqwfwz18wn9brilzbw8s9nxz"))))
"147smp4am6z23c3j21bd0zcjxsmhnkkssn4wrlpwl6xa1264syja"))))
(properties
`((upstream-name . "curl")
(updater-extra-inputs . ("curl"))))
@ -5824,14 +5823,14 @@ contained in the navigation bar.")
(define-public r-spelling
(package
(name "r-spelling")
(version "2.2.1")
(version "2.3.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "spelling" version))
(sha256
(base32
"0vr5mgw9grnsnzsc29al72p05z786hnd6b9c6wq0c0dabk5szm2g"))))
"0fxa0wpmmx7bal7xb4yy3134s2bskj98kwhqn25bqga3inzqdm6d"))))
(properties `((upstream-name . "spelling")))
(build-system r-build-system)
(propagated-inputs
@ -7642,13 +7641,13 @@ provides an interactive R manager and worker environment.")
(define-public r-rmumps
(package
(name "r-rmumps")
(version "5.2.1-27")
(version "5.2.1-28")
(source
(origin
(method url-fetch)
(uri (cran-uri "rmumps" version))
(sha256
(base32 "08zvmbhjgcrlgdhfn8ssajy8vnwcyaw90zgc0v1ncn95z310gpl3"))))
(base32 "1cq7zrq730lj1z5xirzk5fvvlvdq101ppg47n0z7c0v17rvs80n6"))))
(properties `((upstream-name . "rmumps")))
(build-system r-build-system)
(inputs (list zlib))
@ -7996,14 +7995,14 @@ those for the gamma distribution in the @code{stats} package.")
(define-public r-bdsmatrix
(package
(name "r-bdsmatrix")
(version "1.3-6")
(version "1.3-7")
(source
(origin
(method url-fetch)
(uri (cran-uri "bdsmatrix" version))
(sha256
(base32
"1g300x11rv56f826mbv7mbb67a5xz3dv74hpjc18jh3q8gap3j7r"))))
"08krrd7454ixqv4nq55hgf3djp1pz1vl3ndslsrh2pkdq1d5wl63"))))
(properties `((upstream-name . "bdsmatrix")))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/bdsmatrix/")
@ -8462,17 +8461,22 @@ these progress updates.")
(define-public r-lava
(package
(name "r-lava")
(version "1.7.3")
(version "1.8.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "lava" version))
(sha256
(base32
"023av1mz4hr1lqv8cpbx0j1y3c7ljyns35rm838c618b6pqps22f"))))
"0zz8hzmqd4qa14y52c8gw9hr6gn0d7srffrddxrmhb01rbp9dfcd"))))
(build-system r-build-system)
(propagated-inputs
(list r-future-apply r-numderiv r-progressr r-squarem r-survival))
(list r-cli
r-future-apply
r-numderiv
r-progressr
r-squarem
r-survival))
(native-inputs
(list r-knitr))
(home-page "https://github.com/kkholst/lava")
@ -9549,6 +9553,34 @@ imputations.")
;; Any of these two versions.
(license (list license:gpl2 license:gpl3))))
(define-public r-transformr
(package
(name "r-transformr")
(version "0.1.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "transformr" version))
(sha256
(base32 "125y99wpgvp92qsg7934nzjqy6irjzaj21c0dcq7apqd2hqamfxw"))))
(properties `((upstream-name . "transformr")))
(build-system r-build-system)
(propagated-inputs (list r-cpp11
r-lpsolve
r-rlang
r-sf
r-tweenr
r-vctrs))
(home-page "https://github.com/thomasp85/transformr")
(synopsis "Polygon and path transformations")
(description
"In order to smoothly animate the transformation of polygons and paths,
many aspects needs to be taken into account, such as differing number of
control points, changing center of rotation, etc. The transformr package
provides an extensive framework for manipulating the shapes of polygons and
paths and can be seen as the spatial brother to the tweenr package.")
(license license:expat)))
(define-public r-truncnorm
(package
(name "r-truncnorm")
@ -10739,13 +10771,13 @@ features:
(define-public r-n2r
(package
(name "r-n2r")
(version "1.0.1")
(version "1.0.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "N2R" version))
(sha256
(base32 "12bv7xx6j6222qgpv6g61i68017fz0x6fjg9a9k5yhgw3zk05hpk"))))
(base32 "0bbxl0y36bmsxwi4rs4f6jwhf9bhag2rkvvzcg5669vgm2p4scjr"))))
(properties `((upstream-name . "N2R")))
(build-system r-build-system)
(propagated-inputs
@ -13408,14 +13440,14 @@ those searches and pull data into their R sessions.")
(define-public r-renv
(package
(name "r-renv")
(version "1.0.4")
(version "1.0.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "renv" version))
(sha256
(base32
"0jfrkxslx1bw4b2akkp12bgvpfc58dh2vrm91hgb1xa5xydai7j6"))))
"07y1xqnx5jkgk0cqgf8c4p5vm3qy87zjl31zv6s0jssy3v7amq4p"))))
(properties `((upstream-name . "renv")))
(build-system r-build-system)
(native-inputs
@ -13677,14 +13709,14 @@ Sequence logos can easily be combined with other ggplot2 plots.")
(define-public r-ggsci
(package
(name "r-ggsci")
(version "3.0.0")
(version "3.0.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggsci" version))
(sha256
(base32
"0ag1cj4ycl5xmll8mqmmikyvq94l8yx96pb8m2i853yp2rjk20c9"))))
"030rkjx64mlhy19d74p3blsi92nyjq9vbn33323dvm1rihb8avgi"))))
(build-system r-build-system)
(propagated-inputs
(list r-ggplot2 r-scales))
@ -13847,14 +13879,14 @@ clustering.")
(define-public r-factominer
(package
(name "r-factominer")
(version "2.9")
(version "2.10")
(source
(origin
(method url-fetch)
(uri (cran-uri "FactoMineR" version))
(sha256
(base32
"0c2j3xid85qffsdjwndqiwihclzw6k1nkbpzcc7whhd6k79rh9l8"))))
"1kjb0hk7zck8702inw9ayxrpbi8raq3rldxsq848lk15z3wg9r6w"))))
(properties `((upstream-name . "FactoMineR")))
(build-system r-build-system)
(propagated-inputs
@ -13989,21 +14021,21 @@ results to the user.")
(define-public r-hdf5r
(package
(name "r-hdf5r")
(version "1.3.9")
(version "1.3.10")
(source
(origin
(method url-fetch)
(uri (cran-uri "hdf5r" version))
(sha256
(base32
"1av3pafbfff4wanw9s1iqgwkcdmc5f8c8h3z0byqll9i661kz3pg"))))
"0khj94z6ls6dnc6fpxwf1w93mk6f3z2p39mbihf0lz52jc36wjcj"))))
(build-system r-build-system)
(inputs
(list hdf5 zlib))
(propagated-inputs
(list r-bit64 r-r6))
(native-inputs
(list r-knitr))
(list pkg-config r-knitr))
(home-page "https://hhoeflin.github.io/hdf5r")
(synopsis "Interface to the HDF5 binary data format")
(description
@ -14540,13 +14572,13 @@ tidyverse workflow.")
(define-public r-nodbi
(package
(name "r-nodbi")
(version "0.10.2")
(version "0.10.3")
(source (origin
(method url-fetch)
(uri (cran-uri "nodbi" version))
(sha256
(base32
"1pznlnln0p55qqwy22h9m79ddf3wgnx3vaxx2q39wvgqwj0kk1b0"))))
"17ghgp6sabj4dlmx3cdn9rrhci7050a73cd17fymjksgvy1jbwf6"))))
(properties `((upstream-name . "nodbi")))
(build-system r-build-system)
(propagated-inputs
@ -16173,13 +16205,13 @@ for the reconstruction of gene regulatory networks.")
(define-public r-partr2
(package
(name "r-partr2")
(version "0.9.1")
(version "0.9.2")
(source (origin
(method url-fetch)
(uri (cran-uri "partR2" version))
(sha256
(base32
"06ky0hhrq0mcsn9rwrzvwn0rrjj0l8rxs0hqp10668gdq5hjk8bn"))))
"09x8ykg90y4xq0sqm6zvx41sccgdbglmhpqm9sp3m74a87j4bjly"))))
(properties `((upstream-name . "partR2")))
(build-system r-build-system)
(propagated-inputs (list r-dplyr
@ -19295,14 +19327,14 @@ over-plotting in scatter plots with text.")
(define-public r-colorramps
(package
(name "r-colorramps")
(version "2.3.1")
(version "2.3.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "colorRamps" version))
(sha256
(base32
"12jnkj50yh2hc5l7j56lrrrmn58akrj9dwj98vzf42iq4h42kwb1"))))
"0cq8l6ybhff2q2dj2i73b4cnw6v2c6ql24jbrkh0xrpc9wjsarxj"))))
(properties `((upstream-name . "colorRamps")))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/colorRamps")
@ -19985,14 +20017,14 @@ conditional reporting based on the current \"output level\".")
(define-public r-tractor-base
(package
(name "r-tractor-base")
(version "3.3.5.1")
(version "3.4.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "tractor.base" version))
(sha256
(base32
"0fxbzbhpi6l55m14nmww8y3kdxgchzj4mw1yf4xkm2y6s68phvgc"))))
"12mp5x6c7c82a4z7p39cb478kwwf6lkrgbis6ak00yibsd3n6na3"))))
(properties `((upstream-name . "tractor.base")))
(build-system r-build-system)
(propagated-inputs
@ -20342,14 +20374,14 @@ library.")
(define-public r-ontologyindex
(package
(name "r-ontologyindex")
(version "2.11")
(version "2.12")
(source
(origin
(method url-fetch)
(uri (cran-uri "ontologyIndex" version))
(sha256
(base32
"17ndvqvb74b980gpb3hpg9bd68bb5f52k9s1i2kd1f9cdrdjvw97"))))
"0gf0z0vgc1f4f70f2zpwz9bka0gbgbj4w3fcxncv1b7lbrxddrd8"))))
(properties `((upstream-name . "ontologyIndex")))
(build-system r-build-system)
(native-inputs
@ -21634,14 +21666,14 @@ them in distributed compute environments.")
(define-public r-parallelly
(package
(name "r-parallelly")
(version "1.37.0")
(version "1.37.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "parallelly" version))
(sha256
(base32
"19zrfiakg5xg51r9va4r976b4lnnsj5nsk6i6srxsl227q45xra1"))))
"189ngbh9i6mqmfn4z6446in7687ddlpdq6v5rj3hr8zqinqlwznz"))))
(properties `((upstream-name . "parallelly")))
(build-system r-build-system)
(home-page "https://github.com/HenrikBengtsson/parallelly")
@ -23366,14 +23398,14 @@ sampling.")
(define-public r-deldir
(package
(name "r-deldir")
(version "2.0-2")
(version "2.0-4")
(source
(origin
(method url-fetch)
(uri (cran-uri "deldir" version))
(sha256
(base32
"1qzfq47fs3pr0946m53z6cq93pbpkgwwhqkcdgfahxsq1izpigz9"))))
"0ls69b9yynvsiy6madvzafcb0jdvxw66sin7cinpnw63israq66l"))))
(build-system r-build-system)
(native-inputs (list gfortran))
(home-page "https://cran.r-project.org/web/packages/deldir")
@ -23942,13 +23974,13 @@ SELECT or UPDATE queries to an end-point.")
(define-public r-bookdown
(package
(name "r-bookdown")
(version "0.37")
(version "0.38")
(source (origin
(method url-fetch)
(uri (cran-uri "bookdown" version))
(sha256
(base32
"18j8ylaq5wnw1c0lif9a002kbymv04pd0i43ahmqkskkv1b13hdk"))
"1i0z75sxvy3cb582siz544az6b9bs3vk2kyij9zx5jdpc1247fgd"))
;; TODO: there is one more file to replace:
;; inst/resources/gitbook/js/app.min.js
(snippet
@ -24587,14 +24619,14 @@ packages with Rcpp.")
(define-public r-tweenr
(package
(name "r-tweenr")
(version "2.0.2")
(version "2.0.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "tweenr" version))
(sha256
(base32
"1wqzcsxlz1isb1j0v5g6dgvd40q3q9qlahvgcgiq0j4d87nzvfv4"))))
"1glc7ks5yymcm4pi0fjpi1zh7m5d4cz7zy20pa3kfraxlh9fbazg"))))
(build-system r-build-system)
(arguments
(list
@ -24797,28 +24829,27 @@ databases, including ENA, PDB or ChEMBL are also accessible.")
(define-public r-ggraph
(package
(name "r-ggraph")
(version "2.1.0")
(version "2.2.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggraph" version))
(sha256
(base32
"07sw4h94dzbs44dcvvj80g8v8252k4iw8pkmzdrk4qagvhidnvv8"))))
"0zs02xyzvimk8hj1z465zxp1hlca3gfirdcwb3gqriwsmnfhg661"))))
(build-system r-build-system)
(propagated-inputs
(list r-cli
r-digest
r-cpp11
r-dplyr
r-ggforce
r-ggplot2
r-ggrepel
r-graphlayouts
r-gtable
r-igraph
r-lifecycle
r-mass
r-rcpp
r-memoise
r-rlang
r-scales
r-tidygraph
@ -26956,13 +26987,13 @@ guaranteeing well-connected communities.\" <arXiv:1810.08473>.")
(define-public r-leidenalg
(package
(name "r-leidenalg")
(version "1.1.2")
(version "1.1.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "leidenAlg" version))
(sha256
(base32 "0wqay0rf28pgaf88bsvmrwgggzbma93rv9nqbydhjf1lc96ay1lz"))))
(base32 "0g4gs6rrz3wn97ag7wsfr6qa4zgb75i0k9jc1siii4pf6h689d1x"))))
(properties
`((upstream-name . "leidenAlg")
(updater-extra-inputs . ("gmp"))))
@ -28072,14 +28103,14 @@ server-side.")
(define-public r-sysfonts
(package
(name "r-sysfonts")
(version "0.8.8")
(version "0.8.9")
(source
(origin
(method url-fetch)
(uri (cran-uri "sysfonts" version))
(sha256
(base32
"1fq5dn4l09sgrbznfz9cakf4vgc3761zwicvqaazh0s8mzbaicpn"))))
"124zcnw88xnlhx27qjm07mw59f98jiwspmm65v94k815lqs9qiaj"))))
(properties `((upstream-name . "sysfonts")))
(build-system r-build-system)
(inputs
@ -28118,14 +28149,14 @@ package.")
(define-public r-showtext
(package
(name "r-showtext")
(version "0.9-6")
(version "0.9-7")
(source
(origin
(method url-fetch)
(uri (cran-uri "showtext" version))
(sha256
(base32
"0c4cssqk4s27pxfyb7fii97zhy4awzapj7bx9zkbki4va75mkjhf"))))
"12a8j87ca39fd8vn9ixzfgkbffz8ajyslhsx2hqjry1gzbk864i5"))))
(properties `((upstream-name . "showtext")))
(build-system r-build-system)
(inputs
@ -29825,14 +29856,14 @@ variable observed over time.")
(define-public r-fda
(package
(name "r-fda")
(version "6.1.4")
(version "6.1.7")
(source
(origin
(method url-fetch)
(uri (cran-uri "fda" version))
(sha256
(base32
"0595887hv80blx9aq63qnmc9vr022p21zqhgp2wmdjvq1g68x0g2"))))
"00hiz15v31zs5l0bqdkim1fpfd3bjvssv77iczq0si724s4fqxiq"))))
(properties `((upstream-name . "fda")))
(build-system r-build-system)
(propagated-inputs
@ -31332,14 +31363,14 @@ Raftery, Appl.Statistics, 1989); it includes inference and basic methods.")
(define-public r-forecast
(package
(name "r-forecast")
(version "8.21.1")
(version "8.22.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "forecast" version))
(sha256
(base32
"09w1vh96cf9wz071why5f4265cvvwqi2b3wb0khrjvkzgkiaq7l1"))))
"09s5fdyzc6f5l8dy7ynjmd6l5fk3wvz59q0kfv2fd9da5c1mqd8w"))))
(properties `((upstream-name . "forecast")))
(build-system r-build-system)
(propagated-inputs
@ -31925,14 +31956,14 @@ perform @dfn{exploratory mediation} (XMed).")
(define-public r-stanheaders
(package
(name "r-stanheaders")
(version "2.32.5")
(version "2.32.6")
(source
(origin
(method url-fetch)
(uri (cran-uri "StanHeaders" version))
(sha256
(base32
"0wqps6xy2xypxsg3p3grdiw67a0xla3vh9x9hcf2ln03yhgkn4jl"))))
"18p1rch5ipj0f4jdvr8mnlk8pg1l4njjj4cgbp7ni7kcngsn3049"))))
(properties `((upstream-name . "StanHeaders")))
(build-system r-build-system)
(inputs (list pandoc))
@ -32329,14 +32360,14 @@ Latent regression models and plausible value imputation are also supported.")
(define-public r-erm
(package
(name "r-erm")
(version "1.0-4")
(version "1.0-5")
(source
(origin
(method url-fetch)
(uri (cran-uri "eRm" version))
(sha256
(base32
"0rp2lxkwkh09zmv101rzk7x1v1pmscp71qpf8f4chxp3idg6rpid"))))
"0bkivhiy02pibdcvb9z0i0yvc3wz3v33n6slhkkik61gcw1idmf0"))))
(properties `((upstream-name . "eRm")))
(build-system r-build-system)
(propagated-inputs
@ -33047,26 +33078,17 @@ statistics and p-values of the correlation coefficients.")
(define-public r-hrbrthemes
(package
(name "r-hrbrthemes")
(version "0.8.0")
(version "0.8.7")
(source
(origin
(method url-fetch)
(uri (cran-uri "hrbrthemes" version))
(sha256
(base32 "057h60b5p53dcyjyfwlgjc1ry968s9s64dw78p443w8717zk7zpc"))))
(base32 "0vwrwcx3yp5yi1fw45zb5b3rhhbhrmzkl935s5apvf9lwjz2wjas"))))
(properties `((upstream-name . "hrbrthemes")))
(build-system r-build-system)
(propagated-inputs
(list r-extrafont
r-gdtools
r-ggplot2
r-htmltools
r-knitr
r-magrittr
r-rmarkdown
r-scales))
(native-inputs
(list r-knitr))
(list r-extrafont r-gdtools r-ggplot2 r-magrittr r-scales))
(home-page "https://github.com/hrbrmstr/hrbrthemes/")
(synopsis "Additional themes, theme components and utilities for @code{ggplot2}")
(description
@ -34669,14 +34691,14 @@ package.")
(define-public r-spatstat-geom
(package
(name "r-spatstat-geom")
(version "3.2-8")
(version "3.2-9")
(source
(origin
(method url-fetch)
(uri (cran-uri "spatstat.geom" version))
(sha256
(base32
"08q9k7065gpjmwja4xac9q8jv2hdkgmwvdncrnhdk9xkzc0z9mjb"))))
"05ymr4h6g5kp6kinm8qi6mcwi51d2rp671cm3hqgyrhk91k72cx7"))))
(properties `((upstream-name . "spatstat.geom")))
(build-system r-build-system)
(propagated-inputs
@ -34755,13 +34777,13 @@ for spatial data on a linear network.")
(define-public r-spatstat-random
(package
(name "r-spatstat-random")
(version "3.2-2")
(version "3.2-3")
(source
(origin
(method url-fetch)
(uri (cran-uri "spatstat.random" version))
(sha256
(base32 "01rsh7z9prsdrqlbc2761sf54w24z7jzj64ijfzy8l5ca56fxij8"))))
(base32 "19rl757lccr169fj00zmhb1a20bxw4kljzb81hbbr5xhj0za6lp0"))))
(properties `((upstream-name . "spatstat.random")))
(build-system r-build-system)
(propagated-inputs (list r-spatstat-data r-spatstat-geom r-spatstat-utils))
@ -36870,13 +36892,13 @@ other R users.")
(define-public r-seurat
(package
(name "r-seurat")
(version "5.0.1")
(version "5.0.2")
(source (origin
(method url-fetch)
(uri (cran-uri "Seurat" version))
(sha256
(base32
"038mqnavn3gxxx41yzq0q7gfnnx15dizryv8l374zwavpqsb84q7"))))
"1d49a9mhip81lvnkr8i4dznkmzyskdzrpi485w7yw2sr0qbyzg5c"))))
(properties `((upstream-name . "Seurat")))
(build-system r-build-system)
(propagated-inputs
@ -37053,11 +37075,11 @@ goal of enhancing interoperability between Seurat and Scanpy.")
(license license:gpl3))))
(define-public r-seuratdata
(let ((commit "b59556b24d7d6728a5744c9c715dd5f7f32ed7a5")
(let ((commit "4dc08e022f51c324bc7bf785b1b5771d2742701d")
(revision "1"))
(package
(name "r-seuratdata")
(version (git-version "0.2.1" revision commit))
(version (git-version "0.2.2.9001" revision commit))
(source
(origin
(method git-fetch)
@ -37066,7 +37088,7 @@ goal of enhancing interoperability between Seurat and Scanpy.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1xfdmdmgn4r0z6w4cxa98ic6xk8i6qz054r215dvqbjs1vydsbf9"))))
(base32 "1wac1jqh42nbaikkd8v3apr1lwqcn1ppprfkwqfnqs6mvavgqavp"))))
(properties `((upstream-name . "SeuratData")))
(build-system r-build-system)
(arguments
@ -37076,8 +37098,7 @@ goal of enhancing interoperability between Seurat and Scanpy.")
;; the included list of packages.
(add-after 'unpack 'set-HOME
(lambda _ (setenv "HOME" "/tmp"))))))
(propagated-inputs
(list r-cli r-crayon r-rappdirs))
(propagated-inputs (list r-cli r-crayon r-rappdirs r-seurat r-seuratobject))
(home-page "https://github.com/satijalab/seurat-data")
(synopsis "Install and manage Seurat datasets")
(description
@ -37609,13 +37630,13 @@ implemented as @code{R6} classes.")
(define-public r-mlr3
(package
(name "r-mlr3")
(version "0.17.2")
(version "0.18.0")
(source (origin
(method url-fetch)
(uri (cran-uri "mlr3" version))
(sha256
(base32
"0kcny3wxc7qc2538hxxdzs9bw4pq55s4abhlnpf1r13b2gkns323"))))
"0v83lwigpm227dqr8hz5x1khcjqf3q0glqvz812sckbcf74ibhdz"))))
(build-system r-build-system)
(propagated-inputs
(list r-backports
@ -37674,14 +37695,14 @@ vector machines, and gradient boosting.")
(define-public r-bbotk
(package
(name "r-bbotk")
(version "0.7.3")
(version "0.8.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "bbotk" version))
(sha256
(base32
"1ddr5w7n68d3imcrm0ipgk1waml8zj4szi566dmmiqvlpzpgdr3p"))))
"1ggfl1lhvjnnkxib4svqd82agrvjcg1101cbf4g2c0kzgzm1jaj6"))))
(properties `((upstream-name . "bbotk")))
(build-system r-build-system)
(propagated-inputs
@ -37704,13 +37725,13 @@ annealing.")
(define-public r-mlr3tuning
(package
(name "r-mlr3tuning")
(version "0.19.2")
(version "0.20.0")
(source (origin
(method url-fetch)
(uri (cran-uri "mlr3tuning" version))
(sha256
(base32
"1d27m6yzwr7chpf19q6mwpj2fyz9vv8k6nbg8z9615hmbp96lan5"))))
"1y1cqfqdx9v0lfb4619y2hw6clhhjzi7hjwrpwzdpd7ymcx3dgi3"))))
(build-system r-build-system)
(propagated-inputs
(list r-bbotk
@ -39190,14 +39211,14 @@ complex functions.")
(define-public r-gganimate
(package
(name "r-gganimate")
(version "1.0.8")
(version "1.0.9")
(source
(origin
(method url-fetch)
(uri (cran-uri "gganimate" version))
(sha256
(base32
"1jabs9qr0319w508kdsk5nmzfhl6nzykpp1by7l639yfvrfqcbd1"))))
"016nky797h4093qrpynq5rr1p7h4chpv1hyngpcs2csr1064rjmz"))))
(properties `((upstream-name . "gganimate")))
(build-system r-build-system)
(arguments
@ -39212,13 +39233,17 @@ complex functions.")
;; For video output.
(list ffmpeg))
(propagated-inputs
(list r-ggplot2
(list r-cli
r-ggplot2
r-glue
r-lifecycle
r-progress
r-rlang
r-scales
r-stringi
r-transformr
r-tweenr
r-vctrs
;; For GIF/SVG output. gifski is faster, but depends on Rust.
r-magick
;; For HTML output.

View File

@ -41,6 +41,7 @@
;;; Copyright © 2023, 2024 Troy Figiel <troy@troyfigiel.com>
;;; Copyright © 2024 Herman Rimm <herman@rimm.ee>
;;; Copyright © 2024 Tomas Volf <~@wolfsden.cz>
;;; Copyright © 2024 Suhail Singh <suhail@bayesians.ca>
;;;
;;; This file is part of GNU Guix.
;;;
@ -3909,8 +3910,36 @@ capacity and random or least recently used (LRU) replacement.")
Rust.")
(license (list license:expat license:asl2.0))))
(define-public rust-async-broadcast-0.6
(package
(name "rust-async-broadcast")
(version "0.6.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "async-broadcast" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0d1xk2pr5khk1radkbaf7pp7pbjkb18m43n2rgkfsfxk177pak9k"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-event-listener" ,rust-event-listener-3)
("rust-event-listener-strategy" ,rust-event-listener-strategy-0.1)
("rust-futures-core" ,rust-futures-core-0.3))
#:cargo-development-inputs (("rust-criterion" ,rust-criterion-0.3)
("rust-doc-comment" ,rust-doc-comment-0.3)
("rust-easy-parallel" ,rust-easy-parallel-3)
("rust-futures-lite" ,rust-futures-lite-1)
("rust-futures-util" ,rust-futures-util-0.3))))
(home-page "https://github.com/smol-rs/async-broadcast")
(synopsis "Async broadcast channels")
(description "This package provides async broadcast channels in Rust.")
(license (list license:expat license:asl2.0))))
(define-public rust-async-broadcast-0.5
(package
(inherit rust-async-broadcast-0.6)
(name "rust-async-broadcast")
(version "0.5.1")
(source (origin
@ -3920,7 +3949,6 @@ Rust.")
(sha256
(base32
"0avdqbci1qdlfc4glc3wqrb0wi5ffc7bqv2q1wg14syayvdwqj3w"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-event-listener" ,rust-event-listener-2)
@ -3930,11 +3958,7 @@ Rust.")
("rust-doc-comment" ,rust-doc-comment-0.3)
("rust-easy-parallel" ,rust-easy-parallel-3)
("rust-futures-lite" ,rust-futures-lite-1)
("rust-futures-util" ,rust-futures-util-0.3))))
(home-page "https://github.com/smol-rs/async-broadcast")
(synopsis "Async broadcast channels")
(description "This package provides async broadcast channels in Rust.")
(license (list license:expat license:asl2.0))))
("rust-futures-util" ,rust-futures-util-0.3))))))
(define-public rust-async-channel-2
(package
@ -11700,6 +11724,34 @@ stream of tokens.")
(("rust-clap" ,rust-clap-3)
("rust-snapbox" ,rust-snapbox-0.2))))))
(define-public rust-clap-verbosity-flag-2
(package
(name "rust-clap-verbosity-flag")
(version "2.1.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "clap-verbosity-flag" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "15f419hg1xskf7pwzk5n27cpn05n0ccbd6sbji906ymi47576zxm"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-clap" ,rust-clap-4)
("rust-log" ,rust-log-0.4))
#:cargo-development-inputs
(("rust-clap" ,rust-clap-4)
("rust-env-logger" ,rust-env-logger-0.10)
("rust-tracing" ,rust-tracing-0.1)
("rust-tracing-log" ,rust-tracing-log-0.2)
("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
(home-page "https://github.com/clap-rs/clap-verbosity-flag")
(synopsis "Easily add a `--verbose` flag to CLIs using Clap")
(description
"This package provides a way to add a `--verbose` flag to CLIs using
Clap.")
(license (list license:expat license:asl2.0))))
(define-public rust-clearscreen-1
(package
(name "rust-clearscreen")
@ -22343,6 +22395,23 @@ blocking data structures.")
(description "This package provides block and poll on event_listener.")
(license (list license:asl2.0 license:expat))))
(define-public rust-event-listener-strategy-0.1
(package
(inherit rust-event-listener-strategy-0.4)
(name "rust-event-listener-strategy")
(version "0.1.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "event-listener-strategy" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1z99km9lwya36bxhvrz4rsl3nhqhhlnnx7a2gdz4nzpa6177pj8m"))))
(arguments
`(#:cargo-inputs (("rust-event-listener" ,rust-event-listener-3)
("rust-pin-project-lite" ,rust-pin-project-lite-0.2))
#:cargo-development-inputs (("rust-futures-lite" ,rust-futures-lite-1))))))
(define-public rust-executable-path-1
(package
(name "rust-executable-path")

View File

@ -2045,6 +2045,27 @@ transfer coding.")
(description "This package provides an async HTTP/3 implementation.")
(license license:expat)))
(define-public rust-h3-0.0.2
(package
(inherit rust-h3-0.0.3)
(name "rust-h3")
(version "0.0.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "h3" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "17nbmkz6xs848257xv7gdhrnhyhagfb0dbqla82zv1nixr1wmrkd"))))
(arguments
`(#:skip-build? #t
#:cargo-inputs (("rust-bytes" ,rust-bytes-1)
("rust-fastrand" ,rust-fastrand-1)
("rust-futures-util" ,rust-futures-util-0.3)
("rust-http" ,rust-http-0.2)
("rust-tokio" ,rust-tokio-1)
("rust-tracing" ,rust-tracing-0.1))))))
(define-public rust-h3-quinn-0.0.4
(package
(name "rust-h3-quinn")
@ -2071,6 +2092,26 @@ transfer coding.")
"This package provides QUIC transport implementation based on Quinn.")
(license license:expat)))
(define-public rust-h3-quinn-0.0.3
(package
(inherit rust-h3-quinn-0.0.4)
(name "rust-h3-quinn")
(version "0.0.3")
(source
(origin
(method url-fetch)
(uri (crate-uri "h3-quinn" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0kf6bqmm751gwj24dqgb2rrwq8ibhv7z5v7ix4pfiwz4ccbiljid"))))
(arguments
`(#:cargo-inputs (("rust-bytes" ,rust-bytes-1)
("rust-futures" ,rust-futures-0.3)
("rust-h3" ,rust-h3-0.0.2)
("rust-quinn" ,rust-quinn-0.10)
("rust-quinn-proto" ,rust-quinn-proto-0.10)
("rust-tokio-util" ,rust-tokio-util-0.7))))))
(define-public rust-headers-0.3
(package
(name "rust-headers")
@ -2158,6 +2199,304 @@ transfer coding.")
(("rust-bytes" ,rust-bytes-0.4)
("rust-http" ,rust-http-0.1))))))
(define-public rust-hickory-client-0.24
(package
(name "rust-hickory-client")
(version "0.24.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "hickory-client" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0bj6g69h86d7mbclrwaj7cgl1plr6pvllv8qn69xmpgh9h90hgkz"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-test-flags
'("--release" "--lib" "--bins" "--tests" "--"
;; Some tests require network access.
"--skip=client::async_client::tests::async_client")
#:cargo-inputs (("rust-cfg-if" ,rust-cfg-if-1)
("rust-data-encoding" ,rust-data-encoding-2)
("rust-futures-channel" ,rust-futures-channel-0.3)
("rust-futures-util" ,rust-futures-util-0.3)
("rust-hickory-proto" ,rust-hickory-proto-0.24)
("rust-once-cell" ,rust-once-cell-1)
("rust-radix-trie" ,rust-radix-trie-0.2)
("rust-rand" ,rust-rand-0.8)
("rust-rustls" ,rust-rustls-0.21)
("rust-serde" ,rust-serde-1)
("rust-thiserror" ,rust-thiserror-1)
("rust-tokio" ,rust-tokio-1)
("rust-tracing" ,rust-tracing-0.1))
#:cargo-development-inputs
(("rust-futures" ,rust-futures-0.3)
("rust-openssl" ,rust-openssl-0.10)
("rust-tokio" ,rust-tokio-1)
("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
(native-inputs
(list openssl pkg-config))
(home-page "https://hickory-dns.org/")
(synopsis "Client library for Hickory DNS, with DNSSEC support")
(description
"Hickory DNS is a safe and secure DNS library. This is the Client
library with DNSSEC support. DNSSEC with NSEC validation for negative
records, is complete. The client supports dynamic DNS with SIG0 authenticated
requests, implementing easy to use high level funtions. Hickory DNS is based
on the Tokio and Futures libraries, which means it should be easily integrated
into other software that also use those libraries.")
(license (list license:expat license:asl2.0))))
(define-public rust-hickory-proto-0.24
(package
(name "rust-hickory-proto")
(version "0.24.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "hickory-proto" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1kxvdzmwwi1d6wsp9bcs91ipmwxcyhpwbvz3an9h0q28ryy6y6h9"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-async-trait" ,rust-async-trait-0.1)
("rust-backtrace" ,rust-backtrace-0.3)
("rust-bytes" ,rust-bytes-1)
("rust-cfg-if" ,rust-cfg-if-1)
("rust-data-encoding" ,rust-data-encoding-2)
("rust-enum-as-inner" ,rust-enum-as-inner-0.6)
("rust-futures-channel" ,rust-futures-channel-0.3)
("rust-futures-io" ,rust-futures-io-0.3)
("rust-futures-util" ,rust-futures-util-0.3)
("rust-h2" ,rust-h2-0.3)
("rust-h3" ,rust-h3-0.0.2)
("rust-h3-quinn" ,rust-h3-quinn-0.0.3)
("rust-http" ,rust-http-0.2)
("rust-idna" ,rust-idna-0.4)
("rust-ipnet" ,rust-ipnet-2)
("rust-js-sys" ,rust-js-sys-0.3)
("rust-native-tls" ,rust-native-tls-0.2)
("rust-once-cell" ,rust-once-cell-1)
("rust-openssl" ,rust-openssl-0.10)
("rust-quinn" ,rust-quinn-0.10)
("rust-rand" ,rust-rand-0.8)
("rust-ring" ,rust-ring-0.16)
("rust-rustls" ,rust-rustls-0.21)
("rust-rustls-native-certs" ,rust-rustls-native-certs-0.6)
("rust-rustls-pemfile" ,rust-rustls-pemfile-1)
("rust-serde" ,rust-serde-1)
("rust-socket2" ,rust-socket2-0.5)
("rust-thiserror" ,rust-thiserror-1)
("rust-tinyvec" ,rust-tinyvec-1)
("rust-tokio" ,rust-tokio-1)
("rust-tokio-native-tls" ,rust-tokio-native-tls-0.3)
("rust-tokio-openssl" ,rust-tokio-openssl-0.6)
("rust-tokio-rustls" ,rust-tokio-rustls-0.24)
("rust-tracing" ,rust-tracing-0.1)
("rust-url" ,rust-url-2)
("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
("rust-webpki-roots" ,rust-webpki-roots-0.25))
#:cargo-development-inputs
(("rust-futures-executor" ,rust-futures-executor-0.3)
("rust-openssl" ,rust-openssl-0.10)
("rust-tokio" ,rust-tokio-1)
("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
(native-inputs
(list openssl pkg-config))
(home-page "https://hickory-dns.org/")
(synopsis
"Foundational DNS protocol library for all Hickory DNS projects")
(description
"Hickory DNS is a safe and secure DNS library. This is the foundational
DNS protocol library for all Hickory DNS projects.")
(license (list license:expat license:asl2.0))))
(define-public rust-hickory-recursor-0.24
(package
(name "rust-hickory-recursor")
(version "0.24.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "hickory-recursor" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "146ifrml22hjydrw16qgfw32kv3v9wvvl4dqh45pg6fymxvw8xgi"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-async-recursion" ,rust-async-recursion-1)
("rust-async-trait" ,rust-async-trait-0.1)
("rust-bytes" ,rust-bytes-1)
("rust-cfg-if" ,rust-cfg-if-1)
("rust-enum-as-inner" ,rust-enum-as-inner-0.6)
("rust-futures-util" ,rust-futures-util-0.3)
("rust-hickory-proto" ,rust-hickory-proto-0.24)
("rust-hickory-resolver" ,rust-hickory-resolver-0.24)
("rust-lru-cache" ,rust-lru-cache-0.1)
("rust-parking-lot" ,rust-parking-lot-0.12)
("rust-serde" ,rust-serde-1)
("rust-thiserror" ,rust-thiserror-1)
("rust-tokio" ,rust-tokio-1)
("rust-tracing" ,rust-tracing-0.1))
#:cargo-development-inputs
(("rust-tokio" ,rust-tokio-1)
("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
(home-page "https://hickory-dns.org/")
(synopsis
"Hickory DNS Recursor is a DNS recursive resolver with DNSSEC support")
(description
"*WARNING* This library is experimental
Hickory DNS Recursor is a safe and secure DNS recursive resolver with DNSSEC
support. Hickory DNS is based on the Tokio and Futures libraries, which means
it should be easily integrated into other software that also use those
libraries. This library can be used as in the server and binary for
performing recursive lookups.")
(license (list license:expat license:asl2.0))))
(define-public rust-hickory-resolver-0.24
(package
(name "rust-hickory-resolver")
(version "0.24.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "hickory-resolver" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1s3486qczv9gaw8dap06c0bwb2bpqm23a0ihj169hsjf2qhz1f1m"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-test-flags
'("--release" "--lib" "--bins" "--tests" "--"
;; Some tests require network access.
"--skip=async_resolver::tests::test_domain_search"
"--skip=async_resolver::tests::test_fqdn"
"--skip=async_resolver::tests::test_idna"
"--skip=async_resolver::tests::test_large_ndots"
"--skip=async_resolver::tests::test_lookup_cloudflare"
"--skip=async_resolver::tests::test_lookup_google"
"--skip=async_resolver::tests::test_lookup_quad9"
"--skip=async_resolver::tests::test_ndots"
"--skip=async_resolver::tests::test_search_list"
"--skip=hosts::tests::test_read_hosts_conf"
"--skip=name_server::name_server::tests::test_name_server"
"--skip=name_server::name_server_pool::tests::test_multi_use_conns"
"--skip=resolver::tests::test_lookup"
"--skip=system_conf::unix::tests::test_read_resolv_conf")
#:cargo-inputs (("rust-cfg-if" ,rust-cfg-if-1)
("rust-futures-util" ,rust-futures-util-0.3)
("rust-hickory-proto" ,rust-hickory-proto-0.24)
("rust-ipconfig" ,rust-ipconfig-0.3)
("rust-lru-cache" ,rust-lru-cache-0.1)
("rust-once-cell" ,rust-once-cell-1)
("rust-parking-lot" ,rust-parking-lot-0.12)
("rust-rand" ,rust-rand-0.8)
("rust-resolv-conf" ,rust-resolv-conf-0.7)
("rust-rustls" ,rust-rustls-0.21)
("rust-rustls-native-certs" ,rust-rustls-native-certs-0.6)
("rust-serde" ,rust-serde-1)
("rust-smallvec" ,rust-smallvec-1)
("rust-thiserror" ,rust-thiserror-1)
("rust-tokio" ,rust-tokio-1)
("rust-tokio-native-tls" ,rust-tokio-native-tls-0.3)
("rust-tokio-openssl" ,rust-tokio-openssl-0.6)
("rust-tokio-rustls" ,rust-tokio-rustls-0.24)
("rust-tracing" ,rust-tracing-0.1)
("rust-webpki-roots" ,rust-webpki-roots-0.25))
#:cargo-development-inputs
(("rust-futures-executor" ,rust-futures-executor-0.3)
("rust-tokio" ,rust-tokio-1)
("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
(home-page "https://hickory-dns.org/")
(synopsis
"Hickory DNS Resolver library built on top of tokio's @code{async-io}")
(description
"Hickory DNS Resolver is a safe and secure DNS library. The Resolver is
intended to be a high-level library for any DNS record resolution, see
@code{Resolver} and @code{AsyncResolver} for supported resolution types. The
@code{Client} can be used for other queries.")
(license (list license:expat license:asl2.0))))
(define-public rust-hickory-server-0.24
(package
(name "rust-hickory-server")
(version "0.24.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "hickory-server" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1dbwsrmxgf9nxkn3cp5fpjw96wywrzihbirjax25dd6wqidv9fsg"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-test-flags
'("--release" "--"
;; Not all files included.
"--skip=store::file::authority::tests::test_load_zone"
"--skip=basic::file::test_a_lookup"
"--skip=basic::file::test_aname"
"--skip=basic::file::test_aname_a_lookup"
"--skip=basic::file::test_aname_chain"
"--skip=basic::file::test_cname"
"--skip=basic::file::test_cname_alias"
"--skip=basic::file::test_cname_chain"
"--skip=basic::file::test_dots_in_name"
"--skip=basic::file::test_invalid_lookup"
"--skip=basic::file::test_mx"
"--skip=basic::file::test_mx_to_null"
"--skip=basic::file::test_ns"
"--skip=basic::file::test_ns_lookup"
"--skip=basic::file::test_soa"
"--skip=basic::file::test_srv"
"--skip=basic::file::test_update_errors"
"--skip=basic::file::test_wildcard"
"--skip=basic::file::test_wildcard_chain"
"--skip=test_all_lines_are_loaded"
"--skip=test_implicit_in_class"
"--skip=test_ttl_wilcard")
#:cargo-inputs (("rust-async-trait" ,rust-async-trait-0.1)
("rust-basic-toml" ,rust-basic-toml-0.1)
("rust-bytes" ,rust-bytes-1)
("rust-cfg-if" ,rust-cfg-if-1)
("rust-enum-as-inner" ,rust-enum-as-inner-0.6)
("rust-futures-util" ,rust-futures-util-0.3)
("rust-h2" ,rust-h2-0.3)
("rust-h3" ,rust-h3-0.0.2)
("rust-h3-quinn" ,rust-h3-quinn-0.0.3)
("rust-hickory-proto" ,rust-hickory-proto-0.24)
("rust-hickory-recursor" ,rust-hickory-recursor-0.24)
("rust-hickory-resolver" ,rust-hickory-resolver-0.24)
("rust-http" ,rust-http-0.2)
("rust-openssl" ,rust-openssl-0.10)
("rust-rusqlite" ,rust-rusqlite-0.29)
("rust-rustls" ,rust-rustls-0.21)
("rust-serde" ,rust-serde-1)
("rust-thiserror" ,rust-thiserror-1)
("rust-time" ,rust-time-0.3)
("rust-tokio" ,rust-tokio-1)
("rust-tokio-openssl" ,rust-tokio-openssl-0.6)
("rust-tokio-rustls" ,rust-tokio-rustls-0.24)
("rust-tokio-util" ,rust-tokio-util-0.7)
("rust-tracing" ,rust-tracing-0.1))
#:cargo-development-inputs
(("rust-futures-executor" ,rust-futures-executor-0.3)
("rust-tokio" ,rust-tokio-1)
("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
(home-page "https://hickory-dns.org/")
(synopsis "Hickory DNS Server is a DNS server with DNSSEC support")
(description
"Hickory DNS Server is a safe and secure DNS server with DNSSEC support.
Eventually this could be a replacement for BIND9. The DNSSEC support allows
for live signing of all records, in it does not currently support records
signed offline. The server supports dynamic DNS with SIG0 authenticated
requests. Hickory DNS is based on the Tokio and Futures libraries, which
means it should be easily integrated into other software that also use those
libraries.")
(license (list license:expat license:asl2.0))))
(define-public rust-http-1
(package
(name "rust-http")

View File

@ -45,7 +45,7 @@
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2021, 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2021, 2024 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz>
;;; Copyright © 2021 Pjotr Prins <pjotr.guix@thebird.nl>
@ -62,6 +62,7 @@
;;; Copyright © 2023 Felix Gruber <felgru@posteo.ne
;;; Copyright © 2023 Munyoki Kilyungi <me@bonfacemunyoki.com>
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -110,6 +111,7 @@
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages golang-web)
#:use-module (gnu packages golang-xyz)
#:use-module (gnu packages gperf)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
@ -143,6 +145,7 @@
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-compression)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-science)
#:use-module (gnu packages python-web)
@ -4984,6 +4987,77 @@ implementation, along with tools for interoperability with pandas, NumPy, and
other traditional Python scientific computing packages.")
(license license:asl2.0)))
(define-public python-fastparquet
(package
(name "python-fastparquet")
(version "2024.2.0")
(source
(origin
;; Fastparquet uses setuptools-scm to find the current version. This
;; only works when we use the PyPI tarball, which does not contain
;; tests. Instead, we use the git-fetch method and set the version via
;; envar.
(method git-fetch)
(uri (git-reference
(url "https://github.com/dask/fastparquet")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0f32dj1xvd11l0siznqd33dpjlhg9siylcjcfkcdlqfcy45jfj3v"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
#~(list "-n" "auto")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'relax-requirements
(lambda _
(substitute* "setup.py"
;; Remove dependencies on git.
(("^.*\"git\", \"status\".*$") "")
;; Guix is only compatible with a single version of numpy
;; at a time. We can safely remove this dependency.
(("'oldest-supported-numpy'") ""))))
(add-before 'build 'pretend-version
;; The version string is usually derived via setuptools-scm, but
;; without the git metadata available, the version string is set
;; to '0.0.0'.
(lambda _
(setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version)))
(add-before 'check 'build-cython-extensions
;; Cython extensions need to be built for the check phase.
(lambda _
(invoke "python" "setup.py" "build_ext" "--inplace"))))))
(propagated-inputs
(list python-cramjam
python-fsspec
python-lzo
python-numpy
python-packaging
python-pandas))
(native-inputs
(list python-cython
python-pytest-runner
python-pytest-xdist
python-setuptools-scm))
(home-page "https://github.com/dask/fastparquet")
(synopsis "Python implementation of the Parquet file format")
(description
"@code{fastparquet} is a Python implementation of the Parquet file
format. @code{fastparquet} is used implicitly by @code{dask}, @code{pandas}
and @code{intake-parquet}. It supports the following compression algorithms:
@itemize
@item Gzip
@item Snappy
@item Brotli
@item LZ4
@item Zstd
@item LZO (optionally)
@end itemize")
(license license:asl2.0)))
(define-public python-crate
(package
(name "python-crate")
@ -5302,6 +5376,8 @@ compatible with SQLite using a graphical user interface.")
go-github-com-mattn-go-runewidth
go-golang-org-x-xerrors
go-gopkg-in-yaml-v2))
(native-inputs (list go-github-com-google-go-cmp-cmp
go-github-com-k0kubun-pp))
(synopsis "SQL language server written in Go")
(description
"This package implements the @acronym{LSP, Language Server Protocol} for SQL.")

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2022, 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -34,14 +34,14 @@
(define-public dezyne
(package
(name "dezyne")
(version "2.18.0")
(version "2.18.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://dezyne.org/download/dezyne/"
name "-" version ".tar.gz"))
(sha256
(base32 "1lbrxycpvwmvif3gpjnz8iskvlxp7f8bl71k44j7acwqrp8j2szi"))))
(base32 "0i8a8bzsh58mpgrgb0sg0qfszmf144grdmr741qwxwww5b2nsmbj"))))
(propagated-inputs (list boost
guile-json-4
guile-readline

View File

@ -137,6 +137,7 @@
;;; Copyright © 2023 Thanos Apollo <public@thanosapollo.com>
;;; Copyright © 2023 Ian Eure <ian@retrospec.tv>
;;; Copyright © 2024 Suhail Singh <suhail@bayesians.ca>
;;; Copyright © 2024 dan <i@dan.games>
;;;
;;; This file is part of GNU Guix.
;;;
@ -371,14 +372,14 @@
(define-public emacs-activities
(package
(name "emacs-activities")
(version "0.5.1")
(version "0.6")
(source
(origin
(method url-fetch)
(uri (string-append
"https://elpa.gnu.org/packages/activities-" version ".tar"))
(sha256
(base32 "0ng9sgajcpal881s3kavkmz0fc38f2h207hpqj62cf14z7bsk0zk"))))
(base32 "03dc2d9w40qp0qacv5vk49498qyb9y9n6ppd79jbglkpr0a60y21"))))
(build-system emacs-build-system)
(propagated-inputs (list emacs-persist))
(home-page "https://github.com/alphapapa/activities.el")
@ -23494,7 +23495,7 @@ according to a parsing expression grammar.")
(define-public emacs-eldev
(package
(name "emacs-eldev")
(version "1.8.2")
(version "1.9")
(source
(origin
(method git-fetch)
@ -23503,7 +23504,7 @@ according to a parsing expression grammar.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "108px7lnf39ngvb8rcqb9qh2amcbs1h22dbwd1q7js2np2nd132y"))))
(base32 "0mhp3m4d5na844nnv107j706552h0q6xs93jkp4rmqiig73kq17w"))))
(build-system emacs-build-system)
(arguments
(list
@ -23841,6 +23842,29 @@ Citar note support:
@end itemize")
(license license:gpl3+)))
(define-public emacs-citar-denote
(package
(name "emacs-citar-denote")
(version "2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pprevos/citar-denote")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0g476awbrdws7k7smk1qasz15df20zilx3wqbi3wj0i1q2dbsi8z"))))
(build-system emacs-build-system)
(propagated-inputs (list emacs-citar emacs-denote))
(home-page "https://github.com/pprevos/citar-denote")
(synopsis "Emacs package to create and retrieve bibliography notes with
Citar and Denote")
(description
"@code{citar-denote} is a minor-mode integrating the Emacs Citar and
Denote packages to enable create managing bibliographic notes and citations.")
(license license:gpl3+)))
(define-public emacs-helm-bibtex
(let ((commit "8ebf50d5bd368082d0b7ab79d26a52f372cdef98")
(revision "1"))
@ -33667,22 +33691,7 @@ simple but powerful Org contents.")
(list
#:include #~(cons "^src/" %default-include)
#:tests? #t
;; <https://github.com/emacs-eldev/eldev/issues/99#issuecomment-1912637609>
#:test-command #~(list "eldev" "-X" "-dtTC" "test")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'configure-eldev
(lambda _
(setenv "HOME"
(string-append (getcwd) "/.eldev"))
(with-output-to-file "Eldev-local"
(lambda _
(format #t "~s"
'(dolist (d (split-string (getenv
"EMACSLOADPATH")
":" t))
(ignore-errors
(eldev-use-local-dependency d)))))))))))
#:test-command #~(list "eldev" "--use-emacsloadpath" "-dtTC" "test")))
(native-inputs (list emacs-buttercup emacs-eldev))
(propagated-inputs (list emacs-org))
(home-page "https://github.com/ox-tufte/ox-tufte")

View File

@ -1013,7 +1013,7 @@ for use at smaller text sizes")))
(define-public font-gnu-unifont
(package
(name "font-gnu-unifont")
(version "15.1.01")
(version "15.1.05")
(source
(origin
(method url-fetch)
@ -1023,7 +1023,7 @@ for use at smaller text sizes")))
(string-append "mirror://gnu/unifont/unifont-"
version "/unifont-" version ".tar.gz")))
(sha256
(base32 "1dydcqa2nvmnij5jzj10carrzssd3ar24i8zd18pk4zpl84l4pz1"))
(base32 "1yi33kxlgw7ds99za5bclh537sw8ggl94nrhhq7hwxaq8dgzaxfj"))
(snippet
'(begin
(use-modules (guix build utils))
@ -3280,7 +3280,7 @@ and readability. This package bundles those icons into a font.")
(define-public font-lxgw-wenkai
(package
(name "font-lxgw-wenkai")
(version "1.315")
(version "1.320")
(source (origin
(method url-fetch)
(uri (string-append
@ -3288,7 +3288,7 @@ and readability. This package bundles those icons into a font.")
version "/lxgw-wenkai-v" version ".tar.gz"))
(sha256
(base32
"0isb7rbg8yb6hv8xk1ngngkgzpyb3papkl19jczwrwm373m8bn3f"))))
"1wvab2g2hcy8wqi23zva17rymqfrrfwd7yh0wbhfb67mz18wbjpm"))))
(build-system font-build-system)
(home-page "https://lxgw.github.io/2021/01/28/Klee-Simpchin/")
(synopsis "Simplified Chinese Imitation Song typeface")
@ -3302,7 +3302,7 @@ within GB 2312, standard glyphs for Mainland China is used.")
(package
(inherit font-lxgw-wenkai)
(name "font-lxgw-wenkai-tc")
(version "1.011")
(version "1.320")
(source (origin
(method url-fetch)
(uri (string-append
@ -3310,7 +3310,7 @@ within GB 2312, standard glyphs for Mainland China is used.")
version "/lxgw-wenkai-tc-v" version ".tar.gz"))
(sha256
(base32
"0x83a7zg1w82bpilk84ajlisccf90kl01gz89fipgqji9nii71bv"))))
"0lzfci4zpia62vbnyv22ajlrd8gvwj1ff7iaa0mxs66dbb0p6pq8"))))
(home-page "https://github.com/lxgw/LxgwWenKaitc")
(synopsis "Traditional Chinese Imitation Song typeface")
(description
@ -3321,7 +3321,7 @@ dialects in Hong Kong and Taiwan.")))
(define-public font-chiron-sung-hk
(package
(name "font-chiron-sung-hk")
(version "1.010")
(version "1.011")
(source (origin
(method git-fetch)
(uri (git-reference
@ -3330,8 +3330,22 @@ dialects in Hong Kong and Taiwan.")))
(file-name (git-file-name name version))
(sha256
(base32
"065p1gc5xjwc4kfw8bqpsbhaf1p4w0k4l0j04vjsjhcl4k9vyvfz"))))
"1916bb834y4r4312g14zid7w3pbx1i70jcgkkfbf4z20grrj891m"))))
(build-system font-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(replace 'install
(lambda _
(let ((install (assoc-ref %standard-phases 'install)))
(with-directory-excursion "VAR"
(for-each delete-file (find-files "." "\\.ttf$"))
(install #:outputs `(("out" . ,#$output))))
(with-directory-excursion "OTF"
(install #:outputs `(("out" . ,#$output:otf))))
(with-directory-excursion "TTF"
(install #:outputs `(("out" . ,#$output:ttf))))))))))
(outputs '("out" "otf" "ttf"))
(home-page "https://chiron-fonts.github.io/")
(synopsis "Traditional Chinese Song typeface")
(description
@ -3345,7 +3359,7 @@ prevalent typefaces in Traditional Chinese regions.")
(package
(inherit font-chiron-sung-hk)
(name "font-chiron-hei-hk")
(version "2.508")
(version "2.509")
(source (origin
(method git-fetch)
(uri (git-reference
@ -3354,7 +3368,7 @@ prevalent typefaces in Traditional Chinese regions.")
(file-name (git-file-name name version))
(sha256
(base32
"0drvkqk629z63k62v3ds559phl82dmkyvpx2r8mi99nnsz22a8ps"))))
"0bwx909sijpnc474355hlfjwgxin0m9yxd5k9qwmgxkp2rzqiwnk"))))
(synopsis "Traditional Chinese Gothic typeface")
(description
"Chiron Hei HK is a Traditional Chinese Gothic typeface based on the Hong

View File

@ -30,7 +30,7 @@
;;; Copyright © 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
;;; Copyright © 2017-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2017-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 okapi <okapi@firemail.cc>
;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;; Copyright © 2018 Madalin Ionel-Patrascu <madalinionel.patrascu@mdc-berlin.de>
@ -7089,7 +7089,7 @@ fish. The whole game is accompanied by quiet, comforting music.")
(define-public crawl
(package
(name "crawl")
(version "0.30.1")
(version "0.31.0")
(source
(origin
(method git-fetch)
@ -7098,7 +7098,7 @@ fish. The whole game is accompanied by quiet, comforting music.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1rlp8z1n7ziv7aaa3fb4h4nnq24pfz1m23a99c1ra582fh0yx1pl"))
(base32 "0igrl0a9qd2g27q3wr86xjkpqcqs4y7bh3na1saqvpd4vc8mbayk"))
(patches (search-patches "crawl-upgrade-saves.patch"))))
(build-system gnu-build-system)
(inputs

View File

@ -13,6 +13,7 @@
;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2022 Greg Hogan <code@greghogan.com>
;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -618,12 +619,12 @@ Go. It also includes runtime support libraries for these languages.")
(define %gcc-11-x86_64-micro-architectures
;; Suitable '-march' values for GCC 11.
(append %gcc-10-x86_64-micro-architectures
'("sapphirerapids" "alterlake" "rocketlake" ;Intel
'("sapphirerapids" "alderlake" "rocketlake" ;Intel
"btver1" "btver2" ;AMD
;; psABI micro-architecture levels
"x86-64-v1" "x86-64-v2" "x86-64-v3" "x86-64-v4")))
"x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4")))
;; Suitable '-march' values for GCC 12.
(define %gcc-12-aarch64-micro-architectures
@ -672,6 +673,7 @@ It also includes runtime support libraries for these languages.")
`((compiler-cpu-architectures
("aarch64" ,@%gcc-7.5-aarch64-micro-architectures)
("armhf" ,@%gcc-7.5-armhf-micro-architectures)
("i686" ,@%gcc-7.5-x86_64-micro-architectures)
("x86_64" ,@%gcc-7.5-x86_64-micro-architectures))
,@(package-properties gcc-6)))))
@ -728,6 +730,7 @@ It also includes runtime support libraries for these languages.")
`((compiler-cpu-architectures
("aarch64" ,@%gcc-10-aarch64-micro-architectures)
("armhf" ,@%gcc-10-armhf-micro-architectures)
("i686" ,@%gcc-10-x86_64-micro-architectures)
("x86_64" ,@%gcc-10-x86_64-micro-architectures))
,@(package-properties gcc-8)))))
@ -763,6 +766,7 @@ It also includes runtime support libraries for these languages.")
`((compiler-cpu-architectures
("aarch64" ,@%gcc-11-aarch64-micro-architectures)
("armhf" ,@%gcc-11-armhf-micro-architectures)
("i686" ,@%gcc-11-x86_64-micro-architectures)
("x86_64" ,@%gcc-11-x86_64-micro-architectures))
,@(package-properties gcc-8)))))
@ -785,6 +789,7 @@ It also includes runtime support libraries for these languages.")
`((compiler-cpu-architectures
("aarch64" ,@%gcc-12-aarch64-micro-architectures)
("armhf" ,@%gcc-12-armhf-micro-architectures)
("i686" ,@%gcc-12-x86_64-micro-architectures)
("x86_64" ,@%gcc-12-x86_64-micro-architectures))
,@(package-properties gcc-11)))))
@ -807,6 +812,7 @@ It also includes runtime support libraries for these languages.")
`((compiler-cpu-architectures
("aarch64" ,@%gcc-13-aarch64-micro-architectures)
("armhf" ,@%gcc-13-armhf-micro-architectures)
("i686" ,@%gcc-13-x86_64-micro-architectures)
("x86_64" ,@%gcc-13-x86_64-micro-architectures))
,@(package-properties gcc-11)))))

View File

@ -38,6 +38,7 @@
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
#:use-module (gnu packages base)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages documentation)
@ -175,7 +176,7 @@ of a larger interface.")
(define-public babl
(package
(name "babl")
(version "0.1.96")
(version "0.1.108")
(source (origin
(method url-fetch)
(uri (list (string-append "https://download.gimp.org/pub/babl/"
@ -189,12 +190,11 @@ of a larger interface.")
"/babl-" version ".tar.xz")))
(sha256
(base32
"1xj5hlmm834lb84rpjlfxbqnm5piswgzhjas4h8z90x9b7j3yrrk"))))
"0x8lxvnhfpssj84x47y3y06vsvhd5afb9jknw38c8ymbxafzxpi6"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
(list "-Denable-gir=false"
"-Dwith-docs=false")))
(list "-Dwith-docs=false")))
(native-inputs
(list gobject-introspection pkg-config vala))
(propagated-inputs
@ -215,7 +215,7 @@ provided, as well as a framework to add new color models and data types.")
(define-public gegl
(package
(name "gegl")
(version "0.4.46")
(version "0.4.48")
(source
(origin
(method url-fetch)
@ -228,15 +228,11 @@ provided, as well as a framework to add new color models and data types.")
(string-append "ftp://ftp.gtk.org/pub/gegl/"
(version-major+minor version)
"/gegl-" version ".tar.xz")))
(patches
(search-patches "gegl-compatibility-old-librsvg.patch"))
(sha256
(base32 "14p8n6vily0yp6gqafl2xy7d2rh1j48pcj0a7mglqxy83d4b5cyh"))))
(base32 "0iw2wag3sls7va4c3dmczisbs9na4ml0rppnk1ymv0789gcjd321"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
(list "-Dintrospection=false")
#:phases
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'extend-test-time-outs
(lambda _
@ -287,8 +283,27 @@ buffers.")
;; application and GUI binary gegl is licensed under GPL.
(license (list license:lgpl3+ license:gpl3+))))
;; gnome-photos does not build against gegl 0.4.46 yet.
;; gnome-photos does not build against gegl 0.4.46 or newer yet.
;; See also <https://gitlab.gnome.org/GNOME/gnome-photos/-/issues/214>.
(define-public babl-0.1.96
(package
(inherit babl)
(version "0.1.96")
(source
(origin
(method url-fetch)
(uri (list (string-append "https://download.gimp.org/pub/babl/"
(version-major+minor version)
"/babl-" version ".tar.xz")
(string-append "https://ftp.gtk.org/pub/babl/"
(version-major+minor version)
"/babl-" version ".tar.xz")
(string-append "ftp://ftp.gtk.org/pub/babl/"
(version-major+minor version)
"/babl-" version ".tar.xz")))
(sha256
(base32 "1xj5hlmm834lb84rpjlfxbqnm5piswgzhjas4h8z90x9b7j3yrrk"))))))
(define-public gegl-0.4.44
(package
(inherit gegl)
@ -306,12 +321,15 @@ buffers.")
(version-major+minor version)
"/gegl-" version ".tar.xz")))
(sha256
(base32 "09k1sn4h0bakgmq2hgd1iamprngpr81ky3fd9446lh2ycd0xnk0a"))))))
(base32 "09k1sn4h0bakgmq2hgd1iamprngpr81ky3fd9446lh2ycd0xnk0a"))))
(propagated-inputs
(modify-inputs (package-propagated-inputs gegl)
(replace "babl" babl-0.1.96)))))
(define-public gimp
(package
(name "gimp")
(version "2.10.34")
(version "2.10.36")
(source
(origin
(method url-fetch)
@ -319,7 +337,7 @@ buffers.")
(version-major+minor version)
"/gimp-" version ".tar.bz2"))
(sha256
(base32 "18vscmy293q6wq78almv0m7r8jh4j8szvmrw56j9icsisd14c044"))))
(base32 "1cnvgkni2q4psv8syyl5yd9kk84fv5g3imd2kgm3mnsbkb3c6frx"))))
(build-system gnu-build-system)
(outputs '("out"
"doc")) ; 9 MiB of gtk-doc HTML
@ -393,6 +411,52 @@ as well as specialized ones. It features a highly customizable interface
that is extensible via a plugin system.")
(license license:gpl3+))) ; some files are lgplv3
(define-public gimp-next
(package
(inherit gimp)
(name "gimp-next")
(version "2.99.18")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.gimp.org/pub/gimp/v"
(version-major+minor version)
"/gimp-" version ".tar.xz"))
(sha256
(base32 "0vnvdl7x88njyyxkbgdbhz6jwz1qasrxh0fpwk6x1m609alvf6wc"))))
(build-system meson-build-system)
(arguments
(list #:modules `((ice-9 popen)
(ice-9 rdelim)
(guix build meson-build-system)
(guix build utils))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'remove-gcc-reference
;; Avoid reference to GCC.
(lambda _
(let* ((port (open-input-pipe "gcc -v 2>&1 | tail -n 1"))
(cc-version (read-line port)))
(close-pipe port)
(substitute* "app/gimp-version.c"
(("CC_VERSION") (string-append "\"" cc-version "\""))))))
(add-after 'install 'move-doc
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(doc (assoc-ref outputs "doc")))
(mkdir-p (string-append doc "/share"))
(rename-file (string-append out "/share/doc")
(string-append doc "/share/doc"))))))))
(inputs (modify-inputs (package-inputs gimp)
(replace "gtk+" gtk+)
(prepend libxmu libxt)
(prepend python gjs)
(prepend libxslt)))
(native-inputs (modify-inputs (package-native-inputs gimp)
(prepend appstream-glib
gi-docgen
libarchive)))))
(define-public gimp-fourier
(package
(name "gimp-fourier")

View File

@ -5602,6 +5602,9 @@ file.")
"-Dlocalstatedir=/var"
"-Dman=false"
"-Dsystemd=false") ;no systemd
;; Apparently the tests are known to fail on big-endian systems.
#:tests? (not (or (%current-target-system)
(not (target-little-endian?))))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'disable-problematic-tests

View File

@ -4,6 +4,7 @@
;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2022 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -84,6 +85,30 @@ the @code{c2go} tool at
compression format.")
(license license:bsd-3)))
(define-public go-github-com-hhrutter-lzw
(package
(name "go-github-com-hhrutter-lzw")
(version "1.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hhrutter/lzw")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1n13qhf8ih08jzm10wprdvjy56ylmy6fhakyqrddm6nszf397wch"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/hhrutter/lzw"))
(home-page "https://github.com/hhrutter/lzw")
(synopsis "Extended version of @code{compress/lzw}")
(description
"This package provides an enhanced version of the @code{compress/lzw}
library included in the stdlib, and supports GIF, TIFF and PDF.")
(license license:bsd-3)))
(define-public go-github-com-klauspost-compress
(package
(name "go-github-com-klauspost-compress")
@ -115,9 +140,32 @@ compression format.")
(description "@code{compress} provides various compression algorithms.")
(license license:bsd-3)))
(define-public go-github.com-ulikunitz-xz
(define-public go-github-com-nwaples-rardecode-v2
(package
(name "go-github.com-ulikunitz-xz")
(name "go-github-com-nwaples-rardecode-v2")
(version "2.0.0-beta.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/nwaples/rardecode")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1344mxfdgs5fps6mqxk6352arrfszi33kmq394rgmqpf4394f1y7"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/nwaples/rardecode"))
(home-page "https://github.com/nwaples/rardecode")
(synopsis "Reading RAR archives in Go")
(description
"This package provides a library for reading RAR archives with Golang.")
(license license:bsd-2)))
(define-public go-github-com-ulikunitz-xz
(package
(name "go-github-com-ulikunitz-xz")
(version "0.5.8")
(source
(origin

View File

@ -1216,6 +1216,34 @@ which produce colorized output using github.com/fatih/color.")
(description "OpenTracing-Go is a Go implementation of the OpenTracing API.")
(license license:asl2.0)))
(define-public go-github-com-pkg-sftp
(package
(name "go-github-com-pkg-sftp")
(version "1.13.6")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pkg/sftp")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0n35lzfrnrffjqy34ny6gxs27kq81s67ply6q8s1g19mhfzm6my7"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/pkg/sftp"))
(propagated-inputs (list go-golang-org-x-crypto go-github-com-kr-fs))
(native-inputs (list go-github-com-stretchr-testify))
(home-page "https://github.com/pkg/sftp")
(synopsis "SFTP implementation for Go")
(description
"This package provides an @acronym{SFTP, SSH File Transfer Protocol}
implementation, as described in
@url{https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt},
for Go.")
(license license:bsd-2)))
(define-public go-github-com-pquerna-cachecontrol
(package
(name "go-github-com-pquerna-cachecontrol")
@ -1394,6 +1422,38 @@ an interface to implement any other minifier.")
sockets.")
(license license:expat))))
(define-public go-github-com-ugorji-go-codec
(package
(name "go-github-com-ugorji-go-codec")
(version "1.2.12")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ugorji/go")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "11j0sd7kli2bh2npfr2znnvdjsk118rs8khqzfdp6pb5jm0l20ib"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/ugorji/go/codec"
#:unpack-path "github.com/ugorji/go"
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'remove-benchmarks
(lambda* (#:key import-path #:allow-other-keys)
(delete-file-recursively (string-append "src/"
import-path
"/bench")))))))
(propagated-inputs (list go-golang-org-x-tools))
(home-page "https://github.com/ugorji/go")
(synopsis "Codec and encoding library for various serialization formats")
(description
"This package provides a high performance and feature rich codec and
encoding library for the MessagePack, CBOR, JSON and the Binc formats.")
(license license:expat)))
(define-public go-github-com-valyala-fasthttp
(package
(name "go-github-com-valyala-fasthttp")

View File

@ -1,20 +1,26 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018, 2019 Leo Famulari <leo@famulari.name>
;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020, 2021 raingloom <raingloom@riseup.net>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2021, 2023, 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2022 Dominic Martinez <dom@dominicm.dev>
;;; Copyright © 2023 Benjamin <benjamin@uvy.fr>
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2023 Katherine Cox-Buday <cox.katherine.e@gmail.com>
;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2023 Thomas Ieong <th.ieong@free.fr>
;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
;;; Copyright © 2023, 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -44,7 +50,8 @@
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages golang-compression)
#:use-module (gnu packages golang-crypto))
#:use-module (gnu packages golang-crypto)
#:use-module (gnu packages linux))
;;; Commentary:
;;;
@ -348,6 +355,35 @@ quantiles over an unbounded data stream within low memory and CPU bounds.")
similar to Go's standard library @code{json} and @code{xml} package.")
(license license:expat)))
(define-public go-github-com-cheggaaa-pb-v3
(package
(name "go-github-com-cheggaaa-pb-v3")
(version "3.0.8")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/cheggaaa/pb/")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0d701s2niy39r650d1phjw19h4l27b1yfc2ih6s31f56b3zzqspx"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/cheggaaa/pb/v3"
#:unpack-path "github.com/cheggaaa/pb"))
(propagated-inputs
(list go-github-com-fatih-color
go-github-com-mattn-go-colorable
go-github-com-mattn-go-isatty
go-github-com-mattn-go-runewidth
go-github-com-vividcortex-ewma))
(home-page "https://github.com/cheggaaa/pb/")
(synopsis "Console progress bar for Go")
(description
"This package is a Go library that draws progress bars on the terminal.")
(license license:bsd-3)))
(define-public go-github-com-coocood-freecache
(package
(name "go-github-com-coocood-freecache")
@ -503,6 +539,31 @@ its C API.")))
(description "Go bindings to systemd for (de)serialization and comparison
of unit files.")))
(define-public go-github-com-cskr-pubsub
(package
(name "go-github-com-cskr-pubsub")
(version "2.0.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/cskr/pubsub")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "18kqfdzkfs7z8266a5q5wldwkcvnhc7yw09b9vr8r0s7svy8d5s6"))))
(build-system go-build-system)
(arguments
(list
#:tests? #t ; Tests require network interface access
#:go go-1.18
#:import-path "github.com/cskr/pubsub"))
(home-page "https://github.com/cskr/pubsub")
(synopsis "Simple pubsub package for go")
(description
"Package @code{pubsub} implements a simple multi-topic pub-sub library.")
(license license:bsd-2)))
(define-public go-github-com-cyberdelia-go-metrics-graphite
(package
(name "go-github-com-cyberdelia-go-metrics-graphite")
@ -529,6 +590,29 @@ of unit files.")))
metrics to Graphite.")
(license license:bsd-2)))
(define-public go-github-com-dave-jennifer
(package
(name "go-github-com-dave-jennifer")
(version "1.7.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dave/jennifer")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "01sgafbds8n5zs61qf057whn06yj6avz30xgxk6pllf22528558m"))))
(build-system go-build-system)
(arguments
(list
#:go go-1.20
#:import-path "github.com/dave/jennifer"))
(home-page "https://github.com/dave/jennifer")
(synopsis "Code generator for Go")
(description "This package provides functionality to generate Go code.")
(license license:expat)))
(define-public go-github-com-dimchansky-utfbom
(package
(name "go-github-com-dimchansky-utfbom")
@ -686,6 +770,223 @@ Differentiation between text and binary files}.
@end itemize")
(license license:expat)))
(define-public go-github-com-hashicorp-errwrap
(package
(name "go-github-com-hashicorp-errwrap")
(version "1.1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hashicorp/errwrap")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0p5wdz8p7dmwphmb33gwhy3iwci5k9wkfqmmfa6ay1lz0cqjwp7a"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/hashicorp/errwrap"))
(home-page "https://github.com/hashicorp/errwrap")
(synopsis "Wrapping and querying errors for Golang")
(description
"@code{errwrap} is a package for Go that formalizes the pattern of
wrapping errors and checking if an error contains another error.")
(license license:mpl2.0)))
(define-public go-github-com-hashicorp-hcl
(package
(name "go-github-com-hashicorp-hcl")
(version "1.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hashicorp/hcl")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/hashicorp/hcl"))
(native-inputs
(list go-github-com-davecgh-go-spew))
(synopsis "Go implementation of HashiCorp Configuration Language V1")
(description
"This package contains the main implementation of the @acronym{HCL,
HashiCorp Configuration Language}. HCL is designed to be a language for
expressing configuration which is easy for both humans and machines to read.")
(home-page "https://github.com/hashicorp/hcl")
(license license:mpl2.0)))
(define-public go-github-com-hashicorp-hcl-v2
(package
(name "go-github-com-hashicorp-hcl-v2")
(version "2.11.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hashicorp/hcl")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0f9flmmkj7fr1337fc56cqy73faq87ix375hnz3id4wc023przv1"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/hashicorp/hcl/v2"))
(native-inputs
(list go-github-com-davecgh-go-spew))
(inputs
(list go-github-com-agext-levenshtein
go-github-com-apparentlymart-go-textseg-v13
go-github-com-mitchellh-go-wordwrap
go-github-com-zclconf-go-cty))
(synopsis "Go implementation of HashiCorp Configuration Language V2")
(description
"This package contains the main implementation of the @acronym{HCL,
HashiCorp Configuration Language}. HCL is designed to be a language for
expressing configuration which is easy for both humans and machines to read.")
(home-page "https://github.com/hashicorp/hcl")
(license license:mpl2.0)))
(define-public go-github-com-hashicorp-go-multierror
(package
(name "go-github-com-hashicorp-go-multierror")
(version "1.1.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hashicorp/go-multierror")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0l4s41skdpifndn9s8y6s9vzgghdzg4z8z0lld9qjr28888wzp00"))))
(build-system go-build-system)
(inputs (list go-github-com-hashicorp-errwrap))
(arguments
(list
#:import-path "github.com/hashicorp/go-multierror"))
(home-page "https://github.com/hashicorp/go-multierror")
(synopsis "Representing a errors list as a single error for Golang")
(description
"@code{go-multierror} is Golang module providing a mechanism for
representing a list of @code{error} values as a single @code{error}. It is
fully compatible with the standard @code{errors} package, including
the functions @code{As}, @code{Is}, and @code{Unwrap}. This provides a
standardized approach for introspecting on error values.")
(license license:mpl2.0)))
(define-public go-github-com-hashicorp-go-syslog
(package
(name "go-github-com-hashicorp-go-syslog")
(version "1.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hashicorp/go-syslog")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"09vccqggz212cg0jir6vv708d6mx0f9w5bxrcdah3h6chgmal6v1"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/hashicorp/go-syslog"))
(home-page "https://github.com/hashicorp/go-syslog")
(synopsis "Golang syslog wrapper, cross-compile friendly")
(description
"This package is a very simple wrapper around log/syslog")
(license license:expat)))
(define-public go-github-com-hashicorp-go-uuid
(package
(name "go-github-com-hashicorp-go-uuid")
(version "1.0.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hashicorp/go-uuid")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0wd4maaq20alxwcvfhr52rzfnwwpmc2a698ihyr0vfns2sl7gkzk"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/hashicorp/go-uuid"))
(home-page "https://github.com/hashicorp/go-uuid")
(synopsis "Generate UUID-format strings")
(description
"This package generates UUID-format strings using high quality bytes.
It is not intended to be RFC compliant, merely to use a well-understood string
representation of a 128-bit value. It can also parse UUID-format strings into
their component bytes.")
(license license:mpl2.0)))
(define-public go-github-com-hashicorp-go-version
(package
(name "go-github-com-hashicorp-go-version")
(version "1.6.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hashicorp/go-version")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0fw6hwvjadpbfj10yk7f64ypw8lmv5s5ny3s4ria0nv6xam1wpai"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/hashicorp/go-version"))
(home-page "https://github.com/hashicorp/go-version")
(synopsis "Go library for parsing and verifying versions and version
constraints")
(description
"This package is a library for parsing versions and version
constraints, and verifying versions against a set of constraints. It can sort
a collection of versions properly, handles prerelease/beta versions, can
increment versions.")
(license license:mpl2.0)))
(define-public go-github-com-hhrutter-tiff
(package
(name "go-github-com-hhrutter-tiff")
(version "1.0.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hhrutter/tiff")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "09fzgvxwkd34izbfd26ln8vdbhc4j9gxpar3s7h9h125psrjvg0k"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/hhrutter/tiff"))
(propagated-inputs (list go-golang-org-x-image go-github-com-hhrutter-lzw))
(home-page "https://github.com/hhrutter/tiff")
(synopsis "Extended version of @code{golang.org/x/image/tiff}")
(description "This package is an enhanced version of the
@code{golang.org/x/image/tiff} library featuring:
@itemize
@item Read support for CCITT Group3/4 compressed images.
@item Read/write support for LZW compressed images.
@item Read/write support for the CMYK color model.
@end itemize")
(license license:bsd-3)))
(define-public go-github-com-jinzhu-copier
(package
(name "go-github-com-jinzhu-copier")
@ -709,6 +1010,33 @@ Differentiation between text and binary files}.
struct to another.")
(license license:expat)))
(define-public go-github-com-k0kubun-pp
(package
(name "go-github-com-k0kubun-pp")
(version "3.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/k0kubun/pp")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1vpp5n3kdazk4s1ljhwbrhz3kilzvdvx5hya922bg0q9vnjqqvvc"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/k0kubun/pp"))
(propagated-inputs (list go-github-com-mattn-go-colorable
go-golang-org-x-text))
(home-page "https://github.com/k0kubun/pp")
(synopsis "Colored pretty-printer for Go")
(description
"This package provides a pretty-printer for Go. The functions defined by
@code{pp} follow an API similar to @code{fmt} and its configuration can be
customized globally.")
(license license:expat)))
(define-public go-github-com-matryer-try
(package
(name "go-github-com-matryer-try")
@ -1092,6 +1420,78 @@ Metrics library.")
(home-page "https://github.com/rcrowley/go-metrics")
(license license:bsd-2))))
(define-public go-github-com-shirou-gopsutil
(package
(name "go-github-com-shirou-gopsutil")
(version "2.21.11")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/shirou/gopsutil")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0gpb10xkdwfimn1sp4jhrvzz4p3zgmdb78q8v23nap3yi6v4bff5"))))
(build-system go-build-system)
(arguments
(list
#:go go-1.18
#:import-path "github.com/shirou/gopsutil"
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'remove-v3
(lambda* (#:key import-path #:allow-other-keys)
;; We remove the separately included v3 module.
(delete-file-recursively (string-append "src/"
import-path
"/v3"))))
(add-before 'check 'remove-failing-tests
(lambda* (#:key import-path #:allow-other-keys)
(delete-file-recursively
;; host_test.go tries to access files such as
;; /var/run/utmp that do not exist in the build
;; environment.
(string-append "src/" import-path "/host/host_test.go")))))))
(propagated-inputs
(list go-github-com-tklauser-go-sysconf go-golang-org-x-sys))
(native-inputs
(list go-github-com-stretchr-testify procps))
(synopsis "Process and system monitoring in Go")
(description
"This package provides a library for retrieving information
on running processes and system utilization (CPU, memory, disks, network,
sensors).")
(home-page "https://github.com/shirou/gopsutil")
(license license:bsd-3)))
(define-public go-github-com-shirou-gopsutil-v3
(package
(inherit go-github-com-shirou-gopsutil)
(name "go-github-com-shirou-gopsutil-v3")
(version "3.24.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/shirou/gopsutil")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1xlfcx6giqaxdah2m02q2i8ynwlzar953wr8wqx1j3004xdgaivd"))))
(arguments
(list
#:go go-1.18
#:import-path "github.com/shirou/gopsutil"
#:phases
#~(modify-phases %standard-phases
(add-before 'check 'remove-failing-tests
(lambda* (#:key import-path #:allow-other-keys)
(delete-file-recursively
;; host_test.go tries to access files such as
;; /var/run/utmp that do not exist in the build
;; environment.
(string-append "src/" import-path "/host/host_test.go")))))))))
(define-public go-github-com-skip2-go-qrcode
(package
(name "go-github-com-skip2-go-qrcode")
@ -1189,6 +1589,102 @@ Use waterutil with it to work with TUN/TAP packets/frames.")
(home-page "https://github.com/stathat/go")
(license license:expat))))
(define-public go-github-com-tklauser-go-sysconf
(package
(name "go-github-com-tklauser-go-sysconf")
(version "0.3.13")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tklauser/go-sysconf")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "07vkimncnmh89706s49599h2w9gwa6jyrv70f8ifw90nsh766km9"))))
(build-system go-build-system)
(arguments
(list
#:go go-1.18
#:import-path "github.com/tklauser/go-sysconf"
#:phases #~(modify-phases %standard-phases
(add-before 'check 'remove-failing-tests
(lambda* (#:key import-path #:allow-other-keys)
(delete-file-recursively
;; sysconf_test.go (among others) tries to read the
;; number of online CPUs using /proc/stat and
;; /sys/devices/system/cpu/online. These files are not
;; accessible in the test environment.
(string-append "src/" import-path
"/cgotest/sysconf_test.go")))))))
(propagated-inputs (list go-golang-org-x-sys
go-github-com-tklauser-numcpus))
(home-page "https://github.com/tklauser/go-sysconf")
(synopsis "Go implementation of @code{sysconf}")
(description
"This package implements @code{sysconf} and provides the associated
@code{SC_*} constants to query system configuration values at run time.")
(license license:bsd-3)))
(define-public go-github-com-tklauser-numcpus
(package
(name "go-github-com-tklauser-numcpus")
(version "0.7.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tklauser/numcpus")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1xcwk42zr6q72zvkqdd9nbyhvq11rmwm2164mr2rvbb9z7alkff8"))))
(build-system go-build-system)
(arguments
(list
#:go go-1.18
#:import-path "github.com/tklauser/numcpus"
#:phases #~(modify-phases %standard-phases
(add-before 'check 'remove-failing-tests
(lambda* (#:key import-path #:allow-other-keys)
(with-directory-excursion (string-append "src/"
import-path)
(for-each delete-file-recursively
;; These tests try to access
;; /sys/devices/system/cpu, which is not
;; available in the test environment.
'("numcpus_test.go" "numcpus_linux_test.go"))))))))
(propagated-inputs (list go-golang-org-x-sys))
(home-page "https://github.com/tklauser/numcpus")
(synopsis "Provides information about the number of CPUs in the system")
(description
"This package provides both library functions and a command-line tool to
query information regarding the number of CPUs available to the system.")
(license license:asl2.0)))
(define-public go-github-com-vividcortex-ewma
(package
(name "go-github-com-vividcortex-ewma")
(version "1.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/VividCortex/ewma")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0whx516l9nm4n41spagb605ry7kfnz1qha96mcshnfjlahhnnylq"))))
(build-system go-build-system)
(arguments '(#:import-path "github.com/VividCortex/ewma"))
(home-page "https://github.com/VividCortex/ewma")
(synopsis "Exponentially Weighted Moving Average algorithms for Go")
(description
"This package implements algorithms for
@url{https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average,exponentially
weighted moving averages}.")
(license license:expat)))
(define-public go-go-uber-org-automaxprocs
(package
(name "go-go-uber-org-automaxprocs")
@ -1214,6 +1710,39 @@ Use waterutil with it to work with TUN/TAP packets/frames.")
CPU quota.")
(license license:expat)))
(define-public go-go-uber-org-zap
(package
(name "go-go-uber-org-zap")
(version "1.24.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/uber-go/zap")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0lzbbs87fvixzbyv4wpl3s70vm2m0jz2jgdvrviiksc2al451qgs"))))
(build-system go-build-system)
(arguments
'(#:import-path "go.uber.org/zap"
#:tests? #f)) ; TODO: Fix tests
(native-inputs
(list go-github-com-stretchr-testify
go-golang-org-x-lint
go-honnef-co-go-tools))
(propagated-inputs
(list go-github-com-pkg-errors
go-go-uber-org-atomic
go-go-uber-org-multierr
go-gopkg-in-yaml-v2))
(home-page "https://go.uber.org/zap")
(synopsis "Logging library for Go")
(description
"This package provides a library for fast, structured, leveled logging in
Go.")
(license license:expat)))
(define-public go-gopkg-in-op-go-logging-v1
(package
(inherit go-github-com-op-go-logging)
@ -1227,6 +1756,20 @@ CPU quota.")
;;; Executables:
;;;
(define-public go-numcpus
(package
(inherit go-github-com-tklauser-numcpus)
(name "go-numcpus")
(arguments
(list
#:go go-1.18
#:import-path "github.com/tklauser/numcpus/cmd/numcpus"
#:unpack-path "github.com/tklauser/numcpus"
#:install-source? #f))
(description
"This package provides a CLI build from the
go-github-com-tklauser-numcpus source.")))
(define-public go-pixelmatch
(package
(inherit go-github-com-orisano-pixelmatch)

View File

@ -870,7 +870,8 @@ in the style of communicating sequential processes (@dfn{CSP}).")
("powerpc64le" ,@%go-1.17-powerpc64le-micro-architectures))))))
(define %go-1.18-x86_64-micro-architectures
(list "x86_64-v1" "x86_64-v2" "x86_64-v3" "x86_64-v4"))
;; GOAMD defaults to 'v1' so we match the default elsewhere.
(list "x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4"))
(define-public go-1.18
(package
@ -3304,64 +3305,6 @@ command-line parsers.")
(home-page "https://github.com/tj/docopt")
(license license:expat)))
(define-public go-github-com-hashicorp-hcl
(package
(name "go-github-com-hashicorp-hcl")
(version "1.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hashicorp/hcl")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/hashicorp/hcl"))
(native-inputs
(list go-github-com-davecgh-go-spew))
(synopsis "Go implementation of HashiCorp Configuration Language V1")
(description
"This package contains the main implementation of the @acronym{HCL,
HashiCorp Configuration Language}. HCL is designed to be a language for
expressing configuration which is easy for both humans and machines to read.")
(home-page "https://github.com/hashicorp/hcl")
(license license:mpl2.0)))
(define-public go-github-com-hashicorp-hcl-v2
(package
(name "go-github-com-hashicorp-hcl-v2")
(version "2.11.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hashicorp/hcl")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0f9flmmkj7fr1337fc56cqy73faq87ix375hnz3id4wc023przv1"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/hashicorp/hcl/v2"))
(native-inputs
(list go-github-com-davecgh-go-spew))
(inputs
(list go-github-com-agext-levenshtein go-github-com-mitchellh-go-wordwrap
go-github-com-zclconf-go-cty
go-github-com-apparentlymart-go-textseg-v13))
(synopsis "Go implementation of HashiCorp Configuration Language V2")
(description
"This package contains the main implementation of the @acronym{HCL,
HashiCorp Configuration Language}. HCL is designed to be a language for
expressing configuration which is easy for both humans and machines to read.")
(home-page "https://github.com/hashicorp/hcl")
(license license:mpl2.0)))
(define-public govulncheck
(package
(name "govulncheck")
@ -3500,61 +3443,6 @@ editor.")
spec in Go.")
(license license:bsd-3))))
(define-public go-github-com-hashicorp-go-uuid
(package
(name "go-github-com-hashicorp-go-uuid")
(version "1.0.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hashicorp/go-uuid")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0wd4maaq20alxwcvfhr52rzfnwwpmc2a698ihyr0vfns2sl7gkzk"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/hashicorp/go-uuid"))
(home-page "https://github.com/hashicorp/go-uuid")
(synopsis "Generate UUID-format strings")
(description
"This package generates UUID-format strings using high quality bytes.
It is not intended to be RFC compliant, merely to use a well-understood string
representation of a 128-bit value. It can also parse UUID-format strings into
their component bytes.")
(license license:mpl2.0)))
(define-public go-github-com-hashicorp-go-version
(let ((commit
"03c5bf6be031b6dd45afec16b1cf94fc8938bc77")
(revision "0"))
(package
(name "go-github-com-hashicorp-go-version")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hashicorp/go-version")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/hashicorp/go-version"))
(home-page
"https://github.com/hashicorp/go-version")
(synopsis "Go library for parsing and verifying versions and version
constraints")
(description "This package is a library for parsing versions and version
constraints, and verifying versions against a set of constraints. It can sort
a collection of versions properly, handles prerelease/beta versions, can
increment versions.")
(license license:mpl2.0))))
(define-public go-github-com-jpillora-backoff
(let ((commit
"06c7a16c845dc8e0bf575fafeeca0f5462f5eb4d")
@ -3781,8 +3669,7 @@ containers.")
(build-system go-build-system)
(arguments
`(#:import-path "github.com/spf13/afero"))
(propagated-inputs
`(("golang.org/x/text" ,go-golang-org-x-text)))
(propagated-inputs (list go-github-com-pkg-sftp go-golang-org-x-text))
(home-page "https://github.com/spf13/afero")
(synopsis "File system abstraction for Go")
(description
@ -3914,21 +3801,21 @@ GNU extensions} to the POSIX recommendations for command-line options.")
"099n2g7fg6r8hqyszqw2axr775qyhyvwhsykvgw0f0s16ql48h5c"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/spf13/viper"))
(list
#:import-path "github.com/spf13/viper"))
(propagated-inputs
`(("github.com/spf13/afero" ,go-github-com-spf13-afero)
("github.com/spf13/cast" ,go-github-com-spf13-cast)
("github.com/spf13/pflag" ,go-github-com-spf13-pflag)
("github.com/spf13/jwalterweatherman" ,go-github-com-spf13-jwalterweatherman)
("github.com/fsnotify/fsnotify" ,go-github-com-fsnotify-fsnotify)
("github.com/hashicorp/hcl" ,go-github-com-hashicorp-hcl)
("github.com/magiconair/properties" ,go-github-com-magiconair-properties)
("github.com/mitchellh/mapstructure" ,go-github-com-mitchellh-mapstructure)
("github.com/pelletier/go-toml" ,go-github-com-pelletier-go-toml)
("github.com/subosito/gotenv" ,go-github-com-subosito-gotenv)
("gopkg.in/ini.v1" ,go-gopkg-in-ini-v1)
("gopkg.in/yaml.v2" ,go-gopkg-in-yaml-v2)))
(list go-github-com-fsnotify-fsnotify
go-github-com-hashicorp-hcl
go-github-com-magiconair-properties
go-github-com-mitchellh-mapstructure
go-github-com-pelletier-go-toml
go-github-com-spf13-afero
go-github-com-spf13-cast
go-github-com-spf13-jwalterweatherman
go-github-com-spf13-pflag
go-github-com-subosito-gotenv
go-gopkg-in-ini-v1
go-gopkg-in-yaml-v2))
(native-inputs
(list go-github-com-stretchr-testify))
(home-page "https://github.com/spf13/viper")
@ -6337,31 +6224,6 @@ and aid debugging.")
a cron spec parser and job runner.")
(license license:expat)))
(define-public go-github-com-shirou-gopsutil
(let ((commit "47ef3260b6bf6ead847e7c8fc4101b33c365e399")
(revision "0"))
(package
(name "go-github-com-shirou-gopsutil")
(version (git-version "v2.19.7" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/shirou/gopsutil")
(commit commit))) ; XXX
(file-name (git-file-name name version))
(sha256
(base32
"0x1g4r32q4201nr2b754xnrrndmwsrhfr7zg37spya86qrmijnws"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/shirou/gopsutil"))
(synopsis "Process and system monitoring in Go")
(description "This package provides a library for retrieving information
on running processes and system utilization (CPU, memory, disks, network,
sensors).")
(home-page "https://github.com/shirou/gopsutil")
(license license:bsd-3))))
(define-public go-github-com-danwakefield-fnmatch
(let ((commit "cbb64ac3d964b81592e64f957ad53df015803288")
(revision "0"))
@ -8779,42 +8641,6 @@ error messages.")
inspired by the causal messaging system in the Pony programming language.")
(license license:expat))))
(define-public go-github-com-cheggaaa-pb-v3
(package
(name "go-github-com-cheggaaa-pb-v3")
(version "3.0.8")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/cheggaaa/pb/")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0d701s2niy39r650d1phjw19h4l27b1yfc2ih6s31f56b3zzqspx"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/cheggaaa/pb/v3"
;; XXX: it does have tests but I'm not sure how to run them.
;; go-build-system is looking in the wrong directory.
#:tests? #f))
(propagated-inputs
(list go-golang-org-x-sys
go-github-com-rivo-uniseg
go-github-com-mattn-go-runewidth
go-github-com-mattn-go-isatty
go-github-com-mattn-go-colorable
go-github-com-fatih-color
go-github-com-vividcortex-ewma))
(home-page "https://github.com/cheggaaa/pb/")
(synopsis "Console progress bar for Go")
(description "This package is a Go library that draws progress bars on
the terminal.")
(license license:bsd-3)))
(define-public go-github-com-cheggaaa-pb
(deprecated-package "go-github-com-cheggaaa-pb" go-github-com-cheggaaa-pb-v3))
(define-public go-github-com-gologme-log
;; this is the same as v1.2.0, only the LICENSE file changed
(let ((commit "720ba0b3ccf0a91bc6018c9967a2479f93f56a55"))
@ -8843,28 +8669,6 @@ is unchanged. This package contains a series of small enhancements and
additions.")
(license license:bsd-3))))
(define-public go-github-com-hashicorp-go-syslog
(package
(name "go-github-com-hashicorp-go-syslog")
(version "1.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hashicorp/go-syslog")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"09vccqggz212cg0jir6vv708d6mx0f9w5bxrcdah3h6chgmal6v1"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/hashicorp/go-syslog"))
(home-page "https://github.com/hashicorp/go-syslog")
(synopsis "Golang syslog wrapper, cross-compile friendly")
(description "This package is a very simple wrapper around log/syslog")
(license license:expat)))
(define-public go-golang-zx2c4-com-wireguard
(package
(name "go-golang-zx2c4-com-wireguard")
@ -9381,36 +9185,6 @@ be used as both a binary and a library.")
(native-inputs '())
(inputs '())))
(define-public go-go-uber-org-zap
(package
(name "go-go-uber-org-zap")
(version "1.16.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/uber-go/zap")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "05ix5wg1r8pgi7fb6084lg4x7mrkvzkh1nxa7zj337w5b9xj0myr"))))
(build-system go-build-system)
(arguments
'(#:import-path "go.uber.org/zap"
#:tests? #f)) ; TODO: Fix tests
(native-inputs
(list go-github-com-stretchr-testify go-golang-org-x-lint
go-honnef-co-go-tools))
(propagated-inputs
(list go-github-com-pkg-errors go-go-uber-org-atomic
go-go-uber-org-multierr go-gopkg-in-yaml-v2))
(home-page "https://go.uber.org/zap")
(synopsis "Logging library for Go")
(description
"This package provides a library for fast, structured, leveled logging in
Go.")
(license license:expat)))
(define-public go-github-com-davecgh-go-xdr
(package
(name "go-github-com-davecgh-go-xdr")
@ -9617,28 +9391,6 @@ programming language.")
parser.")
(license license:bsd-2)))
(define-public go-github-com-vividcortex-ewma
(package
(name "go-github-com-vividcortex-ewma")
(version "1.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/VividCortex/ewma")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0whx516l9nm4n41spagb605ry7kfnz1qha96mcshnfjlahhnnylq"))))
(build-system go-build-system)
(arguments '(#:import-path "github.com/vividcortex/ewma"))
(home-page "https://github.com/VividCortex/ewma")
(synopsis "Exponentially Weighted Moving Average algorithms for Go")
(description
"This package implements algorithms for exponentially weighted moving
averages.")
(license license:expat)))
(define-public go-github-com-rivo-uniseg
(package
(name "go-github-com-rivo-uniseg")

View File

@ -9,7 +9,7 @@
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2020-2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2020-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de>
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016 Patrick Hetu <patrick.hetu@auf.org>

View File

@ -2895,7 +2895,7 @@ See http://minikanren.org/ for more on miniKanren generally.")
(define-public guile-irregex
(package
(name "guile-irregex")
(version "0.9.6")
(version "0.9.11")
(source (origin
(method url-fetch)
(uri (string-append
@ -2903,24 +2903,45 @@ See http://minikanren.org/ for more on miniKanren generally.")
version ".tar.gz"))
(sha256
(base32
"1ia3m7dp3lcxa048q0gqbiwwsyvn99baw6xkhb4bhhzn4k7bwyqq"))))
"026kzl96pmwbjqdc7kh8rdh8ng813sjvdsik0dag5acza20sjm19"))))
(build-system guile-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'move-files-around
(lambda _
;; Move the relevant source files to src/ and create the
;; Copy the relevant source files to src/ and create the
;; rx/ directory to match the expected module hierarchy.
(mkdir-p "src/rx/source")
(rename-file "irregex-guile.scm"
(copy-file "irregex-guile.scm"
"src/rx/irregex.scm")
(rename-file "irregex.scm"
(copy-file "irregex.scm"
"src/rx/source/irregex.scm")
;; Not really reachable via guile's packaging system,
;; but nice to have around.
(rename-file "irregex-utils.scm"
"src/rx/source/irregex-utils.scm")
#t)))
(mkdir-p "src/rx/irregex")
(copy-file "irregex-utils-guile.scm"
"src/rx/irregex/utils.scm")
(copy-file "irregex-utils.scm"
"src/rx/source/irregex-utils.scm")))
(add-after 'build 'check
(lambda _
(for-each (lambda (f)
(invoke "guile" "--no-auto-compile" "-L" "." "-s" f))
(find-files "tests" "^guile-.*\\.scm"))))
(add-after 'install 'check-installed
(lambda _
(define-values (scm go) (target-guile-scm+go #$output))
(for-each
(lambda (f)
(substitute* f
(("\\(load-from-path \"irregex\"\\)")
"(use-modules (rx irregex))")
(("\\(load-from-path \"irregex-utils\"\\)")
"(use-modules (rx irregex utils))"))
(invoke "guile" "-L" scm "-C" go "-L" "tests" f))
(delete "tests/guile-cset.scm" ; Tests non-exported API
(find-files "tests" "^guile-.*\\.scm"))))))
#:source-directory "src"))
(native-inputs
(list guile-3.0))
@ -2936,6 +2957,27 @@ inspired by the SCSH regular expression system.")
(package
(inherit guile-irregex)
(name "guile2.0-irregex")
(arguments
(substitute-keyword-arguments (package-arguments guile-irregex)
((#:phases phases)
#~(modify-phases #$phases
;; For some reason guile 2.0 cannot load foo.scm using
;; (load-from-path "foo"). So create symlinks to work around it.
(add-before 'check 'create-symlinks
(lambda _
(use-modules (ice-9 regex))
(for-each
(lambda (f)
(symlink (regexp-substitute #f (string-match "/([^/]+)$" f)
1 ".scm")
f))
'("tests/guile/test-support"
"tests/test-cset"
"tests/test-irregex"
"tests/test-irregex-from-gauche"
"tests/test-irregex-pcre"
"tests/test-irregex-scsh"
"tests/test-irregex-utf8"))))))))
(native-inputs (list guile-2.0))))
(define-public guile2.2-irregex

View File

@ -294,7 +294,7 @@ to @code{cabal repl}).")
(define-public git-annex
(package
(name "git-annex")
(version "10.20230926")
(version "10.20240227")
(source
(origin
;; hackage release doesn't include everything needed for extra bits.
@ -304,7 +304,7 @@ to @code{cabal repl}).")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0zsq686b0q7mlkybm1xrc0kpl32ymvf0ybar01p68wx800031b2b"))))
(base32 "023gk1v01ks367h4zz67ksn2xaw6pgcfhmniay6ipkncfqv8rsra"))))
(build-system haskell-build-system)
(properties '((upstream-name . "git-annex")))
(arguments

View File

@ -767,7 +767,7 @@ displayed in a terminal.")
(define-public imv
(package
(name "imv")
(version "4.4.0")
(version "4.5.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -775,7 +775,7 @@ displayed in a terminal.")
(commit (string-append "v" version))))
(sha256
(base32
"1zlds43z17jrnsrfz3rf3sb3pa5gkmxaibq87509ikc7p1p09c9c"))
"0988rpgzyhb27sbhrh5f2zqccqirmq7xb0naqh9nbl8j1dg897b8"))
(file-name (git-file-name name version))))
(build-system meson-build-system)
(arguments
@ -792,13 +792,15 @@ displayed in a terminal.")
(("imv") (string-append bin "/imv")))))))))
(native-inputs
(list asciidoc
cmocka
pkg-config))
(inputs
(list freeimage
glu
libheif
libjpeg-turbo
libinih
libjpeg-turbo
libjxl
libnsgif
(librsvg-for-system)
libtiff

View File

@ -227,7 +227,7 @@ written in Go.")
(define-public kubo
(package
(name "kubo")
(version "0.19.0")
(version "0.22.0")
(source
(origin
(method url-fetch/tarbomb)
@ -235,7 +235,7 @@ written in Go.")
"https://dist.ipfs.io/kubo/v" version
"/kubo-source.tar.gz"))
(sha256
(base32 "0k0mw44fq6306pmfp6v4wawgigry9plnl2ij8i5f46606j55c31w"))
(base32 "0p8iaa56lnac1lxnbzp4fbjqzps50z5yqs34szcp53xjq8rmjzjd"))
(file-name (string-append name "-" version "-source"))
(modules '((guix build utils)))
(snippet '(for-each delete-file-recursively

View File

@ -19,6 +19,7 @@
;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2024 Paul A. Patience <paul@apatience.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -13578,14 +13579,14 @@ network protocols, and core version control algorithms.")
":"
share "abcl-contrib.jar")))
(display (string-append
"#!" (which "sh") "\n"
"#!" (which "bash") "\n"
"if [[ -z $CLASSPATH ]]; then\n"
" cp=\"" classpath "\"\n"
"else\n"
" cp=\"" classpath ":$CLASSPATH\"\n"
"fi\n"
"exec " (which "java")
" -cp $cp org.armedbear.lisp.Main $@\n")))))
" -cp \"$cp\" org.armedbear.lisp.Main \"$@\"\n")))))
(chmod (string-append bin "abcl") #o755)
#t))))))
(home-page "https://abcl.org/")

View File

@ -4,7 +4,7 @@
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020, 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2020, 2023, 2024 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2022 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;;
@ -1787,7 +1787,7 @@ the KDE Plasma 5 desktop.")
qtdeclarative-5
qtquickcontrols-5
qtquickcontrols2-5
qtwayland
qtwayland-5
qtx11extras
wayland
wayland-protocols

View File

@ -43,6 +43,7 @@
;;; Copyright © 2023 Raven Hallsby <karl@hallsby.com>
;;; Copyright © 2024 Michal Atlas <michal_atlas+git@posteo.net>
;;; Copyright © 2024 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2024 Nik Gaffney <nik@fo.am>
;;;
;;; This file is part of GNU Guix.
;;;
@ -1221,6 +1222,43 @@ Features:
(define-public ecl-coleslaw
(sbcl-package->ecl-package sbcl-coleslaw))
(define-public sbcl-cl-all
(let ((commit "4ce1ea9d9f33c0dd6212044e7952a0c854757ace")
(revision "0"))
(package
(name "sbcl-cl-all")
(version (git-version "1.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Shinmera/cl-all")
(commit commit)))
(file-name (git-file-name "cl-all" version))
(sha256
(base32 "0n4sjarj373zpxn78m32rmhxnsnr8qahdslrd9vrkkwjpzar2bwp"))))
(build-system asdf-build-system/sbcl)
(outputs '("out" "bin"))
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'create-asdf-configuration 'build-program
(lambda* (#:key outputs #:allow-other-keys)
(build-program
(string-append (assoc-ref outputs "bin") "/bin/cl-all")
outputs
#:entry-program '((cl-all:toplevel arguments))
#:compress? #t))))))
(home-page "https://github.com/Shinmera/cl-all")
(synopsis "Evaluate Common Lisp expressions in multiple implementations")
(description "@samp{cl-all} is a library and script for evaluating Common
Lisp expressions in multiple implementations.")
(license license:zlib))))
(define-public cl-all
(sbcl-package->cl-source-package sbcl-cl-all))
(define-public sbcl-tripod
(let ((commit "b019a27cd7eb895870f84b0eb6c3edc5d7b05928")
(revision "1"))
@ -17839,8 +17877,8 @@ compression/decompression using bindings to the libzstd C library.")
(sbcl-package->ecl-package sbcl-zstd))
(define-public sbcl-agnostic-lizard
(let ((commit "fe3a73719f05901c8819f8995a3ebae738257952")
(revision "1"))
(let ((commit "fe1a1d7d80c8b56163754e0e5b3653fd750ad298")
(revision "2"))
(package
(name "sbcl-agnostic-lizard")
(version (git-version "0.0.0" revision commit))
@ -17850,9 +17888,9 @@ compression/decompression using bindings to the libzstd C library.")
(uri (git-reference
(url "https://gitlab.common-lisp.net/mraskin/agnostic-lizard")
(commit commit)))
(file-name (git-file-name name version))
(file-name (git-file-name "cl-agnostic-lizard" version))
(sha256
(base32 "0ax78y8w4zlp5dcwyhz2nq7j3shi49qn31dkfg8lv2jlg7mkwh2d"))))
(base32 "0amzshh6v3mp24j0h2cinv4zvdlg4kih04md5biakwhnmcw4j4pr"))))
(build-system asdf-build-system/sbcl)
(synopsis "Almost correct portable code walker for Common Lisp")
(description
@ -25694,11 +25732,11 @@ Common Lisp.")
(sbcl-package->ecl-package sbcl-cl-collider))
(define-public sbcl-osc
(let ((commit "9f0a9d3da310a3a0f654f48af0203816f3f371ad")
(let ((commit "f647738ccc22925ed740a8ca9132fda76a05baeb")
(revision "0"))
(package
(name "sbcl-osc")
(version (git-version "0.7" revision commit))
(version (git-version "0.9" revision commit))
(source
(origin
(method git-fetch)
@ -25707,16 +25745,18 @@ Common Lisp.")
(commit commit)))
(file-name (git-file-name "cl-osc" version))
(sha256
(base32 "0gh29zcl9pmy3xlmwzpf9www2z06ah6b4jk06sj2cvxbc15nblqa"))))
(base32 "1x4cavspaxcr604g0hwak1ncy4m9cqq03ji4v56g2h1443n7h48a"))))
(build-system asdf-build-system/sbcl)
(inputs (list sbcl-usocket))
(native-inputs (list sbcl-fiveam))
(inputs (list sbcl-ieee-floats))
(synopsis "Implementation of the Open Sound Control protocol")
(description "This package provides a common lisp implementation
of the Open Sound Control Protocol aka OSC. The code should be close
to the ansi standard, and does not rely on any external code/ffi/etc+
to do the basic encoding and decoding of packets.")
(description "This is a lisp implementation of the Open Sound Control
protocol (or more accurately data transport specification or
encoding). The code should be close to ANSI standard common lisp and
provides self contained code for encoding and decoding of OSC data, messages,
and bundles.")
(home-page "https://github.com/zzkt/osc/")
(license (list license:gpl3 license:llgpl)))))
(license license:gpl3+))))
(define-public cl-osc
(sbcl-package->cl-source-package sbcl-osc))

View File

@ -482,67 +482,72 @@ code analysis tools.")
(define (clang-properties version)
"Return package properties for Clang VERSION."
`((compiler-cpu-architectures
("powerpc64le"
;; This list was obtained from clang/test/Misc/target-invalid-cpu-note.c
;; and then trimmed down.
,@(if (version>=? version "11.0")
'("power8" "power9" "power10" "powerpc64le")))
("x86_64"
;; This list was obtained by running:
;;
;; guix shell clang -- llc -march=x86-64 -mattr=help
;;
;; filtered from uninteresting entries such as "i686" and "pentium".
,@(if (version>=? version "10.0") ;TODO: refine
'("atom"
"barcelona"
"bdver1"
"bdver2"
"bdver3"
"bdver4"
"bonnell"
"broadwell"
"btver1"
"btver2"
"c3"
"c3-2"
"cannonlake"
"cascadelake"
"cooperlake"
"core-avx-i"
"core-avx2"
"core2"
"corei7"
"corei7-avx"
"generic"
"geode"
"goldmont"
"goldmont-plus"
"haswell"
"icelake-client"
"icelake-server"
"ivybridge"
"k8"
"k8-sse3"
"knl"
"knm"
"lakemont"
"nehalem"
"nocona"
"opteron"
"opteron-sse3"
"sandybridge"
"silvermont"
"skx"
"skylake"
"skylake-avx512"
"slm"
"tigerlake"
"tremont"
"westmere"
"x86-64"
"x86-64-v2"
"x86-64-v3"
"x86-64-v4"
"znver1"
"znver2"
"znver3")
'())))))
;; This list was obtained from clang/test/Misc/target-invalid-cpu-note.c
,@(cond
((version>=? version "17.0")
'("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm"
"goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere"
"sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell"
"core-avx2" "broadwell" "skylake" "skylake-avx512" "skx"
"cascadelake" "cooperlake" "cannonlake" "icelake-client"
"rocketlake" "icelake-server" "tigerlake" "sapphirerapids"
"alderlake" "raptorlake" "meteorlake" "sierraforest" "grandridge"
"graniterapids" "graniterapids-d" "emeraldrapids" "knl" "knm" "k8"
"athlon64" "athlon-fx" "opteron" "k8-sse3" "athlon64-sse3"
"opteron-sse3" "amdfam10" "barcelona" "btver1" "btver2" "bdver1"
"bdver2" "bdver3" "bdver4" "znver1" "znver2" "znver3" "znver4"
"x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4"))
((version>=? version "16.0")
'("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm"
"goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere"
"sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell"
"core-avx2" "broadwell" "skylake" "skylake-avx512" "skx"
"cascadelake" "cooperlake" "cannonlake" "icelake-client"
"rocketlake" "icelake-server" "tigerlake" "sapphirerapids"
"alderlake" "raptorlake" "meteorlake" "sierraforest" "grandridge"
"graniterapids" "emeraldrapids" "knl" "knm" "k8" "athlon64"
"athlon-fx" "opteron" "k8-sse3" "athlon64-sse3" "opteron-sse3"
"amdfam10" "barcelona" "btver1" "btver2" "bdver1" "bdver2"
"bdver3" "bdver4" "znver1" "znver2" "znver3" "znver4" "x86-64"
"x86-64-v2" "x86-64-v3" "x86-64-v4"))
((version>=? version "15.0")
'("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm"
"goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere"
"sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell"
"core-avx2" "broadwell" "skylake" "skylake-avx512" "skx"
"cascadelake" "cooperlake" "cannonlake" "icelake-client"
"rocketlake" "icelake-server" "tigerlake" "sapphirerapids"
"alderlake" "knl" "knm" "k8" "athlon64" "athlon-fx" "opteron"
"k8-sse3" "athlon64-sse3" "opteron-sse3" "amdfam10" "barcelona"
"btver1" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"
"znver2" "znver3" "x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4"))
((version>=? version "13.0")
'("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm"
"goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere"
"sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell"
"core-avx2" "broadwell" "skylake" "skylake-avx512" "skx"
"cascadelake" "cooperlake" "cannonlake" "icelake-client"
"rocketlake" "icelake-server" "tigerlake" "sapphirerapids"
"alderlake" "knl" "knm" "k8" "athlon64" "athlon-fx" "opteron"
"k8-sse3" "athlon64-sse3" "opteron-sse3" "amdfam10" "barcelona"
"btver1" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"
"znver2" "znver3" "x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4"))
((version>=? version "9.0")
'("atom" "silvermont" "slm" "goldmont" "goldmont-plus" "tremont"
"nehalem" "corei7" "westmere" "sandybridge" "corei7-avx"
"ivybridge" "core-avx-i" "haswell" "core-avx2" "broadwell"
"skylake" "skylake-avx512" "skx" "cascadelake" "cooperlake"
"cannonlake" "icelake-client" "icelake-server" "knl" "knm" "k8"
"athlon64" "athlon-fx" "opteron" "k8-sse3" "athlon64-sse3"
"opteron-sse3" "amdfam10" "barcelona" "btver1" "btver2" "bdver1"
"bdver2" "bdver3" "bdver4" "znver1" "znver2" "x86-64"))
(else '()))))))
(define-public (make-clang-toolchain clang libomp)
(package

View File

@ -1233,7 +1233,7 @@ enabled.")
(define-public fennel
(package
(name "fennel")
(version "1.3.1")
(version "1.4.2")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1242,7 +1242,7 @@ enabled.")
(file-name (git-file-name name version))
(sha256
(base32
"12zm3rd0vvkqazv1cv5bhwk6igsj18im2qakqw7cf4a20rc9wpmx"))))
"1h1i87jx889n1wczw5jvqmkx0jmlrq83pjspyd9v27j360d9fcik"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags #~(list (string-append "PREFIX="

View File

@ -26,6 +26,7 @@
;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2024 David Pflug <david@pflug.io>
;;; Copyright © 2024 Timothee Mathieu <timothee.mathieu@inria.fr>
;;; Copyright © 2024 Spencer King <spencer.king@geneoscopy.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -523,8 +524,8 @@ Performance is achieved by using the LLVM JIT compiler.")
(deprecated-package "guile-aiscm-next" guile-aiscm))
(define-public llama-cpp
(let ((commit "f31b5397143009d682db90fd2a6cde83f1ef00eb")
(revision "0"))
(let ((commit "03bf161eb6dea6400ee49c6dc6b69bdcfa9fd3fc")
(revision "1"))
(package
(name "llama-cpp")
(version (git-version "0.0.0" revision commit))
@ -533,10 +534,10 @@ Performance is achieved by using the LLVM JIT compiler.")
(method git-fetch)
(uri (git-reference
(url "https://github.com/ggerganov/llama.cpp")
(commit (string-append "master-" (string-take commit 7)))))
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0ys6n53n032zq1ll9f3vgxk8sw0qq7x3fi7awsyy13adzp3hn08p"))))
(base32 "1ag1jash84hasz10h0piw72a8ginm8kzvhihbzzljz96gq2kjm88"))))
(build-system cmake-build-system)
(arguments
(list
@ -563,8 +564,10 @@ Performance is achieved by using the LLVM JIT compiler.")
(get-string-all input))))))
(chmod (string-append bin script) #o555)))
(mkdir-p bin)
(make-script "convert-pth-to-ggml")
(make-script "convert-hf-to-gguf")
(make-script "convert-llama-ggml-to-gguf")
(make-script "convert-lora-to-ggml")
(make-script "convert-persimmon-to-gguf")
(make-script "convert"))))
(add-after 'install-python-scripts 'wrap-python-scripts
(assoc-ref python:%standard-phases 'wrap))
@ -1782,6 +1785,29 @@ scikit-learn inclusion criteria, for instance due to their novelty or lower
citation number.")
(license license:bsd-3))))
(define-public python-mord
(package
(name "python-mord")
(version "0.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "mord" version))
(sha256
(base32 "1cvv9b9w69v0inq0zgcw0vmkiq3zn9q9r6clkynpzjik9rrh405n"))))
(build-system pyproject-build-system)
;; v0.7 does not provide any test cases
;; v0.6 relies on deprecated scikit-learn functionality
(arguments `(#:tests? #f))
(inputs (list python-numpy python-scipy python-scikit-learn))
(home-page "https://pypi.org/project/mord/")
(synopsis "Ordinal regression models for scikit-learn")
(description
"This package provides a collection of ordinal regression models for
machine learning in Python. They are intended to be used with scikit-learn
and are compatible with its API.")
(license license:bsd-3)))
(define-public python-thinc
(package
(name "python-thinc")

View File

@ -333,7 +333,7 @@ convert HTML to Markdown.")
(define-public cmark
(package
(name "cmark")
(version "0.30.3")
(version "0.31.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -342,7 +342,7 @@ convert HTML to Markdown.")
(file-name (git-file-name name version))
(sha256
(base32
"07d30s5v893nb1m7qbam5c3x9b3d84m80kzlj7fmkwhgjrlz7d7z"))))
"0llj68l9rxdhral0zyv0bz6yzqsxgq8d3730082sl3kx78lsq5qq"))))
(build-system cmake-build-system)
(arguments
'(#:test-target "test"))

View File

@ -30,7 +30,7 @@
;;; Copyright © 2018 Eric Brown <brown@fastmail.com>
;;; Copyright © 2018, 2021, 2024 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018 Amin Bandali <bandali@gnu.org>
;;; Copyright © 2019, 2021-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2019, 2021-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com>
;;; Copyright © 2019 Robert Smith <robertsmith@posteo.net>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
@ -426,13 +426,13 @@ programming language.")
(define-public units
(package
(name "units")
(version "2.22")
(version "2.23")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/units/units-" version
".tar.gz"))
(sha256 (base32
"0j2q2a9sgldqwcifsnb7qagsmp8fvj91vfh6v4k7gzi1fwhf24sx"))))
"0w3kl58y7fq9paaq8ayn5gwylc4n8jbk6lf42kkcj9ar4i8v8myr"))))
(build-system gnu-build-system)
(inputs
`(("readline" ,readline)
@ -8736,7 +8736,7 @@ management via the GIMPS project's Primenet server.")
(define-public nauty
(package
(name "nauty")
(version "2.8.6")
(version "2.8.8")
(source
(origin
(method url-fetch)
@ -8744,7 +8744,7 @@ management via the GIMPS project's Primenet server.")
"https://pallini.di.uniroma1.it/"
"nauty" (string-join (string-split version #\.) "_") ".tar.gz"))
(sha256
(base32 "1yp6wpz2drq0viww8px1vl4pw919nq3xgxrmrrdhycx8bhi9ikpj"))))
(base32 "1ki9z60qcyx3va68hp7iv6451n5d86v1xmhc850b4sqah5b2378m"))))
(build-system gnu-build-system)
(outputs '("out" "lib"))
(arguments

View File

@ -40,14 +40,14 @@
(define-public mc
(package
(name "mc")
(version "4.8.30")
(version "4.8.31")
(source
(origin
(method url-fetch)
(uri (string-append "https://ftp.osuosl.org/pub/midnightcommander/mc-"
version ".tar.xz"))
(sha256
(base32 "1py7jm620lsas7rcv5j69608gdshmp25d9gx958hr5sb2jr3rg2y"))))
(base32 "06mbnhxd2k29jah4wp1ciicw1gb51a5d3af43zivhxbncvw1q694"))))
(build-system gnu-build-system)
(arguments
(list
@ -68,7 +68,6 @@
(list "lib/utilunix.c"
"src/filemanager/ext.c"
"src/usermenu.c"
"src/vfs/fish/fish.c"
;; This file hard-codes other shells, but they're never
;; tried after mc's first choice (bash) is found.
"lib/shell.c")

View File

@ -40,6 +40,7 @@
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
;;; Copyright © 2024 Carlo Zancanaro <carlo@zancanaro.id.au>
;;;
;;; This file is part of GNU Guix.
;;;
@ -143,6 +144,7 @@
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system go)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
@ -1577,11 +1579,18 @@ system on which to rapidly develop added functionality, or prototype new
protocols.")
(license license:x11)))
(define-public prosody-http-upload
(let ((changeset "765735bb590b")
(revision "1"))
(define (prosody-module module-name)
(let ((changeset "fba64b043c52")
(revision "2")
(package-name (string-append
"prosody-"
(string-replace-substring
(if (string-prefix? "mod_" module-name)
(substring module-name 4)
module-name)
"_" "-"))))
(package
(name "prosody-http-upload")
(name package-name)
(version (string-append "0-" revision "." (string-take changeset 7)))
(source (origin
(method hg-fetch)
@ -1591,56 +1600,37 @@ protocols.")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"142wrcism70nf8ffahhd961cqg2pi1h7ic8adfs3zwh0j3pnf41f"))))
(build-system trivial-build-system)
"1nvka8s3zqs97jqsknhp2q956rrdga1qaxa1y3i0h8zx3g9vgdch"))))
(build-system copy-build-system)
(arguments
'(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let ((out (assoc-ref %outputs "out"))
(source (assoc-ref %build-inputs "source")))
(with-directory-excursion (in-vicinity source "mod_http_upload")
(install-file "mod_http_upload.lua" out))
#t))))
(home-page "https://modules.prosody.im/mod_http_upload.html")
(synopsis "XEP-0363: Allow clients to upload files over HTTP")
(description "This module implements XEP-0363: it allows clients to
upload files over HTTP.")
`(#:install-plan '((,(string-append module-name "/") "."))))
(home-page (string-append "https://modules.prosody.im/"
module-name ".html"))
(synopsis #f)
(description #f)
(license (package-license prosody)))))
(define-public prosody-smacks
(let ((changeset "67f1d1f22625")
(revision "1"))
(define-public prosody-http-upload
(package
(name "prosody-smacks")
(version (string-append "0-" revision "." (string-take changeset 7)))
(source (origin
(method hg-fetch)
(uri (hg-reference
(url "https://hg.prosody.im/prosody-modules/")
(changeset changeset)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"020ngpax30fgarah98yvlj0ni8rcdwq60if03a9hqdw8mic0nxxs"))))
(build-system trivial-build-system)
(arguments
'(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let ((out (assoc-ref %outputs "out"))
(source (assoc-ref %build-inputs "source")))
(with-directory-excursion (in-vicinity source "mod_smacks")
(install-file "mod_smacks.lua" out))
#t))))
(home-page "https://modules.prosody.im/mod_smacks.html")
(inherit (prosody-module "mod_http_upload"))
(synopsis "XEP-0363: Allow clients to upload files over HTTP")
(description "This module implements XEP-0363: it allows clients to
upload files over HTTP.")))
(define-public prosody-smacks
(package
(inherit (prosody-module "mod_smacks"))
(synopsis "XEP-0198: Reliability and fast reconnects for XMPP")
(description "This module implements XEP-0198: when supported by both
the client and server, it can allow clients to resume a disconnected session,
and prevent message loss.")
(license (package-license prosody)))))
and prevent message loss.")))
(define-public prosody-vcard-muc
(package
(inherit (prosody-module "mod_vcard_muc"))
(synopsis "Support for MUC vCards and avatars")
(description "This module adds the ability to set vCard for MUC rooms. One
of the most common use cases is to define avatars for MUC rooms.")))
(define-public libtoxcore
(let ((revision "2")

View File

@ -455,7 +455,7 @@ number generators, public key cryptography and a plethora of other routines.")
(define-public libtommath
(package
(name "libtommath")
(version "1.2.0")
(version "1.2.1")
(outputs '("out" "static"))
(source
(origin
@ -464,8 +464,7 @@ number generators, public key cryptography and a plethora of other routines.")
"download/v" version "/ltm-" version ".tar.xz"))
(sha256
(base32
"1c8q1qy88cjhdjlk3g24mra94h34c1ldvkjz0n2988c0yvn5xixp"))
(patches (search-patches "libtommath-integer-overflow.patch"))))
"07qdxnmp5bhfw5za6mr2l2w0vb7494v9zs9h5vp6y9vlngbjaq4q"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@ -476,13 +475,11 @@ number generators, public key cryptography and a plethora of other routines.")
;; We want the shared library by default so force it to be the
;; default makefile target.
(delete-file "makefile")
(symlink "makefile.shared" "makefile")
#t))
(symlink "makefile.shared" "makefile")))
(add-after 'install 'remove-static-library
(lambda* (#:key outputs #:allow-other-keys)
(delete-file (string-append (assoc-ref outputs "out")
"/lib/libtommath.a"))
#t))
"/lib/libtommath.a"))))
(replace 'check
(lambda* (#:key tests? test-target make-flags #:allow-other-keys)
(when tests?
@ -504,48 +501,6 @@ number generators, public key cryptography and a plethora of other routines.")
integer library written entirely in C. It's designed to provide an API that is
simple to work with that provides fairly efficient routines that build out of
the box without configuration.")
(properties `((upstream-name . "ltm")
(lint-hidden-cve . ("CVE-2023-36328"))))
(license unlicense)))
(define-public libtommath-1.1
(package
(inherit libtommath)
(version "1.1.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/libtom/libtommath/releases/"
"download/v" version "/ltm-" version ".tar.xz"))
(sha256
(base32
"1bbyagqzfdbg37k1n08nsqzdf44z8zsnjjinqbsyj7rxg246qilh"))
(patches (search-patches "libtommath-fix-linkage.patch"))))
(arguments
(substitute-keyword-arguments (package-arguments libtommath)
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'patch-coreutils-call
(lambda _
;; Don't pull in coreutils.
(substitute* "makefile_include.mk"
(("arch") "uname -m"))
#t))))
((#:test-target _) "test_standalone")))))
(define-public libtommath-1.0
(package
(inherit libtommath-1.1)
(version "1.0.1")
(outputs '("out"))
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/libtom/libtommath/releases/"
"download/v" version "/ltm-" version ".tar.xz"))
(sha256
(base32
"0sbccdwbkfc680id2fi0x067j23biqcjqilwkk7y9339knrjy0s7"))))
(arguments
(substitute-keyword-arguments (package-arguments libtommath-1.1)
((#:phases phases)
`(modify-phases ,phases
(delete 'install-static-library)))))))

View File

@ -9,7 +9,7 @@
;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
;;; Copyright © 2018, 2019 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2019-2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
@ -120,6 +120,7 @@
#:use-module (gnu packages xorg)
#:use-module (gnu packages version-control)
#:autoload (guix build-system channel) (channel-build-system)
#:use-module (guix build-system copy)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system guile)
@ -682,15 +683,12 @@ overridden by setting the 'current-guix-package' parameter."
(define-public guix-icons
(package
(inherit guix)
(name "guix-icons")
(version "0.1")
(source %artwork-repository)
(build-system trivial-build-system)
(native-inputs
(list imagemagick))
(inputs
'())
(arguments
`(#:modules ((guix build utils)
(gnu build svg))
@ -738,10 +736,29 @@ overridden by setting the 'current-guix-package' parameter."
#:width size
#:height size)))
sizes))))))
(home-page "https://www.gnu.org/software/guix/")
(synopsis "GNU Guix icons")
(description "This package contains GNU Guix icons organized according to
the Icon Theme Specification. They can be used by applications querying the
GTK icon cache for instance.")))
GTK icon cache for instance.")
(license license:cc-by-sa4.0)))
(define-public guix-backgrounds
(package
(name "guix-backgrounds")
(version "0.1")
(source %artwork-repository)
(build-system copy-build-system)
(arguments
(list #:install-plan
#~'(("backgrounds" "share/backgrounds/guix" #:exclude ("README")))))
(home-page "https://www.gnu.org/software/guix/")
(synopsis "Background images for GNU Guix")
(description "The SVG files in this directory are intended to be used as
backgrounds for different components of the GNU system like login managers and
desktop environments. The backgrounds are available in different aspect ratios
which are indicated in the file name.")
(license (list license:public-domain license:cc-by-sa4.0))))
(define-public guix-modules
(package
@ -974,8 +991,8 @@ transactions from C or Python.")
(license license:gpl2+)))
(define-public bffe
(let ((commit "1c12da4e6f3c7d3ab557781769fb848354362748")
(revision "3"))
(let ((commit "006b96a9ff41f5d8e639f93f81eeab87d204bd89")
(revision "4"))
(package
(name "bffe")
(version (git-version "0" revision commit))
@ -986,7 +1003,7 @@ transactions from C or Python.")
(commit commit)))
(sha256
(base32
"0qa63mssv85g38m3bcblgp3yscywgz0hrg4lc84dxx99b07pmfc3"))
"1ai3dzwp5ddn5i7xzvg0qcj0nbip03jx0d3vhvxqr1vnlr71rzvh"))
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(native-inputs
@ -1001,7 +1018,7 @@ transactions from C or Python.")
guix
guix-data-service
guix-build-coordinator
guile-fibers-1.3
guile-fibers
guile-prometheus
guile-lib))
(propagated-inputs
@ -1010,7 +1027,7 @@ transactions from C or Python.")
guix
guix-data-service
guix-build-coordinator
guile-fibers-1.3
guile-fibers
guile-prometheus
guile-lib))
(home-page "https://git.cbaines.net/guix/bffe")
@ -1513,8 +1530,8 @@ environments.")
"0k9zkdyyzir3fvlbcfcqy17k28b51i20rpbjwlx2i1mwd2pw9cxc")))))))
(define-public guix-build-coordinator
(let ((commit "9f1545b15269523eac109b54e1a62f4c0cda837e")
(revision "97"))
(let ((commit "1c80525d21f183ed2556def6fcd021f6ea9a88a4")
(revision "98"))
(package
(name "guix-build-coordinator")
(version (git-version "0" revision commit))
@ -1525,7 +1542,7 @@ environments.")
(commit commit)))
(sha256
(base32
"1h35jjpvl7lipbys8q7ivx13cffkya6n0jpc91ckag3z2vb09iwp"))
"0krw4v04ynp8v12zgc87cx6d3rldr13b48kix9rzq4z17x7f39yc"))
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(arguments

View File

@ -1,40 +0,0 @@
From 69d81a8a4d4c223aad67cde0fdf64d64351b9802 Mon Sep 17 00:00:00 2001
From: Andy Tai <atai@atai.org>
Date: Sat, 27 May 2023 00:01:34 -0700
Subject: [PATCH] prevent -Werror=maybe-uninitialized build failure with gcc 11
when building tests tokeniser2 and tokeniser3
---
test/tokeniser2.c | 2 +-
test/tokeniser3.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/test/tokeniser2.c b/test/tokeniser2.c
index c8ab9c0..4caae38 100644
--- a/test/tokeniser2.c
+++ b/test/tokeniser2.c
@@ -438,7 +438,7 @@ hubbub_error token_handler(const hubbub_token *token, void *pw)
/* Expected token only contained part of the data
* Calculate how much is left, then try again with
* the next expected token */
- hubbub_token t;
+ hubbub_token t = { 0 };
t.type = HUBBUB_TOKEN_CHARACTER;
t.data.character.ptr += len;
diff --git a/test/tokeniser3.c b/test/tokeniser3.c
index e33d018..b3be901 100644
--- a/test/tokeniser3.c
+++ b/test/tokeniser3.c
@@ -447,7 +447,7 @@ hubbub_error token_handler(const hubbub_token *token, void *pw)
/* Expected token only contained part of the data
* Calculate how much is left, then try again with
* the next expected token */
- hubbub_token t;
+ hubbub_token t = { 0 };
t.type = HUBBUB_TOKEN_CHARACTER;
t.data.character.ptr += len;
--
2.40.1

View File

@ -0,0 +1,13 @@
Submitted upstream at https://bugs.netsurf-browser.org/mantis/view.php?id=2870
--- libcss-0.9.2/test/dump.h.orig
+++ libcss-0.9.2/test/dump.h
@@ -131,7 +131,7 @@ void dump_rule_media(css_rule_media *s, char **buf, size_t *buflen)
char *ptr = *buf;
css_rule *rule;
- ptr += sprintf(ptr, "| @media %s%03lx",
+ ptr += sprintf(ptr, "| @media %s%03" PRIx64,
s->media->negate_type ? "not " : "",
s->media->type);

View File

@ -1,55 +0,0 @@
https://github.com/libtom/libtommath/commit/93dea3a4162527346cd8856bfda6f17ffe98ab04.patch
From 93dea3a4162527346cd8856bfda6f17ffe98ab04 Mon Sep 17 00:00:00 2001
From: Steffen Jaeckel <s@jaeckel.eu>
Date: Thu, 31 Jan 2019 14:12:03 +0100
Subject: [PATCH] makefile.shared: fix compilation and linkage
---
makefile.shared | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/makefile.shared b/makefile.shared
index 3955f830..870b18d1 100644
--- a/makefile.shared
+++ b/makefile.shared
@@ -18,6 +18,7 @@ ifndef LIBTOOL
endif
endif
LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC)
+LTLINK = $(LIBTOOL) --mode=link --tag=CC $(CC)
LCOV_ARGS=--directory .libs --directory .
@@ -59,7 +60,7 @@ objs: $(OBJECTS)
LOBJECTS = $(OBJECTS:.o=.lo)
$(LIBNAME): $(OBJECTS)
- $(LIBTOOL) --mode=link --tag=CC $(CC) $(LDFLAGS) $(LOBJECTS) -o $(LIBNAME) -rpath $(LIBPATH) -version-info $(VERSION_SO) $(LIBTOOLFLAGS)
+ $(LTLINK) $(LDFLAGS) $(LOBJECTS) -o $(LIBNAME) -rpath $(LIBPATH) -version-info $(VERSION_SO) $(LIBTOOLFLAGS)
install: $(LIBNAME)
install -d $(DESTDIR)$(LIBPATH)
@@ -76,16 +77,16 @@ uninstall:
rm $(DESTDIR)$(LIBPATH)/pkgconfig/libtommath.pc
test: $(LIBNAME) demo/demo.o
- $(CC) $(CFLAGS) -c demo/demo.c -o demo/demo.o
- $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o test demo/demo.o $(LIBNAME)
+ $(LTCOMPILE) $(CFLAGS) -c demo/demo.c -o demo/demo.o
+ $(LTLINK) $(LDFLAGS) -o test demo/demo.o $(LIBNAME)
test_standalone: $(LIBNAME) demo/demo.o
- $(CC) $(CFLAGS) -c demo/demo.c -o demo/demo.o
- $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o test demo/demo.o $(LIBNAME)
+ $(LTCOMPILE) $(CFLAGS) -c demo/demo.c -o demo/demo.o
+ $(LTLINK) $(LDFLAGS) -o test demo/demo.o $(LIBNAME)
.PHONY: mtest
mtest:
- cd mtest ; $(CC) $(CFLAGS) $(LDFLAGS) mtest.c -o mtest
+ cd mtest ; $(CC) $(CFLAGS) -O0 mtest.c $(LDFLAGS) -o mtest
timing: $(LIBNAME) demo/timing.c
- $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -DTIMER demo/timing.c $(LIBNAME) -o timing
+ $(LTLINK) $(CFLAGS) $(LDFLAGS) -DTIMER demo/timing.c $(LIBNAME) -o timing

View File

@ -1,140 +0,0 @@
This patch is from upstream:
https://github.com/libtom/libtommath/pull/546
From beba892bc0d4e4ded4d667ab1d2a94f4d75109a9 Mon Sep 17 00:00:00 2001
From: czurnieden <czurnieden@gmx.de>
Date: Tue, 9 May 2023 17:17:12 +0200
Subject: [PATCH] Fix possible integer overflow
---
bn_mp_2expt.c | 4 ++++
bn_mp_grow.c | 4 ++++
bn_mp_init_size.c | 5 +++++
bn_mp_mul_2d.c | 4 ++++
bn_s_mp_mul_digs.c | 4 ++++
bn_s_mp_mul_digs_fast.c | 4 ++++
bn_s_mp_mul_high_digs.c | 4 ++++
bn_s_mp_mul_high_digs_fast.c | 4 ++++
8 files changed, 33 insertions(+)
diff --git a/bn_mp_2expt.c b/bn_mp_2expt.c
index 0ae3df1bf..23de0c3c5 100644
--- a/bn_mp_2expt.c
+++ b/bn_mp_2expt.c
@@ -12,6 +12,10 @@ mp_err mp_2expt(mp_int *a, int b)
{
mp_err err;
+ if (b < 0) {
+ return MP_VAL;
+ }
+
/* zero a as per default */
mp_zero(a);
diff --git a/bn_mp_grow.c b/bn_mp_grow.c
index 9e904c547..2b1682651 100644
--- a/bn_mp_grow.c
+++ b/bn_mp_grow.c
@@ -9,6 +9,10 @@ mp_err mp_grow(mp_int *a, int size)
int i;
mp_digit *tmp;
+ if (size < 0) {
+ return MP_VAL;
+ }
+
/* if the alloc size is smaller alloc more ram */
if (a->alloc < size) {
/* reallocate the array a->dp
diff --git a/bn_mp_init_size.c b/bn_mp_init_size.c
index d62268721..99573833f 100644
--- a/bn_mp_init_size.c
+++ b/bn_mp_init_size.c
@@ -6,6 +6,11 @@
/* init an mp_init for a given size */
mp_err mp_init_size(mp_int *a, int size)
{
+
+ if (size < 0) {
+ return MP_VAL;
+ }
+
size = MP_MAX(MP_MIN_PREC, size);
/* alloc mem */
diff --git a/bn_mp_mul_2d.c b/bn_mp_mul_2d.c
index 87354de20..bfeaf2eb2 100644
--- a/bn_mp_mul_2d.c
+++ b/bn_mp_mul_2d.c
@@ -9,6 +9,10 @@ mp_err mp_mul_2d(const mp_int *a, int b, mp_int *c)
mp_digit d;
mp_err err;
+ if (b < 0) {
+ return MP_VAL;
+ }
+
/* copy */
if (a != c) {
if ((err = mp_copy(a, c)) != MP_OKAY) {
diff --git a/bn_s_mp_mul_digs.c b/bn_s_mp_mul_digs.c
index 64509d4cb..3682b4980 100644
--- a/bn_s_mp_mul_digs.c
+++ b/bn_s_mp_mul_digs.c
@@ -16,6 +16,10 @@ mp_err s_mp_mul_digs(const mp_int *a, const mp_int *b, mp_int *c, int digs)
mp_word r;
mp_digit tmpx, *tmpt, *tmpy;
+ if (digs < 0) {
+ return MP_VAL;
+ }
+
/* can we use the fast multiplier? */
if ((digs < MP_WARRAY) &&
(MP_MIN(a->used, b->used) < MP_MAXFAST)) {
diff --git a/bn_s_mp_mul_digs_fast.c b/bn_s_mp_mul_digs_fast.c
index b2a287b02..3c4176a87 100644
--- a/bn_s_mp_mul_digs_fast.c
+++ b/bn_s_mp_mul_digs_fast.c
@@ -26,6 +26,10 @@ mp_err s_mp_mul_digs_fast(const mp_int *a, const mp_int *b, mp_int *c, int digs)
mp_digit W[MP_WARRAY];
mp_word _W;
+ if (digs < 0) {
+ return MP_VAL;
+ }
+
/* grow the destination as required */
if (c->alloc < digs) {
if ((err = mp_grow(c, digs)) != MP_OKAY) {
diff --git a/bn_s_mp_mul_high_digs.c b/bn_s_mp_mul_high_digs.c
index 2bb2a5098..c9dd355f8 100644
--- a/bn_s_mp_mul_high_digs.c
+++ b/bn_s_mp_mul_high_digs.c
@@ -15,6 +15,10 @@ mp_err s_mp_mul_high_digs(const mp_int *a, const mp_int *b, mp_int *c, int digs)
mp_word r;
mp_digit tmpx, *tmpt, *tmpy;
+ if (digs < 0) {
+ return MP_VAL;
+ }
+
/* can we use the fast multiplier? */
if (MP_HAS(S_MP_MUL_HIGH_DIGS_FAST)
&& ((a->used + b->used + 1) < MP_WARRAY)
diff --git a/bn_s_mp_mul_high_digs_fast.c b/bn_s_mp_mul_high_digs_fast.c
index a2c4fb692..4ce7f590c 100644
--- a/bn_s_mp_mul_high_digs_fast.c
+++ b/bn_s_mp_mul_high_digs_fast.c
@@ -19,6 +19,10 @@ mp_err s_mp_mul_high_digs_fast(const mp_int *a, const mp_int *b, mp_int *c, int
mp_digit W[MP_WARRAY];
mp_word _W;
+ if (digs < 0) {
+ return MP_VAL;
+ }
+
/* grow the destination as required */
pa = a->used + b->used;
if (c->alloc < pa) {

View File

@ -1,5 +1,5 @@
--- netsurf-3.8/utils/split-messages.pl.orig 1969-12-31 18:00:00.000000000 -0600
+++ netsurf-3.8/utils/split-messages.pl 2018-08-30 00:18:58.158367530 -0500
--- netsurf-3.11/tools/split-messages.pl.orig
+++ netsurf-3.11/tools/split-messages.pl
@@ -238,7 +238,7 @@
if( $opt{gzip} )

View File

@ -0,0 +1,120 @@
From 914aed3e04f71453fbdc30f4287e13ca3ce63a36 Mon Sep 17 00:00:00 2001
From: Tomas Volf <~@wolfsden.cz>
Date: Wed, 14 Feb 2024 20:02:03 +0100
Subject: [PATCH] Modify search for binaries to fit Guix model
Podman basically looked into the $PATH and into its libexec. That does not fit
Guix's model very well, to an additional option to specify additional
directories during compilation was added.
* pkg/rootless/rootless_linux.go
(tryMappingTool): Also check /run/setuid-programs.
* vendor/github.com/containers/common/pkg/config/config.go
(extraGuixDir): New function.
(FindHelperBinary): Use it.
* vendor/github.com/containers/storage/pkg/unshare/unshare_linux.go
(guixLookupSetuidPath): New function.
(Start): Use it.
---
pkg/rootless/rootless_linux.go | 3 +++
.../containers/common/pkg/config/config.go | 23 +++++++++++++++++++
.../storage/pkg/unshare/unshare_linux.go | 14 +++++++++--
3 files changed, 38 insertions(+), 2 deletions(-)
diff --git a/pkg/rootless/rootless_linux.go b/pkg/rootless/rootless_linux.go
index d303c8b..0191d90 100644
--- a/pkg/rootless/rootless_linux.go
+++ b/pkg/rootless/rootless_linux.go
@@ -102,6 +102,9 @@ func tryMappingTool(uid bool, pid int, hostID int, mappings []idtools.IDMap) err
idtype = "setgid"
}
path, err := exec.LookPath(tool)
+ if err != nil {
+ path, err = exec.LookPath("/run/setuid-programs/" + tool)
+ }
if err != nil {
return fmt.Errorf("command required for rootless mode with multiple IDs: %w", err)
}
diff --git a/vendor/github.com/containers/common/pkg/config/config.go b/vendor/github.com/containers/common/pkg/config/config.go
index 75b917f..ed2f131 100644
--- a/vendor/github.com/containers/common/pkg/config/config.go
+++ b/vendor/github.com/containers/common/pkg/config/config.go
@@ -1102,6 +1102,24 @@ func findBindir() string {
return bindirCached
}
+func extraGuixDir(bin_name string) string {
+ if (bin_name == "slirp4netns") {
+ return "@SLIRP4NETNS_DIR@";
+ } else if (bin_name == "pasta") {
+ return "@PASST_DIR@";
+ } else if (strings.HasPrefix(bin_name, "qemu-")) {
+ return "@QEMU_DIR@";
+ } else if (bin_name == "gvproxy") {
+ return "@GVPROXY_DIR@";
+ } else if (bin_name == "netavark") {
+ return "@NETAVARK_DIR@";
+ } else if (bin_name == "aardvark-dns") {
+ return "@AARDVARK_DNS_DIR@";
+ } else {
+ return "";
+ }
+}
+
// FindHelperBinary will search the given binary name in the configured directories.
// If searchPATH is set to true it will also search in $PATH.
func (c *Config) FindHelperBinary(name string, searchPATH bool) (string, error) {
@@ -1109,6 +1127,11 @@ func (c *Config) FindHelperBinary(name string, searchPATH bool) (string, error)
bindirPath := ""
bindirSearched := false
+ if dir := extraGuixDir(name); dir != "" {
+ /* If there is a Guix dir, skip the PATH search. */
+ dirList = append([]string{dir}, dirList...)
+ }
+
// If set, search this directory first. This is used in testing.
if dir, found := os.LookupEnv("CONTAINERS_HELPER_BINARY_DIR"); found {
dirList = append([]string{dir}, dirList...)
diff --git a/vendor/github.com/containers/storage/pkg/unshare/unshare_linux.go b/vendor/github.com/containers/storage/pkg/unshare/unshare_linux.go
index a8dc1ba..0b0d755 100644
--- a/vendor/github.com/containers/storage/pkg/unshare/unshare_linux.go
+++ b/vendor/github.com/containers/storage/pkg/unshare/unshare_linux.go
@@ -26,6 +26,16 @@ import (
"github.com/syndtr/gocapability/capability"
)
+func guixLookupSetuidPath(prog string) (string, error) {
+ path, err := exec.LookPath(prog)
+ if err != nil {
+ path, err = exec.LookPath("/run/setuid-programs/" + prog)
+ }
+ return path, err
+}
+
+
+
// Cmd wraps an exec.Cmd created by the reexec package in unshare(), and
// handles setting ID maps and other related settings by triggering
// initialization code in the child.
@@ -237,7 +247,7 @@ func (c *Cmd) Start() error {
gidmapSet := false
// Set the GID map.
if c.UseNewgidmap {
- path, err := exec.LookPath("newgidmap")
+ path, err := guixLookupSetuidPath("newgidmap")
if err != nil {
return fmt.Errorf("finding newgidmap: %w", err)
}
@@ -297,7 +307,7 @@ func (c *Cmd) Start() error {
uidmapSet := false
// Set the UID map.
if c.UseNewuidmap {
- path, err := exec.LookPath("newuidmap")
+ path, err := guixLookupSetuidPath("newuidmap")
if err != nil {
return fmt.Errorf("finding newuidmap: %w", err)
}
--
2.41.0

View File

@ -0,0 +1,334 @@
From f0698133e7d6c353a3e6ae0fc62e57ba558a9bc0 Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Date: Wed, 28 Oct 2020 22:55:05 -0400
Subject: [PATCH] Skip problematic Python 3 tests in Guix.
A subset of the hunks in this patch is tracked upstream at
https://bugs.python.org/issue38845, which was contributed by Tanguy Le
Carrour <tanguy@bioneland.org>.
diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py
index e42c7ab4bd..8087c84dab 100644
--- a/Lib/test/_test_multiprocessing.py
+++ b/Lib/test/_test_multiprocessing.py
@@ -1695,6 +1695,7 @@ def _test_wait_result(cls, c, pid):
if pid is not None:
os.kill(pid, signal.SIGINT)
+ @unittest.skipIf(True, "This fails for unknown reasons on Guix")
def test_wait_result(self):
if isinstance(self, ProcessesMixin) and sys.platform != 'win32':
pid = os.getpid()
@@ -4150,6 +4151,7 @@ def test_shared_memory_across_processes(self):
sms.close()
@unittest.skipIf(os.name != "posix", "not feasible in non-posix platforms")
+ @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
def test_shared_memory_SharedMemoryServer_ignores_sigint(self):
# bpo-36368: protect SharedMemoryManager server process from
# KeyboardInterrupt signals.
diff --git a/Lib/test/test_asyncio/test_base_events.py b/Lib/test/test_asyncio/test_base_events.py
index 85c8152d49..e35cfffe84 100644
--- a/Lib/test/test_asyncio/test_base_events.py
+++ b/Lib/test/test_asyncio/test_base_events.py
@@ -1377,6 +1377,8 @@ def test_create_connection_no_inet_pton(self, m_socket):
self._test_create_connection_ip_addr(m_socket, False)
@patch_socket
+ @unittest.skipUnless(support.is_resource_enabled('network'),
+ 'network is not enabled')
def test_create_connection_service_name(self, m_socket):
m_socket.getaddrinfo = socket.getaddrinfo
sock = m_socket.socket.return_value
diff --git a/Lib/test/test_ctypes/test_find.py b/Lib/test/test_ctypes/test_find.py
index a41e94971d..1291af3057 100644
--- a/Lib/test/test_ctypes/test_find.py
+++ b/Lib/test/test_ctypes/test_find.py
@@ -117,6 +117,7 @@ def test_find_library_with_gcc(self):
with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None):
self.assertNotEqual(find_library('c'), None)
+ @unittest.skipIf(True, 'Fails on Guix.')
def test_find_library_with_ld(self):
with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None), \
unittest.mock.patch("ctypes.util._findLib_gcc", lambda *args: None):
diff --git a/Lib/test/test_generators.py b/Lib/test/test_generators.py
index 1ee9958445..ab6b41befe 100644
--- a/Lib/test/test_generators.py
+++ b/Lib/test/test_generators.py
@@ -34,6 +34,7 @@ def generator2(self):
else:
return "FAILED"
+ @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment')
def test_raise_and_yield_from(self):
gen = self.generator1()
gen.send(None)
diff --git a/Lib/test/test_pathlib.py b/Lib/test/test_pathlib.py
index ec105ae1a0..ae4c5b672e 100644
--- a/Lib/test/test_pathlib.py
+++ b/Lib/test/test_pathlib.py
@@ -3069,6 +3069,7 @@ def test_rglob(self):
'pwd module does not expose getpwall()')
@unittest.skipIf(sys.platform == "vxworks",
"no home directory on VxWorks")
+ @unittest.skipIf(True, "Guix builder home is '/' which causes trouble for these tests")
def test_expanduser(self):
P = self.cls
import_helper.import_module('pwd')
diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
index 51b844262e..004d3133cf 100644
--- a/Lib/test/test_pdb.py
+++ b/Lib/test/test_pdb.py
@@ -1580,6 +1580,7 @@ def test_pdb_next_command_subiterator():
(Pdb) continue
"""
+@unittest.skipIf(True, 'Fails on Guix… but skipIf not taken into account?!')
def test_pdb_issue_20766():
"""Test for reference leaks when the SIGINT handler is set.
@@ -1598,11 +1599,11 @@ def test_pdb_issue_20766():
> <doctest test.test_pdb.test_pdb_issue_20766[0]>(6)test_function()
-> print('pdb %d: %s' % (i, sess._previous_sigint_handler))
(Pdb) continue
- pdb 1: <built-in function default_int_handler>
+ pdb 1: 1
> <doctest test.test_pdb.test_pdb_issue_20766[0]>(6)test_function()
-> print('pdb %d: %s' % (i, sess._previous_sigint_handler))
(Pdb) continue
- pdb 2: <built-in function default_int_handler>
+ pdb 2: 1
"""
def test_pdb_issue_43318():
diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py
index 2ab6f6a986..8cf6b4d1c8 100644
--- a/Lib/test/test_regrtest.py
+++ b/Lib/test/test_regrtest.py
@@ -1049,6 +1049,7 @@ def test_fromfile(self):
output = self.run_tests('--fromfile', filename)
self.check_executed_tests(output, tests, stats=stats)
+ @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment.')
def test_interrupted(self):
code = TEST_INTERRUPTED
test = self.create_test('sigint', code=code)
@@ -1066,6 +1067,7 @@ def test_slowest(self):
% (self.TESTNAME_REGEX, len(tests)))
self.check_line(output, regex)
+ @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment.')
def test_slowest_interrupted(self):
# Issue #25373: test --slowest with an interrupted test
code = TEST_INTERRUPTED
diff --git a/Lib/test/test_resource.py b/Lib/test/test_resource.py
index 317e7ca8f8..7f272daf24 100644
--- a/Lib/test/test_resource.py
+++ b/Lib/test/test_resource.py
@@ -151,6 +151,7 @@ def test_freebsd_contants(self):
@unittest.skipUnless(hasattr(resource, 'prlimit'), 'no prlimit')
@support.requires_linux_version(2, 6, 36)
+ @unittest.skipIf(True, "Bug: the PermissionError is not raised")
def test_prlimit(self):
self.assertRaises(TypeError, resource.prlimit)
self.assertRaises(ProcessLookupError, resource.prlimit,
diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py
index bf60f37934..5e3a96380a 100644
--- a/Lib/test/test_shutil.py
+++ b/Lib/test/test_shutil.py
@@ -1743,6 +1743,7 @@ def test_make_archive(self):
base_name = os.path.join(tmpdir, 'archive')
self.assertRaises(ValueError, make_archive, base_name, 'xxx')
+ @unittest.skipIf(True, "The Guix build container has no root user")
@support.requires_zlib()
def test_make_archive_owner_group(self):
# testing make_archive with owner and group, with various combinations
@@ -1771,6 +1772,7 @@ def test_make_archive_owner_group(self):
self.assertTrue(os.path.isfile(res))
+ @unittest.skipIf(True, "The Guix build container has no root user")
@support.requires_zlib()
@unittest.skipUnless(UID_GID_SUPPORT, "Requires grp and pwd support")
def test_tarfile_root_owner(self):
diff --git a/Lib/test/test_signal.py b/Lib/test/test_signal.py
index 637a0ca3b3..2fb804e340 100644
--- a/Lib/test/test_signal.py
+++ b/Lib/test/test_signal.py
@@ -160,6 +160,7 @@ def test_valid_signals(self):
self.assertLess(signum, signal.NSIG)
@unittest.skipUnless(sys.executable, "sys.executable required.")
+ @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
@support.requires_subprocess()
def test_keyboard_interrupt_exit_code(self):
"""KeyboardInterrupt triggers exit via SIGINT."""
@@ -211,6 +212,7 @@ def test_issue9324(self):
signal.signal(7, handler)
@unittest.skipUnless(sys.executable, "sys.executable required.")
+ @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
@support.requires_subprocess()
def test_keyboard_interrupt_exit_code(self):
"""KeyboardInterrupt triggers an exit using STATUS_CONTROL_C_EXIT."""
@@ -1407,6 +1409,7 @@ def cycle_handlers():
class RaiseSignalTest(unittest.TestCase):
+ @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
def test_sigint(self):
with self.assertRaises(KeyboardInterrupt):
signal.raise_signal(signal.SIGINT)
@@ -1452,6 +1455,7 @@ def __del__(self):
class PidfdSignalTest(unittest.TestCase):
+ @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
@unittest.skipUnless(
hasattr(signal, "pidfd_send_signal"),
"pidfd support not built in",
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index 4eb5af99d6..9c7b8f6dbc 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -1016,6 +1016,8 @@ def testHostnameRes(self):
if not fqhn in all_host_names:
self.fail("Error testing host resolution mechanisms. (fqdn: %s, all: %s)" % (fqhn, repr(all_host_names)))
+ @unittest.skipUnless(support.is_resource_enabled('network'),
+ 'network is not enabled')
def test_host_resolution(self):
for addr in [socket_helper.HOSTv4, '10.0.0.1', '255.255.255.255']:
self.assertEqual(socket.gethostbyname(addr), addr)
@@ -1161,6 +1163,8 @@ def testNtoHErrors(self):
self.assertRaises(OverflowError, socket.ntohl, k)
self.assertRaises(OverflowError, socket.htonl, k)
+ @unittest.skipUnless(os.path.exists("/etc/services"),
+ "getservbyname uses /etc/services, which is not in the chroot")
def testGetServBy(self):
eq = self.assertEqual
# Find one service that exists, then check all the related interfaces.
@@ -1521,6 +1525,8 @@ def test_sio_loopback_fast_path(self):
raise
self.assertRaises(TypeError, s.ioctl, socket.SIO_LOOPBACK_FAST_PATH, None)
+ @unittest.skipUnless(os.path.exists("/etc/gai.conf"),
+ "getaddrinfo() will fail")
def testGetaddrinfo(self):
try:
socket.getaddrinfo('localhost', 80)
@@ -1653,6 +1659,8 @@ def test_getnameinfo(self):
# only IP addresses are allowed
self.assertRaises(OSError, socket.getnameinfo, ('mail.python.org',0), 0)
+ @unittest.skipUnless(os.path.exists("/etc/gai.conf"),
+ "getaddrinfo() will fail")
@unittest.skipUnless(support.is_resource_enabled('network'),
'network is not enabled')
def test_idna(self):
diff --git a/Lib/test/test_spwd.py b/Lib/test/test_spwd.py
index 50766c2548..0c7eb7a83a 100644
--- a/Lib/test/test_spwd.py
+++ b/Lib/test/test_spwd.py
@@ -9,8 +9,7 @@
spwd = import_helper.import_module('spwd')
-@unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() == 0,
- 'root privileges required')
+@unittest.skipUnless(os.path.exists("/etc/shadow"), 'spwd tests require /etc/shadow')
class TestSpwdRoot(unittest.TestCase):
def test_getspall(self):
@@ -60,8 +59,7 @@ def test_getspnam(self):
self.assertRaises(TypeError, spwd.getspnam, bytes_name)
-@unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() != 0,
- 'non-root user required')
+@unittest.skipUnless(os.path.exists("/etc/shadow"), 'spwd tests require /etc/shadow')
class TestSpwdNonRoot(unittest.TestCase):
def test_getspnam_exception(self):
diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
index 71489ea493..33351919fe 100644
--- a/Lib/test/test_tarfile.py
+++ b/Lib/test/test_tarfile.py
@@ -2911,9 +2911,12 @@ def root_is_uid_gid_0():
import pwd, grp
except ImportError:
return False
- if pwd.getpwuid(0)[0] != 'root':
- return False
- if grp.getgrgid(0)[0] != 'root':
+ try:
+ if pwd.getpwuid(0)[0] != 'root':
+ return False
+ if grp.getgrgid(0)[0] != 'root':
+ return False
+ except KeyError:
return False
return True
diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py
index 00d9e591c7..2515603715 100644
--- a/Lib/test/test_threading.py
+++ b/Lib/test/test_threading.py
@@ -1962,6 +1962,7 @@ def check_interrupt_main_noerror(self, signum):
# Restore original handler
signal.signal(signum, handler)
+ @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build container.')
def test_interrupt_main_subthread(self):
# Calling start_new_thread with a function that executes interrupt_main
# should raise KeyboardInterrupt upon completion.
@@ -1973,6 +1974,8 @@ def call_interrupt():
t.join()
t.join()
+
+ @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build container.')
def test_interrupt_main_mainthread(self):
# Make sure that if interrupt_main is called in main thread that
# KeyboardInterrupt is raised instantly.
diff --git a/Lib/test/test_tools/test_freeze.py b/Lib/test/test_tools/test_freeze.py
index 0e7ed67de7..6539a2983b 100644
--- a/Lib/test/test_tools/test_freeze.py
+++ b/Lib/test/test_tools/test_freeze.py
@@ -23,6 +23,7 @@
'test is too slow with PGO')
class TestFreeze(unittest.TestCase):
+ @unittest.skipIf(True, 'Fails on Guix.')
@support.requires_resource('cpu') # Building Python is slow
def test_freeze_simple_script(self):
script = textwrap.dedent("""
diff --git a/Lib/test/test_unicodedata.py b/Lib/test/test_unicodedata.py
index 515c3840cb..a96dfad0fe 100644
--- a/Lib/test/test_unicodedata.py
+++ b/Lib/test/test_unicodedata.py
@@ -342,6 +342,7 @@ def test_linebreak_7643(self):
self.assertEqual(len(lines), 1,
r"\u%.4x should not be a linebreak" % i)
+@requires_resource('network')
class NormalizationTest(unittest.TestCase):
@staticmethod
def check_version(testfile):
diff --git a/Tools/scripts/run_tests.py b/Tools/scripts/run_tests.py
index 445a34ae3e..8f750537c3 100644
--- a/Tools/scripts/run_tests.py
+++ b/Tools/scripts/run_tests.py
@@ -69,7 +69,7 @@ def main(regrtest_args):
else:
args.extend(['-j', '0']) # Use all CPU cores
if not any(is_resource_use_flag(arg) for arg in regrtest_args):
- args.extend(['-u', 'all,-largefile,-audio,-gui'])
+ args.extend(['-u', 'all,-largefile,-audio,-gui,-network'])
if cross_compile and hostrunner:
# If HOSTRUNNER is set and -p/--python option is not given, then

View File

@ -1,52 +0,0 @@
From f19410ac3b27e33dd62105746784e61e85b90a1d Mon Sep 17 00:00:00 2001
From: Jean Ghali <jghali@libertysurf.fr>
Date: Wed, 2 Mar 2022 22:22:53 +0000
Subject: [PATCH] #16764: Build break with poppler 22.03.0
git-svn-id: svn://scribus.net/trunk/Scribus@24982 11d20701-8431-0410-a711-e3c959e3b870
---
scribus/plugins/import/pdf/importpdf.cpp | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/scribus/plugins/import/pdf/importpdf.cpp b/scribus/plugins/import/pdf/importpdf.cpp
index 154e58a3f0..392dcd9e64 100644
--- a/scribus/plugins/import/pdf/importpdf.cpp
+++ b/scribus/plugins/import/pdf/importpdf.cpp
@@ -89,7 +89,11 @@ QImage PdfPlug::readThumbnail(const QString& fName)
#endif
globalParams->setErrQuiet(gTrue);
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 3, 0)
+ PDFDoc pdfDoc{ std::make_unique<GooString>(fname) };
+#else
PDFDoc pdfDoc{fname, nullptr, nullptr, nullptr};
+#endif
if (!pdfDoc.isOk() || pdfDoc.getErrorCode() == errEncrypted)
return QImage();
@@ -342,7 +346,11 @@ bool PdfPlug::convert(const QString& fn)
globalParams->setErrQuiet(gTrue);
// globalParams->setPrintCommands(gTrue);
QList<OptionalContentGroup*> ocgGroups;
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 3, 0)
+ auto pdfDoc = std::make_unique<PDFDoc>(std::make_unique<GooString>(fname));
+#else
auto pdfDoc = std::unique_ptr<PDFDoc>(new PDFDoc(fname, nullptr, nullptr, nullptr));
+#endif
if (pdfDoc)
{
if (pdfDoc->getErrorCode() == errEncrypted)
@@ -361,8 +369,13 @@ bool PdfPlug::convert(const QString& fn)
#else
auto fname = new GooString(QFile::encodeName(fn).data());
#endif
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 3, 0)
+ std::optional<GooString> userPW(std::in_place, text.toLocal8Bit().data());
+ pdfDoc.reset(new PDFDoc(std::make_unique<GooString>(fname), userPW, userPW, nullptr));
+#else
auto userPW = new GooString(text.toLocal8Bit().data());
pdfDoc.reset(new PDFDoc(fname, userPW, userPW, nullptr));
+#endif
qApp->changeOverrideCursor(QCursor(Qt::WaitCursor));
}
if ((!pdfDoc) || (pdfDoc->getErrorCode() != errNone))

View File

@ -1,291 +0,0 @@
https://bugs.gentoo.org/843287
https://github.com/scribusproject/scribus/commit/f2237b8f0b5cf7690e864a22ef7a63a6d769fa36.patch
From f2237b8f0b5cf7690e864a22ef7a63a6d769fa36 Mon Sep 17 00:00:00 2001
From: Jean Ghali <jghali@libertysurf.fr>
Date: Fri, 1 Apr 2022 23:52:32 +0000
Subject: [PATCH] Fix build with poppler 22.04.0
git-svn-id: svn://scribus.net/trunk/Scribus@25074 11d20701-8431-0410-a711-e3c959e3b870
---
scribus/plugins/import/pdf/slaoutput.cpp | 123 ++++++++++++++---------
1 file changed, 78 insertions(+), 45 deletions(-)
diff --git a/scribus/plugins/import/pdf/slaoutput.cpp b/scribus/plugins/import/pdf/slaoutput.cpp
index e20a81f99e..5626fe3477 100644
--- a/scribus/plugins/import/pdf/slaoutput.cpp
+++ b/scribus/plugins/import/pdf/slaoutput.cpp
@@ -174,8 +174,13 @@ void AnoOutputDev::drawString(GfxState *state, POPPLER_CONST GooString *s)
int shade = 100;
currColorText = getColor(state->getFillColorSpace(), state->getFillColor(), &shade);
fontSize = state->getFontSize();
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
+ if (state->getFont() && state->getFont()->getName())
+ fontName = new GooString(state->getFont()->getName().value());
+#else
if (state->getFont())
fontName = state->getFont()->getName()->copy();
+#endif
itemText = s->copy();
}
@@ -357,7 +362,12 @@ std::unique_ptr<LinkAction> SlaOutputDev::SC_getAdditionalAction(const char *key
GBool SlaOutputDev::annotations_callback(Annot *annota, void *user_data)
{
SlaOutputDev *dev = (SlaOutputDev*)user_data;
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
+ const PDFRectangle& annotRect = annota->getRect();;
+ const PDFRectangle* box = &annotRect;
+#else
PDFRectangle *box = annota->getRect();
+#endif
double xCoor = dev->m_doc->currentPage()->xOffset() + box->x1 - dev->cropOffsetX;
double yCoor = dev->m_doc->currentPage()->yOffset() + dev->m_doc->currentPage()->height() - box->y2 + dev->cropOffsetY;
double width = box->x2 - box->x1;
@@ -684,7 +694,12 @@ bool SlaOutputDev::handleWidgetAnnot(Annot* annota, double xCoor, double yCoor,
if (apa || !achar)
{
AnoOutputDev *annotOutDev = new AnoOutputDev(m_doc, m_importedColors);
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
+ const PDFRectangle& annotaRect = annota->getRect();
+ Gfx* gfx = new Gfx(pdfDoc, annotOutDev, pdfDoc->getPage(m_actPage)->getResourceDict(), &annotaRect, nullptr);
+#else
Gfx *gfx = new Gfx(pdfDoc, annotOutDev, pdfDoc->getPage(m_actPage)->getResourceDict(), annota->getRect(), nullptr);
+#endif
ano->draw(gfx, false);
if (!bgFound)
m_currColorFill = annotOutDev->currColorFill;
@@ -2916,22 +2931,27 @@ void SlaOutputDev::markPoint(POPPLER_CONST char *name, Dict *properties)
void SlaOutputDev::updateFont(GfxState *state)
{
- GfxFont *gfxFont;
-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
+ std::optional<GfxFontLoc> fontLoc;
+ std::string fileName;
+ std::unique_ptr<FoFiTrueType> ff;
+ std::optional<std::vector<unsigned char>> tmpBuf;
+#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
std::optional<GfxFontLoc> fontLoc;
const GooString * fileName = nullptr;
std::unique_ptr<FoFiTrueType> ff;
+ char* tmpBuf = nullptr;
#else
GfxFontLoc * fontLoc = nullptr;
GooString * fileName = nullptr;
FoFiTrueType * ff = nullptr;
+ char* tmpBuf = nullptr;
#endif
GfxFontType fontType;
SlaOutFontFileID *id;
SplashFontFile *fontFile;
SplashFontSrc *fontsrc = nullptr;
Object refObj, strObj;
- char *tmpBuf = nullptr;
int tmpBufLen = 0;
int *codeToGID = nullptr;
const double *textMat = nullptr;
@@ -2943,7 +2963,11 @@ void SlaOutputDev::updateFont(GfxState *state)
m_font = nullptr;
- gfxFont = state->getFont();
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
+ GfxFont* gfxFont = state->getFont().get();
+#else
+ GfxFont* gfxFont = state->getFont();
+#endif
if (!gfxFont)
goto err1;
@@ -2968,15 +2992,23 @@ void SlaOutputDev::updateFont(GfxState *state)
if (fontLoc->locType == gfxFontLocEmbedded)
{
// if there is an embedded font, read it to memory
- tmpBuf = gfxFont->readEmbFontFile(xref, &tmpBufLen);
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
+ tmpBuf = gfxFont->readEmbFontFile((xref) ? xref : pdfDoc->getXRef());
if (! tmpBuf)
goto err2;
+#else
+ tmpBuf = gfxFont->readEmbFontFile(xref, &tmpBufLen);
+ if (!tmpBuf)
+ goto err2;
+#endif
// external font
}
else
{ // gfxFontLocExternal
-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
+ fileName = fontLoc->path;
+#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
fileName = fontLoc->pathAsGooString();
#else
fileName = fontLoc->path;
@@ -2985,52 +3017,54 @@ void SlaOutputDev::updateFont(GfxState *state)
}
fontsrc = new SplashFontSrc;
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
+ if (!fileName.empty())
+ fontsrc->setFile(fileName);
+ else
+ fontsrc->setBuf(std::move(tmpBuf.value()));
+#else
if (fileName)
fontsrc->setFile(fileName, gFalse);
else
fontsrc->setBuf(tmpBuf, tmpBufLen, gTrue);
+#endif
// load the font file
switch (fontType) {
case fontType1:
- if (!(fontFile = m_fontEngine->loadType1Font(
- id,
- fontsrc,
- (const char **)((Gfx8BitFont *) gfxFont)->getEncoding())))
+ if (!(fontFile = m_fontEngine->loadType1Font(id, fontsrc, (const char **)((Gfx8BitFont *) gfxFont)->getEncoding())))
{
- error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
- gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
+ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
goto err2;
}
break;
case fontType1C:
- if (!(fontFile = m_fontEngine->loadType1CFont(
- id,
- fontsrc,
- (const char **)((Gfx8BitFont *) gfxFont)->getEncoding())))
+ if (!(fontFile = m_fontEngine->loadType1CFont(id, fontsrc, (const char **)((Gfx8BitFont *) gfxFont)->getEncoding())))
{
- error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
- gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
+ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
goto err2;
}
break;
case fontType1COT:
- if (!(fontFile = m_fontEngine->loadOpenTypeT1CFont(
- id,
- fontsrc,
- (const char **)((Gfx8BitFont *) gfxFont)->getEncoding())))
+ if (!(fontFile = m_fontEngine->loadOpenTypeT1CFont(id, fontsrc, (const char **)((Gfx8BitFont *) gfxFont)->getEncoding())))
{
- error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
- gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
+ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
goto err2;
}
break;
case fontTrueType:
case fontTrueTypeOT:
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
+ if (!fileName.empty())
+ ff = FoFiTrueType::load(fileName.c_str());
+ else
+ ff = FoFiTrueType::make(fontsrc->buf.data(), fontsrc->buf.size());
+#else
if (fileName)
ff = FoFiTrueType::load(fileName->getCString());
else
ff = FoFiTrueType::make(tmpBuf, tmpBufLen);
+#endif
if (ff)
{
#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
@@ -3047,24 +3081,17 @@ void SlaOutputDev::updateFont(GfxState *state)
codeToGID = nullptr;
n = 0;
}
- if (!(fontFile = m_fontEngine->loadTrueTypeFont(
- id,
- fontsrc,
- codeToGID, n)))
+ if (!(fontFile = m_fontEngine->loadTrueTypeFont(id, fontsrc, codeToGID, n)))
{
- error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
- gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
+ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
goto err2;
}
break;
case fontCIDType0:
case fontCIDType0C:
- if (!(fontFile = m_fontEngine->loadCIDFont(
- id,
- fontsrc)))
+ if (!(fontFile = m_fontEngine->loadCIDFont(id, fontsrc)))
{
- error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
- gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
+ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
goto err2;
}
break;
@@ -3080,10 +3107,7 @@ void SlaOutputDev::updateFont(GfxState *state)
codeToGID = nullptr;
n = 0;
}
- if (!(fontFile = m_fontEngine->loadOpenTypeCFFFont(
- id,
- fontsrc,
- codeToGID, n)))
+ if (!(fontFile = m_fontEngine->loadOpenTypeCFFFont(id, fontsrc, codeToGID, n)))
{
error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
@@ -3105,10 +3129,17 @@ void SlaOutputDev::updateFont(GfxState *state)
}
else
{
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
+ if (!fileName.empty())
+ ff = FoFiTrueType::load(fileName.c_str());
+ else
+ ff = FoFiTrueType::make(fontsrc->buf.data(), fontsrc->buf.size());
+#else
if (fileName)
ff = FoFiTrueType::load(fileName->getCString());
else
ff = FoFiTrueType::make(tmpBuf, tmpBufLen);
+#endif
if (! ff)
goto err2;
#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
@@ -3119,13 +3150,9 @@ void SlaOutputDev::updateFont(GfxState *state)
delete ff;
#endif
}
- if (!(fontFile = m_fontEngine->loadTrueTypeFont(
- id,
- fontsrc,
- codeToGID, n, faceIndex)))
+ if (!(fontFile = m_fontEngine->loadTrueTypeFont(id, fontsrc, codeToGID, n, faceIndex)))
{
- error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
- gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
+ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
goto err2;
}
break;
@@ -3269,9 +3296,15 @@ void SlaOutputDev::drawChar(GfxState* state, double x, double y, double dx, doub
GBool SlaOutputDev::beginType3Char(GfxState *state, double x, double y, double dx, double dy, CharCode code, POPPLER_CONST_082 Unicode *u, int uLen)
{
// qDebug() << "beginType3Char";
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0)
GfxFont *gfxFont;
+ if (!(gfxFont = state->getFont().get()))
+ return gTrue;
+#else
+ GfxFont* gfxFont;
if (!(gfxFont = state->getFont()))
return gTrue;
+#endif
if (gfxFont->getType() != fontType3)
return gTrue;
F3Entry f3e;

View File

@ -1,20 +0,0 @@
--- a/scribus/plugins/import/pdf/slaoutput.cpp
+++ b/scribus/plugins/import/pdf/slaoutput.cpp
@@ -3741,9 +3741,16 @@ void SlaOutputDev::getPenState(GfxState *state)
break;
}
double lw = state->getLineWidth();
- double *dashPattern;
int dashLength;
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 9, 0)
+ const double *dashPattern;
+ const std::vector<double> &dash = state->getLineDash(&DashOffset);
+ dashPattern = dash.data();
+ dashLength = dash.size();
+#else
+ double *dashPattern;
state->getLineDash(&dashPattern, &dashLength, &DashOffset);
+#endif
QVector<double> pattern(dashLength);
for (int i = 0; i < dashLength; ++i)
{

View File

@ -1,129 +0,0 @@
From 85c0dff3422fa3c26fbc2e8d8561f597ec24bd92 Mon Sep 17 00:00:00 2001
From: Jean Ghali <jghali@libertysurf.fr>
Date: Wed, 2 Feb 2022 23:12:52 +0000
Subject: [PATCH] #16734: Build break with poppler 22.2.0
git-svn-id: svn://scribus.net/trunk/Scribus@24884 11d20701-8431-0410-a711-e3c959e3b870
---
scribus/plugins/import/pdf/slaoutput.cpp | 47 +++++++++++++++++++-----
1 file changed, 37 insertions(+), 10 deletions(-)
diff --git a/scribus/plugins/import/pdf/slaoutput.cpp b/scribus/plugins/import/pdf/slaoutput.cpp
index 5894bf2ad6..3650c96f52 100644
--- a/scribus/plugins/import/pdf/slaoutput.cpp
+++ b/scribus/plugins/import/pdf/slaoutput.cpp
@@ -7,6 +7,11 @@ for which a new license (GPL+exception) is in place.
#include "slaoutput.h"
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
+#include <memory>
+#include <optional>
+#endif
+
#include <poppler/GlobalParams.h>
#include <poppler/poppler-config.h>
#include <poppler/FileSpec.h>
@@ -3027,18 +3032,24 @@ void SlaOutputDev::markPoint(POPPLER_CONST char *name, Dict *properties)
void SlaOutputDev::updateFont(GfxState *state)
{
GfxFont *gfxFont;
- GfxFontLoc *fontLoc;
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
+ std::optional<GfxFontLoc> fontLoc;
+ const GooString * fileName = nullptr;
+ std::unique_ptr<FoFiTrueType> ff;
+#else
+ GfxFontLoc * fontLoc = nullptr;
+ GooString * fileName = nullptr;
+ FoFiTrueType * ff = nullptr;
+#endif
GfxFontType fontType;
SlaOutFontFileID *id;
SplashFontFile *fontFile;
SplashFontSrc *fontsrc = nullptr;
- FoFiTrueType *ff;
Object refObj, strObj;
- GooString *fileName;
- char *tmpBuf;
+ char *tmpBuf = nullptr;
int tmpBufLen = 0;
- int *codeToGID;
- const double *textMat;
+ int *codeToGID = nullptr;
+ const double *textMat = nullptr;
double m11, m12, m21, m22, fontSize;
SplashCoord mat[4];
int n = 0;
@@ -3046,9 +3057,6 @@ void SlaOutputDev::updateFont(GfxState *state)
SplashCoord matrix[6];
m_font = nullptr;
- fileName = nullptr;
- tmpBuf = nullptr;
- fontLoc = nullptr;
gfxFont = state->getFont();
if (!gfxFont)
@@ -3083,7 +3091,11 @@ void SlaOutputDev::updateFont(GfxState *state)
}
else
{ // gfxFontLocExternal
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
+ fileName = fontLoc->pathAsGooString();
+#else
fileName = fontLoc->path;
+#endif
fontType = fontLoc->fontType;
}
@@ -3136,9 +3148,14 @@ void SlaOutputDev::updateFont(GfxState *state)
ff = FoFiTrueType::make(tmpBuf, tmpBufLen);
if (ff)
{
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
+ codeToGID = ((Gfx8BitFont*) gfxFont)->getCodeToGIDMap(ff.get());
+ ff.reset();
+#else
codeToGID = ((Gfx8BitFont *)gfxFont)->getCodeToGIDMap(ff);
- n = 256;
delete ff;
+#endif
+ n = 256;
}
else
{
@@ -3209,8 +3226,13 @@ void SlaOutputDev::updateFont(GfxState *state)
ff = FoFiTrueType::make(tmpBuf, tmpBufLen);
if (! ff)
goto err2;
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
+ codeToGID = ((GfxCIDFont*) gfxFont)->getCodeToGIDMap(ff.get(), &n);
+ ff.reset();
+#else
codeToGID = ((GfxCIDFont *)gfxFont)->getCodeToGIDMap(ff, &n);
delete ff;
+#endif
}
if (!(fontFile = m_fontEngine->loadTrueTypeFont(
id,
@@ -3247,14 +3269,19 @@ void SlaOutputDev::updateFont(GfxState *state)
mat[3] = -m22;
m_font = m_fontEngine->getFont(fontFile, mat, matrix);
+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(22, 2, 0)
delete fontLoc;
+#endif
if (fontsrc && !fontsrc->isFile)
fontsrc->unref();
return;
err2:
delete id;
+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(22, 2, 0)
delete fontLoc;
+#endif
+
err1:
if (fontsrc && !fontsrc->isFile)
fontsrc->unref();

View File

@ -1,28 +0,0 @@
From f75c1613db67f4067643d0218a2db3235e42ec9f Mon Sep 17 00:00:00 2001
From: Jean Ghali <jghali@libertysurf.fr>
Date: Thu, 3 Feb 2022 19:46:13 +0000
Subject: [PATCH] Small update vs latest code in poppler
git-svn-id: svn://scribus.net/trunk/Scribus@24885 11d20701-8431-0410-a711-e3c959e3b870
---
scribus/plugins/import/pdf/slaoutput.cpp | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/scribus/plugins/import/pdf/slaoutput.cpp b/scribus/plugins/import/pdf/slaoutput.cpp
index 3650c96f52..a6f4e00fa9 100644
--- a/scribus/plugins/import/pdf/slaoutput.cpp
+++ b/scribus/plugins/import/pdf/slaoutput.cpp
@@ -3072,10 +3072,10 @@ void SlaOutputDev::updateFont(GfxState *state)
delete id;
else
{
- if (!(fontLoc = gfxFont->locateFont(xref, nullptr)))
+ fontLoc = gfxFont->locateFont((xref) ? xref : pdfDoc->getXRef(), nullptr);
+ if (!fontLoc)
{
- error(errSyntaxError, -1, "Couldn't find a font for '{0:s}'",
- gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
+ error(errSyntaxError, -1, "Couldn't find a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)");
goto err2;
}

View File

@ -0,0 +1,82 @@
Patch fetched from https://git.alpinelinux.org/aports/tree/community/sioyek/mupdf-0.23.0.patch
From 86e913eccf19b97a16f25d9b6cdf0f50232f1226 Mon Sep 17 00:00:00 2001
From: ptrcnull <git@ptrcnull.me>
Date: Fri, 25 Aug 2023 22:44:26 +0200
Subject: community/sioyek: fix build with mupdf-0.23.0
---
diff --git a/pdf_viewer/document_view.cpp b/pdf_viewer/document_view.cpp
index f48d05e..0bc3855 100644
--- a/pdf_viewer/document_view.cpp
+++ b/pdf_viewer/document_view.cpp
@@ -1121,7 +1121,7 @@ std::vector<DocumentPos> DocumentView::find_line_definitions() {
std::optional<PdfLink> pdf_link = current_document->get_link_in_page_rect(get_center_page_number(), line_rects[line_index]);
if (pdf_link.has_value()) {
- auto parsed_uri = parse_uri(mupdf_context, pdf_link.value().uri);
+ auto parsed_uri = parse_uri(mupdf_context, current_document->doc, pdf_link.value().uri);
result.push_back({ parsed_uri.page - 1, parsed_uri.x, parsed_uri.y });
return result;
}
diff --git a/pdf_viewer/main_widget.cpp b/pdf_viewer/main_widget.cpp
index 19b568b..335a93f 100644
--- a/pdf_viewer/main_widget.cpp
+++ b/pdf_viewer/main_widget.cpp
@@ -170,7 +170,7 @@ void MainWidget::set_overview_position(int page, float offset) {
void MainWidget::set_overview_link(PdfLink link) {
- auto [page, offset_x, offset_y] = parse_uri(mupdf_context, link.uri);
+ auto [page, offset_x, offset_y] = parse_uri(mupdf_context, doc()->doc, link.uri);
if (page >= 1) {
set_overview_position(page - 1, offset_y);
}
@@ -3178,7 +3178,7 @@ void MainWidget::handle_pending_text_command(std::wstring text) {
open_web_url(utf8_decode(selected_link->uri));
}
else{
- auto [page, offset_x, offset_y] = parse_uri(mupdf_context, selected_link->uri);
+ auto [page, offset_x, offset_y] = parse_uri(mupdf_context, doc()->doc, selected_link->uri);
long_jump_to_destination(page-1, offset_y);
}
}
@@ -3863,7 +3863,7 @@ void MainWidget::handle_link_click(const PdfLink& link) {
return;
}
- auto [page, offset_x, offset_y] = parse_uri(mupdf_context, link.uri);
+ auto [page, offset_x, offset_y] = parse_uri(mupdf_context, doc()->doc, link.uri);
// convert one indexed page to zero indexed page
page--;
diff --git a/pdf_viewer/utils.cpp b/pdf_viewer/utils.cpp
index 22d4265..3150e66 100644
--- a/pdf_viewer/utils.cpp
+++ b/pdf_viewer/utils.cpp
@@ -116,8 +116,9 @@ bool rects_intersect(fz_rect rect1, fz_rect rect2) {
return range_intersects(rect1.x0, rect1.x1, rect2.x0, rect2.x1) && range_intersects(rect1.y0, rect1.y1, rect2.y0, rect2.y1);
}
-ParsedUri parse_uri(fz_context* mupdf_context, std::string uri) {
- fz_link_dest dest = pdf_parse_link_uri(mupdf_context, uri.c_str());
+ParsedUri parse_uri(fz_context* mupdf_context, fz_document* fz_doc, std::string uri) {
+ pdf_document* doc = pdf_document_from_fz_document(mupdf_context, fz_doc);
+ fz_link_dest dest = pdf_resolve_link_dest(mupdf_context, doc, uri.c_str());
return { dest.loc.page + 1, dest.x, dest.y };
}
diff --git a/pdf_viewer/utils.h b/pdf_viewer/utils.h
index 2a12211..643b030 100644
--- a/pdf_viewer/utils.h
+++ b/pdf_viewer/utils.h
@@ -55,7 +55,7 @@ void get_flat_toc(const std::vector<TocNode*>& roots, std::vector<std::wstring>&
int mod(int a, int b);
bool range_intersects(float range1_start, float range1_end, float range2_start, float range2_end);
bool rects_intersect(fz_rect rect1, fz_rect rect2);
-ParsedUri parse_uri(fz_context* mupdf_context, std::string uri);
+ParsedUri parse_uri(fz_context* mupdf_context, fz_document* fz_doc, std::string uri);
char get_symbol(int key, bool is_shift_pressed, const std::vector<char>&special_symbols);
template<typename T>

View File

@ -301,7 +301,7 @@ GiB).")
(define-public meld
(package
(name "meld")
(version "3.22.0")
(version "3.22.1")
(source
(origin
(method url-fetch)
@ -309,7 +309,7 @@ GiB).")
(version-major+minor version)
"/meld-" version ".tar.xz"))
(sha256
(base32 "03f4j27amyi28flkks8i9bhqzd6xhm6d3c6jzxc57rzniv4hgh9z"))))
(base32 "0dk8j27jlqhxcjrkc8pa3rl7fz7pfwvrbyrhfsx1ld6lvcrbvlvd"))))
(build-system meson-build-system)
(native-inputs
(list desktop-file-utils

View File

@ -25,6 +25,7 @@
;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2023 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2024 dan <i@dan.games>
;;;
;;; This file is part of GNU Guix.
;;;
@ -1710,3 +1711,62 @@ python library.
Keywords: html2pdf, htmltopdf")
(license license:bsd-3)))
(define-public sioyek
(package
(name "sioyek")
(version "2.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ahrm/sioyek")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1vmmp2s032ygh1byz77pg9aljmp8hx745fr7mmz11831f96mlmhq"))
(modules '((guix build utils)))
;; libmupdf-third.so no longer available since mupdf 1.18.0.
(snippet '(substitute* "pdf_viewer_build_config.pro"
(("-lmupdf-third") "")))
;; XXX: Fix build with mupdf-0.23.0+.
;; See also: https://github.com/ahrm/sioyek/issues/804
(patches (search-patches "sioyek-fix-build.patch"))))
(build-system gnu-build-system)
(arguments
(list
#:configure-flags
#~(list (string-append "PREFIX=" #$output))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda _
(substitute* "pdf_viewer/main.cpp"
(("/usr/share")
(string-append #$output "/share"))
(("/etc")
(string-append #$output "/etc")))))
(replace 'configure
(lambda* (#:key configure-flags #:allow-other-keys)
(apply invoke "qmake" configure-flags)))
(add-after 'install 'instal-man-page
(lambda _
(install-file "resources/sioyek.1"
(string-append #$output "/share/man/man1")))))))
(inputs
(list freetype
gumbo-parser
harfbuzz
jbig2dec
libjpeg-turbo
mujs
mupdf
openjpeg
qt3d-5
qtbase-5
zlib))
(home-page "https://sioyek.info/")
(synopsis "PDF viewer with a focus on technical books and research papers")
(description
"Sioyek is a PDF viewer with a focus on textbooks and research papers.")
(license license:gpl3+)))

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -22,27 +23,28 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix build-system perl)
#:use-module (guix build-system rakudo)
#:use-module (gnu packages bdw-gc)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libffi)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages tls))
(define-public moarvm
(package
(name "moarvm")
(version "2019.03")
(version "2022.04")
(source
(origin
(method url-fetch)
(uri (string-append "https://moarvm.org/releases/MoarVM-"
version ".tar.gz"))
(sha256
(base32
"017w1zvr6yl0cgjfc1b3ddlc6vjw9q8p7alw1vvsckw95190xc14"))
(base32 "0128fxqaz7cwjf6amaz2cgd7xl52zvi5fr7bwnj229snll5za1mf"))
(modules '((guix build utils)))
(snippet
'(begin
@ -52,18 +54,24 @@
(delete-file-recursively "3rdparty/libatomicops")
(delete-file-recursively "3rdparty/libuv")
(delete-file-recursively "3rdparty/libtommath")
(delete-file-recursively "3rdparty/msinttypes")
#t))))
(delete-file-recursively "3rdparty/msinttypes")))))
(build-system perl-build-system)
(arguments
'(#:phases
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-build
(lambda _
(substitute* "build/Makefile.in"
(("^ +3rdparty/freebsd/.*") ""))))
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(pkg-config (assoc-ref inputs "pkg-config")))
(setenv "CFLAGS" "-fcommon")
(setenv "LDFLAGS" (string-append "-Wl,-rpath=" out "/lib"))
(setenv "LDFLAGS"
,@(if (target-ppc32?)
`((string-append "-Wl,-rpath=" out "/lib" " -latomic"))
`((string-append "-Wl,-rpath=" out "/lib"))))
(invoke "perl" "Configure.pl"
"--prefix" out
"--pkgconfig" (string-append pkg-config "/bin/pkg-config")
@ -72,11 +80,11 @@
"--has-libffi"
"--has-libuv")))))))
(home-page "https://moarvm.org/")
;; These should be inputs but moar.h can't find them when building rakudo
(propagated-inputs
(list libatomic-ops libffi libtommath-1.0 libuv))
(native-inputs
(list pkg-config))
;; These should be inputs but moar.h can't find them when building Rakudo.
(propagated-inputs
(list libatomic-ops libffi libtommath libuv))
(synopsis "VM for NQP And Rakudo Perl 6")
(description
"Short for \"Metamodel On A Runtime\", MoarVM is a modern virtual machine
@ -96,48 +104,100 @@ with native libraries.
@end itemize")
(license license:artistic2.0)))
(define-public nqp
(define-public nqp-configure
(let ((commit "9b98931e0bfb8c4aac61590edf5074e63aa8ea4b"))
(package
(name "nqp")
(version "2019.03")
(name "nqp-configure")
;; NQP and Rakudo use the same version of nqp-configure.
;; We may as well set nqp-configure's version to the same as theirs.
(version "2022.04")
(source
(origin
(method url-fetch)
(uri (string-append "https://rakudo.perl6.org/downloads/nqp/nqp-"
version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/Raku/nqp-configure")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"183zhll13fx416s3hkg4bkvib77kyr857h0nydgrl643fpacxp83"))
(modules '((guix build utils)))
(snippet
'(begin
(delete-file-recursively "3rdparty") #t))))
(base32 "1vc1q11kjb964jal9dhgf5vwp371a3rfw7gj987n33kzli7a10n0"))))
(build-system perl-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'create-makefile-and-manifest
(lambda _
(call-with-output-file "Makefile.PL"
(lambda (port)
(format port "
use ExtUtils::MakeMaker;
WriteMakefile(NAME => 'NQP::Config');\n")))
(call-with-output-file "MANIFEST"
(lambda (port)
(format port "
LICENSE
MANIFEST
Makefile.PL
README.md
bin/make.nqp
doc/Macros.md
doc/NQP-Config.md
lib/NQP/Config.pm
lib/NQP/Config/Test.pm
lib/NQP/Macros.pm
t/10-config.t
t/20-macros.t
t/30-if-macro.t\n")))))
(add-after 'patch-source-shebangs 'patch-more-shebangs
(lambda _
(substitute* '("tools/build/install-jvm-runner.pl.in"
(substitute* '("bin/make.nqp"
"lib/NQP/Config.pm")
(("/bin/sh") (which "sh"))))))))
(home-page "https://github.com/Raku/nqp-configure")
(synopsis "Configuration and build modules for NQP")
(description "This library provides support modules for NQP and Rakudo
@file{Configure.pl} scripts.")
(license license:artistic2.0))))
(define-public nqp
(package
(name "nqp")
(version "2022.04")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/Raku/nqp/releases/download/"
version "/nqp-" version ".tar.gz"))
(sha256
(base32 "1777shxr8qw6m2492ckb0r301qdx5gls6kphz554dh6k4n74avam"))
(modules '((guix build utils)))
(snippet
'(delete-file-recursively "3rdparty"))))
(build-system perl-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'remove-calls-to-git
(lambda _
(invoke "perl" "-ni" "-e"
"print if not /^BEGIN {/ .. /^}/"
"Configure.pl")))
(add-after 'remove-calls-to-git 'fix-paths
(lambda _
(substitute* "tools/build/gen-version.pl"
(("catfile\\(\\$libdir, 'MAST', \\$_\\)")
(string-append "catfile('"
(assoc-ref %build-inputs "moarvm")
"/share/nqp/lib"
"', 'MAST', $_)")))))
(add-after 'patch-source-shebangs 'patch-more-shebangs
(lambda _
(substitute* '("t/nqp/111-spawnprocasync.t"
"t/nqp/113-run-command.t"
"tools/build/gen-js-cross-runner.pl"
"tools/build/gen-js-runner.pl"
"tools/build/install-js-runner.pl"
"tools/build/install-moar-runner.pl"
"tools/build/gen-moar-runner.pl"
"t/nqp/111-spawnprocasync.t"
"t/nqp/113-run-command.t")
(("/bin/sh") (which "sh")))
#t))
(add-after 'unpack 'patch-source-date
(lambda _
(substitute* "tools/build/gen-version.pl"
(("gmtime") "gmtime(0)"))
#t))
(add-after 'unpack 'remove-failing-test
;; One subtest fails for unknown reasons
(lambda _
(delete-file "t/nqp/019-file-ops.t")
#t))
"tools/build/install-jvm-runner.pl.in")
(("/bin/sh") (which "sh")))))
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
@ -146,69 +206,93 @@ with native libraries.
"--backends=moar"
"--with-moar" (string-append moar "/bin/moar")
"--prefix" out)))))))
(native-inputs
(list nqp-configure))
(inputs
(list moarvm))
(home-page "https://github.com/perl6/nqp")
(home-page "https://github.com/Raku/nqp")
(synopsis "Not Quite Perl")
(description "This is \"Not Quite Perl\" -- a lightweight Perl 6-like
environment for virtual machines. The key feature of NQP is that it's designed
to be a very small environment (as compared with, say, perl6 or Rakudo) and is
focused on being a high-level way to create compilers and libraries for virtual
machines like MoarVM, the JVM, and others.
(description "This is \"Not Quite Perl\" -- a lightweight Raku-like
environment for virtual machines. The key feature of NQP is that it's
designed to be a very small environment (as compared with, say, Rakudo) and is
focused on being a high-level way to create compilers and libraries for
virtual machines like MoarVM, the JVM, and others.
Unlike a full-fledged implementation of Perl 6, NQP strives to have as small a
runtime footprint as it can, while still providing a Perl 6 object model and
Unlike a full-fledged implementation of Raku, NQP strives to have as small a
runtime footprint as it can, while still providing a Raku object model and
regular expression engine for the virtual machine.")
(license license:artistic2.0)))
(define-public rakudo
(package
(name "rakudo")
(version "2019.03.1")
(version "2022.04")
(source
(origin
(method url-fetch)
(uri (string-append "https://rakudo.perl6.org/downloads/rakudo/rakudo-"
version ".tar.gz"))
(uri (string-append "https://github.com/rakudo/rakudo/releases/download/"
version "/rakudo-" version ".tar.gz"))
(sha256
(base32
"1nllf69v8xr6v3kkj7pmryg11n5m3ajfkr7j72pvhrgnjy8lv3r1"))))
(base32 "0x0w5b8g5kna1mlvsli9dqmnwvqalrar3cgpixmyiyvyjb6ah4vy"))
(modules '((guix build utils)))
(snippet
'(delete-file-recursively "3rdparty"))))
(build-system perl-build-system)
(arguments
'(#:phases
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-source-date
(add-after 'unpack 'remove-calls-to-git
(lambda _
(substitute* "tools/build/gen-version.pl"
(("gmtime") "gmtime(0)"))
#t))
(invoke "perl" "-ni" "-e" "print if not /^BEGIN {/ .. /^}/"
"Configure.pl")))
(add-after 'remove-calls-to-git 'fix-paths
(lambda _
(substitute* "tools/templates/Makefile-common-macros.in"
(("NQP_CONFIG_DIR = .*")
(string-append "NQP_CONFIG_DIR = "
(assoc-ref %build-inputs "nqp-configure")
"/lib/perl5/site_perl/"
,(package-version perl)
"\n")))))
;; These tests pass when run manually.
(add-after 'fix-paths 'disable-failing-tests
(lambda _
(substitute* "t/02-rakudo/repl.t"
(("^plan 47;\n") "plan 46;\n"))
(invoke "perl" "-ni" "-e"
"printf if not /^ \\(temp %\\*ENV\\)/ .. /^ }/"
"t/02-rakudo/repl.t")
(substitute* "t/09-moar/01-profilers.t"
(("^plan 12;\n") "plan 10;\n")
(("^ok \\$htmlpath\\.IO\\.f, .*") "")
(("^ok \\(try \\$htmlpath\\.IO\\.s .*") ""))))
(add-after 'patch-source-shebangs 'patch-more-shebangs
(lambda _
(substitute* '("tools/build/create-js-runner.pl"
"tools/build/create-moar-runner.p6"
"tools/build/create-jvm-runner.pl"
"src/core/Proc.pm6")
(("/bin/sh") (which "sh")))
#t))
(substitute* '("src/core.c/Proc.pm6"
"t/spec/S29-os/system.t"
"tools/build/create-js-runner.pl"
"tools/build/create-jvm-runner.pl")
(("/bin/sh") (which "sh")))))
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(nqp (assoc-ref inputs "nqp")))
(invoke "perl" "./Configure.pl"
(invoke "perl" "Configure.pl"
"--backend=moar"
"--with-nqp" (string-append nqp "/bin/nqp")
"--prefix" out))))
;; This is the recommended tool for distro maintainers to install perl6
;; This is the recommended tool for distro maintainers to install Raku
;; modules systemwide. See: https://github.com/ugexe/zef/issues/117
(add-after 'install 'install-dist-tool
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(dest (string-append out "/share/perl6/tools")))
(install-file "tools/install-dist.p6" dest)
(substitute* (string-append dest "/install-dist.p6")
(("/usr/bin/env perl6")
(string-append out "/bin/perl6"))))
#t)))))
(install-file "tools/install-dist.raku" dest)
(substitute* (string-append dest "/install-dist.raku")
(("/usr/bin/env raku")
(string-append out "/bin/raku")))))))))
(native-inputs
(list nqp-configure))
(inputs
(list moarvm nqp openssl))
(home-page "https://rakudo.org/")
@ -219,13 +303,36 @@ regular expression engine for the virtual machine.")
(files '("share/perl6/lib"
"share/perl6/site/lib"
"share/perl6/vendor/lib")))))
(synopsis "Perl 6 Compiler")
(description "Rakudo Perl is a compiler that implements the Perl 6
specification and runs on top of several virtual machines.")
(synopsis "Raku Compiler")
(description "Rakudo is a compiler that implements the Raku specification
and runs on top of several virtual machines.")
(license license:artistic2.0)))
(define-public perl6-format-lisp
(let ((commit "1ae31e2a9366b287a83a9d451295fc9e3fb6d36f")
(revision "0"))
(package
(name "perl6-format-lisp")
(version (git-version "0.0.2" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/raku-community-modules/Format-Lisp")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1rhkd11xdyw99vl6ickjin0x7nhlgkq3qhpf8zp9jky0k711gxmr"))))
(build-system rakudo-build-system)
(arguments '(#:with-zef? #f))
(home-page "https://github.com/raku-community-modules/Format-Lisp")
(synopsis "Common Lisp's format call in Raku")
(description "This Raku module implements Common Lisp's @code{format}
language.")
(license license:artistic2.0))))
(define-public perl6-grammar-debugger
;; Last commit was September 2017
;; Last commit was September 2017.
(let ((commit "0375008027c8caa216bd869476ce59ae09b2a702")
(revision "1"))
(package
@ -239,13 +346,12 @@ specification and runs on top of several virtual machines.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0y826z3m276n7ia810hgcb3div67nxmx125m2fzlc16994zd5vm5"))))
(base32 "0y826z3m276n7ia810hgcb3div67nxmx125m2fzlc16994zd5vm5"))))
(build-system rakudo-build-system)
(propagated-inputs
(list perl6-terminal-ansicolor))
(home-page "https://github.com/jnthn/grammar-debugger")
(synopsis "Simple tracing and debugging support for Perl 6 grammars")
(synopsis "Simple tracing and debugging support for Raku grammars")
(description "This module provides a simple debugger for grammars. Just
@code{use} it: use @code{Grammar::Debugger;} and any grammar in the lexical
scope of the use statement will automatically have debugging enabled. The
@ -254,7 +360,7 @@ prompt.")
(license license:artistic2.0))))
(define-public perl6-grammar-profiler-simple
;; Last commit was June 2017
;; Last commit was June 2017.
(let ((commit "c0aca5fab323b2974821dabd6b89330c609e0b7d")
(revision "1"))
(package
@ -268,19 +374,20 @@ prompt.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1qcsa4lmcilp3vp0jng0hrgzyzxin9ayg2wjvkcd0k6h7djx9dff"))))
(base32 "1qcsa4lmcilp3vp0jng0hrgzyzxin9ayg2wjvkcd0k6h7djx9dff"))))
(build-system rakudo-build-system)
(arguments '(#:with-zef? #f))
(home-page "https://github.com/perlpilot/Grammar-Profiler-Simple")
(synopsis "Simple rule profiling for Perl 6 grammars")
(description "This module provides a simple profiler for Perl 6 grammars.
(synopsis "Simple rule profiling for Raku grammars")
(description "This module provides a simple profiler for Raku grammars.
To enable profiling simply add use @code{Grammar::Profiler::Simple;} to your
code. Any grammar in the lexical scope of the use statement will automatically
have profiling information collected when the grammar is used.")
(license license:artistic2.0))))
(define-public perl6-json
;; The commit where 1.0 was “tagged”.
(let ((commit "a5ef8c179350dae44ce7fb1abb684fc62c1c2b99"))
(package
(name "perl6-json")
(version "1.0")
@ -289,24 +396,22 @@ have profiling information collected when the grammar is used.")
(method git-fetch)
(uri (git-reference
(url "https://github.com/moritz/json")
;; The commit where 1.0 was "tagged"
(commit "a5ef8c179350dae44ce7fb1abb684fc62c1c2b99")))
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1kzryxkqyr129rcckd4jh0dfxdgzv71qx8dpkpm1divbfjyknlay"))))
(base32 "1kzryxkqyr129rcckd4jh0dfxdgzv71qx8dpkpm1divbfjyknlay"))))
(build-system rakudo-build-system)
(arguments '(#:with-zef? #f))
(home-page "https://github.com/moritz/json")
(synopsis "Minimal JSON (de)serializer")
(description "This module is a simple Perl 6 module for serializing and
(description "This module is a simple Raku module for serializing and
deserializing JSON.")
(license license:artistic2.0)))
(license license:artistic2.0))))
(define-public perl6-json-class
(package
(name "perl6-json-class")
(version "0.0.12")
(version "0.0.18")
(source
(origin
(method git-fetch)
@ -315,21 +420,20 @@ deserializing JSON.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1zyzajc57j3m8q0nr72h9pw4w2nx92rafywlvysgphc5q9sb8np2"))))
(base32 "0686qpcb6p5isjcsksrgsr1rh926cnhs6r091p5p3lh2fd575g1d"))))
(build-system rakudo-build-system)
(propagated-inputs
(list perl6-json-marshal perl6-json-unmarshal))
(native-inputs
(list perl6-json-fast))
(propagated-inputs
(list perl6-json-marshal perl6-json-unmarshal))
(home-page "https://github.com/jonathanstowe/JSON-Class")
(synopsis "Provide simple serialisation/deserialisation of objects to/from JSON")
(synopsis "Provide simple serialization/deserialization of objects to/from JSON")
(description "This is a simple role that provides methods to instantiate a
class from a JSON string that (hopefully,) represents it, and to serialise an
class from a JSON string that (hopefully) represents it, and to serialize an
object of the class to a JSON string. The JSON created from an instance
should round trip to a new instance with the same values for the public
attributes. Private attributes (that is ones without accessors,) will be
ignored for both serialisation and de-serialisation. The exact behaviour
ignored for both serialization and deserialization. The exact behaviour
depends on that of @code{JSON::Marshal} and @code{JSON::Unmarshal}
respectively.")
(license license:artistic2.0)))
@ -337,7 +441,7 @@ respectively.")
(define-public perl6-json-fast
(package
(name "perl6-json-fast")
(version "0.10")
(version "0.17")
(source
(origin
(method git-fetch)
@ -346,21 +450,21 @@ respectively.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1g8hr1mdrxwdpzc7hvs9l5r12phvba6y6a5chgkj90ing77ji4b2"))))
(base32 "1gckca9m6jkz6s59rpwf59721q6icfm45jj49sw3vdjr6jh2dgdb"))))
(build-system rakudo-build-system)
(arguments '(#:with-zef? #f))
(home-page "https://github.com/timo/json_fast")
(synopsis "Perl6 json parser")
(description "A naive imperative json parser in pure perl6 (but with direct
(synopsis "Raku JSON parser")
(description "A naive imperative JSON parser in pure Raku (but with direct
access to @code{nqp::} ops), to evaluate performance against @code{JSON::Tiny}.
It is a drop-in replacement for @code{JSON::Tiny}'s from-json and to-json subs,
but it offers a few extra features.")
It is a drop-in replacement for @code{JSON::Tiny}'s @code{from-json} and
@code{to-json} subs, but it offers a few extra features.")
(license license:artistic2.0)))
(define-public perl6-json-marshal
(package
(name "perl6-json-marshal")
(version "0.0.16")
(version "0.0.23")
(source
(origin
(method git-fetch)
@ -369,15 +473,14 @@ but it offers a few extra features.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0qy7j83h6gjzyyv74ncd92cd9h45rv8diaz3vldiv3b6fqwz4c6i"))))
(base32 "057xmdadhy5wkbhr6w1iybv2j7qf4bf8d4cp8m4qdcgk6pqzpkgc"))))
(build-system rakudo-build-system)
(propagated-inputs
(list perl6-json-fast perl6-json-name))
(native-inputs
(list perl6-json-fast))
(propagated-inputs
(list perl6-json-fast perl6-json-name))
(home-page "https://github.com/jonathanstowe/JSON-Marshal")
(synopsis "Simple serialisation of objects to JSON")
(synopsis "Simple serialization of objects to JSON")
(description "This library provides a single exported subroutine to create
a JSON representation of an object. It should round trip back into an object
of the same class using @code{JSON::Unmarshal}.")
@ -386,7 +489,7 @@ of the same class using @code{JSON::Unmarshal}.")
(define-public perl6-json-name
(package
(name "perl6-json-name")
(version "0.0.3")
(version "0.0.6")
(source
(origin
(method git-fetch)
@ -395,22 +498,46 @@ of the same class using @code{JSON::Unmarshal}.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"130qwdpbj5qdlsdz05y0rksd79lzbq79scy47n6lnf21b0hz1qjc"))))
(base32 "0fbwp3av4kh7zlbrmgbka4x6s3d6fsw2qxafi9hyq0y896wsaf94"))))
(build-system rakudo-build-system)
(arguments '(#:with-zef? #f))
(propagated-inputs
(list perl6-json-optin))
(home-page "https://github.com/jonathanstowe/JSON-Name")
(synopsis "Provides a trait to store an alternative JSON Name")
(synopsis "Provide a trait to store an alternative JSON name")
(description "This is released as a dependency of @code{JSON::Marshal} and
@code{JSON::Unmarshal} in order to save duplication, it is intended to store a
separate JSON name for an attribute where the name of the JSON attribute might be
changed, either for aesthetic reasons or the name is not a valid Perl identifier.
It will of course also be needed in classes thar are going to use
@code{JSON::Marshal} or @code{JSON::Unmarshal} for serialisation/de-serialisation.")
@code{JSON::Marshal} or @code{JSON::Unmarshal} for serialization/deserialization.")
(license license:artistic2.0)))
(define-public perl6-json-optin
(package
(name "perl6-json-optin")
(version "0.0.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jonathanstowe/JSON-OptIn")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0iz1wd3rfcb3kdc8cylwfxr8p02bpivk7kcf3dmm2l4mmdhyk7np"))))
(build-system rakudo-build-system)
(arguments '(#:with-zef? #f))
(home-page "https://github.com/jonathanstowe/JSON-OptIn")
(synopsis "Provide a trait and role to identify opt-in JSON serialization")
(description "This provides a trait and a role for the identification of
`opt in' serializable attributes in, e.g., @code{JSON::Marshal}. It's
probably not necessary to use this directly as it will be required by, e.g.,
@code{JSON::Name}, but it's just more convenient to package it separately.")
(license license:artistic2.0)))
(define-public perl6-json-unmarshal
;; Last commit was May 2017
;; Last commit was May 2017.
(let ((commit "e1b6288c5f3165058f36c0f4e171cdf2dfd640da")
(revision "1"))
(package
@ -424,8 +551,7 @@ It will of course also be needed in classes thar are going to use
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"14azsmzmwdn8k0gqcpvballharcvzylmlyrx2wmv4kpqfnz29fjc"))))
(base32 "14azsmzmwdn8k0gqcpvballharcvzylmlyrx2wmv4kpqfnz29fjc"))))
(build-system rakudo-build-system)
(propagated-inputs
(list perl6-json-fast perl6-json-name))
@ -438,7 +564,7 @@ create an object from a JSON representation of an object.")
(define-public perl6-license-spdx
(package
(name "perl6-license-spdx")
(version "3.4.0")
(version "3.16.0")
(source
(origin
(method git-fetch)
@ -447,8 +573,7 @@ create an object from a JSON representation of an object.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0dl263c3fbxk001gm5fisrzqz1dx182ipaa0x2qva2gxvl075xm8"))))
(base32 "0sv9rrrfn437crynmbs3aks5xcqchjkbr1k31fq0dphfaw88k5v3"))))
(build-system rakudo-build-system)
(propagated-inputs
(list perl6-json-class))
@ -463,7 +588,7 @@ licences therein.")
(define-public perl6-meta6
(package
(name "perl6-meta6")
(version "0.0.23")
(version "0.0.26")
(source
(origin
(method git-fetch)
@ -472,69 +597,65 @@ licences therein.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1xnlaamfbdlfb2zidim3bbc4mawsrg6qxhxi6gbld46z1cyry1cw"))))
(base32 "1jg8z0y29df9sy6za285jy38c3v6dl54ar54dp6marzcih02payx"))))
(build-system rakudo-build-system)
(propagated-inputs
(list perl6-json-class))
(native-inputs
(list perl6-json-fast))
(propagated-inputs
(list perl6-json-class))
(home-page "https://github.com/jonathanstowe/META6")
(synopsis "Do things with Perl 6 [META files]")
(description "This provides a representation of the Perl 6 META files
specification - the META file data can be read, created, parsed and written in a
manner that is conformant with the specification.
(synopsis "Do things with Raku META files")
(description "This provides a representation of the Raku META files
specification -- the META file data can be read, created, parsed and written
in a manner that is conformant with the specification.
Where they are known about it also makes allowance for customary usage in
existing software (such as installers and so forth.)
Where they are known about, it also makes allowance for customary usage in
existing software (such as installers and so forth).
The intent of this is allow the generation and testing of META files for
module authors, so it can provide meta-information whether the attributes are
mandatory as per the spec and where known the places that customary attributes
are used.")
The intent of this is to allow the generation and testing of META files for
module authors, so it can provide meta-information about whether the
attributes are mandatory as per the spec and, where known, the places that
customary attributes are used.")
(license license:artistic2.0)))
(define-public perl6-mime-base64
(package
(name "perl6-mime-base64")
(version "1.2.1")
(version "1.2.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/perl6/Perl6-MIME-Base64")
(commit (string-append "v" version))))
(url "https://github.com/raku-community-modules/MIME-Base64")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0l67m8mvz3gxml425sd1ggfnhzh4lf754k7w8fngfr453s6lsza1"))))
(base32 "19bndwbjr05gg8rrq2msmw1ik8xw2r3gbd77vxrp8l6c674zgy95"))))
(build-system rakudo-build-system)
(arguments '(#:with-zef? #f))
(home-page "https://github.com/perl6/Perl6-MIME-Base64")
(home-page "https://github.com/raku-community-modules/MIME-Base64")
(synopsis "Encoding and decoding Base64 ASCII strings")
(description "This Perl 6 module implements encoding and decoding to and
(description "This Raku module implements encoding and decoding to and
from base64.")
(license license:artistic2.0)))
(define-public perl6-oo-monitors
(package
(name "perl6-oo-monitors")
(version "1.1")
(version "1.1.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jnthn/oo-monitors")
;; The commit where 1.1 was "tagged"
(commit "494db3a3852854f30a80c9bd1489a7d5e429e7c5")))
(commit (string-append "release-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1sbw2x54wwjjanghjnc7ipmplaw1srvbrphsdv4ym6cipnbmbj9x"))))
(base32 "1aqb0x2vnmpi3knkf5v5aix6h29ln80gpxwa181i8kwfpxs8ir9f"))))
(build-system rakudo-build-system)
(arguments '(#:with-zef? #f))
(home-page "https://github.com/jnthn/oo-monitors")
(synopsis "Monitors with condition variables for Perl 6")
(synopsis "Monitors with condition variables for Raku")
(description "A monitor provides per-instance mutual exclusion for objects.
This means that for a given object instance, only one thread can ever be inside
its methods at a time. This is achieved by a lock being associated with each
@ -543,7 +664,7 @@ monitor. Condition variables are also supported.")
(license license:artistic2.0)))
(define-public perl6-svg
;; Latest commit, basically unchanged since August 2015
;; Latest commit, basically unchanged since August 2015.
(let ((commit "07190c0602aa276e5319f06aa0012452dbff3582")
(revision "1"))
(package
@ -557,21 +678,20 @@ monitor. Condition variables are also supported.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0mkjdhg7ajksdn61n8fqhyzfd7ly9myazsvpsm02a5c2q73hdygg"))))
(base32 "0mkjdhg7ajksdn61n8fqhyzfd7ly9myazsvpsm02a5c2q73hdygg"))))
(build-system rakudo-build-system)
(propagated-inputs
(list perl6-xml-writer))
(home-page "https://github.com/moritz/svg")
(synopsis "Perl 6 module to generate SVG")
(description "This is a Perl 6 module that makes it easy to write
(synopsis "Raku module to generate SVG")
(description "This is a Raku module that makes it easy to write
@dfn{Scalable Vector Graphic files} (SVG). Right now it is a shallow wrapper
around @code{XML::Writer}, adding only the xmlns attributes that identifies an
XML file as SVG.")
around @code{XML::Writer}, adding only the @samp{xmlns} attributes that
identify an XML file as SVG.")
(license license:artistic2.0))))
(define-public perl6-svg-plot
;; Latest commit
;; Latest commit.
(let ((commit "062570a78fd38c3c6baba29dfe2fbb8ca014f4de")
(revision "1"))
(package
@ -585,14 +705,13 @@ XML file as SVG.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"095ga5hbg92jnmczxvhk1hjz14yr334zyf8cph4w5w5frcza44my"))))
(base32 "095ga5hbg92jnmczxvhk1hjz14yr334zyf8cph4w5w5frcza44my"))))
(build-system rakudo-build-system)
(propagated-inputs
(list perl6-svg))
(home-page "https://github.com/moritz/svg-plot")
(synopsis "Perl 6 charting and plotting library that produces SVG output")
(description "@code{SVG::Plot} is a simple 2D chart plotter for Perl 6.
(synopsis "Raku charting and plotting library that produces SVG output")
(description "@code{SVG::Plot} is a simple 2D chart plotter for Raku.
It currently supports bars, stacked bars, lines and points (both equally spaced
with optional labels, or xy plots).")
(license license:artistic2.0))))
@ -600,17 +719,16 @@ with optional labels, or xy plots).")
(define-public perl6-tap-harness
(package
(name "perl6-tap-harness")
(version "0.0.7")
(version "0.3.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/perl6/tap-harness6")
(commit (string-append "v" version))))
(url "https://github.com/Raku/tap-harness6")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1lig8i0my3fgqvlay9532xslbf3iis2d7wz89gniwvwqffi2kh6r"))))
(base32 "162crdy8g6xhnry26pjma2panm0c79n26igmljg79al4bqj9lyc9"))))
(build-system rakudo-build-system)
(arguments
'(#:with-zef? #f
@ -619,15 +737,17 @@ with optional labels, or xy plots).")
(modify-phases %standard-phases
(replace 'check
(lambda _
(invoke "perl6" "-Ilib" "bin/prove6" "-l" "t"))))))
(home-page "https://github.com/perl6/tap-harness6/")
(synopsis "TAP harness for perl6")
(apply invoke "raku" "-MTAP" "-Ilib" (find-files "t" "\\.t$")))))))
(home-page "https://github.com/Raku/tap-harness6")
(synopsis "TAP harness for Raku")
(description "This module provides the @command{prove6} command which runs a
TAP based test suite and prints a report. The @command{prove6} command is a
minimal wrapper around an instance of this module.")
(license license:artistic2.0)))
(define-public perl6-terminal-ansicolor
;; The commit where 0.5 was “tagged”.
(let ((commit "edded4a7116ce11cbc9fb5a83669c7ba119d0212"))
(package
(name "perl6-terminal-ansicolor")
(version "0.5")
@ -636,23 +756,21 @@ minimal wrapper around an instance of this module.")
(method git-fetch)
(uri (git-reference
(url "https://github.com/tadzik/Terminal-ANSIColor")
;; The commit where 0.5 was "tagged"
(commit "edded4a7116ce11cbc9fb5a83669c7ba119d0212")))
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1apm999azkyg5s35gid12wq019aqnvzrkz7qjmipd74mdxgr00x7"))))
(base32 "1apm999azkyg5s35gid12wq019aqnvzrkz7qjmipd74mdxgr00x7"))))
(build-system rakudo-build-system)
(arguments '(#:with-zef? #f))
(home-page "https://github.com/tadzik/Terminal-ANSIColor")
(synopsis "Colorize terminal output")
(description "This is a @code{Terminal::ANSIColor} module for Perl 6.")
(license license:expat)))
(description "This is a @code{Terminal::ANSIColor} module for Raku.")
(license license:expat))))
(define-public perl6-test-meta
(package
(name "perl6-test-meta")
(version "0.0.14")
(version "0.0.17")
(source
(origin
(method git-fetch)
@ -661,32 +779,31 @@ minimal wrapper around an instance of this module.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1mzrglb7lbiy5h9dlc7dyhvv9gppxmdmpmrv6nzbd695jzr38bri"))))
(base32 "0kd4yixx6lac240lcx0f5pfswspvpp43034mq2vs65zxghsvvcmf"))))
(build-system rakudo-build-system)
(propagated-inputs
(list perl6-meta6 perl6-uri))
(list perl6-license-spdx perl6-meta6 perl6-uri))
(home-page "https://github.com/jonathanstowe/Test-META")
(synopsis "Test a distributions META file")
(synopsis "Test a distribution's META file")
(description "This provides a simple mechanism for module authors to have
some confidence that they have a working distribution META description file.")
(license license:artistic2.0)))
(define-public perl6-test-mock
(let ((commit "1130427f4d9f3866fa39e113251bb142d7fa5cc8")
(revision "0"))
(package
(name "perl6-test-mock")
(version "1.5")
(version (git-version "1.5" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jnthn/test-mock")
;; The commit where 1.5 was "tagged"
(commit "6eddb42f73f40b9ac29c14badb41ce4a04d876f2")))
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"07yr3qimc8fl29p23562ayj2j9h53madcnf9sgqvgf2kcprh0zd2"))))
(base32 "03qq6z9ilw0ak3dx9i24ygr4c21wf4xvli8px02hmshpkhavclj5"))))
(build-system rakudo-build-system)
(propagated-inputs
(list perl6-oo-monitors))
@ -695,33 +812,34 @@ some confidence that they have a working distribution META description file.")
(description "@code{Test::Mock} is a module that works alongside the
standard Test module to help you write tests when you want to verify what
methods are called on an object, while still having calls to undefined methods
die. You get started just as normal with the test file, but also add a use
statement for @code{Test::Mock}.")
(license license:artistic2.0)))
die. You get started just as normal with the test file, but also add a
@code{use} statement for @code{Test::Mock}.")
(license license:artistic2.0))))
(define-public perl6-uri
;; The commit where 0.3.5 was “tagged”.
(let ((commit "2e62d0f117c95a43e61ddb018dcacba8036aa3d5"))
(package
(name "perl6-uri")
(version "0.1.5")
(version "0.3.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/perl6-community-modules/uri")
(commit version)))
(url "https://github.com/raku-community-modules/URI")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0h318g75jqn2ckw051g35iqyfxz1mps0jyg5z6pd857y3kacbkpl"))))
(base32 "1a03r80zxpvnsjf2z5r8lk434v2ysrpaymqa6xq975l4124gckkx"))))
(build-system rakudo-build-system)
(arguments '(#:with-zef? #f))
(home-page "https://github.com/perl6-community-modules/uri")
(synopsis "URI implementation using Perl 6")
(description "A URI implementation using Perl 6 grammars to implement RFC
(home-page "https://github.com/raku-community-modules/URI")
(synopsis "URI implementation using Raku")
(description "A URI implementation using Raku grammars to implement RFC
3986 BNF. Currently only implements parsing. Includes @code{URI::Escape} to
(un?)escape characters that aren't otherwise allowed in a URI with % and a hex
character numbering.")
(license license:artistic2.0)))
(license license:artistic2.0))))
(define-public perl6-xml-writer
;; Last commit was May 2017
@ -738,19 +856,18 @@ character numbering.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1kwrf7akp70kyzw1b90khp71a6hpilihwndy2jsjpffcd4hd4m4z"))))
(base32 "1kwrf7akp70kyzw1b90khp71a6hpilihwndy2jsjpffcd4hd4m4z"))))
(build-system rakudo-build-system)
(arguments '(#:with-zef? #f))
(home-page "https://github.com/masak/xml-writer")
(synopsis "Perl 6 module to generate XML")
(description "@code{XML::Writer} is a module for creating XML in Perl 6.")
(synopsis "Raku module to generate XML")
(description "@code{XML::Writer} is a module for creating XML in Raku.")
(license license:artistic2.0))))
(define-public perl6-zef
(package
(name "perl6-zef")
(version "0.6.7")
(version "0.13.8")
(source
(origin
(method git-fetch)
@ -759,8 +876,7 @@ character numbering.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"07n7g1xw2c4g860rs890gx85vyhdq0ysgwbrnzw6q905jph2bkv7"))))
(base32 "0zmx2gavi975811kskv5j4j2zsysnxfklwx0azn8rffraadnhscm"))))
(build-system rakudo-build-system)
(arguments
'(#:with-zef? #f
@ -769,11 +885,11 @@ character numbering.")
(replace 'check
(lambda _
(setenv "HOME" "/tmp")
(invoke "perl6" "-I." "bin/zef" "--debug"
(invoke "raku" "-I." "bin/zef" "--debug"
"--tap-harness" "test" "."))))))
(home-page "https://github.com/ugexe/zef")
(synopsis "Perl6 Module Management")
(description "Zef is a Perl 6 package (module) manager. It can be used to
download and install Perl 6 modules in your home directory or as a system-wide
(synopsis "Raku Module Management")
(description "Zef is a Raku package (module) manager. It can be used to
download and install Raku modules in your home directory or as a system-wide
module.")
(license license:artistic2.0)))

View File

@ -530,7 +530,7 @@ photographic equipment.")
(define-public darktable
(package
(name "darktable")
(version "4.6.0")
(version "4.6.1")
(source
(origin
(method url-fetch)
@ -538,7 +538,7 @@ photographic equipment.")
"https://github.com/darktable-org/darktable/releases/"
"download/release-" version "/darktable-" version ".tar.xz"))
(sha256
(base32 "1hmcib37b5v8893d69i2qgvmbkmils8a0gn5dpg2462d43ijfjvj"))))
(base32 "1zbsrx5cfyifzbi657izw8rfkgd9pm4hx8afv8y2sgi9f2hc1v8n"))))
(build-system cmake-build-system)
(arguments
(list

View File

@ -7,7 +7,7 @@
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020, 2022, 2023 Marius Bakke <marius@gnu.org>
;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
;;; Copyright © 2023, 2024 Troy Figiel <troy@troyfigiel.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -30,12 +30,14 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix build-system cargo)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (gnu packages)
#:use-module (gnu packages libffi)
#:use-module (gnu packages compression)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages check)
#:use-module (gnu packages maths)
#:use-module (gnu packages pkg-config)
@ -44,6 +46,7 @@
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages rust-apps)
#:use-module (gnu packages sphinx))
(define-public python-multivolumefile
@ -73,6 +76,81 @@ file-object abstraction, making it possible to use multiple files as if they
were a single file.")
(license license:lgpl2.1+)))
(define-public python-cramjam
(package
(name "python-cramjam")
(version "2.7.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cramjam" version))
(sha256
(base32 "1b69qlr0q7q3spa7zy55xc1dr5pjgsdavxx8ijhv2j60xqjbg7sp"))))
(build-system cargo-build-system)
(arguments
(list
#:imported-modules `(,@%cargo-build-system-modules
,@%pyproject-build-system-modules)
#:modules '((guix build cargo-build-system)
((guix build pyproject-build-system)
#:prefix py:)
(guix build utils))
#:phases #~(modify-phases %standard-phases
;; We use Maturin to build the project.
(replace 'build
(assoc-ref py:%standard-phases
'build))
;; Before being able to run Python tests, we need to
;; install the module and add it to PYTHONPATH.
(delete 'install)
(add-after 'build 'install
(assoc-ref py:%standard-phases
'install))
(add-after 'install 'add-install-to-pythonpath
(assoc-ref py:%standard-phases
'add-install-to-pythonpath))
;; Finally run the tests. Only Python tests are provided.
(replace 'check
(lambda* (#:key tests? inputs outputs #:allow-other-keys)
(when tests?
;; Without the CI variable, tests are run in "local"
;; mode, which sets a deadline for hypothesis. For a
;; deterministic build, we need to set CI.
(setenv "CI" "1")
(invoke "pytest" "-vv" "tests")))))
#:cargo-inputs `(("rust-brotli" ,rust-brotli-3)
("rust-bzip2" ,rust-bzip2-0.4)
("rust-flate2" ,rust-flate2-1)
("rust-lz4" ,rust-lz4-1)
("rust-pyo3" ,rust-pyo3-0.18)
("rust-snap" ,rust-snap-1)
("rust-zstd" ,rust-zstd-0.11))
#:install-source? #f))
(native-inputs (list maturin
python-pytest
python-pytest-xdist
python-numpy
python-hypothesis
python-wrapper))
(home-page "https://github.com/milesgranger/cramjam")
(synopsis "Python bindings to compression algorithms in Rust")
(description
"This package provides thin Python bindings to compression and
decomporession algorithms implemented in Rust. This allows for using
algorithms such as Snappy without additional system dependencies. The
following algorithms are available:
@itemize
@item Snappy
@item Brotli
@item Bzip2
@item LZ4
@item Gzip
@item Deflate
@item Zstd
@end itemize")
(license license:expat)))
(define-public python-pybcj
(package
(name "python-pybcj")

View File

@ -147,6 +147,7 @@
;;; Copyright © 2023 Attila Lendvai <attila@lendvai.name>
;;; Copyright © 2023, 2024 Troy Figiel <troy@troyfigiel.com>
;;; Copyright © 2024 Timothee Mathieu <timothee.mathieu@inria.fr>
;;; Copyright © 2024 Ian Eure <ian@retrospec.tv>
;;;
;;; This file is part of GNU Guix.
;;;
@ -25956,6 +25957,43 @@ cases, generating additional test cases, testing for your code, and
submitting it.")
(license license:expat)))
(define-public python-mpv-jsonipc
(package
(name "python-mpv-jsonipc")
(version "1.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-mpv-jsonipc" version))
(sha256
(base32 "0ymdwrx544a6gn6wm9dixpgzbfrbpxvcj5ys7m41cgb4lvpvx691"))))
(build-system pyproject-build-system)
(home-page "https://github.com/iwalton3/python-mpv-jsonipc")
(synopsis "Python API to control MPV using JSON IPC")
(description "Python MPV JSONIPC implements an interface similar to
python-mpv, but it uses the JSON IPC protocol instead of the C API.")
(license license:asl2.0)))
(define-public python-jellyfin-apiclient
(package
(name "python-jellyfin-apiclient")
(version "1.9.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "jellyfin-apiclient-python" version))
(sha256
(base32 "0r67cp9nizvn3cbslgi30zpd3mw4a6zal0ygik3jv5lni1xdkk5w"))))
(build-system pyproject-build-system)
(propagated-inputs (list python-certifi python-requests python-urllib3
python-websocket-client))
(home-page "https://github.com/jellyfin/jellyfin-apiclient-python")
(synopsis "Python API client for Jellyfin")
(description "The Jellyfin ApiClient Python package makes it possible
to use the Jellyfin API from Python. It was extracted from the Jellyfin
Kodi plugin.")
(license license:gpl3+)))
(define-public python-parso
(package
(name "python-parso")
@ -31885,6 +31923,41 @@ handling those variations.")
Qt applications.")
(license license:expat)))
(define-public python-pystray
(package
(name "python-pystray")
(version "0.19.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/moses-palmer/pystray")
(commit "1907f8681d6d421517c63d94f425f9cdd74d0034")))
(file-name (git-file-name name version))
(sha256
(base32 "1vj6c8s7rbc7xc4bi5brx5629ls1ri9prcw9290v85hagilmp609"))))
(build-system python-build-system)
(arguments
(list
;; The test suite requires user interaction, there are no automated
;; tests.
#:tests? #false
#:phases #~(modify-phases %standard-phases
(add-before 'sanity-check 'use-dummy-backend
(lambda _
;; Without setting this, pystray tries to connect to
;; X11 on import.
(setenv "PYSTRAY_BACKEND" "dummy"))))))
(native-inputs (list python-sphinx))
(propagated-inputs (list python-pillow python-six python-xlib))
(home-page "https://github.com/moses-palmer/pystray")
(synopsis "Create a system tray icon")
(description "This library allows you to create a system tray icon.
It makes it possible to specify an icon, a title and a callback for when
the icon is activated. The icon and title can be changed after the icon
has been created, and the visibility of the icon can be toggled.")
(license license:lgpl3+)))
(define-public python-bitstring
(package
(name "python-bitstring")

View File

@ -55,7 +55,7 @@
;;; Copyright © 2018, 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2018 Luther Thompson <lutheroto@gmail.com>
;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org>
;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2019, 2024 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020, 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
@ -596,6 +596,391 @@ data types.")
(variable "PYTHONTZPATH")
(files (list "share/zoneinfo")))))))
(define-public python-3.12
(package
(name "python-next")
(version "3.12.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.python.org/ftp/python/" version
"/Python-" version ".tar.xz"))
(sha256
(base32 "0w6qyfhc912xxav9x9pifwca40b4l49vy52wai9j0gc1mhni2a5y"))
(patches (search-patches "python-3-deterministic-build-info.patch"
"python-3.12-fix-tests.patch"
"python-3-hurd-configure.patch"))
(modules '((guix build utils)))
(snippet '(begin
;; Delete the bundled copy of libexpat.
(delete-file-recursively "Modules/expat")
(substitute* "Modules/Setup"
;; Link Expat instead of embedding the bundled one.
(("^#pyexpat.*")
"pyexpat pyexpat.c -lexpat\n"))
;; Delete windows binaries
(for-each delete-file
(find-files "Lib/distutils/command" "\\.exe$"))))))
(outputs '("out" "tk" ;tkinter; adds 50 MiB to the closure
"idle")) ;programming environment; weighs 5MB
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
#:configure-flags (list "--enable-shared" ;allow embedding
"--with-system-expat" ;for XML support
"--with-system-ffi" ;build ctypes
"--with-ensurepip=install" ;install pip and setuptools
"--with-computed-gotos" ;main interpreter loop optimization
"--enable-unicode=ucs4"
"--without-static-libpython"
;; FIXME: These flags makes Python significantly faster,
;; but leads to non-reproducible binaries.
;; "--with-lto" ;increase size by 20MB, but 15% speedup
;; "--enable-optimizations"
;; Prevent the installed _sysconfigdata.py from retaining
;; a reference to coreutils.
"INSTALL=install -c"
"MKDIR_P=mkdir -p"
;; Disable runtime check failing if cross-compiling, see:
;; https://lists.yoctoproject.org/pipermail/poky/2013-June/008997.html
,@(if (%current-target-system)
'("ac_cv_buggy_getaddrinfo=no"
"ac_cv_file__dev_ptmx=no"
"ac_cv_file__dev_ptc=no")
'())
;; -fno-semantic-interposition reinstates some
;; optimizations by gcc leading to around 15% speedup.
;; This is the default starting from python 3.10.
"CFLAGS=-fno-semantic-interposition"
(string-append "LDFLAGS=-Wl,-rpath="
(assoc-ref %outputs "out")
"/lib"
" -fno-semantic-interposition"))
;; With no -j argument tests use all available cpus, so provide one.
#:make-flags (list (string-append (format #f "TESTOPTS=-j~d"
(parallel-job-count))
;; those tests fail on low-memory systems
" --exclude test_mmap test_socket test_threading test_asyncio"
,@(if (system-hurd?)
'(" test_posix" ;multiple errors
" test_time"
" test_pty"
" test_shutil"
" test_tempfile" ;chflags: invalid argument:
;; tbv14c9t/dir0/dir0/dir0/test0.txt
" test_os" ;stty: 'standard input':
;; Inappropriate ioctl for device
" test_openpty" ;No such file or directory
" test_selectors" ;assertEqual(NUM_FDS // 2, len(fds))
;; 32752 != 4
" test_compileall" ;multiple errors
" test_poll" ;list index out of range
" test_subprocess" ;runs over 10min
" test_asyncore" ;multiple errors
" test_threadsignals"
" test_eintr" ;Process return code is -14
" test_io" ;multiple errors
" test_logging"
" test_signal"
" test_flags" ;ERROR
" test_bidirectional_pty"
" test_create_unix_connection"
" test_unix_sock_client_ops"
" test_open_unix_connection"
" test_open_unix_connection_error"
" test_read_pty_output"
" test_write_pty"
" test_concurrent_futures" ;freeze
" test_venv" ;freeze
" test_multiprocessing_forkserver" ;runs over 10min
" test_multiprocessing_spawn" ;runs over 10min
" test_builtin"
" test_capi"
" test_dbm_ndbm"
" test_exceptions"
" test_faulthandler"
" test_getopt"
" test_importlib"
" test_json"
" test_multiprocessing_fork"
" test_multiprocessing_main_handling"
" test_pdb "
" test_regrtest"
" test_sqlite")
'())))
#:modules ((ice-9 ftw)
(ice-9 match)
(guix build utils)
(guix build gnu-build-system))
#:phases (modify-phases %standard-phases
,@(if (system-hurd?)
`((add-after 'unpack
'disable-multi-processing
(lambda _
(substitute* "Makefile.pre.in"
(("-j0")
"-j1")))))
'())
(add-before 'configure 'patch-lib-shells
(lambda _
;; This variable is used in setup.py to enable cross compilation
;; specific switches. As it is not set properly by configure
;; script, set it manually.
,@(if (%current-target-system)
'((setenv "_PYTHON_HOST_PLATFORM" ""))
'())
;; Filter for existing files, since some may not exist in all
;; versions of python that are built with this recipe.
(substitute* (filter file-exists?
'("Lib/subprocess.py"
"Lib/popen2.py"
"Lib/distutils/tests/test_spawn.py"
"Lib/test/support/__init__.py"
"Lib/test/test_subprocess.py"))
(("/bin/sh")
(which "sh")))))
(add-before 'configure 'do-not-record-configure-flags
(lambda* (#:key configure-flags #:allow-other-keys)
;; Remove configure flags from the installed '_sysconfigdata.py'
;; and 'Makefile' so we don't end up keeping references to the
;; build tools.
;;
;; Preserve at least '--with-system-ffi' since otherwise the
;; thing tries to build libffi, fails, and we end up with a
;; Python that lacks ctypes.
(substitute* "configure"
(("^CONFIG_ARGS=.*$")
(format #f "CONFIG_ARGS='~a'\n"
(if (member "--with-system-ffi"
configure-flags)
"--with-system-ffi" ""))))))
(add-before 'check 'pre-check
(lambda _
;; 'Lib/test/test_site.py' needs a valid $HOME
(setenv "HOME"
(getcwd))))
(add-after 'unpack 'set-source-file-times-to-1980
;; XXX One of the tests uses a ZIP library to pack up some of the
;; source tree, and fails with "ZIP does not support timestamps
;; before 1980". Work around this by setting the file times in the
;; source tree to sometime in early 1980.
(lambda _
(let ((circa-1980 (* 10 366 24 60 60)))
(ftw "."
(lambda (file stat flag)
(utime file circa-1980 circa-1980) #t)))))
(add-after 'unpack 'remove-windows-binaries
(lambda _
;; Delete .exe from embedded .whl (zip) files
(for-each (lambda (whl)
(let ((dir "whl-content")
(circa-1980 (* 10 366 24 60 60)))
(mkdir-p dir)
(with-directory-excursion dir
(let ((whl (string-append "../" whl)))
(invoke "unzip" whl)
(for-each delete-file
(find-files "." "\\.exe$"))
(delete-file whl)
;; Reset timestamps to prevent them from ending
;; up in the Zip archive.
(ftw "."
(lambda (file stat flag)
(utime file circa-1980
circa-1980) #t))
(apply invoke "zip" "-X" whl
(find-files "."
#:directories? #t))))
(delete-file-recursively dir)))
(find-files "Lib/ensurepip" "\\.whl$"))))
(add-after 'install 'remove-tests
;; Remove 25 MiB of unneeded unit tests. Keep test_support.*
;; because these files are used by some libraries out there.
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(match (scandir (string-append out "/lib")
(lambda (name)
(string-prefix? "python" name)))
((pythonX.Y)
(let ((testdir (string-append out "/lib/" pythonX.Y
"/test")))
(with-directory-excursion testdir
(for-each delete-file-recursively
(scandir testdir
(match-lambda
((or "." "..")
#f)
("support" #f)
(file (not (string-prefix?
"test_support."
file))))))
(call-with-output-file "__init__.py"
(const #t))))
(let ((libdir (string-append out "/lib/" pythonX.Y)))
(for-each (lambda (directory)
(let ((dir (string-append libdir "/"
directory)))
(when (file-exists? dir)
(delete-file-recursively dir))))
'("email/test" "ctypes/test"
"unittest/test"
"tkinter/test"
"sqlite3/test"
"bsddb/test"
"lib-tk/test"
"json/tests"
"distutils/tests"))))))))
(add-after 'remove-tests 'move-tk-inter
(lambda* (#:key outputs inputs #:allow-other-keys)
;; When Tkinter support is built move it to a separate output so
;; that the main output doesn't contain a reference to Tcl/Tk.
(let ((out (assoc-ref outputs "out"))
(tk (assoc-ref outputs "tk")))
(when tk
(match (find-files out "tkinter.*\\.so")
((tkinter.so)
;; The .so is in OUT/lib/pythonX.Y/lib-dynload, but we
;; want it under TK/lib/pythonX.Y/site-packages.
(let* ((len (string-length out))
(target (string-append tk "/"
(string-drop (dirname
(dirname
tkinter.so))
len)
"/site-packages")))
(install-file tkinter.so target)
(delete-file tkinter.so))))
;; Remove explicit store path references.
(let ((tcl (assoc-ref inputs "tcl"))
(tk (assoc-ref inputs "tk")))
(substitute* (find-files (string-append out "/lib")
"^(_sysconfigdata_.*\\.py|Makefile)$")
(((string-append "-L" tk "/lib"))
"")
(((string-append "-L" tcl "/lib"))
"")))))))
(add-after 'move-tk-inter 'move-idle
(lambda* (#:key outputs #:allow-other-keys)
;; when idle is built, move it to a separate output to save some
;; space (5MB)
(let ((out (assoc-ref outputs "out"))
(idle (assoc-ref outputs "idle")))
(when idle
(for-each (lambda (file)
(let ((target (string-append idle
"/bin/"
(basename
file))))
(install-file file
(dirname target))
(delete-file file)))
(find-files (string-append out "/bin")
"^idle"))
(match (find-files out "^idlelib$"
#:directories? #t)
((idlelib)
(let* ((len (string-length out))
(target (string-append idle "/"
(string-drop
idlelib len)
"/site-packages")))
(mkdir-p (dirname target))
(rename-file idlelib target))))))))
(add-after 'move-idle 'rebuild-bytecode
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
;; Disable hash randomization to ensure the generated .pycs
;; are reproducible.
(setenv "PYTHONHASHSEED" "0")
(for-each (lambda (output)
;; XXX: Delete existing pycs generated by the build
;; system beforehand because the -f argument does
;; not necessarily overwrite all files, leading to
;; indeterministic results.
(for-each (lambda (pyc)
(delete-file pyc))
(find-files output "\\.pyc$"))
(apply invoke
`(,,(if (%current-target-system)
"python3"
'(string-append out
"/bin/python3")) "-m"
"compileall"
"-o"
"0"
"-o"
"1"
"-o"
"2"
"-f" ;force rebuild
"--invalidation-mode=unchecked-hash"
;; Don't build lib2to3, because it's
;; Python 2 code.
"-x"
"lib2to3/.*"
,output)))
(map cdr outputs)))))
(add-before 'check 'set-TZDIR
(lambda* (#:key inputs native-inputs #:allow-other-keys)
;; test_email requires the Olson time zone database.
(setenv "TZDIR"
(string-append (assoc-ref (or native-inputs
inputs) "tzdata")
"/share/zoneinfo"))))
(add-after 'install 'install-sitecustomize.py
,(customize-site version)))))
(inputs (list bzip2
expat
gdbm
libffi ;for ctypes
sqlite ;for sqlite extension
openssl
readline
zlib
tcl
tk)) ;for tkinter
(native-inputs `(("tzdata" ,tzdata-for-tests)
("unzip" ,unzip)
("zip" ,(@ (gnu packages compression) zip))
("pkg-config" ,pkg-config)
("sitecustomize.py" ,(local-file (search-auxiliary-file
"python/sitecustomize.py")))
;; When cross-compiling, a native version of Python itself is needed.
,@(if (%current-target-system)
`(("python" ,this-package)
("which" ,which))
'())))
(native-search-paths
(list (guix-pythonpath-search-path version)
;; Used to locate tzdata by the zoneinfo module introduced in
;; Python 3.9.
(search-path-specification
(variable "PYTHONTZPATH")
(files (list "share/zoneinfo")))))
(home-page "https://www.python.org")
(synopsis "High-level, dynamically-typed programming language")
(description
"Python is a remarkably powerful dynamic programming language that
is used in a wide variety of application domains. Some of its key
distinguishing features include: clear, readable syntax; strong
introspection capabilities; intuitive object orientation; natural
expression of procedural code; full modularity, supporting hierarchical
packages; exception-based error handling; and very high level dynamic
data types.")
(properties '((cpe-name . "python")))
(license license:psfl)))
;; Next 3.x version.
(define-public python-next python-3.12)
;; Current 3.x version.
(define-public python-3 python-3.10)

View File

@ -63,6 +63,7 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-xyz)
#:use-module (gnu packages gps)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gstreamer)
@ -790,7 +791,7 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).")
(define-public gnuradio
(package
(name "gnuradio")
(version "3.10.3.0")
(version "3.10.8.0")
(source
(origin
(method git-fetch)
@ -799,7 +800,7 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0xdhb2blzajxpi0f2ch23hh6bzdwz5q7syi3bmiqzdjlj2yjfzd4"))))
(base32 "11p08qrbfh5dz6l5n4c2g8c2gv1qq8aiydq91ryzfzgp49r0j6p0"))))
(build-system cmake-build-system)
(native-inputs
(list doxygen

View File

@ -30,6 +30,7 @@
;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
;;; Copyright © 2024 Herman Rimm <herman@rimm.ee>
;;; Copyright © 2024 Tomas Volf <~@wolfsden.cz>
;;; Copyright © 2024 Suhail Singh <suhail@bayesians.ca>
;;;
;;; This file is part of GNU Guix.
;;;
@ -71,6 +72,7 @@
#:use-module (gnu packages crates-windows)
#:use-module (gnu packages curl)
#:use-module (gnu packages documentation)
#:use-module (gnu packages emacs)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages haskell-xyz)
@ -99,6 +101,40 @@
#:use-module (gnu packages webkit)
#:use-module (gnu packages xorg))
(define-public aardvark-dns
(package
(name "aardvark-dns")
(version "1.10.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "aardvark-dns" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0ldqv9v3v9a1m2kka660d5v15y2zasy5z7m4fh5hif74r089cx6x"))))
(build-system cargo-build-system)
(arguments
`(#:install-source? #f
#:cargo-inputs (("rust-anyhow" ,rust-anyhow-1)
("rust-async-broadcast" ,rust-async-broadcast-0.6)
("rust-chrono" ,rust-chrono-0.4)
("rust-clap" ,rust-clap-4)
("rust-futures-util" ,rust-futures-util-0.3)
("rust-hickory-client" ,rust-hickory-client-0.24)
("rust-hickory-proto" ,rust-hickory-proto-0.24)
("rust-hickory-server" ,rust-hickory-server-0.24)
("rust-libc" ,rust-libc-0.2)
("rust-log" ,rust-log-0.4)
("rust-nix" ,rust-nix-0.27)
("rust-resolv-conf" ,rust-resolv-conf-0.7)
("rust-signal-hook" ,rust-signal-hook-0.3)
("rust-syslog" ,rust-syslog-6)
("rust-tokio" ,rust-tokio-1))))
(home-page "https://github.com/containers/aardvark-dns")
(synopsis "Container-focused DNS server")
(description "This package provides a container-focused DNS server.")
(license license:asl2.0)))
(define-public agate
(package
(name "agate")
@ -468,6 +504,43 @@ Features include:
@end enumerate\n")
(license license:gpl3)))
(define-public emacs-lsp-booster
(package
(name "emacs-lsp-booster")
(version "0.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/blahgeek/emacs-lsp-booster")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1xx32ms3mpi1clxf74mx7nanj0iw9qkmhi0a53fx8fkz0jw2fq8f"))))
(build-system cargo-build-system)
(arguments
(list
#:cargo-inputs `(("rust-anyhow" ,rust-anyhow-1)
("rust-clap" ,rust-clap-4)
("rust-clap-verbosity-flag" ,rust-clap-verbosity-flag-2)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-log" ,rust-log-0.4)
("rust-serde" ,rust-serde-1)
("rust-serde-json" ,rust-serde-json-1)
("rust-smallvec" ,rust-smallvec-1)
("rust-env-logger" ,rust-env-logger-0.10))
#:cargo-development-inputs `(("rust-emacs" ,rust-emacs-0.18)
("rust-tempfile" ,rust-tempfile-3))
#:install-source? #f))
(native-inputs (list emacs)) ; Not emacs-minimal
(home-page "https://github.com/blahgeek/emacs-lsp-booster")
(synopsis "Emacs LSP performance booster")
(description
"@code{emacs-lsp-booster} improves the performance of @code{lsp-mode} and
@code{eglot} Emacs packages using a wrapper executable. See the home-page for
configuration instructions.")
(license license:expat)))
(define-public eza
(package
(name "eza")

View File

@ -50,20 +50,14 @@
(define-public scribus
(package
(name "scribus")
(version "1.5.8")
(version "1.6.1")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/scribus/scribus-devel/"
version "/scribus-" version ".tar.xz"))
(uri (string-append "mirror://sourceforge/scribus/scribus/"
version "/scribus-" version ".tar.gz"))
(sha256
(base32 "0x3bw58v920akca8jxvsfwf468pzjyglk93ay67ph1bdry7nx0a7"))
(patches
(search-patches "scribus-1.5.8-poppler-22.2.0-1.patch"
"scribus-1.5.8-poppler-22.2.0-2.patch"
"scribus-1.5.8-poppler-22.03.0.patch"
"scribus-1.5.8-poppler-22.04.0.patch"
"scribus-1.5.8-poppler-22.09.0.patch"))))
(base32 "1kqqffx5xz35mwd422s4i110794zzx9sc2bn2mg77rz02hrxdhxg"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no test target

View File

@ -547,14 +547,14 @@ ksh, and tcsh.")
(define-public xonsh
(package
(name "xonsh")
(version "0.14.2")
(version "0.15.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "xonsh" version))
(sha256
(base32
"0fddxzd45zvfr687mvd90f5s376yz0a8ln7qbpl94q89z7l0y77k"))
"0427mimr4k75myg5mnig564kq7xbb5f5hws2ly3gxxl6g8mk79il"))
(modules '((guix build utils)))
(snippet
#~(begin
@ -861,7 +861,7 @@ Shell (pdksh).")
(define-public oil
(package
(name "oil")
(version "0.17.0")
(version "0.20.0")
(source
;; oil's sources contain a modified version of CPython 2.7.13.
;; According to https://www.oilshell.org/blog/2017/05/05.html
@ -874,7 +874,7 @@ Shell (pdksh).")
(uri (string-append "https://www.oilshell.org/download/oil-"
version ".tar.gz"))
(sha256
(base32 "01b67dq56iam44d7c81ba9w62jjnjx2z7wm928rkc1ff6bacm37r"))))
(base32 "1jpxhixwq29ik01jx372g9acib59wmww8lrdlcypq7jpg5b0b7pi"))))
(build-system gnu-build-system)
(arguments
(list #:strip-binaries? #f ; strip breaks the binary

View File

@ -223,7 +223,7 @@ This package also provides @command{xls2csv} to export Excel files to CSV.")
(define r-with-tests
(package
(name "r-with-tests")
(version "4.3.2")
(version "4.3.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://cran/src/base/R-"
@ -231,7 +231,7 @@ This package also provides @command{xls2csv} to export Excel files to CSV.")
version ".tar.gz"))
(sha256
(base32
"0aj51j34q2b28y28xvlf0dwdj8vpnhjwpvqf7xm05s7fq857dxdk"))))
"0c03abq3kqg6d2yhrijy9j3fsl77har3k7pffwwbz19v74qi51c0"))))
(build-system gnu-build-system)
(arguments
(list
@ -1328,14 +1328,14 @@ agnes cluster diagrams.")
(define-public r-gdtools
(package
(name "r-gdtools")
(version "0.3.6")
(version "0.3.7")
(source
(origin
(method url-fetch)
(uri (cran-uri "gdtools" version))
(sha256
(base32
"1d1sidm2qi1nrp1hhf010xji66aj8sn833fv4a39gli2c560p4i6"))))
"155ky9fdi023b5fjk1gh3607xlgm3hymq232fq03ip2aaywc74nj"))))
(build-system r-build-system)
(native-inputs
(list pkg-config))
@ -1994,14 +1994,14 @@ side.")
(define-public r-locfit
(package
(name "r-locfit")
(version "1.5-9.8")
(version "1.5-9.9")
(source
(origin
(method url-fetch)
(uri (cran-uri "locfit" version))
(sha256
(base32
"1qqxw69p42l4szr2fl73bdydpcbxn68iyxyyjy7qy3p56bxrn2hd"))))
"1m7ji1ykvffqvs9ly1pzadiwhwxcyv4xivziikmahp0w0sv45lck"))))
(build-system r-build-system)
(propagated-inputs
(list r-lattice))
@ -2033,13 +2033,13 @@ times.")
(define-public r-data-table
(package
(name "r-data-table")
(version "1.15.0")
(version "1.15.2")
(source (origin
(method url-fetch)
(uri (cran-uri "data.table" version))
(sha256
(base32
"0qhh4ii10b6rbimhh83160gsax82gbrm3hqbqqddkzknpifxpdrr"))))
"04pfcm3pyl997rpyj5zdmbhi4ndaai81vfgv4whjp8rhqzjk7i6j"))))
(properties `((upstream-name . "data.table")))
(build-system r-build-system)
(inputs
@ -3179,13 +3179,13 @@ well as additional utilities such as panel and axis annotation functions.")
(define-public r-rcpparmadillo
(package
(name "r-rcpparmadillo")
(version "0.12.8.0.0")
(version "0.12.8.1.0")
(source (origin
(method url-fetch)
(uri (cran-uri "RcppArmadillo" version))
(sha256
(base32
"0pkn4334dh4k6hqfx4xln2nfvajyxdbfnfddajb8875il0f7kp0x"))))
"0ax4812dm33c67ckd902qabis3dgqmpkchk4s30bshnfv4fxx1z2"))))
(properties `((upstream-name . "RcppArmadillo")))
(build-system r-build-system)
(propagated-inputs
@ -5861,13 +5861,13 @@ groupings.")
(define-public r-vgam
(package
(name "r-vgam")
(version "1.1-9")
(version "1.1-10")
(source
(origin
(method url-fetch)
(uri (cran-uri "VGAM" version))
(sha256
(base32 "1l5gn6495k8vqp2b4hj4g5ani7j4cli2p7n8fwkw7bmc42q13m6l"))))
(base32 "04yy5rxid3fwn42sak9rjbxd1h4d7iigiznpbrvwxl06b1xficyb"))))
(properties `((upstream-name . "VGAM")))
(build-system r-build-system)
(native-inputs
@ -5928,14 +5928,14 @@ based on an interface to Fortran implementations by M. J. D. Powell.")
(define-public r-rcppeigen
(package
(name "r-rcppeigen")
(version "0.3.3.9.4")
(version "0.3.4.0.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "RcppEigen" version))
(sha256
(base32
"1faz1phvg7g14bchi88vizn5mfhgiwmsjg7jzkyf1yjg0f6vpsj1"))))
"0djiyimgka7g3kfakb6mfaq7cxna9kn6kgib59x9p7qj24ha1m18"))))
(properties `((upstream-name . "RcppEigen")))
(build-system r-build-system)
(propagated-inputs
@ -6891,6 +6891,8 @@ Java package that provides routines for various statistical distributions.")
"ess-eval-line-test"
"ess-eval-region-test"
"ess-mock-remote-process"
"ess-r-eval-sink-freeze-test"
"ess-r-eval-ns-env-roxy-tracebug-test"
"ess-r-load-ESSR-github-fetch-no"
"ess-r-load-ESSR-github-fetch-yes"
"ess-set-working-directory-test"
@ -7291,22 +7293,23 @@ normal model.")
(define-public r-naniar
(package
(name "r-naniar")
(version "1.0.0")
(version "1.1.0")
(source (origin
(method url-fetch)
(uri (cran-uri "naniar" version))
(sha256
(base32
"1x4ljc6yji7312g6cg1shc85jqv5kaf2zlf5q7sdmqh3wryskvf2"))))
"0i3gijr1l7hbcp75cyj26pxmm493lnvasl8aba9vv4w8lz1lck59"))))
(build-system r-build-system)
(propagated-inputs
(list r-cli
r-dplyr
r-norm
r-forcats
r-ggplot2
r-glue
r-lifecycle
r-magrittr
r-norm
r-purrr
r-rlang
r-tibble
@ -7355,14 +7358,14 @@ Michael Lim & Trevor Hastie (2015)")
(define-public r-datasaurus
(package
(name "r-datasaurus")
(version "0.1.6")
(version "0.1.8")
(source
(origin
(method url-fetch)
(uri (cran-uri "datasauRus" version))
(sha256
(base32
"0vgylf3bab0xcfg08xwvfq9yhxy6w0fxi7wp4kkxfyjb0pw15qxk"))))
"08yx87k4kl3i9g3m1j9532whvs4l0l3v5gwj8sk7qlb3m3wajakr"))))
(properties `((upstream-name . "datasauRus")))
(build-system r-build-system)
(native-inputs (list r-knitr))

View File

@ -4,6 +4,7 @@
;;; Copyright © 2023 Saku Laesvuori <saku@laesvuori.fi>
;;; Copyright © 2023 Lu Hui <luhux76@gmail.com>
;;; Copyright © 2023 Camilo Q.S. (Distopico) <distopico@riseup.net>
;;; Copyright © 2024 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -613,17 +614,18 @@ formerly a part of telegram-cli, but now being maintained separately.")
(base32 "0cf5s7ygslb5klg1qv9qdc3hivhspmvh3zkacyyhd2yyikb5p0f9"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; No target
(list
#:tests? #f ; No target
#:imported-modules
((guix build copy-build-system)
`((guix build copy-build-system)
,@%gnu-build-system-modules)
#:modules
(((guix build copy-build-system)
'(((guix build copy-build-system)
#:prefix copy:)
(guix build gnu-build-system)
(guix build utils))
#:configure-flags
(list
'(list
;; Use gcrypt instead of openssl.
"--disable-openssl"
;; Enable extended queries system.
@ -631,11 +633,10 @@ formerly a part of telegram-cli, but now being maintained separately.")
;; Include libevent-based net and timers.
"--enable-libevent")
#:phases
(modify-phases %standard-phases
'(modify-phases %standard-phases
(add-after 'unpack 'trigger-bootstrap
(lambda _
(delete-file "configure")
#t))
(delete-file "configure")))
(add-after 'trigger-bootstrap 'patch-tl-parser
(lambda _
(delete-file "Makefile.tl-parser")
@ -643,8 +644,11 @@ formerly a part of telegram-cli, but now being maintained separately.")
(("include \\$\\{srcdir\\}/Makefile\\.tl-parser")
"")
(("\\$\\{EXE\\}/tl-parser")
"tl-parser"))
#t))
"tl-parser"))))
(add-after 'unpack 'remove-Werror
(lambda _
(substitute* "Makefile.in"
(("-Werror") ""))))
(replace 'install
(lambda args
(apply (assoc-ref copy:%standard-phases 'install)
@ -683,25 +687,29 @@ formerly a part of telegram-cli, but now being maintained separately.")
(base32 "0c1w7jgska71jjbvg1y09v52549pwa4zkdjly18yxywn7gayd2p6"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; No target
(list
#:tests? #f ; No target
#:imported-modules
((guix build copy-build-system)
`((guix build copy-build-system)
,@%gnu-build-system-modules)
#:modules
(((guix build copy-build-system)
'(((guix build copy-build-system)
#:prefix copy:)
(guix build gnu-build-system)
(guix build utils))
#:configure-flags
(list
'(list
;; Use gcrypt instead of openssl.
"--disable-openssl")
#:phases
(modify-phases %standard-phases
'(modify-phases %standard-phases
(add-after 'unpack 'remove-Werror
(lambda _
(substitute* "Makefile.in"
(("-Werror") "-fcommon"))))
(add-after 'unpack 'trigger-bootstrap
(lambda _
(delete-file "configure")
#t))
(delete-file "configure")))
(add-after 'trigger-bootstrap 'patch-tgl-and-tlparser
(lambda* (#:key inputs #:allow-other-keys)
(for-each delete-file
@ -721,8 +729,7 @@ formerly a part of telegram-cli, but now being maintained separately.")
"/include/tgl/auto"))
(("LIB=libs")
(string-append "LIB=" (assoc-ref inputs "tgl")
"/lib/tgl")))
#t))
"/lib/tgl")))))
(replace 'install
(lambda args
(apply (assoc-ref copy:%standard-phases 'install)

View File

@ -1555,14 +1555,14 @@ highlighting for dozens of languages. Jed is very small and fast.")
(define-public xnedit
(package
(name "xnedit")
(version "1.5.2")
(version "1.5.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/xnedit/" name "-"
version ".tar.gz"))
(sha256
(base32
"09424qj03p7v7ih2gi3jnpm5iilr24ssab8rkijcjh6n9qn7izl0"))))
"10pw0yylhfmpcmhs74i3ikgsd8jq4dsy64zp9v14wj5s4qrac4c5"))))
(build-system gnu-build-system)
(arguments

View File

@ -40,6 +40,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages time)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
@ -549,6 +550,30 @@ datetime type.")
"This package contains a library for parsing ISO 8601 datetime strings.")
(license bsd-3)))
(define-public rdate
(let ((commit "91d84610e3695e90a884e2953908e95a856a9b74")
(revision "1"))
(package
(name "rdate")
(version (git-version "1.4" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/njh/rdate")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "002ryjq8gj1ml5la4v6dr3bh1zw5kxwy65rpziq8d2ccccarhv59"))))
(build-system gnu-build-system)
(native-inputs (list autoconf automake))
(synopsis "Get date and time based on RFC 868")
(description
"@code{rdate} connects to an RFC 868 time server over a TCP/IP network,
printing the returned time and/or setting the system clock.")
(home-page "https://www.aelius.com/njh/rdate/")
(license gpl2+))))
(define-public datefudge
(package
(name "datefudge")

View File

@ -150,16 +150,16 @@
;; We copy the official build id, which can be found there:
;; https://aus1.torproject.org/torbrowser/update_3/release/.
(define %torbrowser-build-date "20240213172118")
(define %torbrowser-build-date "20240305132801")
;; To find the last version, look at https://www.torproject.org/download/.
(define %torbrowser-version "13.0.10")
(define %torbrowser-version "13.0.11")
;; To find the last Firefox version, browse
;; https://archive.torproject.org/tor-package-archive/torbrowser/<%torbrowser-version>
;; There should be only one archive that starts with
;; "src-firefox-tor-browser-".
(define %torbrowser-firefox-version "115.8.0esr-13.0-1-build1")
(define %torbrowser-firefox-version "115.8.0esr-13.0-1-build2")
;; See tor-browser-build/projects/translation/config.
;; If Tor Browser and Mullvad Browser updates are not synchronized, maybe this
@ -169,11 +169,11 @@
(method git-fetch)
(uri (git-reference
(url "https://gitlab.torproject.org/tpo/translation.git")
(commit "cbd9b6c415ec2edb99237ef67ccd4f033a7b9c2a")))
(commit "16211a4b8524d71525f0ea73c07771c634132b30")))
(file-name "translation-base-browser")
(sha256
(base32
"103dj1zzc68gxzjxwcpc4sbc6qca4zg8kkhdivzpq37ma07sp9sf"))))
"1452lpzbx0a049ksw84q7fj93bldfpllpp86aa4kggiv7vb3dqxk"))))
;; See tor-browser-build/projects/translation/config.
(define translation-tor-browser
@ -181,11 +181,11 @@
(method git-fetch)
(uri (git-reference
(url "https://gitlab.torproject.org/tpo/translation.git")
(commit "a50fa943d7428ebe6e4e6b09f175e098a97eec63")))
(commit "012f643d2d6b04ebf868bf62cdb7ad5b727734f5")))
(file-name "translation-tor-browser")
(sha256
(base32
"0kvjdkgfdl0sh413wrli9pn7ygv9idrq5yvsi5q8c4bmnnxfig7c"))))
"1253zrpl59bwy6s71ip3f84k46m2wwid7ixgf72pzqrkkh5lcnkn"))))
(define torbrowser-assets
;; This is a prebuilt Torbrowser from which we take the assets we need.
@ -201,7 +201,7 @@
version "/tor-browser-linux-x86_64-" version ".tar.xz"))
(sha256
(base32
"1v4jbgzw640lnsyxk275w62xdyqbw0p0fwvkzfawpg4d3pqp7fpw"))))
"0qcl9yqndnaqkvgmmb6f5rrzvwdr323l3r4s3hd9mwv9q1x41h3b"))))
(arguments
(list
#:install-plan
@ -237,7 +237,7 @@ Browser.")
".tar.xz"))
(sha256
(base32
"0lbarj4i21f6jkpk2ji1cmgv625yhqyjksln97zgbbki43bx09v6"))))
"0c7jfliznxfdfs5xrwwgib486vgpmpcvq4s54rxxcxfk633kgz67"))))
(build-system mozilla-build-system)
(inputs
(list go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-lyrebird

View File

@ -1131,8 +1131,8 @@ collaboration using typical untrusted file hosts or services.")
(license license:gpl3+)))
(define-public cgit
(let ((commit "793c420897e18eb3474c751d54cf4e0983f85433")
(rev "1"))
(let ((commit "8905003cba637e5b18069e625cd4f4c05ac30251")
(rev "2"))
(package
(name "cgit")
;; Update the git-source input as well.
@ -1144,7 +1144,7 @@ collaboration using typical untrusted file hosts or services.")
(commit commit)))
(sha256
(base32
"1mhrm14wpqvralf9j33ih5ai6naiq3g2jg2z91gnw9dhh8f9ilwz"))
"1ha8d2n59mv89vv4bqgg3dk82n1rqh8kd8y654vqx7v1v7m645qz"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
@ -1220,9 +1220,9 @@ collaboration using typical untrusted file hosts or services.")
(method url-fetch)
;; cgit is tightly bound to git. Use GIT_VER from the Makefile,
;; which may not match the current (package-version git).
(uri "mirror://kernel.org/software/scm/git/git-2.43.0.tar.xz")
(uri "mirror://kernel.org/software/scm/git/git-2.44.0.tar.xz")
(sha256
(base32 "1v3nkfm3gw8wr7595qy86qla8xyjvi85fmly4lfph4frfcz60ijl"))))
(base32 "1qqxd3pdsca6m93lxxkz9s06xs1sq0ah02lhrr0a6pjvrf6p6n73"))))
("bash-minimal" ,bash-minimal)
("openssl" ,openssl)
("python" ,python)
@ -2900,13 +2900,13 @@ based on a manifest file published by servers.")
(define-public patatt
(package
(name "patatt")
(version "0.4.9")
(version "0.6.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "patatt" version))
(sha256
(base32 "0fpbkmdlnz9s1lakw11jlrzpz4mb6f4dksdiir9g1ppq0g34sy58"))))
(base32 "0a0a5ndlnv7dk2smn8algss6q17gbd6mc7yacz17c9cxabv2c24q"))))
(build-system python-build-system)
(arguments '(#:tests? #f)) ; No tests.
(propagated-inputs

View File

@ -162,6 +162,7 @@
#:use-module (gnu packages man)
#:use-module (gnu packages markup)
#:use-module (gnu packages maths)
#:use-module (gnu packages messaging)
#:use-module (gnu packages music)
#:use-module (gnu packages mp3)
#:use-module (gnu packages multiprecision)
@ -2751,6 +2752,78 @@ possibility to play Youtube videos, download subtitles, remember
the last played position, etc.")
(license license:gpl2+)))
(define-public jellyfin-mpv-shim
(package
(name "jellyfin-mpv-shim")
(version "2.6.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "jellyfin-mpv-shim" version))
(sha256
(base32 "1cy2sfv84k5nw8bqy4aa7v0hdawp7gk5s7wq850xizqk0sz7cipp"))))
(build-system python-build-system)
(arguments
(list
;; There is no test suite, but the code is ill-behaved and tries
;; to open network connections at module import time, which makes
;; `python setup.py test' fail.
#:tests? #f
#:phases
#~(modify-phases %standard-phases
;; sanity-check loads console_scripts endpoints, which launches
;; the program, which makes the build hang. Disable it.
(delete 'sanity-check)
(add-after 'unpack 'disable-updates
(lambda _
(substitute* "jellyfin_mpv_shim/conf.py"
(("check_updates: bool = True")
"check_updates: bool = False")
(("notify_updates: bool = True")
"notify_updates: bool = False"))))
(add-after 'install 'install-desktop-file
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(apps (string-append out "/share/applications"))
(desktop-base "jellyfin_mpv_shim/integration/")
(package-id
"com.github.iwalton3.jellyfin-mpv-shim"))
(for-each (lambda (size)
(install-file (format #f
"~ajellyfin-~a.png"
desktop-base size) apps))
'(256 128 64 48 32 16))
(install-file (string-append desktop-base package-id
".appdata.xml") apps)
(install-file (string-append desktop-base package-id
".desktop") apps)))))))
(inputs (list `(,python "tk")
python-jellyfin-apiclient
python-jinja2
python-mpv
python-mpv-jsonipc
python-pypresence
python-pystray
python-requests))
(home-page "https://github.com/jellyfin/jellyfin-mpv-shim")
(synopsis "Cast media from Jellyfin Mobile and Web apps to MPV")
(description "Jellyfin MPV Shim is a cross-platform cast client for
Jellyfin. It has support for various media files without transcoding.")
(license (list
;; jellyfin-mpv-shim
license:gpl3
;; jellyfin-mpv-shim, and Anime4K, FSRCNNX, NVIDIA Image
;; Scaling, AMD FidelityFX Super Resolution, AMD
;; FidelityFX Contrast Adaptive Sharpening shaders.
license:expat
;; Static Grain shader.
license:public-domain
;; KrigBilatera, SSimDownscaler, and NNEDI3 shaders.
license:lgpl3+))))
(define-public gallery-dl
(package
(name "gallery-dl")

View File

@ -86,7 +86,7 @@
(define-public vim
(package
(name "vim")
(version "9.1.0059")
(version "9.1.0146")
(source (origin
(method git-fetch)
(uri (git-reference
@ -95,7 +95,7 @@
(file-name (git-file-name name version))
(sha256
(base32
"146zhwhagdsbsh3h7f8h7izbzrwh3hgry4cx2lalq9s275qy3hzb"))))
"05lz8ai39p9ypk22n7qc7g21868m08pl12sn4028jshx5nxwy2zn"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
@ -116,7 +116,8 @@
(("/bin/sh") (which "sh")))
(substitute* "src/testdir/test_autocmd.vim"
(("/bin/kill") (which "kill")))
(substitute* "src/if_cscope.c"
(substitute* '("runtime/syntax/sh.vim"
"src/if_cscope.c")
(("/bin/sh") (search-input-file inputs "/bin/sh")))))
(add-before 'check 'set-environment-variables
(lambda* (#:key inputs #:allow-other-keys)

View File

@ -3,10 +3,10 @@
;;; Copyright © 2013 Aljosha Papsch <misc@rpapsch.de>
;;; Copyright © 2014-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015-2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015-2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Raoul Jean Pierre Bonnal <ilpuccio.febo@gmail.com>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2015-2020, 2024 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
@ -4893,9 +4893,40 @@ their web site.")
"1p5i8wsi8q5fpq63i7n7ri1w1lnh4gpn17f88vhkbh14aah5wxj1"))))
(properties '(("upstream-name" . "python-lambda-4dn")))
(build-system pyproject-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-pip-install
(lambda _
(substitute* "aws_lambda/aws_lambda.py"
;; This package uses pip to install Python packages, wrap them
;; up, and push them to AWS Lambda. We need to reset
;; GUIX_PYTHONPATH to avoid introducing package conflicts that
;; would cause pip to fail.
(("(subprocess.call\\(\\[sys.executable.*'--no-cache-dir'\\])\\)" _ m)
(string-append m ", env={\"GUIX_PYTHONPATH\":\""
#$(this-package-input "python")
"/lib/python"
#$(version-major+minor
(package-version (this-package-input "python")))
"/site-packages/\"})"))
;; Zipfile uses the mtime of the temporary directory to build
;; a zip file. But the temp directory has a timestamp of 0,
;; and zipfile refuses to build a zip archive dated before
;; 1980. So we reset the mtime of all temp files before they
;; are added to the zip archive.
(("^( +)arcname = os.path.join" line indent)
(string-append indent
"os.utime(os.path.join(root, file), (315619200, 315619200))\n"
line))))))))
(inputs (list python))
(propagated-inputs
(list python-boto3 python-botocore python-docutils
python-six))
(list python-boto3
python-botocore
python-docutils
python-six
python-virtualenv))
(home-page "https://github.com/4dn-dcic/python-lambda")
(synopsis
"Toolkit for developing and deploying Python code in AWS Lambda")
@ -4967,8 +4998,8 @@ Cloud.")
(license license:expat)))
(define-public guix-data-service
(let ((commit "e13febc81706fbfb7f073bc4e9ce73fbc80d5180")
(revision "44"))
(let ((commit "5f80856ad1587aea38ee4e7b54db558cdb43f6b7")
(revision "45"))
(package
(name "guix-data-service")
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
@ -4980,7 +5011,7 @@ Cloud.")
(file-name (git-file-name name version))
(sha256
(base32
"0pk86b44zg2yn73sxlcd9pqbz8xwprwzaib2npnq80y3yzc6qc22"))))
"18m002d9pkh0qn4xn4n6lijl541m9z7c3lbapl7m6zi41p3dywww"))))
(build-system gnu-build-system)
(arguments
(list
@ -5428,7 +5459,7 @@ tools they trust (e.g. wget).")
(define netsurf-buildsystem
(package
(name "netsurf-buildsystem")
(version "1.9")
(version "1.10")
(source
(origin
(method url-fetch)
@ -5436,7 +5467,7 @@ tools they trust (e.g. wget).")
"buildsystem-" version ".tar.gz"))
(sha256
(base32
"0alsmaig9ln8dgllb3z63gq90fiz75jz0ic71fi0k0k898qix14k"))))
"0yadmrpgvl9r08b56qiy5f77jracc7g9n4krn727fip4d7akjgix"))))
(build-system gnu-build-system)
(inputs `(("perl" ,perl)))
(arguments
@ -5467,7 +5498,7 @@ libraries.")
(define-public libparserutils
(package
(name "libparserutils")
(version "0.2.4")
(version "0.2.5")
(source
(origin
(method url-fetch)
@ -5475,7 +5506,7 @@ libraries.")
name "-" version "-src.tar.gz"))
(sha256
(base32
"1n2794y2l0c8nv8z2pxwfnbn882987ifmxjv60zdxkhcndhswarj"))))
"0ffi5q1jlcdl66nk3cax0mnzvhrjvvjvlx0rfasjfygi333xazii"))))
(build-system gnu-build-system)
(native-inputs
(list netsurf-buildsystem pkg-config perl)) ;for test harness
@ -5490,7 +5521,7 @@ C. It is developed as part of the NetSurf project.")
(define-public hubbub
(package
(name "hubbub")
(version "0.3.7")
(version "0.3.8")
(source
(origin
(method url-fetch)
@ -5498,15 +5529,14 @@ C. It is developed as part of the NetSurf project.")
"libhubbub-" version "-src.tar.gz"))
(sha256
(base32
"1dimfyblmym98qa1b80c5jslv2zk8r44xbdrgrsrw1n9wr9y4yly"))
(patches (search-patches
"hubbub-sort-entities.patch"
"hubbub-maybe-uninitialized.patch"))))
"19fm5h8arnsgxd4w5vr9s2fcb422acciffar3la0b36lygsydhca"))
(patches (search-patches "hubbub-sort-entities.patch"))))
(build-system gnu-build-system)
(native-inputs
(list netsurf-buildsystem
pkg-config
doxygen
gperf
json-c-0.12 ; check whether json-c-0.12 can be removed
perl))
(propagated-inputs
@ -5674,7 +5704,7 @@ developed as part of the Netsurf project.")
(define-public libcss
(package
(name "libcss")
(version "0.9.1")
(version "0.9.2")
(source
(origin
(method url-fetch)
@ -5682,13 +5712,8 @@ developed as part of the Netsurf project.")
"libcss-" version "-src.tar.gz"))
(sha256
(base32
"1p66sdiiqm7w4jkq23hsf08khsnmq93hshh9f9m8sbirjdpf3p6j"))
(modules '((guix build utils)))
(snippet
'(begin
;; This can be removed with the next release.
(substitute* "src/select/computed.c"
(("css_unit unit;") "css_unit unit = CSS_UNIT_PX;"))))))
"0khmf5bdpkc09fpsgwzi23sihpadvyr02jx0q5h1vm9lxjxibwid"))
(patches (search-patches "libcss-check-format.patch"))))
(build-system gnu-build-system)
(native-inputs
(list netsurf-buildsystem pkg-config perl))
@ -5705,7 +5730,7 @@ written in C. It is developed as part of the NetSurf project.")
(define-public libdom
(package
(name "libdom")
(version "0.4.1")
(version "0.4.2") ;TODO include patch for additional tags?
(source
(origin
(method url-fetch)
@ -5713,7 +5738,7 @@ written in C. It is developed as part of the NetSurf project.")
"libdom-" version "-src.tar.gz"))
(sha256
(base32
"0jpg5hx3y0mdxk5szd47dyijqimd2321brbqk2620pp5f4j0gvlq"))))
"0g0gqcglk8f8gbygbcq5ylcx84zsf0vczbm3n3118w2l2splapnh"))))
(build-system gnu-build-system)
(native-inputs
(list netsurf-buildsystem
@ -5740,7 +5765,7 @@ developed as part of the NetSurf project.")
(define-public libsvgtiny
(package
(name "libsvgtiny")
(version "0.1.7")
(version "0.1.8")
(source
(origin
(method url-fetch)
@ -5748,7 +5773,7 @@ developed as part of the NetSurf project.")
name "-" version "-src.tar.gz"))
(sha256
(base32
"10bpkmvfpydj74im3r6kqm9vnvgib6afy0alx71q5n0w5yawy39c"))))
"0750q884ax8wygl64wq03zdjj8h838ch3f8jdfkv4gz809zj4my3"))))
(build-system gnu-build-system)
(native-inputs
(list netsurf-buildsystem pkg-config gperf-3.0))
@ -5769,7 +5794,7 @@ project.")
(define-public libnsbmp
(package
(name "libnsbmp")
(version "0.1.6")
(version "0.1.7")
(source
(origin
(method url-fetch)
@ -5777,7 +5802,7 @@ project.")
name "-" version "-src.tar.gz"))
(sha256
(base32
"0krjg69a2amxjsahdgm3wmy9ngnyr3gfs2a1zhdlbvb0z1jr7i3r"))))
"14r2v1ich4lxn3sdwpiwq5adydrd1qlhbd8mbamalaqj59laf1sl"))))
(build-system gnu-build-system)
(native-inputs
(list netsurf-buildsystem))
@ -5825,7 +5850,7 @@ operations.")
(define-public libnsgif
(package
(name "libnsgif")
(version "0.2.1")
(version "1.0.0")
(source
(origin
(method url-fetch)
@ -5833,7 +5858,7 @@ operations.")
name "-" version "-src.tar.gz"))
(sha256
(base32
"0jwshypgmx16xlsbx3d8njk8a5khazlplca5mxd3rdbhrlsabbly"))))
"06q69hn0nz3c6hnwmzfcldyrppkvimx3s97ql3sx4m0lyr1ch530"))))
(build-system gnu-build-system)
(native-inputs
(list netsurf-buildsystem))
@ -5876,7 +5901,7 @@ client applications. It is developed as part of the NetSurf project.")
(define-public libnsutils
(package
(name "libnsutils")
(version "0.1.0")
(version "0.1.1")
(source
(origin
(method url-fetch)
@ -5884,7 +5909,7 @@ client applications. It is developed as part of the NetSurf project.")
name "-" version "-src.tar.gz"))
(sha256
(base32
"1w5fyy2i60a3v3if3iqcn9sy9sycx6966rcx53v85gja6hb6a33r"))))
"14pakllwf7a205d0dkvyg8jhmqfbi5sh5riw840d13j5dr9b952n"))))
(build-system gnu-build-system)
(native-inputs
(list netsurf-buildsystem))
@ -5899,7 +5924,7 @@ developed as part of the NetSurf project.")
(define-public libnspsl
(package
(name "libnspsl")
(version "0.1.6")
(version "0.1.7")
(source
(origin
(method url-fetch)
@ -5907,7 +5932,7 @@ developed as part of the NetSurf project.")
"libnspsl-" version "-src.tar.gz"))
(sha256
(base32
"02q28n5i6fwqcz1nn167rb71k1q95mx38mfah6zi1lvqrc2q5ifk"))))
"105cjkb622wz11z26il4j1n4ydyrrgv0nglr67aawpam5z1wx11n"))))
(build-system gnu-build-system)
(native-inputs
(list netsurf-buildsystem))
@ -5922,7 +5947,7 @@ Public Suffix List. It is developed as part of the NetSurf project.")
(define-public nsgenbind
(package
(name "nsgenbind")
(version "0.8")
(version "0.9")
(source
(origin
(method url-fetch)
@ -5930,7 +5955,7 @@ Public Suffix List. It is developed as part of the NetSurf project.")
"nsgenbind-" version "-src.tar.gz"))
(sha256
(base32
"1cqwgwca49jvmijwiyaab2bwxicgxdrnlpinf8kp3nha02nm73ad"))))
"0p9q9ffn9hf1qrphz2qxq2xvyysn5kg2dbl8cbnkwb5wdkvf0b13"))))
(build-system gnu-build-system)
(native-inputs
(list netsurf-buildsystem bison flex))
@ -5948,7 +5973,7 @@ w3c webidl files and a binding configuration file.")
(define-public netsurf
(package
(name "netsurf")
(version "3.10")
(version "3.11")
(source
(origin
(method url-fetch)
@ -5956,7 +5981,7 @@ w3c webidl files and a binding configuration file.")
"releases/source/netsurf-" version "-src.tar.gz"))
(sha256
(base32
"0plra64c5xyiw12yx2q13brxsv8apmany97zqa2lcqckw4ll8j1n"))
"1chw40nx7krpy7m14bajfrcj88h98if8py0k7c2qshpfxxm652n2"))
(patches (search-patches "netsurf-system-utf8proc.patch"
"netsurf-y2038-tests.patch"
"netsurf-longer-test-timeout.patch"
@ -6007,7 +6032,7 @@ w3c webidl files and a binding configuration file.")
(add-after 'unpack 'remove-timestamps
;; Avoid embedding timestamp for reproducible builds
(lambda _
(substitute* "utils/git-testament.pl"
(substitute* "tools/git-testament.pl"
(("WT_COMPILEDATE ..$compiledate")
"WT_COMPILEDATE \\\""))))
(add-after 'build 'adjust-welcome
@ -6017,12 +6042,7 @@ w3c webidl files and a binding configuration file.")
(("<(img|input)([^>]*)>" _ tag contents)
(string-append "<" tag contents " />"))
;; Increase freedom.
((" open source") ", free software")
;; Prefer a more privacy-respecting default search engine.
(("www.google.co.uk") "www.duckduckgo.com/html")
(("Google Search") "DuckDuckGo Search")
(("name=\"btnG\"") ""))
;; Remove default links so it doesn't seem we're endorsing them.
((" open source") ", free software"))
(with-atomic-file-replacement "frontends/gtk/res/welcome.html"
(lambda (in out)
;; Leave the DOCTYPE header as is.
@ -6037,8 +6057,23 @@ w3c webidl files and a binding configuration file.")
;; We'd like to use sxml-match here, but it can't
;; match against generic tag symbols...
(match sxml
;; Remove default links so it doesn't seem we're
;; endorsing them.
(`(div (@ (class "links")) . ,rest)
'())
;; Prefer a more privacy-respecting default search
;; engine.
(`(form . ,rest)
`(form (@ (action "https://lite.duckduckgo.com/lite/")
(method "post"))
(div (@ (class "websearch"))
(input (@ (type "text")
(size "42")
(name "q")
(autocomplete "off")
(value "")))
(input (@ (type "submit")
(value "DuckDuckGo Search"))))))
(`(ENTITY ,ent)
`(*ENTITY* ,ent))
((x ...)

View File

@ -127,13 +127,20 @@ engine that uses Wayland for graphics output.")
(define-public webkitgtk
(package
(name "webkitgtk")
(version "2.42.4")
(version "2.42.5")
(source (origin
(method url-fetch)
(uri (string-append "https://www.webkitgtk.org/releases/"
name "-" version ".tar.xz"))
(sha256
(base32 "11pdcwmdj3i9aarrf7wsfvadi6jnkaf6zf7c5i2768x2plq8na2j"))
(base32 "0jg7c7z572afywwrnvdj3m5agaviv0vkqmzznnzzv30byb0phhmn"))
(snippet
#~(begin
(use-modules (guix build utils))
;; https://bugs.webkit.org/show_bug.cgi?id=268739
;; Fix a FTBFS on i686, powerpc64le.
(substitute* "Source/JavaScriptCore/llint/LowLevelInterpreter.cpp"
(("UNUSED_VARIABLE\\(t[67]\\);") ""))))
(patches (search-patches
"webkitgtk-adjust-bubblewrap-paths.patch"))))
(build-system cmake-build-system)

View File

@ -1762,7 +1762,7 @@ modules for building a Wayland compositor.")
(define-public sway
(package
(name "sway")
(version "1.8.1")
(version "1.9")
(source
(origin
(method git-fetch)
@ -1771,27 +1771,23 @@ modules for building a Wayland compositor.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1y7brfrsjnm9gksijgnr6zxqiqvn06mdiwsk5j87ggmxazxd66av"))))
(base32 "1n36vgpi4bg2gkiq4fam4khly1z9bjinmjclzq5vfx0z8h7a5bzz"))))
(build-system meson-build-system)
(arguments
`(;; elogind is propagated by wlroots -> libseat
(list
;; elogind is propagated by wlroots -> libseat
;; and would otherwise shadow basu.
#:configure-flags '("-Dsd-bus-provider=basu")
#:configure-flags
#~'("-Dsd-bus-provider=basu")
#:phases
(modify-phases %standard-phases
#~(modify-phases %standard-phases
(add-before 'configure 'hardcode-paths
(lambda* (#:key inputs #:allow-other-keys)
;; Hardcode path to swaybg.
(substitute* "sway/config.c"
(("strdup..swaybg..")
(string-append "strdup(\"" (assoc-ref inputs "swaybg")
"/bin/swaybg\")")))
;; Hardcode path to scdoc.
(substitute* "meson.build"
(("scdoc.get_pkgconfig_variable..scdoc..")
(string-append "'" (assoc-ref inputs "scdoc")
"/bin/scdoc'")))
#t)))))
(format #f "strdup(\"~a\")"
(search-input-file inputs "bin/swaybg")))))))))
(inputs (list basu
cairo
gdk-pixbuf
@ -1803,7 +1799,7 @@ modules for building a Wayland compositor.")
pcre2
swaybg
wayland
wlroots-0.16))
wlroots))
(native-inputs
(cons* linux-pam mesa pkg-config scdoc wayland-protocols
(if (%current-target-system)

View File

@ -2032,7 +2032,7 @@ by name.")
(package
(inherit rofi)
(name "rofi-wayland")
(version "1.7.5+wayland2")
(version "1.7.5+wayland3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/lbonn/rofi"
@ -2040,7 +2040,7 @@ by name.")
"/rofi-" version ".tar.xz"))
(sha256
(base32
"0l6rf8qwvawyh938pinl9fkwzjnq72xpa9a7lwk9jrr5lkk3h8yj"))))
"11xiksh3m7yf3270kqf1jranlfh9q6rr8i99jvx4ak4azn4pwhpw"))))
(build-system meson-build-system)
(inputs
(modify-inputs (package-inputs base)

View File

@ -13,6 +13,7 @@
;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -45,9 +46,11 @@
#:use-module (gnu packages xml)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu))
#:use-module (guix build-system gnu)
#:use-module (guix gexp))
(define-public libogg
(package
@ -97,6 +100,8 @@ a fully open, non-proprietary, patent-and-royalty-free, general-purpose
compressed audio format for mid to high quality (8kHz-48.0kHz, 16+ bit,
polyphonic) audio and music at fixed and variable bitrates from 16 to
128 kbps/channel.")
;; This package shows a sizable speed increase when tuned.
(properties `((tunable? . #t)))
(license (license:non-copyleft "file://COPYING"
"See COPYING in the distribution."))
(home-page "https://xiph.org/vorbis/")))
@ -115,7 +120,26 @@ polyphonic) audio and music at fixed and variable bitrates from 16 to
(patches (search-patches "libtheora-config-guess.patch"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--disable-static")))
(append
(if (and (target-riscv64?)
(%current-target-system))
(list #:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'update-config
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(for-each (lambda (file)
(install-file
(search-input-file
(or native-inputs inputs)
(string-append "/bin/" file)) "."))
'("config.guess" "config.sub"))))))
'())
(list #:configure-flags #~'("--disable-static"))))
(native-inputs
(if (and (target-riscv64?)
(%current-target-system))
(list config)
'()))
(inputs (list libvorbis))
;; The .pc files refer to libogg.
(propagated-inputs (list libogg))
@ -345,6 +369,8 @@ is unmatched for interactive speech and music transmission over the Internet,
but is also intended for storage and streaming applications. It is
standardized by the Internet Engineering Task Force (IETF) as RFC 6716 which
incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec.")
;; This package shows a sizable speed increase when tuned.
(properties `((tunable? . #t)))
(license license:bsd-3)
(home-page "https://www.opus-codec.org")))

View File

@ -1220,10 +1220,13 @@ authpriv.*;auth.info /var/log/secure
;; pre-initialized /etc/guix/acl file in the VM. Thus,
;; clear 'authorize-key?' so that it's not overridden
;; at activation time.
;; Since it's used for offloading, disable substitutes
;; (this avoids network issues).
(guix-service-type config =>
(guix-configuration
(inherit config)
(authorize-key? #f)))
(authorize-key? #f)
(use-substitutes? #f)))
(syslog-service-type config =>
(syslog-configuration
(config-file

View File

@ -132,15 +132,27 @@ MODULES and taken from LINUX."
#~(begin
(use-modules (gnu build linux-modules)
(guix build utils)
(rnrs io ports)
(srfi srfi-1)
(srfi srfi-26))
(define module-dir
(string-append #$linux "/lib/modules"))
(define builtin-modules
(call-with-input-file
(first (find-files module-dir "modules.builtin$"))
(lambda (port)
(map file-name->module-name
(string-tokenize
(get-string-all port))))))
(define modules-to-lookup
(lset-difference string=? '#$modules builtin-modules))
(define modules
(let* ((lookup (cut find-module-file module-dir <>))
(modules (map lookup '#$modules)))
(modules (map lookup modules-to-lookup)))
(append modules
(recursive-module-dependencies
modules

View File

@ -37,6 +37,7 @@ revision identifier. Return #t on success, else throw an exception."
(invoke bzr-command "-Ossl.cert_reqs=none" "checkout"
"--lightweight" "-r" revision url directory)
(with-directory-excursion directory
(delete-file-recursively ".bzr")))
(delete-file-recursively ".bzr"))
#t)
;;; bzr.scm ends here

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017, 2019, 2020, 2024 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -57,9 +57,9 @@ ITEM."
(restore-file decompressed-port
item))))
(define (download-nar item)
"Download and extract the normalized archive for ITEM. Return #t on
success, #f otherwise."
(define* (download-nar item #:optional (output item))
"Download and extract to OUTPUT the normalized archive for ITEM, a store
item. Return #t on success, #f otherwise."
;; Let progress reports go through.
(setvbuf (current-error-port) 'none)
(setvbuf (current-output-port) 'none)
@ -96,10 +96,10 @@ success, #f otherwise."
#:download-size size)))
(if (string-contains url "/lzip")
(restore-lzipped-nar port-with-progress
item
output
size)
(restore-file port-with-progress
item)))
output)))
(newline)
#t))))
(()

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012-2022, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Timothy Sample <samplet@ngyro.com>
@ -40,7 +40,10 @@
#:autoload (guix swh) (swh-download-directory %verify-swh-certificate?)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
#:export (open-socket-for-uri
#:export (%download-methods
download-method-enabled?
open-socket-for-uri
open-connection-for-uri
http-fetch
%x509-certificate-directory
@ -622,6 +625,20 @@ true, verify HTTPS certificates; otherwise simply ignore them."
(lambda (key . args)
(print-exception (current-error-port) #f key args))))
(define %download-methods
;; Either #f (the default) or a list of symbols denoting the sequence of
;; download methods to be used--e.g., '(swh nar upstream).
(make-parameter
(and=> (getenv "GUIX_DOWNLOAD_METHODS")
(lambda (str)
(map string->symbol (string-tokenize str))))))
(define (download-method-enabled? method)
"Return true if METHOD (a symbol such as 'swh) is enabled as part of the
download fallback sequence."
(or (not (%download-methods))
(memq method (%download-methods))))
(define (uri-vicinity dir file)
"Concatenate DIR, slash, and FILE, keeping only one slash in between.
This is required by some HTTP servers."
@ -788,18 +805,28 @@ otherwise simply ignore them."
hashes)))
disarchive-mirrors))
(define initial-uris
(append (if (download-method-enabled? 'upstream)
uri
'())
(if (download-method-enabled? 'content-addressed-mirrors)
content-addressed-uris
'())
(if (download-method-enabled? 'internet-archive)
(match uri
((first . _)
(or (and=> (internet-archive-uri first) list)
'()))
(() '()))
'())))
;; Make this unbuffered so 'progress-report/file' works as expected. 'line
;; means '\n', not '\r', so it's not appropriate here.
(setvbuf (current-output-port) 'none)
(setvbuf (current-error-port) 'line)
(let try ((uri (append uri content-addressed-uris
(match uri
((first . _)
(or (and=> (internet-archive-uri first) list)
'()))
(() '())))))
(let try ((uri initial-uris))
(match uri
((uri tail ...)
(or (fetch uri file)
@ -807,9 +834,10 @@ otherwise simply ignore them."
(()
;; If we are looking for a software archive, one last thing we
;; can try is to use Disarchive to assemble it.
(or (disarchive-fetch/any disarchive-uris file
(or (and (download-method-enabled? 'disarchive)
(disarchive-fetch/any disarchive-uris file
#:verify-certificate? verify-certificate?
#:timeout timeout)
#:timeout timeout))
(begin
(format (current-error-port) "failed to download ~s from ~s~%"
file url)

View File

@ -19,6 +19,8 @@
(define-module (guix build git)
#:use-module (guix build utils)
#:use-module ((guix build download)
#:select (download-method-enabled?))
#:autoload (guix build download-nar) (download-nar)
#:autoload (guix swh) (%verify-swh-certificate?
swh-download
@ -92,25 +94,30 @@ fetched, recursively. Return #t on success, #f otherwise."
(define* (git-fetch-with-fallback url commit directory
#:key (git-command "git")
#:key (item directory)
(git-command "git")
hash hash-algorithm
lfs? recursive?)
"Like 'git-fetch', fetch COMMIT from URL into DIRECTORY, but fall back to
alternative methods when fetching from URL fails: attempt to download a nar,
and if that also fails, download from the Software Heritage archive. When
HASH and HASH-ALGORITHM are provided, they are interpreted as the nar hash of
the directory of interested and are used as its content address at SWH."
(or (git-fetch url commit directory
alternative methods when fetching from URL fails: attempt to download a nar
for ITEM, and if that also fails, download from the Software Heritage archive.
When HASH and HASH-ALGORITHM are provided, they are interpreted as the nar
hash of the directory of interested and are used as its content address at
SWH."
(or (and (download-method-enabled? 'upstream)
(git-fetch url commit directory
#:lfs? lfs?
#:recursive? recursive?
#:git-command git-command)
(download-nar directory)
#:git-command git-command))
(and (download-method-enabled? 'nar)
(download-nar item directory))
;; As a last resort, attempt to download from Software Heritage.
;; Disable X.509 certificate verification to avoid depending
;; on nss-certs--we're authenticating the checkout anyway.
;; XXX: Currently recursive checkouts are not supported.
(and (not recursive?)
(download-method-enabled? 'swh)
(parameterize ((%verify-swh-certificate? #f))
(format (current-error-port)
"Trying to download from Software Heritage...~%")

View File

@ -187,6 +187,12 @@ installed; this is useful for files that are meant to be included."
(let ((source-files
(with-directory-excursion source-directory
(find-files "." scheme-file-regexp))))
(for-each
(lambda (file)
(install-file (string-append source-directory "/" file)
(string-append module-dir
"/" (dirname file))))
source-files)
(invoke-each
(filter-map (lambda (file)
(and (or (not not-compiled-file-regexp)
@ -202,21 +208,14 @@ installed; this is useful for files that are meant to be included."
flags)))
source-files)
#:max-processes (parallel-job-count)
#:report-progress report-build-progress)
(for-each
(lambda (file)
(install-file (string-append source-directory "/" file)
(string-append module-dir
"/" (dirname file))))
source-files))
#:report-progress report-build-progress))
#t))
(define* (install-documentation #:key outputs
(documentation-file-regexp
%documentation-file-regexp)
#:allow-other-keys)
"Install files that mactch DOCUMENTATION-FILE-REGEXP."
"Install files that match DOCUMENTATION-FILE-REGEXP."
(let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/doc/"
(strip-store-file-name out))))

View File

@ -36,7 +36,11 @@
(define* (check #:key tests? inputs with-prove6? #:allow-other-keys)
(if (and tests? (assoc-ref inputs "perl6-tap-harness"))
;(if (and tests? with-prove6?)
(invoke "prove6" "-I=lib" "t/")
(let ((test-files (find-files "t/" "\\.(rakutest|t|t6)$")))
(invoke "raku" "-MTAP" "-e"
(string-append
"my @tests = <" (string-join test-files " ") ">; "
"TAP::Harness.new().run(@tests);")))
(format #t "test suite not run~%"))
#t)
@ -59,7 +63,7 @@
#t)
(begin
(let ((inst (string-append (assoc-ref inputs "rakudo")
"/share/perl6/tools/install-dist.p6")))
"/share/perl6/tools/install-dist.raku")))
(setenv "RAKUDO_RERESOLVE_DEPENDENCIES" "0")
(setenv "RAKUDO_MODULE_DEBUG" "1") ; be verbose while building
(invoke inst (string-append "--to=" perl6) "--for=site"))))))

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2024 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -23,7 +24,7 @@
#:use-module (guix packages)
#:use-module (guix records)
#:use-module (guix store)
#:use-module (ice-9 match)
#:export (bzr-reference
bzr-reference?
bzr-reference-url
@ -57,14 +58,40 @@
"Return a fixed-output derivation that fetches REF, a <bzr-reference>
object. The output is expected to have recursive hash HASH of type
HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
(define guile-json
(module-ref (resolve-interface '(gnu packages guile)) 'guile-json-4))
(define guile-lzlib
(module-ref (resolve-interface '(gnu packages guile)) 'guile-lzlib))
(define guile-gnutls
(module-ref (resolve-interface '(gnu packages tls)) 'guile-gnutls))
(define build
(with-extensions (list guile-gnutls guile-lzlib guile-json)
(with-imported-modules (source-module-closure
'((guix build bzr)))
'((guix build bzr)
(guix build utils)
(guix build download)
(guix build download-nar)))
#~(begin
(use-modules (guix build bzr))
(bzr-fetch
(getenv "bzr url") (getenv "bzr reference") #$output
#:bzr-command (string-append #+bzr "/bin/brz")))))
(use-modules (guix build bzr)
(guix build download-nar)
((guix build download)
#:select (download-method-enabled?))
(guix build utils)
(srfi srfi-34))
(or (and (download-method-enabled? 'upstream)
(guard (c ((invoke-error? c)
(report-invoke-error c)
#f))
(bzr-fetch (getenv "bzr url") (getenv "bzr reference")
#$output
#:bzr-command
(string-append #+bzr "/bin/brz"))))
(and (download-method-enabled? 'nar)
(download-nar #$output)))))))
(mlet %store-monad ((guile (package->derivation guile system)))
(gexp->derivation (or name "bzr-branch") build
@ -74,7 +101,11 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
#:script-name "bzr-download"
#:env-vars
`(("bzr url" . ,(bzr-reference-url ref))
("bzr reference" . ,(bzr-reference-revision ref)))
("bzr reference" . ,(bzr-reference-revision ref))
,@(match (getenv "GUIX_DOWNLOAD_METHODS")
(#f '())
(value
`(("GUIX_DOWNLOAD_METHODS" . ,value)))))
#:leaked-env-vars '("http_proxy" "https_proxy"
"LC_ALL" "LC_MESSAGES" "LANG"
"COLUMNS")

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2022, 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2022-2024 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -113,7 +113,7 @@
"Return the architecture name, suitable for GCC's '-march' flag, that
corresponds to CPU, a record as returned by 'current-cpu'."
(match (cpu-architecture cpu)
("x86_64"
((or "x86_64" "i686")
;; Transcribed from GCC's 'host_detect_local_cpu' in driver-i386.cc.
(letrec-syntax ((if-flags (syntax-rules (=>)
((_)
@ -128,18 +128,21 @@ corresponds to CPU, a record as returned by 'current-cpu'."
(or (and (equal? "GenuineIntel" (cpu-vendor cpu))
(= 6 (cpu-family cpu)) ;the "Pentium Pro" family
(if-flags ("avx" "raoint" => "grandridge")
("avx" "amx_fp16" => "graniterapids")
(if-flags ("avx512f" "amx_complex" => "graniterapids-d")
("avx512f" "amx_fp16" => "graniterapids")
("avx512f" "avx512vp2intersect" => "tigerlake")
("avx512f" "tsxldtrk" => "sapphirerapids")
("avx512f" "avx512bf16" => "cooperlake")
("avx512f" "wbnoinvd" => "icelake-server")
("avx512f" "avx512bitalg" => "icelake-client")
("avx512f" "avx512vbmi" => "cannonlake")
("avx512f" "avx5124vnniw" => "knm")
("avx512f" "avx512er" => "knl")
("avx512f" => "skylake-avx512")
("avx" "prefetchi" => "pantherlake")
("avx" "user_msr" => "clearwaterforest")
("avx" "sm3" => "arrowlake-s")
("avx" "avxvnniint8" => "sierraforest")
("avx" "avx512vp2intersect" => "tigerlake")
("avx" "tsxldtrk" => "sapphirerapids")
("avx" "avx512bf16" => "cooperlake")
("avx" "wbnoinvd" => "icelake-server")
("avx" "avx512bitalg" => "icelake-client")
("avx" "avx512vbmi" => "cannonlake")
("avx" "avx5124vnniw" => "knm")
("avx" "avx512er" => "knl")
("avx" "avx512f" => "skylake-avx512")
("avx" "serialize" => "alderlake")
("avx" "clflushopt" => "skylake")
("avx" "adx" => "broadwell")
@ -190,10 +193,16 @@ corresponds to CPU, a record as returned by 'current-cpu'."
(= #x3b (cpu-model cpu)))
"lujiazui"
(cpu->micro-architecture-level cpu))
(if (and (= 7 (cpu-family cpu))
(>= #x5b (cpu-model cpu)))
"yongfeng"
(cpu->micro-architecture-level cpu))
;; TODO: Recognize CENTAUR/CYRIX/NSC?
"x86_64")))
(match (cpu-architecture cpu)
("x86_64" "x86-64")
(_ "generic")))))
("aarch64"
;; Transcribed from GCC's list of aarch64 processors in aarch64-cores.def
;; What to do with big.LITTLE cores?
@ -210,7 +219,9 @@ corresponds to CPU, a record as returned by 'current-cpu'."
(#xd15
"armv8-r")
((or #xd46 #xd47 #xd4d #xd48 #xd4e #xd49 #xd4f)
"armv9-a")))
"armv9-a")
((or #xd80 #xd81)
"armv9.2-a")))
("0x42"
"armv8.1-a")
("0x43"
@ -241,8 +252,14 @@ corresponds to CPU, a record as returned by 'current-cpu'."
"armv8-a")
("0x68"
"armv8-a")
("0x6d"
"armv9-a")
("0xC0"
(match (cpu-model cpu)
((or #xac3 #xac4)
"armv8.6-a")
(#xac5
"armv8.7-a")))
("0xC00"
"armv8-a")
(_
@ -275,12 +292,12 @@ correspond roughly to CPU, a record as returned by 'current-cpu'."
;; v2: CMPXCHG16B, LAHF, SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3
("avx512f" "avx512bw" "abx512cd" "abx512dq" "avx512vl"
"avx" "avx2" "bmi1" "bmi2" "f16c" "fma" "movbe"
"popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86_64-v4")
"popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86-64-v4")
("avx" "avx2" "bmi1" "bmi2" "f16c" "fma" "movbe"
"popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86_64-v3")
("popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86_64-v2")
(_ => "x86_64-v1")))
"x86_64-v1"))
"popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86-64-v3")
("popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86-64-v2")
(_ => "x86-64")))
"x86-64"))
(architecture
;; TODO: More architectures
architecture)))
@ -289,19 +306,22 @@ correspond roughly to CPU, a record as returned by 'current-cpu'."
"Return a matching psABI micro-architecture, allowing optimizations for x86_64
CPUs for compilers which don't allow for more focused optimizing."
;; Matching gcc-architectures isn't an easy task, with the rule-of-thumb being
;; 'Haswell and higher' qualify for x86_64-v3.
;; AVX512F+ for x86-64-v4, AVX+ for x86-64-v3.
;; https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex
(match gcc-architecture
((or "grandridge" "graniterapids" "sierraforest" "tigerlake"
"sapphirerapids" "cooperlake" "icelake-server" "icelake-client"
"cannonlake" "knm" "knl" "skylake-avx512" "alderlake" "skylake"
"broadwell" "haswell"
"znver4" "znver3" "znver2" "znver1" "bdver4")
"x86_64-v3")
((or "graniterapids-d" "graniterapids" "tigerlake" "sapphirerapids"
"cooperlake" "icelake-server" "icelake-client" "cannonlake" "knm"
"knl" "skylake-avx512"
"znver4")
"x86-64-v4")
((or "pantherlake" "clearwaterforest" "arrowlake-s" "sierraforest"
"alderlake" "skylake" "broadwell" "haswell"
"znver3" "znver2" "znver1" "bdver4")
"x86-64-v3")
((or "sandybridge" "tremont" "goldmont-plus" "goldmont" "silvermont"
"nehalem" "bonnell" "core2"
"btver2" "athalon" "k8-sse3" "k8" "bdver3" "bdver2" "bdver1" "btver1"
"amdfam10"
"lujiazui" "x86-64")
"x86_64-v1")
"lujiazui" "yongfeng" "x86-64")
"x86-64")
(_ gcc-architecture)))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014-2017, 2019, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;;
@ -73,6 +73,7 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
(define modules
(delete '(guix config)
(source-module-closure '((guix build cvs)
(guix build download)
(guix build download-nar)))))
(define build
(with-imported-modules modules
@ -80,20 +81,29 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
guile-lzlib)
#~(begin
(use-modules (guix build cvs)
((guix build download)
#:select (download-method-enabled?))
(guix build download-nar))
(or (cvs-fetch '#$(cvs-reference-root-directory ref)
(or (and (download-method-enabled? 'upstream)
(cvs-fetch '#$(cvs-reference-root-directory ref)
'#$(cvs-reference-module ref)
'#$(cvs-reference-revision ref)
#$output
#:cvs-command (string-append #+cvs "/bin/cvs"))
(download-nar #$output))))))
#:cvs-command
#+(file-append cvs "/bin/cvs")))
(and (download-method-enabled? 'nar)
(download-nar #$output)))))))
(mlet %store-monad ((guile (package->derivation guile system)))
(gexp->derivation (or name "cvs-checkout") build
#:leaked-env-vars '("http_proxy" "https_proxy"
"LC_ALL" "LC_MESSAGES" "LANG"
"COLUMNS")
#:env-vars (match (getenv "GUIX_DOWNLOAD_METHODS")
(#f '())
(value
`(("GUIX_DOWNLOAD_METHODS" . ,value))))
#:system system
#:hash-algo hash-algo
#:hash hash

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012-2021, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
@ -35,9 +35,9 @@
#:use-module (web uri)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:export (%mirrors
#:export (%download-methods
%mirrors
%disarchive-mirrors
%download-fallback-test
(url-fetch* . url-fetch)
url-fetch/executable
url-fetch/tarbomb
@ -434,10 +434,19 @@
(define built-in-builders*
(store-lift built-in-builders))
(define %download-methods
;; Either #f (the default) or a list of symbols denoting the sequence of
;; download methods to be used--e.g., '(swh nar upstream).
(make-parameter
(and=> (getenv "GUIX_DOWNLOAD_METHODS")
(lambda (str)
(map string->symbol (string-tokenize str))))))
(define* (built-in-download file-name url
#:key system hash-algo hash
mirrors content-addressed-mirrors
disarchive-mirrors
(download-methods (%download-methods))
executable?
(guile 'unused))
"Download FILE-NAME from URL using the built-in 'download' builder. When
@ -471,6 +480,11 @@ download by itself using its own dependencies."
("disarchive-mirrors" . ,disarchive-mirrors)
,@(if executable?
'(("executable" . "1"))
'())
,@(if download-methods
`(("download-methods"
. ,(object->string
download-methods)))
'()))
;; Do not offload this derivation because we cannot be
@ -479,24 +493,6 @@ download by itself using its own dependencies."
;; for that built-in is widespread.
#:local-build? #t)))
(define %download-fallback-test
;; Define whether to test one of the download fallback mechanism. Possible
;; values are:
;;
;; - #f, to use the normal download methods, not trying to exercise the
;; fallback mechanism;
;;
;; - 'none, to disable all the fallback mechanisms;
;;
;; - 'content-addressed-mirrors, to purposefully attempt to download from
;; a content-addressed mirror;
;;
;; - 'disarchive-mirrors, to download from Disarchive + Software Heritage.
;;
;; This is meant to be used for testing purposes.
(make-parameter (and=> (getenv "GUIX_DOWNLOAD_FALLBACK_TEST")
string->symbol)))
(define* (url-fetch* url hash-algo hash
#:optional name
#:key (system (%current-system))
@ -532,10 +528,7 @@ name in the store."
(unless (member "download" builtins)
(error "'guix-daemon' is too old, please upgrade" builtins))
(built-in-download (or name file-name)
(match (%download-fallback-test)
((or #f 'none) url)
(_ "https://example.org/does-not-exist"))
(built-in-download (or name file-name) url
#:guile guile
#:system system
#:hash-algo hash-algo
@ -543,15 +536,9 @@ name in the store."
#:executable? executable?
#:mirrors %mirror-file
#:content-addressed-mirrors
(match (%download-fallback-test)
((or #f 'content-addressed-mirrors)
%content-addressed-mirror-file)
(_ %no-mirrors-file))
%content-addressed-mirror-file
#:disarchive-mirrors
(match (%download-fallback-test)
((or #f 'disarchive-mirrors)
%disarchive-mirror-file)
(_ %no-disarchive-mirrors-file)))))))
%disarchive-mirror-file)))))
(define* (url-fetch/executable url hash-algo hash
#:optional name

View File

@ -29,8 +29,8 @@
#:use-module (guix packages)
#:use-module (guix modules)
#:use-module ((guix derivations) #:select (raw-derivation))
#:autoload (guix download) (%download-methods)
#:autoload (guix build-system gnu) (standard-packages)
#:autoload (guix download) (%download-fallback-test)
#:autoload (git bindings) (libgit2-init!)
#:autoload (git repository) (repository-open
repository-close!
@ -180,11 +180,7 @@ respective documentation."
;; downloads.
#:script-name "git-download"
#:env-vars
`(("git url" . ,(match (%download-fallback-test)
('content-addressed-mirrors
"https://example.org/does-not-exist")
(_
(git-reference-url ref))))
`(("git url" . ,(git-reference-url ref))
("git commit" . ,(git-reference-commit ref))
("git recursive?" . ,(object->string
(git-reference-recursive? ref)))
@ -246,14 +242,14 @@ download by itself using its own dependencies."
#:recursive? #t
#:env-vars
`(("url" . ,(object->string
(match (%download-fallback-test)
('content-addressed-mirrors
"https://example.org/does-not-exist")
(_
(git-reference-url ref)))))
(git-reference-url ref)))
("commit" . ,(git-reference-commit ref))
("recursive?" . ,(object->string
(git-reference-recursive? ref))))
(git-reference-recursive? ref)))
,@(if (%download-methods)
`(("download-methods"
. ,(object->string (%download-methods))))
'()))
#:leaked-env-vars '("http_proxy" "https_proxy"
"LC_ALL" "LC_MESSAGES" "LANG"
"COLUMNS")

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014-2017, 2019, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;;
@ -84,6 +84,7 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
(define modules
(delete '(guix config)
(source-module-closure '((guix build hg)
(guix build download)
(guix build download-nar)
(guix swh)))))
@ -94,6 +95,8 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
#~(begin
(use-modules (guix build hg)
(guix build utils) ;for `set-path-environment-variable'
((guix build download)
#:select (download-method-enabled?))
(guix build download-nar)
(guix swh)
(ice-9 match))
@ -106,26 +109,35 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
(setvbuf (current-output-port) 'line)
(setvbuf (current-error-port) 'line)
(or (hg-fetch '#$(hg-reference-url ref)
(or (and (download-method-enabled? 'upstream)
(hg-fetch '#$(hg-reference-url ref)
'#$(hg-reference-changeset ref)
#$output
#:hg-command (string-append #+hg "/bin/hg"))
(download-nar #$output)
#:hg-command (string-append #+hg "/bin/hg")))
(and (download-method-enabled? 'nar)
(download-nar #$output))
;; As a last resort, attempt to download from Software Heritage.
;; Disable X.509 certificate verification to avoid depending
;; on nss-certs--we're authenticating the checkout anyway.
(and (download-method-enabled? 'swh)
(parameterize ((%verify-swh-certificate? #f))
(format (current-error-port)
"Trying to download from Software Heritage...~%")
(or (swh-download-directory-by-nar-hash
#$hash '#$hash-algo #$output)
(swh-download #$(hg-reference-url ref)
#$(hg-reference-changeset ref)
#$output)))))))
#$output)))))))))
(mlet %store-monad ((guile (package->derivation guile system)))
(gexp->derivation (or name "hg-checkout") build
#:leaked-env-vars '("http_proxy" "https_proxy"
"LC_ALL" "LC_MESSAGES" "LANG"
"COLUMNS")
#:env-vars (match (getenv "GUIX_DOWNLOAD_METHODS")
(#f '())
(value
`(("GUIX_DOWNLOAD_METHODS" . ,value))))
#:system system
#:local-build? #t ;don't offload repo cloning
#:hash-algo hash-algo

View File

@ -418,6 +418,7 @@ empty list when the FIELD cannot be found."
"none"
"rtools"
"unix"
"use_c17"
"windows"
"xcode"
"xquartz"))

View File

@ -67,6 +67,10 @@
svn-multi-reference-url
svn-multi-reference-user-name
svn-multi-reference-password)
#:autoload (guix hg-download) (hg-reference?
hg-reference-url)
#:autoload (guix bzr-download) (bzr-reference?
bzr-reference-url)
#:use-module (guix import stackage)
#:use-module (ice-9 match)
#:use-module (ice-9 regex)
@ -84,10 +88,10 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-6) ;Unicode string ports
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (srfi srfi-71)
#:use-module (ice-9 rdelim)
#:export (check-description-style
check-inputs-should-be-native
@ -823,8 +827,8 @@ for connections to complete; when TIMEOUT is #f, wait as long as needed."
;; Return RESPONSE, unless the final response as we follow
;; redirects is not 200.
(if location
(let-values (((status response2)
(loop location (cons location visited))))
(let ((status response2 (loop location
(cons location visited))))
(case status
((http-response)
(values 'http-response
@ -926,8 +930,7 @@ display a message including MESSAGE and return ERROR-VALUE."
(define (validate-uri uri package field)
"Return #t if the given URI can be reached, otherwise return a warning for
PACKAGE mentioning the FIELD."
(let-values (((status argument)
(probe-uri uri #:timeout 3))) ;wait at most 3 seconds
(let ((status argument (probe-uri uri #:timeout 3))) ;wait at most 3 seconds
(case status
((http-response)
(cond ((= 200 (response-code argument))
@ -1633,15 +1636,9 @@ directory identifiers the spec refers to. Otherwise return #f."
(extract-swh-id spec)))))
%disarchive-mirrors))
(define (check-archival package)
"Check whether PACKAGE's source code is archived on Software Heritage. If
it's not, and if its source code is a VCS snapshot, then send a \"save\"
request to Software Heritage.
Software Heritage imposes limits on the request rate per client IP address.
This checker prints a notice and stops doing anything once that limit has been
reached."
(define (response->warning url method response)
(define (swh-response->warning package url method response)
"Given RESPONSE, the response of METHOD on URL, return a suitable warning
list for PACKAGE."
(if (request-rate-limit-reached? url method)
(list (make-warning package
(G_ "Software Heritage rate limit reached; \
@ -1652,6 +1649,64 @@ try again later")
(list url (response-code response))
#:field 'source))))
(define (vcs-origin origin)
"Return two values: the URL and type (a string) of the version-control used
for ORIGIN. Return #f and #f if ORIGIN is not a version-control checkout."
(match (and=> origin origin-uri)
((? git-reference? ref)
(values (git-reference-url ref) "git"))
((? svn-reference? ref)
(values (svn-reference-url ref) "svn"))
((? svn-multi-reference? ref)
(values (svn-multi-reference-url ref) "svn"))
((? hg-reference? ref)
(values (hg-reference-url ref) "hg"))
((? bzr-reference? ref)
(values (bzr-reference-url ref) "bzr"))
;; XXX: Not sure what to do with the weird CVS URIs (:pserver: etc.).
(_
(values #f #f))))
(define (save-package-source package)
"Attempt to save the source of PACKAGE on SWH. Return a list of warnings."
(let* ((origin (package-source package))
(url type (if origin (vcs-origin origin) (values #f #f))))
(cond ((and url type)
(catch 'swh-error
(lambda ()
(save-origin url type)
(list (make-warning
package
;; TRANSLATORS: "Software Heritage" is a proper noun that
;; must remain untranslated. See
;; <https://www.softwareheritage.org>.
(G_ "scheduled Software Heritage archival")
#:field 'source)))
(lambda (key url method response . _)
(cond ((= 429 (response-code response))
(list (make-warning
package
(G_ "archival rate limit exceeded; \
try again later")
#:field 'source)))
(else
(swh-response->warning package url method response))))))
((not origin)
'())
(else
(list (make-warning
package
(G_ "source code cannot be archived")
#:field 'source))))))
(define (check-archival package)
"Check whether PACKAGE's source code is archived on Software Heritage. If
it's not, and if its source code is a VCS snapshot, then send a \"save\"
request to Software Heritage.
Software Heritage imposes limits on the request rate per client IP address.
This checker prints a notice and stops doing anything once that limit has been
reached."
(define skip-key (gensym "skip-archival-check"))
(define (skip-when-limit-reached url method)
@ -1686,28 +1741,8 @@ try again later")
'())
(#f
;; Revision is missing from the archive, attempt to save it.
(catch 'swh-error
(lambda ()
(save-origin (git-reference-url reference) "git")
(list (make-warning
package
;; TRANSLATORS: "Software Heritage" is a proper noun
;; that must remain untranslated. See
;; <https://www.softwareheritage.org>.
(G_ "scheduled Software Heritage archival")
#:field 'source)))
(lambda (key url method response . _)
(cond ((= 429 (response-code response))
(list (make-warning
package
(G_ "archival rate limit exceeded; \
try again later")
#:field 'source)))
(else
(response->warning url method response))))))))
(save-package-source package))))
((? origin? origin)
;; Since "save" origins are not supported for non-VCS source, all
;; we can do is tell whether a given tarball is available or not.
(if (and=> (origin-hash origin) ;XXX: for ungoogled-chromium
content-hash-value) ;& icecat
(let ((hash (origin-hash origin)))
@ -1716,9 +1751,11 @@ try again later")
(symbol->string
(content-hash-algorithm hash))))
(#f
;; If SWH doesn't have HASH as is, it may be because it's
;; a hand-crafted tarball. In that case, check whether
;; the Disarchive database has an entry for that tarball.
;; If ORIGIN is a version-control checkout, save it now.
;; If not, check whether HASH is in the Disarchive
;; database ("Save Code Now" does not accept tarballs).
(if (vcs-origin origin)
(save-package-source package)
(match (lookup-disarchive-spec hash)
(#f
(list (make-warning package
@ -1735,8 +1772,10 @@ Heritage and missing from the Disarchive database")
(G_ "\
Disarchive entry refers to non-existent SWH directory '~a'")
(list id)
#:field 'source)))))))
#:field 'source))))))))
((? content?)
'())
((? string? swhid)
'())))
'()))
((? local-file?)
@ -1748,7 +1787,7 @@ source is not an origin, it cannot be archived")
#:field 'source)))))
(match-lambda*
(('swh-error url method response)
(response->warning url method response))
(swh-response->warning package url method response))
((key . args)
(if (eq? key skip-key)
'()

View File

@ -104,7 +104,7 @@ Import the latest package named PACKAGE-NAME from an ELPA repository.\n"))
#:repo (assoc-ref opts 'repo)))
((or #f '())
(leave (G_ "failed to download meta-data for package '~a'~%") package-name))
(('package etc ...) `(package ,etc))
(('package etc ...) `(package ,@etc))
((? list? sexps) (map
(match-lambda
((and ('package ('name name) . rest) pkg)

View File

@ -21,7 +21,7 @@
#:use-module (guix scripts)
#:use-module (guix derivations)
#:use-module ((guix store) #:select (derivation-path? store-path?))
#:autoload (guix build download) (url-fetch)
#:autoload (guix build download) (%download-methods url-fetch)
#:autoload (guix build git) (git-fetch-with-fallback)
#:autoload (guix config) (%git)
#:use-module (ice-9 match)
@ -55,7 +55,8 @@ Note: OUTPUT may differ from the 'out' value of DRV, notably for 'bmCheck' or
(executable "executable")
(mirrors "mirrors")
(content-addressed-mirrors "content-addressed-mirrors")
(disarchive-mirrors "disarchive-mirrors"))
(disarchive-mirrors "disarchive-mirrors")
(download-methods "download-methods"))
(unless url
(leave (G_ "~a: missing URL~%") (derivation-file-name drv)))
@ -64,7 +65,11 @@ Note: OUTPUT may differ from the 'out' value of DRV, notably for 'bmCheck' or
(algo (derivation-output-hash-algo drv-output))
(hash (derivation-output-hash drv-output)))
;; We're invoked by the daemon, which gives us write access to OUTPUT.
(when (url-fetch url output
(when (parameterize ((%download-methods
(and download-methods
(call-with-input-string download-methods
read))))
(url-fetch url output
#:print-build-trace? print-build-trace?
#:mirrors (if mirrors
(call-with-input-file mirrors read)
@ -83,7 +88,7 @@ Note: OUTPUT may differ from the 'out' value of DRV, notably for 'bmCheck' or
;; Since DRV's output hash is known, X.509 certificate
;; validation is pointless.
#:verify-certificate? #f)
#:verify-certificate? #f))
(when (and executable (string=? executable "1"))
(chmod output #o755))))))
@ -96,7 +101,8 @@ Note: OUTPUT may differ from the 'out' value of DRV, notably for 'bmCheck' or
'bmRepair' builds."
(derivation-let drv ((url "url")
(commit "commit")
(recursive? "recursive?"))
(recursive? "recursive?")
(download-methods "download-methods"))
(unless url
(leave (G_ "~a: missing Git URL~%") (derivation-file-name drv)))
(unless commit
@ -114,11 +120,18 @@ Note: OUTPUT may differ from the 'out' value of DRV, notably for 'bmCheck' or
;; on ambient authority, hence the PATH value below.
(setenv "PATH" "/run/current-system/profile/bin:/bin:/usr/bin")
(parameterize ((%download-methods
(and download-methods
(call-with-input-string download-methods
read))))
;; Note: When doing a '--check' build, DRV-OUTPUT and OUTPUT are
;; different, hence the #:item argument below.
(git-fetch-with-fallback url commit output
#:hash hash
#:hash-algorithm algo
#:recursive? recursive?
#:git-command %git))))
#:item (derivation-output-path drv-output)
#:git-command %git)))))
(define (assert-low-privileges)
(when (zero? (getuid))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014-2016, 2019, 2021-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014-2016, 2019, 2021-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
;;; Copyright © 2017, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
;;;
@ -93,16 +93,22 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
(define build
(with-imported-modules
(source-module-closure '((guix build svn)
(guix build download)
(guix build download-nar)
(guix build utils)))
(guix build utils)
(guix swh)))
(with-extensions (list guile-json guile-gnutls ;for (guix swh)
guile-lzlib)
#~(begin
(use-modules (guix build svn)
((guix build download)
#:select (download-method-enabled?))
(guix build download-nar)
(guix swh)
(ice-9 match))
(or (svn-fetch (getenv "svn url")
(or (and (download-method-enabled? 'upstream)
(svn-fetch (getenv "svn url")
(string->number (getenv "svn revision"))
#$output
#:svn-command #+(file-append svn "/bin/svn")
@ -110,8 +116,13 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
("yes" #t)
(_ #f))
#:user-name (getenv "svn user name")
#:password (getenv "svn password"))
(download-nar #$output))))))
#:password (getenv "svn password")))
(and (download-method-enabled? 'nar)
(download-nar #$output))
(and (download-method-enabled? 'swh)
(parameterize ((%verify-swh-certificate? #f))
(swh-download-directory-by-nar-hash #$hash '#$hash-algo
#$output))))))))
(mlet %store-monad ((guile (package->derivation guile system)))
(gexp->derivation (or name "svn-checkout") build
@ -134,7 +145,11 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
,@(if (svn-reference-password ref)
`(("svn password"
. ,(svn-reference-password ref)))
'()))
'())
,@(match (getenv "GUIX_DOWNLOAD_METHODS")
(#f '())
(value
`(("GUIX_DOWNLOAD_METHODS" . ,value)))))
#:system system
#:hash-algo hash-algo
@ -173,14 +188,19 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
(define build
(with-imported-modules
(source-module-closure '((guix build svn)
(guix build download)
(guix build download-nar)
(guix build utils)))
(guix build utils)
(guix swh)))
(with-extensions (list guile-json guile-gnutls ;for (guix swh)
guile-lzlib)
#~(begin
(use-modules (guix build svn)
(guix build utils)
((guix build download)
#:select (download-method-enabled?))
(guix build download-nar)
(guix swh)
(srfi srfi-1)
(ice-9 match))
@ -190,6 +210,7 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
;; single file.
(unless (string-suffix? "/" location)
(mkdir-p (string-append #$output "/" (dirname location))))
(and (download-method-enabled? 'upstream)
(svn-fetch (string-append (getenv "svn url") "/" location)
(string->number (getenv "svn revision"))
(if (string-suffix? "/" location)
@ -200,13 +221,22 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
("yes" #t)
(_ #f))
#:user-name (getenv "svn user name")
#:password (getenv "svn password")))
#:password (getenv "svn password"))))
(call-with-input-string (getenv "svn locations")
read))
(begin
(when (file-exists? #$output)
(delete-file-recursively #$output))
(download-nar #$output)))))))
(or (and (download-method-enabled? 'nar)
(download-nar #$output))
(and (download-method-enabled? 'swh)
;; SWH keeps HASH as an ExtID for the combination
;; of files/directories, which allows us to
;; retrieve the entire combination at once:
;; <https://gitlab.softwareheritage.org/swh/infra/sysadm-environment/-/issues/5263>.
(parameterize ((%verify-swh-certificate? #f))
(swh-download-directory-by-nar-hash
#$hash '#$hash-algo #$output))))))))))
(mlet %store-monad ((guile (package->derivation guile system)))
(gexp->derivation (or name "svn-checkout") build
@ -231,7 +261,11 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
,@(if (svn-multi-reference-password ref)
`(("svn password"
. ,(svn-multi-reference-password ref)))
'()))
'())
,@(match (getenv "GUIX_DOWNLOAD_METHODS")
(#f '())
(value
`(("GUIX_DOWNLOAD_METHODS" . ,value)))))
#:leaked-env-vars '("http_proxy" "https_proxy"
"LC_ALL" "LC_MESSAGES" "LANG"

View File

@ -54,6 +54,7 @@
visit-snapshot-url
visit-status
visit-number
visit-type
visit-snapshot
snapshot?
@ -312,6 +313,7 @@ FALSE-IF-404? is true, return #f upon 404 responses."
(url visit-url "origin_visit_url")
(snapshot-url visit-snapshot-url "snapshot_url" string*) ;string | #f
(status visit-status "status" string->symbol) ;'full | 'partial | 'ongoing
(type visit-type "type" string->symbol) ;'git | 'git-checkout | ...
(number visit-number "visit"))
;; <https://archive.softwareheritage.org/api/1/snapshot/4334c3ed4bb208604ed780d8687fe523837f1bd1/>
@ -472,10 +474,11 @@ and use of ALGORITHM."
hash)
external-id-target))
(define (origin-visits origin)
"Return the list of visits of ORIGIN, a record as returned by
'lookup-origin'."
(call (swh-url (origin-visits-url origin))
(define* (origin-visits origin #:optional (max 10))
"Return the list of the up to MAX latest visits of ORIGIN, a record as
returned by 'lookup-origin'."
(call (string-append (swh-url (origin-visits-url origin))
"?per_page=" (number->string max))
(lambda (port)
(map json->visit (vector->list (json->scm port))))))
@ -513,14 +516,20 @@ could not be found."
(_ #f)))))
(define (branch-target branch)
"Return the target of BRANCH, either a <revision> or a <release>."
"Return the target of BRANCH: a <revision>, a <release>, or the SWHID of a
directory."
(match (branch-target-type branch)
('release
(call (swh-url (branch-target-url branch))
json->release))
('revision
(call (swh-url (branch-target-url branch))
json->revision))))
json->revision))
((or 'directory 'alias)
(match (string-tokenize (branch-target-url branch)
(char-set-complement (char-set #\/)))
((_ ... "directory" id)
(string-append "swh:1:dir:" id))))))
(define (lookup-origin-revision url tag)
"Return a <revision> corresponding to the given TAG for the repository
@ -534,12 +543,9 @@ URL could not be found."
(match (lookup-origin url)
(#f #f)
(origin
(match (filter (lambda (visit)
;; Return #f if (visit-snapshot VISIT) would return #f.
(any (lambda (visit)
(and (visit-snapshot-url visit)
(eq? 'full (visit-status visit))))
(origin-visits origin))
((visit . _)
(eq? 'full (visit-status visit))
(let ((snapshot (visit-snapshot visit)))
(match (and=> (find (lambda (branch)
(or
@ -555,10 +561,13 @@ URL could not be found."
(release-target release))
((? revision? revision)
revision)
(#f ;tag not found
#f))))
(()
(_
;; Either the branch points to a directory rather than
;; a revision (this is the case for visits of type
;; 'git-checkout, 'hg-checkout, 'tarball-directory,
;; etc.), or TAG was not found.
#f)))))
(origin-visits origin 30)))))
(define (release-target release)
"Return the revision that is the target of RELEASE."

View File

@ -1407,6 +1407,26 @@
(check-archival (dummy-package "x" (source origin)))))))
(warning-contains? "scheduled" warnings)))
(test-assert "archival: missing svn revision"
(let* ((origin (origin
(method svn-fetch)
(uri (svn-reference
(url "http://example.org/svn/foo")
(revision "1234")))
(sha256 (make-bytevector 32))))
;; https://archive.softwareheritage.org/api/1/origin/save/
(save "{ \"origin_url\": \"http://example.org/svn/foo\",
\"save_request_date\": \"2014-11-17T22:09:38+01:00\",
\"save_request_status\": \"accepted\",
\"save_task_status\": \"scheduled\" }")
(warnings (with-http-server `((404 "No extid.") ;lookup-directory-by-nar-hash
(404 "No revision.") ;lookup-revision
(404 "No origin.") ;lookup-origin
(200 ,save)) ;save-origin
(parameterize ((%swh-base-url (%local-url)))
(check-archival (dummy-package "x" (source origin)))))))
(warning-contains? "scheduled" warnings)))
(test-equal "archival: revision available"
'()
(let* ((origin (origin

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