me
/
guix
Archived
1
0
Fork 0

Merge branch 'master' into emacs-team

master
Liliana Marie Prikler 2023-09-09 12:22:14 +02:00
commit 94ca5b4357
No known key found for this signature in database
GPG Key ID: 442A84B8C70E2F87
175 changed files with 115813 additions and 75386 deletions

View File

@ -32,27 +32,7 @@
;; Geiser
;; This allows automatically setting the `geiser-guile-load-path'
;; variable when using various Guix checkouts (e.g., via git worktrees).
(eval . (let ((root-dir-unexpanded (locate-dominating-file
default-directory ".dir-locals.el")))
;; While Guix should in theory always have a .dir-locals.el
;; (we are reading this file, after all) there seems to be a
;; strange problem where this code "escapes" to some other buffers,
;; at least vc-mode. See:
;; https://lists.gnu.org/archive/html/guix-devel/2020-11/msg00296.html
;; Upstream report: <https://bugs.gnu.org/44698>
;; Hence the following "when", which might otherwise be unnecessary;
;; it prevents causing an error when root-dir-unexpanded is nil.
(when root-dir-unexpanded
(let* ((root-dir (file-local-name (expand-file-name root-dir-unexpanded)))
;; Workaround for bug https://issues.guix.gnu.org/43818.
(root-dir* (directory-file-name root-dir)))
(unless (boundp 'geiser-guile-load-path)
(defvar geiser-guile-load-path '()))
(make-local-variable 'geiser-guile-load-path)
(require 'cl-lib)
(cl-pushnew root-dir* geiser-guile-load-path
:test #'string-equal)))))))
(geiser-repl-per-project-p . t)))
(c-mode . ((c-file-style . "gnu")))
(scheme-mode

View File

@ -300,15 +300,10 @@ Geiser allows for interactive and incremental development from within
Emacs: code compilation and evaluation from within buffers, access to
on-line documentation (docstrings), context-sensitive completion,
@kbd{M-.} to jump to an object definition, a REPL to try out your code,
and more (@pxref{Introduction,,, geiser, Geiser User Manual}). For
convenient Guix development, make sure to augment Guiles load path so
that it finds source files from your checkout:
@lisp
;; @r{Assuming the Guix checkout is in ~/src/guix.}
(with-eval-after-load 'geiser-guile
(add-to-list 'geiser-guile-load-path "~/src/guix"))
@end lisp
and more (@pxref{Introduction,,, geiser, Geiser User Manual}). If you
allow Emacs to load the @file{.dir-locals.el} file at the root of the
project checkout, it will cause Geiser to automatically add the local
Guix sources to the Guile load path.
To actually edit the code, Emacs already has a neat Scheme mode. But in
addition to that, you must not miss
@ -1345,6 +1340,12 @@ should not be delayed.
When a bug is resolved, please close the thread by sending an email to
@email{@var{ISSUE_NUMBER}-done@@debbugs.gnu.org}.
@menu
* Configuring Git::
* Sending a Patch Series::
* Teams::
@end menu
@node Configuring Git
@subsection Configuring Git
@cindex git configuration
@ -1542,10 +1543,10 @@ This section describes how the Guix project tracks its bug reports,
patch submissions and topic branches.
@menu
* The Issue Tracker:: The official bug and patch tracker.
* Managing Patches and Branches:: How changes to Guix are managed.
* Debbugs User Interfaces:: Ways to interact with Debbugs.
* Debbugs Usertags:: Tag reports with custom labels.
* The Issue Tracker:: The official bug and patch tracker.
* Managing Patches and Branches:: How changes to Guix are managed.
* Debbugs User Interfaces:: Ways to interact with Debbugs.
* Debbugs Usertags:: Tag reports with custom labels.
@end menu
@node The Issue Tracker
@ -1625,6 +1626,8 @@ information on some builds and substitute availability.
@node Debbugs User Interfaces
@subsection Debbugs User Interfaces
@subsubsection Web interface
A web interface (actually @emph{two} web interfaces!) are available to
browse issues:
@ -1646,6 +1649,88 @@ To view discussions related to issue number @var{n}, go to
@indicateurl{https://issues.guix.gnu.org/@var{n}} or
@indicateurl{https://bugs.gnu.org/@var{n}}.
@subsubsection Command-line interface
Mumi also comes with a command-line interface that can be used to search
existing issues, open new issues and send patches. You do not need to
use Emacs to use the mumi command-line client. You interact with it
only on the command-line.
To use the mumi command-line interface, navigate to a local clone of the
Guix git repository, and drop into a shell with mumi, git and
git:send-email installed.
@example
$ cd guix
~/guix$ guix shell mumi git git:send-email
@end example
To search for issues, say all open issues about "zig", run
@example
~/guix [env]$ mumi search zig is:open
#60889 Add zig-build-system
opened on 17 Jan 17:37 Z by Ekaitz Zarraga
#61036 [PATCH 0/3] Update zig to 0.10.1
opened on 24 Jan 09:42 Z by Efraim Flashner
#39136 [PATCH] gnu: services: Add endlessh.
opened on 14 Jan 2020 21:21 by Nicol? Balzarotti
#60424 [PATCH] gnu: Add python-online-judge-tools
opened on 30 Dec 2022 07:03 by gemmaro
#45601 [PATCH 0/6] vlang 0.2 update
opened on 1 Jan 2021 19:23 by Ryan Prior
@end example
Pick an issue and make it the "current" issue.
@example
~/guix [env]$ mumi current 61036
#61036 [PATCH 0/3] Update zig to 0.10.1
opened on 24 Jan 09:42 Z by Efraim Flashner
@end example
Once an issue is the current issue, you can easily create and send
patches to it using
@example
~/guix [env]$ git format-patch origin/master
~/guix [env]$ mumi send-email foo.patch bar.patch
@end example
Note that you do not have to pass in @samp{--to} or @samp{--cc}
arguments to @command{git format-patch}. @command{mumi send-email} will
put them in correctly when sending the patches.
To open a new issue, run
@example
~/guix [env]$ mumi new
@end example
and send patches
@example
~/guix [env]$ mumi send-email foo.patch bar.patch
@end example
@command{mumi send-email} is really a wrapper around @command{git
send-email} that automates away all the nitty-gritty of sending patches.
It uses the current issue state to automatically figure out the correct
@samp{To} address to send to, other participants to @samp{Cc}, headers
to add, etc.
Also note that, unlike @command{git send-email}, @command{mumi
send-email} works perfectly well with single and multiple patches alike.
It automates away the debbugs dance of sending the first patch, waiting
for a response from debbugs and sending the remaining patches. It does
so by sending the first patch, polling the server for a response, and
then sending the remaining patches. This polling can unfortunately take
a few minutes. So, please be patient.
@subsubsection Emacs interface
If you use Emacs, you may find it more convenient to interact with
issues using @file{debbugs.el}, which you can install with:

View File

@ -23,6 +23,7 @@ Copyright @copyright{} 2020 Christine Lemmer-Webber@*
Copyright @copyright{} 2021 Joshua Branson@*
Copyright @copyright{} 2022, 2023 Maxim Cournoyer@*
Copyright @copyright{} 2023 Ludovic Courtès
Copyright @copyright{} 2023 Thomas Ieong
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@ -128,6 +129,7 @@ System Configuration
* Connecting to Wireguard VPN:: Connecting to a Wireguard VPN.
* Customizing a Window Manager:: Handle customization of a Window manager on Guix System.
* Running Guix on a Linode Server:: Running Guix on a Linode Server.
* Running Guix on a Kimsufi Server:: Running Guix on a Kimsufi Server.
* Setting up a bind mount:: Setting up a bind mount in the file-systems definition.
* Getting substitutes from Tor:: Configuring Guix daemon to get substitutes through Tor.
* Setting up NGINX with Lua:: Configuring NGINX web-server to load Lua modules.
@ -1575,6 +1577,7 @@ reference.
* Connecting to Wireguard VPN:: Connecting to a Wireguard VPN.
* Customizing a Window Manager:: Handle customization of a Window manager on Guix System.
* Running Guix on a Linode Server:: Running Guix on a Linode Server.
* Running Guix on a Kimsufi Server:: Running Guix on a Kimsufi Server.
* Setting up a bind mount:: Setting up a bind mount in the file-systems definition.
* Getting substitutes from Tor:: Configuring Guix daemon to get substitutes through Tor.
* Setting up NGINX with Lua:: Configuring NGINX web-server to load Lua modules.
@ -2158,6 +2161,51 @@ the @code{yubikey-manager-qt} package and either wholly disable the
@samp{Applications -> OTP} view, delete the slot 1 configuration, which
comes pre-configured with the Yubico OTP application.
@subsection Requiring a Yubikey to open a KeePassXC database
@cindex yubikey, keepassxc integration
The KeePassXC password manager application has support for Yubikeys, but
it requires installing a udev rules for your Guix System and some
configuration of the Yubico OTP application on the key.
The necessary udev rules file comes from the
@code{yubikey-personalization} package, and can be installed like:
@lisp
(use-package-modules ... security-token ...)
...
(operating-system
...
(services
(cons*
...
(udev-rules-service 'yubikey yubikey-personalization))))
@end lisp
After reconfiguring your system (and reconnecting your Yubikey), you'll
then want to configure the OTP challenge/response application of your
Yubikey on its slot 2, which is what KeePassXC uses. It's easy to do so
via the Yubikey Manager graphical configuration tool, which can be
invoked with:
@example
guix shell yubikey-manager-qt -- ykman-gui
@end example
First, ensure @samp{OTP} is enabled under the @samp{Interfaces} tab,
then navigate to @samp{Applications -> OTP}, and click the
@samp{Configure} button under the @samp{Long Touch (Slot 2)} section.
Select @samp{Challenge-response}, input or generate a secret key, and
click the @samp{Finish} button. If you have a second Yubikey you'd like
to use as a backup, you should configure it the same way, using the
@emph{same} secret key.
Your Yubikey should now be detected by KeePassXC. It can be added to a
database by navigating to KeePassXC's @samp{Database -> Database
Security...} menu, then clicking the @samp{Add additional
protection...} button, then @samp{Add Challenge-Response}, selecting the
security key from the drop-down menu and clicking the @samp{OK} button
to complete the setup.
@node Dynamic DNS mcron job
@section Dynamic DNS mcron job
@ -2634,6 +2682,253 @@ have an easy time spinning up new Guix images! You may need to
down-size the Guix image to 6144MB, to save it as an image. Then you
can resize it again to the max size.
@node Running Guix on a Kimsufi Server
@section Running Guix on a Kimsufi Server
@cindex kimsufi, Kimsufi, OVH
To run Guix on a server hosted by @uref{https://www.kimsufi.com/,
Kimsufi}, click on the netboot tab then select rescue64-pro and restart.
OVH will email you the credentials required to ssh into a Debian system.
Now you can run the "install guix from @pxref{Binary Installation,,,
guix, GNU Guix}" steps:
@example
wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
chmod +x guix-install.sh
./guix-install.sh
guix pull
@end example
Partition the drives and format them, first stop the raid array:
@example
mdadm --stop /dev/md127
mdadm --zero-superblock /dev/sda2 /dev/sdb2
@end example
Then wipe the disks and set up the partitions, we will create
a RAID 1 array.
@example
wipefs -a /dev/sda
wipefs -a /dev/sdb
parted /dev/sda --align=opt -s -m -- mklabel gpt
parted /dev/sda --align=opt -s -m -- \
mkpart bios_grub 1049kb 512MiB \
set 1 bios_grub on
parted /dev/sda --align=opt -s -m -- \
mkpart primary 512MiB -512MiB
set 2 raid on
parted /dev/sda --align=opt -s -m -- mkpart primary linux-swap 512MiB 100%
parted /dev/sdb --align=opt -s -m -- mklabel gpt
parted /dev/sdb --align=opt -s -m -- \
mkpart bios_grub 1049kb 512MiB \
set 1 bios_grub on
parted /dev/sdb --align=opt -s -m -- \
mkpart primary 512MiB -512MiB \
set 2 raid on
parted /dev/sdb --align=opt -s -m -- mkpart primary linux-swap 512MiB 100%
@end example
Create the array:
@example
mdadm --create /dev/md127 --level=1 --raid-disks=2 \
--metadata=0.90 /dev/sda2 /dev/sdb2
@end example
Now create file systems on the relevant partitions, first the boot
partitions:
@example
mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/sdb1
@end example
Then the root partition:
@example
mkfs.ext4 /dev/md127
@end example
Initialize the swap partitions:
@example
mkswap /dev/sda3
swapon /dev/sda3
mkswap /dev/sdb3
swapon /dev/sdb3
@end example
Mount the guix drive:
@example
mkdir /mnt/guix
mount /dev/md127 /mnt/guix
@end example
Now is time to write an operating system declaration @file{os.scm} file;
here is a sample:
@lisp
(use-modules (gnu) (guix))
(use-service-modules networking ssh vpn virtualization sysctl admin mcron)
(use-package-modules ssh certs tls tmux vpn virtualization)
(operating-system
(host-name "kimsufi")
(bootloader (bootloader-configuration
(bootloader grub-bootloader)
(targets (list "/dev/sda" "/dev/sdb"))
(terminal-outputs '(console))))
;; Add a kernel module for RAID-1 (aka. "mirror").
(initrd-modules (cons* "raid1" %base-initrd-modules))
(mapped-devices
(list (mapped-device
(source (list "/dev/sda2" "/dev/sdb2"))
(target "/dev/md127")
(type raid-device-mapping))))
(swap-devices
(list (swap-space
(target "/dev/sda3"))
(swap-space
(target "/dev/sdb3"))))
(issue
;; Default contents for /etc/issue.
"\
This is the GNU system at Kimsufi. Welcome.\n")
(file-systems (cons* (file-system
(mount-point "/")
(device "/dev/md127")
(type "ext4")
(dependencies mapped-devices))
%base-file-systems))
(users (cons (user-account
(name "guix")
(comment "guix")
(group "users")
(supplementary-groups '("wheel"))
(home-directory "/home/guix"))
%base-user-accounts))
(sudoers-file
(plain-file "sudoers" "\
root ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
guix ALL=(ALL) NOPASSWD:ALL\n"))
;; Globally-installed packages.
(packages (cons* tmux nss-certs gnutls wireguard-tools %base-packages))
(services
(cons*
(service static-networking-service-type
(list (static-networking
(addresses (list (network-address
(device "enp3s0")
(value "@var{server-ip-address}/24"))))
(routes (list (network-route
(destination "default")
(gateway "@var{server-gateway}"))))
(name-servers '("213.186.33.99")))))
(service unattended-upgrade-service-type)
(service openssh-service-type
(openssh-configuration
(openssh openssh-sans-x)
(permit-root-login #f)
(authorized-keys
`(("guix" ,(plain-file "@var{ssh-key-name.pub}"
"@var{ssh-public-key-content}"))))))
(modify-services %base-services
(sysctl-service-type
config =>
(sysctl-configuration
(settings (append '(("net.ipv6.conf.all.autoconf" . "0")
("net.ipv6.conf.all.accept_ra" . "0"))
%default-sysctl-settings))))))))
@end lisp
Don't forget to substitute the @var{server-ip-address},
@var{server-gateway}, @var{ssh-key-name} and
@var{ssh-public-key-content} variables with your own values.
The gateway is the last usable IP in your block so if you have a server
with an IP of @samp{37.187.79.10} then its gateway will be
@samp{37.187.79.254}.
Transfer your operating system declaration @file{os.scm} file on the
server via the @command{scp} or @command{sftp} commands.
Now all that is left is to install Guix with a @code{guix system init}
and restart.
However we first need to set up a chroot, because the root partition of
the rescue system is mounted on an aufs partition and if you try to
install Guix it will fail at the GRUB install step complaining about the
canonical path of "aufs".
Install packages that will be used in the chroot:
@example
guix install bash-static parted util-linux-with-udev coreutils guix
@end example
Then run the following to create directories needed for the chroot:
@example
cd /mnt && \
mkdir -p bin etc gnu/store root/.guix-profile/ root/.config/guix/current \
var/guix proc sys dev
@end example
Copy the host resolv.conf in the chroot:
@example
cp /etc/resolv.conf etc/
@end example
Mount block devices, the store and its database and the current guix config:
@example
mount --rbind /proc /mnt/proc
mount --rbind /sys /mnt/sys
mount --rbind /dev /mnt/dev
mount --rbind /var/guix/ var/guix/
mount --rbind /gnu/store gnu/store/
mount --rbind /root/.config/ root/.config/
mount --rbind /root/.guix-profile/bin/ bin
mount --rbind /root/.guix-profile root/.guix-profile/
@end example
Chroot in /mnt and install the system:
@example
chroot /mnt/ /bin/bash
guix system init /root/os.scm /guix
@end example
Finally, from the web user interface (UI), change @samp{netboot} to
@samp{boot to disk} and restart (also from the web UI).
Wait a few minutes and try to ssh with @code{ssh
guix@@@var{server-ip-address>} -i @var{path-to-your-ssh-key}}
You should have a Guix system up and running on Kimsufi;
congratulations!
@node Setting up a bind mount
@section Setting up a bind mount

View File

@ -53,7 +53,7 @@ Copyright @copyright{} 2017, 2019, 2020, 2021, 2022, 2023 Maxim Cournoyer@*
Copyright @copyright{} 20172022 Tobias Geerinckx-Rice@*
Copyright @copyright{} 2017 George Clemmer@*
Copyright @copyright{} 2017 Andy Wingo@*
Copyright @copyright{} 2017, 2018, 2019, 2020 Arun Isaac@*
Copyright @copyright{} 2017, 2018, 2019, 2020, 2023 Arun Isaac@*
Copyright @copyright{} 2017 nee@*
Copyright @copyright{} 2018 Rutger Helling@*
Copyright @copyright{} 2018, 2021 Oleg Pykhalov@*
@ -2405,6 +2405,16 @@ BIOS or UEFI boot menu, where you can choose to boot from the USB stick.
In order to boot from Libreboot, switch to the command mode by pressing
the @kbd{c} key and type @command{search_grub usb}.
Sadly, on some machines, the installation medium cannot be properly
booted and you only see a black screen after booting even after you
waited for ten minutes. This may indicate that your machine cannot run
Guix System; perhaps you instead want to install Guix on a foreign
distro (@pxref{Binary Installation}). But don't give up just yet; a
possible workaround is pressing the @kbd{e} key in the GRUB boot menu
and appending @option{nomodeset} to the Linux bootline.
Sometimes the black screen issue can also be resolved by connecting a
different display.
@xref{Installing Guix in a VM}, if, instead, you would like to install
Guix System in a virtual machine (VM).
@ -14168,6 +14178,16 @@ TeX package:
guix import texlive fontspec
@end example
Additional options include:
@table @code
@item --recursive
@itemx -r
Traverse the dependency graph of the given upstream package recursively
and generate package expressions for all those packages that are not yet
in Guix.
@end table
@item json
@cindex JSON, import
Import package metadata from a local JSON file. Consider the following
@ -18060,10 +18080,6 @@ administrator's choice; reconfiguring does @emph{not} change their name.
@item @code{home-directory}
This is the name of the home directory for the account.
@item @code{home-directory-permissions} (default: @code{#o700})
The permission bits for the home directory. By default, full access is
granted to the user account and all other access is denied.
@item @code{create-home-directory?} (default: @code{#t})
Indicates whether the home directory of this account should be created
if it does not exist yet.
@ -31342,7 +31358,7 @@ The port on which to connect to the database.
@cindex Mumi, Debbugs Web interface
@cindex Debbugs, Mumi Web interface
@uref{https://git.elephly.net/gitweb.cgi?p=software/mumi.git, Mumi} is a
@uref{https://git.savannah.gnu.org/cgit/guix/mumi.git/, Mumi} is a
Web interface to the Debbugs bug tracker, by default for
@uref{https://bugs.gnu.org, the GNU instance}. Mumi is a Web server,
but it also fetches and indexes mail retrieved from Debbugs.
@ -32675,7 +32691,7 @@ can run on headless servers. The Xvnc implementations provided by the
@defvar xvnc-service-type
The @code{xvnc-server-type} service can be configured via the
The @code{xvnc-service-type} service can be configured via the
@code{xvnc-configuration} record, documented below. A second virtual
display could be made available on a remote machine via the
following configuration:
@ -43941,6 +43957,62 @@ Extra content appended as-is to this @code{Host} block in
@end deftp
@cindex Parcimonie, Home service
The @code{parcimonie} service runs a daemon that slowly refreshes a GnuPG
public key from a keyserver. It refreshes one key at a time; between every
key update parcimonie sleeps a random amount of time, long enough for the
previously used Tor circuit to expire. This process is meant to make it hard
for an attacker to correlate the multiple key update.
As an example, here is how you would configure @code{parcimonie} to refresh the
keys in your GnuPG keyring, as well as those keyrings created by Guix, such as
when running @code{guix import}:
@lisp
(service home-parcimonie-service-type
(home-parcimonie-configuration
(refresh-guix-keyrings? #t)))
@end lisp
This assumes that the Tor anonymous routing daemon is already running on your
system. On Guix System, this can be achieved by setting up
@code{tor-service-type} (@pxref{Networking Services, @code{tor-service-type}}).
The service reference is given below.
@defvar parcimonie-service-type
This is the service type for @command{parcimonie}
(@uref{https://salsa.debian.org/intrigeri/parcimonie, Parcimonie's web site}).
Its value must be a @code{home-parcimonie-configuration}, as shown below.
@end defvar
@c %start of fragment
@deftp {Data Table} home-parcimonie-configuration
Available @code{home-parcimonie-configuration} fields are:
@table @asis
@item @code{parcimonie} (default: @code{parcimonie}) (type: file-like)
The parcimonie package to use.
@item @code{verbose?} (default: @code{#f}) (type: boolean)
Whether to have more verbose logging from the service.
@item @code{gnupg-already-torified?} (default: @code{#f}) (type: boolean)
Whether GnuPG is already configured to pass all traffic through
@uref{https://torproject.org, Tor}.
@item @code{refresh-guix-keyrings?} (default: @code{#f}) (type: boolean)
Guix creates a few keyrings in the @var{$XDG_CONFIG_DIR}, such as when running
@code{guix import} (@pxref{Invoking guix import}). Setting this to @code{#t}
will also refresh any keyrings which Guix has created.
@item @code{extra-content} (default: @code{#f}) (type: raw-configuration-string)
Raw content to add to the parcimonie command.
@end table
@end deftp
@c %end of fragment
@ -45869,47 +45941,48 @@ will not have the desired effect. @xref{Package Transformation Options,
Guix provides packages for the @TeX{}, @LaTeX{}, ConTeXt, LuaTeX, and
related typesetting systems, taken from the
@uref{https://www.tug.org/texlive/, @TeX{} Live distribution}. However,
because @TeX{} Live is so huge and because finding your way in this maze
is tricky, we thought that you, dear user, would welcome guidance on how
to deploy the relevant packages so you can compile your @TeX{} and
@LaTeX{} documents.
because @TeX{} Live is so huge and because finding one's way in this
maze is tricky, so this section provides some guidance on how to deploy
the relevant packages to compile @TeX{} and @LaTeX{} documents.
@TeX{} Live currently comes in two flavors in Guix:
@TeX{} Live currently comes in two mutually exclusive flavors in Guix:
@itemize
@item
The ``monolithic'' @code{texlive} package: it comes with @emph{every
single @TeX{} Live package} (more than 7,000 of them), but it is huge
(more than 4@tie{}GiB for a single package!).
single @TeX{} Live package} (roughly 4,200), but it is huge---more than
4@tie{}GiB for a single package!
@item
The ``modular'' @samp{texlive-} packages: you start off with
a combination of @TeX{} Live @dfn{collections} and
@dfn{schemes}---``meta-packages'' such as
@code{texlive-collection-fontsrecommended}, or
@code{texlive-collection-context}, that provide the set of packages
needed in this particular domain, schemes being the name for collections
of such collections. This grants you core functionality and the main
commands---@command{pdflatex}, @command{dvips}, @command{luatex},
@command{mf}, etc. You can then complete your selection with additional
collections or individual packages that provide just the features you
need---@code{texlive-listings} for the @code{listings} package,
@code{texlive-beamer} for Beamer, @code{texlive-pgf} for PGF/TikZ, and
so on.
A ``modular'' @TeX{} Live distribution, in which you only install the
packages, always prefixed with @samp{texlive-}, you need.
@end itemize
We recommend using the modular package set because it is much less
resource-hungry. To build your documents, you would use commands such
as:
So to insist, these two flavors cannot be combined@footnote{No rule
without exception! As the monolithic @TeX{} Live does not contain the
@command{biber} executable, it is okay to combine it with
@code{texlive-biber}, which does.}. If in the modular setting your
document does not compile, the solution is not to add the monolithic
@code{texlive} package, but to add the set of missing packages from the
modular distribution.
Building a coherent system that provides all the essential tools and, at
the same time, satisfies all of its internal dependencies can be
a difficult task. It is therefore recommended to start with sets of
packages, called @dfn{collections}, and @dfn{schemes}, the name for
collections of collections. The following command lists available
schemes and collections (@pxref{guix-search,, Invoking guix package}):
@example
guix shell texlive-scheme-basic texlive-cm-super -- pdflatex doc.tex
guix search texlive-\(scheme\|collection\) | recsel -p name,description
@end example
You can quickly end up with unreasonably long command lines though. The
solution is to instead write a manifest, for example like this one,
which would probably be a reasonable starting point for a French
@LaTeX{} user:
If needed, you may then complete your system with individual packages,
particularly when they belong to a large collection you're not otherwise
interested in.
For instance, the following manifest is a reasonable, yet frugal
starting point for a French @LaTeX{} user:
@lisp
(specifications->manifest
@ -45918,31 +45991,18 @@ which would probably be a reasonable starting point for a French
"texlive-scheme-basic"
"texlive-collection-latexrecommended"
"texlive-collection-fontsrecommended"
"texlive-babel-french"
;; PGF/TikZ
"texlive-pgf"
;; Additional font.
"texlive-kpfonts"))
;; From "latexextra" collection.
"texlive-tabularray"
;; From "binextra" collection.
"texlive-texdoc"))
@end lisp
You can then pass it to any command with the @option{-m} option:
@example
guix shell -m manifest.scm -- pdflatex doc.tex
@end example
@xref{Writing Manifests}, for more on manifests. In the future, we plan
to provide more collections and schemes. That will allow you to list
fewer packages.
The main difficulty here is that using the modular package set forces
you to select precisely the packages that you need. You can use
@command{guix search}, but finding the right package can prove to be
tedious. When a package is missing, @command{pdflatex} and similar
commands fail with an obscure message along the lines of:
If you come across a document that does not compile in such a basic
setting, the main difficulty is finding the missing packages. In this
case, @command{pdflatex} and similar commands tend to fail with obscure
error messages along the lines of:
@example
doc.tex: File `tikz.sty' not found.
@ -45958,7 +46018,7 @@ kpathsea: Running mktexmf phvr7t
@end example
How do you determine what the missing package is? In the first case,
you'll find the answer by running:
you will find the answer by running:
@example
$ guix search texlive tikz
@ -45968,11 +46028,11 @@ version: 59745
@end example
In the second case, @command{guix search} turns up nothing. Instead,
you can search the @TeX{} Live package database using the @command{tlmgr}
command:
you can search the @TeX{} Live package database using the
@command{tlmgr} command:
@example
$ guix shell texlive-bin -- tlmgr info phvr7t
$ tlmgr info phvr7t
tlmgr: cannot find package phvr7t, searching for other matches:
Packages containing `phvr7t' in their title/description:
@ -45987,32 +46047,10 @@ tex4ht:
texmf-dist/tex4ht/ht-fonts/alias/adobe/helvetic/phvr7t.htf
@end example
The file is available in the @TeX{} Live @code{helvetic} package, which is
known in Guix as @code{texlive-helvetic}. Quite a ride, but we found
it!
There is one important limitation though: Guix currently provides a
subset of the @TeX{} Live packages. If you stumble upon a missing
package, you can try and import it (@pxref{Invoking guix import}):
@example
guix import texlive @var{package}
@end example
Additional options include:
@table @code
@item --recursive
@itemx -r
Traverse the dependency graph of the given upstream package recursively
and generate package expressions for all those packages that are not yet
in Guix.
@end table
@quotation Note
@TeX{} Live packaging is still very much work in progress, but you can
help! @xref{Contributing}, for more information.
@end quotation
@noindent
The file is available in the @TeX{} Live @code{helvetic} package, which
is known in Guix as @code{texlive-helvetic}. Quite a ride, but you
found it!
@node Security Updates
@chapter Security Updates

View File

@ -230,7 +230,7 @@ $(srcdir)/%D%/guix.1: scripts/guix.in $(sub_commands_mans)
# source script (the first prerequisite) has been changed. The $(GOBJECTS)
# prerequisite is solely meant to force these docs to be made only after all
# Guile modules have been compiled. We also need the guix script to exist.
$(srcdir)/%D%/guix-%.1: scripts/guix guix/scripts/%.scm $(GOBJECTS)
$(srcdir)/%D%/guix-%.1: guix/scripts/%.scm $(GOBJECTS) scripts/guix
-@case '$?' in \
*$<*) $(AM_V_P) && set -x || echo " HELP2MAN $@"; \
$(gen_man) --output="$@" "guix $*";; \

View File

@ -6,6 +6,7 @@
;;; Copyright © 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org>
;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Simon Tournier <zimon.toutoune@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -39,6 +40,23 @@
(guix ui)
(git))
(define-record-type <regexp*>
(%make-regexp* pat flag rx)
regexp*?
(pat regexp*-pattern)
(flag regexp*-flag)
(rx regexp*-rx))
;;; Work around regexp implementation.
;;; This record allows to track the regexp pattern and then display it.
(define* (make-regexp* pat #:optional (flag regexp/extended))
"Alternative to `make-regexp' producing annotated <regexp*> objects."
(%make-regexp* pat flag (make-regexp pat flag)))
(define (regexp*-exec rx* str)
"Execute the RX* regexp, a <regexp*> object."
(regexp-exec (regexp*-rx rx*) str))
(define-record-type <team>
(make-team id name description members scope)
team?
@ -99,7 +117,7 @@
(list "gnu/packages/django.scm"
"gnu/packages/jupyter.scm"
;; Match haskell.scm and haskell-*.scm.
(make-regexp "^gnu/packages/python(-.+|)\\.scm$")
(make-regexp* "^gnu/packages/python(-.+|)\\.scm$")
"gnu/packages/sphinx.scm"
"gnu/packages/tryton.scm"
"guix/build/pyproject-build-system.scm"
@ -119,7 +137,7 @@ the haskell-build-system."
#:scope
(list "gnu/packages/dhall.scm"
;; Match haskell.scm and haskell-*.scm.
(make-regexp "^gnu/packages/haskell(-.+|)\\.scm$")
(make-regexp* "^gnu/packages/haskell(-.+|)\\.scm$")
"gnu/packages/purescript.scm"
"guix/build/haskell-build-system.scm"
"guix/build-system/haskell.scm"
@ -174,6 +192,7 @@ and the r-build-system."
"TeX, LaTeX, XeLaTeX, LuaTeX, TeXLive, the texlive-build-system, and
the \"texlive\" importer."
#:scope (list "gnu/packages/tex.scm"
"gnu/packages/texlive.scm"
"guix/build/texlive-build-system.scm"
"guix/build-system/texlive.scm"
"guix/import/texlive.scm"
@ -185,7 +204,7 @@ the \"texlive\" importer."
#:name "Julia team"
#:description
"The Julia language, Julia packages, and the julia-build-system."
#:scope (list (make-regexp "^gnu/packages/julia(-.+|)\\.scm$")
#:scope (list (make-regexp* "^gnu/packages/julia(-.+|)\\.scm$")
"guix/build/julia-build-system.scm"
"guix/build-system/julia.scm")))
@ -214,14 +233,14 @@ importer, and the ocaml-build-system."
and the maven-build-system."
#:scope
(list ;; Match java.scm and java-*.scm.
(make-regexp "^gnu/packages/java(-.+|)\\.scm$")
(make-regexp* "^gnu/packages/java(-.+|)\\.scm$")
;; Match maven.scm and maven-*.scm
(make-regexp "^gnu/packages/maven(-.+|)\\.scm$")
(make-regexp* "^gnu/packages/maven(-.+|)\\.scm$")
"guix/build/ant-build-system.scm"
"guix/build/java-utils.scm"
"guix/build/maven-build-system.scm"
;; The maven directory
(make-regexp "^guix/build/maven/")
(make-regexp* "^guix/build/maven/")
"guix/build-system/ant.scm"
"guix/build-system/maven.scm")))
@ -241,7 +260,9 @@ packages (e.g. Astronomy, Chemistry, Math, Physics etc.)"
#:name "Emacs team"
#:description "The extensible, customizable text editor and its
ecosystem."
#:scope (list (make-regexp "^gnu/packages/emacs(-.+|)\\.scm$")
#:scope (list "gnu/packages/aux-files/emacs/guix-emacs.el"
(make-regexp* "^gnu/packages/emacs(-.+|)\\.scm$")
"gnu/packages/tree-sitter.scm"
"guix/build/emacs-build-system.scm"
"guix/build/emacs-utils.scm"
"guix/build-system/emacs.scm"
@ -255,7 +276,7 @@ ecosystem."
#:description
"Common Lisp and similar languages, Common Lisp packages and the
asdf-build-system."
#:scope (list (make-regexp "^gnu/packages/lisp(-.+|)\\.scm$")
#:scope (list (make-regexp* "^gnu/packages/lisp(-.+|)\\.scm$")
"guix/build/asdf-build-system.scm"
"guix/build/lisp-utils.scm"
"guix/build-system/asdf.scm")))
@ -294,7 +315,7 @@ asdf-build-system."
(define-team rust
(team 'rust
#:name "Rust"
#:scope (list (make-regexp "^gnu/packages/(crates|rust)(-.+|)\\.scm$")
#:scope (list (make-regexp* "^gnu/packages/(crates|rust)(-.+|)\\.scm$")
"gnu/packages/sequoia.scm"
"guix/build/cargo-build-system.scm"
"guix/build/cargo-utils.scm"
@ -393,9 +414,9 @@ asdf-build-system."
"guix/upstream.scm"
"guix/utils.scm"
"guix/workers.scm"
(make-regexp "^guix/platforms/")
(make-regexp "^guix/scripts/")
(make-regexp "^guix/store/"))))
(make-regexp* "^guix/platforms/")
(make-regexp* "^guix/scripts/")
(make-regexp* "^guix/store/"))))
(define-team games
(team 'games
@ -423,17 +444,17 @@ asdf-build-system."
(team 'translations
#:name "Translations"
#:scope (list "etc/news.scm"
(make-regexp "^po/"))))
(make-regexp* "^po/"))))
(define-team installer
(team 'installer
#:name "Installer script and system installer"
#:scope (list (make-regexp "^gnu/installer(\\.scm$|/)"))))
#:scope (list (make-regexp* "^gnu/installer(\\.scm$|/)"))))
(define-team home
(team 'home
#:name "Team for \"Guix Home\""
#:scope (list (make-regexp "^(gnu|guix/scripts)/home(\\.scm$|/)")
#:scope (list (make-regexp* "^(gnu|guix/scripts)/home(\\.scm$|/)")
"tests/guix-home.sh"
"tests/home-import.scm"
"tests/home-services.scm")))
@ -516,7 +537,7 @@ GLib/GIO, GTK, GStreamer and Webkit."
(define-member (person "Andreas Enge"
"andreas@enge.fr")
lxqt science)
lxqt science tex)
(define-member (person "Tobias Geerinckx-Rice"
"me@tobias.gr")
@ -633,8 +654,8 @@ of file names as string."
(any (match-lambda
((? string? scope)
(string=? scope file))
((? regexp? scope)
(regexp-exec scope file)))
((? regexp*? scope)
(regexp*-exec scope file)))
(team-scope team)))
files)
(cons team acc)
@ -664,45 +685,55 @@ TEAMS when a patch is received by Debbugs."
name)))
(format #false "~a <~a>" quoted-name/maybe (person-email member))))
(define* (list-members team #:optional port (prefix ""))
(define* (list-members team #:key (prefix ""))
"Print the members of the given TEAM."
(define port* (or port (current-output-port)))
(for-each
(lambda (member)
(format port* "~a~a~%" prefix (member->string member)))
(sort-members (team-members team))))
(for-each (lambda (member)
(format #t "~a~a~%" prefix (member->string member)))
(sort-members (team-members team))))
(define (list-teams)
"Print all teams, their scope and their members."
(define port* (current-output-port))
(define width* (%text-width))
(for-each
(lambda (team)
(format port*
"\
(define (print-team team)
"Print TEAM, a <team> record object."
(format #t
"\
id: ~a
name: ~a
description: ~a
~amembers:
"
(team-id team)
(team-name team)
(or (and=> (team-description team)
(lambda (text)
(string->recutils
(fill-paragraph text width*
(string-length "description: ")))))
"<none>")
(match (team-scope team)
(() "")
(scope (format #f "scope: ~{~s ~}~%" scope))))
(list-members team port* "+ ")
(newline))
(sort
(hash-map->list (lambda (key value) value) %teams)
(lambda (team1 team2)
(string<? (symbol->string (team-id team1))
(symbol->string (team-id team2)))))))
(team-id team)
(team-name team)
(or (and=> (team-description team)
(lambda (text)
(string->recutils
(fill-paragraph text (%text-width)
(string-length "description: ")))))
"<none>")
(match (team-scope team)
(() "")
(scope (format #f "scope:~%~{+ ~a~^~%~}~%"
(sort (map (match-lambda
((? regexp*? rx)
(regexp*-pattern rx))
(item item))
scope)
string<?)))))
(list-members team #:prefix "+ ")
(newline))
(define (sort-teams teams)
"Sort TEAMS, a list of <team> record objects."
(sort teams
(lambda (team1 team2)
(string<? (symbol->string (team-id team1))
(symbol->string (team-id team2))))))
(define* (list-teams #:optional team-names)
"Print all teams, their scope and their members."
(for-each print-team
(sort-teams
(if team-names
(map find-team team-names)
(hash-map->list (lambda (_ value) value) %teams)))))
(define (diff-revisions rev-start rev-end)
@ -782,6 +813,8 @@ and REV-END, two git revision strings."
(lambda (team-name)
(list-members (find-team team-name)))
team-names))
(("show" . team-names)
(list-teams team-names))
(anything
(format (current-error-port)
"Usage: etc/teams.scm <command> [<args>]
@ -800,6 +833,8 @@ Commands:
list-members <team-name>
list members belonging to <team-name>
get-maintainer <patch>
compatibility mode with Linux get_maintainer.pl~%"))))
compatibility mode with Linux get_maintainer.pl
show <team-name>
display <team-name> properties~%"))))
(apply main (cdr (command-line)))

View File

@ -162,14 +162,14 @@ owner-writable in HOME."
group records) are all available."
(define (make-home-directory user)
(let ((home (user-account-home-directory user))
(home-permissions (user-account-home-directory-permissions user))
(pwd (getpwnam (user-account-name user))))
(mkdir-p home)
;; Always set ownership and permissions for home directories of system
;; accounts.
;; accounts. If a service needs looser permissions on its home
;; directories, it can always chmod it in an activation snippet.
(chown home (passwd:uid pwd) (passwd:gid pwd))
(chmod home home-permissions)))
(chmod home #o700)))
(define system-accounts
(filter (lambda (user)

View File

@ -21,6 +21,8 @@
#:use-module (gnu services)
#:use-module (gnu services dict)
#:use-module ((gnu system shadow) #:select (account-service-type))
;; For the 'home-shepherd-service-type' mapping.
#:use-module (gnu home services shepherd)
#:export (home-dicod-service-type)
#:re-export (dicod-configuration))

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -23,7 +24,7 @@
#:use-module (gnu services configuration)
#:use-module (gnu home services)
#:use-module (gnu home services shepherd)
#:autoload (gnu packages gnupg) (gnupg pinentry)
#:autoload (gnu packages gnupg) (gnupg pinentry parcimonie)
#:export (home-gpg-agent-configuration
home-gpg-agent-configuration?
home-gpg-agent-configuration-gnupg
@ -34,7 +35,16 @@
home-gpg-agent-configuration-max-cache-ttl-ssh
home-gpg-agent-configuration-extra-content
home-gpg-agent-service-type))
home-gpg-agent-service-type
home-parcimonie-configuration
home-parcimonie-configuration?
home-parcimonie-configuration-parcimonie
home-parcimonie-configuration-gnupg-already-torified?
home-parcimonie-configuration-refresh-guix-keyrings?
home-parcimonie-configuration-extra-content
home-parcimonie-service-type))
(define raw-configuration-string? string?)
@ -148,3 +158,68 @@ agent, with support for handling OpenSSH material."))))
managing OpenPGP and optionally SSH private keys. When SSH support is
enabled, @command{gpg-agent} acts as a drop-in replacement for OpenSSH's
@command{ssh-agent}.")))
(define-configuration/no-serialization home-parcimonie-configuration
(parcimonie
(file-like parcimonie)
"The parcimonie package to use.")
(verbose?
(boolean #f)
"Provide extra output to the log file.")
(gnupg-aleady-torified?
(boolean #f)
"GnuPG is already configured to use tor and parcimonie won't attempt to use
tor directly.")
(refresh-guix-keyrings?
(boolean #f)
"Also refresh any Guix keyrings found in the XDG_CONFIG_DIR.")
(extra-content
(raw-configuration-string "")
"Raw content to add to the parcimonie service."))
(define (home-parcimonie-shepherd-service config)
"Return a user service to run parcimonie."
(match-record config <home-parcimonie-configuration>
(parcimonie verbose? gnupg-aleady-torified?
refresh-guix-keyrings? extra-content)
(let ((log-file #~(string-append %user-log-dir "/parcimonie.log")))
(list (shepherd-service
(provision '(parcimonie))
(modules '((shepherd support) ;for '%user-log-dir'
(guix build utils)
(srfi srfi-1)))
(start #~(make-forkexec-constructor
(cons*
#$(file-append parcimonie "/bin/parcimonie")
#$@(if verbose?
'("--verbose")
'())
#$@(if gnupg-aleady-torified?
'("--gnupg_already_torified")
'())
#$@(if (not (string=? extra-content ""))
(list extra-content)
'())
#$@(if refresh-guix-keyrings?
'((append-map
(lambda (item)
(list (string-append "--gnupg_extra_args="
"--keyring=" item)))
(find-files
(string-append (getenv "XDG_CONFIG_HOME") "/guix")
"^trustedkeys\\.kbx$")))
'((list))))
#:log-file #$log-file))
(stop #~(make-kill-destructor))
(respawn? #t)
(documentation "Incrementally refresh gnupg keyring over Tor"))))))
(define home-parcimonie-service-type
(service-type
(name 'home-parcimonie)
(extensions
(list (service-extension home-shepherd-service-type
home-parcimonie-shepherd-service)))
(default-value (home-parcimonie-configuration))
(description
"Incrementally refresh GnuPG keyrings over Tor.")))

View File

@ -20,6 +20,8 @@
#:use-module (gnu services)
#:use-module (gnu home services)
#:use-module (gnu services syncthing)
;; For the 'home-shepherd-service-type' mapping.
#:use-module (gnu home services shepherd)
#:export (home-syncthing-service-type)
#:re-export (syncthing-configuration
syncthing-configuration?))

View File

@ -153,6 +153,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/bioinformatics.scm \
%D%/packages/bittorrent.scm \
%D%/packages/bison.scm \
%D%/packages/books.scm \
%D%/packages/boost.scm \
%D%/packages/bootloaders.scm \
%D%/packages/bootstrap.scm \
@ -912,6 +913,7 @@ dist_patch_DATA = \
%D%/packages/patches/apr-skip-getservbyname-test.patch \
%D%/packages/patches/ark-skip-xar-test.patch \
%D%/packages/patches/arpack-ng-propagate-rng-state.patch \
%D%/packages/patches/asli-use-system-libs.patch \
%D%/packages/patches/aspell-CVE-2019-25051.patch \
%D%/packages/patches/aspell-default-dict-dir.patch \
%D%/packages/patches/ath9k-htc-firmware-binutils.patch \
@ -1180,9 +1182,15 @@ dist_patch_DATA = \
%D%/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch \
%D%/packages/patches/ganeti-disable-version-symlinks.patch \
%D%/packages/patches/ganeti-haskell-pythondir.patch \
%D%/packages/patches/ganeti-lens-compat.patch \
%D%/packages/patches/ganeti-pyyaml-compat.patch \
%D%/packages/patches/ganeti-procps-compat.patch \
%D%/packages/patches/ganeti-reorder-arbitrary-definitions.patch \
%D%/packages/patches/ganeti-relax-dependencies.patch \
%D%/packages/patches/ganeti-shepherd-master-failover.patch \
%D%/packages/patches/ganeti-shepherd-support.patch \
%D%/packages/patches/ganeti-template-haskell-2.17.patch \
%D%/packages/patches/ganeti-template-haskell-2.18.patch \
%D%/packages/patches/gawk-shell.patch \
%D%/packages/patches/gcc-arm-bug-71399.patch \
%D%/packages/patches/gcc-arm-link-spec-fix.patch \
@ -1319,6 +1327,7 @@ dist_patch_DATA = \
%D%/packages/patches/go-github-com-golang-snappy-32bit-test.patch \
%D%/packages/patches/go-github-com-urfave-cli-fix-tests.patch \
%D%/packages/patches/go-github-com-urfave-cli-v2-fix-tests.patch \
%D%/packages/patches/go-github-com-wraparound-wrap-free-fonts.patch \
%D%/packages/patches/go-skip-gc-test.patch \
%D%/packages/patches/gourmet-sqlalchemy-compat.patch \
%D%/packages/patches/gpaste-fix-paths.patch \
@ -1410,9 +1419,7 @@ dist_patch_DATA = \
%D%/packages/patches/imagemagick-WriteTHUMBNAILImage-fix.patch \
%D%/packages/patches/inkscape-poppler-compat.patch \
%D%/packages/patches/instead-use-games-path.patch \
%D%/packages/patches/intel-xed-fix-nondeterminism.patch \
%D%/packages/patches/intltool-perl-compatibility.patch \
%D%/packages/patches/iputils-libcap-compat.patch \
%D%/packages/patches/irrlicht-use-system-libs.patch \
%D%/packages/patches/irrlicht-link-against-needed-libs.patch \
%D%/packages/patches/isl-0.11.1-aarch64-support.patch \
@ -1601,7 +1608,6 @@ dist_patch_DATA = \
%D%/packages/patches/mcrypt-CVE-2012-4527.patch \
%D%/packages/patches/libmemcached-build-with-gcc7.patch \
%D%/packages/patches/libmhash-hmac-fix-uaf.patch \
%D%/packages/patches/libsigrokdecode-python3.9-fix.patch \
%D%/packages/patches/maturin-no-cross-compile.patch \
%D%/packages/patches/mecab-variable-param.patch \
%D%/packages/patches/memtest86+-build-reproducibly.patch \
@ -1734,7 +1740,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-sgmllib3k-assertions.patch \
%D%/packages/patches/python-telingo-fix-comparison.patch \
%D%/packages/patches/python-typeguard-python3.10.patch \
%D%/packages/patches/python-w3lib-fix-test-failure.patch \
%D%/packages/patches/python-wxwidgets-type-errors.patch \
%D%/packages/patches/qtdeclarative-5-disable-qmlcache.patch \
%D%/packages/patches/qtdeclarative-disable-qmlcache.patch \
@ -1840,7 +1845,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-piexif-fix-tests-with-pillow-7.2.patch \
%D%/packages/patches/python-pillow-CVE-2022-45199.patch \
%D%/packages/patches/python-pyfakefs-remove-bad-test.patch \
%D%/packages/patches/python-pyflakes-test-location.patch \
%D%/packages/patches/python-flint-includes.patch \
%D%/packages/patches/python-libxml2-utf8.patch \
%D%/packages/patches/python-memcached-syntax-warnings.patch \
@ -1870,7 +1874,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-werkzeug-tests.patch \
%D%/packages/patches/python-zeep-Fix-pytest_httpx-test-cases.patch \
%D%/packages/patches/qemu-build-info-manual.patch \
%D%/packages/patches/qemu-disable-aarch64-migration-test.patch \
%D%/packages/patches/qemu-disable-some-qtests-tests.patch \
%D%/packages/patches/qemu-glibc-2.27.patch \
%D%/packages/patches/qemu-glibc-2.30.patch \
%D%/packages/patches/qemu-fix-agent-paths.patch \
@ -1902,7 +1906,7 @@ dist_patch_DATA = \
%D%/packages/patches/rpcbind-CVE-2017-8779.patch \
%D%/packages/patches/rtags-separate-rct.patch \
%D%/packages/patches/racket-chez-scheme-bin-sh.patch \
%D%/packages/patches/racket-rktboot-riscv64-support.patch \
%D%/packages/patches/racket-backport-8.10-rktboot.patch \
%D%/packages/patches/racket-rktio-bin-sh.patch \
%D%/packages/patches/racket-zuo-bin-sh.patch \
%D%/packages/patches/remake-impure-dirs.patch \
@ -1919,6 +1923,7 @@ dist_patch_DATA = \
%D%/packages/patches/ruby-anystyle-fix-dictionary-populate.patch \
%D%/packages/patches/ruby-latex-decode-fix-test.patch \
%D%/packages/patches/ruby-mustache-1.1.1-fix-race-condition-tests.patch \
%D%/packages/patches/ruby-nokogiri.patch \
%D%/packages/patches/rustc-1.54.0-src.patch \
%D%/packages/patches/rust-1.64-fix-riscv64-bootstrap.patch \
%D%/packages/patches/rust-ring-0.16-missing-files.patch \
@ -1932,6 +1937,7 @@ dist_patch_DATA = \
%D%/packages/patches/rust-webbrowser-remove-unsupported-os.patch \
%D%/packages/patches/rust-wl-clipboard-rs-newer-wl.patch \
%D%/packages/patches/rw-igraph-0.10.patch \
%D%/packages/patches/rxvt-unicode-fix-cursor-position.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 \
@ -1969,6 +1975,7 @@ dist_patch_DATA = \
%D%/packages/patches/source-highlight-gcc-compat.patch \
%D%/packages/patches/softhsm-fix-openssl3-tests.patch \
%D%/packages/patches/spectre-meltdown-checker-externalize-fwdb.patch \
%D%/packages/patches/spdlog-fix-tests.patch \
%D%/packages/patches/spectre-meltdown-checker-find-kernel.patch \
%D%/packages/patches/sphinxbase-fix-doxygen.patch \
%D%/packages/patches/sssd-system-directories.patch \
@ -2090,6 +2097,7 @@ dist_patch_DATA = \
%D%/packages/patches/vte-CVE-2012-2738-pt1.patch \
%D%/packages/patches/vte-CVE-2012-2738-pt2.patch \
%D%/packages/patches/vtk-7-gcc-10-compat.patch \
%D%/packages/patches/vtk-7-gcc-11-compat.patch \
%D%/packages/patches/vtk-7-hdf5-compat.patch \
%D%/packages/patches/vtk-7-python-compat.patch \
%D%/packages/patches/wacomtablet-add-missing-includes.patch \
@ -2098,6 +2106,7 @@ dist_patch_DATA = \
%D%/packages/patches/wdl-link-libs-and-fix-jnetlib.patch \
%D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch \
%D%/packages/patches/webrtc-audio-processing-big-endian.patch \
%D%/packages/patches/webrtc-for-telegram-desktop-unbundle-libsrtp.patch \
%D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \
%D%/packages/patches/wmctrl-64-fix.patch \
%D%/packages/patches/wmfire-update-for-new-gdk-versions.patch \

View File

@ -385,9 +385,18 @@ interface and is based on GNU Guile.")
(base32
"0v9ld9gbqdp5ya380fbkdsxa0iqr90gi6yk004ccz3n792nq6wlj"))))
(native-inputs (modify-inputs (package-native-inputs shepherd-0.9)
(replace "guile-fibers" guile-fibers-1.3)))
(replace "guile-fibers"
;; Work around
;; <https://github.com/wingo/fibers/issues/89>. This
;; affects any system without a functional real-time
;; clock (RTC), but in practice these are typically Arm
;; single-board computers.
(if (target-arm?)
guile-fibers-1.1
guile-fibers-1.3))))
(inputs (modify-inputs (package-inputs shepherd-0.9)
(replace "guile-fibers" guile-fibers-1.3)))))
(replace "guile-fibers"
(this-package-native-input "guile-fibers"))))))
(define-public shepherd shepherd-0.9)
@ -3979,7 +3988,7 @@ you are running, what theme or icon set you are using, etc.")
(define-public hyfetch
(package
(name "hyfetch")
(version "1.4.8")
(version "1.4.10")
(source
(origin
(method git-fetch)
@ -3989,7 +3998,7 @@ you are running, what theme or icon set you are using, etc.")
(file-name (git-file-name name version))
(sha256
(base32
"127nwgxcq0fs9wavs0sqv8zqdz7yfahw1nr9pgb6z5yjnc5cdcx3"))))
"1lf1vrasinda9j6yazznpx54gg5j24xvkjb68dxhby9dg8ql1h87"))))
(build-system python-build-system)
(arguments (list #:tests? #f)) ;no tests
(inputs (list python-typing-extensions))
@ -4276,6 +4285,28 @@ on systems running the Linux kernel.")
(supported-systems '("i686-linux" "x86_64-linux"))
(license license:gpl2)))
(define-public tcptrack
(package
(name "tcptrack")
(version "1.4.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/bchretien/tcptrack")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"08lh3l67wn4kq9q0nfspc7rj0jvp9dzwjgxpvqliwcif8cy5mi45"))))
(build-system gnu-build-system)
(inputs (list libpcap ncurses))
(synopsis "TCP connections sniffer")
(description
"Tcptrack is a sniffer which displays information about TCP connections
it sees on a network interface. This is a fork of Steve Bensons tcptrack.")
(home-page "https://github.com/bchretien/tcptrack")
(license license:lgpl2.1+)))
(define-public masscan
(package
(name "masscan")

View File

@ -1154,38 +1154,6 @@ features, and more.")
(substitute* "test/CMakeLists.txt"
(("ei_add_test\\(stddeque") "#")))))))))))
(define-public eigen-for-tensorflow-lite
;; This commit was taken from
;; tensorflow/lite/tools/cmake/modules/eigen.cmake
(let ((commit "d10b27fe37736d2944630ecd7557cefa95cf87c9")
(revision "1"))
(package (inherit eigen)
(name "eigen-for-tensorflow-lite")
(version (git-version "3.3.7" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/libeigen/eigen")
(commit commit)))
(sha256
(base32
"0v8a20cwvwmp3hw4275b37frw33v92z0mr8f4dn6y8k0rz92hrrf"))
(file-name (git-file-name name version))
(modules '((guix build utils)))
(snippet
;; Ther are test failures in the "unsupported" directory, but
;; maintainers say it's unsupported anyway, so just skip
;; them.
'(begin
(substitute* "unsupported/CMakeLists.txt"
(("add_subdirectory\\(test.*")
"# Do not build the tests for unsupported features.\n"))))))
(arguments
(substitute-keyword-arguments (package-arguments eigen)
((#:phases phases)
`(modify-phases ,phases
(delete 'disable-some-tests))))))))
(define-public xtensor
(package
(name "xtensor")

View File

@ -442,19 +442,24 @@ waveform until they line up with the proper sounds.")
(inputs
(list qtbase-5 qtxmlpatterns qtmultimedia-5 qtsvg-5))
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(invoke "qmake" (string-append "PREFIX=" out)))))
(add-after 'install 'wrap-executable
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(plugin-path (getenv "QT_PLUGIN_PATH")))
(wrap-program (string-append out "/bin/pencil2d")
`("QT_PLUGIN_PATH" ":" prefix (,plugin-path)))
#t))))))
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-tests
(lambda _
;; Its bundled catch2-2.5.0 fails to build with glibc-2.35.
(copy-file #$(file-append catch2 "/include/catch2/catch.hpp")
"tests/src/catch.hpp")))
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(invoke "qmake" (string-append "PREFIX=" out)))))
(add-after 'install 'wrap-executable
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(plugin-path (getenv "QT_PLUGIN_PATH")))
(wrap-program (string-append out "/bin/pencil2d")
`("QT_PLUGIN_PATH" ":" prefix (,plugin-path)))))))))
(home-page "https://www.pencil2d.org")
(synopsis "Make 2D hand-drawn animations")
(description

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 L p R n d n <guix@lprndn.info>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2023 Ahmad Draidi <a.r.draidi@redscript.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -19,151 +20,149 @@
(define-module (gnu packages arcan)
#:use-module (guix build-system cmake)
#:use-module (guix build-system meson)
#:use-module (guix build-system gnu)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (gnu packages apr)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
#:use-module (gnu packages fonts)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages lua)
#:use-module (gnu packages ocr)
#:use-module (gnu packages onc-rpc)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pdf)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages ruby)
#:use-module (gnu packages sdl)
#:use-module (gnu packages speech)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
#:use-module (gnu packages video)
#:use-module (gnu packages vnc)
#:use-module (gnu packages web)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
#:use-module (srfi srfi-1))
(define-public arcan
(let ((commit "b4dd1fbd1938492ff4b269189d3c8524be7450a9")
(revision "1"))
(package
(name "arcan")
(version (git-version "0.5.5.2" revision commit))
(source (origin
(method git-fetch)
(file-name (git-file-name name version))
(uri (git-reference
(url "https://github.com/letoram/arcan")
(commit commit)))
(sha256
(base32 "1pd0avlzc2rig1hd37zbhc7r2s6fjzdhshfg9l9cfzibl7caclyw"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DCMAKE_C_FLAGS=-fcommon"
"-DVIDEO_PLATFORM=egl-dri" "-DBUILTIN_LUA=off"
"-DSTATIC_OPENAL=off""-DENABLE_LWA=on"
"-DSTATIC_SQLITE3=off" "-DSTATIC_FREETYPE=off"
"-DSHMIF_TUI_ACCEL=on")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-cmake-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/platform/cmake/modules/FindGBMKMS.cmake"
(("/usr/local/include/libdrm")
(search-input-directory inputs "include/libdrm")))
(substitute* "src/platform/cmake/modules/FindAPR.cmake"
(("/usr/local/apr/include/apr-1")
(search-input-directory inputs "include/apr-1")))
#t))
;; Normally, it tries to fetch patched openal with git
;; but copying files manually in the right place seems to work too.
(add-after 'unpack 'prepare-static-openal
(lambda* (#:key inputs #:allow-other-keys)
(let ((arcan-openal (assoc-ref inputs "arcan-openal")))
(copy-recursively arcan-openal "external/git/openal"))
#t))
(add-after 'prepare-static-openal 'generate-man
(lambda _
(with-directory-excursion "doc"
(invoke "ruby" "docgen.rb" "mangen"))
#t))
(add-before 'configure 'chdir
(lambda _
(chdir "src")
#t))
(add-after 'install 'wrap-program
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(wrap-program (string-append out "/bin/arcan")
`("ARCAN_RESOURCEPATH" ":" suffix
(,(string-append out "/share/arcan/resources")))
`("ARCAN_STATEBASEPATH" ":" =
("$HOME/.arcan/resources/savestates"))
`("ARCAN_STATEPATH" ":" =
("$HOME/.arcan/resources/savestates"))
`("ARCAN_BINPATH" ":" =
(,(string-append out "/bin/arcan_frameserver")))))
#t)))
#:tests? #f))
(native-search-paths
(list (search-path-specification
(variable "ARCAN_APPLBASEPATH")
(separator #f)
(files '("share/arcan/appl")))
(search-path-specification
(variable "ARCAN_SCRIPTPATH")
(separator #f)
(files '("share/arcan/scripts")))))
(inputs
`(("apr" ,apr)
("ffmpeg" ,ffmpeg-4)
("freetype" ,freetype)
("glib" ,glib)
("glu" ,glu)
("harfbuzz" ,harfbuzz)
("libdrm" ,libdrm)
("libusb" ,libusb)
("libxkbcommon" ,libxkbcommon)
("lua" ,luajit)
("lzip" ,lzip)
("openal" ,openal)
("pcre" ,pcre)
("sqlite" ,sqlite)
("tesseract-ocr" ,tesseract-ocr)
("leptonica" ,leptonica)
("vlc" ,vlc)
;; To build arcan_lwa, we need a patched version of openal.
;; https://github.com/letoram/arcan/wiki/packaging
("arcan-openal" ,(origin
(method git-fetch)
(file-name "arcan-openal-0.5.4")
(uri (git-reference
(url "https://github.com/letoram/openal")
(commit "1c7302c580964fee9ee9e1d89ff56d24f934bdef")))
(sha256
(base32
"0dcxcnqjkyyqdr2yk84mprvkncy5g172kfs6vc4zrkklsbkr8yi2"))))))
(native-inputs
(list pkg-config ruby)) ; For documentation and testing
(home-page "https://arcan-fe.com")
(synopsis "Display server, multimedia framework and game engine (egl-dri)")
(description "Arcan is a development framework for creating virtually
(package
(name "arcan")
(version "0.6.2.1")
(source (origin
(method git-fetch)
(file-name (git-file-name name version))
(uri (git-reference
(url "https://github.com/letoram/arcan")
(commit version)))
(sha256
(base32
"14wwb7mgq8ab39dfprps7hzdz7a37r3cl8dc5q6m1r8n5daxyzgc"))
(modules '((guix build utils)))
(snippet
;; Remove some bundled packages.
#~(begin
(delete-file-recursively "external/git")
(delete-file-recursively "external/lua")
(delete-file-recursively "external/sqlite")))))
(build-system cmake-build-system)
(arguments
(list #:configure-flags #~'("-DBUILD_PRESET=everything"
"-DDISTR_TAG='Guix'")
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "src/platform/posix/paths.c"
(("/usr/local")
(assoc-ref outputs "out")))))
;; Normally, it tries to fetch patched openal with git
;; but copying files manually in the right place seems
;; to work too.
(add-after 'unpack 'prepare-static-openal
(lambda* (#:key inputs #:allow-other-keys)
(let ((arcan-openal (assoc-ref inputs
"arcan-openal")))
(copy-recursively arcan-openal
"external/git/openal")) #t))
(add-after 'prepare-static-openal 'generate-man
(lambda _
(with-directory-excursion "doc"
(invoke "ruby" "docgen.rb" "mangen")) #t))
(add-before 'configure 'chdir
(lambda _
(chdir "src") #t)))
#:tests? #f))
(inputs `(("bash-minimal" ,bash-minimal)
("espeak" ,espeak)
("ffmpeg" ,ffmpeg)
("freetype" ,freetype)
("gumbo-parser" ,gumbo-parser)
("harfbuzz" ,harfbuzz)
("jbig2dec" ,jbig2dec)
("leptonica" ,leptonica)
("libdrm" ,libdrm)
("libjpeg-turbo" ,libjpeg-turbo)
("libseccomp" ,libseccomp)
("libusb" ,libusb)
("libvnc" ,libvnc)
("libxkbcommon" ,libxkbcommon)
("luajit" ,luajit)
("mupdf" ,mupdf)
("openal" ,openal)
("openjpeg" ,openjpeg)
("sdl2" ,sdl2)
("sqlite" ,sqlite)
("tesseract-ocr" ,tesseract-ocr)
("vlc" ,vlc)
("wayland" ,wayland)
("wayland-protocols" ,wayland-protocols)
("xcb-util" ,xcb-util)
("xcb-util-wm" ,xcb-util-wm)
("zlib" ,zlib)
;; To build arcan_lwa, we need a patched version of openal.
;; https://github.com/letoram/arcan/wiki/packaging
("arcan-openal"
,(origin
(method git-fetch)
(file-name "arcan-openal-0.6.2")
(uri (git-reference (url
"https://github.com/letoram/openal")
(commit "0.6.2")))
(sha256
(base32
"0vg3fda47q2dk1n43ijcc64q39z044pa8h6scmfyi22g6r6bfw2z"))))))
(native-inputs (list pkg-config ruby)) ;For documentation and testing
(home-page "https://arcan-fe.com")
(synopsis "Display server, multimedia framework and game engine")
(description
"Arcan is a development framework for creating virtually
anything from user interfaces for specialized embedded applications
all the way to full-blown desktop environments. At its heart lies a multimedia
engine programmable using Lua.")
;; https://github.com/letoram/arcan/blob/master/COPYING
(license (list license:gpl2+
license:lgpl2.0
license:lgpl2.0+
license:public-domain
license:bsd-3)))))
engine with a Lua scripting interface.")
;; https://github.com/letoram/arcan/blob/master/COPYING
(license (list license:asl2.0
license:bsd-3
license:cc-by3.0
license:expat
license:gpl2+
license:lgpl2.0
license:lgpl2.0+
license:public-domain
license:silofl1.1
license:zlib))))
(define-public arcan-sdl
(package
@ -185,90 +184,67 @@ engine programmable using Lua.")
(synopsis "Combined display server, multimedia framework and game engine (SDL)")))
(define-public xarcan
(let ((commit "8e6ee029388326cfe5cddeffe482eb3702e9b7f3")
(revision "1" ))
(package
(name "xarcan")
(version (git-version "0.5.4" revision commit))
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(uri (git-reference
(url "https://github.com/letoram/xarcan")
(commit commit)))
(sha256
(base32 "0zng7cs6733mnf0p6g5wv02981f2sf567n56csax6cmzb8fpamym"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
`("--enable-kdrive" "--enable-xarcan"
"--disable-xorg" "--disable-xwayland"
"--disable-xnest" "--disable-xvfb"
"--enable-glamor" "--enable-glx"
"--disable-int10-module" "--enable-ipv6"
"--enable-record" "--without-systemd-daemon"
"--enable-xcsecurity" "--disable-static"
,(string-append "--with-xkb-path="
(assoc-ref %build-inputs "xkeyboard-config")
"/share/X11/xkb")
,(string-append "--with-xkb-bin-directory="
(assoc-ref %build-inputs "xkbcomp")
"/bin")
,(string-append "--with-xkb-output="
"/tmp")))) ; FIXME: Copied from xorg
(native-inputs
(list pkg-config autoconf automake libtool util-macros))
(inputs
`(("arcan" ,arcan)
("font-util" ,font-util)
("libdrm" ,libdrm)
("libepoxy" ,libepoxy)
("libkbfile" ,libxkbfile)
("libressl" ,libressl)
("libx11" ,libx11)
("libxfont2" ,libxfont2)
("mesa" ,mesa)
("pixman" ,pixman)
("xkeyboard-config" ,xkeyboard-config)
("xkbcomp" ,xkbcomp)
("xorgproto" ,xorgproto)
("xtrans" ,xtrans)))
(home-page "https://arcan-fe.com")
(synopsis "Patched Xserver that bridges connections to Arcan")
(description "Patched Xserver with a KDrive backend that uses the arcan-shmif
to map Xlib/Xcb/X clients to a running arcan instance. It allows running an X session
as a window under Arcan.")
(license license:expat))))
(define-public arcan-wayland
(package
(inherit arcan)
(name "arcan-wayland")
(name "xarcan")
(version "0.6.1")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(uri (git-reference
(url "https://github.com/letoram/xarcan")
(commit version)))
(sha256
(base32 "1z4sf101i2y6rg2vcxfwmp1nkzfa3rw1pp48ym1ds1ka513vy128"))))
(build-system meson-build-system)
(arguments
(list
#:configure-flags
#~(list
"-Dglamor=true" "-Dint10=false"
"-Dipv6=true"
"-Dsystemd_logind=false"
;; The following arguments were taken from the Xwayland package.
;; The build system insist on providing a default font path; give
;; that of dejavu, the same used for our fontconfig package.
(string-append "-Ddefault_font_path="
#$(this-package-input "font-dejavu") "/share/fonts")
(string-append "-Dxkb_dir=" #$(this-package-input "xkeyboard-config")
"/share/X11/xkb")
(string-append "-Dxkb_bin_dir=" #$(this-package-input "xkbcomp")
"/bin")
(format #f "-Dbuilder_string=\"Build ID: ~a ~a\"" #$name #$version))))
(native-inputs
(list pkg-config))
(list pkg-config autoconf automake libtool util-macros))
(inputs
(list arcan
libseccomp
libxkbcommon
font-dejavu
font-util
libdrm
libepoxy
libtirpc
libx11
libxfont2
libxkbfile
libxshmfence
mesa
wayland
wayland-protocols))
(arguments
`(#:tests? #f
#:phases
(modify-phases %standard-phases
(add-before 'configure 'chdir
(lambda _
(chdir "src/tools/waybridge")
#t))
(add-after 'unpack 'fix-cmake-find-shmif
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/platform/cmake/modules/Findarcan_shmif.cmake"
(("/usr/local") (assoc-ref inputs "arcan")))
#t)))))
(synopsis "Wayland protocol service for Arcan")
(description "Arcan-wayland (waybridge) bridges Wayland connections
with an Arcan connection point. It allows Wayland compatible clients
to connect and render using Arcan.")
(license license:bsd-3)))
openssl
pixman
xcb-util
xcb-util-wm
xkbcomp
xkeyboard-config
xorgproto
xtrans))
(home-page "https://arcan-fe.com")
(synopsis "Patched Xserver that bridges connections to Arcan")
(description "Patched Xserver with a KDrive backend that uses the arcan-shmif
to map Xlib/Xcb/X clients to a running arcan instance. It allows running an X session
as a window under Arcan.")
(license (list license:bsd-3 license:expat))))
;; Package was merged into arcan in upstream.
(define-public arcan-wayland
(deprecated-package "arcan-wayland" arcan))

View File

@ -470,20 +470,18 @@ sets, both THUMB and ARM mode.")
(define-public intel-xed
(package
(name "intel-xed")
(version "12.0.1")
(version "2023.08.21")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/intelxed/xed")
(commit version)))
(sha256 (base32 "07zfff8zf29c2n0wal87hiqfq3cwcjn80zz78mz0nyjfj09nd39f"))
(file-name (git-file-name name version))
(patches (search-patches "intel-xed-fix-nondeterminism.patch"))))
(commit (string-append "v" version))))
(sha256 (base32 "1zv99m5h3n3w6jcpplznq030s5mlwg5llz3vgfwpfl5l8laz1032"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(native-inputs
`(("python" ,python-wrapper)
("tcsh" ,tcsh)
;; As of the time of writing this comment, mbuild does not exist in the
;; Python Package Index and seems to only be used by intel-xed, so we
;; opt to include it here instead of packaging separately. Note also
@ -491,15 +489,15 @@ sets, both THUMB and ARM mode.")
;; reference the "version" variable from setup.py instead.
("mbuild"
,(let ((name "mbuild")
(version "0.2496"))
(version "2022.07.28"))
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/intelxed/mbuild")
(commit "3de3f0d753c11dbe634bec611d4cc13f74768e4f")))
(commit (string-append "v" version))))
(sha256
(base32
"0z8hdhpmk8y5c9429p2yns9daswnffbprni9czkq3vij8f58lkg4"))
"0rc9xp202yqw42bwgylwxvfvjr1crdl50qvv8vzfczyvlf4wflcx"))
(file-name (git-file-name name version)))))))
(outputs '("out" "lib"))
(arguments
@ -585,5 +583,3 @@ intrinsics as defined in the @file{arm_neon.h} header and x86 SSE (up to
SSE4.2) intrinsic functions as defined in corresponding x86 compilers headers
files.")
(license license:bsd-2))))

View File

@ -779,6 +779,9 @@ namespace ARDOUR { const char* revision = \"" version "\" ; const char* date = \
libdir "/panners" ":"
libdir "/surfaces" ":"
libdir "/vamp" "\"]"))))))
(add-after 'build 'build-i18n
(lambda _
(invoke "python" "waf" "i18n")))
(add-after 'install 'install-freedesktop-files
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@ -2829,7 +2832,7 @@ implementation of the Open Sound Control (@dfn{OSC}) protocol.")
(define-public rtaudio
(package
(name "rtaudio")
(version "5.1.0")
(version "5.2.0")
(source
(origin
(method git-fetch)
@ -2838,20 +2841,8 @@ implementation of the Open Sound Control (@dfn{OSC}) protocol.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "156c2dgh6jrsyfn1y89nslvaxm4yifmxridsb708yvkaym02w2l8"))))
(base32 "189xphhf0winf8b60dx1kk2biz811wk6ps44br7l1lyfhymxcjmi"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
;; The header that pkg-config expects is include/rtaudio/RtAudio.h,
;; but this package installs it as include/RtAudio.h by default.
(add-after 'install 'fix-inc-path
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(inc (string-append out "/include")))
(mkdir-p (string-append inc "/rtaudio"))
(rename-file (string-append inc "/RtAudio.h")
(string-append inc "/rtaudio/RtAudio.h"))))))))
(native-inputs
(list pkg-config))
(inputs

View File

@ -46,7 +46,7 @@
(name "avr-binutils")))
(define avr-gcc
(let ((xgcc (cross-gcc "avr" #:xgcc gcc #:xbinutils avr-binutils)))
(let ((xgcc (cross-gcc "avr" #:xbinutils avr-binutils)))
(package
(inherit xgcc)
(name "avr-gcc")

View File

@ -461,7 +461,8 @@ remain fully idle, saving power and producing less noise.")
(inputs
(list librsync-0.9))
(arguments
`(#:make-flags `(,(string-append "PREFIX=" (assoc-ref %outputs "out"))
`(#:make-flags `("CFLAGS=-fcommon"
,(string-append "PREFIX=" (assoc-ref %outputs "out"))
,(string-append "CC=" ,(cc-for-target)))
#:tests? #f ;test input not distributed
#:phases

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2023 Frank Pursel <frank.pursel@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -28,7 +29,103 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages java)
#:use-module (gnu packages java-xml)
#:use-module (gnu packages textutils))
#:use-module (gnu packages javascript)
#:use-module (gnu packages textutils)
#:use-module (gnu packages xml))
(define-public java-libbatik
(package
(name "java-libbatik")
(version "1.16")
(source (origin
(method url-fetch)
(uri (string-append
"https://dlcdn.apache.org/xmlgraphics/batik/source/batik-src-"
version ".tar.gz"))
(sha256
(base32
"18ys0j7i861ydvimbm3a7dyvny48x5b37zfkvznlys7vcb2qz5z1"))
(modules '((guix build utils)))
(snippet '(begin
;; Identify and delete bundled jars.
(format #t "~%~a~%" "Removing sourced jars")
(for-each (lambda (f)
(delete-file f)
(format #t "Deleted: ~a~%" f))
(find-files "." "\\.jar$"))))))
(build-system ant-build-system)
(arguments
`(#:jar-name "batik.jar"
#:source-dir "sources/src/main/java"
#:test-dir "sources/src/test"
;; Tests are successful -- exclusions in lieu of
;; deleting duplicated util tests.
#:test-exclude (list "**/util/*.java")
#:phases (modify-phases %standard-phases
(add-after 'unpack 'src-consolidation
(lambda _
(mkdir-p "sources")
(let ((cwd (getcwd))
(sub-dirs (list "anim"
"awt-util"
"bridge"
"codec"
"constants"
"css"
"dom"
"ext"
"extension"
"gui-util"
"gvt"
"i18n"
"parser"
"script"
"slideshow"
"svgbrowser"
"svg-dom"
"svggen"
"svgpp"
"svgrasterizer"
"swing"
"test"
"test-svg"
"transcoder"
"ttf2svg"
"util"
"xml"
"test-swing")))
(for-each (lambda (sdir)
(copy-recursively (string-append "batik-"
sdir)
"sources/")) sub-dirs))
;; Test prep
(copy-recursively "test-resources" "sources")
;; Remove scripting subdirs for jpython, and jacl.
(for-each (lambda (rfile)
(delete-file rfile)
(format #t "Deleted: ~s\n" rfile))
(append (find-files (string-append
"sources/src/main/java/org/"
"apache/batik/script/jpython"))
(find-files (string-append
"sources/src/main/java/org/"
"apache/batik/script/jacl")))))))))
(native-inputs (list java-jaxen
java-jdom
quickjs
java-jaxp
java-junit
java-xerces
java-xmlgraphics-commons
libxslt
rhino))
(home-page "https://xmlgraphics.apache.org/batik/")
(synopsis "Java based toolkit for Scalable Vector Graphics")
(description
"Batik is a Java-based toolkit for applications or
applets that want to use images in the Scalable Vector Graphics (SVG)
format for various purposes, such as display, generation or manipulation.")
(license license:asl2.0)))
(define-public java-w3c-smil-3.0
(package

File diff suppressed because it is too large Load Diff

View File

@ -2154,6 +2154,41 @@ Python.")
;; licensed lgpl2.1+
(license (list license:expat license:lgpl2.1+))))
(define-public python-scdamandtools
(package
(name "python-scdamandtools")
(version "1.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/KindLab/scDamAndTools")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1mblw6cn5jqik6ky8cv7ry99z6jm1i4r71pzdfl398vrwbda65gd"))))
(build-system pyproject-build-system)
(arguments
(list #:tests? #f)) ;there are none
(propagated-inputs (list python-h5py
python-numpy
python-sortedcontainers
python-pandas
python-pysam
python-tqdm))
(native-inputs (list python-cython python-pytest))
(home-page "https://github.com/KindLab/scDamAndTools")
(synopsis "Functions for processing raw scDam&T-seq data")
(description
"This is a set of functions for processing raw scDam&T-seq data.
scDam&T-seq is a method to simultaneously measure protein-DNA interactions and
transcription from single cells (Rooijers et al., 2019). It combines a
DamID-based method to measure protein-DNA interactions and an adaptation of
CEL-Seq to measure transcription. The starting point of the workflow is raw
sequencing data and the end result are tables of UMI-unique DamID and CEL-Seq
counts.")
(license license:expat)))
(define-public python-bioframe
(package
(name "python-bioframe")
@ -9756,11 +9791,11 @@ tasks.")
(license license:expat))))
(define-public r-chromunity
(let ((commit "09fce8bc12cb84b45a6ea25bf8db6e5b75113d4f")
(let ((commit "712e56ccba64e8881dbb203546379a5c3c639bb2")
(revision "1"))
(package
(name "r-chromunity")
(version (git-version "0.0.1" revision commit))
(version (git-version "0.0.2" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
@ -9769,12 +9804,13 @@ tasks.")
(file-name (git-file-name name version))
(sha256
(base32
"0lp0h614k8fq6h9gpbylk4chh7q6w4qda8lx03ajrpppxmg7al2d"))))
"0sdja11l7bg5rmcbp2cl226cq9qrj3r8kq5lg49zbin83hya27vh"))))
(properties `((upstream-name . "chromunity")))
(build-system r-build-system)
(propagated-inputs
(list r-arrow
r-biocgenerics
r-bsgenome-hsapiens-ucsc-hg38
r-data-table
r-gchain
r-genomicranges
@ -9786,7 +9822,6 @@ tasks.")
r-pbmcapply
r-plyr
r-r6
r-skitools
r-zoo))
(home-page "https://github.com/mskilab/chromunity")
(synopsis "Discovery of communities in Pore-C concatemers")
@ -17867,7 +17902,7 @@ multiple experimental contexts.")
(define-public vbz-compression
(package
(name "vbz-compression")
(version "1.0.1")
(version "1.0.3")
(source
(origin
(method git-fetch)
@ -17879,7 +17914,7 @@ multiple experimental contexts.")
(file-name (git-file-name name version))
(sha256
(base32
"1c6wsrnw03vsc5cfp2rdakly5xy55m9chjmy6v685yapdwirdky0"))))
"1rn5d98flvjblhj4zjpcdqqh8qlgsh5cmb13i49fnm187p03097z"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags

View File

@ -0,0 +1,120 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2023 Adam Faiz <adam.faiz@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages books)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix gexp)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages music)
#:use-module (gnu packages inkscape)
#:use-module (gnu packages perl)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages tex)
#:use-module (gnu packages texlive)
#:use-module (gnu packages version-control)
#:use-module (gnu packages fonts)
#:use-module (gnu packages fontutils))
(define-public book-sparc
(package
(name "book-sparc")
(version "1.0.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/artyom-poptsov/SPARC")
(commit (string-append "v" version))))
(sha256
(base32
"0dswwwkb3h88cl3mhiy79s8i7sa9lmw6fxaj782vxgif795lcpxs"))
(file-name (git-file-name name version))
(modules '((guix build utils)))
(snippet
#~(begin
(delete-file "sparc.pdf")
(substitute* "version.tex.in"
(("@COMMIT@") ""))
(substitute* "Makefile"
(("all: sparc.pdf") "all: install")
(("^sparc.pdf:") "install:")
(("(cp out/sparc.pdf) sparc.pdf" all cp)
(string-append
"mkdir -p $(DESTDIR)$(PREFIX)/share/doc/book-sparc"
" && " cp
" $(DESTDIR)$(PREFIX)/share/doc/book-sparc/sparc.pdf")))))))
(build-system gnu-build-system)
(native-inputs
(list bash-minimal
fontconfig
inkscape
lilypond
perl
python-pygments
which))
(inputs
(list font-liberation
texlive-acronym
texlive-adjustbox
texlive-bibtex
texlive-bibtexperllibs
texlive-bigfoot
texlive-circuitikz
texlive-collection-langcyrillic
texlive-fontspec
texlive-glossaries
texlive-glossaries-extra
texlive-koma-script
texlive-lilyglyphs
texlive-minted
texlive-multirow
texlive-pgf
texlive-pgfplots
texlive-subfiles
texlive-svg
texlive-t1utils
texlive-textpos
texlive-transparent
texlive-trimspaces
texlive-xetex))
(arguments
(list #:phases
#~(modify-phases %standard-phases
(delete 'check)
(delete 'configure)
(add-before 'build 'set-envs
(lambda _
(setenv "REPRODUCIBILITY" "yes")
(setenv "PREFIX" #$output))))))
(home-page "https://github.com/artyom-poptsov/SPARC")
(synopsis "Book on combining art and technology")
(description
"Science, Programming, Art and Radioelectronics Club (SPARC) is a book that
explains how to combine the topics mentined in the title to build projects. The
book can be used to teach programming classes in colleges and to organize
workshops in hackerspaces or other community-driven spaces. Currently the book
is available only in Russian.")
(license license:cc-by-sa4.0)))

View File

@ -881,7 +881,17 @@ commands part of the U-Boot project, such as Patman.")))
(delete 'sanity-check)
(add-after 'unpack 'chdir
(lambda _
(chdir "tools/patman"))))))
(chdir "tools/patman")))
(add-after 'chdir 'patch-pyproject.toml
;; There is no 'run_patman' procedure in the __main__.py script,
;; which breaks execution
;; Patch submitted upstream (see:
;; https://patchwork.ozlabs.org/project/uboot/\
;; patch/20230901050532.725-1-maxim.cournoyer@gmail.com/).
(lambda _
(substitute* "pyproject.toml"
(("patman.__main__:run_patman")
"patman.__main__")))))))
(inputs (list python-pygit2 python-requests python-u-boot-pylib))
(synopsis "Patch automation tool")
(description "Patman is a patch automation script which:

View File

@ -118,7 +118,7 @@ makes a few sacrifices to acquire fast full and incremental build times.")
(define-public bear
(package
(name "bear")
(version "3.1.2")
(version "3.1.3")
(source
(origin
(method git-fetch)
@ -127,7 +127,7 @@ makes a few sacrifices to acquire fast full and incremental build times.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1iq0ciw3x2awpli4k9mhx80c442xbs70y4g6qpwrirbjw15q33n7"))))
(base32 "0z8jzvxmzna7320w3hvmzb1qsv91g9npc5z5j28ncwnn0b74yxnn"))))
(build-system cmake-build-system)
(arguments
`(#:phases (modify-phases %standard-phases

View File

@ -17,6 +17,7 @@
;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2022 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2022 ( <paren@disroot.org>
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
;;; Copyright © 2023 zamfofex <zamfofex@twdb.moe>
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
;;;
@ -1495,6 +1496,34 @@ string.h, but with a utf8* prefix instead of the str* prefix.")
"This package provides a header-only unit testing library for C/C++.")
(license license:unlicense))))
(define-public nsync
(package
(name "nsync")
(version "1.26.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/google/nsync")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0qg58kkcbm4zqkql8j5yvrb7fpx09qsf7j93dwqb9s1y69l70kx4"))))
(build-system cmake-build-system)
(home-page "https://github.com/google/nsync")
(synopsis "C library for synchronization primitives")
(description
"nsync is a C library that exports various synchronization primitives:
@enumerate
@item locks,
@item condition variables,
@item run-once initialization,
@item waitable counter (useful for barriers),
@item waitable bit (useful for cancellation, or other conditions).
@end enumerate
")
(license license:asl2.0)))
(define-public ispc
(package
(name "ispc")

View File

@ -35,14 +35,14 @@
(define-public ccache
(package
(name "ccache")
(version "4.8.2")
(version "4.8.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/ccache/ccache/releases/download/v"
version "/ccache-" version ".tar.xz"))
(sha256
(base32 "0jba0zr2893gbzg4710f2gbayj33lz618lpflx7nrcd5i3wb6grx"))))
(base32 "049b3xhp464w5m1bqi4ripbgyqy7qy31vvk56v5cyj5j23478wz4"))))
(build-system cmake-build-system)
(arguments
(list #:configure-flags

View File

@ -45,6 +45,8 @@
;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
;;; Copyright © 2023 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
;;; Copyright © 2023 Reza Housseini <reza@housseini.me>
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
;;;
;;; This file is part of GNU Guix.
;;;
@ -67,6 +69,7 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
@ -94,6 +97,7 @@
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#: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 go)
@ -108,7 +112,7 @@
(define-public pict
(package
(name "pict")
(version "3.7.3")
(version "3.7.4")
(source
(origin
(method git-fetch)
@ -118,7 +122,7 @@
(file-name (git-file-name name version))
(sha256
(base32
"0bpyl0zklw2fyxgynrc7shg0xamw8rr68zmh528niscrpavsmfpi"))))
"1f3xpcdwihlxd8lj5clzfiz4rybhzdib95nrsnjfl009gh6gbwh0"))))
(build-system gnu-build-system)
(arguments
(list
@ -601,7 +605,7 @@ pattern.")
(define-public catch2-3.3
(package
(name "catch2")
(version "3.3.2")
(version "3.4.0")
(home-page "https://github.com/catchorg/Catch2")
(source (origin
(method git-fetch)
@ -611,7 +615,7 @@ pattern.")
(file-name (git-file-name name version))
(sha256
(base32
"0m6i3lr0qk303ashjpz5vpwmxf76n5d6s8jq6r6kcy6gph525zmp"))))
"1gdfsva6mnd66px85fmm3s65h8qzqnmgbmws2i3nygfav1y8d88f"))))
(build-system cmake-build-system)
(arguments
(list
@ -813,6 +817,43 @@ and it supports a very flexible form of test discovery.")
has been designed to be fast, light and unintrusive.")
(license license:expat)))
(define-public ftest
;; There aren't any releases and it looks more like a small side project.
;; It is included for completness to run tests for package utfcpp.
(let ((commit "c4ad4af0946b73ce1a40cbc72205d15d196c7e06")
(revision "0"))
(package
(name "ftest")
(version (git-version "0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/nemtrif/ftest")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1jcd76zjhx5f2nsi80hj7gmywgpz1f7vcw8lv5yf7gx0l99dn86x"))))
;; No CMakeLists.txt file provided, only one to run tests
(build-system copy-build-system)
(arguments
(list #:install-plan
#~'(("ftest.h" "include/ftest/"))
#:phases
#~(modify-phases %standard-phases
(add-before 'install 'check
(lambda _
(with-directory-excursion "tests"
(invoke "cmake" ".")
(invoke "make")
(invoke "ctest")))))))
(native-inputs (list cmake-minimal))
(home-page "https://github.com/nemtrif/ftest")
(synopsis "C++ testing framework")
(description
"This package provides a simple and limited unit-test framework for C++.")
(license license:boost1.0))))
(define-public python-gixy
;; The 0.1.20 release is missing some important fixes.
;; XXX: Commit 'e9008dcbd11f43ccac109b0cf2bf98a94e76b449' breaks tests

View File

@ -466,7 +466,7 @@ and 32-bit PowerPC architectures.")
(package
(inherit chez-scheme)
(name "chez-scheme-for-racket")
(version "9.9.9-pre-release.16")
(version "9.9.9-pre-release.17")
;; The version should match `scheme-version`.
;; See racket/src/ChezScheme/s/cmacros.ss c. line 360.
;; It will always be different than the upstream version!
@ -691,13 +691,7 @@ source.")))
#~(invoke
(search-input-file (or native-inputs inputs)
"/opt/racket-vm/bin/racket")
"../rktboot/main.rkt"
;; Temporary handling of builds on non-x86 architectures,
;; see https://github.com/racket/racket/issues/3948
;; Autodetect in rktboot only addresses x86 archs, so far.
#$@(let ((m (or (racket-cs-native-supported-system?)
(nix-system->pbarch-machine-type))))
#~("--machine" #$m))))))))))))
"../rktboot/main.rkt"))))))))))
(supported-systems
(package-supported-systems chez-scheme-for-racket))
(home-page "https://github.com/racket/ChezScheme")

View File

@ -2,6 +2,7 @@
;;; Copyright © 2019-2023 Marius Bakke <marius@gnu.org>
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2023 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -966,42 +967,39 @@ testing.")
(name "ungoogled-chromium-wayland")
(native-inputs '())
(inputs
`(("bash" ,bash-minimal)
("glibc-locales" ,glibc-utf8-locales)
("ungoogled-chromium" ,ungoogled-chromium)))
(list bash-minimal glibc-utf8-locales ungoogled-chromium))
(build-system trivial-build-system)
(arguments
'(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let* ((bash (assoc-ref %build-inputs "bash"))
(chromium (assoc-ref %build-inputs "ungoogled-chromium"))
(locales (assoc-ref %build-inputs "glibc-locales"))
(out (assoc-ref %outputs "out"))
(exe (string-append out "/bin/chromium")))
(list
#:modules '((guix build utils))
#:builder
#~(begin
(use-modules (guix build utils))
(let* ((bash #$(this-package-input "bash-minimal"))
(chromium #$(this-package-input "ungoogled-chromium"))
(locales #$(this-package-input "glibc-utf8-locales"))
(exe (string-append #$output "/bin/chromium")))
;; Use a Unicode locale so we can substitute the file below.
(setenv "GUIX_LOCPATH" (string-append locales "/lib/locale"))
(setlocale LC_ALL "en_US.utf8")
;; Use a Unicode locale so we can substitute the file below.
(setenv "GUIX_LOCPATH" (string-append locales "/lib/locale"))
(setlocale LC_ALL "en_US.utf8")
(mkdir-p (dirname exe))
(symlink (string-append chromium "/bin/chromedriver")
(string-append out "/bin/chromedriver"))
(mkdir-p (dirname exe))
(symlink (string-append chromium "/bin/chromedriver")
(string-append #$output "/bin/chromedriver"))
(call-with-output-file exe
(lambda (port)
(format port "#!~a
(call-with-output-file exe
(lambda (port)
(format port "#!~a
exec ~a --enable-features=UseOzonePlatform --ozone-platform=wayland \
--enable-features=WebRTCPipeWireCapturer $@"
(string-append bash "/bin/bash")
(string-append chromium "/bin/chromium"))))
(chmod exe #o555)
(string-append bash "/bin/bash")
(string-append chromium "/bin/chromium"))))
(chmod exe #o555)
;; Provide the manual and .desktop file.
(copy-recursively (string-append chromium "/share")
(string-append out "/share"))
(substitute* (string-append
out "/share/applications/chromium.desktop")
((chromium) out))
#t))))))
;; Provide the manual and .desktop file.
(copy-recursively (string-append chromium "/share")
(string-append #$output "/share"))
(substitute* (string-append
#$output "/share/applications/chromium.desktop")
((chromium) #$output))))))))

View File

@ -46,14 +46,14 @@
(define-public drbd-utils
(package
(name "drbd-utils")
(version "9.22.0")
(version "9.25.0")
(source (origin
(method url-fetch)
(uri (list (string-append "https://pkg.linbit.com/downloads/drbd"
"/utils/drbd-utils-" version ".tar.gz")))
(sha256
(base32
"02zdfd9xg5xdxps2bg9ch3vkrs800whsycazkvgi29p80nihq1vm"))
"01vbghs4vyl3jvxkid59bqv73dya98k6jx5zhni2yx2xf8msynvf"))
(modules '((guix build utils)))
(snippet
'(begin

View File

@ -2290,7 +2290,7 @@ decompression is a little bit slower.")
(define-public upx
(package
(name "upx")
(version "4.0.1")
(version "4.1.0")
(source
(origin
(method url-fetch)
@ -2298,7 +2298,7 @@ decompression is a little bit slower.")
version "/upx-" version "-src.tar.xz"))
(sha256
(base32
"1471nxzrbv8sw2pmxn817q5l40sr0l7v7bpvw829iai95s73q03p"))))
"1l273pwa573x9l3izw75cz8ysn2g8w8w3s56rahppa3ya65zg0h5"))))
(build-system cmake-build-system)
(home-page "https://upx.github.io/")
(synopsis "Compression tool for executables")

View File

@ -32,6 +32,7 @@
;;; Copyright © 2022, 2023 David Elsing <david.elsing@posteo.net>
;;; Copyright © 2022, 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
;;; Copyright © 2023 Sughosha <Sughosha@proton.me>
;;; Copyright © 2023 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2023 Liliana Marie Prikler <liliana.prikler@gmail.com>
@ -509,8 +510,17 @@ library for SIMD (Single Instruction, Multiple Data) with runtime dispatch.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0i1c88rn1wwz8nf3dpapcdkk4w623m3nksfy5yjai10k9irkzy3c"))))
(base32 "0i1c88rn1wwz8nf3dpapcdkk4w623m3nksfy5yjai10k9irkzy3c"))
(modules '((guix build utils)))
;; It's bundled catch2 fails to build.
(snippet '(begin
(delete-file "unittests/catch.hpp")
(substitute* "unittests/compiled_tests.cpp"
(("catch[.]hpp") "catch2/catch.hpp"))
(substitute* "unittests/type_info_test.cpp"
(("catch[.]hpp") "catch2/catch.hpp"))))))
(build-system cmake-build-system)
(inputs (list catch2))
(home-page "https://chaiscript.com/")
(synopsis "Embedded scripting language designed for C++")
(description
@ -1722,6 +1732,30 @@ C. It focuses on standardization and parsing exactness and is at ease with
almost every type of file containing key/value pairs.")
(license license:gpl3+)))
(define-public libcppgenerate
;; dbus-cxx requires an unreleased fix.
(let ((commit "930c5503f76c877b72b9ff8546353d6f422bd010")
(revision "0"))
(package
(name "libcppgenerate")
(version (git-version "0.2" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/rm5248/libcppgenerate")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0csdg9b406i85aqgivjmvqjdnqbyiyjh3s0xsfsxppv7wlh7j85r"))))
(build-system cmake-build-system)
(arguments (list #:configure-flags #~'("-DENABLE_TESTS=ON")))
(home-page "https://github.com/rm5248/libcppgenerate")
(synopsis "C++ code generator library for C++")
(description "@code{libcppgenerate} is a library for generating C++ code
from C++.")
(license license:asl2.0))))
(define-public libcutl
(package
(name "libcutl")
@ -1949,6 +1983,16 @@ of reading and writing XML.")
syntax with variables, conditions, functions and more.")
(license license:asl2.0)))
(define-public python-jsonnet
(package
(inherit jsonnet)
(name "python-jsonnet")
(build-system python-build-system)
(arguments '())
(synopsis "Python bindings for Jsonnet, the data templating language")
(description "This package provides a Python library named @code{_jsonnet}
which can evaluate Jsonnet files and expressions.")))
(define-public simdjson
(package
(name "simdjson")
@ -2332,6 +2376,29 @@ parsing with only a single memory allocation.")
((#:tests? _ #f) #f)))
(properties '((hidden? . #t)))))
(define-public optional-lite
(package
(name "optional-lite")
(version "3.5.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/martinmoene/optional-lite")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0jpsm94kp1504yk9s2km86zv8xrszz30qanmhz2ljmvsdblz2l47"))))
(build-system cmake-build-system)
(home-page "https://github.com/martinmoene/optional-lite")
(synopsis "Nullable object for C++98, C++11 and later")
(description
"Optional lite is a single-file header-only library to represent optional
(nullable) objects and pass them by value. The library aims to provide a
C++17-like optional for use with C++98 and later. If available,
@code{std::optional} is used.")
(license license:boost1.0)))
(define-public optionparser
(package
(name "optionparser")

File diff suppressed because it is too large Load Diff

View File

@ -32,14 +32,14 @@
(define-public dezyne
(package
(name "dezyne")
(version "2.17.5")
(version "2.17.6")
(source
(origin
(method url-fetch)
(uri (string-append "https://dezyne.org/download/dezyne/"
name "-" version ".tar.gz"))
(sha256
(base32 "15jhi17f0aqnlznvpf6lkz2y837xkzf8chi9rhhb55920vqf6cgg"))))
(base32 "0z019yyvf1ac1l95j29wlayi2gmwa9sjqg31a4r89za1bijmk19k"))))
(inputs (list bash-minimal
guile-3.0-latest
guile-json-4

View File

@ -1273,7 +1273,7 @@ nameservers other than libc.")
(define-public smartdns
(package
(name "smartdns")
(version "42")
(version "43")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1285,18 +1285,43 @@ nameservers other than libc.")
((".*SYSTEMDSYSTEMUNITDIR.*") "")))
(sha256
(base32
"17j0h5l7gig6rzk8b9180jwrx5khpnrylacjxvnnpgsi2725k8lq"))))
"0s789l6i4yirmarg80mknc1pp65rz01ky9f7gidgclkfcwzz41l3"))))
(build-system gnu-build-system)
(arguments
(list #:tests? #f ;no tests
(list #:test-target "test"
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
(string-append "DESTDIR=" #$output)
"PREFIX=''")
"PREFIX=''"
(string-append "VER=" #$version))
#:phases
#~(modify-phases %standard-phases
(delete 'configure))))
(delete 'configure)
(add-after 'unpack 'skip-unavailable-tests
(lambda _
(with-directory-excursion "test/cases"
;; Tests try to open /etc/resolv.conf
(substitute* "test-bind.cc"
;; Bind.tls
(("smartdns::Server server_wrap;" all)
(string-append "GTEST_SKIP();" all)))
;; Tests use ICMP ping.
(substitute* (find-files ".")
((".*PING_TYPE_ICMP.*" all)
(string-append "GTEST_SKIP();" all)))
(delete-file "test-speed-check.cc"))))
;; Compiled .o files in build phase can't be used for tests.
(add-after 'skip-unavailable-tests 'prepare-test-dir
(lambda _
(copy-recursively "." "../test")))
(add-before 'check 'enter-test-dir
(lambda _
(chdir "../test/test")))
(add-after 'check 'leave-test-dir
(lambda _
(chdir "../../source"))))))
(inputs (list openssl))
(native-inputs (list googletest `(,isc-bind "utils")))
(home-page "https://github.com/pymumu/smartdns")
(synopsis "Local DNS server")
(description

View File

@ -54,7 +54,7 @@
;; Note - when changing Docker versions it is important to update the versions
;; of several associated packages (docker-libnetwork and go-sctp).
(define %docker-version "20.10.17")
(define %docker-version "20.10.25")
(define-public python-docker
(package
@ -177,7 +177,7 @@ Python without keeping their credentials in a Docker configuration file.")
(define-public containerd
(package
(name "containerd")
(version "1.6.6")
(version "1.6.22")
(source
(origin
(method git-fetch)
@ -186,7 +186,7 @@ Python without keeping their credentials in a Docker configuration file.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1vsl747i3wyy68j4lp4nprwxadbyga8qxlrk892afcd2990zp5mr"))
(base32 "1m31y00sq2m76m1jiq4znws8gxbgkh5adklvqibxiz1b96vvwjk8"))
(patches
(search-patches "containerd-create-pid-file.patch"))))
(build-system go-build-system)
@ -215,7 +215,12 @@ Python without keeping their credentials in a Docker configuration file.")
(("DefaultRuntimeName: \"runc\"")
(string-append "DefaultRuntimeName: \""
(search-input-file inputs "/sbin/runc")
"\"")))
"\""))
;; ContainerdConfig.Runtimes
(("\"runc\":")
(string-append "\""
(search-input-file inputs "/sbin/runc")
"\":")))
(substitute* "vendor/github.com/containerd/go-runc/runc.go"
(("DefaultCommand[ \t]*=.*")
(string-append "DefaultCommand = \""
@ -259,9 +264,9 @@ network attachments.")
;; the branch that Docker uses, as can be seen in the 'vendor.conf' Docker
;; source file. NOTE - It is important that this version is kept in sync
;; with the version of Docker being used.
(let ((commit "f6ccccb1c082a432c2a5814aaedaca56af33d9ea")
(let ((commit "3f0048413d95802b9c6c836eba06bfc54f9dbd03")
(version (version-major+minor %docker-version))
(revision "1"))
(revision "2"))
(package
(name "docker-libnetwork")
(version (git-version version revision commit))
@ -274,7 +279,7 @@ network attachments.")
(file-name (git-file-name name version))
(sha256
(base32
"0nxpr0h0smv4n641g41vxibr5r85ixfcvs9cp3c4fc7zvrhjc49s"))
"185i5ji7dwkv41zmb8s3d7i5gg72wivcj1l4bhr1lb3a1vy2hcxc"))
;; Delete bundled ("vendored") free software source code.
(modules '((guix build utils)))
(snippet '(delete-file-recursively "vendor"))))
@ -325,7 +330,7 @@ built-in registry server of Docker.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0hn7fg717rggwk6dbicrwa7aglqp7dp0jp5rvn6p9gfcnrp2w97d"))))
(base32 "1q5vc6f5fzzxsvv1kwdky56fr1jiy9199m3vxqh4mz85qr067cmn"))))
(build-system gnu-build-system)
(arguments
(list
@ -586,7 +591,7 @@ runcexecutor/executor.go"
xz))
(native-inputs
(list eudev ; TODO: Should be propagated by lvm2 (.pc -> .pc)
go gotestsum pkg-config))
go-1.19 gotestsum pkg-config))
(synopsis "Container component library and daemon")
(description "This package provides a framework to assemble specialized
container systems. It includes components for orchestration, image
@ -607,7 +612,7 @@ provisioning etc.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0ksicj4iqvgp9jabd4xmhkf3vax6dwn4f5dsr73bdqj4mf3ahav0"))))
(base32 "0qy35vvnl4lf9w6dr9n7yfqvzhzm7m3sl2ai275apbhygwgcsbss"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/docker/cli"

View File

@ -737,6 +737,13 @@ stored and user can review his performance in any time.")
version "-source.tgz"))
(sha256
(base32 "1gfr51rnllkyzli73p4r51h5ypzfa3m7lic3m3rzpywmqwrxs07k"))
(modules '((guix build utils)))
;; Fix preferences error: <https://issues.guix.gnu.org/65506>.
(snippet '(substitute* "aqt/preferences.py"
(("qc\\['collapseTime']/60\\.0" x)
(format #f "int(~a)" x))
(("qc\\['timeLim']/60\\.0" x)
(format #f "int(~a)" x))))
(patches (search-patches "anki-mpv-args.patch"))))
(build-system gnu-build-system)
(arguments

View File

@ -79,49 +79,48 @@ to take care of the OS-specific details when writing software that uses serial p
(license license:lgpl3+)))
(define-public libsigrokdecode
(package
(name "libsigrokdecode")
(version "0.5.3")
(source (origin
(method url-fetch)
(uri (string-append
"http://sigrok.org/download/source/libsigrokdecode/libsigrokdecode-"
version ".tar.gz"))
(sha256
(base32
"1h1zi1kpsgf6j2z8j8hjpv1q7n49i3fhqjn8i178rka3cym18265"))
(patches
(search-patches "libsigrokdecode-python3.9-fix.patch"))))
(outputs '("out" "doc"))
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'bootstrap
(lambda _
(invoke "autoconf")
(invoke "aclocal")
(invoke "automake" "-ac")))
(add-after 'build 'build-doc
(lambda _
(invoke "doxygen")
#t))
(add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys)
(copy-recursively "doxy/html-api"
(string-append (assoc-ref outputs "doc")
"/share/doc/libsigrokdecode"))
#t)))))
(native-inputs
(list check doxygen graphviz pkg-config automake autoconf))
;; libsigrokdecode.pc lists "python" in Requires.private, and "glib" in Requires.
(propagated-inputs
(list glib python))
(build-system gnu-build-system)
(home-page "https://www.sigrok.org/wiki/Libsigrokdecode")
(synopsis "Library providing (streaming) protocol decoding functionality")
(description "Libsigrokdecode is a shared library written in C, which provides
(let ((commit "e6962b3fe8260382bb9932a1cfdd7ee7090ce267")
(revision "0"))
(package
(name "libsigrokdecode")
(version (git-version "0.5.3" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sigrokproject/libsigrokdecode")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0ik93p6k8hpv8ahchjnmir8paz2w718y1j8pnmrmagjx8vvqd9y6"))))
(outputs '("out" "doc"))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'build 'build-doc
(lambda _
(invoke "doxygen")
#t))
(add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys)
(copy-recursively "doxy/html-api"
(string-append (assoc-ref outputs "doc")
"/share/doc/libsigrokdecode"))
#t)))))
(native-inputs
(list check doxygen graphviz pkg-config automake autoconf libtool))
;; libsigrokdecode.pc lists "python" in Requires.private, and "glib" in
;; Requires.
(propagated-inputs
(list glib python))
(build-system gnu-build-system)
(home-page "https://www.sigrok.org/wiki/Libsigrokdecode")
(synopsis
"Library providing (streaming) protocol decoding functionality")
(description
"Libsigrokdecode is a shared library written in C, which provides
(streaming) protocol decoding functionality.")
(license license:gpl3+)))
(license license:gpl3+))))
(define-public sigrok-firmware-fx2lafw
(package

File diff suppressed because it is too large Load Diff

View File

@ -60,6 +60,7 @@
#:use-module (gnu packages cdrom)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages containers)
#:use-module (gnu packages cross-base)
#:use-module (gnu packages curl)
#:use-module (gnu packages digest)
@ -400,7 +401,7 @@ older games.")
;; This is not a patch staging area for DOSBox, but an unaffiliated fork.
(package
(name "dosbox-staging")
(version "0.79.1")
(version "0.80.1")
(source
(origin
(method git-fetch)
@ -409,16 +410,14 @@ older games.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0wdnkz3djjc514hn945fr9g9mnpnvk16fan84ny9g5wxak6dvsqp"))))
(base32 "1iqqrw95lpgjbmi777jdl5z1nizxgfy8xwpmy1fasjlb2yh2kp93"))))
(build-system meson-build-system)
(arguments
(list #:configure-flags
#~(list
;; These both try to git clone subprojects.
"-Dunit_tests=disabled" ; gtest
"-Duse_mt32emu=false"
;; Not packaged.
"-Duse_slirp=false")
"-Duse_mt32emu=false")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-includes
@ -426,7 +425,7 @@ older games.")
;; This unnecessary file has an encoding error.
(delete-file "./src/libs/sdlcd/macosx/SDLOSXCAGuard.h")
(substitute* (find-files "." "\\.(cpp|h)")
(("^(#include <)(SDL[_.])" _ include file)
(("^(#[[:space:]]*include <)(SDL[_.])" _ include file)
(string-append include "SDL2/" file))))))))
(native-inputs
(list pkg-config))
@ -435,9 +434,12 @@ older games.")
fluidsynth
iir
libpng
libslirp
mesa
opusfile
(sdl-union (list sdl2 sdl2-net))
sdl2
sdl2-image
sdl2-net
speexdsp
zlib))
(home-page "https://dosbox-staging.github.io")

View File

@ -1557,6 +1557,27 @@ send break and throttle transmission speed.")
(home-page "https://github.com/wentasah/sterm")
(license license:gpl3+)))
(define-public libmodbus
(package
(name "libmodbus")
(version "3.1.10")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/stephane/libmodbus")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0nbpk1n56kclab8fl32dxi46v2bwax3gfk1zkc796srm7vj42sbv"))))
(build-system gnu-build-system)
(native-inputs (list autoconf automake libtool))
(synopsis "Library for the Modbus protocol")
(description "@code{libmodbus} is a library to send/receive data with a
device which respects the Modbus protocol. This library can use a serial port
or an Ethernet connection.")
(home-page "https://libmodbus.org/")
(license license:lgpl2.1+)))
(define-public harminv
(package
(name "harminv")
@ -1974,7 +1995,7 @@ high-performance parallel differential evolution (DE) optimization algorithm.")
;; See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27344#236>.
(package
(name "libngspice")
(version "40")
(version "41")
(source
(origin
(method url-fetch)
@ -1985,7 +2006,7 @@ high-performance parallel differential evolution (DE) optimization algorithm.")
"old-releases/" version
"/ngspice-" version ".tar.gz")))
(sha256
(base32 "03c9irc44msdpqhbn2fhvb4g0sry8a2qgxl4mbbf557mq1xwl0z3"))))
(base32 "1i78im03kx6vp5yml0fiwvqnic8qhczl1893n8zc6l1gblwikqhw"))))
(build-system gnu-build-system)
(arguments
`(;; No tests for libngspice exist.
@ -2730,7 +2751,7 @@ comments.")))
(define-public freecad
(package
(name "freecad")
(version "0.21.0")
(version "0.21.1")
(source
(origin
(method git-fetch)
@ -2739,7 +2760,7 @@ comments.")))
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1i1wv3swnnimmn3kwphb2fcmsc64z96rcg7fhfsgqxcbyrygw6w7"))))
(base32 "0qwh6b1s432j5piwgfkphvz0slmxf0m8m8pdr3ny9zna9mghz42k"))))
(build-system qt-build-system)
(native-inputs
(list doxygen
@ -3113,13 +3134,13 @@ program that can perform mesh processing tasks in batch mode, without a GUI.")
(define-public poke
(package
(name "poke")
(version "3.2")
(version "3.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/poke/poke-" version
".tar.gz"))
(sha256
(base32 "15qd9z3wv7jrdlh6f9hwgni54ssdz8hzrn4lxiacwv1sslfmb3km"))
(base32 "0vlm9xcr7rrfli2x4hi2q41nh8vjd2izpz4zd0xwhqshx2flb000"))
(modules '((guix build utils)))
(snippet
'(begin

View File

@ -9,6 +9,7 @@
;;; Copyright © 2021 Cees de Groot <cg@evrl.com>
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;; Copyright © 2023 wrobell <wrobell@riseup.net>
;;; Copyright © 2023 Tim Johann <t1m@phrogstar.de>
;;;
;;; This file is part of GNU Guix.
;;;
@ -27,6 +28,7 @@
(define-module (gnu packages erlang)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix build-system gnu)
#:use-module (guix build-system emacs)
#:use-module (guix build-system rebar)
@ -738,3 +740,75 @@ a git checkout.")
(description "This plugin allows running PropEr test suites from within
rebar3.")
(license license:bsd-3)))
(define-public erlang-lfe
(package
(name "erlang-lfe")
(version "2.1.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/lfe/lfe")
(commit "v2.1.2")))
(file-name (git-file-name name version))
(sha256
(base32
"180hz1p2v3vb6yyzcfwircmljlnd86ln8z80lzy3mwlyrcxblvxy"))))
(build-system gnu-build-system)
(arguments
(list
#:modules '((ice-9 ftw)
(srfi srfi-26)
(guix build gnu-build-system)
(guix build utils))
#:make-flags #~(list (string-append "PREFIX=" #$output) "CC=gcc")
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
;; The following is inspired by rebar-build-system.scm
(add-before 'check 'erlang-depends
(lambda* (#:key inputs #:allow-other-keys)
(define input-directories
(list #$(this-package-native-input "rebar3-proper")
#$(this-package-native-input "erlang-proper")))
(mkdir-p "_checkouts")
(for-each
(lambda (input-dir)
(let ((elibdir (string-append input-dir "/lib/erlang/lib")))
(when (directory-exists? elibdir)
(for-each
(lambda (dirname)
(let ((src (string-append elibdir "/" dirname))
(dest (string-append "_checkouts/" dirname)))
(when (not (file-exists? dest))
;; Symlinking will not work, since rebar3 will try
;; to overwrite the _build directory several times
;; with the contents of _checkout, so we copy the
;; directory tree to _checkout and make it
;; writable.
(copy-recursively src dest #:follow-symlinks? #t)
(for-each (cut chmod <> #o777)
(find-files dest)))))
(scandir elibdir (lambda (file)
(and (not (member file '("." "..")))
(file-is-directory?
(string-append elibdir
"/"
file)))))))))
input-directories)))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(begin
(setenv "REBAR_CACHE_DIR" "/tmp")
(invoke "make" "-j" (number->string (parallel-job-count))
"tests"))))))))
(native-inputs (list rebar3 rebar3-proper erlang-proper))
(propagated-inputs (list erlang))
(home-page "https://github.com/lfe/lfe")
(synopsis "Lisp Flavoured Erlang")
(description
"LFE, Lisp Flavoured Erlang, is a Lisp syntax front-end to the Erlang
compiler. Code produced with it is compatible with \"normal\" Erlang
code. An LFE evaluator and shell is also included.")
(license license:asl2.0)))

View File

@ -547,7 +547,7 @@ do so.")
(define-public electrum
(package
(name "electrum")
(version "4.4.5")
(version "4.4.6")
(source
(origin
(method url-fetch)
@ -555,7 +555,7 @@ do so.")
version "/Electrum-"
version ".tar.gz"))
(sha256
(base32 "1gifnb927b51947psbj58c7kdsgncn3d9j7rpk5mls678yf1qd5d"))
(base32 "1f0hb8xmqv1j9pf82xpyvxnn2dzmi93rhf0sh0iqakja2pbl4707"))
(modules '((guix build utils)))
(snippet
'(begin
@ -2237,7 +2237,7 @@ mining.")
(define-public p2pool
(package
(name "p2pool")
(version "3.5")
(version "3.6.2")
(source
(origin
(method git-fetch)
@ -2246,7 +2246,7 @@ mining.")
(commit (string-append "v" version))
(recursive? #t)))
(file-name (git-file-name name version))
(sha256 (base32 "1brv3lksajnmpf7g01jbx76nax6vlx8231sxb0s33yf76yc481xb"))
(sha256 (base32 "0lki6yrzmmpd5hj55m6s71y1cr81lbk1f3h9h70gmm4p4qjrv5f2"))
(modules '((guix build utils)))
(snippet
#~(for-each delete-file-recursively

View File

@ -9,6 +9,7 @@
;;; Copyright © 2020, 2021, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -34,6 +35,8 @@
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
@ -68,6 +71,7 @@
#:use-module (gnu packages polkit)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages shells)
#:use-module (gnu packages sqlite)
@ -1210,3 +1214,24 @@ AR100.")
(define-public crust-pine64-plus
(make-crust-package "pine64_plus"))
(define-public qmk
(package
(name "qmk")
(version "1.1.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "qmk" version))
(sha256
(base32
"1619q9v90740dbg8xpzqlhwcasz42xj737803aiip8qc3a7zhwgq"))))
(build-system pyproject-build-system)
(arguments (list #:tests? #f)) ;; No tests.
(propagated-inputs (list python-dotty-dict python-hid python-hjson
python-jsonschema python-milc python-pillow
python-pygments python-pyserial python-pyusb))
(home-page "https://qmk.fm")
(synopsis "Command line utility to manage QMK keyboard firmwares")
(description "This package provides a program to help users work with
@acronym{QMK, Quantum Mechanical Keyboard} firmwares.")
(license license:expat)))

View File

@ -230,8 +230,7 @@ firmware from it.")
(snippet
`(begin
;; Remove example flash files and teensy rebooter flash binaries.
(for-each delete-file (find-files "." "\\.(elf|hex)$"))
#t))
(for-each delete-file (find-files "." "\\.(elf|hex)$"))))
(patches (search-patches "teensy-loader-cli-help.patch"))))
(build-system gnu-build-system)
(arguments
@ -244,10 +243,8 @@ firmware from it.")
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "teensy_loader_cli" bin)
#t))))))
(inputs
(list libusb-compat))
(install-file "teensy_loader_cli" bin)))))))
(inputs (list libusb-compat)) ;only compatible with libusb 0.1
(synopsis "Command line firmware uploader for Teensy development boards")
(description
"The Teensy loader program communicates with your Teensy board when the

View File

@ -3,7 +3,7 @@
;;; Copyright © 2014, 2017 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Joshua Grant <tadni@riseup.net>
;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015, 2023 Sou Bunnbu <iyzsong@envs.net>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016 Leo Famulari <leo@famulari.name>
@ -43,7 +43,7 @@
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2021-2023 Paul A. Patience <paul@apatience.com>
;;; Copyright © 2021, 2022 Taiju HIGASHI <higashi@taiju.info>
;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
;;; Copyright © 2022-2023 Philip McGrath <philip@philipmcgrath.com>
;;; Copyright © 2022 Kitzman <kitzman@disroot.org>
;;; Copyright © 2021 Wamm K. D. <jaft.r@outlook.com>
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
@ -57,6 +57,7 @@
;;; Copyright © 2023 Arnaud Lechevallier <arnaud.lechevallier@free.fr>
;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
;;; Copyright © 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2023 chris <chris@bumblehead.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -98,6 +99,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages sdl)
#:use-module (gnu packages xorg))
(define-public font-artifika
@ -1175,6 +1177,60 @@ It contains the following fonts and styles:
@end enumerate\n")
(license license:gpl2+)))
(define-public font-unscii
(package
(name "font-unscii")
(version "2.1")
(source (origin
(method url-fetch)
(uri (string-append
"http://viznut.fi/unscii/unscii-"
version "-src.tar.gz"))
(sha256
(base32
"0msvqrq7x36p76a2n5bzkadh95z954ayqa08wxd017g4jpa1a4jd"))))
(build-system gnu-build-system)
(outputs '("out" "otf" "ttf" "woff"))
(native-inputs (list bdftopcf fontforge perl perl-text-charwidth))
(inputs (list sdl sdl-image))
(arguments
(list #:tests? #f ;no tests
#:phases
#~(modify-phases %standard-phases
(delete 'configure) ;no configure script
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((pcfdir (string-append
(assoc-ref outputs "out")
"/share/fonts/misc"))
(otfdir (string-append
(assoc-ref outputs "otf")
"/share/fonts/opentype"))
(ttfdir (string-append
(assoc-ref outputs "ttf")
"/share/fonts/truetype"))
(woffdir (string-append
(assoc-ref outputs "woff")
"/share/fonts/webfonts"))
(install-fonts
(lambda (pred dir)
(for-each
(lambda (f) (install-file f dir))
(find-files "." pred)))))
(install-fonts "\\.pcf$" pcfdir)
(install-fonts "\\.otf$" otfdir)
(install-fonts "\\.ttf$" ttfdir)
(install-fonts "\\.woff$" woffdir)))))))
(synopsis "Classic bitmapped Unicode fonts")
(description
"Unscii is a set of bitmapped Unicode fonts based on classic system
fonts. Unscii attempts to support character cell art well while also being
suitable for terminal and programming use. The two main variants are
unscii-8 (8×8 pixels per glyph) and unscii-16 (8×16).")
(home-page "http://viznut.fi/unscii/")
;; "unscii-16-full" falls under GPL, the other are in the Public Domain.
(license (list license:gpl2+ license:public-domain))))
(define-public font-fantasque-sans
(package
(name "font-fantasque-sans")
@ -1855,10 +1911,40 @@ programming. Iosevka is completely generated from its source code.")
version of the original, designed for enhanced readability.")
(license license:silofl1.1)))
(define-public font-junicode
(package
(name "font-junicode")
(version "2.003")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/psb1558/Junicode-font")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1qg1qwk294p2hgq2gbyhfwwdas1xbkfz3csxf5jz4xqiskn4skgl"))))
(build-system font-build-system)
(home-page "https://github.com/psb1558/Junicode-font")
(synopsis "Unicode font for medievalists, linguists, and others")
(description "The Junicode font was developed for students and scholars of
medieval Europe, but its large glyph repertoire also makes it useful as a
general-purpose font. Its visual design is based on the typography used by
Oxford University Press in the late 17th and early 18th centuries. The font
implements the @acronym{MUFI, Medieval Unicode Font Initiative} recommendation
for encoding ligatures, alternative letter forms, and other features of
interest to medievalists using Unicode's Private Use Area.
Junicode 2 is a major reworking of the font family. Its OpenType programming
has been rebuilt to support the creation of searchable, accessible electronic
documents using the @acronym{MUFI} characters. The family includes five
weights and five widths in both Roman and Italic, plus variable fonts.")
(license license:silofl1.1)))
(define-public font-sarasa-gothic
(package
(name "font-sarasa-gothic")
(version "0.41.6")
(version "0.41.8")
(source
(origin
(method url-fetch)
@ -1866,7 +1952,7 @@ programming. Iosevka is completely generated from its source code.")
"/releases/download/v" version
"/sarasa-gothic-ttc-" version ".7z"))
(sha256
(base32 "1l238rx9nw6acxy5k5b7bjd8br8cnivdlyly7r20w1b36gscl878"))))
(base32 "0m2c3g8c6wxgyyvmraln4bx0qn949j9rin593s1c01hzah435cac"))))
(build-system font-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@ -2004,20 +2090,41 @@ emphasis while still being readable.")
(license license:silofl1.1)))
(define-public font-openmoji
(package
(let ((commit "93f059dfb68401d49beaef7a3e09b80072b51a1f")
(revision "1"))
(package
(name "font-openmoji")
(version "13.1.0")
(version (git-version "14.0.0" revision commit))
(source
(origin
(method url-fetch/zipbomb)
(uri
(string-append "https://github.com/hfg-gmuend/openmoji/"
"releases/download/" version
"/openmoji-font.zip"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/hfg-gmuend/openmoji/")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0xmy3hr38v03f1riwxmxdibb7iwj0qz288inqaha3pwq7pj7ln45"))))
"16w4lg2y6qzb45j08l7cdwprjhprsm11jsm6nxzxwy2wzykd7gxk"))))
(build-system font-build-system)
(arguments (list #:modules `((ice-9 ftw)
(guix build font-build-system)
(guix build utils))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _ (chdir "font")))
(add-after 'chdir 'strip-alternative-variants
(lambda _
(let ((keep '("OpenMoji-black-glyf"
"OpenMoji-color-glyf_colr_0"
"."
"..")))
(for-each (lambda (f)
(unless (member f keep)
(delete-file-recursively f)))
(scandir ".")))))
(add-before 'install-license-files 'chdir-back
(lambda _ (chdir ".."))))))
(native-inputs
(list unzip))
(home-page "https://openmoji.org")
@ -2025,7 +2132,7 @@ emphasis while still being readable.")
(description
"This package provides the OpenMoji font in both color and black
variants.")
(license license:cc-by-sa4.0)))
(license license:cc-by-sa4.0))))
(define-public font-dosis
(package
@ -3085,7 +3192,7 @@ dialects in Hong Kong and Taiwan.")))
(define-public font-chiron-sung-hk
(package
(name "font-chiron-sung-hk")
(version "1.008")
(version "1.010")
(source (origin
(method git-fetch)
(uri (git-reference
@ -3094,7 +3201,7 @@ dialects in Hong Kong and Taiwan.")))
(file-name (git-file-name name version))
(sha256
(base32
"19rabzmy4ywam4r5kgnqbgbmqzvhsagzddbyis5iicc6y8jrmd1j"))))
"065p1gc5xjwc4kfw8bqpsbhaf1p4w0k4l0j04vjsjhcl4k9vyvfz"))))
(build-system font-build-system)
(home-page "https://chiron-fonts.github.io/")
(synopsis "Traditional Chinese Song typeface")
@ -3335,3 +3442,25 @@ better code & UI. It is inspired by casual script signpainting, but designed
primarily to meet the needs of programming environments and application
interfaces.")
(license license:silofl1.1)))
(define-public fonts-tlwg
(package
(name "fonts-tlwg")
(version "0.7.3")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/tlwg/" name
"/releases/download/v" version "/" name "-" version ".tar.xz"))
(sha256
(base32
"00mv8rmjpsk8jbbl978q3yrc2pxj8a86a3d092563dlc9n8gykkf"))))
(native-inputs (list fontforge))
(build-system gnu-build-system)
(home-page "https://github.com/tlwg/fonts-tlwg/")
(synopsis "Collection of scalable Thai fonts")
(description "Fonts-TLWG is a collection of Thai scalable fonts. Its goal
is to provide fonts that conform to existing standards and recommendations, so
that it can be a reference implementation.")
(license license:gpl2+)))

View File

@ -841,7 +841,7 @@ converter from FontForges @acronym{SFD, Spline Font Database} fonts to
(define-public python-skia-pathops
(package
(name "python-skia-pathops")
(version "0.7.2")
(version "0.8.0")
(source
(origin
(method url-fetch)
@ -849,7 +849,7 @@ converter from FontForges @acronym{SFD, Spline Font Database} fonts to
(modules '((guix build utils)))
(snippet '(delete-file-recursively "src/cpp")) ;140+ MiB of stuff
(sha256
(base32 "1456rclfn6a01c2cchlgyn166zppcjcqij0k5gwmm8gvzsd5rn0r"))))
(base32 "1vlwl1w6sn8c78fsh1w549n3lk9v3v9hcp866vrsdr4byb7g2ani"))))
(build-system python-build-system)
(arguments
(list

View File

@ -65,6 +65,7 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages compression)
@ -705,6 +706,60 @@ development of visual novels, written on top of Guile-SDL2. It is still
experimental.")
(license license:lgpl3+)))
(define-public scummc
(package
(name "scummc")
(version "0.2.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/AlbanBedel/scummc")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1yyq05kfmvgx5aa68kg1l5a4lpsky7hzxxcdvv2xbgf0jljdcl3k"))
(modules '((guix build utils)))
(snippet
#~(begin
(substitute* "configure"
(("\\|alpha" all)
(string-append all "|arm|aarch64|powerpc64le")))
(substitute* "examples/example.mak"
(("scost.*\n$") "scost\n")
(("bmp \\$\\(.*\n$") "bmp\n")
(("/%.scc.*\n$") "/%.scc\n")
(("voc \\$\\(.*\n$") "voc\n"))
(substitute* "Makefile.target"
(("distrib-data:.*\n") "distrib-data:\n")
(("cp.*/bin" all)
(string-append all " || true")))))))
(build-system gnu-build-system)
(arguments
(list #:test-target "test"
#:tests? #f ; The only tests verify that game checksums match
#:make-flags
#~(list "SHOW_WARNINGS=no")
#:phases
#~(modify-phases %standard-phases
(replace 'configure ; ScummC uses a non-standard configure
(lambda* (#:key configure-flags #:allow-other-keys)
(apply invoke "./configure" configure-flags)))
(replace 'install ; install target is referred to as distrib
(lambda _
(invoke "make" "distrib"
(string-append "DISTRIB=" #$output)))))))
(inputs
(list freetype gtk+-2 sdl))
(native-inputs
(list bison doxygen libxslt pkg-config))
(synopsis "SCUMM Compiler")
(description
"ScummC is a set of tools allowing to create SCUMM games from scratch.
It is capable of creating games for SCUMM version 6 and partially version 7.")
(home-page "https://github.com/AlbanBedel/scummc")
(license license:gpl2+)))
(define-public sfml
(package
(name "sfml")

View File

@ -5002,6 +5002,92 @@ Transport Tycoon Deluxe.")
"openrct2-objects is a set of objects for OpenRCT2.")
(license license:gpl3+)))
(define-public openquest
(package
(name "openquest")
(version "0.2.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/AlbanBedel/scummc")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1yyq05kfmvgx5aa68kg1l5a4lpsky7hzxxcdvv2xbgf0jljdcl3k"))
(modules '((guix build utils)))
(snippet
#~(begin
(substitute* "configure"
(("\\|alpha" all)
(string-append all "|arm|aarch64|powerpc64le")))
(substitute* "examples/example.mak"
(("scost.*\n$") "scost\n")
(("bmp \\$\\(.*\n$") "bmp\n")
(("/%.scc.*\n$") "/%.scc\n")
(("voc \\$\\(.*\n$") "voc\n"))
(substitute* "Makefile.target"
(("distrib-data:.*\n") "distrib-data:\n")
(("cp.*/bin" all)
(string-append all " || true")))))))
(build-system gnu-build-system)
(arguments
(substitute-keyword-arguments (package-arguments scummc)
((#:make-flags _)
#~(list "SCC=scc"
"SLD=sld"
"COST=cost"
"CHAR=char"
"SOUN=soun"))
((#:phases phases)
#~(modify-phases #$phases
(replace 'build
(lambda* (#:key make-flags #:allow-other-keys)
(with-directory-excursion "examples/openquest"
(apply invoke "make" "tentacle" make-flags))))
(add-after 'install 'install-executable
(lambda* (#:key inputs #:allow-other-keys)
;; Create standalone executable.
(let* ((bash (search-input-file inputs "/bin/bash"))
(share (string-append #$output "/examples/openquest"))
(scummvm (search-input-file inputs "/bin/scummvm"))
(bin (string-append #$output "/bin"))
(executable (string-append bin "/openquest")))
(mkdir-p bin)
(with-output-to-file executable
(lambda ()
(format #t "#!~a~%" bash)
(format #t
"exec ~a --path=~a tentacle~%"
scummvm share)))
(chmod executable #o755))))
(add-after 'install-executable 'install-desktop-file
(lambda _
;; Create desktop file. There is no official icon,
;; but the main character of the game is a good choice.
(let* ((apps (string-append #$output "/share/applications"))
(share (string-append #$output "/examples/openquest")))
(mkdir-p apps)
(make-desktop-entry-file
(string-append apps "/openquest.desktop")
#:name "OpenQuest"
#:generic-name "OpenQuest"
#:exec (string-append #$output "/bin/openquest")
#:icon (string-append share "/graphics/zob/frames/stand_S.bmp")
#:categories '("AdventureGame" "Game" "RolePlaying")
#:keywords '("game" "adventure" "roleplaying" "2D" "sci-fi")
#:comment '((#f "Simple 2D point and click adventure game"))))))))))
(inputs
(list bash scummvm))
(native-inputs
(modify-inputs (package-native-inputs scummc)
(prepend scummc)))
(home-page "https://www.scummvm.org")
(synopsis "Simple 2D point and click adventure game")
(description "OpenQuest is a two room adventure game
that follows two aliens who come to Earth in search of a stolen artifact.")
(license license:gpl2+)))
(define-public openrct2
(package
(name "openrct2")
@ -5579,7 +5665,7 @@ in-window at 640x480 resolution or fullscreen.")
(lambda _
(substitute* "lib/framework/wzstring.cpp"
(("<utfcpp/source/utf8.h>")
"<utf8.h>"))))
"<utf8cpp/utf8.h>"))))
(add-after 'unpack 'link-tests-with-qt
(lambda _
(substitute* "tests/Makefile.am"

View File

@ -162,6 +162,19 @@ written in C, C++, Ada, Objective-C, Pascal and more.")
;; The "default" version.
gdb-12)
(define-public gdb-multiarch
(package/inherit gdb-12
(name "gdb-multiarch")
(arguments
`(#:configure-flags
(list "--enable-targets=all"
"--enable-multilib"
"--enable-interwork"
"--enable-languages=c,c++"
"--disable-nls")
,@(package-arguments gdb-12)))
(synopsis "The GNU debugger (with all architectures enabled)")))
(define-public gdb-minimal
(package/inherit gdb-12
(name "gdb-minimal")

View File

@ -1481,6 +1481,57 @@ to create databases that are optimized for rendering/tile/map-services.")
license:bsd-2
license:bsd-3))))
(define-public python-metpy
(package
(name "python-metpy")
(version "1.5.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "MetPy" version))
(sha256
(base32
"0g9m8qb920mvi0kqw7vbagj08xvv96zj6gjyc7dawlvh15vb55qq"))))
(build-system pyproject-build-system)
(arguments
;; Too many of the tests in the files below require online data.
(list
#:test-flags
#~(list "--ignore" "tests/io/test_nexrad.py"
"--ignore" "tests/plots/test_declarative.py"
"--ignore" "tests/io/test_gempak.py"
"--ignore" "tests/io/test_gini.py"
"--ignore" "tests/io/test_metar.py"
"--ignore" "tests/io/test_station_data.py"
"--ignore" "tests/interpolate/test_grid.py"
"--ignore" "tests/interpolate/test_points.py"
"--ignore" "tests/test_xarray.py"
"--ignore" "tests/calc/test_indices.py"
"--ignore" "tests/calc/test_kinematics.py"
"-k" (string-append ; more tests that require online data
"not test_parse_grid_arguments_xarray"
" and not test_absolute_momentum_xarray_units_attr"
" and not test_zoom_xarray"
" and not test_parse_wpc_surface_bulletin"
" and not test_add_timestamp_xarray"
" and not test_parse_wpc_surface_bulletin_highres"))))
(propagated-inputs (list python-importlib-resources
python-matplotlib
python-numpy
python-pandas
python-pint
python-pooch
python-pyproj
python-scipy
python-traitlets
python-xarray))
(native-inputs (list python-cartopy python-netcdf4 python-pytest
python-pytest-mpl python-shapely))
(home-page "https://github.com/Unidata/MetPy")
(synopsis "Collection of tools to deal with weather data")
(description "MetPy is a collection of tools in Python for reading,
visualizing and performing calculations with weather data.")
(license license:bsd-3)))
(define-public libosmium
(package
(name "libosmium")

View File

@ -44,6 +44,7 @@
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages elf)
@ -1255,26 +1256,37 @@ programming language. It also provides the @command{dbusxx-xml2cpp} and
(define-public dbus-cxx
(package
(name "dbus-cxx")
(version "0.12.0")
(version "2.4.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/dbus-cxx/dbus-cxx/"
version "/dbus-cxx-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/dbus-cxx/dbus-cxx")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1acsgpkd9v7b9jdc79ijmh9dbdfrzgkwkaff518i3zpk7y6g5mzw"))))
"0c9q2bjs4m66zq0qysyip8fnkvvjpj46rkjcvw15nhmfhzbq16ag"))
(modules '((guix build utils)))
(snippet '(delete-file-recursively "tools/libcppgenerate"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DENABLE_TESTS=ON"
"-DENABLE_TOOLS=ON"
"-DENABLE_GLIBMM=ON")))
(inputs (list dbus
libsigc++
glibmm
python
popt
expat))
(native-inputs (list pkg-config m4))
(list #:configure-flags #~(list "-DBUILD_TESTING=ON"
"-DENABLE_TOOLS=ON"
"-DENABLE_GLIB_SUPPORT=ON"
"-DTOOLS_BUNDLED_CPPGENERATE=OFF")
#:phases
#~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; There is no /etc/machine-id file in the build
;; environment.
(invoke "ctest" "-E" "test-machine-uuid-method")))))))
;; These are propagated due to being referenced in headers and pkg-config
;; .pc files.
(propagated-inputs (list glib libsigc++))
(inputs (list dbus expat libcppgenerate popt))
(native-inputs (list pkg-config))
(synopsis "C++ wrapper for dbus")
(description "Dbus-cxx is a C++ wrapper for dbus.\n
It exposes the C API to allow direct manipulation and
@ -1288,7 +1300,7 @@ This package provide 2 utils:
Some codes examples can be find at:
@url{https://dbus-cxx.github.io/examples.html}")
(home-page "https://dbus-cxx.github.io/")
(license license:gpl3)))
(license (list license:lgpl3+ license:bsd-3)))) ;dual licensed
(define-public sdbus-c++
;; Use the latest commit, which includes unreleased fixes to the pkg-config

View File

@ -240,6 +240,39 @@ simple and consistent.")
and a few extra features.")
(license license:gpl3)))
(define-public qogir-icon-theme
(package
(name "qogir-icon-theme")
(version "2023.06.05")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/vinceliuice/Qogir-icon-theme")
(commit (string-replace-substring version "." "-"))))
(file-name (git-file-name name version))
(modules '((guix build utils)))
(snippet '(substitute* "install.sh"
(("gtk-update-icon-cache") "true")))
(sha256
(base32
"1kn8b9zdamxbfbs7b9qpx53hmjw2l40sxpjw93axb1dqy81yc8da"))))
(build-system copy-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(replace 'install
(lambda _
(let* ((dest (string-append #$output "/share/icons"))
(flags (list "--theme" "all"
"--color" "all"
"--dest" dest)))
(mkdir-p dest)
(apply invoke "bash" "install.sh" flags)))))))
(home-page "https://www.pling.com/p/1296407/")
(synopsis "Flat colorful design icon theme")
(description "This package provides a flat colorful design icon theme.")
(license license:gpl3)))
(define-public flat-remix-icon-theme
(package
(name "flat-remix-icon-theme")
@ -451,7 +484,7 @@ takes advantage of modern hardware using OpenGL.")
(define-public portfolio
(package
(name "portfolio")
(version "0.9.14")
(version "1.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -460,7 +493,7 @@ takes advantage of modern hardware using OpenGL.")
(file-name (git-file-name name version))
(sha256
(base32
"0h09v8lhz3kv6qmwjhx3gr7rp6ccfhrzm54gjnaixl4dcg9zddls"))))
"1ai9mx801m5lngkljg42vrpvhbvc3071sp4jypsvbzw55hxnn5ba"))))
(arguments
(list #:glib-or-gtk? #t
#:imported-modules `(,@%meson-build-system-modules
@ -475,6 +508,10 @@ takes advantage of modern hardware using OpenGL.")
(with-directory-excursion (string-append #$output
"/bin")
(symlink "dev.tchx84.Portfolio" "portfolio"))))
(add-after 'unpack 'skip-gtk-update-icon-cache
(lambda _
(substitute* "build-aux/meson/postinstall.py"
(("gtk-update-icon-cache") "true"))))
(add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
(lambda* (#:key inputs outputs #:allow-other-keys)
(wrap-program (search-input-file outputs
@ -486,12 +523,12 @@ takes advantage of modern hardware using OpenGL.")
`("GI_TYPELIB_PATH" =
(,(getenv "GI_TYPELIB_PATH")))))))))
(build-system meson-build-system)
(inputs (list bash-minimal python-pygobject gtk+ libhandy))
(inputs (list bash-minimal python-pygobject gtk libadwaita))
(native-inputs
(list desktop-file-utils
gettext-minimal
`(,glib "bin")
`(,gtk+ "bin")
pkg-config
python))
(home-page "https://github.com/tchx84/Portfolio")
(synopsis "Minimalist file manager for Linux mobile devices")

View File

@ -11430,7 +11430,7 @@ and uncluttered interface for the management of password databases.")
(define-public sound-juicer
(package
(name "sound-juicer")
(version "3.38.0")
(version "3.40.0")
(source
(origin
(method url-fetch)
@ -11439,15 +11439,25 @@ and uncluttered interface for the management of password databases.")
name "-" version ".tar.xz"))
(sha256
(base32
"08d5d81rz9sj3m5paw8fwbgxmhlbr7bcjdzpmzj832qvg8smydxf"))))
"1rhxmvx2mr22zd5p0azc0svi0mbnzcjnh3sasv3b9gli8ds85s1f"))))
(build-system meson-build-system)
(arguments
(list
#:glib-or-gtk? #t
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'disable-gtk-update-icon-cache
(lambda _
(setenv "DESTDIR" "/"))))))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'disable-gtk-update-icon-cache
(lambda _
(substitute* "meson.build"
(("gtk_update_icon_cache: true")
"gtk_update_icon_cache: false"))))
(add-after 'install 'wrap-program
(lambda _
(let ((prog (string-append #$output "/bin/sound-juicer"))
(gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
(wrap-program prog
`("GST_PLUGIN_SYSTEM_PATH"
":" prefix (,gst-plugin-path)))))))))
(native-inputs
(list desktop-file-utils
gettext-minimal
@ -11457,7 +11467,8 @@ and uncluttered interface for the management of password databases.")
pkg-config
python))
(inputs
(list brasero
(list bash-minimal
brasero
gsettings-desktop-schemas
gst-plugins-base
gst-plugins-good

View File

@ -518,9 +518,9 @@ variable defined below. It requires guile-json to be installed."
;; XXXX: Workaround 'snippet' limitations.
(define computed-origin-method (@@ (guix packages) computed-origin-method))
(define %icecat-base-version "102.14.0")
(define %icecat-base-version "102.15.0")
(define %icecat-version (string-append %icecat-base-version "-guix0-preview1"))
(define %icecat-build-id "20230801000000") ;must be of the form YYYYMMDDhhmmss
(define %icecat-build-id "20230829000000") ;must be of the form YYYYMMDDhhmmss
;; 'icecat-source' is a "computed" origin that generates an IceCat tarball
;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat'
@ -540,12 +540,12 @@ variable defined below. It requires guile-json to be installed."
"firefox-" upstream-firefox-version ".source.tar.xz"))
(sha256
(base32
"1vpglmqm97ac3rs273qv7kldkrkawyhdnwwqhvyjqiwaq20m1f0s"))))
"1bs6hxfsb77cbi238wvizq2iw4mlgz29m0sd027sz8zm1025kyl1"))))
;; The upstream-icecat-base-version may be older than the
;; %icecat-base-version.
(upstream-icecat-base-version "102.14.0")
(gnuzilla-commit "ac19d793c76732f9e5623e25fbf31287255a4ae7")
(upstream-icecat-base-version "102.15.0")
(gnuzilla-commit "400fbfdbc0c1ac9c68c9f52fd2ab6899bc8e8bd0")
(gnuzilla-source
(origin
(method git-fetch)
@ -557,7 +557,7 @@ variable defined below. It requires guile-json to be installed."
(string-take gnuzilla-commit 8)))
(sha256
(base32
"0fghxy6d4102i4fsyj5x74v6q94kdfbszmirjbd63wlw1d8sy3cs"))))
"1fqrf94a5vnjq56zyyxlc1zsvbblgmzcks760nj1szpws4y91m8r"))))
;; 'search-patch' returns either a valid file name or #f, so wrap it
;; in 'assume-valid-file-name' to avoid 'local-file' warnings.
@ -1138,8 +1138,8 @@ standards of the IceCat project.")
"ru" "sco" "si" "sk" "sl" "son" "sq" "sr" "sv-SE" "szl" "ta" "te" "th" "tl"
"tr" "trs" "uk" "ur" "uz" "vi" "xh" "zh-CN" "zh-TW"))
(define %icedove-build-id "20230705000000") ;must be of the form YYYYMMDDhhmmss
(define %icedove-version "102.13.0")
(define %icedove-build-id "20230830000000") ;must be of the form YYYYMMDDhhmmss
(define %icedove-version "102.15.0")
;; Provides the "comm" folder which is inserted into the icecat source.
;; Avoids the duplication of Icecat's source tarball.
@ -1148,11 +1148,11 @@ standards of the IceCat project.")
(method hg-fetch)
(uri (hg-reference
(url "https://hg.mozilla.org/releases/comm-esr102")
(changeset "2bf94c4d195694485df5d632f2453888cf4f6657")))
(changeset "ac0b189e3bc07ee798d5ed84e99f874bc72204a6")))
(file-name (string-append "thunderbird-" %icedove-version "-checkout"))
(sha256
(base32
"1nzbvw1n6wdjbsq0cvyq8av2xf775cp4gkvsjc7i5qzvhl84wg4l"))))
"0705grqr906rw3ps32yiw4d5iaiwlql8a1ikhr43k546szypn3wg"))))
(define (comm-source->locales+changeset source)
"Given SOURCE, a checkout of the Thunderbird 'comm' component, return the

View File

@ -25,7 +25,7 @@
;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@mgail.com>
;;; Copyright © 2021, 2023 Sharlatan Hellseher <sharlatanus@mgail.com>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
;;; Copyright © 2021 jgart <jgart@dismail.de>
@ -74,6 +74,7 @@
#:use-module (gnu packages base)
#:use-module ((gnu packages bootstrap) #:select (glibc-dynamic-linker))
#:use-module (gnu packages check)
#:use-module (gnu packages fonts)
#:use-module (gnu packages gcc)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnupg)
@ -2112,6 +2113,54 @@ lists (Apple XML, Apple Binary, OpenStep, and GNUStep) from/to arbitrary Go
types.")
(license license:giftware))))
(define-public go-github-com-bitly-go-hostpool
(package
(name "go-github-com-bitly-go-hostpool")
(version "0.1.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/bitly/go-hostpool")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1iibj7dwymczw7cknrh6glc6sdpp4yap2plnyr8qphynwrzlz73w"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/bitly/go-hostpool"))
(native-inputs (list go-github-com-stretchr-testify))
(home-page "https://github.com/bitly/go-hostpool")
(synopsis "Pool among multiple hosts from Golang")
(description
"This package provides a Go package to intelligently and flexibly pool among
multiple hosts from your Go application. Host selection can operate in round
robin or epsilon greedy mode, and unresponsive hosts are avoided.")
(license license:expat)))
(define-public go-github-com-bitly-timer-metrics
(package
(name "go-github-com-bitly-timer-metrics")
(version "1.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/bitly/timer_metrics")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"02fhx8hx8126m2cgxw9fm8q2401r7zfann8b5zy5yyark1sgkrb4"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/bitly/timer_metrics"))
(home-page "https://github.com/bitly/timer_metrics")
(synopsis "Capture timings and enable periodic metrics every @var{n} events")
(description
"This package provides an efficient way to capture timing information and
periodically output metrics")
(license license:expat)))
(define-public go-github-com-blanu-dust
(package
(name "go-github-com-blanu-dust")
@ -2437,6 +2486,132 @@ the golang proxy package which connects through a TURN relay. It provides
parsing and encoding support for STUN and TURN protocols.")
(license license:bsd-3))))
(define-public go-github-com-flopp-go-findfont
(package
(name "go-github-com-flopp-go-findfont")
(version "0.1.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/flopp/go-findfont")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"05jvs5sw6yid0qr2ld7aw0n1mjp47jxhvbg9lsdig86668i2fj2q"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/flopp/go-findfont"))
(home-page "https://github.com/flopp/go-findfont")
(synopsis "go-findfont")
(description
"This package provides a platform-agnostic Go library to locate
TrueType font files in your system's user and system font directories.")
(license license:expat)))
(define-public go-github-com-phpdave11-gofpdi
(package
(name "go-github-com-phpdave11-gofpdi")
(version "1.0.13")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/phpdave11/gofpdi")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"01r8a3k2d48fxmhyvix0ry2dc1z5xankd14yxlm496a26vfnc9nq"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/phpdave11/gofpdi"
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'fix-source
(lambda _
(substitute* (find-files "." "writer\\.go$")
(("%s-%s") "%d-%s")))))))
(propagated-inputs (list go-github-com-pkg-errors))
(home-page "https://github.com/phpdave11/gofpdi")
(synopsis "PDF document importer")
(description
"gofpdi allows you to import an existing PDF into a new PDF.")
(license license:expat)))
(define-public go-github-com-signintech-gopdf
(package
(name "go-github-com-signintech-gopdf")
(version "0.18.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/signintech/gopdf")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1jf8a896qh871mdr1i7f0fdpqki5pkk1sp6p5dq404zqxpd7lq5l"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/signintech/gopdf"))
(propagated-inputs (list go-github-com-pkg-errors
go-github-com-phpdave11-gofpdi))
(home-page "https://github.com/signintech/gopdf")
(synopsis "Generating PDF documents")
(description "gopdf is a Go library for generating PDF documents.")
(license license:expat)))
(define-public go-github-com-wraparound-wrap
(package
(name "go-github-com-wraparound-wrap")
(version "0.3.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Wraparound/wrap")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0scf7v83p40r9k7k5v41rwiy9yyanfv3jm6jxs9bspxpywgjrk77"))
(patches (search-patches
"go-github-com-wraparound-wrap-free-fonts.patch"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/Wraparound/wrap/"
#:tests? #f ; no tests
#:phases
#~(modify-phases %standard-phases
(replace 'build
(lambda* (#:key import-path #:allow-other-keys)
(invoke "go" "install" "-v" "-x"
"-ldflags=-s -w"
(string-append import-path "cmd/wrap"))))
(add-after 'wrap 'wrap-fonts
(lambda* (#:key inputs outputs #:allow-other-keys)
(for-each
(lambda (program)
(wrap-program program
`("XDG_DATA_DIRS" suffix
,(map dirname
(search-path-as-list '("share/fonts")
(map cdr inputs))))))
(find-files (string-append (assoc-ref outputs "out")
"/bin"))))))))
(propagated-inputs (list go-github-com-spf13-cobra
go-github-com-signintech-gopdf
go-github-com-flopp-go-findfont))
(inputs (list font-liberation font-gnu-freefont))
(home-page "https://github.com/Wraparound/wrap")
(synopsis "Format Fountain screenplays")
(description
"Wrap is a command line tool that is able to convert Fountain files into a
correctly formatted screen- or stageplay as an HTML or a PDF. It supports
standard Fountain, but also has some custom syntax extensions such as
translated keywords and acts.")
(license license:gpl3)))
(define-public go-torproject-org-pluggable-transports-goptlib
(package
(name "go-torproject-org-pluggable-transports-goptlib")
@ -3135,6 +3310,55 @@ web framework
sunset times from geographical coordinates and a date.")
(license license:expat))))
(define-public go-github-com-nsqio-go-diskqueue
(package
(name "go-github-com-nsqio-go-diskqueue")
(version "1.1.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/nsqio/go-diskqueue")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1hp66hkmfn0nyf3c53a40f94ah11a9rj01r5zp3jph9p54j8rany"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/nsqio/go-diskqueue"))
(home-page "https://github.com/nsqio/go-diskqueue")
(synopsis "Go package providing a file system backed FIFO queue")
(description
"The @code{diskqueue} Go package provides a file system backed FIFO
queue.")
(license license:expat)))
(define-public go-github-com-nsqio-go-nsq
(package
(name "go-github-com-nsqio-go-nsq")
(version "1.1.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/nsqio/go-nsq")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1h9z3z225sdgg7fl3l7x11xn5ch6lm5flgmcj046cdp453qj2qhf"))))
(build-system go-build-system)
(arguments
(list #:tests? #f ;tests require networking
#:import-path "github.com/nsqio/go-nsq"))
(propagated-inputs (list go-github-com-golang-snappy))
(home-page "https://github.com/nsqio/go-nsq")
(synopsis "Consumer/producer library for NSQ")
(description
"The @code{nsq} Go module provides a high-level @code{Consumer} and
@code{Producer} types as well as low-level functions to communicate over the
NSQ protocol @url{https://nsq.io/}.")
(license license:expat)))
(define-public go-github-com-hebcal-gematriya
(let ((commit "fe3043f73e415eb82727701d10f2fb40f87675e9")
(revision "0"))
@ -3420,6 +3644,32 @@ per-goroutine.")
(description "The @code{walker} function is a faster, parallel version, of
@code{filepath.Walk}")))
(define-public go-github-com-tdewolff-hasher
(package
(name "go-github-com-tdewolff-hasher")
(version "0.0.0-20210521220142-bc97f602bca2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tdewolff/hasher")
(commit (go-version->git-ref version))))
(file-name (git-file-name name version))
(sha256
(base32
"12dmxpmdy2z7c2z7qv2mv2aq4hyvjncb6fzr0ymg3y5bfjvl4dcw"))))
(build-system go-build-system)
(arguments
(list #:import-path "github.com/tdewolff/hasher"))
(native-inputs
(list go-github-com-cespare-mph
go-github-com-dgryski-go-mph))
(home-page "https://github.com/tdewolff/hasher")
(synopsis "Go known-keys fast-lookup map generator")
(description
"Hasher is a tool to automate the creation of methods and tables for a
@code{string} to @code{uint32} mapper.")
(license license:bsd-3)))
(define-public go-github-com-tdewolff-minify-v2
(package
(name "go-github-com-tdewolff-minify-v2")
@ -3435,11 +3685,24 @@ per-goroutine.")
"0h006wpfkl0ls0skqxblwcanrhmphgq5q0ii26l2ayh7s99cgmy3"))))
(build-system go-build-system)
(arguments
(list #:import-path "github.com/tdewolff/minify/v2"))
(list #:import-path "github.com/tdewolff/minify/v2"
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'regenerate-hash
(lambda* (#:key import-path #:allow-other-keys)
(for-each
(lambda (dir)
(with-directory-excursion
(format #f "src/~a/~a" import-path dir)
(make-file-writable "hash.go")
(format #t "Generating `hash.go' for ~a...~%" dir)
(invoke "go" "generate")))
'("css" "html" "svg")))))))
(propagated-inputs
(list go-github-com-tdewolff-parse-v2))
(native-inputs
(list go-github-com-tdewolff-test))
(list go-github-com-tdewolff-hasher
go-github-com-tdewolff-test))
(home-page "https://go.tacodewolff.nl/minify")
(synopsis "Go minifiers for web formats")
(description
@ -3462,9 +3725,22 @@ an interface to implement any other minifier.")
"1dqki9ima079k9a3l72igmx5dml8qsl9z8rzw8a433f4gjhlv320"))))
(build-system go-build-system)
(arguments
(list #:import-path "github.com/tdewolff/parse/v2"))
(list #:import-path "github.com/tdewolff/parse/v2"
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'regenerate-hash
(lambda* (#:key import-path #:allow-other-keys)
(for-each
(lambda (dir)
(with-directory-excursion
(format #f "src/~a/~a" import-path dir)
(make-file-writable "hash.go")
(format #t "Generating `hash.go' for ~a...~%" dir)
(invoke "go" "generate")))
'("css" "html")))))))
(native-inputs
(list go-github-com-tdewolff-test))
(list go-github-com-tdewolff-hasher
go-github-com-tdewolff-test))
(home-page "https://github.com/tdewolff/parse")
(synopsis "Go parsers for web formats")
(description
@ -5263,6 +5539,54 @@ run programs as a service using a variety of supervisors, including systemd,
SysVinit, and more.")
(license license:zlib))))
(define-public go-github-com-dgryski-go-metro
(package
(name "go-github-com-dgryski-go-metro")
(version "0.0.0-20211217172704-adc40b04c140")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dgryski/go-metro")
(commit (go-version->git-ref version))))
(file-name (git-file-name name version))
(sha256
(base32
"16y5vc5qf7aipi8basqza8l939hlmp7wqsv4y6gsqac3sp9ziqyj"))))
(build-system go-build-system)
(arguments
(list #:import-path "github.com/dgryski/go-metro"))
(home-page "https://github.com/dgryski/go-metro")
(synopsis "Go translation of MetroHash")
(description
"This package provides a Go translation of the
@url{https://github.com/jandrewrogers/MetroHash, reference C++ code for
MetroHash}, a high quality, high performance hash algorithm.")
(license license:expat)))
(define-public go-github-com-dgryski-go-mph
(package
(name "go-github-com-dgryski-go-mph")
(version "0.0.0-20211217222804-81a8625fb7ed")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dgryski/go-mph")
(commit (go-version->git-ref version))))
(file-name (git-file-name name version))
(sha256
(base32
"10q8l4jdzqf54bnnxka2jk6qzayri3ijv51knn1n0iimfric8w9g"))))
(build-system go-build-system)
(arguments
(list #:import-path "github.com/dgryski/go-mph"))
(propagated-inputs
(list go-github-com-dgryski-go-metro))
(home-page "https://github.com/dgryski/go-mph")
(synopsis "Go minimal perfect hash function")
(description
"This package implements a hash/displace minimal perfect hash function.")
(license license:expat)))
(define-public go-github-com-docker-distribution
(let ((commit "325b0804fef3a66309d962357aac3c2ce3f4d329")
(revision "0"))
@ -6225,6 +6549,57 @@ trivial @command{big.Int} encoding benchmark results in 6 times faster
encoding and 8 times faster decoding.")
(license license:expat))))
(define-public go-github-com-mreiferson-go-options
(package
(name "go-github-com-mreiferson-go-options")
(version "1.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mreiferson/go-options")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1pxs9ybrh196qy14ijn4zn51h2z28lj31y6vxrz2xxhgvpmfmxyl"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/mreiferson/go-options"))
(home-page "https://github.com/mreiferson/go-options")
(synopsis "Go package to structure and resolve options")
(description
"The @code{options} Go package resolves configuration values set via
command line flags, config files, and default struct values.")
(license license:expat)))
(define-public go-github-com-mreiferson-go-svc
;; NSQ specific fork of github.com/judwhite/go-svc, as Guix go build system
;; does not support go.mod with `replace' statement.
(let ((commit "7a96e00010f68d9436e3de53a70c53f209a0c244")
(revision "0"))
(package
(name "go-github-com-mreiferson-go-svc")
(version (git-version "1.2.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mreiferson/go-svc")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1acgb0n3svhnraqj1fz5qc5n3b4vc5ffwyk9vfi6gcfkibm0hgmd"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/judwhite/go-svc"))
(propagated-inputs (list go-golang-org-x-sys))
(home-page "https://github.com/mreiferson/go-svc")
(synopsis "Go Windows Service wrapper for GNU/Linux")
(description
"Go Windows Service wrapper compatible with GNU/Linux. Windows tests
@url{https://github.com/judwhite/go-svc/raw/master/svc/svc_windows_test.go,here}.")
(license license:expat))))
(define-public go-github-com-gxed-hashland-keccakpg
(let ((commit "d9f6b97f8db22dd1e090fd0bbbe98f09cc7dd0a8")
(revision "0"))
@ -7293,6 +7668,29 @@ non-UTF-friendly sources.")
encoding in Go.")
(license license:bsd-3)))
(define-public go-github-com-cespare-mph
(package
(name "go-github-com-cespare-mph")
(version "0.1.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/cespare/mph")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0mvd6bkvf3i3555kqkkr3k9jd4c25scjq4xad35sxpny8f72nbg1"))))
(build-system go-build-system)
(arguments
(list #:import-path "github.com/cespare/mph"))
(home-page "https://github.com/cespare/mph")
(synopsis "Minimal perfect hashing in Go")
(description
"@code{mph} is a Go package that implements a minimal perfect hash table
over strings.")
(license license:expat)))
(define-public go-github-com-gdamore-tcell
(let ((commit "aaadc574a6ed8dc3abe56036ca130dcee1ee6b6e")
(version "1.1.2")
@ -9002,6 +9400,30 @@ the library more lightweight.")
matching and globbing with support for \"doublestar\" patterns.")
(license license:expat)))
(define-public go-github-com-bmizerany-perks-quantile
(package
(name "go-github-com-bmizerany-perks-quantile")
(version "0.0.0-20230307044200-03f9df79da1e")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/bmizerany/perks")
(commit (go-version->git-ref version))))
(file-name (git-file-name name version))
(sha256
(base32
"1f2a99v3618bz2mf61iwhdjm3xi1gam6v4apqgcrz71gj7ba9943"))))
(build-system go-build-system)
(arguments
(list #:unpack-path "github.com/bmizerany/perks"
#:import-path "github.com/bmizerany/perks/quantile"))
(home-page "https://github.com/bmizerany/perks")
(synopsis "Library for computing quantiles")
(description
"Perks contains the Go package @code{quantile} that computes approximate
quantiles over an unbounded data stream within low memory and CPU bounds.")
(license license:bsd-2)))
(define-public go-github-com-dlclark-regexp2
(package
(name "go-github-com-dlclark-regexp2")
@ -9861,6 +10283,29 @@ extensions.")
for color and styles.")
(license license:lgpl3)))
(define-public go-github-com-julienschmidt-httprouter
(package
(name "go-github-com-julienschmidt-httprouter")
(version "1.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/julienschmidt/httprouter")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1a6sy0ysqknsjssjh7qg1dqn21xmj9a36c57nrk7srfmab4ffmk1"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/julienschmidt/httprouter"))
(home-page "https://github.com/julienschmidt/httprouter")
(synopsis "High performance HTTP request router")
(description
"Package @code{httprouter} is a trie based high performance HTTP request
router.")
(license license:bsd-3)))
(define-public go-github-com-kevinburke-ssh-config
(package
(name "go-github-com-kevinburke-ssh-config")
@ -11893,7 +12338,7 @@ dependencies and a simple API.")
(define-public go-github-com-arceliar-ironwood
(package
(name "go-github-com-arceliar-ironwood")
(version "0.0.0-20210912013146-c2bc55bb349c")
(version "0.0.0-20221115123222-ec61cea2f439")
(source
(origin
(method git-fetch)
@ -11903,7 +12348,7 @@ dependencies and a simple API.")
(file-name (git-file-name name version))
(sha256
(base32
"1dfkqnkfxwlwcsk8g9r1pv84lfzgn8r1vam13zlmk81cgan2r6fx"))))
"0jdfhsr1yci0a4fpf2pmh9n4d7iryjx12y3549gv9nfjf91rs225"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/Arceliar/ironwood"

View File

@ -57,6 +57,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-compression)
#:use-module (gnu packages python-science)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
@ -624,7 +625,7 @@ transformed into common image formats for display or printing.")
(define-public python-graph-tool
(package
(name "python-graph-tool")
(version "2.46")
(version "2.57")
(source (origin
(method url-fetch)
(uri (string-append
@ -632,7 +633,7 @@ transformed into common image formats for display or printing.")
version ".tar.bz2"))
(sha256
(base32
"0x9jgnq9xcja3q954y7nhdzd374p4h203pymxh51b6lqqbq0hm9h"))))
"0wmvzx509lvigja6cfxh45r4b7wns64vmik0x4rz4y4fnxrhw2m2"))))
(build-system gnu-build-system)
(arguments
`(#:imported-modules (,@%gnu-build-system-modules
@ -656,7 +657,11 @@ transformed into common image formats for display or printing.")
python-wrapper
sparsehash))
(propagated-inputs
(list python-matplotlib python-numpy python-pycairo python-scipy))
(list python-matplotlib
python-numpy
python-pycairo
python-scipy
python-zstandard))
(synopsis "Manipulate and analyze graphs with Python efficiently")
(description "Graph-tool is an efficient Python module for manipulation
and statistical analysis of graphs (a.k.a. networks). Contrary to most other

View File

@ -83,6 +83,7 @@
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
#:use-module (gnu packages image-processing)
#:use-module (gnu packages imagemagick)
@ -1414,7 +1415,7 @@ virtual reality, scientific visualization and modeling.")
(define-public gr-framework
(package
(name "gr-framework")
(version "0.58.1")
(version "0.69.1")
(source
(origin
(method git-fetch)
@ -1423,12 +1424,11 @@ virtual reality, scientific visualization and modeling.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0q1rz4iyxbh0dc22y4w28ry3hr0yypdwdm6pw2zlwgjya7wkbvsw"))
(base32 "0kllbj4bj3f5w4wzg29ilac66fd0bslqq5srj845ssmzp4ynqglh"))
(modules '((guix build utils)))
(snippet
'(begin
(delete-file-recursively "3rdparty")
#t))))
(delete-file-recursively "3rdparty")))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; no test target
@ -1999,9 +1999,9 @@ and engineering community.")
;; https://skia.org/docs/user/release/release_notes/. The commit used
;; should be the last commit, as recommended at
;; https://skia.org/docs/user/release/.
(let ((version "98")
(let ((version "112")
(revision "0")
(commit "55c56abac381e1ae3f0116c410bed81b05e0a38a"))
(commit "6d0b93856303fcf3021a8b40654d7739fda4dfb0"))
(package
(name "skia")
(version (git-version version revision commit))
@ -2013,14 +2013,10 @@ and engineering community.")
(file-name (git-file-name name version))
(sha256
(base32
"1ldns2j1g2wj2phlxr9zqkdgs5g64pisxhwxcrq9ijn8a3jhafr2"))))
"0g07xlvpbbxqmr9igvy5d1hy11z7dz9nzp2fd3ka9y2jqciniyz6"))))
(build-system gnu-build-system) ;actually GN + Ninja
(arguments
(list
;; Running the test suite would require 'dm'; unfortunately the tool
;; can only be built for debug builds, which require fetching third
;; party sources.
#:tests? #f
#:phases
#~(modify-phases %standard-phases
(replace 'configure
@ -2037,6 +2033,7 @@ and engineering community.")
"cc=\"gcc\" " ;defaults to 'cc'
"is_official_build=true " ;to use system libraries
"is_component_build=true " ;build as a shared library
"skia_use_system_zlib=true " ; use system zlib library
;; Specify where locate the harfbuzz and freetype
;; includes.
(format #f "extra_cflags=[\"-I~a\",\"-I~a\"] "
@ -2048,7 +2045,10 @@ and engineering community.")
"extra_ldflags=[\"-Wl,-rpath=" #$output "/lib\"] "
;; Disabled, otherwise the build system attempts to
;; download the SDK at build time.
"skia_use_dng_sdk=false "))))
"skia_use_dng_sdk=false "
;; Wuffs is a google language that may improve performance
;; disabled while unpackaged
"skia_use_wuffs=false "))))
(replace 'build
(lambda* (#:key parallel-build? #:allow-other-keys)
(let ((job-count (if parallel-build?
@ -2085,13 +2085,142 @@ Description: 2D graphic library for drawing text, geometries and images.
URL: https://skia.org/
Version: ~a
Libs: -L${libdir} -lskia
Cflags: -I${includedir}~%" #$output #$version))))))))
(native-inputs (list gn libjpeg-turbo ninja pkg-config python-wrapper))
(inputs (list expat fontconfig freetype harfbuzz mesa libwebp zlib))
(home-page "https://skia.org/")
(synopsis "2D graphics library")
(description
"Skia is a 2D graphics library for drawing text, geometries, and images.
Cflags: -I${includedir}~%" #$output #$version)))))
(replace 'check
(lambda* (#:key inputs native-inputs #:allow-other-keys)
(let ((icu #$(this-package-native-input "icu4c-for-skia")))
;; Unbundle SPIRV-Tools dependency.
(substitute* "BUILD.gn"
(("deps \\+= \\[ \"//third_party/externals/spirv-tools:spvtools_val\" \\]")
"libs += [ \"SPIRV-Tools\" ]"))
(substitute* "src/sksl/SkSLCompiler.cpp"
(("\"spirv-tools/libspirv.hpp\"")
"<libspirv.hpp>"))
;; Configure ICU dependency.
(substitute* "third_party/icu/BUILD.gn"
(("data_dir = \"\\.\\./externals/icu/\"")
(string-append "data_dir = \"" icu "/share/data/\""))
(("script = \"\\.\\./externals/icu/scripts/")
(string-append "script = \"" icu "/share/scripts/"))
(("\\.\\./externals/icu/common/icudtl\\.dat")
(string-append icu "/share/data/icudtl.dat"))
(("sources = icu_sources")
"")
(("sources \\+= \\[ \"\\$data_assembly\" \\]")
"sources = [ \"$data_assembly\" ]"))
;; Enable system libraries without is_official_build=true.
;; This is necessary because is_official_build prevents from
;; building dm.
(for-each
(lambda (libname)
(let ((snake (string-join (string-split libname #\-) "_")))
(substitute*
(string-append "third_party/" libname "/BUILD.gn")
(((string-append "skia_use_system_"
snake
" = is_official_build.*"))
(string-append "skia_use_system_" snake " = true")))))
'("zlib" "libjpeg-turbo" "harfbuzz" "libpng" "libwebp"))
;; Configure with gn.
(invoke "gn" "gen" "out/Debug"
(string-append
"--args="
"cc=\"gcc\" " ;defaults to 'cc'
"skia_compile_sksl_tests=false " ; disable some tests
"skia_use_perfetto=false " ; disable performance tests
"skia_use_wuffs=false " ; missing performance tool
"skia_use_system_expat=true " ; use system expat library
"skia_use_system_zlib=true " ; use system zlib library
;; Specify where to locate the includes.
"extra_cflags=["
(string-join
(map
(lambda (lib)
(string-append
"\"-I"
(search-input-directory
inputs
(string-append "include/" lib)) "\""))
'("harfbuzz"
"freetype2"
"spirv-tools"
"spirv"
"unicode"))
",")
"] "
;; Otherwise the validate-runpath phase fails.
"extra_ldflags=["
"\"-Wl,-rpath=" #$output "/lib\""
"] "
;; Disabled, otherwise the build system attempts to
;; download the SDK at build time.
"skia_use_dng_sdk=false "
"skia_use_runtime_icu=true "))
;; Build dm testing tool.
(symlink
(string-append #$(this-package-native-input "gn") "/bin/gn")
"./bin/gn")
(invoke "ninja" "-C" "out/Debug" "dm")
;; The test suite requires an X server.
(let ((xvfb (search-input-file (or native-inputs inputs)
"bin/Xvfb"))
(display ":1"))
(setenv "DISPLAY" display)
(system (string-append xvfb " " display " &")))
;; Run tests.
(invoke "out/Debug/dm" "-v"
"-w" "dm_output"
"--codecWritePath" "dm_output"
"--simpleCodec"
"--skip"
;; The underscores are part of the dm syntax for
;; skipping tests.
;; These tests fail with segmentation fault.
"_" "_" "_" "Codec_trunc"
"_" "_" "_" "AnimCodecPlayer"
"_" "_" "_" "Codec_partialAnim"
"_" "_" "_" "Codec_InvalidImages"
"_" "_" "_" "Codec_GifInterlacedTruncated"
"_" "_" "_" "SkText_UnicodeText_Flags"
"_" "_" "_" "SkParagraph_FontStyle"
"_" "_" "_" "flight_animated_image"
;; These tests fail because of Codec/Sk failure.
"_" "_" "_" "AndroidCodec_computeSampleSize"
"_" "_" "_" "AnimatedImage_invalidCrop"
"_" "_" "_" "AnimatedImage_scaled"
"_" "_" "_" "AnimatedImage_copyOnWrite"
"_" "_" "_" "AnimatedImage"
"_" "_" "_" "BRD_types"
"_" "_" "_" "Codec_frames"
"_" "_" "_" "Codec_partial"
"_" "_" "_" "Codec_partialWuffs"
"_" "_" "_" "Codec_requiredFrame"
"_" "_" "_" "Codec_rewind"
"_" "_" "_" "Codec_incomplete"
"_" "_" "_" "Codec_InvalidAnimated"
"_" "_" "_" "Codec_ossfuzz6274"
"_" "_" "_" "Codec_gif_out_of_palette"
"_" "_" "_" "Codec_xOffsetTooBig"
"_" "_" "_" "Codec_gif"
"_" "_" "_" "Codec_skipFullParse"
"_" "_" "_" "AndroidCodec_animated_gif"
;; These fail for unknown reasons.
"_" "_" "_" "Gif"
"_" "_" "_" "Wuffs_seek_and_decode"
"_" "_" "_" "Skottie_Shaper_ExplicitFontMgr"
"8888" "skp" "_" "_"
"8888" "lottie" "_" "_"
"gl" "skp" "_" "_"
"gl" "lottie" "_" "_"
"_" "_" "_" "ES2BlendWithNoTexture")))))))
(native-inputs (list gn libjpeg-turbo ninja pkg-config python-wrapper
spirv-tools spirv-headers
icu4c-for-skia glu xorg-server-for-tests))
(inputs (list expat fontconfig freetype harfbuzz mesa libwebp zlib))
(home-page "https://skia.org/")
(synopsis "2D graphics library")
(description
"Skia is a 2D graphics library for drawing text, geometries, and images.
It supports:
@itemize
@item 3x3 matrices with perspective
@ -2099,7 +2228,7 @@ It supports:
@item shaders, xfermodes, maskfilters, patheffects
@item subpixel text
@end itemize")
(license license:bsd-3))))
(license license:bsd-3))))
(define-public superfamiconv
(package
@ -2526,6 +2655,80 @@ anything from rendering scalable icons in an editor application to prototyping
a game.")
(license license:zlib))))
(define-public asli
(package
(name "asli")
(version "0.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tpms-lattice/ASLI")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "02hwdavpsy3vmivd6prp03jn004ykrl11lbkvksy5i2zm38zbknr"))
(patches (search-patches "asli-use-system-libs.patch"))
(modules '((guix build utils)))
(snippet
;; Remove bundled libraries except (the ones missing from Guix and)
;; KU Leuven's mTT, which is an obscure (i.e., unfindable by searching
;; online for “mTT KU Leuven”), BSD-3 licensed, header-only library.
#~(begin
;;(delete-file-recursively "libs/AdaptTools") ; Missing from Guix
(delete-file-recursively "libs/CGAL")
;;(delete-file-recursively "libs/alglib") ; Missing from Guix
(delete-file-recursively "libs/eigen")
(delete-file-recursively "libs/mmg")
;;(delete-file-recursively "libs/tetgen") ; Missing from Guix
(delete-file-recursively "libs/yaml")))))
(build-system cmake-build-system)
(inputs
(list boost
cgal
eigen
gmp
`(,mmg "lib")
mpfr
tbb-2020
yaml-cpp))
(arguments
(list #:tests? #f ; No tests
#:configure-flags
#~(list "-DCGAL_ACTIVATE_CONCURRENT_MESH_3=ON"
(string-append "-DEIGEN3_INCLUDE_DIR="
#$(this-package-input "eigen")
"/include/eigen3")
(string-append "-DMMG_INCLUDE_DIR="
(ungexp (this-package-input "mmg") "lib")
"/include")
(string-append "-DMMG_LIBRARY_DIR="
(ungexp (this-package-input "mmg") "lib")
"/lib"))
#:phases
#~(modify-phases %standard-phases
(replace 'install ; No install phase
(lambda _
(with-directory-excursion "../source/bin"
(install-file "ASLI" (string-append #$output "/bin"))
;; The manual is included in the repository.
;; Building it requires -DASLI_DOC=ON, but this is marked
;; as unsupported (presumably for users).
;; Besides, some of the LaTeX packages it uses are
;; missing from Guix, for example emptypage, fvextra and
;; menukeys.
(install-file "docs/ASLI [User Manual].pdf"
(string-append #$output "/share/doc/"
#$name "-" #$version))))))))
(home-page "http://www.biomech.ulg.ac.be/ASLI/")
(synopsis "Create lattice infills with varying unit cell type, size and feature")
(description "ASLI (A Simple Lattice Infiller) is a command-line tool that
allows users to fill any 3D geometry with a functionally graded lattice. The
lattice infill is constructed out of unit cells, described by implicit
functions, whose type, size and feature can be varied locally to obtain the
desired local properties.")
(license license:agpl3+)))
(define-public f3d
(package
(name "f3d")

View File

@ -849,7 +849,9 @@ model to base your own plug-in on, here it is.")
(inputs
(append
(if (target-x86?) (list mediasdk) '())
(if (target-x86-64?) (list svt-hevc) '())
;; Note: svt-hevc cannot be used, as it would break the package for
;; older x86_64 CPUs that lack AVX2, such as the Core 2 Duo (see:
;; https://github.com/OpenVisualCloud/SVT-HEVC/issues/573#issuecomment-680678144).
(list bluez
bzip2
cairo

View File

@ -728,7 +728,7 @@ you send to a FIFO file.")
(define-public guile-dsv
(package
(name "guile-dsv")
(version "0.6.0")
(version "0.7.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -737,12 +737,19 @@ you send to a FIFO file.")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"0llivcgb7idglsapcmvb2qscds7768f2xfgr4lns8mzl2xf5hwvv"))))
"0shrzmbh6x3n3xzpcijkxk3f73z6m1i50zgc2dnnccwf4j1c78p2"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake pkg-config texinfo help2man))
(inputs (list guile-3.0))
(propagated-inputs (list guile-lib))
(native-inputs (list autoconf
automake
pkg-config
texinfo
help2man
;; needed when cross-compiling.
guile-3.0
guile-lib
guile-smc))
(inputs (list bash-minimal guile-3.0))
(propagated-inputs (list guile-lib guile-smc))
(arguments
`(#:modules (((guix build guile-build-system)
#:select (target-guile-effective-version))
@ -756,32 +763,41 @@ you send to a FIFO file.")
(bin (string-append out "/bin"))
(guile-lib (assoc-ref inputs "guile-lib"))
(version (target-guile-effective-version))
(scm (string-append "/share/guile/site/"
version))
(go (string-append "/lib/guile/"
version "/site-ccache")))
(scm (string-append "/share/guile/site/" version))
(go (string-append "/lib/guile/" version
"/site-ccache")))
(wrap-program (string-append bin "/dsv")
`("GUILE_LOAD_PATH" prefix
(,(string-append out scm)
,(string-append guile-lib scm)))
(,(string-append out scm) ,(string-append
guile-lib scm)))
`("GUILE_LOAD_COMPILED_PATH" prefix
(,(string-append out go)
,(string-append guile-lib go)))))
#t)))))
(,(string-append out go) ,(string-append guile-lib
go))))) #t)))))
(home-page "https://github.com/artyom-poptsov/guile-dsv")
(synopsis "DSV module for Guile")
(description
"Guile-DSV is a GNU Guile module for working with the
delimiter-separated values (DSV) data format. Guile-DSV supports the
Unix-style DSV format and RFC 4180 format.")
"Guile-DSV is a GNU Guile module for working with the delimiter-separated
values (DSV) data format. Guile-DSV supports the Unix-style DSV format and RFC 4180
style format. Also Guile-DSV includes a console program named @code{dsv} that allows
to view and process DSV data, including such operations as delimiter change,
conversion from one DSV standard to another and printing the data as pseudographics
tables.")
(license license:gpl3+)))
(define-public guile2.2-dsv
(package
(inherit guile-dsv)
(name "guile2.2-dsv")
(inputs (list guile-2.2))
(propagated-inputs `(("guile-lib" ,guile2.2-lib)))))
(native-inputs (modify-inputs (package-native-inputs guile-dsv)
(replace "guile-smc" guile2.2-smc)
(replace "guile" guile-2.2)
(replace "guile-lib" guile2.2-lib)))
(inputs (modify-inputs (package-inputs guile-dsv)
(replace "guile" guile-2.2)
(replace "guile-lib" guile2.2-lib)))
(propagated-inputs (modify-inputs (package-propagated-inputs guile-dsv)
(replace "guile-lib" guile2.2-lib)
(replace "guile-smc" guile2.2-smc)))))
(define-public guile-fibers-1.3
(package
@ -1554,7 +1570,7 @@ tracker's SOAP service, such as @url{https://bugs.gnu.org}.")
(define-public guile-email
(package
(name "guile-email")
(version "0.3.0")
(version "0.3.1")
(source
(origin
(method git-fetch)
@ -1564,7 +1580,7 @@ tracker's SOAP service, such as @url{https://bugs.gnu.org}.")
(file-name (git-file-name name version))
(sha256
(base32
"0q98r460yr75gyxg06zrrixwazncd9nxl2pgr68mff2wf41f291h"))))
"09r50zbkyxvg6f7qn37yibasw69ajxls3sgdnhy9j70mbvcmx9c4"))))
(build-system gnu-build-system)
(native-inputs
(list texinfo))
@ -2974,56 +2990,52 @@ is no support for parsing block and inline level HTML.")
(inputs (list guile-2.0))))
(define-public mcron
;; Use the latest commits, as interesting changes haven't been released yet,
;; such as improved logging.
(let ((revision "0")
(commit "5fd0ccde5a4cff70299999f988e6b5166584814d"))
(package
(name "mcron")
(version (git-version "1.2.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.savannah.gnu.org/git/mcron.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0jl2w67a5hkphzssdzq3q4jcwv2b174b11d3w5i3khxq2vhzd6kk"))))
(build-system gnu-build-system)
(arguments
(list
#:phases #~(modify-phases %standard-phases
(add-before 'check 'adjust-tests
(lambda _
(substitute* "tests/job-specifier.scm"
;; (getpw) fails with "entry not found" in the build
;; environment, so pass an argument.
(("\\(getpw\\)")
"(getpwnam (getuid))")
;; The build environment lacks an entry for root in
;; /etc/passwd.
(("\\(getpw 0\\)")
"(getpwnam \"nobody\")")
;; FIXME: Skip the 4 faulty tests (see above).
(("\\(test-equal \"next-year\"" all)
(string-append "(test-skip 4)\n" all))))))))
(native-inputs (list autoconf
automake
guile-3.0 ;for 'guild compile'
help2man
pkg-config
tzdata-for-tests
texinfo))
(inputs (list guile-3.0))
(home-page "https://www.gnu.org/software/mcron/")
(synopsis "Run jobs at scheduled times")
(description
"GNU Mcron is a complete replacement for Vixie cron. It is used to run
(package
(name "mcron")
(version "1.2.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.savannah.gnu.org/git/mcron.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"07gqwbjfsgf16ff624hkav0qhl10dv579y10fxas2kbjavqm4yx5"))))
(build-system gnu-build-system)
(arguments
(list
#:phases #~(modify-phases %standard-phases
(add-before 'check 'adjust-tests
(lambda _
(substitute* "tests/job-specifier.scm"
;; (getpw) fails with "entry not found" in the build
;; environment, so pass an argument.
(("\\(getpw\\)")
"(getpwnam (getuid))")
;; The build environment lacks an entry for root in
;; /etc/passwd.
(("\\(getpw 0\\)")
"(getpwnam \"nobody\")")
;; FIXME: Skip the 4 faulty tests (see above).
(("\\(test-equal \"next-year\"" all)
(string-append "(test-skip 4)\n" all))))))))
(native-inputs (list autoconf
automake
guile-3.0 ;for 'guild compile'
help2man
pkg-config
tzdata-for-tests
texinfo))
(inputs (list guile-3.0))
(home-page "https://www.gnu.org/software/mcron/")
(synopsis "Run jobs at scheduled times")
(description
"GNU Mcron is a complete replacement for Vixie cron. It is used to run
tasks on a schedule, such as every hour or every Monday. Mcron is written in
Guile, so its configuration can be written in Scheme; the original cron
format is also supported.")
(license license:gpl3+))))
(license license:gpl3+)))
(define-public guile-picture-language
(let ((commit "a1322bf11945465241ca5b742a70893f24156d12")
@ -5417,6 +5429,9 @@ with a FSM is being built (for example, from a Makefile.)")
(package
(inherit guile-smc)
(name "guile2.2-smc")
(native-inputs (modify-inputs (package-native-inputs guile-smc)
(replace "guile" guile-2.2)
(replace "guile-lib" guile2.2-lib)))
(inputs (modify-inputs (package-inputs guile-smc)
(replace "guile" guile-2.2)
(replace "guile-lib" guile2.2-lib)))))

View File

@ -457,7 +457,7 @@ without requiring the source code to be rewritten.")
(define-public guile-next
(let ((version "3.0.9")
(revision "0")
(commit "aa2cfe7cf69327285a17de97682d696f2f6c43ef"))
(commit "c2cba86785a34351788f52ea4fccf9f10f3a1dee"))
(package
(inherit guile-3.0)
(name "guile-next")
@ -471,7 +471,7 @@ without requiring the source code to be rewritten.")
(file-name (git-file-name name version))
(sha256
(base32
"03xwy3ni85qy0lrvz0lk0488394nfsfc1004l84lgyzql2qwkynl"))))
"1k0dkmyf9s4iynjj2qm0szqfpfd3b07cpj0fay14iwbidkrqndzf"))))
(arguments
(substitute-keyword-arguments (package-arguments guile-3.0)
((#:phases phases '%standard-phases)

View File

@ -2,7 +2,7 @@
;;; Copyright © 20182022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2021 Evgeny Pisemsky <evgeny@pisemsky.com>
;;; Copyright © 2021, 2023 Evgeny Pisemsky <evgeny@pisemsky.com>
;;; Copyright © 2021 Léo Le Bouter <lle-bout@zaclys.net>
;;; Copyright © 2021 Denis Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2021, 2022 Petr Hodina <phodina@protonmail.com>
@ -1459,3 +1459,37 @@ your network, send SCPI commands, and receive responses.")
on the LXI Consortium standard which defines the communication protocols for
modern instrumentation and data acquision systems using Ethernet.")
(license license:bsd-3)))
(define-public usbrelay
(package
(name "usbrelay")
(version "1.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/darrylb123/usbrelay")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0fr3wglr2c6myg4k6ai2p5z38prclcnk2ngik15sq16fnp6qg750"))))
(build-system gnu-build-system)
(arguments
(list
#:phases #~(modify-phases %standard-phases
(delete 'configure)) ;no configure script
#:make-flags #~(list (string-append "CC=" #$(cc-for-target))
(string-append "PREFIX=" #$output)
(string-append "LDFLAGS=-Wl,-rpath="
(string-append #$output "/lib"))
"LDCONFIG=true"
"USBMAJOR=$(USBLIBVER)")
#:tests? #f)) ;no test suite
(inputs (list hidapi))
(home-page "https://github.com/darrylb123/usbrelay")
(synopsis "Control USB relay modules")
(description
"This is a Linux driver based on hidapi for a variety of inexpensive
HID compatible USB relay modules available with different number of
output relays.")
(license license:gpl2+)))

View File

@ -34,6 +34,7 @@
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages golang)
#:use-module (gnu packages hardware)
#:use-module (gnu packages linux)
#:use-module (gnu packages lua)
@ -43,12 +44,14 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages rsync)
#:use-module (gnu packages syncthing)
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages version-control)
#:use-module (gnu packages xml)
#:use-module (gnu packages)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
@ -190,6 +193,89 @@ applications.")
in general better performances compared to the old network protocol.")
(license (list license:gpl2+ license:lgpl2.1+))))
(define-public nsq
(package
(name "nsq")
(version "1.2.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/nsqio/nsq")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0ajqjwfn06zsmz21z9mkl4cblarypaf20228pqcd1293zl6y3ry8"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/nsqio/nsq"
#:install-source? #f
#:phases
#~(modify-phases %standard-phases
(replace 'build
(lambda* (#:key import-path #:allow-other-keys)
(with-directory-excursion (string-append "src/" import-path)
(invoke "make"))))
(replace 'check
(lambda* (#:key tests? import-path #:allow-other-keys)
(when tests?
(setenv "HOME" "/tmp")
(with-directory-excursion (string-append "src/" import-path)
(invoke #$@(if (target-x86?)
(list "go" "test" "-v" "-race" "./...")
(list "go" "test" "-v" "./...")))))))
(replace 'install
(lambda* (#:key import-path #:allow-other-keys)
(with-directory-excursion (string-append "src/" import-path)
(invoke "make" (string-append "PREFIX=" #$output)
"install")))))))
(native-inputs
(list go-github-com-bitly-go-hostpool
go-github-com-bitly-timer-metrics
go-github-com-blang-semver
go-github-com-bmizerany-perks-quantile
go-github-com-burntsushi-toml
go-github-com-davecgh-go-spew
go-github-com-golang-snappy ; Move to (gnu packages golang)
go-github-com-julienschmidt-httprouter
go-github-com-mreiferson-go-options
go-github-com-mreiferson-go-svc
go-github-com-nsqio-go-diskqueue
go-github-com-nsqio-go-nsq
python-wrapper))
(home-page "https://nsq.io")
(synopsis "Realtime distributed messaging platform")
(description
"NSQ is a realtime distributed messaging platform designed to operate at
scale, handling billions of messages per day.
Key features:
@itemize
@item support distributed topologies without @acronym{SPOF, Single Point of
Failure}
@item scale horizontally (no brokers, seamlessly add more nodes to the
cluster)
@item low-latency push based message delivery (performance)
@item combine load-balanced and multicast style message routing
@item excel at both streaming (high-throughput) and job oriented
(low-throughput) workloads
@item primarily in-memory (beyond a high-water mark messages are transparently
kept on disk)
@item runtime discovery service for consumers to find producers (nsqlookupd)
@item transport layer security (TLS)
@item data format agnostic
@item few dependencies (easy to deploy) and a sane, bounded, default
configuration
@item simple TCP protocol supporting client libraries in any language
@item HTTP interface for stats, admin actions, and producers (no client
library needed to publish)
@item integrate with @acronym{StatsD, Stats aggregation Daemon} for realtime
instrumentation
@item robust cluster administration interface (nsqadmin)
@end itemize")
(license license:expat)))
(define-public corosync
(package
(name "corosync")

View File

@ -241,6 +241,12 @@ may also simplify input method development.")
#$flags))
((#:phases phases '%standard-phases)
#~(modify-phases #$phases
(add-after 'unpack 'disable-registry-cache
;; IBus registry cache depends on mtime, which doesn't work on
;; Guix.
(lambda _
(substitute* "bus/main.c"
(("ibus_init") "g_cache = \"none\"; ibus_init"))))
(replace 'wrap-with-additional-paths
(lambda* (#:key outputs #:allow-other-keys)
;; Make sure 'ibus-setup' and 'ibus-daemon' runs with the
@ -263,6 +269,13 @@ may also simplify input method development.")
python
python-dbus
python-pygobject)))
(native-search-paths
(cons (search-path-specification
(variable "GUIX_GTK3_IM_MODULE_FILE")
(file-type 'regular)
(separator #f)
(files '("lib/gtk-3.0/3.0.0/immodules-gtk3.cache")))
(package-native-search-paths ibus-minimal)))
(properties (alist-delete 'hidden? (package-properties ibus-minimal)))))
(define-public ibus-libpinyin

View File

@ -9,6 +9,7 @@
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -27,14 +28,17 @@
(define-module (gnu packages icu4c)
#:use-module (gnu packages)
#:use-module (gnu packages cpio)
#:use-module (gnu packages java)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (guix gexp)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system ant)
#:use-module (guix build-system gnu))
@ -240,3 +244,75 @@ C/C++ part.")
globalisation support for software applications. This package contains the
Java part.")
(license x11)))
(define-public icu4c-for-skia
;; The current version of skia needs this exact commit
;; for its test dependencies.
(let ((commit "a0718d4f121727e30b8d52c7a189ebf5ab52421f")
(revision "0"))
(package
(inherit icu4c)
(name "icu4c-for-skia")
(version "skia")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://chromium.googlesource.com/chromium/deps/icu.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1qxws2p91f6dmhy7d3967r5ygz06r88pkmpm97px067x0zzdz384"))))
(arguments
(list
#:make-flags #~(list (string-append "DESTDIR=" #$output))
#:configure-flags #~(list "--prefix=" "--exec-prefix=")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir-to-source
(lambda _ (chdir "source")))
(replace 'configure
(lambda* (#:key inputs parallel-build? configure-flags
#:allow-other-keys)
(setenv "CONFIG_SHELL" (which "sh"))
(setenv "OPTS" (string-join configure-flags))
(invoke "./runConfigureICU" "Linux/gcc"
"--disable-layout" "--disable-tests")))
(add-after 'install 'install-cleanup
(lambda* (#:key make-flags #:allow-other-keys)
(with-directory-excursion "data"
(apply invoke "make" "clean" make-flags))))
(add-after 'install-cleanup 'configure-filtered-data
(lambda* (#:key configure-flags #:allow-other-keys)
(setenv "OPTS" (string-join configure-flags))
(setenv "ICU_DATA_FILTER_FILE"
(string-append (getcwd) "/../filters/common.json"))
(invoke "./runConfigureICU" "Linux/gcc"
"--disable-layout" "--disable-tests")))
(add-after 'configure-filtered-data 'build-filtered-data
(lambda* (#:key parallel-build? make-flags #:allow-other-keys)
(let ((job-count (if parallel-build?
(number->string (parallel-job-count))
"1")))
(apply invoke "make" "-j" job-count make-flags)
(setenv "DESTDIR" #$output)
(invoke "bash" "../scripts/copy_data.sh" "common"))))
(add-after 'build-filtered-data 'install-scripts-and-data
(lambda _
(let* ((share (string-append #$output "/share"))
(scripts (string-append share "/scripts"))
(data (string-append share "/data/common")))
;; Install scripts.
(mkdir-p scripts)
(copy-recursively "../scripts/" scripts)
;; Install data.
(mkdir-p data)
(copy-recursively "./dataout/common/data/out/tmp" data)
(symlink (string-append data "/icudt69l.dat")
(string-append data "/icudtl.dat")))))
(add-before 'check 'disable-failing-uconv-test
(lambda _
(substitute* "extra/uconv/Makefile.in"
(("check: check-local")
"")))))))
(native-inputs (list cpio pkg-config python)))))

View File

@ -81,6 +81,7 @@
#:use-module (gnu packages linux)
#:use-module (gnu packages maths)
#:use-module (gnu packages mpi)
#:use-module (gnu packages opencl)
#:use-module (gnu packages pdf)
#:use-module (gnu packages perl)
#:use-module (gnu packages photo)
@ -472,7 +473,8 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
"0nm7xwwj7rnsxjdv2ssviys8nhci4n9iiiqm2y14s520hl2dsp1d"))
(patches (search-patches "vtk-7-python-compat.patch"
"vtk-7-hdf5-compat.patch"
"vtk-7-gcc-10-compat.patch"))))
"vtk-7-gcc-10-compat.patch"
"vtk-7-gcc-11-compat.patch"))))
(arguments
(substitute-keyword-arguments (package-arguments vtk)
((#:configure-flags flags)
@ -492,7 +494,7 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
(define-public opencv
(package
(name "opencv")
(version "4.7.0")
(version "4.8.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -508,6 +510,7 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
(for-each delete-file-recursively
'("carotene"
"cpufeatures"
"flatbuffers"
"ffmpeg"
"include"
"ippicv"
@ -531,7 +534,7 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
(for-each delete-file (find-files "." "\\.jar$"))))
(sha256
(base32
"0l45v41nns2jmn9nr9fb0yvhqzfjpxjxn75i1c02rsfy3r3lv22v"))))
"14bjpb0ahhaqnim8g6vs0gyd6jgnmly1amx25a0rk1a6ii2aiywn"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
@ -578,6 +581,12 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
;; which we had removed, which would lead to an error:
"-DBUILD_PROTOBUF=OFF"
;; OpenCV tries to use flatbuffers in 3rdparty which we removed
;; so for now we don't buildfor flatbuffer support
;; TODO: make OpenCV use system flatbuffers which involves
;; modifying CMake files
"-DWITH_FLATBUFFERS=OFF"
;; Rebuild protobuf files, because we have a slightly different
;; version than the included one. If we would not update, we
;; would get a compile error later:
@ -611,6 +620,11 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
(("\\b(Accum|DataAugmentation|Resample|Correlation|Interp)\\b" all)
(string-append "DISABLED_" all)))
;; This test fails on x86-64, loosen the bounds.
;; Expected: (max) < (0.1), actual: 0.2 vs 0.1
(substitute* "modules/photo/test/test_hdr.cpp"
(("0\\.1\\)") "0.222)"))
,@(if (target-aarch64?)
`(;; This test fails on aarch64, loosen the bounds.
;; Expected: (max) < (0.131), actual: 0.207148 vs 0.131
@ -668,7 +682,7 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
(file-name (git-file-name "opencv_extra" version))
(sha256
(base32
"0bdg5kwwdimnl2zp4ry5cmfxr9xb7zk2ml59853d90llsqjis47a"))))
"11y9b35j74gg4gqll4v366qmhvjkcqml45khiajd8zsk1fraf70l"))))
("opencv-contrib"
,(origin
(method git-fetch)
@ -677,9 +691,11 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
(file-name (git-file-name "opencv_contrib" version))
(sha256
(base32
"0hbfn835kxh3hwmwvzgdglm2np1ri3z7nfnf60gf4x6ikp89mv4r"))))))
"16crcca9r4y4rby0dqdhc06qi84hjk6qxy2sql2dhh35hfs856rr"))))))
(inputs
(list ffmpeg-4
(list eigen
ffmpeg-4
;; TODO: add gstreamer
gtk+
gtkglext
hdf5
@ -692,7 +708,9 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
libtiff
libwebp
openblas
opencl-headers
openexr
openmpi
openjpeg
protobuf
python

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2023 Frank Pursel <frank.pursel@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -19,14 +20,135 @@
(define-module (gnu packages java-graphics)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix modules)
#:use-module (guix utils)
#:use-module (guix build-system ant)
#:use-module (guix build utils)
#:use-module (gnu packages)
#:use-module (gnu packages bash)
#:use-module (gnu packages batik)
#:use-module (gnu packages java)
#:use-module (gnu packages java-xml)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (ice-9 match))
(define-public ditaa
(package
(name "ditaa")
(version "0.11.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/stathissideris/ditaa")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1y3g17wp1wvb05m56pp25avww2njpgh0gk0jsbsf25scj7hyyj26"))
(modules '((guix build utils)))
(snippet '(begin
(format #t "~%~a~%"
"Finding and removing embedded jars.")
(for-each (lambda (jarf)
(delete-file jarf)
(format #t "Deleted: ~a~%" jarf))
(find-files "." "\\.jar$"))))))
(build-system ant-build-system)
(inputs (list bash-minimal))
(native-inputs (list
java-commons-cli
java-jericho-html
java-junit
java-libbatik
java-w3c-svg))
(arguments
`(#:build-target "release-all"
#:phases (modify-phases %standard-phases
;; Ant's buildfile and build tree need to be modified
;; to provide access to the guix builds of the
;; batik and the java-commons-cli
;; jar files. Also some of the source requires java7.
(add-before 'build 'build-prep
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((batik-jar
(search-input-file
inputs
"share/java/batik.jar"))
(commons-cli-jar
(search-input-file
inputs
"lib/m2/commons-cli/commons-cli/1.4/commons-cli-1.4.jar")))
(mkdir-p "lib")
(copy-file batik-jar "./lib/batik.jar")
(copy-file commons-cli-jar "./lib/commons-cli.jar"))
(with-directory-excursion "build"
(substitute* "release.xml"
(("source=\"1.6\"")
"source=\"7\"")
(("<file name=\"commons-cli-1.2.jar\"/>")
(string-append "<file name=\"commons-cli.jar\"/>"
"\n" "<file name=\"batik.jar\"/>"))))))
(replace 'build
(lambda* _
(setenv "ANT_OPTS"
(string-append "-Dversion.string="
,version))
(with-directory-excursion "build"
(invoke "ant" "-f" "release.xml" "release-jar"))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(if tests?
(begin
(setenv "ANT_OPTS"
(string-append "-Dversion.string="
,version))
(mkdir-p "tests/testlib")
(with-directory-excursion "build"
(invoke "ant" "-f" "release.xml"
"generate-test-images")
(invoke "ant" "test"))) #f)))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib"))
(bin (string-append out "/bin"))
(bash (search-input-file inputs "bin/bash"))
(java (search-input-file inputs "bin/java"))
(jre (search-input-directory inputs "jre"))
(ditaa (string-append out "/bin/ditaa"))
(jar-name (string-append ,name
,version ".jar")))
(with-directory-excursion "releases"
(install-file jar-name lib))
(mkdir-p bin)
(with-output-to-file ditaa
(lambda _
(format #t
"#!~a~%JAVA_HOME=~a ~a -jar ~a/~a $@~%"
bash
jre
java
lib
jar-name)))
(chmod ditaa #o755))))
(add-after 'install 'install-docs
(lambda* (#:key outputs #:allow-other-keys)
(let ((doc (string-append (assoc-ref outputs "out")
"/share/doc/")))
(for-each (lambda (filen)
(install-file filen doc))
(find-files "." ".*README\\.md"))))))))
(home-page "https://github.com/stathissideris/ditaa")
(synopsis "Create graphics from ascii art")
(description
"ditaa is a small command-line utility that converts diagrams drawn using
ascii art drawings that contain characters that resemble lines like @samp{|}
@samp{/} @samp{-}), into proper bitmap graphics.")
(license license:lgpl3)))
(define-public java-piccolo2d-core
(package
(name "java-piccolo2d-core")

View File

@ -6,6 +6,7 @@
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 Léo Le Bouter <lle-bout@zaclys.net>
;;; Copyright © 2022 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2023 Frank Pursel <frank.pursel@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -32,11 +33,62 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix bzr-download)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system ant)
#:use-module (guix utils))
(define-public java-jericho-html
(package
(name "java-jericho-html")
(version "3.4")
(source (origin
(method bzr-fetch)
(uri (bzr-reference (url (string-append
"http://jerichohtml.bzr.sourceforge.net/"
"bzr/jerichohtml"))
(revision (string-append "tag:" version))))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"1zsf4i33jn05pma4y1658d6avhw7x4c12ggs96szhc06b7bxs8j0"))
(modules '((guix build utils)))
(snippet '(begin
(format #t "~%~a~%" "Removing sourced jar files.")
(for-each (lambda (jarf)
(delete-file jarf)
(format #t "Deleted: ~a~%" jarf))
(find-files "." "\\.jar$"))))))
(build-system ant-build-system)
(arguments
`(#:jar-name (string-append ,name ".jar")
#:phases (modify-phases %standard-phases
(add-before 'build 'add-ant-env-options
(lambda* _
(setenv "ANT_OPTS" "-Dfile.encoding=iso-8859-1")
(let ((match-str (string-append "jerichohtml-"
,version)))
(substitute* "build.xml"
((match-str)
"")))))
(add-after 'build 'check-prep
(lambda* (#:key source #:allow-other-keys)
(mkdir-p "src/test/java"))))))
(native-inputs (list
java-commons-logging-minimal
java-junit
java-log4j-api
java-slf4j-api))
(home-page "http://jericho.htmlparser.net/docs/index.html")
(synopsis "Java HTML Parser library")
(description
"This Java library allowing analysis and manipulation of
parts of an HTML document, including server-side tags, while
reproducing verbatim any unrecognised or invalid HTML. It also
provides high-level HTML form manipulation functions.")
(license (list license:lgpl2.1+ license:asl2.0 license:epl1.0))))
(define-public java-simple-xml
(package
(name "java-simple-xml")

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021, 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
@ -603,7 +603,7 @@ rendering library.")
(define-public julia-gr-jll
(package
(name "julia-gr-jll")
(version "0.58.1+0")
(version "0.69.1+0")
(source
(origin
(method git-fetch)
@ -612,7 +612,7 @@ rendering library.")
(commit (string-append "GR-v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "16m22n0wh86v3lh0im2pc9bg381djbmqji5hjx42j6aaz634gqiq"))))
(base32 "1zpa35j9f6288sa9md28g0bqkdhwx0j0dmsyy3kc0zxjlz188a94"))))
(build-system julia-build-system)
(arguments
'(#:tests? #f ; no runtests

View File

@ -2626,7 +2626,7 @@ users; instead, you should use one of the packages that builds on
(define-public julia-gr
(package
(name "julia-gr")
(version "0.58.1")
(version "0.69.5")
(source
(origin
(method git-fetch)
@ -2635,7 +2635,7 @@ users; instead, you should use one of the packages that builds on
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "18zxa1w2wmrf44c5l10qbh99zjdp7h94gxlymh47cf5kj5fc4xmx"))))
(base32 "0i4vb5y1m47x1ispr52h5a5gs544205vpiz4cypd4pr242f96dcb"))))
(build-system julia-build-system)
(propagated-inputs
(list julia-gr-jll))
@ -4860,7 +4860,7 @@ everything from run time algorithm choice to code generation at compile time.")
(define-public julia-prettytables
(package
(name "julia-prettytables")
(version "1.0.1")
(version "2.1.2")
(source
(origin
(method git-fetch)
@ -4869,20 +4869,28 @@ everything from run time algorithm choice to code generation at compile time.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1d1sd87kkwbar3l608h0adzws42cwdrmp1idxx7an6mfqcsdrijw"))))
(base32 "029niwxgql9rcyx0rxcyhmwkzxciccji4hb59g6752ixam65wxkh"))))
(build-system julia-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'link-depot 'skip-color-tests
(add-after 'link-depot 'skip-tests-manipulating-terminal-display
(lambda _
(substitute* "test/text_backend.jl"
((".*colors\\.jl.*") "")))))))
((".*colors\\.jl.*") "")
((".*custom_cells\\.jl.*") ""))
(substitute* "test/general.jl"
((".*string\\.jl.*") ""))
(substitute* "test/text_backend/issues.jl"
(("testset.*161.*begin" all)
(string-append all " return"))))))))
(propagated-inputs
(list julia-crayons
julia-formatting
julia-offsetarrays
julia-reexport
julia-stringmanipulation
julia-tables))
(home-page "https://github.com/ronisbr/PrettyTables.jl")
(synopsis "Print data in formatted tables")
@ -5168,7 +5176,7 @@ embedded in a real vector space.")
(define-public julia-recipesbase
(package
(name "julia-recipesbase")
(version "1.1.1")
(version "1.2.1")
(source
(origin
(method git-fetch)
@ -5177,7 +5185,7 @@ embedded in a real vector space.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1b6m5rz6wprj30rwvlxz4r1jv5gl0ay0f52kfmy2w7lqly7zhap5"))))
(base32 "0icyn56b17bqlxqkc3h44ndn0f1g2g9wy2kjvl8b6pfqni4ybazm"))))
(build-system julia-build-system)
(home-page "https://github.com/JuliaPlots/RecipesBase.jl")
(synopsis "Define transformation recipes on user types")
@ -5192,7 +5200,7 @@ more complex visualizations.")
(define-public julia-recipespipeline
(package
(name "julia-recipespipeline")
(version "0.3.4")
(version "0.6.6")
(source
(origin
(method git-fetch)
@ -5201,7 +5209,7 @@ more complex visualizations.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0zq4bzxvq36zr0va6iip3x97mgq5b4fwza8avszx1ryfqm3lg1f7"))))
(base32 "1lsjnlkmhcxngrcszfwmzb7hqg8bczi00mn7kbmwp5ffqb7fh0vv"))))
(build-system julia-build-system)
(arguments
(list #:tests? #f)) ; Cycle with Plots.jl.
@ -6030,6 +6038,26 @@ texts between multiple character encodings. It is currently based on the
@code{iconv} interface, and supports all major platforms using GNU libiconv.")
(license license:expat)))
(define-public julia-stringmanipulation
(package
(name "julia-stringmanipulation")
(version "0.3.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ronisbr/StringManipulation.jl")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "15ss8hkjyjs2x66j1krrrxaa1hdpwz0ygs3cg3bdpm336k7621q8"))))
(build-system julia-build-system)
(home-page "https://github.com/ronisbr/StringManipulation.jl")
(synopsis "Functions to manipulate strings with ANSI escape sequences")
(description "This package provides several functions to manipulate strings
with ANSI escape sequences.")
(license license:expat)))
(define-public julia-structarrays
(package
(name "julia-structarrays")

View File

@ -2818,7 +2818,8 @@ consumption.")
"|kiowidgets-kdirmodeltest"
"|kiowidgets-kurifiltertest-colon-separator"
"|kiofilewidgets-kfilewidgettest"
"|kiowidgets-kurifiltertest-space-separator)")))))
"|kiowidgets-kurifiltertest-space-separator"
"|kioworker-httpheaderdispositiontest)")))))
(add-after 'install 'add-symlinks
;; Some package(s) (e.g. bluedevil) refer to these service types by
;; the wrong name. I would prefer to patch those packages, but I

View File

@ -339,6 +339,7 @@ annotating features.")
kfilemetadata
kguiaddons
kiconthemes
kirigami
knewstuff
knotifications
knotifyconfig

View File

@ -13,6 +13,7 @@
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2022 Jacob Hrbek <kreyren@rixotstudio.cz>
;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -101,11 +102,14 @@ devices on various operating systems.")
(build-system gnu-build-system)
(arguments
(list #:configure-flags
#~(list "--disable-static")))
(native-inputs
(list autoconf automake libtool pkg-config))
(inputs
(list libusb))
#~(list "--disable-static"
;; Provide the absolute file name of libusb-1.0.so so
;; dlopen works.
(string-append "LIBUSB_1_0_SONAME="
#$(this-package-input "libusb")
"/lib/libusb-1.0.so"))))
(native-inputs (list autoconf automake libtool pkg-config))
(inputs (list libusb))
(home-page "https://libusb.info")
(synopsis "Compatibility shim for libusb")
(description
@ -561,14 +565,14 @@ over USB.")
(define-public libmtp
(package
(name "libmtp")
(version "1.1.20")
(version "1.1.21")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/libmtp/libmtp/" version
"/libmtp-" version ".tar.gz"))
(sha256
(base32
"1l2npk3b5v9cxhs2g01w3b13mxvin881cr085r0cyi2p5yn1s6f9"))))
"19vj10la88lrhdfdcpkad7aiii01q59y5wj700dwjj4gijmsbzy4"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config))
@ -653,6 +657,42 @@ HID-Class devices.")
license:bsd-3
(license:non-copyleft "file://LICENSE-orig.txt")))))
(define-public python-hid
(package
(name "python-hid")
(version "1.0.5")
(source (origin
(method url-fetch)
(uri (pypi-uri "hid" version))
(sha256
(base32
"1s5hvfbmnlmifswr5514f4xxn5rcd429bdcdqzgwkdxrg9zlx58y"))))
(build-system pyproject-build-system)
(arguments
;; No tests present on the source tree, without this compilation fails
;; because it "requires" the python-nose package, but it is not really
;; necessary.
(list #:tests? #f
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'add-extra-library-paths
(lambda _
(let ((libhidapi-hidraw.so
#$(file-append hidapi "/lib/libhidapi-hidraw.so"))
(libhidapi-libusb.so
#$(file-append hidapi "/lib/libhidapi-libusb.so")))
(substitute* "hid/__init__.py"
(("library_paths = \\(.*$" all)
(string-append
all
" '" libhidapi-hidraw.so "',\n"
" '" libhidapi-libusb.so "',\n")))))))))
(inputs (list hidapi))
(home-page "https://github.com/apmorton/pyhidapi")
(synopsis "Python @code{ctypes} bindings for HIDAPI library")
(description "Python @code{ctypes} bindings for HIDAPI library.")
(license license:expat)))
(define-public python-hidapi
(package
(name "python-hidapi")

View File

@ -74,6 +74,7 @@
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023 dan <i@dan.games>
;;;
;;; This file is part of GNU Guix.
;;;
@ -140,6 +141,7 @@
#:use-module (gnu packages llvm)
#:use-module (gnu packages lsof)
#:use-module (gnu packages lua)
#:use-module (gnu packages m4)
#:use-module (gnu packages man)
#:use-module (gnu packages maths)
#:use-module (gnu packages multiprecision)
@ -488,7 +490,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "stable" kernels. That is, the most recently released major
;; versions that are still supported upstream.
(define-public linux-libre-6.4-version "6.4.11")
(define-public linux-libre-6.4-version "6.4.14")
(define-public linux-libre-6.4-gnu-revision "gnu")
(define deblob-scripts-6.4
(linux-libre-deblob-scripts
@ -498,7 +500,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1rwm09anyn4py1g877f9vh6ya86y2hfvlqx51bpa53dci5k0b0ds")))
(define-public linux-libre-6.4-pristine-source
(let ((version linux-libre-6.4-version)
(hash (base32 "0609lhgc42j9id2vvdpv8n7djabp46p2mridf9s0sg3x16snhssl")))
(hash (base32 "1rjh0jrn5qvxwzmyg478n08vckkld8r52nkc102ppqvsfhiy7skm")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.4)))
@ -506,7 +508,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The "longterm" kernels — the older releases with long-term upstream support.
;; Here are the support timelines:
;; <https://www.kernel.org/category/releases.html>
(define-public linux-libre-6.1-version "6.1.46")
(define-public linux-libre-6.1-version "6.1.51")
(define-public linux-libre-6.1-gnu-revision "gnu")
(define deblob-scripts-6.1
(linux-libre-deblob-scripts
@ -516,12 +518,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1c73516nbhnz0cxjz38b5794dxygb8sznv9idiibw7ablmjbhd11")))
(define-public linux-libre-6.1-pristine-source
(let ((version linux-libre-6.1-version)
(hash (base32 "15m228bllks2p8gpsmvplx08yxzp7bij9fnmnafqszylrk7ppxpm")))
(hash (base32 "0fqhmb6v28rssd44z7jw57mwvvskpl4kabjylck0pg54irnl9c2q")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.1)))
(define-public linux-libre-5.15-version "5.15.127")
(define-public linux-libre-5.15-version "5.15.130")
(define-public linux-libre-5.15-gnu-revision "gnu")
(define deblob-scripts-5.15
(linux-libre-deblob-scripts
@ -531,27 +533,27 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1c3lm0j401lv2lk39dmr4mlf5ic173snm7cc0cckl6czyvxr5ysy")))
(define-public linux-libre-5.15-pristine-source
(let ((version linux-libre-5.15-version)
(hash (base32 "09lgj9hs1cjxg84hb7avras4rlsx18igr69mx433l9hv6issbl5d")))
(hash (base32 "0qix62jsn3z9yccakac7fvqnip19zi05qn0w5wkgb7rj0x0lwimb")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.15)))
(define-public linux-libre-5.10-version "5.10.191")
(define-public linux-libre-5.10-version "5.10.194")
(define-public linux-libre-5.10-gnu-revision "gnu1")
(define deblob-scripts-5.10
(linux-libre-deblob-scripts
linux-libre-5.10-version
linux-libre-5.10-gnu-revision
(base32 "0hirc87hgyy9qhgiipp5iahmdk4wwhiml6rp1naphz9d1vw3kb35")
(base32 "1b33rkn32b923025iiz4xzxiy8y5ii9j5qk4021mg575890rl4ch")
(base32 "0nnp46mn32yk436swd2qh34igmzinfgkwvbzp3lqyy45f06hbc2j")))
(define-public linux-libre-5.10-pristine-source
(let ((version linux-libre-5.10-version)
(hash (base32 "1hk2x5dgvfq9v6161v25wz5qpzgyvqbx34xbm7ww8z4ish76cm6b")))
(hash (base32 "15fr7krhpmqz0xqjg78m2xvfllbni3xh8xyhxh9ni31ppd3mw394")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.10)))
(define-public linux-libre-5.4-version "5.4.254")
(define-public linux-libre-5.4-version "5.4.256")
(define-public linux-libre-5.4-gnu-revision "gnu1")
(define deblob-scripts-5.4
(linux-libre-deblob-scripts
@ -561,12 +563,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0sw67b2pk3lng4y67diqqnhxaggnp3nbkx8dxc5fs27rinfxr4m1")))
(define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version)
(hash (base32 "1iyrm2xql15ifhy2b939ywrrc44yd41b79sjjim4vqxmc6lqsq2i")))
(hash (base32 "0fim5q9xakwnjfg48bpsic9r2r8dvrjlalqqkm9vh1rml9mhi967")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.4)))
(define-public linux-libre-4.19-version "4.19.292")
(define-public linux-libre-4.19-version "4.19.294")
(define-public linux-libre-4.19-gnu-revision "gnu1")
(define deblob-scripts-4.19
(linux-libre-deblob-scripts
@ -576,12 +578,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1425mhkfxn18vxn05bb4h3li7x1jl7l1hf1zi8xhnqv3wa31h9wl")))
(define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version)
(hash (base32 "0dr12v4jqmzxcqdghqqjny5zp3g4dx9lxqrl9d4fxz23s79ji5rl")))
(hash (base32 "03x0xsb8a369zdr81hg6xdl5n5v48k6iwnhj6r29725777lvvbfc")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.19)))
(define-public linux-libre-4.14-version "4.14.323")
(define-public linux-libre-4.14-version "4.14.325")
(define-public linux-libre-4.14-gnu-revision "gnu1")
(define deblob-scripts-4.14
(linux-libre-deblob-scripts
@ -591,7 +593,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1faagsj4i31z2bp83hflx3q9vrddjnn37a3ah2b47iaplva7z1nd")))
(define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version)
(hash (base32 "1g2fh0mn1sv0kq2hh3pynmx2fjai7hdwhf4fnaspl7j5n88902kg")))
(hash (base32 "117p1mdha57f6d3kdwac9jrbmib7g77q4xhir8ghl6fmrs1f2sav")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.14)))
@ -1517,7 +1519,7 @@ and the notification, WiFi, and Bluetooth LED.")
(define-public tuxedo-keyboard
(package
(name "tuxedo-keyboard")
(version "3.2.1")
(version "3.2.10")
(source
(origin
(method git-fetch)
@ -1526,7 +1528,7 @@ and the notification, WiFi, and Bluetooth LED.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "13fncirqcci46zxmsrawsxpazip5k46i849dwkhkqlg0mg4vxxw5"))))
(base32 "1kbspr1vs6jpfsb3c4hbw2d8y06v2a3m4c27rhggkfksf4x82gip"))))
(build-system linux-module-build-system)
(arguments
(list #:tests? #f)) ; no test suite
@ -7255,48 +7257,50 @@ under OpenGL graphics workloads.")
(license license:gpl3)))
(define-public efivar
(package
(name "efivar")
(version "38")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/rhboot/" name
"/releases/download/" version "/" name
"-" version ".tar.bz2"))
(sha256
(base32
"0jaka7b4lccswjqiv4liclkj6w78gildg7vd6dnw3wf595pfs67h"))
(patches
(search-patches "efivar-211.patch"))))
(build-system gnu-build-system)
(arguments
(list
;; Tests require a UEFI system and is not detected in the chroot.
#:tests? #f
#:make-flags
#~(list (string-append "prefix=" #$output)
(string-append "libdir=" #$output "/lib")
(string-append "CC=" #$(cc-for-target))
(string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib"))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'build-deterministically
(lambda _
(substitute* "src/include/defaults.mk"
;; Don't use -march=native.
(("-march=native")
""))))
(delete 'configure))))
(native-inputs
(list mandoc pkg-config))
(inputs
(list popt))
(home-page "https://github.com/rhboot/efivar")
(synopsis "Tool and library to manipulate EFI variables")
(description "This package provides a library and a command line
;; XXX: 15622b7e5761f3dde3f0e42081380b2b41639a48 fixes compilation on i686.
;; ca48d3964d26f5e3b38d73655f19b1836b16bd2d fixes cross-compilation.
(let ((commit "ca48d3964d26f5e3b38d73655f19b1836b16bd2d")
(revision "0"))
(package
(name "efivar")
(version (git-version "38" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/rhboot/efivar")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0zsab3hcv1v53cxwkvsk09ifnwhs48a6xa3kxlwvs87yxswspvi8"))))
(build-system gnu-build-system)
(arguments
(list
;; Tests require a UEFI system and is not detected in the chroot.
#:tests? #f
#:make-flags #~(list (string-append "prefix="
#$output)
(string-append "libdir="
#$output "/lib")
(string-append "CC="
#$(cc-for-target)) "HOSTCC=gcc"
(string-append "LDFLAGS=-Wl,-rpath="
#$output "/lib"))
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'build-deterministically
(lambda _
(substitute* "src/include/defaults.mk"
;; Don't use -march=native.
(("-march=native")
""))))
(delete 'configure))))
(native-inputs (list mandoc pkg-config))
(inputs (list popt))
(home-page "https://github.com/rhboot/efivar")
(synopsis "Tool and library to manipulate EFI variables")
(description "This package provides a library and a command line
interface to the variable facility of UEFI boot firmware.")
(license license:lgpl2.1+)))
(license license:lgpl2.1+))))
(define-public efibootmgr
(package
@ -10360,3 +10364,39 @@ error detection and correction (EDAC).")
against the several transient execution CVEs that were published since early
2018, and gives guidance as to how to mitigate them.")
(license license:gpl3)))
(define-public csmith
(package
(name "csmith")
(version "2.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/csmith-project/csmith")
(commit (string-append "csmith-" version))))
(sha256
(base32
"0nhrsnv6cny14xz68qb1h30fbwc05adkisk51p3x63mydm60ddl3"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake libtool m4 perl))
(arguments
(list
#:tests? #f ;no test suite
;; Do not install headers under 'include/csmith-VERSION' but in
;; 'include/csmith'.
#:phases
`(modify-phases %standard-phases
(add-after 'unpack 'patch-includedir
(lambda _
(substitute* "runtime/Makefile.am"
(("\\$\\(includedir\\)/\\$\\(PACKAGE\\)-\\$\\(VERSION\\)")
"$(includedir)/$(PACKAGE)"))))
(add-before 'bootstrap 'force-bootstrap
(lambda _
(delete-file "configure"))))))
(home-page "https://github.com/csmith-project/csmith")
(synopsis "Random generator of C programs")
(description "The primary purpose of Csmith is to find compiler bugs with
random programs using differential testing.")
(license license:bsd-4)))

View File

@ -5646,8 +5646,8 @@ RFC 1321 by R. Rivest, published April 1992.")
(list ecl-flexi-streams))))
(define-public sbcl-cl+ssl
(let ((commit "1e2ffc9511df4b1c25c23e0313a642a610dae352")
(revision "5"))
(let ((commit "17d5cdd65405f1d26e26f3e875e70027d0c8eedb")
(revision "6"))
(package
(name "sbcl-cl+ssl")
(version (git-version "0.0.0" revision commit))
@ -5659,7 +5659,7 @@ RFC 1321 by R. Rivest, published April 1992.")
(commit commit)))
(file-name (git-file-name "cl+ssl" version))
(sha256
(base32 "0iwdh416ggzs2ig6i0ivrwfy21w7m39w464pc7j3p9pvq09837fy"))))
(base32 "0v0kx2m5355jkdshmj0z923c5rlvdl2n11rb3hjbv3kssdfsbs0s"))))
(build-system asdf-build-system/sbcl)
(arguments
'(#:phases
@ -7982,51 +7982,54 @@ formats.")
(sbcl-package->ecl-package sbcl-swap-bytes))
(define-public sbcl-iolib
(package
(name "sbcl-iolib")
(version "0.8.4")
(home-page "https://github.com/sionescu/iolib")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1f43jqqqwp9n7xksqxw91myapsdbc2dxck6nd6flakbnp9haylyq"))))
(build-system asdf-build-system/sbcl)
(inputs
`(("alexandria" ,sbcl-alexandria)
("bordeaux-threads" ,sbcl-bordeaux-threads)
("cffi" ,sbcl-cffi)
("idna" ,sbcl-idna)
("libfixposix" ,libfixposix)
("split-sequence" ,sbcl-split-sequence)
("swap-bytes" ,sbcl-swap-bytes)))
(arguments
'(#:asd-systems '("iolib"
"iolib/os")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/syscalls/ffi-functions-unix.lisp"
(("\\(:default \"libfixposix\"\\)")
(string-append
"(:default \""
(assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
;; Socket tests need Internet access, disable them.
(substitute* "iolib.asd"
(("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
"")))))))
(synopsis "Common Lisp I/O library")
(description "IOlib is to be a better and more modern I/O library than
(let ((commit "010b7a6bdd2e918ebf2ec85edd3853179f01cb30")
(revision "0"))
(package
(name "sbcl-iolib")
(version (git-version "0.8.4" revision commit))
(home-page "https://github.com/sionescu/iolib")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit commit)))
(file-name (git-file-name "cl-iolib" version))
(sha256
(base32 "1qqy2yhprkmdn2vmi69akf818q3n99gv8cacv6456af0wjm5p1ga"))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list pkg-config sbcl-fiveam))
(inputs
(list libfixposix
sbcl-alexandria
sbcl-bordeaux-threads
sbcl-cffi
sbcl-idna
sbcl-split-sequence
sbcl-swap-bytes))
(arguments
'(#:asd-systems '("iolib"
"iolib/os")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/syscalls/ffi-functions-unix.lisp"
(("\\(:default \"libfixposix\"\\)")
(string-append
"(:default \""
(assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
;; Socket tests need Internet access, disable them.
(substitute* "iolib.asd"
(("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
"")))))))
(synopsis "Common Lisp I/O library")
(description "IOlib is to be a better and more modern I/O library than
the standard Common Lisp library. It contains a socket library, a DNS
resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
and @code{kqueue(2)}), a pathname library and file-system utilities.")
(license license:expat)))
(license license:expat))))
(define-public cl-iolib
(let ((parent (sbcl-package->cl-source-package sbcl-iolib)))
@ -9565,8 +9568,8 @@ function.")
(sbcl-package->cl-source-package sbcl-specialization-store))
(define-public sbcl-cl-gobject-introspection
(let ((commit "c4fef07d01cec7c830ce84ef150ed8e4da5959c4")
(revision "2"))
(let ((commit "83beec4492948b52aae4d4152200de5d5c7ac3e9")
(revision "3"))
(package
(name "sbcl-cl-gobject-introspection")
(version (git-version "0.3" revision commit))
@ -9579,7 +9582,7 @@ function.")
(commit commit)))
(file-name (git-file-name "cl-gobject-introspection" version))
(sha256
(base32 "18n4wg93sf6cjmpcpr47bg2rd8mbm9ml9lykmjsxgvsf3nwr5vnw"))))
(base32 "0xwmj4b3whz12i474g54krp1v6h0fpvsx8lgwpk6rkli9xc71wc3"))))
(build-system asdf-build-system/sbcl)
(inputs
(list glib
@ -26600,7 +26603,7 @@ instead of #'FOO.
(define-public sbcl-njson
(package
(name "sbcl-njson")
(version "1.1.0")
(version "1.1.1")
(source (origin
(method git-fetch)
(uri (git-reference
@ -26609,7 +26612,7 @@ instead of #'FOO.
(file-name (git-file-name "cl-njson" version))
(sha256
(base32
"02m9l77am2rlkg83dyp3jvb76ifw1y84xh3wpz6cx7h2wkxkjnl5"))))
"0zdf6mlbpc2j95qm000ljf642af18sfz45yxh6rnxrbf8m4laxxa"))))
(build-system asdf-build-system/sbcl)
(inputs (list sbcl-cl-json sbcl-jzon))
(native-inputs (list sbcl-lisp-unit2))
@ -26622,23 +26625,25 @@ instead of #'FOO.
and process JSON data, in the minimum keystrokes/minutes possible.
NJSON is parser-independent, with existing Common Lisp JSON parsers being
loadable as additional system. @code{jzon} and @code{cl-json} backends are
included by default, though. Conveniences that NJSON provides are:
loadable as additional system. @code{jzon} is included by default, though.
Conveniences that NJSON provides are:
@itemize
@item @code{encode} and @code{decode} as single entry points for JSON reading
and writing, be it from streams/string/files, or from those.
@item @code{jget}, @code{jrem}, @code{jtruep}, and their aliases to
access/delete the decoded objects' properties and check their truth value
without the need to worry about the low-level details of how these values are
decoded.
@item @code{jget}, @code{jcopy}, @code{jkeys}, and their aliases to
manipulate the decoded objects' properties without the need to worry
about the low-level details of how these values are decoded.
@item @code{jif}, @code{jwhen}, @code{jor}, @code{jand}, and other macros
mimicking Lisp ones, while using truth values of JSON-decoded data.
@item @code{jbind} and @code{jmatch} macros to destructure and
validate parsed JSON.
@item @code{njson/aliases} package to nickname to @code{j} for all the
forms conveniently accessible as @code{j:rem}, @code{j:get},
forms conveniently accessible as @code{j:get}, @code{j:copy},
@code{j:if} etc.
@end itemize\n")

View File

@ -220,6 +220,7 @@ output in multiple windows in a terminal.")
(url "https://github.com/gabime/spdlog")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(patches (search-patches "spdlog-fix-tests.patch"))
(sha256
(base32 "0i3a1cqrg1sz0w50g7zz9x73rf838igqri12q8ijh4rzpq0qq3ch"))))
(build-system cmake-build-system)

View File

@ -55,12 +55,14 @@
#:use-module (gnu packages)
#:use-module (gnu packages adns)
#:use-module (gnu packages algebra)
#:use-module (gnu packages assembly)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages boost)
#:use-module (gnu packages bdw-gc)
#:use-module (gnu packages c)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages cmake)
@ -89,6 +91,7 @@
#:use-module (gnu packages ninja)
#:use-module (gnu packages ocaml)
#:use-module (gnu packages onc-rpc)
#:use-module (gnu packages opencl)
#:use-module (gnu packages parallel)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
@ -100,6 +103,7 @@
#:use-module (gnu packages python-science)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages regex)
#:use-module (gnu packages rpc)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
@ -108,6 +112,7 @@
#:use-module (gnu packages swig)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages vulkan)
#:use-module (gnu packages video)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
@ -115,6 +120,37 @@
#:use-module (gnu packages xorg)
#:use-module (ice-9 match))
(define-public fasttext
(package
(name "fasttext")
(version "0.9.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/facebookresearch/fastText")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "07cz2ghfq6amcljaxpdr5chbd64ph513y8zqmibfx2xwfp74xkhn"))))
(build-system cmake-build-system)
;; Tests require downloading of test data.
(arguments (list #:tests? #false))
(home-page "https://github.com/facebookresearch/fastText")
(synopsis "Library for fast text representation and classification")
(description "fastText is a library for efficient learning of word
representations and sentence classification.")
(license license:expat)))
(define-public python-fasttext
(package
(inherit fasttext)
(name "python-fasttext")
(build-system pyproject-build-system)
(propagated-inputs (list python-numpy python-scipy))
(inputs (list fasttext))
(native-inputs (list pybind11))))
(define-public fann
;; The last release is >100 commits behind, so we package from git.
(let ((commit "d71d54788bee56ba4cf7522801270152da5209d7"))
@ -1194,7 +1230,7 @@ I/O.")
(define-public gemmlowp
(let ((commit "f9959600daa42992baace8a49544a00a743ce1b6")
(let ((commit "08e4bb339e34017a0835269d4a37c4ea04d15a69")
(version "0.1")
(revision "1"))
(package
@ -1207,13 +1243,14 @@ I/O.")
(file-name (git-file-name name version))
(sha256
(base32
"1hzfhlhzcb827aza6a7drydc67dw5fm3qfqilb9ibskan8dsf0c6"))))
"1q8f3w5slxd8fbn31hpm00y6wyp7gm71rzr27cmcff4b3px4ca6k"))))
(arguments
`(#:configure-flags
(list ,@(match (%current-system)
((or "x86_64-linux" "i686-linux")
'("-DCMAKE_CXX_FLAGS=-msse2"))
(_ '())))
(_ '()))
"-DBUILD_SHARED_LIBS=ON")
#:phases
(modify-phases %standard-phases
;; This directory contains the CMakeLists.txt.
@ -1993,13 +2030,13 @@ discrete, and conditional dimensions.")
(define-public python-deepxde
(package
(name "python-deepxde")
(version "1.9.2")
(version "1.9.3")
(source (origin
(method url-fetch)
(uri (pypi-uri "DeepXDE" version))
(sha256
(base32
"07bz3d7d698l0fhznw5l8p16b22d4ly7xq99vrgv48c722qr2r5b"))))
"1zw2gqssc0s3maf4gdjckxmzx1d3036hbp1iir26kd08hxj93vzs"))))
(build-system pyproject-build-system)
(arguments
(list #:tests? #f ; there are no tests
@ -2935,7 +2972,7 @@ advanced research.")
(define-public tensorflow-lite
(package
(name "tensorflow-lite")
(version "2.5.0")
(version "2.12.1")
(source
(origin
(method git-fetch)
@ -2945,97 +2982,141 @@ advanced research.")
(file-name (git-file-name name version))
(sha256
(base32
"1jdw2i1rq06zqd6aabh7bbm0avsg4pygnfmd7gviv0blhih9054l"))))
"0jkgljdagdqllnxygl35r5bh3f9qmbczymfj357gm9krh59g2kmd"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #false ; no "check" target
#:build-type "Release"
#:configure-flags
(list
"-DTFLITE_ENABLE_GPU=OFF"
"-DTFLITE_ENABLE_RUY=OFF"
(list
#:tests? #false ;tests are not building now
#:build-type "Release"
#:modules '((ice-9 match)
(guix build utils)
(guix build cmake-build-system))
#:configure-flags
#~(list
;; "-DTFLITE_KERNEL_TEST=ON" ; TODO: build tests
;; so cmake can be used to find this from other packages
"-DTFLITE_ENABLE_INSTALL=ON"
;; TODO: The build system attempts to build xnnpack from source. We
;; would like to use our xnnpack package here, but this requires more
;; work.
"-DTFLITE_ENABLE_XNNPACK=OFF"
;; Use Guix's own packages as dependencies.
"-DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON"
;; Pretend we've already fetched abseil. We won't actually build it
;; but use the existing package.
"-Dabseil-cpp_POPULATED=TRUE"
"-DTFLITE_ENABLE_GPU=ON"
"-DTFLITE_ENABLE_RUY=ON"
;; Don't fetch the sources. We have already built flatbuffers.
"-Dflatbuffers_POPULATED=TRUE"
;; TODO: turn on Farmhash
;;"-DSYSTEM_FARMHASH=ON"
(string-append "-Dabsl_DIR=" #$(this-package-input "abseil-cpp")
"/lib/cmake/absl")
(string-append "-DEigen3_DIR=" #$(this-package-input "eigen")
"/share/eigen3/cmake")
(string-append "-DFlatBuffers_DIR="
#$(this-package-input "flatbuffers-shared")
"/lib/cmake/flatbuffers")
(string-append "-DNEON_2_SSE_DIR=" #$(this-package-input "neon2sse")
"/lib/cmake/NEON_2_SSE")
(string-append "-Dcpuinfo_DIR=" #$(this-package-input "cpuinfo")
"/share/cpuinfo")
(string-append "-Druy_DIR=" #$(this-package-input "ruy")
"/lib/cmake/ruy")
"-DFFT2D_SOURCE_DIR=/tmp/fft2d"
"-Dneon2sse_SOURCE_DIR=/tmp/neon2sse"
"-Dneon2sse_BINARY_DIR=/tmp/neon2sse-bin"
"-DFARMHASH_SOURCE_DIR=/tmp/farmhash"
"-Dgemmlowp_SOURCE_DIR=/tmp/gemmlowp"
(string-append "-DRUY_SOURCE_DIR="
(assoc-ref %build-inputs "ruy-src")))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _ (chdir "tensorflow/lite")))
(add-after 'chdir 'copy-sources
(lambda* (#:key inputs #:allow-other-keys)
;; Use external cmake finders instead of these stubs that won't
;; find anything but the bundled sources.
(delete-file "tools/cmake/modules/Findabsl.cmake")
(delete-file "tools/cmake/modules/Findeigen.cmake")
;; TODO: The build system attempts to build xnnpack from source. We
;; would like to use our xnnpack package here, but this requires more
;; work.
"-DTFLITE_ENABLE_XNNPACK=OFF"
(substitute* "CMakeLists.txt"
(("find_package\\(eigen REQUIRED")
"find_package(eigen REQUIRED NAMES Eigen3"))
(substitute* "tools/cmake/modules/Findflatbuffers.cmake"
(("get_target_property.*")
(format #false "set(FLATBUFFERS_INCLUDE_DIRS ~a/include)\n"
(assoc-ref inputs "flatbuffers"))))
;; Don't fetch the sources. We have these already
"-Degl_headers_POPULATED=TRUE"
"-Dfp16_headers_POPULATED=TRUE"
"-Dopencl_headers_POPULATED=TRUE"
"-Dopengl_headers_POPULATED=TRUE"
"-Dvulkan_headers_POPULATED=TRUE"
"-Dgoogletest_POPULATED=TRUE"
"-Dgoogle_benchmark_POPULATED=TRUE"
"-Dnsync_POPULATED=TRUE"
"-Dre2_POPULATED=TRUE"
;; Don't fetch source code; we already have everything we need.
(substitute* '("tools/cmake/modules/fft2d.cmake"
"tools/cmake/modules/ruy.cmake"
"tools/cmake/modules/farmhash.cmake"
"tools/cmake/modules/neon2sse.cmake"
"tools/cmake/modules/gemmlowp.cmake")
(("OverridableFetchContent_Populate.*") ""))
"-DFFT2D_SOURCE_DIR=/tmp/fft2d"
"-DFARMHASH_SOURCE_DIR=/tmp/farmhash"
"-Dgemmlowp_SOURCE_DIR=/tmp/gemmlowp")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _ (chdir "tensorflow/lite")))
(add-after 'chdir 'copy-sources
(lambda* (#:key inputs #:allow-other-keys)
;; TODO: properly use Guix's pthreaqdpool. We are not using
;; pthreadpool because we are not enabling xnnpack
(substitute* "CMakeLists.txt"
(("if\\(NOT DEFINED PTHREADPOOL_SOURCE_DIR\\)")
"if(false)"))
(substitute* "CMakeLists.txt"
(("if\\(NOT TARGET pthreadpool\\)")
"if(false)"))
(mkdir-p "/tmp/farmhash")
(with-directory-excursion "/tmp/farmhash"
(invoke "tar" "--strip-components=1"
"-xf" (assoc-ref inputs "farmhash-src")))
;; Don't fetch source code; we already have everything we need.
(substitute* '("tools/cmake/modules/fft2d.cmake"
"tools/cmake/modules/farmhash.cmake"
"tools/cmake/modules/gemmlowp.cmake")
(("OverridableFetchContent_Populate.*") ""))
(mkdir-p "/tmp/fft2d")
(with-directory-excursion "/tmp/fft2d"
(invoke "tar" "--strip-components=1"
"-xf" (assoc-ref inputs "fft2d-src")))
(mkdir-p "/tmp/farmhash")
(with-directory-excursion "/tmp/farmhash"
(invoke "tar" "--strip-components=1"
"-xf" (assoc-ref inputs "farmhash-src")))
(copy-recursively (assoc-ref inputs "neon2sse-src")
"/tmp/neon2sse/")
(copy-recursively (assoc-ref inputs "gemmlowp-src")
"/tmp/gemmlowp/")))
(add-after 'copy-sources 'prepare-shared-library-build
(lambda _ (chdir "c")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib"))
(headers (string-append out "/include/tensorflow/lite")))
(install-file "../build/libtensorflowlite_c.so" lib)
(with-directory-excursion ".."
(for-each
(lambda (file)
(let ((target-dir (string-append headers "/" (dirname file))))
(install-file file target-dir)))
(find-files "." "\\.h$")))))))))
(mkdir-p "/tmp/fft2d")
(with-directory-excursion "/tmp/fft2d"
(invoke "tar" "--strip-components=1"
"-xf" (assoc-ref inputs "fft2d-src")))
(copy-recursively (assoc-ref inputs "gemmlowp-src")
"/tmp/gemmlowp/")))
(add-after 'build 'build-shared-library
(lambda* (#:key configure-flags #:allow-other-keys)
(mkdir-p "c")
(with-directory-excursion "c"
(apply invoke "cmake" (append configure-flags (list "../../lite/c")))
(invoke "cmake" "--build" "." "-j" (number->string
(parallel-job-count))))))
(add-after 'build-shared-library 'build-benchmark-model
(lambda _
(invoke "cmake" "--build" "." "--target" "benchmark_model"
"-j" (number->string (parallel-job-count)))))
(add-after 'install 'install-extra
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib"))
(bin (string-append out "/bin")))
(install-file "../build/c/libtensorflowlite_c.so" lib)
(install-file "../build/tools/benchmark/benchmark_model" bin))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "ctest" "-L" "plain")))))))
(inputs
`(("abseil-cpp" ,abseil-cpp-20200923.3)
("eigen" ,eigen-for-tensorflow-lite)
("flatbuffers" ,flatbuffers)
("python" ,python)))
("cpuinfo" ,cpuinfo)
("eigen" ,eigen)
("fp16" ,fp16)
("flatbuffers-shared" ,flatbuffers-next-shared)
;;("gemmlowp" ,gemmlowp) ; TODO
("mesa-headers" ,mesa-headers)
("neon2sse" ,neon2sse)
("nsync" ,nsync)
("opencl-clhpp" ,opencl-clhpp)
("opencl-headers" ,opencl-headers)
("opencl-icd-loader" ,opencl-icd-loader)
("pthreadpool" ,pthreadpool)
("python" ,python)
("ruy" ,ruy)
("re2" ,re2)
;;("xnnpack" ,xnnpack) ; TODO: use Guix's copy of xnnpack
("vulkan-headers" ,vulkan-headers)))
(native-inputs
`(("pkg-config" ,pkg-config)
("googletest" ,googletest)
("gemmlowp-src"
;; The commit hash is taken from
;; "tensorflow/lite/tools/cmake/modules/gemmlowp.cmake".
@ -3049,17 +3130,6 @@ advanced research.")
(sha256
(base32
"1sbp8kmr2azwlvfbzryy1frxi99jhsh1nc93bdbxdf8zdgpv0kxl")))))
("neon2sse-src"
,(let ((commit "a1652fd5253afbf3e39357b012974f93511f6108"))
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/intel/ARM_NEON_2_x86_SSE")
(commit commit)))
(file-name (git-file-name "neon2sse" (string-take commit 8)))
(sha256
(base32
"1q8gkxag9wlnwdwad2pclsrkwzrdjy94hyrkayrsvxyj7szb5y8i")))))
("farmhash-src"
,(let ((commit "816a4ae622e964763ca0862d9dbd19324a1eaf45"))
(origin
@ -3075,24 +3145,12 @@ advanced research.")
,(origin
(method url-fetch)
(uri (string-append "https://storage.googleapis.com/"
"mirror.tensorflow.org/"
"www.kurims.kyoto-u.ac.jp/~ooura/fft2d.tgz"))
"mirror.tensorflow.org/github.com/petewarden/"
"OouraFFT/archive/v1.0.tar.gz"))
(file-name "fft2d.tar.gz")
(sha256
(base32
"1jfflzi74fag9z4qmgwvp90aif4dpbr1657izmxlgvf4hy8fk9xd"))))
("ruy-src"
,(let ((commit "9c56af3fce210a8a103eda19bd6f47c08a9e3d90"))
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/google/ruy")
(commit commit)
(recursive? #true)))
(file-name (git-file-name "ruy" (string-take commit 8)))
(sha256
(base32
"1cfd5gk6kaj8kbl3h98gx1ap8czd59y6p8qq8nr28fklpyzf5cis")))))))
"1jfflzi74fag9z4qmgwvp90aif4dpbr1657izmxlgvf4hy8fk9xd"))))))
(home-page "https://tensorflow.org")
(synopsis "Machine learning framework")
(description

View File

@ -648,7 +648,7 @@ operating systems.")
(define-public neomutt
(package
(name "neomutt")
(version "20220429")
(version "20230517")
(source
(origin
(method git-fetch)
@ -657,7 +657,7 @@ operating systems.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "106m6al48m22gl8848z8d0hsg2qiaz74vgy4f37hycl4v5d3n5ic"))))
(base32 "0kjllp2scgmpkl8yd0hwz6jmm98hr2r7qkb75ps9753fl96i4bfn"))))
(build-system gnu-build-system)
(inputs
(list cyrus-sasl
@ -802,7 +802,7 @@ It adds a large amount of new and improved features to mutt.")
vala
which)) ; to find libtool, &c.
(inputs (list glib gpgme zlib))
(home-page "http://spruce.sourceforge.net/gmime/")
(home-page "https://spruce.sourceforge.net/gmime/")
(synopsis "MIME message parser and creator library")
(description
"GMime provides a core library and set of utilities which may be used for
@ -810,20 +810,6 @@ the creation and parsing of messages using the Multipurpose Internet Mail
Extension (MIME).")
(license (list license:lgpl2.1+ license:gpl2+ license:gpl3+))))
;; Some packages are not ready for GMime 3 yet.
(define-public gmime-2.6
(package
(inherit gmime)
(version "2.6.23")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/gmime/"
(version-major+minor version)
"/gmime-" version ".tar.xz"))
(sha256
(base32
"0slzlzcr3h8jikpz5a5amqd0csqh2m40gdk910ws2hnaf5m6hjbi"))))))
(define-public altermime
(package
(name "altermime")
@ -4091,8 +4077,8 @@ It is a replacement for the @command{urlview} program.")
(license license:gpl2+)))
(define-public mumi
(let ((commit "85d5efb4367b9178eb7093e3ebca760745de0753")
(revision "2"))
(let ((commit "2453a5a6686c035854e4d523b8faa8c47405bd76")
(revision "3"))
(package
(name "mumi")
(version (git-version "0.0.5" revision commit))
@ -4104,7 +4090,7 @@ It is a replacement for the @command{urlview} program.")
(file-name (git-file-name name version))
(sha256
(base32
"0yn8dfj3krqwfsdn888vbv903kfa7clmbj2xxin263zqcyzc3alq"))))
"0dq87qn77c6qganhck048qxq5ghj3fh2v604f87hwv530lxifabr"))))
(build-system gnu-build-system)
(arguments
(list

View File

@ -5916,7 +5916,7 @@ structured and unstructured grid problems.")))
(define-public matio
(package
(name "matio")
(version "1.5.19")
(version "1.5.23")
(source
(origin
(method url-fetch)
@ -5924,7 +5924,7 @@ structured and unstructured grid problems.")))
"matio-" version ".tar.gz"))
(sha256
(base32
"0vr8c1mz1k6mz0sgh6n3scl5c3a71iqmy5fnydrgq504icj4vym4"))))
"0vjdkxn402gwrgbi5ii3n2ai01bjzzfb588iqd9ylinzc7kfm4cz"))))
(build-system gnu-build-system)
(arguments
(list
@ -5935,7 +5935,7 @@ structured and unstructured grid problems.")))
(install-file "src/matioConfig.h"
(string-append #$output "/include")))))))
(inputs
(list zlib hdf5-1.8))
(list zlib hdf5))
(home-page "http://matio.sourceforge.net/")
(synopsis "Library for reading and writing MAT files")
(description "Matio is a library for reading and writing MAT files. It
@ -8543,3 +8543,39 @@ statistical analysis, image enhancement, fluid dynamics simulations, numerical
optimization, and modeling, simulation of explicit and implicit dynamical
systems and symbolic manipulations.")
(license license:cecill))) ;CeCILL v2.1
(define-public ruy
(let ((commit "caa244343de289f913c505100e6a463d46c174de")
(version "0")
(revision "1"))
(package
(name "ruy")
(version (git-version version revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/google/ruy")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0j2g90nzam4h52zwx2vpanj8m17068cfb1zi4hcy0pyk52kb11dy"))))
(build-system cmake-build-system)
(arguments
(list
#:configure-flags
#~(list "-DRUY_FIND_CPUINFO=ON"
;; Needed to make sure code is relocatable for use in
;; tensorflow.
"-DCMAKE_CXX_FLAGS=-fPIC ")))
(inputs (list cpuinfo))
(native-inputs (list googletest))
(home-page "https://github.com/google/ruy")
(synopsis "Matrix multiplication library")
(description
"Ruy is a matrix multiplication library. Its focus is to cover the
matrix multiplication needs of neural network inference engines. Its initial
user has been TensorFlow Lite, where it is used by default on the ARM CPU
architecture.")
(license license:asl2.0))))

View File

@ -1317,7 +1317,7 @@ Encryption to Gajim.")
(define-public dino
(package
(name "dino")
(version "0.4.2")
(version "0.4.3")
(source
(origin
(method url-fetch)
@ -1325,7 +1325,7 @@ Encryption to Gajim.")
(string-append "https://github.com/dino/dino/releases/download/v"
version "/dino-" version ".tar.gz"))
(sha256
(base32 "1vbyrnivibsn4jzmfb6sfq5fxhb0xh1cnhgcmg1rafq751q55cg1"))))
(base32 "01jbggjqsbqrzd76bq4h8ccnijsw3m3mav838mnk20kls8agq5d6"))))
(build-system cmake-build-system)
(outputs '("out" "debug"))
(arguments
@ -1405,7 +1405,7 @@ default.")
(define-public kaidan
(package
(name "kaidan")
(version "0.8.0")
(version "0.9.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kde/unstable/kaidan/" version
@ -1415,7 +1415,7 @@ default.")
#~(begin
(delete-file-recursively "3rdparty")))
(sha256
(base32 "195iddv35gc3k83r226y17avsab2b9bszgd7z7ynbddsgbf75rx7"))))
(base32 "1waqv0fdkhvp3cqy2a2g6i2wc9s0zbvgzknymrwxy99mnx9ymw9g"))))
(build-system qt-build-system)
(arguments
(list #:configure-flags #~(list "-DBUILD_TESTS=true")))
@ -1435,6 +1435,7 @@ default.")
qtxmlpatterns
qqc2-desktop-style
qxmpp
sonnet
zxing-cpp))
(home-page "https://www.kaidan.im/")
(synopsis "Qt-based XMPP/Jabber Client")
@ -2129,7 +2130,7 @@ are both supported).")
(define-public profanity
(package
(name "profanity")
(version "0.13.0")
(version "0.14.0")
(source
(origin
(method url-fetch)
@ -2138,7 +2139,7 @@ are both supported).")
version ".tar.gz"))
(sha256
(base32
"14n45zwc6fxjargqhwqan8fyb7x0ql0hmw56rbjkjfkhpba2qmks"))))
"0zygsxxwdxmpppr7vyzi2r7d854yjl6918w0lrs7k41iib9zy8zx"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:configure-flags

View File

@ -44,10 +44,8 @@
#:use-module (gnu packages avahi)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages build-tools) ;meson-next
#:use-module (gnu packages boost)
#:use-module (gnu packages cdrom)
#:use-module (gnu packages cmake) ;for MPD
#:use-module (gnu packages cpp)
#:use-module (gnu packages file-systems)
#:use-module (gnu packages freedesktop) ;elogind
@ -615,7 +613,7 @@ mpdevil loads all tags and covers on demand.")
(define-public mympd
(package
(name "mympd")
(version "11.0.4")
(version "11.0.5")
(source (origin
(method git-fetch)
(uri (git-reference
@ -624,7 +622,7 @@ mpdevil loads all tags and covers on demand.")
(file-name (git-file-name name version))
(sha256
(base32
"0ki9az71x35548mnl5assb0hgli3bvrbzv0fb5dfli4q5i1z8fmq"))))
"0b3skvam3kb14w2afzxl1pfvj4cfanr45nyv93zpxafmxgghxqcv"))))
(build-system cmake-build-system)
(arguments
(list

View File

@ -2270,7 +2270,7 @@ a JACK session.")
(define-public mixxx
(package
(name "mixxx")
(version "2.3.5")
(version "2.3.6")
(source
(origin
(method git-fetch)
@ -2282,7 +2282,7 @@ a JACK session.")
(search-patches "mixxx-link-qtscriptbytearray-qtscript.patch"
"mixxx-system-googletest-benchmark.patch"))
(sha256
(base32 "0142xcq5ahk50kzc06s13xilj8m4p0spmd5hqd8s08qjhr37n2il"))
(base32 "1v1sza75rf2q1m0bdc0j2k53qd34m12d1573jmac3g7vvyqh5n2m"))
(modules '((guix build utils)))
(snippet
;; Delete libraries that we already have or don't need.
@ -3780,15 +3780,15 @@ event-based scripts for scrobbling, notifications, etc.")
(define-public picard
(package
(name "picard")
(version "2.9")
(version "2.9.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://musicbrainz.osuosl.org/pub/musicbrainz/"
"https://data.musicbrainz.org/pub/musicbrainz/"
"picard/picard-" version ".tar.gz"))
(sha256
(base32
"0afiziaq49sq1dx5r3qis4ymhhkrqlrkfnb6f7gcksj0kwljvsw9"))))
"1f1nf53xm94jam8w86a8hx69ilzddjibf29c7f1i353fr6k6bqvs"))))
(build-system python-build-system)
(arguments
(list
@ -3806,12 +3806,10 @@ event-based scripts for scrobbling, notifications, etc.")
(string-append
"pyfpcalc', '"
(assoc-ref inputs "chromaprint") "/bin/fpcalc")))))
(add-before 'check 'delete-failing-test
;; pipe tests require writable $HOME.
(add-before 'check 'set-HOME
(lambda _
;; FIXME: This test fails in build environment.
;; util/pipe.read_from_pipe:244: pipe reader exception:
;; ERROR: Pipe doesn't exist
(delete-file "test/test_util_pipe.py"))))))
(setenv "HOME" "/tmp"))))))
(native-inputs
(list gettext-minimal python-dateutil))
(inputs
@ -6352,6 +6350,170 @@ keymaps for QWERTZ, QWERTY and AZERTY keyboards and also allows custom
ones.")
(license license:bsd-0)))
(define-public distrho-ports
;; From 2021-03-15 to this commit various important changes are made
;; including improved directory structure and updated JUCE versions.
(let ((commit "f2dbaded0a05732e3499fa374a586e5b32370da5")
(revision "0"))
(package
(name "distrho-ports")
(version (git-version "2021-03-15" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/DISTRHO/DISTRHO-Ports")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1rrnqwask2qg05ynisk6bpj118cl7c3w53rqrfg5x3sx847rjjgc"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete third party libraries, libraries without
;; licenses, and unneeded libraries.
(for-each
delete-file-recursively
(list "ports-juce5/arctican-function" ;no license
"ports-juce5/arctican-pilgrim" ;no license
"ports-juce5/drowaudio-tremolo" ;no license
"ports-juce5/juce-demo-host" ;not used
"ports-juce5/juce-demo-plugin" ;not used
"ports-juce5/temper/source/faust" ;bundled
"ports-juce6/chow" ;not used
"ports-juce6/swankyamp/thirdparty" ;bundled
"ports-juce6/vitalium/third_party")) ;bundled
;; Exclude them from building.
(substitute* (find-files "." "meson.build$")
(("'arctican") "#'arctican")
(("'drowaudio-tremolo") "#'drowaudio-tremolo")
(("'third") "#'third"))
;; Use system provided "nlohmann/json.hpp".
(with-directory-excursion "ports-juce6/vitalium/source"
(substitute*
(list "common/line_generator.h"
"common/load_save.h"
"common/tuning.h"
"common/wavetable/wavetable_component.h"
"common/wavetable/wavetable_creator.h"
"common/wavetable/wavetable_keyframe.h"
"interface/editor_sections/save_section.h"
"interface/look_and_feel/skin.h"
"synthesis/producers/sample_source.h")
(("json/json\\.h") "nlohmann/json.hpp")))))))
(build-system meson-build-system)
(arguments
(list
#:tests? #f ;no test target
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-juce-fonts
(lambda* (#:key inputs #:allow-other-keys)
(let ((fonts (search-input-directory inputs "/etc/fonts")))
(with-directory-excursion "libs"
(substitute* (find-files "." "juce_linux_Fonts.cpp$")
(("/usr/share/fonts") fonts)))))))))
(native-inputs
(list cmake-minimal
concurrentqueue
faust
nlohmann-json
optional-lite
pkg-config))
(inputs
(list alsa-lib
fontconfig
freetype
fftwf
libx11
libxcursor
libxext
libxrender
mesa))
(native-search-paths
(list (search-path-specification
(variable "LV2_PATH")
(files '("lib/lv2")))
(search-path-specification
(variable "VST2_PATH")
(files '("lib/vst")))
(search-path-specification
(variable "VST3_PATH")
(files '("lib/vst3")))))
(home-page "https://github.com/DISTRHO/DISTRHO-Ports")
(synopsis "Audio plugins and LV2 ports")
(description
"This package contains LV2 ports of the following audio plugins:
@itemize
@item Dexed,
@item dRowAudio plugins (Distortion, Distortion Shaper, Flanger, Reverb,
Tremolo),
@item DrumSynth,
@item EasySSP,
@item EQinox,
@item HiReSam,
@item JuceOPL,
@item KlangFalter,
@item LUFS Meter,
@item Luftikus,
@item Obxd,
@item PitchedDelay,
@item ReFine,
@item StereoSourceSeperation,
@item Swanky Amp,
@item TAL plugins (Dub-3, Filter, Filter-2, Noize Mak3r, Reverb, Reverb-II,
Reverb-III, Vocoder-II),
@item Temper,
@item Vex,
@item Vitalium, and
@item Wolpertinger.
@end itemize")
(license
(list license:asl2.0 ;used by Dexed
;; mingw-std-threads and EasySSP (for dsp-utility) use FreeBSD.
license:bsd-2
;; Licenses for dRowAudio is not found in this repository, but
;; the upstream project is licensed under MIT:
;; https://github.com/drowaudio/drowaudio.
;; Luftikus, PitchedDelay and ReFine are ported from lkjb plugins
;; which is licensed under MIT:
;; https://github.com/lkjbdsp/lkjb-plugins.
license:expat
(license:fsf-free ;used by Temper
"file:///ports-juce5/temper/source/TemperDsp.hpp")
;; juce-plugin, LUFS Meter, Obxd and TAL plugins use GPLv2.
license:gpl2
;; License for Wolpertinger is not found in this repository, but
;; the upstream project is licensed under GPLv2+:
;; https://github.com/jkroll20/wolpertinger.
;; dRowAudio plugins, juced, HiReSam and Vex use this license.
;; Packages using files from JUCETICE project use this license.
license:gpl2+
;; License for EasySSP is not found in this repository, but the
;; upstream project is licensed under GPLv3:
;; https://github.com/automatl/audio-dsp-multi-visualize.
license:gpl3 ;used by JUCE
;; Dexed, Swanky Amp, Vitalium and KlangFalter use GPLv3+.
license:gpl3+
;; License for lv2-ttl-generator is not found in this repository,
;; but is a part of DPF-Plugins and is licensed under ISC:
;; https://github.com/DISTRHO/DPF.
;; JUCE uses this license for juce_audio_basics,
;; juce_audio_devices, juce_blocks_basics, juce_core and
;; juce_events.
license:isc
license:lgpl2.0+ ;used by DrumSynth and EQinox
license:lgpl2.1+ ;used by SoundTouch and juce-opl
;; StereoSourceSeperation uses a non-copyleft license.
(license:non-copyleft
"file:///ports-juce5/stereosourceseparation/\
source/kiss_fft/kiss_fft.c")
;; dRowAudio uses a non-copyleft license for curl.
(license:non-copyleft
"file:///libs/drowaudio/source/dRowAudio/network/\
curl/include/curl/curl.h")
license:wtfpl2))))) ;used by dRowAudio for FFTReal
(define-public dpf-plugins
(package
(name "dpf-plugins")
@ -6517,6 +6679,7 @@ and as an LV2 plugin.")
"-Dgraphviz=enabled" ;for exporting routing graphs
"-Dguile=enabled" ;for Guile scripting
"-Djack=enabled" ;for JACK audio/MIDI backend
"-Drtaudio=enabled" ;for RtAudio backend (ALSA)
"-Drtmidi=enabled" ;for RtMidi backend (ALSA sequencer)
"-Dsdl=enabled") ;for SDL audio backend (which uses ALSA)
#:phases
@ -6598,6 +6761,7 @@ success = io_mkdir (tmp_log_dir, &err);")))
pipewire
pulseaudio
reproc
rtaudio
rtmidi
rubberband
sdl2

View File

@ -256,7 +256,7 @@ protocols.")
(define-public lcrq
(package
(name "lcrq")
(version "0.1.0")
(version "0.1.2")
(source (origin
(method git-fetch)
(uri (git-reference
@ -265,7 +265,7 @@ protocols.")
(file-name (git-file-name name version))
(sha256
(base32
"13mfg866scvy557zrvjxjhkzam39h8d07s2w3fqbwhw6br6axkxk"))))
"1m29p4bsafzbchnkidyrnglfdf1c9pnq6akkmivi23qdv9kj51dg"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-tests? #f
@ -289,7 +289,7 @@ the RFC.")
(define-public lcsync
(package
(name "lcsync")
(version "0.0.1")
(version "0.2.1")
(source (origin
(method git-fetch)
(uri (git-reference
@ -298,45 +298,33 @@ the RFC.")
(file-name (git-file-name name version))
(sha256
(base32
"0s038b4xg9nlzhrganzjyfvc6n6cgd6kilnpik4axp62j2n5q11q"))))
"0bsd3dkir2i647nmrmyb7skbv16v0f6f3gfwkpxz8g42978dlms5"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-tests? #f
#:configure-flags
(list
(string-append "--prefix="
(assoc-ref %outputs "out")))
#:make-flags (let ((target ,(%current-target-system)))
(list ,(string-append "CC="
(cc-for-target))
;; avoid running setcap in the install process
"SETCAP_PROGRAM=true"
(string-append "prefix="
(assoc-ref %outputs "out"))))
(cc-for-target))))
#:test-target "test"
#:phases (modify-phases %standard-phases
(delete 'configure) ;no configure script
(add-before 'check 'remove-network-tests
(add-after 'unpack 'use-prefix-from-configure-in-doc-makefile
;; Use prefix from configure. Fixed upstream:
;; https://codeberg.org/librecast/lcsync/commit/4ba00f6
;; XXX: Remove for 0.2.2+
(lambda _
;; these tests require networking
(delete-file "./test/0000-0027.c")
(delete-file "./test/0000-0049.c")
(delete-file "./test/0000-0074.c")))
(add-after 'unpack 'remove-immintrin.h
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "Makefile"
(("CFLAGS :=")
(string-append "CFLAGS := -I" (search-input-directory
inputs "include/simde"))))
(substitute* (find-files "src")
((".*immintrin\\.h.*")
(string-append "#include <simde-features.h>\n"
"#include <x86/ssse3.h>\n"))
(("__m128i") "simde__m128i"))))
(substitute* "doc/Makefile.in"
(("PREFIX .= /usr/local") "PREFIX ?= @prefix@"))))
(add-before 'build 'add-library-paths
(lambda* (#:key inputs #:allow-other-keys)
(let* ((librecast (assoc-ref inputs "librecast")))
(substitute* (list "./src/Makefile" "./test/Makefile")
(("-llibrecast")
(string-append "-L" librecast "/lib -llibrecast")))))))))
(inputs (list librecast libsodium))
(native-inputs (list simde))
(inputs (list lcrq librecast libsodium))
(home-page "https://librecast.net/lcsync.html")
(synopsis "Librecast file and data syncing tool")
(description
@ -487,7 +475,7 @@ GLib-based library, libnice, as well as GStreamer elements to use it.")
(define-public librecast
(package
(name "librecast")
(version "0.6.1")
(version "0.7.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -496,7 +484,7 @@ GLib-based library, libnice, as well as GStreamer elements to use it.")
(file-name (git-file-name name version))
(sha256
(base32
"1kixnm7pn8345wp0klhnpw5x992cqbqx3bhc01j8xhqf6irlzdm3"))))
"0y0km0fv39m3i227pyg7fcr7d94gbji51fkcywqyrjgmk4j1hp1n"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-tests? #f
@ -505,26 +493,7 @@ GLib-based library, libnice, as well as GStreamer elements to use it.")
(cc-for-target))
(string-append "PREFIX="
(assoc-ref %outputs "out"))))
#:test-target "test"
#:phases (modify-phases %standard-phases
(add-before 'check 'remove-network-tests
(lambda _
;; these tests require networking
(delete-file "./test/0000-0010.c")
(delete-file "./test/0000-0012.c")
(delete-file "./test/0000-0013.c")
(delete-file "./test/0000-0014.c")
(delete-file "./test/0000-0015.c")
(delete-file "./test/0000-0016.c")
(delete-file "./test/0000-0018.c")
(delete-file "./test/0000-0019.c")
(delete-file "./test/0000-0021.c")
(delete-file "./test/0000-0028.c")
(delete-file "./test/0000-0036.c")
(delete-file "./test/0000-0037.c")
(delete-file "./test/0000-0038.c")
(delete-file "./test/0000-0039.c")
(delete-file "./test/0000-0040.c"))))))
#:test-target "test"))
(inputs (list libsodium lcrq))
(synopsis "IPv6 multicast library")
(description "Librecast is a C library which supports IPv6 multicast
@ -1505,6 +1474,26 @@ containing both Producer and Consumer support.")
(base32
"0ay0n0d85254zdmv8znmn399gfiqpk6ga0jwdwa7ylpbw9pbdzw8"))))
(build-system gnu-build-system)
(native-inputs
(if (%current-target-system)
(list pkg-config
libtool
gettext-minimal
autoconf automake)
'()))
(arguments
(if (%current-target-system)
(list #:phases
#~(modify-phases %standard-phases
;; AC_FUNC_MALLOC and AC_FUNC_REALLOC usually unneeded
;; see https://lists.gnu.org/archive/html/autoconf/2003-02/msg00017.html
(add-after 'unpack 'fix-rpl_malloc
(lambda _
(substitute* "configure.ac"
(("AC_FUNC_MALLOC") ""))
;; let bootstrap phase run.
(delete-file "./configure")))))
'()))
(home-page "https://libndp.org/")
(synopsis "Library for Neighbor Discovery Protocol")
(description
@ -1575,42 +1564,33 @@ intended as a substitute for the PPPStatus and EthStatus projects.")
(define-public iputils
(package
(name "iputils")
(version "20190709")
(version "20221126")
(home-page "https://github.com/iputils/iputils")
(source (origin
(method git-fetch)
(uri (git-reference (url home-page)
(commit (string-append "s" version))))
(uri (git-reference (url home-page) (commit version)))
(file-name (git-file-name name version))
(patches (search-patches "iputils-libcap-compat.patch"))
(sha256
(base32
"04bp4af15adp79ipxmiakfp0ij6hx5qam266flzbr94pr8z8l693"))))
"1qfdvr60mlwh5kr4p27wjknz1cvrwfi6iadh9ny45661v22i0njx"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags '("-DBUILD_RARPD=true")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-docbook-url
(lambda* (#:key inputs #:allow-other-keys)
(let* ((docbook-xsl (assoc-ref inputs "docbook-xsl"))
(uri (string-append docbook-xsl "/xml/xsl/docbook-xsl-"
,(package-version docbook-xsl))))
(for-each
(lambda (file)
(substitute* file
(("http://docbook\\.sourceforge\\.net/release/xsl-ns/current")
uri)))
(cons "doc/meson.build"
(find-files "doc" "\\.xsl$")))
#t))))))
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'disable-ping-test
(lambda _
;; Disable ping test, as it requires root or raw socket capabilities.
(substitute* "test/meson.build"
(("if build_ping == true")
"if false")))))))
(native-inputs
`(("gettext" ,gettext-minimal)
("pkg-config" ,pkg-config)
("docbook-xsl" ,docbook-xsl)
("docbook-xml" ,docbook-xml)
("libxml2" ,libxml2) ;for XML_CATALOG_FILES
("xsltproc" ,libxslt)))
(list gettext-minimal
pkg-config
docbook-xsl
docbook-xml
libxml2 ;for XML_CATALOG_FILES
libxslt))
(inputs
(list libcap libidn2 openssl))
(synopsis "Collection of network utilities")
@ -1622,20 +1602,15 @@ configuration, troubleshooting, or servers. Utilities included are:
@item @command{arping}: Ping hosts using the @dfn{Address Resolution Protocol}.
@item @command{clockdiff}: Compute time difference between network hosts
using ICMP TSTAMP messages.
@item @command{ninfod}: Daemon that responds to IPv6 Node Information Queries.
@item @command{ping}: Use ICMP ECHO messages to measure round-trip delays
and packet loss across network paths.
@item @command{rarpd}: Answer RARP requests from clients.
@item @command{rdisc}: Populate network routing tables with information from
the ICMP router discovery protocol.
@item @command{tftpd}: Trivial file transfer protocol server.
@item @command{tracepath}: Trace network path to an IPv4 or IPv6 address and
discover MTU along the way.
@end itemize")
;; The various utilities are covered by different licenses, see LICENSE
;; for details.
(license (list license:gpl2+ ;arping, rarpd, tracepath
license:bsd-3 ;clockdiff, ninfod, ping, tftpd
(license (list license:gpl2+ ;arping, tracepath
license:bsd-3 ;clockdiff, ping
(license:non-copyleft
"https://spdx.org/licenses/Rdisc.html"
"Sun Microsystems license, see rdisc.c for details")))))
@ -2779,7 +2754,7 @@ procedure calls (RPCs).")
(define-public openvswitch
(package
(name "openvswitch")
(version "3.0.3")
(version "3.2.0")
(source (origin
(method url-fetch)
(uri (string-append
@ -2787,7 +2762,7 @@ procedure calls (RPCs).")
version ".tar.gz"))
(sha256
(base32
"0qwlpnwjcyb7fpw6yp65mdqg20i1851z70xmvzxwxwpifq56a1pm"))))
"1i0lb40lwbakmmqklmfcgr01l1ymsawgdi7k9a1zzp8ariw7x4ff"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags
@ -4389,7 +4364,7 @@ network.")
(define-public yggdrasil
(package
(name "yggdrasil")
(version "0.4.3")
(version "0.4.7")
(source
(origin
(method git-fetch)
@ -4400,27 +4375,33 @@ network.")
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
(base32 "0jp6998a45xi8pbi8p84chvpm1mhhcvcxm1avi1c1gjjp4jqm3vl"))
(base32 "01mllfrsr55lnfivxwa57cfrjas6w4shsvx9k81pw8jixc124myk"))
(patches (search-patches "yggdrasil-extra-config.patch"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/yggdrasil-network/yggdrasil-go"
;; TODO: figure out how tests are run
#:tests? #f
#:install-source? #f
#:phases
(modify-phases %standard-phases
(replace 'build
(lambda* (#:key import-path build-flags #:allow-other-keys)
(for-each
(lambda (directory)
((assoc-ref %standard-phases 'build)
#:build-flags build-flags
#:import-path directory))
(list "github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasil"
"github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasilctl"
"github.com/yggdrasil-network/yggdrasil-go/cmd/genkeys"))
#t)))))
(list #:import-path "github.com/yggdrasil-network/yggdrasil-go"
;; TODO: figure out how tests are run
#:tests? #f
#:install-source? #f
#:go go-1.20
#:phases
#~(modify-phases %standard-phases
(replace 'build
(lambda* (#:key import-path build-flags #:allow-other-keys)
(let* ((pkgsrc "github.com/yggdrasil-network/yggdrasil-go/src/version")
(ldflags (format #f
"-X ~a.buildName=yggdrasil -X ~a.buildVersion=~a"
pkgsrc
pkgsrc
#$version)))
(for-each
(lambda (directory)
((assoc-ref %standard-phases 'build)
#:build-flags `("-ldflags" ,ldflags)
#:import-path directory))
(list "github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasil"
"github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasilctl"
"github.com/yggdrasil-network/yggdrasil-go/cmd/genkeys"))))))))
;; https://github.com/kardianos/minwinsvc is windows only
(propagated-inputs
(list ;;("go-golang-zx2c4-com-wireguard-windows"
@ -4430,11 +4411,14 @@ network.")
go-golang-org-x-sys
go-golang-org-x-net
go-golang-org-x-crypto
go-golang-org-x-tools
go-netns
go-netlink
go-github-com-olekukonko-tablewriter
go-github-com-mitchellh-mapstructure
go-github-com-mattn-go-runewidth
go-github-com-mattn-go-isatty
go-github-com-mattn-go-colorable
go-github-com-kardianos-minwinsvc
go-github-com-hjson-hjson-go
go-github-com-hashicorp-go-syslog
@ -4502,7 +4486,7 @@ on hub/switched networks. It is based on @acronym{ARP} packets, it will send
(define-public phantomsocks
(package
(name "phantomsocks")
(version "0.0.0-20230405135900-a54ae9f3611e")
(version "0.0.0-20230811053544-53b995bdab83")
(source (origin
(method git-fetch)
(uri (git-reference
@ -4511,7 +4495,7 @@ on hub/switched networks. It is based on @acronym{ARP} packets, it will send
(file-name (git-file-name name version))
(sha256
(base32
"1qgv8dcrsyzjzppvdk0n5kkyaypcjm1hcn9lb29ahvbhm70cpm6a"))))
"1jc9qldi4f9s6n4ggaphyilxjymrz95hwd060jhj260x2hkdywl9"))))
(build-system go-build-system)
(arguments
(list #:install-source? #f
@ -4519,13 +4503,12 @@ on hub/switched networks. It is based on @acronym{ARP} packets, it will send
#:build-flags #~'("-tags" #$(if (target-linux?)
"rawsocket"
"pcap"))))
(propagated-inputs
(list go-github-com-google-gopacket
go-github-com-macronut-go-tproxy))
(inputs
(if (target-linux?)
'()
(list libpcap)))
(append (if (target-linux?)
'()
(list libpcap))
(list go-github-com-google-gopacket
go-github-com-macronut-go-tproxy)))
(home-page "https://github.com/macronut/phantomsocks")
(synopsis "Internet censorship circumvention tool")
(description

View File

@ -669,7 +669,7 @@ parser definition into a C output.")
(define-public llhttp-bootstrap
(package
(name "llhttp")
(version "6.0.10")
(version "6.0.11")
(source (origin
(method git-fetch)
(uri (git-reference
@ -678,7 +678,7 @@ parser definition into a C output.")
(file-name (git-file-name name version))
(sha256
(base32
"0izwqa77y007xdi0bj3ccw821n19rz89mz4hx4lg99fwkwylr6x8"))
"16gaylka6nx9bsff9xga3s8xihxm3k7svrb88lr4dj2s4pzlfga9"))
(modules '((guix build utils)))
(snippet
'(begin
@ -738,14 +738,14 @@ source files.")
(define-public node-lts
(package
(inherit node)
(version "18.16.0")
(version "18.17.1")
(source (origin
(method url-fetch)
(uri (string-append "https://nodejs.org/dist/v" version
"/node-v" version ".tar.gz"))
(sha256
(base32
"0vcc132z7lkxnw5clmiz6sp6ccmw35pyb69hczphrig5frfmqkva"))
"0dachvhf5jxrb1av8mn2dikbhwklxsgc9y2zg4h50fcwh5d54mqi"))
(modules '((guix build utils)))
(snippet
'(begin

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015, 2016, 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2019, 2021 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2022 Marius Bakke <marius@gnu.org>
@ -138,26 +138,23 @@ manner.")
(define-public python-hacking
(package
(name "python-hacking")
(version "4.1.0")
(version "5.0.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "hacking" version))
(sha256
(base32
"0fg19rlcky3n1y1ri61xyjp7534yzf8r102z9dw3zqg93f4kj20m"))))
"09p0avmz914asszvdknc46n43bl070f369wmjmppl51zmw4b4ddb"))))
(build-system python-build-system)
(propagated-inputs
(list python-flake8-3.8))
(propagated-inputs
(list python-flake8))
(native-inputs
(list ;; Tests
python-coverage
python-ddt
python-dnspython
python-fixtures
python-eventlet
python-mock
python-monotonic
python-fixtures
python-subunit
python-stestr
python-testscenarios

View File

@ -1450,8 +1450,8 @@ environments.")
"0k9zkdyyzir3fvlbcfcqy17k28b51i20rpbjwlx2i1mwd2pw9cxc")))))))
(define-public guix-build-coordinator
(let ((commit "f39f16000469429745bd8aff3cd4d59b7c489fa1")
(revision "86"))
(let ((commit "cbded42c284cca4ecaaebbf0a666cf89efc465a7")
(revision "88"))
(package
(name "guix-build-coordinator")
(version (git-version "0" revision commit))
@ -1462,7 +1462,7 @@ environments.")
(commit commit)))
(sha256
(base32
"1lmbwbza87xzbvmzw44sgpscmqjfl5kpgfl79n7hzwa1icqqb7mg"))
"1z2wdf5h4dxq9g7a6j7nvmrsqcibrfm8nmkakqgz7ipcxyk0vzjx"))
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(arguments

View File

@ -30,6 +30,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages xml)
#:use-module (gnu packages web)
#:use-module (gnu packages)
#:use-module (guix build-system meson)
#:use-module (guix git-download)
@ -40,7 +41,7 @@
(define-public granite
(package
(name "granite")
(version "6.2.0")
(version "7.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -49,16 +50,21 @@
(file-name (git-file-name name version))
(sha256
(base32
"0ilslmg63hh2x7h5rvs3mhzw1y9ixhhkqnn1j1lzwm12v2iidkaq"))))
"0pyvkif2kin5dskh7adadsh4r96mvx12y7cs6gnm0ml733q548dj"))))
(build-system meson-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(add-after 'unpack 'disable-icon-cache
(lambda _
(setenv "DESTDIR" "/"))))))
(inputs (list glib gtk+ libgee))
(native-inputs (list gettext-minimal gobject-introspection pkg-config
python vala))
(inputs (list sassc))
(propagated-inputs (list glib libgee gtk)) ;required in .pc file
(native-inputs (list gettext-minimal
`(,glib "bin")
gobject-introspection
pkg-config
python
vala))
(home-page "https://github.com/elementary/granite")
(synopsis "Library that extends GTK with common widgets and utilities")
(description "Granite is a companion library for GTK+ and GLib. Among other
@ -69,7 +75,7 @@ in apps built for the Pantheon desktop.")
(define-public pantheon-calculator
(package
(name "pantheon-calculator")
(version "1.7.2")
(version "2.0.2")
(source
(origin
(method git-fetch)
@ -79,7 +85,7 @@ in apps built for the Pantheon desktop.")
(file-name (git-file-name name version))
(sha256
(base32
"11rwwi6nlhwpcm29dn2mbz0239nfjdwlqlqbchm0j9sr1ypifk2k"))))
"1w59sgznzybawhz411avqayws8jq0471n6hwhkplvcz7inxlzdrw"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
@ -91,15 +97,15 @@ in apps built for the Pantheon desktop.")
(inputs
(list granite
glib
gtk+
gtk
libgee
libhandy))
(native-inputs
`(("cmake" ,cmake)
("glib:bin" ,glib "bin") ; for glib-compile-schemas
("gettext" ,gettext-minimal)
("pkg-config" ,pkg-config)
("vala" ,vala)))
(list cmake
`(,glib "bin") ; for glib-compile-schemas
gettext-minimal
pkg-config
vala))
(home-page "https://github.com/elementary/calculator")
(synopsis "Desktop calculator")
(description "Calculator is an application for performing simple
@ -110,7 +116,7 @@ desktop.")
(define-public sideload
(package
(name "sideload")
(version "6.0.2")
(version "6.2.1")
(source
(origin
(method git-fetch)
@ -120,7 +126,7 @@ desktop.")
(file-name (git-file-name name version))
(sha256
(base32
"0abpcawmmv5mgzk2i5n9rlairmjr2v9rg9b8c9g7xa085s496bi9"))))
"0vrj91899f13cvzpycqy3y74hmixsffjbzsj29da7n370fa3ci86"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t

View File

@ -64,14 +64,14 @@
(define-public parallel
(package
(name "parallel")
(version "20230622")
(version "20230822")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/parallel/parallel-"
version ".tar.bz2"))
(sha256
(base32 "13i3himpq1gzhn3b0hl8vp34kz950ql9pssw251ad611f2nj8fny"))
(base32 "0ppwdgp9j7r0a5l5zb0mla70jq24wmy1n33b5naw44y1lfclanab"))
(snippet
'(begin
(use-modules (guix build utils))

View File

@ -1577,7 +1577,7 @@ pass-tomb to automatically close your store after a given time.")
(define-public xkcdpass
(package
(name "xkcdpass")
(version "1.19.3")
(version "1.19.4")
(home-page "https://github.com/redacted/XKCD-password-generator")
(source (origin
(method git-fetch)
@ -1587,7 +1587,7 @@ pass-tomb to automatically close your store after a given time.")
(file-name (git-file-name name version))
(sha256
(base32
"0xfrmx9k2vinlagv476rfcfdp41aix1ldy6qnzzx26n985gcyk7p"))))
"1din4fqxgcj74vcjrsmn19sv81raards39x8pd75hmfxqqgggnd6"))))
(build-system python-build-system)
(arguments
`(#:phases

View File

@ -0,0 +1,72 @@
Adjust CMakeLists.txt to use system-provided mmg and yaml-cpp libraries.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b11c5ba..702423e 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -122,28 +122,8 @@ if(MMG_MESH)
add_definitions(-DMMG_MESH)
# MMG
- set(MMG_PREFIX mmg3d)
- set(MMG_PREFIX_DIR ${CMAKE_CURRENT_BINARY_DIR}/${MMG_PREFIX})
- set(MMG_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/${MMG_PREFIX})
- ExternalProject_Add(${MMG_PREFIX}
- PREFIX ${MMG_PREFIX_DIR}
- SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libs/mmg
-
- BUILD_ALWAYS OFF
- INSTALL_DIR ${MMG_INSTALL_DIR}
-
- CMAKE_ARGS(-DCMAKE_BUILD_TYPE=Release -DBUILD=MMG3D -DLIBMMG3D_STATIC=ON
- -DLIBMMG3D_SHARED=OFF -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>)
-
- BUILD_COMMAND make
- INSTALL_COMMAND make install
- )
- set(MMG3D_INCLUDE_DIRS "${MMG_INSTALL_DIR}/include")
- set(MMG3D_LIBRARIES "${MMG_INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}${MMG_PREFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}")
-
- include_directories(${MMG3D_INCLUDE_DIRS})
- #add_library(MMG3D STATIC IMPORTED)
- #set_target_properties(MMG3D PROPERTIES IMPORTED_LOCATION "${MMG3D_LIBRARIES}")
+ include_directories(${MMG_INCLUDE_DIR})
+ set(MMG3D_LIBRARIES ${MMG_LIBRARY_DIR}/libmmg3d.so)
# MshMet
set(MSHMET_PREFIX mshmet)
@@ -192,14 +172,8 @@ target_include_directories(tet PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/libs/tetgen)
target_compile_definitions(tet PUBLIC TETLIBRARY) # -DTETLIBRARY: flag to compile tetgen as a library
# yaml
-file(GLOB yaml_SRC CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libs/yaml/src/*.cpp) # Using file GLOB is not recomended!
-add_library(yaml STATIC)
-target_include_directories(yaml
- PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/libs/yaml/include
- PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/libs/yaml/src
-)
-target_sources(yaml PRIVATE ${yaml_SRC})
-set_target_properties(yaml PROPERTIES CXX_STANDARD 11)
+find_package(yaml-cpp REQUIRED)
+include_directories(${YAML_CPP_INCLUDE_DIRS})
# Compile options for debuging
if(CMAKE_BUILD_TYPE MATCHES Debug)
@@ -259,7 +233,7 @@ if(MARCH_NATIVE)
endif()
# Create entries for C++ files in "ASLI" routine
-target_link_libraries(ASLI PUBLIC alg tet yaml)
+target_link_libraries(ASLI PUBLIC alg tet ${YAML_CPP_LIBRARIES})
if(NOT MSVC)
target_link_libraries(ASLI PUBLIC stdc++fs)
endif()
@@ -272,7 +246,7 @@ if(CGAL_MESH)
endif()
if(MMG_MESH)
- add_dependencies(ASLI ${MMG_PREFIX} ${MSHMET_PREFIX})
+ add_dependencies(ASLI ${MSHMET_PREFIX})
target_link_libraries(ASLI PUBLIC ${MMG3D_LIBRARIES} ${MSHMET_LIBRARIES})
if(SCOTCH_FOUND)
target_link_libraries(ASLI PUBLIC ${SCOTCH_LIBRARIES} scotch)

View File

@ -0,0 +1,40 @@
Fix building against Lens 5 by commenting out type signatures(!).
Taken from upstream:
https://github.com/ganeti/ganeti/commit/5e30bad1bba63c9f6c782003ef2560f107a0ba24
diff --git a/src/Ganeti/Network.hs b/src/Ganeti/Network.hs
index 1cb6aa1ec..696c1cd1b 100644
--- a/src/Ganeti/Network.hs
+++ b/src/Ganeti/Network.hs
@@ -87,11 +87,11 @@ data PoolPart = PoolInstances | PoolExt
addressPoolIso :: Iso' AddressPool BA.BitArray
addressPoolIso = iso apReservations AddressPool
-poolLens :: PoolPart -> Lens' Network (Maybe AddressPool)
+--poolLens :: PoolPart -> Lens' Network (Maybe AddressPool)
poolLens PoolInstances = networkReservationsL
poolLens PoolExt = networkExtReservationsL
-poolArrayLens :: PoolPart -> Lens' Network (Maybe BA.BitArray)
+--poolArrayLens :: PoolPart -> Lens' Network (Maybe BA.BitArray)
poolArrayLens part = poolLens part . mapping addressPoolIso
netIpv4NumHosts :: Network -> Integer
diff --git a/src/Ganeti/Utils/MultiMap.hs b/src/Ganeti/Utils/MultiMap.hs
index d54da3ab0..279e9335a 100644
--- a/src/Ganeti/Utils/MultiMap.hs
+++ b/src/Ganeti/Utils/MultiMap.hs
@@ -91,7 +91,7 @@ multiMap :: (Ord k, Ord v) => M.Map k (S.Set v) -> MultiMap k v
multiMap = MultiMap . M.filter (not . S.null)
-- | A 'Lens' that allows to access a set under a given key in a multi-map.
-multiMapL :: (Ord k, Ord v) => k -> Lens' (MultiMap k v) (S.Set v)
+--multiMapL :: (Ord k, Ord v) => k -> Lens' (MultiMap k v) (S.Set v)
multiMapL k f = fmap MultiMap
. at k (fmap (mfilter (not . S.null) . Just)
. f . fromMaybe S.empty)
--
2.41.0

View File

@ -0,0 +1,45 @@
Fix compatibility with procps 4.
Negative UIDs are no longer allowed. Use a very high one instead.
Taken from upstream:
https://github.com/ganeti/ganeti/commit/9cd67e6a81c66ed326d68ea8c3241d14eea6550b
diff --git a/test/py/ganeti.uidpool_unittest.py b/test/py/ganeti.uidpool_unittest.py
index b2f5bc5cf2..2d9227cbf5 100755
--- a/test/py/ganeti.uidpool_unittest.py
+++ b/test/py/ganeti.uidpool_unittest.py
@@ -106,23 +106,24 @@ def testRequestUnusedUid(self):
# Check with a single, known unused user-id
#
- # We use "-1" here, which is not a valid user-id, so it's
- # guaranteed that it's unused.
- uid = uidpool.RequestUnusedUid(set([-1]))
- self.assertEqualValues(uid.GetUid(), -1)
+ # We use 2^30+42 here, which is a valid UID, but unlikely to be used on
+ # most systems (even as a subuid).
+ free_uid = 2**30 + 42
+ uid = uidpool.RequestUnusedUid(set([free_uid]))
+ self.assertEqualValues(uid.GetUid(), free_uid)
# Check uid-pool exhaustion
#
- # uid "-1" is locked now, so RequestUnusedUid is expected to fail
+ # free_uid is locked now, so RequestUnusedUid is expected to fail
self.assertRaises(errors.LockError,
uidpool.RequestUnusedUid,
- set([-1]))
+ set([free_uid]))
# Check unlocking
uid.Unlock()
# After unlocking, "-1" should be available again
- uid = uidpool.RequestUnusedUid(set([-1]))
- self.assertEqualValues(uid.GetUid(), -1)
+ uid = uidpool.RequestUnusedUid(set([free_uid]))
+ self.assertEqualValues(uid.GetUid(), free_uid)
if __name__ == "__main__":

View File

@ -0,0 +1,28 @@
Relax version constraints to work with Stackage LTS 19.
Taken from upstream:
https://github.com/ganeti/ganeti/commit/4f8d61ea0101721eae1c6f43be8430d819e5e611
diff --git a/cabal/ganeti.template.cabal b/cabal/ganeti.template.cabal
index bb4ff8053..98491dd9f 100644
--- a/cabal/ganeti.template.cabal
+++ b/cabal/ganeti.template.cabal
@@ -63,14 +63,14 @@ library
, unix >= 2.5.1.0
, utf8-string >= 0.3.7
- , attoparsec >= 0.10.1.1 && < 0.14
- , base64-bytestring >= 1.0.0.1 && < 1.2
+ , attoparsec >= 0.10.1.1 && < 0.15
+ , base64-bytestring >= 1.0.0.1 && < 1.3
, case-insensitive >= 0.4.0.1 && < 1.3
, curl >= 1.3.7 && < 1.4
, hinotify >= 0.3.2 && < 0.5
, hslogger >= 1.1.4 && < 1.4
, json >= 0.5 && < 1.0
- , lens >= 3.10 && < 5.0
+ , lens >= 3.10 && < 6.0
, lifted-base >= 0.2.0.3 && < 0.3
, monad-control >= 0.3.1.3 && < 1.1
, parallel >= 3.2.0.2 && < 3.3

View File

@ -0,0 +1,90 @@
Fix ordering of Arbitrary definitions for GHC 9 compatibility.
Taken from upstream:
https://github.com/ganeti/ganeti/commit/feab8faa8fe055c89205497e4f277ae4c7b8caad
diff --git a/test/hs/Test/Ganeti/Objects.hs b/test/hs/Test/Ganeti/Objects.hs
index 97ceb36dca..8d80be9e80 100644
--- a/test/hs/Test/Ganeti/Objects.hs
+++ b/test/hs/Test/Ganeti/Objects.hs
@@ -93,8 +93,14 @@ instance Arbitrary (Container DataCollectorConfig) where
instance Arbitrary BS.ByteString where
arbitrary = genPrintableByteString
+instance Arbitrary a => Arbitrary (Private a) where
+ arbitrary = Private <$> arbitrary
+
$(genArbitrary ''PartialNDParams)
+instance Arbitrary (Container J.JSValue) where
+ arbitrary = return $ GenericContainer Map.empty
+
instance Arbitrary Node where
arbitrary = Node <$> genFQDN <*> genFQDN <*> genFQDN
<*> arbitrary <*> arbitrary <*> arbitrary <*> genFQDN
@@ -297,10 +303,6 @@ genDisk = genDiskWithChildren 3
-- validation rules.
$(genArbitrary ''PartialISpecParams)
--- | FIXME: This generates completely random data, without normal
--- validation rules.
-$(genArbitrary ''PartialIPolicy)
-
$(genArbitrary ''FilledISpecParams)
$(genArbitrary ''MinMaxISpecs)
$(genArbitrary ''FilledIPolicy)
@@ -309,6 +311,10 @@ $(genArbitrary ''FilledNDParams)
$(genArbitrary ''FilledNicParams)
$(genArbitrary ''FilledBeParams)
+-- | FIXME: This generates completely random data, without normal
+-- validation rules.
+$(genArbitrary ''PartialIPolicy)
+
-- | No real arbitrary instance for 'ClusterHvParams' yet.
instance Arbitrary ClusterHvParams where
arbitrary = return $ GenericContainer Map.empty
@@ -331,18 +337,12 @@ instance Arbitrary OsParams where
instance Arbitrary Objects.ClusterOsParamsPrivate where
arbitrary = (GenericContainer . Map.fromList) <$> arbitrary
-instance Arbitrary a => Arbitrary (Private a) where
- arbitrary = Private <$> arbitrary
-
instance Arbitrary ClusterOsParams where
arbitrary = (GenericContainer . Map.fromList) <$> arbitrary
instance Arbitrary ClusterBeParams where
arbitrary = (GenericContainer . Map.fromList) <$> arbitrary
-instance Arbitrary IAllocatorParams where
- arbitrary = return $ GenericContainer Map.empty
-
$(genArbitrary ''Cluster)
instance Arbitrary ConfigData where
diff --git a/test/hs/Test/Ganeti/Query/Language.hs b/test/hs/Test/Ganeti/Query/Language.hs
index 04fb8c3898..fa50196f00 100644
--- a/test/hs/Test/Ganeti/Query/Language.hs
+++ b/test/hs/Test/Ganeti/Query/Language.hs
@@ -59,6 +59,9 @@ import Ganeti.Query.Language
instance Arbitrary (Filter FilterField) where
arbitrary = genFilter
+instance Arbitrary FilterRegex where
+ arbitrary = genName >>= mkRegex -- a name should be a good regex
+
-- | Custom 'Filter' generator (top-level), which enforces a
-- (sane) limit on the depth of the generated filters.
genFilter :: Gen (Filter FilterField)
@@ -97,9 +100,6 @@ $(genArbitrary ''QueryTypeLuxi)
$(genArbitrary ''ItemType)
-instance Arbitrary FilterRegex where
- arbitrary = genName >>= mkRegex -- a name should be a good regex
-
$(genArbitrary ''ResultStatus)
$(genArbitrary ''FieldType)

View File

@ -0,0 +1,69 @@
Handle GHC 9 changes in a backwards compatible manner.
Taken from upstream:
https://github.com/ganeti/ganeti/commit/b279fa738fd5b30320584f79f4d2f0e894315aab
diff --git a/src/Ganeti/THH.hs b/src/Ganeti/THH.hs
index 818c11f84..9ab93d5e3 100644
--- a/src/Ganeti/THH.hs
+++ b/src/Ganeti/THH.hs
@@ -884,7 +884,7 @@ genLoadOpCode opdefs fn = do
) $ zip mexps opdefs
defmatch = Match WildP (NormalB fails) []
cst = NoBindS $ CaseE (VarE opid) $ mpats++[defmatch]
- body = DoE [st, cst]
+ body = mkDoE [st, cst]
-- include "OP_ID" to the list of used keys
bodyAndOpId <- [| $(return body)
<* tell (mkUsedKeys . S.singleton . T.pack $ opidKey) |]
@@ -1541,7 +1541,7 @@ loadExcConstructor inname sname fields = do
[x] -> BindS (ListP [VarP x])
_ -> BindS (TupP (map VarP f_names))
cval = appCons name $ map VarE f_names
- return $ DoE [binds read_args, NoBindS (AppE (VarE 'return) cval)]
+ return $ mkDoE [binds read_args, NoBindS (AppE (VarE 'return) cval)]
{-| Generates the loadException function.
diff --git a/src/Ganeti/THH/Compat.hs b/src/Ganeti/THH/Compat.hs
index d29e30d18..1f51e49d7 100644
--- a/src/Ganeti/THH/Compat.hs
+++ b/src/Ganeti/THH/Compat.hs
@@ -40,9 +40,11 @@ module Ganeti.THH.Compat
, extractDataDConstructors
, myNotStrict
, nonUnaryTupE
+ , mkDoE
) where
import Language.Haskell.TH
+import Language.Haskell.TH.Syntax
-- | Convert Names to DerivClauses
--
@@ -61,7 +63,11 @@ derivesFromNames names = map ConT names
--
-- Handle TH 2.11 and 2.12 changes in a transparent manner using the pre-2.11
-- API.
+#if MIN_VERSION_template_haskell(2,17,0)
+gntDataD :: Cxt -> Name -> [TyVarBndr ()] -> [Con] -> [Name] -> Dec
+#else
gntDataD :: Cxt -> Name -> [TyVarBndr] -> [Con] -> [Name] -> Dec
+#endif
gntDataD x y z a b =
#if MIN_VERSION_template_haskell(2,12,0)
DataD x y z Nothing a $ derivesFromNames b
@@ -114,3 +120,12 @@ nonUnaryTupE es = TupE $ map Just es
#else
nonUnaryTupE es = TupE $ es
#endif
+
+-- | DoE is now qualified with an optional ModName
+mkDoE :: [Stmt] -> Exp
+mkDoE s =
+#if MIN_VERSION_template_haskell(2,17,0)
+ DoE Nothing s
+#else
+ DoE s
+#endif

View File

@ -0,0 +1,179 @@
Fix compatibility with Template Haskell 2.18 and GHC 9.2.
diff --git a/src/Ganeti/BasicTypes.hs b/src/Ganeti/BasicTypes.hs
index 10d0426cd..d68bc7d5b 100644
--- a/src/Ganeti/BasicTypes.hs
+++ b/src/Ganeti/BasicTypes.hs
@@ -206,12 +206,12 @@ instance MonadTrans (ResultT a) where
instance (MonadIO m, Error a) => MonadIO (ResultT a m) where
liftIO = ResultT . liftIO
. liftM (either (failError . show) return)
- . (try :: IO a -> IO (Either IOError a))
+ . (try :: IO α -> IO (Either IOError α))
instance (MonadBase IO m, Error a) => MonadBase IO (ResultT a m) where
liftBase = ResultT . liftBase
. liftM (either (failError . show) return)
- . (try :: IO a -> IO (Either IOError a))
+ . (try :: IO α -> IO (Either IOError α))
instance (Error a) => MonadTransControl (ResultT a) where
#if MIN_VERSION_monad_control(1,0,0)
diff --git a/src/Ganeti/Lens.hs b/src/Ganeti/Lens.hs
index faa5900ed..747366e6a 100644
--- a/src/Ganeti/Lens.hs
+++ b/src/Ganeti/Lens.hs
@@ -93,14 +93,14 @@ makeCustomLenses' name lst = makeCustomLensesFiltered f name
-- Most often the @g@ functor is @(,) r@ and 'traverseOf2' is used to
-- traverse an effectful computation that also returns an additional output
-- value.
-traverseOf2 :: Over (->) (Compose f g) s t a b
- -> (a -> f (g b)) -> s -> f (g t)
+-- traverseOf2 :: Over (->) (Compose f g) s t a b
+-- -> (a -> f (g b)) -> s -> f (g t)
traverseOf2 k f = getCompose . traverseOf k (Compose . f)
-- | Traverses over a composition of a monad and a functor.
-- See 'traverseOf2'.
-mapMOf2 :: Over (->) (Compose (WrappedMonad m) g) s t a b
- -> (a -> m (g b)) -> s -> m (g t)
+-- mapMOf2 :: Over (->) (Compose (WrappedMonad m) g) s t a b
+-- -> (a -> m (g b)) -> s -> m (g t)
mapMOf2 k f = unwrapMonad . traverseOf2 k (WrapMonad . f)
-- | A helper lens over sets.
diff --git a/src/Ganeti/THH.hs b/src/Ganeti/THH.hs
index 9ab93d5e3..9a10a9a07 100644
--- a/src/Ganeti/THH.hs
+++ b/src/Ganeti/THH.hs
@@ -996,8 +996,8 @@ buildAccessor fnm fpfx rnm rpfx nm pfx field = do
f_body = AppE (VarE fpfx_name) $ VarE x
return $ [ SigD pfx_name $ ArrowT `AppT` ConT nm `AppT` ftype
, FunD pfx_name
- [ Clause [ConP rnm [VarP x]] (NormalB r_body) []
- , Clause [ConP fnm [VarP x]] (NormalB f_body) []
+ [ Clause [myConP rnm [VarP x]] (NormalB r_body) []
+ , Clause [myConP fnm [VarP x]] (NormalB f_body) []
]]
-- | Build lense declartions for a field.
@@ -1037,10 +1037,10 @@ buildLens (fnm, fdnm) (rnm, rdnm) nm pfx ar (field, i) = do
(ConE cdn)
$ zip [0..] vars
let setterE = LamE [VarP context, VarP var] $ CaseE (VarE context)
- [ Match (ConP fnm [ConP fdnm . set (element i) WildP
+ [ Match (myConP fnm [myConP fdnm . set (element i) WildP
$ map VarP vars])
(body (not isSimple) fnm fdnm) []
- , Match (ConP rnm [ConP rdnm . set (element i) WildP
+ , Match (myConP rnm [myConP rdnm . set (element i) WildP
$ map VarP vars])
(body False rnm rdnm) []
]
@@ -1098,9 +1098,9 @@ buildObjectWithForthcoming sname field_pfx fields = do
$ JSON.showJSON $(varE x) |]
let rdjson = FunD 'JSON.readJSON [Clause [] (NormalB read_body) []]
shjson = FunD 'JSON.showJSON
- [ Clause [ConP (mkName real_nm) [VarP x]]
+ [ Clause [myConP (mkName real_nm) [VarP x]]
(NormalB show_real_body) []
- , Clause [ConP (mkName forth_nm) [VarP x]]
+ , Clause [myConP (mkName forth_nm) [VarP x]]
(NormalB show_forth_body) []
]
instJSONdecl = gntInstanceD [] (AppT (ConT ''JSON.JSON) (ConT name))
@@ -1121,9 +1121,9 @@ buildObjectWithForthcoming sname field_pfx fields = do
(fromDictWKeys $(varE xs)) |]
todictx_r <- [| toDict $(varE x) |]
todictx_f <- [| ("forthcoming", JSON.JSBool True) : toDict $(varE x) |]
- let todict = FunD 'toDict [ Clause [ConP (mkName real_nm) [VarP x]]
+ let todict = FunD 'toDict [ Clause [myConP (mkName real_nm) [VarP x]]
(NormalB todictx_r) []
- , Clause [ConP (mkName forth_nm) [VarP x]]
+ , Clause [myConP (mkName forth_nm) [VarP x]]
(NormalB todictx_f) []
]
fromdict = FunD 'fromDictWKeys [ Clause [VarP xs]
@@ -1136,9 +1136,9 @@ buildObjectWithForthcoming sname field_pfx fields = do
let forthPredDecls = [ SigD forthPredName
$ ArrowT `AppT` ConT name `AppT` ConT ''Bool
, FunD forthPredName
- [ Clause [ConP (mkName real_nm) [WildP]]
+ [ Clause [myConP (mkName real_nm) [WildP]]
(NormalB $ ConE 'False) []
- , Clause [ConP (mkName forth_nm) [WildP]]
+ , Clause [myConP (mkName forth_nm) [WildP]]
(NormalB $ ConE 'True) []
]
]
@@ -1412,9 +1412,9 @@ savePParamField fvar field = do
normalexpr <- saveObjectField actualVal field
-- we have to construct the block here manually, because we can't
-- splice-in-splice
- return $ CaseE (VarE fvar) [ Match (ConP 'Nothing [])
+ return $ CaseE (VarE fvar) [ Match (myConP 'Nothing [])
(NormalB (ConE '[])) []
- , Match (ConP 'Just [VarP actualVal])
+ , Match (myConP 'Just [VarP actualVal])
(NormalB normalexpr) []
]
@@ -1440,9 +1440,9 @@ fillParam sname field_pfx fields = do
-- due to apparent bugs in some older GHC versions, we need to add these
-- prefixes to avoid "binding shadows ..." errors
fbinds <- mapM (newName . ("f_" ++) . nameBase) fnames
- let fConP = ConP name_f (map VarP fbinds)
+ let fConP = myConP name_f (map VarP fbinds)
pbinds <- mapM (newName . ("p_" ++) . nameBase) pnames
- let pConP = ConP name_p (map VarP pbinds)
+ let pConP = myConP name_p (map VarP pbinds)
-- PartialParams instance --------
-- fillParams
let fromMaybeExp fn pn = AppE (AppE (VarE 'fromMaybe) (VarE fn)) (VarE pn)
@@ -1462,7 +1462,7 @@ fillParam sname field_pfx fields = do
memptyClause = Clause [] (NormalB memptyExp) []
-- mappend
pbinds2 <- mapM (newName . ("p2_" ++) . nameBase) pnames
- let pConP2 = ConP name_p (map VarP pbinds2)
+ let pConP2 = myConP name_p (map VarP pbinds2)
-- note the reversal of 'l' and 'r' in the call to <|>
-- as we want the result to be the rightmost value
let altExp = zipWith (\l r -> AppE (AppE (VarE '(<|>)) (VarE r)) (VarE l))
@@ -1575,9 +1575,9 @@ genLoadExc tname sname opdefs = do
opdefs
-- the first function clause; we can't use [| |] due to TH
-- limitations, so we have to build the AST by hand
- let clause1 = Clause [ConP 'JSON.JSArray
- [ListP [ConP 'JSON.JSString [VarP exc_name],
- VarP exc_args]]]
+ let clause1 = Clause [myConP 'JSON.JSArray
+ [ListP [myConP 'JSON.JSString [VarP exc_name],
+ VarP exc_args]]]
(NormalB (CaseE (AppE (VarE 'JSON.fromJSString)
(VarE exc_name))
(str_matches ++ [defmatch]))) []
diff --git a/src/Ganeti/THH/Compat.hs b/src/Ganeti/THH/Compat.hs
index 1f51e49d7..9b07c47ef 100644
--- a/src/Ganeti/THH/Compat.hs
+++ b/src/Ganeti/THH/Compat.hs
@@ -41,6 +41,7 @@ module Ganeti.THH.Compat
, myNotStrict
, nonUnaryTupE
, mkDoE
+ , myConP
) where
import Language.Haskell.TH
@@ -129,3 +130,11 @@ mkDoE s =
#else
DoE s
#endif
+
+-- | ConP is now qualified with an optional [Type].
+myConP :: Name -> [Pat] -> Pat
+myConP n patterns = ConP n
+#if MIN_VERSION_template_haskell(2,18,0)
+ []
+#endif
+ patterns

View File

@ -0,0 +1,84 @@
Index: wrap-source/pkg/pdf/fonts.go
===================================================================
--- wrap-source.orig/pkg/pdf/fonts.go
+++ wrap-source/pkg/pdf/fonts.go
@@ -36,15 +36,15 @@ var (
BoldItalic: []string{"Courier Prime Bold Italic.ttf"},
}
- CourierNew = Font{
- RomanName: "Courier New",
- Roman: []string{"Courier New.ttf", "cour.ttf"},
- BoldName: "Courier New Bold",
- Bold: []string{"Courier New Bold.ttf", "courbd.ttf"},
- ItalicName: "Courier New Italic",
- Italic: []string{"Courier New Italic.ttf", "couri.ttf"},
- BoldItalicName: "Courier New Bold Italic",
- BoldItalic: []string{"Courier New Bold Italic.ttf", "courbi.ttf"},
+ LiberationMono = Font{
+ RomanName: "Liberation Mono Regular",
+ Roman: []string{"LiberationMono-Regular.ttf"},
+ BoldName: "Liberation Mono Bold",
+ Bold: []string{"LiberationMono-Bold.ttf"},
+ ItalicName: "Liberation Mono Italic",
+ Italic: []string{"LiberationMono-Italic.ttf"},
+ BoldItalicName: "Liberation Mono Bold Italic",
+ BoldItalic: []string{"LiberationMono-BoldItalic.ttf"},
}
FreeMono = Font{
@@ -151,9 +151,8 @@ func loadFonts() {
err := loadFont(CourierPrime)
if err != nil {
- // Courier New should be available on macOS and Windows
fmt.Fprintln(os.Stderr, "Warning: "+err.Error())
- err = loadFont(CourierNew)
+ err = loadFont(LiberationMono)
if err != nil {
// FreeMono as a final attempt
Index: wrap-source/pkg/cli/pdf.go
===================================================================
--- wrap-source.orig/pkg/cli/pdf.go
+++ wrap-source/pkg/cli/pdf.go
@@ -22,7 +22,7 @@ var pdfCmd = &cobra.Command{
var (
pdfProductionFlag bool
useCourierPrime bool
- useCourierNew bool
+ useLiberationMono bool
useFreeMono bool
pageSize string
font string
@@ -31,7 +31,7 @@ var (
func init() {
pdfCmd.Flags().BoolVarP(&pdfProductionFlag, "production", "p", false, "add scene numbers and other production text")
pdfCmd.Flags().BoolVar(&useCourierPrime, "use-courier-prime", false, "force the usage of Courier Prime")
- pdfCmd.Flags().BoolVar(&useCourierNew, "use-courier-new", false, "force the usage of Courier New")
+ pdfCmd.Flags().BoolVar(&useLiberationMono, "use-courier-new", false, "force the usage of Liberation Mono")
pdfCmd.Flags().BoolVar(&useFreeMono, "use-freemono", false, "force the usage of GNU FreeMono")
pdfCmd.Flags().StringVar(&pageSize, "page-size", "", "choose page size (letter or a4)")
pdfCmd.RegisterFlagCompletionFunc("page-size", func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
@@ -46,8 +46,8 @@ func pdfRun(cmd *cobra.Command, args []s
// Evaluate font selection
pdf.AutoFontSelection = false
- if (font != "" && atLeastOne(useCourierPrime, useCourierNew, useFreeMono)) ||
- moreThanOne(useCourierPrime, useCourierNew, useFreeMono) {
+ if (font != "" && atLeastOne(useCourierPrime, useLiberationMono, useFreeMono)) ||
+ moreThanOne(useCourierPrime, useLiberationMono, useFreeMono) {
// The fonts are mutualy exclusive so throw an error
handle(errors.New("tried to force multiple fonts at the same time"))
}
@@ -77,8 +77,8 @@ func pdfRun(cmd *cobra.Command, args []s
} else if useCourierPrime {
pdf.SelectedFont = pdf.CourierPrime
- } else if useCourierNew {
- pdf.SelectedFont = pdf.CourierNew
+ } else if useLiberationMono {
+ pdf.SelectedFont = pdf.LiberationMono
} else if useFreeMono {
pdf.SelectedFont = pdf.FreeMono

View File

@ -1,113 +0,0 @@
This patch removes sources of build non-determinism in the upstream sources.
In particular, many of the compiled sources are generated with Python code,
which in turn uses dictionaries to index the output C functions. However,
iterators over Python dictionaries have no guaranteed order, thus resulting in
the C functions being output in a random order between builds.
The patch below fixes this by forcing an order during output in several key
places. Note, however, that future updates may uncover new such places that
just happen to be non-problematic at the time of this patch. If you are
reading this due to finding such issues, feel free to contact me at
elaexuotee@wilsonb.com for help.
diff --git a/pysrc/ild_codegen.py b/pysrc/ild_codegen.py
index 628ec45..a9bff79 100755
--- a/pysrc/ild_codegen.py
+++ b/pysrc/ild_codegen.py
@@ -188,14 +188,14 @@ def gen_l2_func_list(agi, target_nt_dict, arg_nt_dict,
ild_t_member):
"""generate L2 functions"""
l2_func_list = []
- for (nt_name,array) in target_nt_dict.items():
+ for (nt_name,array) in sorted(target_nt_dict.items()):
target_opname = array.get_target_opname()
if array.is_const_lookup_fun():
fo = gen_const_l2_function(agi, nt_name,
target_opname, ild_t_member)
l2_func_list.append(fo)
else:
- for arg_nt_seq,arg_arr in arg_nt_dict.items():
+ for arg_nt_seq,arg_arr in sorted(arg_nt_dict.items()):
fo = gen_scalable_l2_function(agi, nt_name,
target_opname, ild_t_member, arg_arr, list(arg_nt_seq))
l2_func_list.append(fo)
diff --git a/pysrc/ild_disp.py b/pysrc/ild_disp.py
index 942c036..cf80e29 100755
--- a/pysrc/ild_disp.py
+++ b/pysrc/ild_disp.py
@@ -350,7 +350,8 @@ def work(agi, united_lookup, disp_nts, brdisp_nts, ild_gendir,
disp_dict = _gen_l3_array_dict(agi, disp_nts, _disp_token)
- nt_arr_list = list(brdisp_dict.values()) + list(disp_dict.values())
+ nt_arr_list = ([v for (k,v) in sorted(brdisp_dict.items())] +
+ [v for (k,v) in sorted(disp_dict.items())])
#create function that calls all initialization functions
init_f = ild_nt.gen_init_function(nt_arr_list, 'xed_ild_disp_l3_init')
@@ -367,7 +368,7 @@ def work(agi, united_lookup, disp_nts, brdisp_nts, ild_gendir,
l2_functions = []
eosz_op = ild_eosz.get_target_opname()
easz_op = ild_easz.get_target_opname()
- for nt_name,array in list(disp_dict.items()) + list(brdisp_dict.items()):
+ for nt_name,array in sorted(disp_dict.items()) + sorted(brdisp_dict.items()):
#Some DISP NTs depend on EOSZ, others on EASZ, we need to know
#that when we generate L2 functions
if eosz_op in array.get_arg_names():
diff --git a/pysrc/ild_easz.py b/pysrc/ild_easz.py
index 02cd691..c53b9f2 100755
--- a/pysrc/ild_easz.py
+++ b/pysrc/ild_easz.py
@@ -165,9 +165,10 @@ def work(agi, united_lookup, easz_nts, ild_gendir, debug):
return
nt_seq_arrays[tuple(nt_seq)] = array
#init function calls all single init functions for the created tables
- init_f = ild_nt.gen_init_function(list(nt_seq_arrays.values()),
+ nt_seq_values = [v for (k,v) in sorted(nt_seq_arrays.items())]
+ init_f = ild_nt.gen_init_function(nt_seq_values,
'xed_ild_easz_init')
- ild_nt.dump_lu_arrays(agi, list(nt_seq_arrays.values()), _easz_c_fn,
+ ild_nt.dump_lu_arrays(agi, nt_seq_values, _easz_c_fn,
mbuild.join('include-private', _easz_header_fn),
init_f)
getter_fos = []
diff --git a/pysrc/ild_eosz.py b/pysrc/ild_eosz.py
index 6643bc3..89d2d89 100755
--- a/pysrc/ild_eosz.py
+++ b/pysrc/ild_eosz.py
@@ -200,10 +200,11 @@ def work(agi, united_lookup, eosz_nts, ild_gendir, debug):
return None
nt_seq_arrays[tuple(nt_seq)] = array
#init function calls all single init functions for the created tables
- init_f = ild_nt.gen_init_function(list(nt_seq_arrays.values()),
+ nt_seq_values = [v for (k,v) in sorted(nt_seq_arrays.items())]
+ init_f = ild_nt.gen_init_function(nt_seq_values,
'xed_ild_eosz_init')
#dump init and lookup functions for EOSZ sequences
- ild_nt.dump_lu_arrays(agi, list(nt_seq_arrays.values()), _eosz_c_fn,
+ ild_nt.dump_lu_arrays(agi, nt_seq_values, _eosz_c_fn,
mbuild.join('include-private', _eosz_header_fn),
init_f)
#generate EOSZ getter functions - they get xed_decoded_inst_t*
diff --git a/pysrc/ild_imm.py b/pysrc/ild_imm.py
index 51c413c..0530bae 100755
--- a/pysrc/ild_imm.py
+++ b/pysrc/ild_imm.py
@@ -322,12 +322,14 @@ def work(agi, united_lookup, imm_nts, ild_gendir, eosz_dict,
level='l3')
nt_dict[nt_name] = array
+ nt_dict_values = [v for (k,v) in sorted(nt_dict.items())]
+
#create function that calls all initialization functions for L3
- init_f = ild_nt.gen_init_function(list(nt_dict.values()),
+ init_f = ild_nt.gen_init_function(nt_dict_values,
'xed_ild_imm_l3_init')
#dump L3 functions
- ild_nt.dump_lu_arrays(agi, list(nt_dict.values()), _l3_c_fn,
+ ild_nt.dump_lu_arrays(agi, nt_dict_values, _l3_c_fn,
mbuild.join('include-private',_l3_header_fn),
init_f)

View File

@ -1,37 +0,0 @@
Fix name clash with libcap 2.29.
Taken from upstream:
https://github.com/iputils/iputils/commit/18f9a84e0e702841d6cc4d5f593de4fbd1348e83
diff --git a/ninfod/ninfod.c b/ninfod/ninfod.c
--- a/ninfod/ninfod.c
+++ b/ninfod/ninfod.c
@@ -455,7 +455,7 @@ static void do_daemonize(void)
/* --------- */
#ifdef HAVE_LIBCAP
static const cap_value_t cap_net_raw = CAP_NET_RAW;
-static const cap_value_t cap_setuid = CAP_SETUID;
+static const cap_value_t cap_setuserid = CAP_SETUID;
static cap_flag_value_t cap_ok;
#else
static uid_t euid;
@@ -487,7 +487,7 @@ static void limit_capabilities(void)
cap_get_flag(cap_cur_p, CAP_SETUID, CAP_PERMITTED, &cap_ok);
if (cap_ok != CAP_CLEAR)
- cap_set_flag(cap_p, CAP_PERMITTED, 1, &cap_setuid, CAP_SET);
+ cap_set_flag(cap_p, CAP_PERMITTED, 1, &cap_setuserid, CAP_SET);
if (cap_set_proc(cap_p) < 0) {
DEBUG(LOG_ERR, "cap_set_proc: %s\n", strerror(errno));
@@ -520,8 +520,8 @@ static void drop_capabilities(void)
/* setuid / setuid */
if (cap_ok != CAP_CLEAR) {
- cap_set_flag(cap_p, CAP_PERMITTED, 1, &cap_setuid, CAP_SET);
- cap_set_flag(cap_p, CAP_EFFECTIVE, 1, &cap_setuid, CAP_SET);
+ cap_set_flag(cap_p, CAP_PERMITTED, 1, &cap_setuserid, CAP_SET);
+ cap_set_flag(cap_p, CAP_EFFECTIVE, 1, &cap_setuserid, CAP_SET);
if (cap_set_proc(cap_p) < 0) {
DEBUG(LOG_ERR, "cap_set_proc: %s\n", strerror(errno));

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