Merge branch 'master' into staging.

With resolved conflicts in:
	gnu/local.mk
	gnu/packages/crates-io.scm
This commit is contained in:
Maxim Cournoyer 2022-09-27 14:24:37 -04:00
commit 3c6e220d81
No known key found for this signature in database
GPG Key ID: 1260E46482E63562
119 changed files with 8473 additions and 2818 deletions

21
NEWS
View File

@ -2,7 +2,7 @@
#+TITLE: Guix NEWS history of user-visible changes
#+STARTUP: content hidestars
Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
Copyright © 2013-2022 Ludovic Courtès <ludo@gnu.org>
Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org>
@ -48,6 +48,7 @@ Please send Guix bug reports to bug-guix@gnu.org.
*** New interface for declaring swap space
*** GNOME is now at version 42
*** TeX Live is now at version 2021
*** Multiple TeX Live trees can now be used via GUIX_TEXMF
*** Python is now faster thanks to being built with optimizations
*** The Rust bootstrap now starts from 1.54 instead of 1.19
*** Most Python 2 packages have been removed
@ -55,8 +56,7 @@ Please send Guix bug reports to bug-guix@gnu.org.
*** Faster shared libraries discovery via a per-package dynamic linker cache
*** Package inputs can now be plain package lists
*** A package origin can now be a single file rather than an archive
*** Multiple Tex Live trees can now be used via GUIX_TEXMF
*** A new sanity-check phase detects packaging problems at build time
*** New sanity-check phase to detect Python packaging problems at build time
*** Fetching sources can now fall-back to use Disarchive
*** Improved CI and infrastructure
*** Multiple cross-compilation tooling addition and fixes
@ -71,14 +71,17 @@ Please send Guix bug reports to bug-guix@gnu.org.
*** The installer now has a crash dump upload mechanism
*** Emacs now supports native compilation
*** GRUB bootloader now supports chain-loading
*** The GNU Shepherd was upgraded to 0.9.2
*** The init RAM disk honors more arguments—e.g. root and rootflags
*** guix system image can now generate WSL images
** Programming interfaces
*** (guix records) now supports “field sanitizers”
*** Build phases are no longer required to return a boolean
*** G-Expressions can now be used to author build phases
*** Various improvements to the helpers in (gnu service configuration)
*** Package input fields can now plain package lists
*** G-expressions can now be used in build phases
*** New modify-inputs macro to ease customizing a list of package inputs
*** New this-package-input and this-package-native-input macros
*** Build phases are no longer required to return a boolean
*** (guix records) now supports “field sanitizers”
*** Various improvements to the helpers in (gnu service configuration)
*** texlive-union is now deprecated in favor of texlive-updmap.cfg
*** New (guix cpu) module
*** New (guix least-authority) module
@ -112,7 +115,7 @@ nar-herder, opendht, rasdaemon, seatd, strongswan
(<https://issues.guix.gnu.org/51425>)
*** Fonts can now be discovered in any profile via XDG_DATA_DIRS
(<https://issues.guix.gnu.org/31403>)
*** Python modules discovery no longer uses PYTHONPATH
*** Python modules are searched in GUIX_PYTHONPATH instead of PYTHONPATH
*** Various Python reproducibility fixes
*** The installer now supports MSDOS disk labels on UEFI systems
(<https://issues.guix.gnu.org/47889>)

View File

@ -1406,6 +1406,47 @@ for more information. You can install @command{git send-email} with
@command{guix install git:send-email}.
@c Debbugs bug: https://debbugs.gnu.org/db/15/15361.html
To maximize the chances that you patch series is reviewed, the preferred
submission way is to use the @code{etc/teams.scm} script to notify the
appropriate team members (@pxref{Teams}).
@unnumberedsubsec Teams
@anchor{Teams}
@cindex teams
There are several teams mentoring different parts of the Guix source
code. To list all those teams, you can run from a Guix checkout:
@example
$ ./etc/teams.scm list-teams
id: mentors
name: Mentors
description: A group of mentors who chaperone contributions by newcomers.
members:
+ Christopher Baines <mail@@cbaines.net>
+ Ricardo Wurmus <rekado@@elephly.net>
+ Mathieu Othacehe <othacehe@@gnu.org>
+ jgart <jgart@@dismail.de>
+ Ludovic Courtès <ludo@@gnu.org>
@dots{}
@end example
You can run the following command to have the @code{Mentors} team put in
CC of a patch series:
@example
$ git send-email --to XXX@@debbugs.gnu.org $(./etc/teams.scm cc mentors) *.patch
@end example
The appropriate team or teams can also be inferred from the modified
files. For instance, if you want to send the two latest commits of the
current Git repository to review, you can run:
@example
$ guix shell -D guix
[env]$ git send-email --to XXX@@debbugs.gnu.org $(./etc/teams.scm cc-members HEAD~2 HEAD) *.patch
@end example
@node Tracking Bugs and Patches
@section Tracking Bugs and Patches

View File

@ -106,6 +106,7 @@ Copyright @copyright{} 2022 Philip M@sup{c}Grath@*
Copyright @copyright{} 2022 Karl Hallsby@*
Copyright @copyright{} 2022 Justin Veilleux@*
Copyright @copyright{} 2022 Reily Siegel@*
Copyright @copyright{} 2022 Simon Streit@*
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@ -182,6 +183,8 @@ Weblate} (@pxref{Translating Guix}).
* System Configuration:: Configuring the operating system.
* Home Configuration:: Configuring the home environment.
* Documentation:: Browsing software user manuals.
* Platforms:: Defining platforms.
* System Images:: Creating system images.
* Installing Debugging Files:: Feeding the debugger.
* Using TeX and LaTeX:: Typesetting.
* Security Updates:: Deploying security fixes quickly.
@ -385,6 +388,7 @@ Services
* DNS Services:: DNS daemons.
* VPN Services:: VPN daemons.
* Network File System:: NFS related services.
* Samba Services:: Samba services.
* Continuous Integration:: Cuirass and Laminar services.
* Power Management Services:: Extending battery life.
* Audio Services:: The MPD.
@ -405,6 +409,18 @@ Defining Services
* Shepherd Services:: A particular type of service.
* Complex Configurations:: Defining bindings for complex configurations.
Platforms
* platform Reference:: Detail of platform declarations.
* Supported Platforms:: Description of the supported platforms.
System Images
* image Reference:: Detail of image declarations.
* Instantiate an Image:: How to instantiate an image record.
* image-type Reference:: Detail of image types declaration.
* Image Modules:: Definition of image modules.
Installing Debugging Files
* Separate Debug Info:: Installing 'debug' outputs.
@ -17516,6 +17532,7 @@ declaration.
* DNS Services:: DNS daemons.
* VPN Services:: VPN daemons.
* Network File System:: NFS related services.
* Samba Services:: Samba services.
* Continuous Integration:: Cuirass and Laminar services.
* Power Management Services:: Extending battery life.
* Audio Services:: The MPD.
@ -31297,6 +31314,125 @@ The verbosity level of the daemon.
@end table
@end deftp
@node Samba Services, Continuous Integration, Network File System, Services
@subsection Samba Services
@cindex Samba
@cindex SMB
The @code{(gnu services samba)} module provides service definitions for
Samba as well as additional helper services. Currently it provides the
following services.
@subsubheading Samba
@uref{https://www.samba.org, Samba} provides network shares for folders
and printers using the SMB/CIFS protocol commonly used on Windows. It
can also act as an Active Directory Domain Controller (AD DC) for other
hosts in an heterougenious network with different types of Computer
systems.
@defvar {Scheme variable} samba-service-type
The service type to enable the samba services @code{samba}, @code{nmbd},
@code{smbd} and @code{winbindd}. By default this service type does not
run as an AD DC, hence @code{samba} remains disabled.
@end defvar
@deftp{Data Type} samba-service-configuration
Configuration record for the Samba suite.
@table @asis
@item @code{package} (default: @code{samba})
The samba package to use.
@item @code{config-file} (default: @code{#f})
The config file to use.
@item @code{enable-samba?} (default: @code{#f})
Manually enable the @code{samba} daemon.
@item @code{enable-smbd?} (default: @code{#f})
Manually enable the @code{smbd} daemon.
@item @code{enable-nmbd?} (default: @code{#f})
Manually enable the @code{nmbd} daemon.
@item @code{enable-winbindd?} (default: @code{#f})
Manually enable the @code{winbindd} daemon.
@end table
@end deftp
@cindex wsdd
@subsubheading Web Service Discovery Daemon
Web Service Discovery Daemon implements
@uref{http://docs.oasis-open.org/ws-dd/discovery/1.1/os/wsdd-discovery-1.1-spec-os.html,
Web Services Dynamic Discovery} protocol that enables host discovery --
similar to Avahi -- over Multicast DNS. It is a drop-in replacement for
SMB hosts that have had SMBv1 disabled for security reasons.
@defvr {Scheme Variable} wsdd-service-type
Service type for the WSD host daemon. The value for
this service type is a @code{wsdd-configuration} record. The details
for the @code{wsdd-configuration} record type are given below.
@end defvr
@deftp{Data Type} wsdd-configuration This data type represents the
configuration for the wsdd service.
@table @asis
@item @code{package} (default: @code{wsdd})
The wsdd package to use.
@item @code{ipv4only?} (default: @code{#f})
Only listen to IPv4 addresses.
@item @code{ipv6only} (default: @code{#f})
Only listen to IPv6 addresses. Please note: Activating both options is
not possible, since there would be no IP versions to listen to.
@item @code{chroot} (default: @code{#f})
Chroot into a separate directory to prevent access to other directories.
This is to increase security in case there is a vulnerability in
@command{wsdd}.
@item @code{hop-limit} (default: @code{1})
Limit to the level of hops for multicast packets. The default is
@var{1} which should prevent packets from leaving the local network.
@item @code{interface} (default: @code{'()})
Limit to the given list of interfaces to listen to. By default wsdd
will listen to all interfaces. Except the loopback interface is never
used.
@item @code{uuid-device} (default: @code{#f})
The WSD protocol requires a device to have a UUID. Set this to manually
assign the service a UUID.
@item @code{domain} (default: @code{#f})
Notify this host is a member of an Active Directory.
@item @code{host-name} (default: @code{#f})
Manually set the hostname rather than letting @command{wsdd} inherit
this host's hostname. Only the host name part of a possible FQDN will
be used in the default case.
@item @code{preserve-case?} (default: @code{#f})
By default @command{wsdd} will convert the hostname in workgroup to all
uppercase. The opposite is true for hostnames in domains. Setting this
parameter will preserve case.
@item @code{workgroup} (default: @var{"WORKGROUP"})
Change the name of the workgroup. By default @command{wsdd} reports
this host being member of a workgroup.
@end table
@end deftp
@node Continuous Integration
@subsection Continuous Integration
@ -41166,6 +41302,623 @@ reader,, info-stnd, Stand-alone GNU Info}) and its Emacs counterpart
bindings to navigate manuals. @xref{Getting Started,,, info, Info: An
Introduction}, for an introduction to Info navigation.
@node Platforms
@chapter Platforms
The packages and systems built by Guix are intended, like most computer
programs, to run on a CPU with a specific instruction set, and under a
specific operating system. Those programs are often also targeting a
specific kernel and system library. Those constraints are captured by
Guix in @code{platform} records.
@menu
* platform Reference:: Detail of platform declarations.
* Supported Platforms:: Description of the supported platforms.
@end menu
@node platform Reference
@section @code{platform} Reference
The @code{platform} data type describes a @dfn{platform}: an
@acronym{ISA, instruction set architecture}, combined with an operating
system and possibly additional system-wide settings such as the
@acronym{ABI, application binary interface}.
@deftp {Data Type} platform
This is the data type representing a platform.
@table @asis
@item @code{target}
This field specifies the platform's GNU triplet as a string
(@pxref{Specifying Target Triplets, GNU configuration triplets,,
autoconf, Autoconf}).
@item @code{system}
This string is the system type as it is known to Guix and passed,
for instance, to the @option{--system} option of most commands.
It usually has the form @code{"@var{cpu}-@var{kernel}"}, where
@var{cpu} is the target CPU and @var{kernel} the target operating
system kernel.
It can be for instance @code{"aarch64-linux"} or @code{"armhf-linux"}.
You will encounter system types when you perform native builds
(@pxref{Native Builds}).
@item @code{linux-architecture} (default: @code{#false})
This optional string field is only relevant if the kernel is Linux. In
that case, it corresponds to the ARCH variable used when building Linux,
@code{"mips"} for instance.
@item @code{glibc-dynamic-linker}
This field is the name of the GNU C Library dynamic linker for the
corresponding system, as a string. It can be
@code{"/lib/ld-linux-armhf.so.3"}.
@end table
@end deftp
@node Supported Platforms
@section Supported Platforms
The @code{(guix platforms @dots{})} modules export the following
variables, each of which is bound to a @code{platform} record.
@defvr {Scheme Variable} armv7-linux
Platform targeting ARM v7 CPU running GNU/Linux.
@end defvr
@defvr {Scheme Variable} aarch64-linux
Platform targeting ARM v8 CPU running GNU/Linux.
@end defvr
@defvr {Scheme Variable} mips64-linux
Platform targeting MIPS little-endian 64-bit CPU running GNU/Linux.
@end defvr
@defvr {Scheme Variable} powerpc-linux
Platform targeting PowerPC big-endian 32-bit CPU running GNU/Linux.
@end defvr
@defvr {Scheme Variable} powerpc64le-linux
Platform targeting PowerPC little-endian 64-bit CPU running GNU/Linux.
@end defvr
@defvr {Scheme Variable} riscv64-linux
Platform targeting RISC-V 64-bit CPU running GNU/Linux.
@end defvr
@defvr {Scheme Variable} i686-linux
Platform targeting x86 CPU running GNU/Linux.
@end defvr
@defvr {Scheme Variable} x86_64-linux
Platform targeting x86 64-bit CPU running GNU/Linux.
@end defvr
@defvr {Scheme Variable} i686-mingw
Platform targeting x86 CPU running Windows, with run-time support from
MinGW.
@end defvr
@defvr {Scheme Variable} x86_64-mingw
Platform targeting x86 64-bit CPU running Windows, with run-time support
from MinGW.
@end defvr
@defvr {Scheme Variable} i586-gnu
Platform targeting x86 CPU running GNU/Hurd (also referred to as
``GNU'').
@end defvr
@node System Images
@chapter Creating System Images
@cindex system images
When it comes to installing Guix System for the first time on a new
machine, you can basically proceed in three different ways. The first
one is to use an existing operating system on the machine to run the
@command{guix system init} command (@pxref{Invoking guix system}). The
second one, is to produce an installation image (@pxref{Building the
Installation Image}). This is a bootable system which role is to
eventually run @command{guix system init}. Finally, the third option
would be to produce an image that is a direct instantiation of the
system you wish to run. That image can then be copied on a bootable
device such as an USB drive or a memory card. The target machine would
then directly boot from it, without any kind of installation procedure.
The @command{guix system image} command is able to turn an operating
system definition into a bootable image. This command supports
different image types, such as @code{efi-raw}, @code{iso9660} and
@code{docker}. Any modern @code{x86_64} machine will probably be able
to boot from an @code{iso9660} image. However, there are a few machines
out there that require specific image types. Those machines, in general
using @code{ARM} processors, may expect specific partitions at specific
offsets.
This chapter explains how to define customized system images and how to
turn them into actual bootable images.
@menu
* image Reference:: Detail of image declarations.
* Instantiate an Image:: How to instantiate an image record.
* image-type Reference:: Detail of image types declaration.
* Image Modules:: Definition of image modules.
@end menu
@node image Reference
@section @code{image} Reference
The @code{image} record, described right after, allows you to define a
customized bootable system image.
@deftp {Data Type} image
This is the data type representing a system image.
@table @asis
@item @code{name} (default: @code{#false})
The image name as a symbol, @code{'my-iso9660} for instance. The name
is optional and it defaults to @code{#false}.
@item @code{format}
The image format as a symbol. The following formats are supported:
@itemize
@item @code{disk-image}, a raw disk image composed of one or multiple
partitions.
@item @code{compressed-qcow2}, a compressed qcow2 image composed of
one or multiple partitions.
@item @code{docker}, a Docker image.
@item @code{iso9660}, an ISO-9660 image.
@item @code{tarball}, a tar.gz image archive.
@item @code{wsl2}, a WSL2 image.
@end itemize
@item @code{platform} (default: @code{#false})
The @code{platform} record the image is targeting (@pxref{Platforms}),
@code{aarch64-linux} for instance. By default, this field is set to
@code{#false} and the image will target the host platform.
@item @code{size} (default: @code{'guess})
The image size in bytes or @code{'guess}. The @code{'guess} symbol,
which is the default, means that the image size will be inferred based
on the image content.
@item @code{operating-system}
The image's @code{operating-system} record that is instanciated.
@item @code{partition-table-type} (default: @code{'mbr})
The image partition table type as a symbol. Possible values are
@code{'mbr} and @code{'gpt}. It default to @code{'mbr}.
@item @code{partitions} (default: @code{'()})
The image partitions as a list of @code{partition} records
(@pxref{partition Reference}).
@item @code{compression?} (default: @code{#true})
Whether the image content should be compressed, as a boolean. It
defaults to @code{#true} and only applies to @code{'iso9660} image
formats.
@item @code{volatile-root?} (default: @code{#true})
Whether the image root partition should be made volatile, as a boolean.
This is achieved by using a RAM backed file system (overlayfs) that is
mounted on top of the root partition by the initrd. It defaults to
@code{#true}. When set to @code{#false}, the image root partition is
mounted as read-write partition by the initrd.
@item @code{shared-store?} (default: @code{#false})
Whether the image's store should be shared with the host system, as a
boolean. This can be useful when creating images dedicated to virtual
machines. When set to @code{#false}, which is the default, the image's
@code{operating-system} closure is copied to the image. Otherwise, when
set to @code{#true}, it is assumed that the host store will be made
available at boot, using a @code{9p} mount for instance.
@item @code{shared-network?} (default: @code{#false})
Whether to use the host network interfaces within the image, as a
boolean. This is only used for the @code{'docker} image format. It
defaults to @code{#false}.
@item @code{substitutable?} (default: @code{#true})
Whether the image derivation should be substitutable, as a boolean. It
defaults to @code{true}.
@end table
@end deftp
@node partition Reference
@subsection @code{partition} Reference
In @code{image} record may contain some partitions.
@deftp {Data Type} partition
This is the data type representing an image partition.
@table @asis
@item @code{size} (default: @code{'guess})
The partition size in bytes or @code{'guess}. The @code{'guess} symbol,
which is the default, means that the partition size will be inferred
based on the partition content.
@item @code{offset} (default: @code{0})
The partition's start offset in bytes, relative to the image start or
the previous partition end. It defaults to @code{0} which means that
there is no offset applied.
@item @code{file-system} (default: @code{"ext4"})
The partition file system as a string, defaulting to @code{"ext4"}. The
supported values are @code{"vfat"}, @code{"fat16"}, @code{"fat32"} and
@code{"ext4"}.
@item @code{file-system-options} (default: @code{'()})
The partition file system creation options that should be passed to the
partition creation tool, as a list of strings. This is only supported
when creating @code{"ext4"} partitions.
See the @code{"extended-options"} man page section of the
@code{"mke2fs"} tool for a more complete reference.
@item @code{label}
The partition label as a mandatory string, @code{"my-root"} for
instance.
@item @code{uuid} (default: @code{#false})
The partition UUID as an @code{uuid} record (@pxref{File Systems}). By
default it is @code{#false}, which means that the partition creation
tool will attribute a random UUID to the partition.
@item @code{flags} (default: @code{'()})
The partition flags as a list of symbols. Possible values are
@code{'boot} and @code{'esp}. The @code{'boot} flags should be set if
you want to boot from this partition. Exactly one partition should have
this flag set, usually the root one. The @code{'esp} flag identifies a
UEFI System Partition.
@item @code{initializer} (default: @code{#false})
The partition initializer procedure as a gexp. This procedure is called
to populate a partition. If no initializer is passed, the
@code{initialize-root-partition} procedure from the @code{(gnu build
image)} module is used.
@end table
@end deftp
@node Instantiate an Image
@section Instantiate an Image
Let's say you would like to create an MBR image with three distinct
partitions:
@itemize
@item The @acronym{ESP, EFI System Partition}, a partition of
40@tie{}MiB at offset 1024@tie{}KiB with a vfat file system.
@item an ext4 partition of 50@tie{}MiB data file, and labeled ``data''.
@item an ext4 bootable partition containing the @code{%simple-os}
operating-system.
@end itemize
You would then write the following image definition in a
@code{my-image.scm} file for instance.
@lisp
(use-modules (gnu)
(gnu image)
(gnu tests)
(gnu system image)
(guix gexp))
(define MiB (expt 2 20))
(image
(format 'disk-image)
(operating-system %simple-os)
(partitions
(list
(partition
(size (* 40 MiB))
(offset (* 1024 1024))
(label "GNU-ESP")
(file-system "vfat")
(flags '(esp))
(initializer (gexp initialize-efi-partition)))
(partition
(size (* 50 MiB))
(label "DATA")
(file-system "ext4")
(initializer #~(lambda* (root . rest)
(mkdir root)
(call-with-output-file
(string-append root "/data")
(lambda (port)
(format port "my-data"))))))
(partition
(size 'guess)
(label root-label)
(file-system "ext4")
(flags '(boot))
(initializer (gexp initialize-root-partition))))))
@end lisp
Note that the first and third partitions use generic initializers
procedures, initialize-efi-partition and initialize-root-partition
respectively. The initialize-efi-partition installs a GRUB EFI loader
that is loading the GRUB bootloader located in the root partition. The
initialize-root-partition instantiates a complete system as defined by
the @code{%simple-os} operating-system.
You can now run:
@example
guix system image my-image.scm
@end example
to instantiate the @code{image} definition. That produces a disk image
which has the expected structure:
@example
$ parted $(guix system image my-image.scm) print
@dots{}
Model: (file)
Disk /gnu/store/yhylv1bp5b2ypb97pd3bbhz6jk5nbhxw-disk-image: 1714MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 43.0MB 41.9MB primary fat16 esp
2 43.0MB 95.4MB 52.4MB primary ext4
3 95.4MB 1714MB 1619MB primary ext4 boot
@end example
The size of the @code{boot} partition has been inferred to @code{1619MB}
so that it is large enough to host the @code{%simple-os}
operating-system.
You can also use existing @code{image} record definitions and inherit
from them to simplify the @code{image} definition. The @code{(gnu
system image)} module provides the following @code{image} definition
variables.
@defvr {Scheme Variable} efi-disk-image
A MBR disk-image composed of two partitions: a 64 bits ESP partition and
a ROOT boot partition. This image can be used on most @code{x86_64} and
@code{i686} machines, supporting BIOS or UEFI booting.
@end defvr
@defvr {Scheme Variable} efi32-disk-image
Same as @code{efi-disk-image} but with a 32 bits EFI partition.
@end defvr
@defvr {Scheme Variable} iso9660-image
An ISO-9660 image composed of a single bootable partition. This image
can also be used on most @code{x86_64} and @code{i686} machines.
@end defvr
@defvr {Scheme Variable} docker-image
A Docker image that can be used to spawn a Docker container.
@end defvr
Using the @code{efi-disk-image} we can simplify our previous
@code{image} declaration this way:
@lisp
(use-modules (gnu)
(gnu image)
(gnu tests)
(gnu system image)
(guix gexp)
(ice-9 match))
(define MiB (expt 2 20))
(define data
(partition
(size (* 50 MiB))
(label "DATA")
(file-system "ext4")
(initializer #~(lambda* (root . rest)
(mkdir root)
(call-with-output-file
(string-append root "/data")
(lambda (port)
(format port "my-data")))))))
(image
(inherit efi-disk-image)
(operating-system %simple-os)
(partitions
(match (image-partitions efi-disk-image)
((esp root)
(list esp data root)))))
@end lisp
This will give the exact same @code{image} instantiation but the
@code{image} declaration is simpler.
@node image-type Reference
@section image-type Reference
The @command{guix system image} command can, as we saw above, take a
file containing an @code{image} declaration as argument and produce an
actual disk image from it. The same command can also handle a file
containing an @code{operating-system} declaration as argument. In that
case, how is the @code{operating-system} turned into an image?
That's where the @code{image-type} record intervenes. This record
defines how to transform an @code{operating-system} record into an
@code{image} record.
@deftp {Data Type} image-type
This is the data type representing an image-type.
@table @asis
@item @code{name}
The image-type name as a mandatory symbol, @code{'efi32-raw} for
instance.
@item @code{constructor}
The image-type constructor, as a mandatory procedure that takes an
@code{operating-system} record as argument and returns an @code{image}
record.
@end table
@end deftp
There are several @code{image-type} records provided by the @code{(gnu
system image)} and the @code{(gnu system images @dots{})} modules.
@defvr {Scheme Variable} efi-raw-image-type
Build an image based on the @code{efi-disk-image} image.
@end defvr
@defvr {Scheme Variable} efi32-raw-image-type
Build an image based on the @code{efi32-disk-image} image.
@end defvr
@defvr {Scheme Variable} qcow2-image-type
Build an image based on the @code{efi-disk-image} image but with the
@code{compressed-qcow2} image format.
@end defvr
@defvr {Scheme Variable} iso-image-type
Build a compressed image based on the @code{iso9660-image} image.
@end defvr
@defvr {Scheme Variable} uncompressed-iso-image-type
Build an image based on the @code{iso9660-image} image but with the
@code{compression?} field set to @code{#false}.
@end defvr
@defvr {Scheme Variable} docker-image-type
Build an image based on the @code{docker-image} image.
@end defvr
@defvr {Scheme Variable} raw-with-offset-image-type
Build an MBR image with a single partition starting at a @code{1024KiB}
offset. This is useful to leave some room to install a bootloader in
the post-MBR gap.
@end defvr
@defvr {Scheme Variable} pinebook-pro-image-type
Build an image that is targeting the Pinebook Pro machine. The MBR
image contains a single partition starting at a @code{9MiB} offset. The
@code{u-boot-pinebook-pro-rk3399-bootloader} bootloader will be
installed in this gap.
@end defvr
@defvr {Scheme Variable} rock64-image-type
Build an image that is targeting the Rock64 machine. The MBR image
contains a single partition starting at a @code{16MiB} offset. The
@code{u-boot-rock64-rk3328-bootloader} bootloader will be installed in
this gap.
@end defvr
@defvr {Scheme Variable} novena-image-type
Build an image that is targeting the Novena machine. It has the same
characteristics as @code{raw-with-offset-image-type}.
@end defvr
@defvr {Scheme Variable} pine64-image-type
Build an image that is targeting the Pine64 machine. It has the same
characteristics as @code{raw-with-offset-image-type}.
@end defvr
@defvr {Scheme Variable} hurd-image-type
Build an image that is targeting a @code{i386} machine running the Hurd
kernel. The MBR image contains a single ext2 partitions with specific
@code{file-system-options} flags.
@end defvr
@defvr {Scheme Variable} hurd-qcow2-image-type
Build an image similar to the one built by the @code{hurd-image-type}
but with the @code{format} set to @code{'compressed-qcow2}.
@end defvr
@defvr {Scheme Variable} wsl2-image-type
Build an image for the @acronym{WSL2, Windows Subsystem for Linux 2}.
It can be imported by running:
@example
wsl --import Guix ./guix ./wsl2-image.tar.gz
wsl -d Guix
@end example
@end defvr
So, if we get back to the @code{guix system image} command taking an
@code{operating-system} declaration as argument. By default, the
@code{efi-raw-image-type} is used to turn the provided
@code{operating-system} into an actual bootable image.
To use a different @code{image-type}, the @code{--image-type} option can
be used. The @code{--list-image-types} option will list all the
supported image types. It turns out to be a textual listing of all the
@code{image-types} variables described just above (@pxref{Invoking guix
system}).
@node Image Modules
@section Image Modules
Let's take the example of the Pine64, an ARM based machine. To be able
to produce an image targeting this board, we need the following
elements:
@itemize
@item An @code{operating-system} record containing at least
an appropriate kernel (@code{linux-libre-arm64-generic}) and bootloader
@code{u-boot-pine64-lts-bootloader}) for the Pine64.
@item Possibly, an @code{image-type} record providing a way to
turn an @code{operating-system} record to an @code{image} record
suitable for the Pine64.
@item An actual @code{image} that can be instantiated with the
@command{guix system image} command.
@end itemize
The @code{(gnu system images pine64)} module provides all those
elements: @code{pine64-barebones-os}, @code{pine64-image-type} and
@code{pine64-barebones-raw-image} respectively.
The module returns the @code{pine64-barebones-raw-image} in order for
users to be able to run:
@example
guix system image gnu/system/images/pine64.scm
@end example
Now, thanks to the @code{pine64-image-type} record declaring the
@code{'pine64-raw} @code{image-type}, one could also prepare a
@code{my-pine.scm} file with the following content:
@lisp
(use-modules (gnu system images pine64))
(operating-system
(inherit pine64-barebones-os)
(timezone "Europe/Athens"))
@end lisp
to customize the @code{pine64-barebones-os}, and run:
@example
$ guix system image --image-type=pine64-raw my-pine.scm
@end example
Note that there are other modules in the @code{gnu/system/images}
directory targeting @code{Novena}, @code{Pine64}, @code{PinebookPro} and
@code{Rock64} machines.
@node Installing Debugging Files
@chapter Installing Debugging Files
@ -41905,7 +42658,7 @@ connection between a GNU triplet (@pxref{Specifying Target Triplets, GNU
configuration triplets,, autoconf, Autoconf}), the equivalent
@var{system} in Nix notation, the name of the
@var{glibc-dynamic-linker}, and the corresponding Linux architecture
name if applicable.
name if applicable (@pxref{Platforms}).
Once the bootstrap tarball are built, the @code{(gnu packages
bootstrap)} module needs to be updated to refer to these binaries on the

View File

@ -25,6 +25,64 @@
(channel-news
(version 0)
(entry (commit "a13f5ead0265cf0fe11e60150547c09dfc8c45b0")
(title
(en "Guix System image creation is now documented")
(de "Es gibt eine Dokumentation, wie Sie Guix-System-Abbilder („Images“) erzeugen")
(fr "La création d'images pour Guix System est à présent documentée"))
(body
(en "The Guix System image API that allows you to create customized
system images and turn them into actual bootable images is now documented in
the @code{Creating System Images} chapter of the Guix documentation. This
should be particularly useful for people trying to port Guix System to new
hardware.")
(de "Sie können nun im Kapitel @code{Creating System Images} der
Dokumentation nachlesen, wie Sie mit der Schnittstelle für Guix-System-Abbilder
anpassbare, bootfähige Systemabbilder erzeugen können. Das sollte vor allem
Personen unterstützen, die versuchen, Guix System auf neuer Hardware zum Laufen
zu bringen.")
(fr "L'interface de programmation d'images pour Guix System,
permettant de créer des images personnalisées et de les transformer en images
amorçables est désormais documentée dans le chapitre @code{Création d'images
système}. Cette interface devrait être particulièrement utile aux personnes
qui essaient de faire fonctionner Guix sur de nouvelles machines.")))
(entry (commit "c8112f3bd95269ce4aca12dedbfe61bb6b37acae")
(title
(en "WSL system images support")
(de "WSL-Systemabbilder werden unterstützt")
(fr "Support pour les images système WSL"))
(body
(en "The @command{guix system image} command can now generate system
images for the Windows Subsystem for Linux. To get started, you can for
instance run from a Guix checkout:
@command{guix system image gnu/system/images/wsl2.scm},
and import the resulting image this way:
@command{wsl --import Guix ./guix ./wsl2-image.tar.gz}
@command{wsl -d Guix}.")
(de "Mit dem Befehl @command{guix system image} können Sie
Systemabbilder erzeugen, die auf dem Windows-Subsystem für Linux laufen. Wenn
Sie das ausprobieren möchten, führen Sie zum Beispiel Folgendes aus einem
Guix-Checkout heraus aus:
@command{guix system image gnu/system/images/wsl2.scm},
Das resultierende Abbild können Sie so importieren:
@command{wsl --import Guix ./guix ./wsl2-image.tar.gz}
@command{wsl -d Guix}.")
(fr "La commande @command{guix system image} peut désormais générer
des images système pour le Windows Subystem for Linux. Vous pouvez par
exemple lancer la commande suivante depuis un répertoire de sources Guix :
@command{guix system image gnu/system/images/wsl2.scm},
et importer l'image obtenue de cette manière :
@command{wsl --import Guix ./guix ./wsl2-image.tar.gz}
@command{wsl -d Guix}.")))
(entry (commit "11a06d1e49f4d50d6789e05bbf35e2e145ff7838")
(title
(en "Emacs now supports native compilation")

View File

@ -99,3 +99,20 @@ text-mode :when (and (fboundp 'git-commit-mode) (git-commit-mode))
": Use HTTPS home page." n n
"* " (car (magit-staged-files)) " (" (s var) ")[home-page]: Use HTTPS." n
(mapconcat (lambda (file) (concat "* " file)) (cdr (magit-staged-files))) n)
(move\
"gnu: "
(p (with-temp-buffer
(magit-git-wash #'magit-diff-wash-diffs
"diff" "--staged")
(goto-char (point-min))
(when (re-search-forward "\\-(define-public \\(\\S-+\\)" nil 'noerror)
(match-string-no-properties 1)))
var)
": Move to "
(concat "("
(string-replace "\.scm" ""
(string-replace "/" " " (car (magit-staged-files))))
").") n
n "* " (car (magit-staged-files)) " (" (s var) "): Move from here…"
n "* " (cadr (magit-staged-files)) " (" (s var) "): …to here.")

View File

@ -4,6 +4,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -22,23 +23,28 @@
;;; Commentary:
;; This code defines development teams and team members.
;; This code defines development teams and team members, as well as their
;; scope.
;;; Code:
(use-modules (srfi srfi-1)
(srfi srfi-9)
(srfi srfi-26)
(ice-9 format)
(ice-9 regex)
(ice-9 match)
(guix ui))
(guix ui)
(git))
(define-record-type <team>
(make-team id name description members)
(make-team id name description members scope)
team?
(id team-id)
(name team-name)
(description team-description)
(members team-members set-team-members!))
(members team-members set-team-members!)
(scope team-scope))
(define-record-type <person>
(make-person name email)
@ -49,11 +55,13 @@
(define* (person name #:optional email)
(make-person name email))
(define* (team id #:key name description (members '()))
(define* (team id #:key name description (members '())
(scope '()))
(make-team id
(or name (symbol->string id))
description
members))
members
scope))
(define %teams
(make-hash-table))
@ -84,14 +92,37 @@
(team 'python
#:name "Python team"
#:description
"Python, Python packages, the \"pypi\" importer, and the python-build-system."))
"Python, Python packages, the \"pypi\" importer, and the python-build-system."
#:scope
(list "gnu/packages/django.scm"
"gnu/packages/jupyter.scm"
;; Match haskell.scm and haskell-*.scm.
(make-regexp "^gnu/packages/python(-.+|)\\.scm$")
"gnu/packages/sphinx.scm"
"gnu/packages/tryton.scm"
"guix/build/python-build-system.scm"
"guix/build-system/python.scm"
"guix/import/pypi.scm"
"guix/scripts/import/pypi.scm"
"tests/pypi.scm")))
(define-team haskell
(team 'haskell
#:name "Haskell team"
#:description
"GHC, Hugs, Haskell packages, the \"hackage\" and \"stackage\" importers, and
the haskell-build-system."))
the haskell-build-system."
#:scope
(list "gnu/packages/dhall.scm"
;; Match haskell.scm and haskell-*.scm.
(make-regexp "^gnu/packages/haskell(-.+|)\\.scm$")
"gnu/packages/purescript.scm"
"guix/build/haskell-build-system.scm"
"guix/build-system/haskell.scm"
"guix/import/cabal.scm"
"guix/import/hackage.scm"
"guix/import/stackage.scm"
"guix/scripts/import/hackage.scm")))
(define-team r
(team 'r
@ -111,14 +142,36 @@ and the r-build-system."))
#:name "OCaml and Dune team"
#:description
"The OCaml language, the Dune build system, OCaml packages, the \"opam\"
importer, and the ocaml-build-system."))
importer, and the ocaml-build-system."
#:scope
(list "gnu/packages/ocaml.scm"
"gnu/packages/coq.scm"
"guix/build/ocaml-build-system.scm"
"guix/build/dune-build-system.scm"
"guix/build-system/ocaml.scm"
"guix/build-system/dune.scm"
"guix/import/opam.scm"
"guix/scripts/import/opam.scm"
"tests/opam.scm")))
(define-team java
(team 'java
#:name "Java and Maven team"
#:description
"The JDK and JRE, the Maven build system, Java packages, the ant-build-system,
and the maven-build-system."))
and the maven-build-system."
#:scope
(list ;; Match java.scm and java-*.scm.
(make-regexp "^gnu/packages/java(-.+|)\\.scm$")
;; Match maven.scm and 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/")
"guix/build-system/ant.scm"
"guix/build-system/maven.scm")))
(define-team science
(team 'science
@ -126,11 +179,24 @@ and the maven-build-system."))
(define-team emacs
(team 'emacs
#:name "Emacs team"))
#:name "Emacs team"
#:description "The extensible, customizable text editor and its
ecosystem."
#:scope (list (make-regexp "^gnu/packages/emacs(-.+|)\\.scm$")
"guix/build/emacs-build-system.scm"
"guix/build/emacs-utils.scm"
"guix/build-system/emacs.scm")))
(define-team lisp
(team 'lisp
#:name "Lisp team"))
#:name "Lisp team"
#:description
"Common Lisp and similar languages, Common Lisp packages and the
asdf-build-system."
#:scope (list (make-regexp "^gnu/packages/lisp(-.+|)\\.scm$")
"guix/build/asdf-build-system.scm"
"guix/build/lisp-utils.scm"
"guix/build-system/asdf.scm")))
(define-team ruby
(team 'ruby
@ -154,11 +220,99 @@ and the maven-build-system."))
(define-team core
(team 'core
#:name "Core / Tools / Internals"))
#:name "Core / Tools / Internals"
#:scope
(list "guix/avahi.scm"
"guix/base16.scm"
"guix/base32.scm"
"guix/base64.scm"
"guix/bzr-download.scm"
"guix/cache.scm"
"guix/channels.scm"
"guix/ci.scm"
"guix/colors.scm"
"guix/combinators.scm"
"guix/config.scm"
"guix/cpio.scm"
"guix/cpu.scm"
"guix/cve.scm"
"guix/cvs-download.scm"
"guix/deprecation.scm"
"guix/derivations.scm"
"guix/describe.scm"
"guix/diagnostics.scm"
"guix/discovery.scm"
"guix/docker.scm"
"guix/download.scm"
"guix/elf.scm"
"guix/ftp-client.scm"
"guix/gexp.scm"
"guix/git-authenticate.scm"
"guix/git-download.scm"
"guix/git.scm"
"guix/glob.scm"
"guix/gnu-maintenance.scm"
"guix/gnupg.scm"
"guix/grafts.scm"
"guix/graph.scm"
"guix/hash.scm"
"guix/hg-download.scm"
"guix/http-client.scm"
"guix/i18n.scm"
"guix/inferior.scm"
"guix/ipfs.scm"
"guix/least-authority.scm"
"guix/licenses.scm"
"guix/lint.scm"
"guix/man-db.scm"
"guix/memoization.scm"
"guix/modules.scm"
"guix/monad-repl.scm"
"guix/monads.scm"
"guix/narinfo.scm"
"guix/nar.scm"
"guix/openpgp.scm"
"guix/packages.scm"
"guix/pki.scm"
"guix/platform.scm"
"guix/profiles.scm"
"guix/profiling.scm"
"guix/progress.scm"
"guix/quirks.scm"
"guix/read-print.scm"
"guix/records.scm"
"guix/remote.scm"
"guix/repl.scm"
"guix/search-paths.scm"
"guix/self.scm"
"guix/serialization.scm"
"guix/sets.scm"
"guix/ssh.scm"
"guix/status.scm"
"guix/store.scm"
"guix/substitutes.scm"
"guix/svn-download.scm"
"guix/swh.scm"
"guix/tests.scm"
"guix/transformations.scm"
"guix/ui.scm"
"guix/upstream.scm"
"guix/utils.scm"
"guix/workers.scm"
(make-regexp "^guix/platforms/")
(make-regexp "^guix/scripts/")
(make-regexp "^guix/store/"))))
(define-team games
(team 'games
#:name "Games and Videos"))
#:name "Games and Toys"
#:description "Packaging programs for amusement."
#:scope (list "gnu/packages/games.scm"
"gnu/packages/game-development.scm"
"gnu/packages/minetest.scm"
"gnu/packages/esolangs.scm" ; granted, rather niche
"gnu/packages/motti.scm"
"guix/build/minetest-build-system.scm")))
(define-team translations
(team 'translations
@ -166,7 +320,9 @@ and the maven-build-system."))
(define-team installer
(team 'installer
#:name "Installer script and system installer"))
#:name "Installer script and system installer"
#:scope
(list (make-regexp "^guix/installer(\\.scm$|/)"))))
(define-team home
(team 'home
@ -270,12 +426,38 @@ importer."))
"andrew@trop.in")
home emacs)
(define-member (person "pukkamustard"
"pukkamustard@posteo.net")
ocaml)
(define-member (person "Josselin Poiret"
"dev@jpoiret.xyz")
core installer)
(define (find-team name)
(or (hash-ref %teams (string->symbol name))
(error (format #false
"no such team: ~a~%" name))))
(define (find-team-by-scope files)
"Return the team(s) which scope matches at least one of the FILES, as list
of file names as string."
(hash-fold
(lambda (key team acc)
(if (any (lambda (file)
(any (match-lambda
((? string? scope)
(string=? scope file))
((? regexp? scope)
(regexp-exec scope file)))
(team-scope team)))
files)
(cons team acc)
acc))
'()
%teams))
(define (cc . teams)
"Return arguments for `git send-email' to notify the members of the given
TEAMS when a patch is received by Debbugs."
@ -297,7 +479,7 @@ TEAMS when a patch is received by Debbugs."
(team-members team)))
(define (list-teams)
"Print all teams and their members."
"Print all teams, their scope and their members."
(define port* (current-output-port))
(define width* (%text-width))
(hash-for-each
@ -307,7 +489,7 @@ TEAMS when a patch is received by Debbugs."
id: ~a
name: ~a
description: ~a
members:
~amembers:
"
(team-id team)
(team-name team)
@ -316,15 +498,48 @@ members:
(string->recutils
(fill-paragraph text width*
(string-length "description: ")))))
"<none>"))
"<none>")
(match (team-scope team)
(() "")
(scope (format #f "scope: ~{~s ~}~%" scope))))
(list-members team port* "+ ")
(newline))
%teams))
(define (diff-revisions rev-start rev-end)
"Return the list of added, modified or removed files between REV-START
and REV-END, two git revision strings."
(let* ((repository (repository-open (getcwd)))
(commit1 (commit-lookup repository
(object-id
(revparse-single repository rev-start))))
(commit2 (commit-lookup repository
(object-id
(revparse-single repository rev-end))))
(diff (diff-tree-to-tree repository
(commit-tree commit1)
(commit-tree commit2)))
(files '()))
(diff-foreach
diff
(lambda (delta progress)
(set! files
(cons (diff-file-path (diff-delta-old-file delta)) files))
0)
(const 0)
(const 0)
(const 0))
files))
(define (main . args)
(match args
(("cc" . team-names)
(apply cc (map find-team team-names)))
(("cc-members" rev-start rev-end)
(apply cc (find-team-by-scope
(diff-revisions rev-start rev-end))))
(("list-teams" . args)
(list-teams))
(("list-members" . team-names)

View File

@ -153,14 +153,11 @@ implementation detail used to identify the accounts in Jami."
(error message username))))
(define (account->username account)
"Return USERNAME, the registered username associated with ACCOUNT, else its
public key fingerprint."
(or (assoc-ref account "Account.registeredName")
(assoc-ref account "Account.username")))
"Return the public key fingerprint of ACCOUNT."
(assoc-ref account "Account.username"))
(define (id->username id)
"Return USERNAME, the registered username associated with ID, else its
public key fingerprint, else #f."
"Return the public key fingerprint corresponding to account with ID, else #f."
(account->username (id->account id)))
(define (get-accounts)

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017-2019, 2022 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -233,7 +233,7 @@ that host UIDs (respectively GIDs) map to in the namespace."
;; The parent process must initialize the user namespace for the child
;; before it can boot. To negotiate this, a pipe is used such that the
;; child process blocks until the parent writes to it.
(match (socketpair PF_UNIX SOCK_STREAM 0)
(match (socketpair PF_UNIX (logior SOCK_CLOEXEC SOCK_STREAM) 0)
((child . parent)
(let ((flags (namespaces->bit-mask namespaces)))
(match (clone flags)
@ -442,6 +442,10 @@ return the exit status."
"Like 'container-excursion', but return the return value of THUNK."
(match (pipe)
((in . out)
;; Make sure IN and OUT are not inherited if THUNK forks + execs.
(fcntl in F_SETFD FD_CLOEXEC)
(fcntl out F_SETFD FD_CLOEXEC)
(match (container-excursion pid
(lambda ()
(close-port in)

View File

@ -39,9 +39,10 @@
#:select (gpl3+ license? license-name))
#:use-module ((guix utils) #:select (%current-system))
#:use-module ((guix scripts pack)
#:select (lookup-compressor self-contained-tarball))
#:select (self-contained-tarball))
#:use-module (gnu bootloader)
#:use-module (gnu bootloader u-boot)
#:use-module (gnu compression)
#:use-module (gnu image)
#:use-module (gnu packages)
#:use-module (gnu packages gcc)

69
gnu/compression.scm Normal file
View File

@ -0,0 +1,69 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.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 compression)
#:use-module (guix gexp)
#:use-module (guix ui)
#:use-module ((gnu packages compression) #:hide (zip))
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9)
#:use-module (ice-9 match)
#:export (compressor
compressor?
compressor-name
compressor-extension
compressor-command
%compressors
lookup-compressor))
;; Type of a compression tool.
(define-record-type <compressor>
(compressor name extension command)
compressor?
(name compressor-name) ;string (e.g., "gzip")
(extension compressor-extension) ;string (e.g., ".lz")
(command compressor-command)) ;gexp (e.g., #~(list "/gnu/store/…/gzip"
; "-9n" ))
(define %compressors
;; Available compression tools.
(list (compressor "gzip" ".gz"
#~(list #+(file-append gzip "/bin/gzip") "-9n"))
(compressor "lzip" ".lz"
#~(list #+(file-append lzip "/bin/lzip") "-9"))
(compressor "xz" ".xz"
#~(append (list #+(file-append xz "/bin/xz")
"-e")
(%xz-parallel-args)))
(compressor "bzip2" ".bz2"
#~(list #+(file-append bzip2 "/bin/bzip2") "-9"))
(compressor "zstd" ".zst"
;; The default level 3 compresses better than gzip in a
;; fraction of the time, while the highest level 19
;; (de)compresses more slowly and worse than xz.
#~(list #+(file-append zstd "/bin/zstd") "-3"))
(compressor "none" "" #f)))
(define (lookup-compressor name)
"Return the compressor object called NAME. Error out if it could not be
found."
(or (find (match-lambda
(($ <compressor> name*)
(string=? name* name)))
%compressors)
(leave (G_ "~a: compressor not found~%") name)))

View File

@ -152,7 +152,7 @@ that is not in SET, mentioning FIELD in the error message."
;; The supported image formats.
(define-set-sanitizer validate-image-format format
(disk-image compressed-qcow2 docker iso9660))
(disk-image compressed-qcow2 docker iso9660 tarball wsl2))
;; The supported partition table types.
(define-set-sanitizer validate-partition-table-type partition-table-type
@ -170,8 +170,7 @@ that is not in SET, mentioning FIELD in the error message."
(size image-size ;size in bytes as integer
(default 'guess)
(sanitize validate-size))
(operating-system image-operating-system ;<operating-system>
(default #f))
(operating-system image-operating-system) ;<operating-system>
(partition-table-type image-partition-table-type ; 'mbr or 'gpt
(default 'mbr)
(sanitize validate-partition-table-type))

View File

@ -188,7 +188,7 @@ encryption of partition ~a (label: ~a).") file-name crypt-label)
(if (string=? password confirmation)
(user-partition
(inherit user-part)
(crypt-password password))
(crypt-password (make-secret password)))
(begin
(run-error-page
(G_ "Password mismatch, please try again.")
@ -795,13 +795,13 @@ by pressing the Exit button.~%~%")))
(user-partitions (run-page eligible-devices))
(user-partitions-with-pass (prompt-luks-passwords
user-partitions))
(form (draw-formatting-page user-partitions)))
(form (draw-formatting-page user-partitions-with-pass)))
;; Make sure the disks are not in use before proceeding to formatting.
(free-parted eligible-devices)
(format-user-partitions user-partitions-with-pass)
(installer-log-line "formatted ~a user partitions"
(length user-partitions-with-pass))
(installer-log-line "user-partitions: ~a" user-partitions)
(installer-log-line "user-partitions: ~a" user-partitions-with-pass)
(destroy-form-and-pop form)
user-partitions))
user-partitions-with-pass))

View File

@ -99,10 +99,8 @@ non-graphical system.")
#:item->text (compose G_ system-service-name)
#:checkbox-tree-height 5
#:exit-button-callback-procedure
(lambda ()
(raise
(condition
(&installer-step-abort)))))))
(lambda _
(abort-to-prompt 'installer-step 'abort)))))
(define (run-network-management-page)
"Run a page to select among several network management methods."

View File

@ -148,7 +148,7 @@
(default #f))
(crypt-label user-partition-crypt-label
(default #f))
(crypt-password user-partition-crypt-password
(crypt-password user-partition-crypt-password ; <secret>
(default #f))
(fs-type user-partition-fs-type
(default 'ext4))
@ -1183,7 +1183,7 @@ USER-PARTITION if it is encrypted, or the plain file-name otherwise."
"Format and open the encrypted partition pointed by USER-PARTITION."
(let* ((file-name (user-partition-file-name user-partition))
(label (user-partition-crypt-label user-partition))
(password (user-partition-crypt-password user-partition)))
(password (secret-content (user-partition-crypt-password user-partition))))
(call-with-luks-key-file
password
(lambda (key-file)
@ -1194,6 +1194,20 @@ USER-PARTITION if it is encrypted, or the plain file-name otherwise."
((run-command-in-installer) "cryptsetup" "open" "--type" "luks"
"--key-file" key-file file-name label)))))
(define (luks-ensure-open user-partition)
"Ensure partition pointed by USER-PARTITION is opened."
(unless (file-exists? (user-partition-upper-file-name user-partition))
(let* ((file-name (user-partition-file-name user-partition))
(label (user-partition-crypt-label user-partition))
(password (secret-content (user-partition-crypt-password user-partition))))
(call-with-luks-key-file
password
(lambda (key-file)
(installer-log-line "opening LUKS entry ~s at ~s"
label file-name)
((run-command-in-installer) "cryptsetup" "open" "--type" "luks"
"--key-file" key-file file-name label))))))
(define (luks-close user-partition)
"Close the encrypted partition pointed by USER-PARTITION."
(let ((label (user-partition-crypt-label user-partition)))
@ -1278,6 +1292,8 @@ respective mount-points."
(user-fs-type->mount-type fs-type))
(file-name
(user-partition-upper-file-name user-partition)))
(when crypt-label
(luks-ensure-open user-partition))
(mkdir-p target)
(installer-log-line "mounting ~s on ~s" file-name target)
(mount file-name target mount-type)))

View File

@ -280,6 +280,10 @@ instrumented for further testing."
exp)))
(let ((content (call-with-input-file file read-expressions)))
;; XXX: Remove the file before re-writing it, to be sure there are no
;; leftovers. We shouldn't have to do that as CALL-WITH-OUTPUT-FILE uses
;; the O_TRUNC flag by default.
(delete-file file)
(call-with-output-file file
(lambda (port)
(format port "\

View File

@ -17,17 +17,13 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu installer user)
#:use-module (gnu installer utils)
#:use-module (guix records)
#:use-module (guix read-print)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-9 gnu)
#:export (<secret>
secret?
make-secret
secret-content
<user>
#:export (<user>
user
make-user
user-name
@ -38,16 +34,6 @@
users->configuration))
(define-record-type <secret>
(make-secret content)
secret?
(content secret-content))
(set-record-type-printer!
<secret>
(lambda (secret port)
(format port "<secret>")))
(define-record-type* <user>
user make-user
user?

View File

@ -23,6 +23,8 @@
#:use-module (guix build utils)
#:use-module (guix i18n)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-9 gnu)
#:use-module (srfi srfi-19)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
@ -33,7 +35,12 @@
#:use-module (ice-9 regex)
#:use-module (ice-9 format)
#:use-module (ice-9 textual-ports)
#:export (read-lines
#:export (<secret>
secret?
make-secret
secret-content
read-lines
read-all
nearest-exact-integer
read-percentage
@ -58,6 +65,16 @@
with-silent-shepherd))
(define-record-type <secret>
(make-secret content)
secret?
(content secret-content))
(set-record-type-printer!
<secret>
(lambda (secret port)
(format port "<secret>")))
(define* (read-lines #:optional (port (current-input-port)))
"Read lines from PORT and return them as a list."
(let loop ((line (read-line port))

View File

@ -53,6 +53,7 @@
# Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
# Copyright © 2022 muradm <mail@muradm.net>
# Copyright © 2022 Hilton Chain <hako@ultrarare.space>
# Copyright © 2022 Alex Griffin <a@ajgrf.com>
#
# This file is part of GNU Guix.
#
@ -81,6 +82,7 @@ GNU_SYSTEM_MODULES = \
%D%/bootloader/u-boot.scm \
%D%/bootloader/depthcharge.scm \
%D%/ci.scm \
%D%/compression.scm \
%D%/home.scm \
%D%/home/services.scm \
%D%/home/services/desktop.scm \
@ -682,6 +684,7 @@ GNU_SYSTEM_MODULES = \
%D%/services/herd.scm \
%D%/services/pm.scm \
%D%/services/rsync.scm \
%D%/services/samba.scm \
%D%/services/sddm.scm \
%D%/services/spice.scm \
%D%/services/ssh.scm \
@ -716,6 +719,7 @@ GNU_SYSTEM_MODULES = \
%D%/system/images/pine64.scm \
%D%/system/images/pinebook-pro.scm \
%D%/system/images/rock64.scm \
%D%/system/images/wsl2.scm \
\
%D%/machine.scm \
\
@ -761,6 +765,7 @@ GNU_SYSTEM_MODULES = \
%D%/tests/package-management.scm \
%D%/tests/reconfigure.scm \
%D%/tests/rsync.scm \
%D%/tests/samba.scm \
%D%/tests/security.scm \
%D%/tests/security-token.scm \
%D%/tests/singularity.scm \
@ -979,9 +984,12 @@ dist_patch_DATA = \
%D%/packages/patches/cmake-curl-certificates-3.24.patch \
%D%/packages/patches/coda-use-system-libs.patch \
%D%/packages/patches/collectd-5.11.0-noinstallvar.patch \
%D%/packages/patches/containerd-create-pid-file.patch \
%D%/packages/patches/combinatorial-blas-awpm.patch \
%D%/packages/patches/combinatorial-blas-io-fix.patch \
%D%/packages/patches/connman-CVE-2022-32292.patch \
%D%/packages/patches/connman-CVE-2022-32293-pt1.patch \
%D%/packages/patches/connman-CVE-2022-32293-pt2.patch \
%D%/packages/patches/containerd-create-pid-file.patch \
%D%/packages/patches/cool-retro-term-wctype.patch \
%D%/packages/patches/coreutils-gnulib-tests.patch \
%D%/packages/patches/coq-fix-envvars.patch \
@ -1217,7 +1225,6 @@ dist_patch_DATA = \
%D%/packages/patches/gnome-online-miners-tracker-3.patch \
%D%/packages/patches/gnome-settings-daemon-gc.patch \
%D%/packages/patches/gnome-session-support-elogind.patch \
%D%/packages/patches/gnome-todo-libportal.patch \
%D%/packages/patches/gnome-tweaks-search-paths.patch \
%D%/packages/patches/gnupg-CVE-2022-34903.patch \
%D%/packages/patches/gnupg-default-pinentry.patch \
@ -1322,10 +1329,7 @@ dist_patch_DATA = \
%D%/packages/patches/irrlicht-link-against-needed-libs.patch \
%D%/packages/patches/isl-0.11.1-aarch64-support.patch \
%D%/packages/patches/itk-snap-alt-glibc-compat.patch \
%D%/packages/patches/jami-fix-esc-bug.patch \
%D%/packages/patches/json-c-0.13-CVE-2020-12762.patch \
%D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \
%D%/packages/patches/jsoncpp-pkg-config-version.patch \
%D%/packages/patches/jami-fix-crash-on-block-contact.patch \
%D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \
%D%/packages/patches/jamvm-1.5.1-armv7-support.patch \
%D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \
@ -1347,6 +1351,9 @@ dist_patch_DATA = \
%D%/packages/patches/jfsutils-add-sysmacros.patch \
%D%/packages/patches/jfsutils-gcc-compat.patch \
%D%/packages/patches/jfsutils-include-systypes.patch \
%D%/packages/patches/json-c-0.13-CVE-2020-12762.patch \
%D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \
%D%/packages/patches/jsoncpp-pkg-config-version.patch \
%D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch \
%D%/packages/patches/julia-tracker-16-compat.patch \
%D%/packages/patches/julia-allow-parallel-build.patch \
@ -1599,7 +1606,7 @@ dist_patch_DATA = \
%D%/packages/patches/password-store-tree-compat.patch \
%D%/packages/patches/pciutils-hurd-configure.patch \
%D%/packages/patches/pciutils-hurd-fix.patch \
%D%/packages/patches/pjproject-install-libpjsua2.patch \
%D%/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch \
%D%/packages/patches/pokerth-boost.patch \
%D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \
%D%/packages/patches/pthreadpool-system-libraries.patch \
@ -1733,6 +1740,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-glibc-2.27.patch \
%D%/packages/patches/qemu-glibc-2.30.patch \
%D%/packages/patches/qemu-fix-agent-paths.patch \
@ -1762,7 +1770,7 @@ dist_patch_DATA = \
%D%/packages/patches/readline-6.2-CVE-2014-2524.patch \
%D%/packages/patches/renpy-use-system-fribidi.patch \
%D%/packages/patches/reposurgeon-add-missing-docbook-files.patch \
%D%/packages/patches/r-httpuv-1.5.5-unvendor-libuv.patch \
%D%/packages/patches/r-httpuv-1.6.6-unvendor-libuv.patch \
%D%/packages/patches/ri-li-modernize_cpp.patch \
%D%/packages/patches/ripperx-missing-file.patch \
%D%/packages/patches/rpcbind-CVE-2017-8779.patch \

View File

@ -339,9 +339,13 @@ by MACHINE."
"Raise a '&message' error condition if it is clear that deploying MACHINE's
'system' declaration would fail."
(define assertions
(append (machine-check-file-system-availability machine)
(machine-check-initrd-modules machine)
(list (machine-check-forward-update machine))))
(parameterize ((%current-system
(machine-ssh-configuration-system
(machine-configuration machine)))
(%current-target-system #f))
(append (machine-check-file-system-availability machine)
(machine-check-initrd-modules machine)
(list (machine-check-forward-update machine)))))
(define aggregate-exp
;; Gather all the expressions so that a single round-trip is enough to
@ -453,6 +457,10 @@ the 'should-roll-back' field set to SHOULD-ROLL-BACK?"
(define (deploy-managed-host machine)
"Internal implementation of 'deploy-machine' for MACHINE instances with an
environment type of 'managed-host."
(define config (machine-configuration machine))
(define host (machine-ssh-configuration-host-name config))
(define system (machine-ssh-configuration-system config))
(maybe-raise-unsupported-configuration-error machine)
(when (machine-ssh-configuration-authorize?
(machine-configuration machine))
@ -466,50 +474,54 @@ have you run 'guix archive --generate-key?'")
(get-string-all port))))
(machine-ssh-session machine)
(machine-become-command machine)))
(mlet %store-monad ((_ (check-deployment-sanity machine))
(boot-parameters (machine-boot-parameters machine)))
(let* ((os (machine-operating-system machine))
(host (machine-ssh-configuration-host-name
(machine-configuration machine)))
(eval (cut machine-remote-eval machine <>))
(menu-entries (map boot-parameters->menu-entry boot-parameters))
(bootloader-configuration (operating-system-bootloader os))
(bootcfg (operating-system-bootcfg os menu-entries)))
(define-syntax-rule (eval/error-handling condition handler ...)
;; Return a wrapper around EVAL such that HANDLER is evaluated if an
;; exception is raised.
(lambda (exp)
(lambda (store)
(guard (condition ((inferior-exception? condition)
(values (begin handler ...) store)))
(values (run-with-store store (eval exp))
store)))))
;; Make sure code that check %CURRENT-SYSTEM, such as
;; %BASE-INITRD-MODULES, gets to see the right value.
(parameterize ((%current-system system)
(%current-target-system #f))
(let* ((os (machine-operating-system machine))
(eval (cut machine-remote-eval machine <>))
(menu-entries (map boot-parameters->menu-entry boot-parameters))
(bootloader-configuration (operating-system-bootloader os))
(bootcfg (operating-system-bootcfg os menu-entries)))
(define-syntax-rule (eval/error-handling condition handler ...)
;; Return a wrapper around EVAL such that HANDLER is evaluated if an
;; exception is raised.
(lambda (exp)
(lambda (store)
(guard (condition ((inferior-exception? condition)
(values (begin handler ...) store)))
(values (run-with-store store (eval exp)
#:system system)
store)))))
(mbegin %store-monad
(with-roll-back #f
(switch-to-system (eval/error-handling c
(raise (formatted-message
(G_ "\
(mbegin %store-monad
(with-roll-back #f
(switch-to-system (eval/error-handling c
(raise (formatted-message
(G_ "\
failed to switch systems while deploying '~a':~%~{~s ~}")
host
(inferior-exception-arguments c))))
os))
(with-roll-back #t
(mbegin %store-monad
(upgrade-shepherd-services (eval/error-handling c
(warning (G_ "\
host
(inferior-exception-arguments c))))
os))
(with-roll-back #t
(mbegin %store-monad
(upgrade-shepherd-services (eval/error-handling c
(warning (G_ "\
an error occurred while upgrading services on '~a':~%~{~s ~}~%")
host
(inferior-exception-arguments
c)))
os)
(install-bootloader (eval/error-handling c
(raise (formatted-message
(G_ "\
host
(inferior-exception-arguments
c)))
os)
(install-bootloader (eval/error-handling c
(raise (formatted-message
(G_ "\
failed to install bootloader on '~a':~%~{~s ~}~%")
host
(inferior-exception-arguments c))))
bootloader-configuration bootcfg)))))))
host
(inferior-exception-arguments c))))
bootloader-configuration bootcfg))))))))
;;;

View File

@ -4,6 +4,7 @@
;;; Copyright © 2018, 2021, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2022 Hunter Jozwiak <hunter.t.joz@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -28,6 +29,7 @@
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system meson)
#:use-module (gnu packages)
#:use-module (gnu packages lisp)
#:use-module (gnu packages ocaml)
@ -316,3 +318,34 @@ works with every X Window System based GUI (depends only on libX11); or as an
assistant for graphic designers, who need to select individual pixels.")
;; Licensed either under Expat or GPLv2+.
(license (list license:expat license:gpl2+))))
(define-public espeakup
(package
(name "espeakup")
(version "0.90")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/linux-speakup/espeakup")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0lmjwafvfxy07zn18v3dzjwwpnid2xffgvy2dzlwkbns8gb60ds2"))))
(build-system meson-build-system)
(native-inputs (list pkg-config))
(inputs (list espeak-ng alsa-lib))
(license license:gpl3+)
(synopsis "Bridge for espeak and speakup")
(description
"Espeakup is a bridge between the speakup driver implemented in
the Linux kernel and the espeak-ng text to speach synthesizer.
In order for this package to work, you need to have the following
kernel modules built:
@itemize @bullet
@item
CONFIG_SPEAKUP=m
@item
CONFIG_SPEAKUP_SOFT=m
@end itemize")
(home-page "ttps://github.com/linux-speakup/espeakup")))

View File

@ -2506,20 +2506,24 @@ characters can be replaced as well, as can UTF-8 characters.")
(define-public tree
(package
(name "tree")
(version "2.0.3")
(version "2.0.4")
(source (origin
(method url-fetch)
(uri (string-append
"http://mama.indstate.edu/users/ice/tree/src/tree-"
"https://mama.indstate.edu/users/ice/tree/src/tree-"
version ".tgz"))
(sha256
(base32 "079vda37d5i3nfx12wx81z6r6bxynv2jww1z1hjziiwxbxxyf55s"))))
(base32 "0x7s9wxvf83fw4qah16kapswl2277pybw3d514zrlms9g0cr5smh"))))
(build-system gnu-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(delete 'configure)) ; No configure script.
(delete 'configure) ; No configure script.
(add-after 'unpack 'fix-manpage-version
(lambda _
(substitute* "doc/tree.1"
(("Tree 2\\.0\\.0") (string-append "Tree " #$version))))))
#:tests? #f ; No check target.
#:make-flags
#~(list (string-append "PREFIX=" #$output)
@ -2529,7 +2533,7 @@ characters can be replaced as well, as can UTF-8 characters.")
"Tree is a recursive directory listing command that produces a depth
indented listing of files, which is colorized ala dircolors if the LS_COLORS
environment variable is set and output is to tty.")
(home-page "http://mama.indstate.edu/users/ice/tree/")
(home-page "https://mama.indstate.edu/users/ice/tree/")
(license license:gpl2+)))
(define-public lr

View File

@ -221,7 +221,7 @@ the real span of the lattice.")
(define-public pari-gp
(package
(name "pari-gp")
(version "2.13.4")
(version "2.15.0")
(source (origin
(method url-fetch)
(uri (string-append
@ -229,11 +229,10 @@ the real span of the lattice.")
version ".tar.gz"))
(sha256
(base32
"11g1pkrj12dmggj1n6r00ijpnmk3f3dpqsf1h51q34hmmv79xpmw"))))
"11anfn2lmixi83208p8qxjhwkrrad9s2qqfrl3wy9m0n1lg8ax74"))))
(build-system gnu-build-system)
(native-inputs
`(("texlive" ,(texlive-updmap.cfg
(list texlive-amsfonts)))))
(native-inputs (list (texlive-updmap.cfg
(list texlive-amsfonts))))
(inputs (list gmp libx11 perl readline))
(arguments
'(#:make-flags '("all")
@ -261,7 +260,7 @@ PARI is also available as a C library to allow for faster computations.")
(define-public gp2c
(package
(name "gp2c")
(version "0.0.12")
(version "0.0.13")
(source (origin
(method url-fetch)
(uri (string-append
@ -269,7 +268,7 @@ PARI is also available as a C library to allow for faster computations.")
version ".tar.gz"))
(sha256
(base32
"039ip7qkwwv46wrcdrz7y12m30kazzkjr44kqbc0h137g4wzd7zf"))))
"0dlxlrwwvhmjljjzsq95fsm14j5n5353snd92b0pdg9ylzn784r6"))))
(build-system gnu-build-system)
(native-inputs (list perl))
(inputs (list pari-gp))

View File

@ -29,6 +29,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
@ -1054,6 +1055,29 @@ attempting to maintain ISTP compliance
@end itemize\n")
(license license:expat)))
(define-public python-ephem
(package
(name "python-ephem")
(version "4.1.3")
(source (origin
(method url-fetch)
(uri (pypi-uri "ephem" version))
(sha256
(base32
"0smmm3l8csnw9rrimh8mpyjrm80jaafjl184spnji98vk22qd8bz"))))
(build-system python-build-system)
(native-inputs (list tzdata))
(home-page "https://rhodesmill.org/pyephem/")
(synopsis "Compute positions of the planets and stars")
(description
"PyEphem provides an @code{ephem} Python package for performing
high-precision astronomy computations.
The name ephem is short for the word ephemeris, which is the traditional term
for a table giving the position of a planet, asteroid, or comet for a series
of dates.")
(license license:expat)))
(define-public python-photutils
(package
(name "python-photutils")
@ -1823,6 +1847,27 @@ N-Chilada and RAMSES AMR outputs.")
(modify-inputs (package-inputs libsep)
(prepend python-numpy)))))
(define-public python-suntime
(package
(name "python-suntime")
(version "1.2.5")
(source (origin
(method url-fetch)
(uri (pypi-uri "suntime" version))
(sha256
(base32
"0ja64w293wjx76q3z18ikx4rdihwkbj6pnjpbs82ycyyzhfnbpz4"))))
(build-system python-build-system)
(propagated-inputs (list python-dateutil))
(home-page "https://github.com/SatAgro/suntime")
(synopsis "Sunset and sunrise time calculation python library")
(description
"Python library doing sunrise and sunset time calculation.
Takes a WGS84 (GPS) latitude/longitude as input as well as an UTC or local
datetime object.")
(license license:lgpl3+)))
(define-public python-asdf
(package
(name "python-asdf")

View File

@ -6313,14 +6313,14 @@ of gene-level counts.")
(define-public r-valr
(package
(name "r-valr")
(version "0.6.4")
(version "0.6.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "valr" version))
(sha256
(base32
"0dd41irvibh6rwi52bw4zg4m7wpyihlp1kdkb8fdji3csw2fiz4k"))))
"1674sqclgi4l5r544pjjsblzl1ix2cy961jpkncb3ym47y6c1msw"))))
(build-system r-build-system)
(propagated-inputs
(list r-broom
@ -6993,14 +6993,14 @@ fitting of some classes of graphical Markov models.")
(define-public r-perfmeas
(package
(name "r-perfmeas")
(version "1.2.1")
(version "1.2.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "PerfMeas" version))
(sha256
(base32
"1x7ancmb41zd1js24rx94plgbssyc71z2bvpic6mg34xjkwdjw93"))))
"13yjk0kwpbsqwl056hzf0zj2br1mk4faqcn1whdfxmq348c14hjb"))))
(properties `((upstream-name . "PerfMeas")))
(build-system r-build-system)
(propagated-inputs
@ -7976,14 +7976,14 @@ abnormal copy number.")
(define-public r-htscluster
(package
(name "r-htscluster")
(version "2.0.8")
(version "2.0.10")
(source
(origin
(method url-fetch)
(uri (cran-uri "HTSCluster" version))
(sha256
(base32
"0wnbfh6hdx8692jilgmv8sys1zm6fqc6mim7vvjhyqlmpm8gm0kg"))))
"0scn4fsfmlkzxibfhsh6krm2cl9c8hsmyjgn48k9dyjf0ylyxg9n"))))
(properties `((upstream-name . "HTSCluster")))
(build-system r-build-system)
(propagated-inputs
@ -13147,14 +13147,14 @@ rate} (FDR).")
(define-public r-activedriverwgs
(package
(name "r-activedriverwgs")
(version "1.1.2")
(version "1.2.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "ActiveDriverWGS" version))
(sha256
(base32
"13b5yazgv9kckcp6gck183mh1m0q8lc5ixagmcy9s8kv2wz7wq45"))))
"0xnplgwxd197a4d422bsxg753q158i12ils16awd1cw30wafdxkk"))))
(properties
`((upstream-name . "ActiveDriverWGS")))
(build-system r-build-system)

View File

@ -7273,6 +7273,228 @@ sequence.")
(supported-systems '("i686-linux" "x86_64-linux"))
(license license:bsd-3)))
(define-public r-gutils
(let ((commit "10e36c7b580aacb2d952140a3fdd82418aaddea6")
(revision "1"))
(package
(name "r-gutils")
(version (git-version "0.2.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mskilab/gUtils")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1wq9kd1afzy7ii510r20c4n9fkykj6p15q5c85ws27h1q5w4ghxy"))))
(properties `((upstream-name . "gUtils")))
(build-system r-build-system)
(propagated-inputs
(list r-biocgenerics
r-data-table
r-genomeinfodb
r-genomicranges
r-iranges
r-matrix
r-s4vectors
r-stringr))
(home-page "https://github.com/mskilab/gUtils")
(synopsis "Additional capabilities and speed for GenomicRanges operations")
(description
"This is an R package providing additional capabilities and speed for
@code{GenomicRanges} operations.")
(license license:gpl2))))
(define-public r-bamutils
(let ((commit "639dba901f16944fa1b7a8d7048701ba86a2cdb8")
(revision "1"))
(package
(name "r-bamutils")
(version (git-version "0.0.0.9000" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mskilab/bamutils/")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0qwby2v5rydnipvf1iv1wz9nf02yq98k0xbc4inf9mqc54jwacs0"))))
(properties `((upstream-name . "bamUtils")))
(build-system r-build-system)
(propagated-inputs
(list r-abind
r-biocgenerics
r-data-table
r-genomicalignments
r-genomicranges
r-gutils
r-rsamtools
r-variantannotation))
(home-page "https://github.com/mskilab/bamutils/")
(synopsis "Utility functions for manipulating BAMs")
(description "This package provides utility functions for manipulating
BAM files.")
(license license:gpl2))))
(define-public r-gtrack
(let ((commit "a694fa36cedafca2658da79fc8e5b673535b15e5")
(revision "1"))
(package
(name "r-gtrack")
(version (git-version "0.1.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mskilab/gTrack/")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"070qlrbqsbj9max2vx740zigqh0ymvnw2pm1ia5la3wb4dbfwh2b"))))
(properties `((upstream-name . "gTrack")))
(build-system r-build-system)
(propagated-inputs
(list r-biocgenerics
r-data-table
r-genomeinfodb
r-genomicranges
r-gutils
r-iranges
r-matrix
r-rcolorbrewer
r-rcpp
r-rcurl
r-rtracklayer
r-s4vectors))
(home-page "https://github.com/mskilab/gTrack/")
(synopsis "Plot tracks of complex genomic data across multiple genomic windows")
(description
"This package provides an object for plotting GRanges, RleList, UCSC
file formats, and ffTrack objects in multi-track panels.")
(license license:gpl2))))
(define-public r-gchain
(let ((commit "dc393e8dd0d8efaf36270c04d7112db8553db36a")
(revision "1"))
(package
(name "r-gchain")
(version (git-version "0.2.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mskilab/gChain/")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"105wgi5w2fhwq1grsvj6zjigwg0sny3z7zr577q8ki3qffjwdkj0"))))
(properties `((upstream-name . "gChain")))
(build-system r-build-system)
(propagated-inputs
(list r-bamutils
r-biostrings
r-data-table
r-genomicalignments
r-genomicranges
r-gtrack
r-gutils
r-matrix
r-rtracklayer))
(home-page "https://github.com/mskilab/gChain/")
(synopsis "Additional capabilities and speed for GenomicRanges operations")
(description
"This R package provides additional capabilities and speed for
GenomicRanges operations.")
(license license:gpl2))))
(define-public r-skitools
(let ((commit "22d107d32f063eb891eb5e7fb36996d1c0b0d2bc")
(revision "1"))
(package
(name "r-skitools")
(version (git-version "0.0.0.9000" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mskilab/skitools/")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1977d9bkdk9l2n6niahfj9vksh9l1ga4g7c3b3x27lj1gc0qgr4z"))))
(properties `((upstream-name . "skitools")))
(build-system r-build-system)
(propagated-inputs
(list r-biostrings
r-complexheatmap
r-data-table
r-devtools
r-dt
r-gchain
r-genomeinfodb
r-genomicranges
r-ggplot2
r-gplots
r-gutils
r-htmlwidgets
r-hwriter
r-igraph
r-iranges
r-plotly
r-rcolorbrewer
r-reshape2
r-s4vectors
r-stringr
r-variantannotation))
(home-page "https://github.com/mskilab/skitools/")
(synopsis "Various mskilab R utilties")
(description
"This package provides R miscellaneous utilities for basic data
manipulation, debugging, visualization, lsf management, and common mskilab
tasks.")
(license license:expat))))
(define-public r-chromunity
(let ((commit "09fce8bc12cb84b45a6ea25bf8db6e5b75113d4f")
(revision "1"))
(package
(name "r-chromunity")
(version (git-version "0.0.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mskilab/chromunity")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0lp0h614k8fq6h9gpbylk4chh7q6w4qda8lx03ajrpppxmg7al2d"))))
(properties `((upstream-name . "chromunity")))
(build-system r-build-system)
(propagated-inputs
(list r-arrow
r-biocgenerics
r-data-table
r-gchain
r-genomicranges
r-gutils
r-igraph
r-magrittr
r-mass
r-matrix
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")
(description "This is a package for the discovery of communities in
Pore-C concatemers.")
(license license:gpl3))))
(define-public r-presto
(let ((commit "052085db9c88aa70a28d11cc58ebc807999bf0ad")
(revision "0"))
@ -12514,6 +12736,12 @@ fasta subsequences.")
(substitute* '("requirements.txt"
"cooler.egg-info/requires.txt")
(("cytoolz.*<.*0.11") "cytoolz"))))
;; This version of flake8 just won't work with this version of
;; pytest, because of dependency pinning.
(add-after 'unpack 'do-not-use-flake8
(lambda _
(substitute* "setup.cfg"
(("addopts = --flake8") "addopts = "))))
(add-after 'unpack 'patch-tests
(lambda _
(substitute* "tests/test_create.py"
@ -12522,10 +12750,13 @@ fasta subsequences.")
"access to genome.ucsc.edu\")\n"
"def test_roundtrip")))
(substitute* "tests/test_util.py"
(("def test_fetch_chromsizes")
(string-append "@pytest.mark.skip(reason=\"requires network "
"access to genome.ucsc.edu\")\n"
"def test_fetch_chromsizes")))
(("def test_fetch_chromsizes")
(string-append "@pytest.mark.skip(reason=\"requires network "
"access to genome.ucsc.edu\")\n"
"def test_fetch_chromsizes"))
;; See https://github.com/open2c/cooler/issues/287
(("skipif\\(six.PY2, reason=\"Scipy on Py2 is too old\"")
"skip(reason=\"Scipy is too new\""))
;; This test depends on ipytree, which contains a lot of minified
;; JavaScript.
(substitute* "tests/test_fileops.py"
@ -15541,47 +15772,49 @@ for the analysis and visualization of raw nanopore signal.")
(license license:mpl2.0)))
(define-public python-pyvcf
(package
(name "python-pyvcf")
(version "0.6.8")
;; Use git, because the PyPI tarballs lack test data.
(source
(origin
(method git-fetch)
(uri (git-reference
(let ((commit "476169cd457ba0caa6b998b301a4d91e975251d9")
(revision "0"))
(package
(name "python-pyvcf")
(version (git-version "0.6.8" revision commit))
;; Use git, because the PyPI tarballs lack test data.
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jamescasbon/PyVCF.git")
;; Latest release is not tagged.
(commit "bfcedb9bad1a14074ac4526ffdb610611e073810")))
(file-name (git-file-name name version))
(sha256
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0c7lsssns3zp8fh2ibllzzra003srg9vbxqzmq6654akbzdb7lrf"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-sample-script
(lambda _
;; Add Python 3 compatibility to this sample script.
(substitute* "scripts/vcf_sample_filter.py"
(("print (.*)\n" _ arg)
(string-append "print(" arg ")\n")))))
(add-after 'install 'remove-installed-tests
;; Do not install test files.
(lambda* (#:key inputs outputs #:allow-other-keys)
(delete-file-recursively (string-append
"0qf9lwj7r2hjjp4bd4vc7nayrhblfm4qcqs4dbd43a6p4bj2jv5p"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-sample-script
(lambda _
;; Add Python 3 compatibility to this sample script.
(substitute* "scripts/vcf_sample_filter.py"
(("print (.*)\n" _ arg)
(string-append "print(" arg ")\n")))))
(add-after 'install 'remove-installed-tests
;; Do not install test files.
(lambda* (#:key inputs outputs #:allow-other-keys)
(delete-file-recursively (string-append
(site-packages inputs outputs)
"/vcf/test")))))))
(native-inputs
;; Older setuptools is needed for use_2to3.
(list python-cython python-setuptools))
(propagated-inputs
(list python-pysam python-rpy2))
(home-page "https://github.com/jamescasbon/PyVCF")
(synopsis "Variant Call Format parser for Python")
(description "This package provides a @acronym{VCF,Variant Call Format}
(native-inputs
;; Older setuptools is needed for use_2to3.
(list python-cython python-setuptools-for-tensorflow))
(propagated-inputs
(list python-pysam python-rpy2))
(home-page "https://github.com/jamescasbon/PyVCF")
(synopsis "Variant Call Format parser for Python")
(description "This package provides a @acronym{VCF,Variant Call Format}
parser for Python.")
(license license:expat)))
(license license:expat))))
(define-public nanosv
(package
@ -15996,6 +16229,43 @@ BigWig files, as well as efficient region coverage summary over intervals from
both types of files.")
(license license:expat)))
(define-public mudskipper
(package
(name "mudskipper")
(version "0.1.0")
(source (origin
(method url-fetch)
(uri (crate-uri "mudskipper" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1y7fnlz6irmxdmv6bxzm95w4ws4vzldlrh8npvgxmdnrz9pgb1dv"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #false ;fail because the "mudskipper" crate cannot be found
#:cargo-inputs
(("rust-bio" ,rust-bio-0.39)
("rust-bio-types" ,rust-bio-types-0.12)
("rust-clap" ,rust-clap-2)
("rust-coitrees" ,rust-coitrees-0.2)
("rust-env-logger" ,rust-env-logger-0.9)
("rust-fnv" ,rust-fnv-1)
("rust-indicatif" ,rust-indicatif-0.16)
("rust-libradicl" ,rust-libradicl-0.4)
("rust-linecount" ,rust-linecount-0.1)
("rust-log" ,rust-log-0.4)
("rust-num-cpus" ,rust-num-cpus-1)
("rust-rust-htslib" ,rust-rust-htslib-0.38))))
(native-inputs
(list cmake pkg-config))
(inputs
(list zlib xz))
(home-page "https://github.com/OceanGenomics/mudskipper")
(synopsis "Convert genomic alignments to transcriptomic BAM/RAD files.")
(description "Mudskipper is a tool for projecting genomic alignments to
transcriptomic coordinates.")
(license license:bsd-3)))
(define-public r-ascat
(package
(name "r-ascat")
@ -16155,6 +16425,29 @@ integration, exploration, and analysis of high-dimensional single-cell
cytometry and imaging data.")
(license license:expat))))
(define-public r-compgenomrdata
(let ((commit "24484cb77631e1123ead6c329b9d62c160e600c6")
(revision "1"))
(package
(name "r-compgenomrdata")
(version (git-version "0.1.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/compgenomr/compGenomRData")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"06gdvz4m4qlb1ylv10qfx09zv4c95cm7nps4y2s67m946kv8czv8"))))
(properties `((upstream-name . "compGenomRData")))
(build-system r-build-system)
(home-page "https://github.com/compgenomr/compGenomRData")
(synopsis "Data for Computational Genomics with R book")
(description "This package provides data for the book \"Computational
Genomics with R\".")
(license license:gpl3))))
(define-public r-cytonorm
(let ((commit "e4b9d343ee65db3c422800f1db3e77c25abde987")
(revision "1"))

View File

@ -2,6 +2,7 @@
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 20182022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2022 LuHui <luhux76@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -45,66 +46,74 @@
"0jfm9fik7nv4w21zqdg830pddgkdjmplmna9yjn9ck1lwn4vsps1"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-before 'configure 'disable-timestamps
(lambda _
(setenv "KCONFIG_NOTIMESTAMP" "1")))
(add-before 'configure 'disable-taskset
;; This feature fails its tests in the build environment,
;; was default 'n' until after 1.26.2.
(lambda _
(substitute* "util-linux/taskset.c"
(("default y") "default n"))))
(replace 'configure
(lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "make" "defconfig" make-flags)))
(add-after 'configure 'dont-install-to-usr
(lambda _
(substitute* ".config"
(("# CONFIG_INSTALL_NO_USR is not set")
"CONFIG_INSTALL_NO_USR=y"))))
(replace 'check
(lambda* (#:key make-flags #:allow-other-keys)
(substitute* '("testsuite/du/du-s-works"
"testsuite/du/du-works")
(("/bin") "/etc")) ; there is no /bin but there is a /etc
(list #:phases
#~(modify-phases %standard-phases
(add-before 'configure 'disable-timestamps
(lambda _
(setenv "KCONFIG_NOTIMESTAMP" "1")))
(add-before 'configure 'disable-taskset
;; This feature fails its tests in the build environment,
;; was default 'n' until after 1.26.2.
(lambda _
(substitute* "util-linux/taskset.c"
(("default y") "default n"))))
(replace 'configure
(lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "make" "defconfig" make-flags)))
(add-after 'configure 'dont-install-to-usr
(lambda _
(substitute* ".config"
(("# CONFIG_INSTALL_NO_USR is not set")
"CONFIG_INSTALL_NO_USR=y"))))
(replace 'check
(lambda* (#:key tests? make-flags #:allow-other-keys)
(substitute* '("testsuite/du/du-s-works"
"testsuite/du/du-works")
(("/bin") "/etc")) ; there is no /bin but there is a /etc
;; There is no /usr/bin or /bin - replace it with /gnu/store
(substitute* "testsuite/cpio.tests"
(("/usr/bin") (%store-directory))
(("usr") (car (filter (negate string-null?)
(string-split (%store-directory) #\/)))))
;; There is no /usr/bin or /bin - replace it with
;; /gnu/store.
(substitute* "testsuite/cpio.tests"
(("/usr/bin") (%store-directory))
(("usr") (car (filter (negate string-null?)
(string-split (%store-directory) #\/)))))
(substitute* "testsuite/date/date-works-1"
(("/bin/date") (which "date")))
(substitute* "testsuite/date/date-works-1"
(("/bin/date") (which "date")))
(substitute* "testsuite/start-stop-daemon.tests"
(("/bin/false") (which "false")))
(substitute* "testsuite/start-stop-daemon.tests"
(("/bin/false") (which "false")))
;; The pidof tests assume that pid 1 is called "init" but that is not
;; true in guix build environment
(substitute* "testsuite/pidof.tests"
(("-s init") "-s $(cat /proc/1/comm)"))
;; The pidof tests assume that pid 1 is called "init" but
;; that is not true in guix build environment
(substitute* "testsuite/pidof.tests"
(("-s init") "-s $(cat /proc/1/comm)"))
;; This test cannot possibly pass.
;; It is trying to test that "which ls" returns "/bin/ls" when PATH is not set.
;; However, this relies on /bin/ls existing. Which it does not in guix.
(delete-file "testsuite/which/which-uses-default-path")
(rmdir "testsuite/which")
;; This test cannot possibly pass. It is trying to test
;; that "which ls" returns "/bin/ls" when PATH is not set.
;; However, this relies on /bin/ls existing. Which it does
;; not in guix.
(delete-file "testsuite/which/which-uses-default-path")
(rmdir "testsuite/which")
(apply invoke "make"
;; "V=1"
"SKIP_KNOWN_BUGS=1"
"SKIP_INTERNET_TESTS=1"
"check" make-flags)))
(replace 'install
(lambda* (#:key outputs make-flags #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(apply invoke "make"
(string-append "CONFIG_PREFIX=" out)
"install" make-flags)))))))
(native-inputs (list perl ; needed to generate the man pages (pod2man)
(when tests?
(apply invoke "make"
;; "V=1"
"SKIP_KNOWN_BUGS=1"
"SKIP_INTERNET_TESTS=1"
"check" make-flags))))
(replace 'install
(lambda* (#:key outputs make-flags #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(apply invoke "make"
(string-append "CONFIG_PREFIX=" out)
"install" make-flags)))))
#:make-flags
#~(let ((target #$(%current-target-system)))
(if target
(list (string-append "CROSS_COMPILE=" target "-"))
'()))))
(native-inputs (list perl ; needed to generate the man pages (pod2man)
;; The following are needed by the tests.
inetutils
(@ (gnu packages base) which)

View File

@ -401,7 +401,7 @@ traditional Chinese characters.")
(license (list license:gpl2+ license:lgpl2.1+))))
(define-public gsimplecal
(let ((version "2.2"))
(let ((version "2.4.1"))
(package
(name "gsimplecal")
(version version)
@ -411,16 +411,17 @@ traditional Chinese characters.")
(url "https://github.com/dmedvinsky/gsimplecal/")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (base32
"1qyf65l088dqsz25hm6s1cv18j52yaias0llqvpqwjfnvssa5cxg"))
(sha256
(base32
"0ypnq9q6v2l8jg0ah31d8502jig1rk2bz749ljj97wk0rg1rixpi"))
(modules '((guix build utils)))))
(build-system gnu-build-system)
(inputs (list gtk+))
(native-inputs
(list autoconf automake pkg-config))
(native-inputs (list autoconf automake pkg-config))
(home-page "https://dmedvinsky.github.io/gsimplecal/")
(synopsis "Lightweight calendar applet")
(description "@command{gsimplecal} is a lightweight calendar application
(description
"@command{gsimplecal} is a lightweight calendar application
written in C++ using GTK. Launched once, it pops up a small calendar applet,
launched again it closes the running instance. It can additionally be
configured to show the current time in different timezones.")

View File

@ -204,14 +204,14 @@ designs.")
(define-public clojure-tools
(package
(name "clojure-tools")
(version "1.11.1.1149")
(version "1.11.1.1165")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.clojure.org/install/clojure-tools-"
version
".tar.gz"))
(sha256 (base32 "196wl87br8zg3npfwpr5c1q0knxd1810vzgb0b6h195hyjf6i210"))
(sha256 (base32 "1lg97waqfcgzr3dz5426fbc4kqcsavpbqil2iyjm1dw3zrfa8ysi"))
;; Remove AOT compiled JAR. The other JAR only contains uncompiled
;; Clojure source code.
(snippet

View File

@ -53,7 +53,10 @@
(uri (string-append "mirror://kernel.org/linux/network/connman/"
"connman-" version ".tar.xz"))
(sha256
(base32 "12g5ilcnymx6i45z3359yds3cgd2dfqjyncfm92hqlymzps41yvr"))))
(base32 "12g5ilcnymx6i45z3359yds3cgd2dfqjyncfm92hqlymzps41yvr"))
(patches (search-patches "connman-CVE-2022-32292.patch"
"connman-CVE-2022-32293-pt1.patch"
"connman-CVE-2022-32293-pt2.patch"))))
(build-system gnu-build-system)
(arguments
(list #:configure-flags

View File

@ -274,7 +274,7 @@ configure network interfaces in Linux containers.")
(define-public podman
(package
(name "podman")
(version "4.2.0")
(version "4.2.1")
(source
(origin
(method git-fetch)
@ -282,7 +282,7 @@ configure network interfaces in Linux containers.")
(url "https://github.com/containers/podman")
(commit (string-append "v" version))))
(sha256
(base32 "00wyjppd11hznmals9ax4s2qjklj6p1vfz4jjkp50bk8q4blxfbj"))
(base32 "0ph8gf5gk9z1hm1v5kv924dipswvgrz0sgk23plnh2q0vbnh4wvv"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)

View File

@ -8,6 +8,7 @@
;;; Copyright © 2020 Robin Green <greenrd@greenrd.org>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -43,6 +44,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system ocaml)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
@ -52,7 +54,7 @@
(define-public coq-core
(package
(name "coq-core")
(version "8.15.2")
(version "8.16.0")
(source
(origin
(method git-fetch)
@ -62,7 +64,7 @@
(file-name (git-file-name name version))
(sha256
(base32
"1m6dilfbp9q8j8sya4ap82q72m3a4mq6m96gzvi6vgv04cr6r33c"))
"1rp4m2yjldsz0kj7p2fsc312n740fr8kg99jlsk8aq3h524qz2h8"))
(patches (search-patches "coq-fix-envvars.patch"))))
(native-search-paths
(list (search-path-specification
@ -148,7 +150,7 @@ It is developed using Objective Caml and Camlp5.")
(propagated-inputs
(list coq coq-ide-server))
(inputs
`(("lablgtk3" ,lablgtk3)))))
(list lablgtk3 ocaml-lablgtk3-sourceview3))))
(define-public proof-general
;; The latest release is from 2016 and there has been more than 450 commits
@ -240,7 +242,7 @@ provers.")
(define-public coq-flocq
(package
(name "coq-flocq")
(version "4.0.0")
(version "4.1.0")
(source
(origin
(method git-fetch)
@ -250,7 +252,7 @@ provers.")
(file-name (git-file-name name version))
(sha256
(base32
"159ykkhxz7zms28r4v8jjccapl5vv00csdz29mfy83lwrv5b6rwk"))))
"1yscj1120wch6myakaia03j11qji416v78ylx842d23hrbaqwmw5"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake ocaml which coq))
@ -287,7 +289,7 @@ inside Coq.")
(define-public coq-gappa
(package
(name "coq-gappa")
(version "1.5.1")
(version "1.5.2")
(source
(origin
(method git-fetch)
@ -297,7 +299,7 @@ inside Coq.")
(file-name (git-file-name name version))
(sha256
(base32
"18y4mv44mcgyam77rf4xs7l06mg7pxx1qli3yvs0kklmnnvwa463"))))
"0l65ah81yj9vabgkwqh47c02qvscvl8nl60gqn1qrs47dx1pi80q"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf
@ -315,7 +317,9 @@ inside Coq.")
(arguments
`(#:configure-flags
(list (string-append "COQUSERCONTRIB=" (assoc-ref %outputs "out")
"/lib/coq/user-contrib"))
"/lib/coq/user-contrib")
(string-append "OCAMLFIND_DESTDIR=" (assoc-ref %outputs "out")
"/lib/ocaml/site-lib"))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'fix-remake
@ -345,7 +349,7 @@ assistant.")
(define-public coq-mathcomp
(package
(name "coq-mathcomp")
(version "1.14.0")
(version "1.15.0")
(source
(origin
(method git-fetch)
@ -354,7 +358,7 @@ assistant.")
(commit (string-append "mathcomp-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1rqg47dg84wr6d9v2pzna54dm62awcm8xdwx4dqwdwhf58fjxa9i"))))
(base32 "158zl36zbvi5qx2nqbfnrg00jpgp6hjr5hmls7d8d0421ar6b67i"))))
(build-system gnu-build-system)
(native-inputs
(list ocaml which coq))
@ -431,7 +435,7 @@ theorems between the two libraries.")
(define-public coq-bignums
(package
(name "coq-bignums")
(version "8.15.0")
(version "8.16.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -440,7 +444,7 @@ theorems between the two libraries.")
(file-name (git-file-name name version))
(sha256
(base32
"093klwlhclgyrba1iv18dyz1qp5f0lwiaa7y0qwvgmai8rll5fns"))))
"07ndnm7pndmai3a2bkcmwjfjzfaqyq19c5an15hmhgmd0rdy4z8c"))))
(build-system gnu-build-system)
(native-inputs
(list ocaml coq))
@ -450,7 +454,9 @@ theorems between the two libraries.")
`(#:tests? #f ; No test target.
#:make-flags
(list (string-append "COQLIBINSTALL=" (assoc-ref %outputs "out")
"/lib/coq/user-contrib"))
"/lib/coq/user-contrib")
(string-append "COQPLUGININSTALL=" (assoc-ref %outputs "out")
"/lib/ocaml/site-lib/"))
#:phases
(modify-phases %standard-phases
(delete 'configure))))
@ -463,7 +469,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
(define-public coq-interval
(package
(name "coq-interval")
(version "4.4.0")
(version "4.5.2")
(source
(origin
(method git-fetch)
@ -473,7 +479,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
(file-name (git-file-name name version))
(sha256
(base32
"1rlcbv1nqm7zv60n63lca6nnxcq3c18akgzl72s1n3h89gvhs87z"))))
"138vgb0bq6wkygrhkahjgb9spwpzc6x6kkycj2qnf5naxx1z412w"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake ocaml which coq))
@ -486,7 +492,9 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
(arguments
`(#:configure-flags
(list (string-append "COQUSERCONTRIB=" (assoc-ref %outputs "out")
"/lib/coq/user-contrib"))
"/lib/coq/user-contrib")
(string-append "OCAMLFIND_DESTDIR=" (assoc-ref %outputs "out")
"/lib/ocaml/site-lib"))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'fix-remake
@ -557,11 +565,11 @@ uses Ltac to synthesize the substitution operation.")
(method git-fetch)
(uri (git-reference
(url "https://github.com/mattam82/Coq-Equations")
(commit (string-append "v" version "-8.15"))))
(commit (string-append "v" version "-8.16"))))
(file-name (git-file-name name version))
(sha256
(base32
"1vfcfpsp9zyj0sw0cwibk76nj6n0r6gwh8m1aa3lbvc0b1kbm32k"))))
"08f756vgdd1wklkarg0b93j4n5mhkqm5ixxrhyb23dcv2dwhc8yg"))))
(build-system gnu-build-system)
(native-inputs
(list ocaml coq camlp5))
@ -571,7 +579,10 @@ uses Ltac to synthesize the substitution operation.")
`(#:test-target "test-suite"
#:make-flags (list (string-append "COQLIBINSTALL="
(assoc-ref %outputs "out")
"/lib/coq/user-contrib"))
"/lib/coq/user-contrib")
(string-append "COQPLUGININSTALL="
(assoc-ref %outputs "out")
"/lib/ocaml/site-lib/"))
#:phases
(modify-phases %standard-phases
(replace 'configure
@ -685,3 +696,78 @@ for goals involving set operations.
@end itemize")
(home-page "https://gitlab.mpi-sws.org/iris/stdpp")
(license license:bsd-3)))
(define-public coq-mathcomp-finmap
(package
(name "coq-mathcomp-finmap")
(version "1.5.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/math-comp/finmap")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1k72wpp15xa5ag358jl8a71gschng0bgbaqjx0l5a0in6x5adafh"))))
(build-system gnu-build-system)
(arguments
`(;; No tests supplied in Makefile.common.
;; The project doesn't appear to have plans to include tests in
;; the future.
#:tests? #f
#:make-flags (list (string-append "COQLIBINSTALL="
(assoc-ref %outputs "out")
"/lib/coq/user-contrib"))
#:phases (modify-phases %standard-phases
(delete 'configure))))
(inputs (list coq coq-stdlib coq-mathcomp which))
(synopsis "Finite sets and finite types for coq-mathcomp")
(description
"This library is an extension of coq-mathcomp which supports finite sets
and finite maps on choicetypes (rather than finite types). This includes
support for functions with finite support and multisets. The library also
contains a generic order and set libary, which will eventually be used to
subsume notations for finite sets.")
(home-page "https://math-comp.github.io/")
(license license:cecill-b)))
(define-public coq-mathcomp-bigenough
(package
(name "coq-mathcomp-bigenough")
(version "1.0.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/math-comp/bigenough")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"02f4dv4rz72liciwxb2k7acwx6lgqz4381mqyq5854p3nbyn06aw"))))
(build-system gnu-build-system)
(arguments
`(;; No references to tests in Makefile.common.
;; It doesn't appear as though tests will be included
;; by the packaged project in the future.
#:tests? #f
#:make-flags ,#~(list (string-append "COQBIN="
#$(this-package-input "coq-core")
"/bin/")
(string-append "COQMF_COQLIB="
(assoc-ref %outputs "out")
"/lib/ocaml/site-lib/coq")
(string-append "COQLIBINSTALL="
(assoc-ref %outputs "out")
"/lib/coq/user-contrib"))
#:phases (modify-phases %standard-phases
(delete 'configure))))
(propagated-inputs (list coq coq-core coq-mathcomp which))
(home-page "https://math-comp.github.io/")
(synopsis "Small library to do epsilon - N reasoning")
(description
"The package is used for reasoning with big enough objects (mostly
natural numbers). This package is essentially for backward compatibility
purposes as @code{bigenough} will be subsumed by the near tactics. The
formalization is based on the Mathematical Components library.")
(license license:cecill-b)))

File diff suppressed because it is too large Load Diff

View File

@ -3282,7 +3282,10 @@ crate @code{rust-wayland-client} for usable bindings.")
("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
("rust-web-sys" ,rust-web-sys-0.3)
("rust-winapi" ,rust-winapi-0.3)
("rust-x11-dl" ,rust-x11-dl-2))))
("rust-x11-dl" ,rust-x11-dl-2))
#:cargo-development-inputs
(("rust-console-log" ,rust-console-log-0.2)
("rust-simple-logger" ,rust-simple-logger-1))))
(inputs
(list rust-wayland-client-0.29 rust-wayland-protocols-0.29))
(home-page "https://github.com/rust-windowing/winit")
@ -3338,7 +3341,10 @@ the platform-specific getters provided by winit, or another library.")
("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
("rust-web-sys" ,rust-web-sys-0.3)
("rust-winapi" ,rust-winapi-0.3)
("rust-x11-dl" ,rust-x11-dl-2))))
("rust-x11-dl" ,rust-x11-dl-2))
#:cargo-development-inputs
(("rust-console-log" ,rust-console-log-0.2)
("rust-simple-logger" ,rust-simple-logger-1))))
(inputs
(list rust-wayland-client-0.28))))

View File

@ -3362,6 +3362,52 @@ coverage-guided, mutation-based fuzzers.")
that runs on Argon2.")
(license license:expat)))
(define-public rust-arr-macro-impl-0.1
(package
(name "rust-arr-macro-impl")
(version "0.1.3")
(source (origin
(method url-fetch)
(uri (crate-uri "arr_macro_impl" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1lbjilz3pvwav72dfkcbz99rsq7m04xbdpqh8g3yvx3jsn5wf286"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)
("rust-quote" ,rust-quote-1)
("rust-syn" ,rust-syn-1))))
(home-page "https://github.com/JoshMcguigan/arr_macro")
(synopsis "Private impl crate for arr_macro")
(description "This package provides a private @code{impl} crate for
@code{arr_macro}.")
(license (list license:expat license:asl2.0))))
(define-public rust-arr-macro-0.1
(package
(name "rust-arr-macro")
(version "0.1.3")
(source (origin
(method url-fetch)
(uri (crate-uri "arr_macro" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"199086q8zva66lbg9bpz6fa67s81ra7yfa8148cwy1w7lkymn43a"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-arr-macro-impl" ,rust-arr-macro-impl-0.1)
("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5))))
(home-page "https://github.com/JoshMcguigan/arr_macro")
(synopsis "Initialize arrays with ease")
(description "Array macro helps initialize arrays. It is useful when
initializing large arrays (greater than 32 elements), or arrays of types which
do not implement the copy or default traits.")
(license (list license:expat license:asl2.0))))
(define-public rust-array-macro-1
(package
(name "rust-array-macro")
@ -3432,7 +3478,7 @@ structures.")
(define-public rust-arrayvec-0.7
(package
(name "rust-arrayvec")
(version "0.7.0")
(version "0.7.2")
(source
(origin
(method url-fetch)
@ -3441,7 +3487,7 @@ structures.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"1xza6jbs8x51yhh4qnwjw1crm33bhl975r965fpq1hqhpfq5hbss"))))
"1mjl8jjqxpl0x7sm9cij61cppi7yi38cdrd1l8zjw7h7qxk2v9cd"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@ -8493,7 +8539,7 @@ alphabet.")
(define-public rust-bstr-0.2
(package
(name "rust-bstr")
(version "0.2.15")
(version "0.2.17")
(source
(origin
(method url-fetch)
@ -8502,7 +8548,7 @@ alphabet.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"0gca4v6448clsssll3y787jgw542c9mw9phqdi7419g1jfnlf2x4"))))
"08rjbhysy6gg27db2h3pnhvr2mlr5vkj797i9625kwg8hgrnjdds"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@ -12208,6 +12254,32 @@ diagnostics easy and relatively painless for everyone!")
("rust-structopt" ,rust-structopt-0.3)
("rust-unindent" ,rust-unindent-0.1))))))
(define-public rust-coitrees-0.2
(package
(name "rust-coitrees")
(version "0.2.1")
(source (origin
(method url-fetch)
(uri (crate-uri "coitrees" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1l2ybr8n02vm08wq9mrix7r07bgwm85i6fyachlm8d626w9w9d3f"))))
(build-system cargo-build-system)
(arguments
;; Check phase fails with:
;; no function or associated item named `with_name` found for struct
;; `Arg` in the current scope
`(#:tests? #false
#:cargo-development-inputs
(("rust-clap" ,rust-clap-3))))
(home-page "https://github.com/dcjones/coitrees")
(synopsis "Data structure for overlap queries on sets of intervals")
(description
"This package provides a very fast data structure for overlap queries on
sets of intervals.")
(license license:expat)))
(define-public rust-color-backtrace-0.5
(package
(name "rust-color-backtrace")
@ -13050,6 +13122,30 @@ this to write Rust programs which can be customized by end users easily.")
that logs panics to @code{console.error}.")
(license (list license:expat license:asl2.0))))
(define-public rust-console-log-0.2
(package
(name "rust-console-log")
(version "0.2.0")
(source (origin
(method url-fetch)
(uri (crate-uri "console_log" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"150li8pznpfpn4q0f7g9jwq2hnd5wik0w8378zaa1wffc5ckf6jh"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-log" ,rust-log-0.4)
("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
("rust-web-sys" ,rust-web-sys-0.3))))
(home-page "https://github.com/iamcodemaker/console_log")
(synopsis "Route Rust log messages to the browser's console")
(description
"This package provides a logging facility that routes Rust log messages to
the browser's console.")
(license (list license:expat license:asl2.0))))
(define-public rust-console-log-0.1
(package
(name "rust-console-log")
@ -14530,14 +14626,14 @@ criterion.")
(define-public rust-crossbeam-channel-0.5
(package
(name "rust-crossbeam-channel")
(version "0.5.0")
(version "0.5.6")
(source
(origin
(method url-fetch)
(uri (crate-uri "crossbeam-channel" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0xfplw54pskl3kyf2q6kw8y2phnq6wn8pqxx003n8qfkz3hnx8nw"))))
(base32 "08f5f043rljl82a06d1inda6nl2b030s7yfqp31ps8w8mzfh9pf2"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@ -14745,14 +14841,14 @@ message passing.")
(define-public rust-crossbeam-queue-0.3
(package
(name "rust-crossbeam-queue")
(version "0.3.1")
(version "0.3.6")
(source
(origin
(method url-fetch)
(uri (crate-uri "crossbeam-queue" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0mk790w2y7cn9zqj6cn1kl8vvgaamlkj6fmpxg1iprdqyp3v6v0g"))))
(base32 "19ram1wp87i57w834hwl95mzz9g53qlzkraq6lvab629n21jbm0w"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
@ -21284,6 +21380,40 @@ You can use this crate to turn non-blocking data structures into async or
blocking data structures.")
(license (list license:asl2.0 license:expat))))
(define-public rust-executors-0.9
(package
(name "rust-executors")
(version "0.9.0")
(source (origin
(method url-fetch)
(uri (crate-uri "executors" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0z8gn5vcr0x1db1bvahhmby9mpr1jgzd4qfvm25mja5js3agk51a"))))
(build-system cargo-build-system)
(arguments
;; TODO: build needs metrics_printer
`(#:skip-build? #t
#:cargo-inputs
(("rust-arr-macro" ,rust-arr-macro-0.1)
("rust-async-task" ,rust-async-task-4)
("rust-core-affinity" ,rust-core-affinity-0.5)
("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
("rust-crossbeam-deque" ,rust-crossbeam-deque-0.8)
("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
("rust-log" ,rust-log-0.4)
("rust-metrics" ,rust-metrics-0.14)
("rust-num-cpus" ,rust-num-cpus-1)
("rust-rand" ,rust-rand-0.8)
("rust-synchronoise" ,rust-synchronoise-1)
("rust-threadpool" ,rust-threadpool-1))))
(home-page "https://github.com/Bathtor/rust-executors")
(synopsis "Collection of high-performance task executors")
(description
"This package provides a collection of high-performance task executors.")
(license license:expat)))
(define-public rust-exitcode-1
(package
(name "rust-exitcode")
@ -23307,6 +23437,29 @@ helpful error messages.")
process and much more.")
(license license:expat)))
(define-public rust-fs-utils-1
(package
(name "rust-fs-utils")
(version "1.1.4")
(source (origin
(method url-fetch)
(uri (crate-uri "fs-utils" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"14r5wl14mz227v0lpy89lvjzfnxgdxigvrrmm6c4r52w03fakivg"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-quick-error" ,rust-quick-error-1))
#:cargo-development-inputs
(("rust-tempfile" ,rust-tempfile-3))))
(home-page "https://github.com/Byron/fs-utils-rs")
(synopsis "Utilities to help working with the filesytem")
(description "This package provides a bunch of utilities to help working
with the filesytem.")
(license (list license:expat license:asl2.0))))
(define-public rust-fs2-0.2
(package
(name "rust-fs2")
@ -25885,7 +26038,11 @@ graphics.")
("rust-smallvec" ,rust-smallvec-1)
("rust-takeable-option" ,rust-takeable-option-0.5))
#:cargo-development-inputs
(("rust-gl-generator" ,rust-gl-generator-0.14))))
(("rust-cgmath" ,rust-cgmath-0.18)
("rust-genmesh" ,rust-genmesh-0.6)
("rust-gl-generator" ,rust-gl-generator-0.14)
("rust-obj" ,rust-obj-0.10)
("rust-ouroboros" ,rust-ouroboros-0.14))))
(home-page "https://github.com/glium/glium")
(synopsis "OpenGL wrapper")
(description
@ -28073,6 +28230,48 @@ Hash-based Message Authentication Code algorithm} for SHA1.")
characters in HTML, decoding and unescaping HTML entities as well.")
(license license:expat)))
(define-public rust-hts-sys-2
(package
(name "rust-hts-sys")
(version "2.0.2")
(source (origin
(method url-fetch)
(uri (crate-uri "hts-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1qn1qz2xa69x2dj1fbh91avm9943rbcykr37zs68pb2bdy847i3j"))
(modules '((guix build utils)))
(snippet
'(substitute* "Cargo.toml"
;; Do not use zlib-ng; just use zlib.
(("features = \\[\"zlib-ng\", \"static\"\\]") "")
;; No static libraries please.
(("\"static-curl\", \"static-ssl\",") "")
((", \"static\"") "")
(("\\[\"static\"\\]") "[]")))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-bindgen" ,rust-bindgen-0.53)
("rust-bzip2-sys" ,rust-bzip2-sys-0.1)
("rust-cc" ,rust-cc-1)
("rust-curl-sys" ,rust-curl-sys-0.4)
("rust-fs-utils" ,rust-fs-utils-1)
("rust-glob" ,rust-glob-0.3)
("rust-libdeflate-sys" ,rust-libdeflate-sys-0.5)
("rust-libz-sys" ,rust-libz-sys-1)
("rust-lzma-sys" ,rust-lzma-sys-0.1)
("rust-openssl-sys" ,rust-openssl-sys-0.9))))
(inputs
(list curl openssl xz zlib))
(native-inputs
(list cmake-minimal pkg-config))
(home-page "https://github.com/samtools/htslib.git")
(synopsis "Rust bindings to HTSlib")
(description "This library provides Rust bindings to HTSlib.")
(license license:expat)))
(define-public rust-http-0.2
(package
(name "rust-http")
@ -29029,6 +29228,27 @@ with hyper.")
(("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
("rust-rustc-test" ,rust-rustc-test-0.3))))))
(define-public rust-ieee754-0.2
(package
(name "rust-ieee754")
(version "0.2.6")
(source (origin
(method url-fetch)
(uri (crate-uri "ieee754" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1771d2kvw1wga65yrg9m7maky0fzsaq9hvhkv91n6gmxmjfdl1wh"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-development-inputs
(("rust-criterion" ,rust-criterion-0.2))))
(home-page "https://github.com/huonw/ieee754")
(synopsis "Low-level manipulations of IEEE754 floating-point numbers")
(description "This is a package for low-level manipulations of IEEE754
floating-point numbers.")
(license (list license:expat license:asl2.0))))
(define-public rust-if-chain-1
(package
(name "rust-if-chain")
@ -31906,6 +32126,29 @@ macros on libc without stdlib.")
(description "This package provides FFI bindings to libdbus.")
(license (list license:asl2.0 license:expat))))
(define-public rust-libdeflate-sys-0.5
(package
(name "rust-libdeflate-sys")
(version "0.5.0")
(source (origin
(method url-fetch)
(uri (crate-uri "libdeflate-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"07ychzvz9xrqs92frs3zpny0l8jp3sndzqpl7zhv6kdqhzx9xqr1"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-cc" ,rust-cc-1))))
(home-page "https://github.com/adamkewley/libdeflater")
(synopsis "Bindings to libdeflate")
(description
"This package provides bindings to libdeflate for DEFLATE (de)compression
exposed as non-streaming buffer operations. It contains bindings for raw
deflate, zlib, and gzip data.")
(license license:asl2.0)))
(define-public rust-libflate-1
(package
(name "rust-libflate")
@ -32441,6 +32684,63 @@ library.")
library.")
(license (list license:expat license:asl2.0))))
(define-public rust-libradicl-0.4
(package
(name "rust-libradicl")
(version "0.4.1")
(source (origin
(method url-fetch)
(uri (crate-uri "libradicl" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"10j2f2iv4037315fiqppk7x2bx1mnw6gns3qqwyhcyh4sgbz3ka4"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #false ;fail to compile InternalVersionInfo
#:cargo-inputs
(("rust-ahash" ,rust-ahash-0.7)
("rust-arrayvec" ,rust-arrayvec-0.7)
("rust-bincode" ,rust-bincode-1)
("rust-bio-types" ,rust-bio-types-0.12)
("rust-bstr" ,rust-bstr-0.2)
("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
("rust-crossbeam-queue" ,rust-crossbeam-queue-0.3)
("rust-csv" ,rust-csv-1)
("rust-dashmap" ,rust-dashmap-4)
("rust-executors" ,rust-executors-0.9)
("rust-flate2" ,rust-flate2-1)
("rust-indicatif" ,rust-indicatif-0.16)
("rust-itertools" ,rust-itertools-0.10)
("rust-needletail" ,rust-needletail-0.4)
("rust-num" ,rust-num-0.4)
("rust-num-format" ,rust-num-format-0.4)
("rust-petgraph" ,rust-petgraph-0.6)
("rust-quickersort" ,rust-quickersort-3)
("rust-rand" ,rust-rand-0.8)
("rust-rust-htslib" ,rust-rust-htslib-0.38)
("rust-sce" ,rust-sce-0.1)
("rust-scroll" ,rust-scroll-0.10)
("rust-serde" ,rust-serde-1)
("rust-serde-json" ,rust-serde-json-1)
("rust-slog" ,rust-slog-2)
("rust-slog-async" ,rust-slog-async-2)
("rust-slog-term" ,rust-slog-term-2)
("rust-smallvec" ,rust-smallvec-1)
("rust-snap" ,rust-snap-1)
("rust-sprs" ,rust-sprs-0.10)
("rust-statrs" ,rust-statrs-0.15))))
(inputs
(list xz zlib))
(native-inputs
(list pkg-config))
(home-page "https://github.com/COMBINE-lab/alevin-fry")
(synopsis "Support library for alevin-fry")
(description "This package provides a support library for alevin-fry, a
suite of tools for the rapid, accurate and memory-frugal processing
single-cell and single-nucleus sequencing data.")
(license license:bsd-3)))
(define-public rust-libsqlite3-sys-0.23
(package
(name "rust-libsqlite3-sys")
@ -32652,6 +32952,30 @@ known as zlib).")
(license (list license:asl2.0
license:expat))))
(define-public rust-libz-ng-sys-1
(package
(name "rust-libz-ng-sys")
(version "1.1.8")
(source (origin
(method url-fetch)
(uri (crate-uri "libz-ng-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1wp0aya5hh76h1acspvrrsvq2fl0kyb8dpi6wy0zaswnm6bax6a3"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-cmake" ,rust-cmake-0.1)
("rust-libc" ,rust-libc-0.2))))
(home-page "https://github.com/rust-lang/libz-sys")
(synopsis "Low-level bindings to zlib-ng (libz-ng)")
(description
"This package provides low-level bindings to zlib-ng (libz-ng), a
high-performance zlib library.")
(license (list license:expat license:asl2.0))))
(define-public rust-lifeguard-0.6
(package
(name "rust-lifeguard")
@ -32728,6 +33052,48 @@ libraries have.
"Efficiently insert line separators.")
(license license:asl2.0)))
(define-public rust-linear-map-1
(package
(name "rust-linear-map")
(version "1.2.0")
(source (origin
(method url-fetch)
(uri (crate-uri "linear-map" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1vh3sczl4xb5asdlpafdf3y4g9bp63fgs8y2a2sjgmcsn7v21bmz"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-serde" ,rust-serde-1)
("rust-serde-test" ,rust-serde-test-1))))
(home-page "https://github.com/contain-rs/linear-map")
(synopsis "Map implemented by searching linearly in a vector")
(description
"This package provides a map implemented by searching linearly in a
vector.")
(license (list license:expat license:asl2.0))))
(define-public rust-linecount-0.1
(package
(name "rust-linecount")
(version "0.1.0")
(source (origin
(method url-fetch)
(uri (crate-uri "linecount" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1n2733qcmvxl3fra3924yj8sf21vr6f6g6dg6wnhbkxr8fia9mfm"))))
(build-system cargo-build-system)
(arguments '(#:skip-build? #t))
(home-page "https://github.com/eclarke/linecount")
(synopsis "Quickly count lines in a file")
(description "This package provides a function @code{count_lines}
to count the number of lines in a file.")
(license license:expat)))
(define-public rust-link-cplusplus-1
(package
(name "rust-link-cplusplus")
@ -35182,6 +35548,55 @@ based on Rustls and Ring.")
and XXH3 algorithms.")
(license license:expat)))
(define-public rust-metrics-macros-0.2
(package
(name "rust-metrics-macros")
(version "0.2.0")
(source (origin
(method url-fetch)
(uri (crate-uri "metrics-macros" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0yy2dc9g3m1h8df6bmnqh1sngyvrgznz1fjpkp9rz1is9p6n1b0i"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-lazy-static" ,rust-lazy-static-1)
("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)
("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-quote" ,rust-quote-1)
("rust-regex" ,rust-regex-1)
("rust-syn" ,rust-syn-1))))
(home-page "https://github.com/metrics-rs/metrics")
(synopsis "Macros for the metrics crate")
(description "This package provides macros for the metrics crate.")
(license license:expat)))
(define-public rust-metrics-0.14
(package
(name "rust-metrics")
(version "0.14.2")
(source (origin
(method url-fetch)
(uri (crate-uri "metrics" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0lf80vznlh0p06nchj08nlqgf3bajnwr6w3syflg7ffg3mh8bqjq"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-metrics-macros" ,rust-metrics-macros-0.2)
("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5))
#:cargo-development-inputs
(("rust-criterion" ,rust-criterion-0.3)
("rust-trybuild" ,rust-trybuild-1))))
(home-page "https://github.com/metrics-rs/metrics")
(synopsis "Lightweight metrics facade")
(description "This package provides a lightweight metrics facade.")
(license license:expat)))
(define-public rust-metrohash-1
(package
(name "rust-metrohash")
@ -35614,10 +36029,8 @@ drop-in replacement for miniz.")
"1zw5glv8z2d99c82jy2za97hh9p6377xmf4rbwz7jynsdfxfngg5"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-serde" ,rust-serde-1))
#:cargo-development-inputs
(("rust-serde-json" ,rust-serde-json-1))))
`(#:cargo-inputs (("rust-serde" ,rust-serde-1))
#:cargo-development-inputs (("rust-serde-json" ,rust-serde-json-1))))
(home-page "https://github.com/kvark/mint")
(synopsis "Math interoperability standard types")
(description
@ -37436,6 +37849,45 @@ general elements and for numerics.")
(description "This package provides FFI bindings for the Android NDK.")
(license (list license:expat license:asl2.0))))
(define-public rust-needletail-0.4
(package
(name "rust-needletail")
(version "0.4.1")
(source (origin
(method url-fetch)
(uri (crate-uri "needletail" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1k535wlg0khac2gz3q84rlcqc5r89jyw73ww25vfgc04plzc9d3z"))))
(build-system cargo-build-system)
(arguments
;; Two tests fail due to missing files.
;; - parser::fastq::test::test_bad_headers
;; - parser::fastq::test::test_fastq_with_random_tsv_inside
`(#:tests? #false
#:cargo-inputs
(("rust-bio" ,rust-bio-0.33)
("rust-buf-redux" ,rust-buf-redux-0.8)
("rust-bytecount" ,rust-bytecount-0.6)
("rust-bzip2" ,rust-bzip2-0.4)
("rust-flate2" ,rust-flate2-1)
("rust-memchr" ,rust-memchr-2)
("rust-pyo3" ,rust-pyo3-0.13)
("rust-xz2" ,rust-xz2-0.1))
#:cargo-development-inputs
(("rust-assert-cmd" ,rust-assert-cmd-1)
("rust-escargot" ,rust-escargot-0.5)
("rust-predicates" ,rust-predicates-1)
("rust-seq-io" ,rust-seq-io-0.3))))
(inputs (list xz))
(native-inputs (list pkg-config))
(home-page "https://github.com/onecodex/needletail")
(synopsis "FASTX parsing and k-mer methods")
(description "Needletail is a minimal-copying FASTA/FASTQ parser and k-mer
processing library for Rust.")
(license license:expat)))
(define-public rust-neli-0.4
(package
(name "rust-neli")
@ -39618,6 +40070,25 @@ mathematics.")
`(#:cargo-inputs
(("rust-num-traits" , rust-num-traits-0.2))))))
(define-public rust-number-prefix-0.4
(package
(name "rust-number-prefix")
(version "0.4.0")
(source (origin
(method url-fetch)
(uri (crate-uri "number_prefix" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1wvh13wvlajqxkb1filsfzbrnq0vrmrw298v2j3sy82z1rm282w3"))))
(build-system cargo-build-system)
(home-page "https://github.com/ogham/rust-number-prefix")
(synopsis "Format numeric prefixes: kilo, giga, kibi")
(description
"This package provides a library for formatting numeric prefixes: kilo,
giga, kibi.")
(license license:expat)))
(define-public rust-number-prefix-0.3
(package
(name "rust-number-prefix")
@ -39679,6 +40150,27 @@ obfuscation for Rust. The string constant itself is embedded in obfuscated
form and deobfuscated locally.")
(license license:expat)))
(define-public rust-obj-0.10
(package
(name "rust-obj")
(version "0.10.2")
(source (origin
(method url-fetch)
(uri (crate-uri "obj" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0jks8qzjn59na40dv9m0q2j540i04cddbkbq02scgk9qawj9b705"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #false ;missing files
#:cargo-inputs (("rust-genmesh" ,rust-genmesh-0.6))))
(home-page "https://github.com/kvark/obj")
(synopsis "Package for loading Wavefront .obj files")
(description
"This package provides a package for loading Wavefront @code{.obj} files.")
(license license:asl2.0)))
(define-public rust-obj-0.9
(package
(name "rust-obj")
@ -47783,6 +48275,33 @@ integers, floats, tuples, booleans, lists, strings, options and results.")
#:cargo-development-inputs
(("rust-quickcheck" ,rust-quickcheck-0.8))))))
(define-public rust-quickersort-3
(package
(name "rust-quickersort")
(version "3.0.1")
(source (origin
(method url-fetch)
(uri (crate-uri "quickersort" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"02r7wplnw7m1dhjah8p89inxn9g4nwb7ga7xdn95cffwpwn88z1h"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-nodrop" ,rust-nodrop-0.1)
("rust-unreachable" ,rust-unreachable-1))
#:cargo-development-inputs
(("rust-itertools" ,rust-itertools-0.7)
("rust-num-traits" ,rust-num-traits-0.2))))
(home-page "https://github.com/notriddle/quickersort")
(synopsis "Fast sorting")
(description
"This package implements fast sorting compatible with stable Rust. It
also has (optional) support for efficient and robust sorting of floating point
numbers.")
(license (list license:expat license:asl2.0))))
(define-public rust-quine-mc-cluskey-0.2
(package
(name "rust-quine-mc-cluskey")
@ -51494,6 +52013,49 @@ please consider using @code{async-std} or @code{tokio}.")
(inputs
(list sqlite))))
(define-public rust-rust-htslib-0.38
(package
(name "rust-rust-htslib")
(version "0.38.2")
(source (origin
(method url-fetch)
(uri (crate-uri "rust-htslib" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"070sihnvyiyqcw8yjkdl8hvav598bsw36m722phgd2b394k6djia"))))
(build-system cargo-build-system)
(arguments
;; TODO: cannot find openssl_src
`(#:skip-build? #t
#:cargo-inputs
(("rust-bio-types" ,rust-bio-types-0.12)
("rust-byteorder" ,rust-byteorder-1)
("rust-custom-derive" ,rust-custom-derive-0.1)
("rust-derive-new" ,rust-derive-new-0.5)
("rust-hts-sys" ,rust-hts-sys-2)
("rust-ieee754" ,rust-ieee754-0.2)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-libc" ,rust-libc-0.2)
("rust-linear-map" ,rust-linear-map-1)
("rust-newtype-derive" ,rust-newtype-derive-0.1)
("rust-regex" ,rust-regex-1)
("rust-serde" ,rust-serde-1)
("rust-serde-bytes" ,rust-serde-bytes-0.11)
("rust-thiserror" ,rust-thiserror-1)
("rust-url" ,rust-url-2))
#:cargo-development-inputs
(("rust-bincode" ,rust-bincode-1)
("rust-pretty-assertions" ,rust-pretty-assertions-0.6))))
(inputs (list openssl))
(native-inputs (list pkg-config))
(home-page "https://github.com/rust-bio/rust-htslib.git")
(synopsis "HTSlib bindings and API for reading and writing BAM files")
(description
"This library provides HTSlib bindings and a high level Rust API for
reading and writing BAM files.")
(license license:expat)))
(define-public rust-rustsec-0.25
(package
(name "rust-rustsec")
@ -53003,6 +53565,37 @@ rustc compiler.")
("rust-serde-derive" ,rust-serde-derive-1)
("rust-webpki-roots" ,rust-webpki-roots-0.14))))))
(define-public rust-rustls-ffi-0.8
(package
(name "rust-rustls-ffi")
(version "0.8.2")
(source (origin
(method url-fetch)
(uri (crate-uri "rustls-ffi" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"06kqrvm1d5ps9pml26zdd2hm8hh20j6svwvqibpnx7m5rh3jg9cx"))))
(build-system cargo-build-system)
;; Build needs cbindgen-0.19
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-libc" ,rust-libc-0.2)
("rust-log" ,rust-log-0.4)
("rust-num-enum" ,rust-num-enum-0.5)
("rust-rustls" ,rust-rustls-0.20)
("rust-rustls-pemfile" ,rust-rustls-pemfile-0.2)
("rust-sct" ,rust-sct-0.7)
("rust-webpki" ,rust-webpki-0.22))))
(home-page "https://github.com/rustls/rustls-ffi")
(synopsis "C to rustls bindings")
(description "This package contains FFI bindings for the rustls TLS
library, so you can use the library in C programs or any other language that
supports FFI.")
;; Use under the terms of any of these licenses
(license (list license:asl2.0 license:isc license:expat))))
(define-public rust-rustls-native-certs-0.6
(package
(name "rust-rustls-native-certs")
@ -54052,6 +54645,33 @@ encodable types.")
"This package provides a simple scanf()-like input for Rust")
(license license:expat)))
(define-public rust-sce-0.1
(package
(name "rust-sce")
(version "0.1.2")
(source (origin
(method url-fetch)
(uri (crate-uri "sce" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1fv0nbx6r44rcqfy6881gin30d92zgxl0jrx4hfl725h0425i74j"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-byteorder" ,rust-byteorder-1)
("rust-csv" ,rust-csv-1)
("rust-flate2" ,rust-flate2-1)
("rust-num" ,rust-num-0.4)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-sprs" ,rust-sprs-0.11))))
(home-page "https://github.com/parazodiac/SingleCellExperiment")
(synopsis "Import and manage various single-cell matrices")
(description
"This package provides a library for importing and managing various
single-cell matrices.")
(license license:bsd-3)))
(define-public rust-schannel-0.1
(package
(name "rust-schannel")
@ -59602,6 +60222,70 @@ OIDs)")
(description "Simple SPMC channel")
(license (list license:expat license:asl2.0))))
(define-public rust-sprs-0.11
(package
(name "rust-sprs")
(version "0.11.0")
(source (origin
(method url-fetch)
(uri (crate-uri "sprs" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0w6xishm9jxqjy83as7g14474cn1xb55vqz8afqw9d7and41x9vf"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t ;8 test failures due to "No such file or directory"
#:cargo-inputs
(("rust-alga" ,rust-alga-0.9)
("rust-approx" ,rust-approx-0.5)
("rust-ndarray" ,rust-ndarray-0.15)
("rust-num-complex" ,rust-num-complex-0.4)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-num-cpus" ,rust-num-cpus-1)
("rust-rayon" ,rust-rayon-1)
("rust-serde" ,rust-serde-1)
("rust-smallvec" ,rust-smallvec-1))
#:cargo-development-inputs
(("rust-bencher" ,rust-bencher-0.1)
("rust-bincode" ,rust-bincode-1)
("rust-tobj" ,rust-tobj-3))))
(home-page "https://github.com/vbarrielle/sprs")
(synopsis "Sparse matrix library")
(description "This package provides a sparse matrix library.")
;; Either license can be chosen
(license (list license:expat license:asl2.0))))
(define-public rust-sprs-0.10
(package
(inherit rust-sprs-0.11)
(name "rust-sprs")
(version "0.10.0")
(source (origin
(method url-fetch)
(uri (crate-uri "sprs" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"18qwm1wnc1jbzdpl0wfrrybb6rak74zv8jmfg87id7ksb6crkz6r"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t ;8 test failures due to "No such file or directory"
#:cargo-inputs
(("rust-alga" ,rust-alga-0.9)
("rust-approx" ,rust-approx-0.3)
("rust-ndarray" ,rust-ndarray-0.14)
("rust-num-complex" ,rust-num-complex-0.2)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-num-cpus" ,rust-num-cpus-1)
("rust-rayon" ,rust-rayon-1)
("rust-serde" ,rust-serde-1)
("rust-smallvec" ,rust-smallvec-1))
#:cargo-development-inputs
(("rust-bencher" ,rust-bencher-0.1)
("rust-bincode" ,rust-bincode-1)
("rust-tobj" ,rust-tobj-2))))))
(define-public rust-rspotify-0.10
(package
(name "rust-rspotify")
@ -61791,6 +62475,28 @@ a syntax tree of Rust source code.")
"This package provides the features between \"full\" and \"derive\" of syn.")
(license (list license:asl2.0 license:expat))))
(define-public rust-synchronoise-1
(package
(name "rust-synchronoise")
(version "1.0.0")
(source (origin
(method url-fetch)
(uri (crate-uri "synchronoise" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1szasv8xl6z3gxfq8h8wllw2mq53d71nn29achxsnfcxzh7fs5yp"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-crossbeam-queue" ,rust-crossbeam-queue-0.1))))
(home-page "https://github.com/QuietMisdreavus/synchronoise")
(synopsis "Synchronization primitives")
(description
"This package provides synchronization primitives that build upon the
standard library.")
(license (list license:expat license:asl2.0))))
(define-public rust-synom-0.11
(package
(name "rust-synom")
@ -65066,6 +65772,47 @@ to a style defined by John Gruber for post titles on his website ``Daring
Fireball''.")
(license license:expat)))
(define-public rust-tobj-3
(package
(name "rust-tobj")
(version "3.1.0")
(source (origin
(method url-fetch)
(uri (crate-uri "tobj" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1q9hxhdzbqcrpnmja98mnd5890jf3x1njg0q1lgpj8yg5j29ryc9"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t ;tests are incomplete
#:cargo-inputs
(("rust-ahash" ,rust-ahash-0.7)
("rust-log" ,rust-log-0.4))))
(home-page "https://github.com/Twinklebear/tobj")
(synopsis "Lightweight OBJ loader in the spirit of tinyobjloader")
(description
"This package provides a lightweight OBJ loader in the spirit of
tinyobjloader.")
(license license:expat)))
(define-public rust-tobj-2
(package
(inherit rust-tobj-3)
(name "rust-tobj")
(version "2.0.4")
(source (origin
(method url-fetch)
(uri (crate-uri "tobj" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"06w8ix9nk38wli0pjfl22hiyy07byhdcz18nkwhzg775x1dzas14"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t ;tests are incomplete
#:cargo-inputs (("rust-log" ,rust-log-0.4))))))
(define-public rust-tokio-1
(package
(name "rust-tokio")
@ -75041,6 +75788,34 @@ for @code{uint} and @code{fixed_hash}.")
a trait for tuples.")
(license (list license:asl2.0 license:expat))))
(define-public rust-indicatif-0.16
(package
(name "rust-indicatif")
(version "0.16.2")
(source (origin
(method url-fetch)
(uri (crate-uri "indicatif" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"06xyjs0kzqiqkjn60n1miwm2l87sa9p2lmzz0ymq18y72z37s81d"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-console" ,rust-console-0.15)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-number-prefix" ,rust-number-prefix-0.4)
("rust-rayon" ,rust-rayon-1)
("rust-regex" ,rust-regex-1)
("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
("rust-unicode-width" ,rust-unicode-width-0.1))))
(home-page "https://github.com/console-rs/indicatif")
(synopsis "Progress bar and cli reporting library for Rust")
(description
"This package provides a progress bar and cli reporting library for
Rust.")
(license license:expat)))
(define-public rust-inflections-1
(package
(name "rust-inflections")

View File

@ -70,7 +70,7 @@
(name (string-append (package-name p) "-cross-" target))
(arguments
(substitute-keyword-arguments (package-arguments p)
((#:configure-flags flags)
((#:configure-flags flags ''())
`(cons ,(string-append "--target=" target)
,flags))))))

View File

@ -24,6 +24,7 @@
;;; Copyright © 2021, 2022 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2022 Allan Adair <allan@adair.no>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -1699,3 +1700,42 @@ sha256crypt, md5crypt, SunMD5, sha1crypt, NT, bsdicrypt, bigcrypt, and
descrypt.")
(home-page "https://github.com/besser82/libxcrypt")
(license license:lgpl2.1)))
(define-public keychain
(package
(name "keychain")
(version "2.8.5")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/funtoo/keychain")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1bkjlg0a2bbdjhwp37ci1rwikvrl4s3xlbf2jq2z4azc96dr83mj"))))
(build-system gnu-build-system)
(propagated-inputs (list procps))
(arguments
`(#:tests? #f ; No test suite
#:phases (modify-phases %standard-phases
(delete 'configure)
(replace 'install
(lambda _
(install-file "keychain"
(string-append %output "/bin/"))
(install-file "keychain.1"
(string-append %output "/share/man/man1"))
#t)))))
(synopsis
"SSH or GPG agent frontend that can share a single agent on the same
system")
(description
"Keychain is usually run from shell profiles like ~/.bash_profile, but
it is also possible to use it with non-interactive shells. It works
with various operating systems (including GNU/Linux and HURD) and
shells (like bourne-compatible, csh-compatible and fish shells). By
default Keychain will only start ssh-agent, but it can also be
configured to start gpg-agent.")
(home-page "https://www.funtoo.org/Keychain")
(license license:gpl2)))

View File

@ -4141,7 +4141,7 @@ the SQL language using a syntax that reflects the resulting query.")
(define-public apache-arrow
(package
(name "apache-arrow")
(version "8.0.0")
(version "9.0.0")
(source
(origin
(method git-fetch)
@ -4151,7 +4151,7 @@ the SQL language using a syntax that reflects the resulting query.")
(file-name (git-file-name name version))
(sha256
(base32
"1gwiflk72pq1krc0sjzabypmh7slfyf7ak71fiypy3xgzw8a777c"))))
"1l76q7944jyx22vjkk12hxb3nadgiivc3x8ml4mg619v9xxagc2v"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f

View File

@ -4,7 +4,7 @@
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Andrew Whatson <whatson@gmail.com>
@ -37,9 +37,11 @@
#:use-module (gnu packages base)
#:use-module (gnu packages web-browsers)
#:use-module (gnu packages xml)
#:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix build utils) #:select (alist-replace))
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
@ -229,55 +231,152 @@ by no means limited to these applications.) This package provides XML DTDs.")
"This package provides XSL style sheets for DocBook.")
(license (license:x11-style "" "See 'COPYING' file."))))
(define-public docbook-xsl-ns
;;; TODO: Make this the default docbook-xsl on core-updates. There's an issue
;;; in docbook-xsl 1.79.2 that causes manpages to be generated incorrectly and
;;; embed raw nroff syntax such as '.PP' when there is a
;;; namespace/non-namespace mismatch between the sources and the stylesheets
;;; used (see: https://github.com/docbook/xslt10-stylesheets/issues/109).
(define-public docbook-xsl-next
(let ((commit "fe16c90013b64e316c3e21ef92d1e8813c10f88c")
(revision "0")
(base-version (package-version docbook-xsl)))
(package
(inherit docbook-xsl)
(name "docbook-xsl")
(version (git-version base-version revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/docbook/xslt10-stylesheets")
(commit commit)))
(file-name (git-file-name name version))
;; Multiple .jar files are bundled with the sources.
(modules '((guix build utils)))
(snippet '(for-each delete-file (find-files "." "\\.jar$")))
(sha256
(base32
"1bl8dwrcy7skrlh80fpsmiw045bv2j0aym231ikcv3hvm2pi98dj"))))
(build-system gnu-build-system)
(arguments
(list
#:make-flags #~(list "XSLTENGINE=xsltproc")
#:phases
#~(modify-phases %standard-phases
(replace 'configure
(lambda _
;; The build systems insist on a ~/.xmlc, and it is simpler to
;; create a dummy config file than to patch it into
;; submission.
(setenv "HOME" "/tmp")
(call-with-output-file "/tmp/.xmlc"
(lambda (port)
(format port "\
<?xml version='1.0' encoding='utf-8'?> <!-- -*- nxml -*- -->
<config>
<java xml:id=\"bigmem\">
<java-option name=\"Xmx512m\"/>
</java>
<xsltproc xml:id=\"xsltproc\" exec=\"xsltproc\"></xsltproc>
<xmllint xml:id=\"xmllint\" exec=\"xmllint\"></xmllint>
</config>\n")))
(substitute* "xsl/Makefile"
;; Do not build webhelp files, as they require a Saxon from
;; 2005, which is not packaged in Guix.
((" webhelp") ""))))
(add-before 'install 'generate-catalog.xml
(lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "make" "-C" "xsl" "catalog.xml" make-flags)))
(replace 'install
(lambda _
(let ((xml (string-append #$output "/xml/xsl/"
#$name "-" #$version))
(select-rx (make-regexp
"(\\.xml$|\\.xsl$|\\.dtd$|\\.ent$)")))
;; Install catalog.
(chdir "xsl")
(install-file "catalog.xml" xml)
(install-file "VERSION.xsl" xml)
(substitute* (string-append xml "/catalog.xml")
;; Re-add the no longer present compatibility entries.
((".*</catalog>.*" anchor)
(string-append "\
<!-- Also support old URI of v1.79.1 or earlier -->
<rewriteURI uriStartString=\"http://docbook.sourceforge.net\
/release/xsl/current/\" rewritePrefix=\"./\"/>
<rewriteSystem systemIdStartString=\"http://docbook.sourceforge.net\
/release/xsl/current/\" rewritePrefix=\"./\"/>\n" anchor))
(("/snapshot/")
(string-append "/" #$base-version "/"))
(("rewritePrefix=\"./")
(string-append "rewritePrefix=\"file://" xml "/")))
;; Install style sheets.
(for-each (lambda (dir)
(for-each (lambda (f)
(install-file
f (string-append xml "/" (dirname f))))
(find-files dir select-rx)))
'("assembly" "common" "eclipse" "epub" "epub3" "fo"
"highlighting" "html" "htmlhelp" "javahelp" "lib"
"manpages" "params" "profiling" "roundtrip"
"template" "website"
"xhtml" "xhtml-1_1" "xhtml5"))))))))
(native-inputs (list libxml2
libxslt
perl
perl-xml-xpath)))))
(define-public docbook-xsl-1.79.1
(package
(name "docbook-xsl-ns")
(name "docbook-xsl")
(version "1.79.1")
(source (origin
(method url-fetch)
;; At the time, the non namespaced version was still the
;; default; our latest docbook-xsl is namespaced, so for
;; consistency preserves this property for older versions too.
(uri (string-append "mirror://sourceforge/docbook/"
name "/" version "/"
name "-" version ".tar.bz2"))
name "-ns/" version "/"
name "-ns-" version ".tar.bz2"))
(sha256
(base32
"170ggf5dgjar65kkn5n33kvjr3pdinpj66nnxfx8b2avw0k91jin"))))
(build-system copy-build-system)
(outputs '("out" "doc"))
(arguments
`(#:phases
(modify-phases %standard-phases
;; XXX: The copy-build-system doesn't seem to allow installing to a
;; different output.
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(xml (string-append out "/xml/xsl/" ,name "-" ,version))
(doc (string-append (assoc-ref %outputs "doc")
"/share/doc/" ,name "-" ,version))
(list
#:phases
#~(modify-phases %standard-phases
;; XXX: The copy-build-system doesn't seem to allow installing to a
;; different output.
(replace 'install
(lambda _
(let ((xml (string-append #$output "/xml/xsl/" #$name "-" #$version))
(doc (string-append #$output:doc
"/share/doc/" #$name "-" #$version))
(select-rx (make-regexp
"(\\.xml$|\\.xsl$|\\.dtd$|\\.ent$)")))
;; Install catalog.
(install-file "catalog.xml" xml)
(install-file "VERSION.xsl" xml)
(substitute* (string-append xml "/catalog.xml")
(("rewritePrefix=\"./")
(string-append "rewritePrefix=\"file://" xml "/")))
;; Install style sheets.
(for-each (lambda (dir)
(for-each (lambda (f)
(install-file
f (string-append xml "/" (dirname f))))
(find-files dir select-rx)))
'("assembly" "common" "eclipse" "epub" "epub3" "fo"
"highlighting" "html" "htmlhelp" "javahelp" "lib"
"manpages" "params" "profiling" "roundtrip"
"template" "website"
"xhtml" "xhtml-1_1" "xhtml5"))
;; Install documentation.
(install-file "NEWS" doc)
(install-file "RELEASE-NOTES.html" doc)
(copy-recursively "slides" doc)
(copy-recursively "webhelp" doc)))))))
;; Install catalog.
(install-file "catalog.xml" xml)
(install-file "VERSION.xsl" xml)
(substitute* (string-append xml "/catalog.xml")
(("rewritePrefix=\"./")
(string-append "rewritePrefix=\"file://" xml "/")))
;; Install style sheets.
(for-each (lambda (dir)
(for-each (lambda (f)
(install-file
f (string-append xml "/" (dirname f))))
(find-files dir select-rx)))
'("assembly" "common" "eclipse" "epub" "epub3" "fo"
"highlighting" "html" "htmlhelp" "javahelp" "lib"
"manpages" "params" "profiling" "roundtrip"
"template" "website"
"xhtml" "xhtml-1_1" "xhtml5"))
;; Install documentation.
(install-file "NEWS" doc)
(install-file "RELEASE-NOTES.html" doc)
(copy-recursively "slides" doc)
(copy-recursively "webhelp" doc)))))))
(home-page "https://docbook.org")
(synopsis "DocBook XSL namespaced style sheets for document authoring")
(description "This package provides the @emph{namespaced} XSL style sheets

View File

@ -70,7 +70,7 @@
;;; Copyright © 2020 Jérémy Korwin-Zmijowski <jeremy@korwin-zmijowski.fr>
;;; Copyright © 2020 Alberto Eleuterio Flores Guerrero <barbanegra+guix@posteo.mx>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 pinoaffe <pinoaffe@airmail.cc>
;;; Copyright © 2020, 2022 pinoaffe <pinoaffe@gmail.com>
;;; Copyright © 2020, 2021, 2022 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Ryan Desfosses <rdes@protonmail.com>
;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
@ -95,7 +95,7 @@
;;; Copyright © 2021 Alexey Abramov <levenson@mmer.org>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2021, 2022 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2021, 2022 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2021 Eugene Klimov <lipklim@mailbox.org>
;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2021 David Dashyan <mail@davie.li>
@ -116,6 +116,7 @@
;;; Copyright © 2022 Haider Mirza <haider@haider.gq>
;;; Copyright © 2022 Jose G Perez Taveras <josegpt27@gmail.com>
;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2022 Nicolas Graves <ngraves@ngraves.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -139,6 +140,7 @@
#:use-module (guix download)
#:use-module (guix bzr-download)
#:use-module (guix gexp)
#:use-module (guix i18n)
#:use-module (guix git-download)
#:use-module (guix hg-download)
#:use-module (guix build-system gnu)
@ -240,6 +242,9 @@
#:use-module (gnu packages photo)
#:use-module (gnu packages uml)
#:use-module (gnu packages finance)
#:use-module (gnu packages ocaml)
#:use-module (gnu packages erlang)
#:use-module (gnu packages statistics)
#:use-module (guix utils)
#:use-module (srfi srfi-1)
#:use-module (ice-9 match))
@ -962,6 +967,8 @@ on stdout instead of using a socket as the Emacsclient does.")
(install #:outputs outputs
#:include (cons "\\.so$"
emacs:%default-include)))))
(add-after 'unpack 'emacs-add-install-to-native-load-path
(assoc-ref emacs:%standard-phases 'add-install-to-native-load-path))
(add-after 'install 'make-autoloads
(assoc-ref emacs:%standard-phases 'make-autoloads))
(add-after 'make-autoloads 'enable-autoloads-compilation
@ -2618,6 +2625,29 @@ framework as the user interface, which integrates well with Vertico or
Selectrum.")
(license license:gpl3+)))
(define-public emacs-marginalia-emprise
(package
(name "emacs-marginalia-emprise")
(version "0.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.sr.ht/~plattfot/marginalia-emprise")
(commit (string-append "v" version))))
(sha256
(base32
"1kbk3kgvv1k5zdysvpgcsbxiwn4la3vvnmv3sbzxq7q5v5cr4a54"))
(file-name (git-file-name name version))))
(build-system emacs-build-system)
(propagated-inputs
(list emacs-emprise emacs-marginalia))
(home-page "https://sr.ht/~plattfot/emprise/")
(synopsis "Annotate Emprise with Marginalia")
(description "This package provides an annotation function to show
playback status, artist name and title for Emprise using Marginalia.")
(license license:gpl3+)))
;;;
;;; Miscellaneous.
@ -2676,6 +2706,29 @@ command, which uses Emacs standard completion to select an application
installed on your machine and launch it.")
(license license:gpl3+))))
(define-public emacs-alchemist
(package
(name "emacs-alchemist")
(version "1.8.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://stable.melpa.org/packages/"
"alchemist-" version ".tar"))
(sha256
(base32 "0ygwf9d739zqc8dcckw0j0bqkipw7cmxbrx3l281x237a3d384yw"))))
(build-system emacs-build-system)
(propagated-inputs
(list emacs-elixir-mode emacs-dash emacs-company emacs-pkg-info))
(home-page "http://www.github.com/tonini/alchemist.el")
(synopsis "Elixir tooling integration into Emacs")
(description
"This package brings you all the Elixir tooling and power inside your Emacs
editor. It comes with commands to compile, execute and test your code, spawn
an interactive shell, and look up definitions and documentation as well as
code completion and project management support.")
(license license:gpl3+)))
(define-public emacs-auto-sudoedit
(package
(name "emacs-auto-sudoedit")
@ -3996,7 +4049,9 @@ during idle time, while Emacs is doing nothing else.")
("pdf-tools-handle-upgrades" '()))))
(add-after 'emacs-patch-variables 'emacs-expand-load-path
(assoc-ref emacs:%standard-phases 'expand-load-path))
(add-after 'emacs-expand-load-path 'emacs-install
(add-after 'emacs-expand-load-path 'emacs-add-install-to-native-load-path
(assoc-ref emacs:%standard-phases 'add-install-to-native-load-path))
(add-after 'emacs-add-install-to-native-load-path 'emacs-install
(assoc-ref emacs:%standard-phases 'install))
(add-after 'emacs-install 'emacs-build
(assoc-ref emacs:%standard-phases 'build))
@ -4041,6 +4096,42 @@ DocView mode, and revisiting those PDF files later using the same mode will
restore the saved place.")
(license license:gpl3+)))
(define-public emacs-pdfgrep
;; XXX: Upstream does not tag releases. The commit below matches latest
;; version bump.
(let ((commit "e250376d97fc5240e07d81108bbca9b5a9ab50f4"))
(package
(name "emacs-pdfgrep")
(version "1.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jeremy-compostella/pdfgrep")
(commit commit)))
(sha256
(base32 "17yqvvgkgxmcl8nc0mb9yaz884zcdnz7dwvfi4mxjzp1l05fvwjk"))))
(build-system emacs-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-pdfgrep-path
(lambda* (#:key inputs #:allow-other-keys)
(make-file-writable "pdfgrep.el")
(emacs-substitute-variables "pdfgrep.el"
("pdfgrep-program"
(search-input-file inputs "bin/pdfgrep"))))))))
(inputs (list pdfgrep))
(home-page "https://github.com/jeremy-compostella/pdfgrep")
(synopsis "Emacs module providing @code{grep} comparable facilities but
for PDF files")
(description
"pdfgrep is a GNU/Emacs module providing @code{grep} comparable
facilities but for PDF files. Its usage is similar to the @code{grep}
function. For example, using the @code{next-error} function gets you to the
next matching page.")
(license license:gpl3+))))
(define-public emacs-dash
(package
(name "emacs-dash")
@ -5946,6 +6037,41 @@ heading, other headings can be refiled to it with one command, and back to
their original location with another.")
(license license:gpl3+))))
(define-public emacs-orgmdb
(package
(name "emacs-orgmdb")
(version "0.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/isamert/orgmdb.el")
(commit "66c13abdb84e0f0a31bae6cfda27478771d58d8e")))
(sha256
(base32
"1hvxha0ih9jhvwj07l6jnpf2vzhgvb6ii73g49c8saxld61l0frf"))
(file-name (git-file-name name version))))
(build-system emacs-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'configure
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "orgmdb.el"
(("\"fd ")
(string-append "\""
(search-input-file inputs "/bin/fd")
" "))))))))
(inputs
(list fd))
(propagated-inputs
(list emacs-dash emacs-org emacs-s))
(home-page "https://github.com/isamert/orgmdb.el")
(synopsis "Emacs' Org mode watchlist manager and OMDb API client")
(description "This package adds tools for managing your watchlist in Emacs'
Org mode and some functions for interacting with the OMDb API.")
(license license:gpl3+)))
(define-public emacs-rich-minority
(package
(name "emacs-rich-minority")
@ -6854,14 +6980,14 @@ user.")
(define-public emacs-subed
(package
(name "emacs-subed")
(version "1.0.9")
(version "1.0.10")
(source (origin
(method url-fetch)
(uri (string-append "https://elpa.nongnu.org/nongnu/subed-"
version ".tar"))
(sha256
(base32
"192m7pg8hiqx7ppr1sk6n5qjcbz78dmcg6m14syq12ll07zfpcm0"))))
"08vw9sv2g76yj8sfnx53dd28zkj4s0842i7qi92jam993v9s8h0z"))))
(arguments
(list
#:tests? #t
@ -6945,6 +7071,34 @@ source code using IPython.")
src blocks.")
(license license:gpl3+)))
(define-public emacs-ol-notmuch
(let ((commit "1a53d6c707514784cabf33d865b577bf77f45913")
(revision "0"))
(package
(name "emacs-ol-notmuch")
(version (git-version "2.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.sr.ht/~tarsius/ol-notmuch")
(commit commit)))
(sha256
(base32
"16p7j51z8r047alwn2hkb6944f7ds29ckb97b4k8ia00vwch0d67"))
(file-name (git-file-name name version))))
(build-system emacs-build-system)
(propagated-inputs
(list emacs-compat emacs-notmuch emacs-org))
(home-page "https://git.sr.ht/~tarsius/ol-notmuch")
(synopsis "Links to notmuch messages for Emacs' Org mode")
(description
"This package implements links to Notmuch messages and searches for
Emacs' Org mode. A search is a query to be performed by Notmuch; it is the
equivalent to folders in other mail clients. Similarly, mails are referred to
by a query, so both a link can refer to several mails.")
(license license:gpl3+))))
(define-public emacs-debbugs
(package
(name "emacs-debbugs")
@ -6975,6 +7129,43 @@ A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
(license license:gpl3+)))
(define-public emacs-piem
(package
(name "emacs-piem")
(version "0.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.kyleam.com/piem")
(commit (string-append "v" version))))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32 "0wr6n6wvznngjdp4c0pmdr4xz05dark0kxi5svzhzxsg3rdaql3z"))))
(build-system emacs-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'configure
(lambda* (#:key inputs #:allow-other-keys)
(emacs-substitute-variables "piem-b4.el"
("piem-b4-b4-executable"
(search-input-file inputs "/bin/b4"))))))))
(inputs
(list b4))
(propagated-inputs
(list emacs-elfeed
emacs-notmuch
emacs-transient))
(home-page "https://docs.kyleam.com/piem")
(synopsis "Glue for working with public-inbox archives")
(description "This packages provides a collection of Emacs libraries for
working with public-inbox archives. As much of the hard work here is already
done by other Emacs librariesthings like mail clients, news readers, Git
interfaces, and even web browserspiem is mostly about bridging some of these
parts for convenience.")
(license license:gpl3+)))
(define-public emacs-ert-expectations
(package
(name "emacs-ert-expectations")
@ -8953,6 +9144,40 @@ variants.")
package provides a light and a dark variant.")
(license license:gpl3+)))
(define-public emacs-color-theme-solarized
;; From 2017-10-24. No releases available.
(let ((commit "f3ca8902ea056fb8e46cb09f09c96294e31cd4ee")
(revision "0"))
(package
(name "emacs-color-theme-solarized")
(version (git-version "0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/sellout/emacs-color-theme-solarized")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"16d7adqi07lzzr0qipl1fbag9l8kiyr3xrqxi528pimcisbg85d3"))))
(build-system emacs-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
;; These are intended for old versions of Emacs and do not
;; compile with emacs>=24.
(add-before 'install 'remove-color-theme
(lambda _
(delete-file "./color-theme-solarized.el")
(delete-file "./color-theme-solarized-pkg.el"))))))
(home-page "https://github.com/sellout/emacs-color-theme-solarized")
(synopsis "Solarized color scheme for Emacs")
(description
"This package provides Emacs highlighting using Ethan Schoonovers
Solarized color scheme.")
(license license:expat))))
(define-public emacs-poet-theme
(let ((commit "16eb694f0755c04c4db98614d0eca1199fddad70")
(revision "1"))
@ -9713,7 +9938,7 @@ regexp that matches all known keywords.")
(define-public emacs-perspective
(package
(name "emacs-perspective")
(version "2.17")
(version "2.18")
(source
(origin
(method git-fetch)
@ -9722,7 +9947,7 @@ regexp that matches all known keywords.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1nmz39pcaa969g1966ykblzrz6lr3ddb0ip465y5in1fj498as6y"))))
(base32 "1r026cw6p2ss5wg8mxgzf6iv1lb9pdnqyf6yrqb914aibkrvp9b6"))))
(build-system emacs-build-system)
(arguments
`(#:tests? #t
@ -11078,6 +11303,27 @@ errors and strict-mode warnings, smart line-wrapping within comments and
strings, and code folding.")
(license license:gpl3+)))
(define-public emacs-js-comint
(package
(name "emacs-js-comint")
(version "1.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://stable.melpa.org/packages/"
"js-comint-" version ".el"))
(sha256
(base32 "1qin0hclm3ly62nl5ddiim64bcd2k74b1yqsqqc61cf9k2q8k287"))))
(build-system emacs-build-system)
(home-page "https://github.com/redguardtoo/js-comint")
(synopsis "Interacting with a JavaScript interpeter")
(description
"This program is a comint mode for Emacs which allows you to run a
compatible JavaScript REPL, such as node, SpiderMonkey or Rhino.
It also defines a few functions for sending JavaScript input to this REPL from
an Emacs buffer.")
(license license:gpl3+)))
(define-public emacs-nodejs-repl
(package
(name "emacs-nodejs-repl")
@ -12780,7 +13026,7 @@ using package inferred style.")
`(#:tests? #t
#:test-command '("buttercup" "-l" "lua-mode.el")))
(native-inputs
(list emacs-buttercup lua))
(list emacs-buttercup-1.25 lua))
(synopsis "Major mode for lua")
(description
"This Emacs package provides a mode for @uref{https://www.lua.org/,
@ -14010,7 +14256,7 @@ you to deal with multiple log levels.")
(define-public emacs-denote
(package
(name "emacs-denote")
(version "0.5.1")
(version "0.6.0")
(source
(origin
(method git-fetch)
@ -14019,7 +14265,7 @@ you to deal with multiple log levels.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "00f50dhw0x1hn87rc6vkrdwpybnbphg5z0g2c6c4r4cbgaiia8bi"))))
(base32 "0wqrl2fdprmgffxg5xak881gs0g4ffdy2n8wcb4wbz3f6anhfaa5"))))
(build-system emacs-build-system)
(native-inputs (list texinfo))
(home-page "https://protesilaos.com/emacs/denote/")
@ -14169,6 +14415,33 @@ stuff (words, region, lines) around in Emacs.")
@uref{https://bazel.build/} for background on Bazel.")
(license license:asl2.0))))
(define-public emacs-clue
;; There are no releases so far.
(let ((commit "41895da52cf76f964d97cb8204406ab9828c4839")
(revision "0"))
(package
(name "emacs-clue")
(version (git-version "0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/AmaiKinono/clue")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "08xpdpac82v5vwqqqgbh5imakl4pys6bpfacfk05pk88lw925ql8"))))
(build-system emacs-build-system)
(home-page "https://github.com/AmaiKinono/clue/")
(synopsis "Connecting clues while reading code")
(description
"Clue is a tool for helping you take notes while reading code.
Code reading is all about finding connections between different locations in
a project. With Clue, you can take notes about these connections in plain
text (or your favorite markup language), and insert links to take you to these
locations.")
(license license:gpl3+))))
(define-public emacs-gntp
(package
(name "emacs-gntp")
@ -14293,7 +14566,7 @@ automatically discovered and presented in recency order.")
(define-public emacs-mentor
(package
(name "emacs-mentor")
(version "0.3.5")
(version "0.4")
(source
(origin
(method url-fetch)
@ -14301,7 +14574,7 @@ automatically discovered and presented in recency order.")
version ".tar"))
(sha256
(base32
"01zrvfk2njzyzjzkvp5hv5cjl1k1qjrila1ab4bv26gf6bkq5xh3"))))
"1n51yabm4npx62fpfn8rhky09x4y779ismdxa026fycy7va7ynzz"))))
(build-system emacs-build-system)
(propagated-inputs
(list emacs-async emacs-xml-rpc))
@ -15401,13 +15674,13 @@ containing words from the Rime project.")
(define-public emacs-pyim
(package
(name "emacs-pyim")
(version "5.2.4")
(version "5.2.5")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/pyim-" version ".tar"))
(sha256
(base32 "1dzl4xaf31nyjb5hnwwf29i75x0i8dakpmmagbn4ks5hi3jl2ig0"))))
(base32 "00f23pl53rdy9iwp4gj2656wik7c6vnmhsglg7z4pz3ippz3f4hq"))))
(build-system emacs-build-system)
(propagated-inputs
(list emacs-async emacs-popup emacs-posframe emacs-xr))
@ -16304,25 +16577,42 @@ highlighting.")
(license license:gpl3+)))
(define-public emacs-jsonrpc
(package
(name "emacs-jsonrpc")
(version "1.0.15")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"jsonrpc-" version ".tar"))
(sha256
(base32 "1hx378rg12jz2zm105cvrqk0nqyzsn04l59d903l98d6lbd96rsw"))))
(build-system emacs-build-system)
(home-page "http://elpa.gnu.org/packages/jsonrpc.html")
(synopsis "JSON-RPC library")
(description
"This library implements the JSONRPC 2.0 specification as
;; Commit refers to a commit in the Emacs repository, as jsonrpc.el was
;; upstreamed. By convention, it should refer to a commit in which
;; jsonrpc.el was actually touched.
(let ((commit "50654cf0b1bf6210fc8f46d8e7ae13bbeeccecb5")
(revision "0")) ; Currently a version bump
(package
(name "emacs-jsonrpc")
(version (git-version "1.0.15" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.savannah.gnu.org/git/emacs.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0srwb171dxha1nfzppk6x9v4bdj3lk74pksqnhalw8jw9c67b72y"))))
(build-system emacs-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(replace 'unpack
(lambda* (#:key source #:allow-other-keys)
(mkdir "source")
(chdir "source")
(copy-file (string-append source "/lisp/jsonrpc.el")
"jsonrpc.el"))))))
(home-page "http://elpa.gnu.org/packages/jsonrpc.html")
(synopsis "JSON-RPC library")
(description
"This library implements the JSONRPC 2.0 specification as
described in @url{http://www.jsonrpc.org/}. As the name suggests,
JSONRPC is a generic Remote Procedure Call protocol designed around
JSON objects.")
(license license:gpl3+)))
(license license:gpl3+))))
(define-public emacs-jsonnet-mode
(package
@ -16706,7 +16996,7 @@ multiplexer.")
(define-public emacs-plz
(package
(name "emacs-plz")
(version "0.2")
(version "0.2.1")
(source
(origin
(method git-fetch)
@ -16715,7 +17005,7 @@ multiplexer.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "170pbqiywk1zyhd0ig4f25qnjf7r1gwy0c6h343bcnl6qxvkvlv2"))))
(base32 "0p0xd532xa8icysyxwqk481lr9xanmp68gf97fd9n2936gp12chv"))))
(build-system emacs-build-system)
(inputs (list curl))
(home-page "https://github.com/alphapapa/plz.el")
@ -16728,7 +17018,7 @@ which avoids some of the issues with using Emacss built-in Url library.")
(define-public emacs-ement
(package
(name "emacs-ement")
(version "0.1.4")
(version "0.2.1")
(source
(origin
(method git-fetch)
@ -16737,7 +17027,7 @@ which avoids some of the issues with using Emacss built-in Url library.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1kms6l14h6ig8kphzpkxv16z7gpvcwvcfsp5ljssdnrx0c7dzz16"))))
(base32 "0kfh0vlsz4qnx4vwkwhkxawk5cpxgnvkar72wha9cxj8s6j51vx0"))))
(build-system emacs-build-system)
(arguments
`(#:emacs ,emacs)) ;need libxml support
@ -17192,7 +17482,7 @@ an elisp expression.")
(define-public emacs-taxy
(package
(name "emacs-taxy")
(version "0.10")
(version "0.10.1")
(source
(origin
(method url-fetch)
@ -17200,7 +17490,7 @@ an elisp expression.")
"https://elpa.gnu.org/packages/taxy-" version ".tar"))
(sha256
(base32
"1jamry2p3qhswq8prd2g7ljh4yqk0wwblyd9fhnaclakahrn5vi3"))))
"05czw8fkifb25rwl99dmncr1g0rjfx1bqijl7igqs9j6h9ia2xvg"))))
(build-system emacs-build-system)
(propagated-inputs
(list emacs-magit))
@ -17496,8 +17786,8 @@ through them using @key{C-c C-SPC}.")
(license license:gpl3+)))
(define-public emacs-slack
(let ((commit "1f6a40faec0d8d9c9de51c444508d05a3e995ccd")
(revision "9"))
(let ((commit "ff46d88726482211e3ac3d0b9c95dd4fdffe11c2")
(revision "10"))
(package
(name "emacs-slack")
(version (git-version "0.0.2" revision commit))
@ -17509,7 +17799,7 @@ through them using @key{C-c C-SPC}.")
(file-name (git-file-name name commit))
(sha256
(base32
"19lan9nd8qfw2ws7mx814vrin04c892yn5c8g3nad7lpnzszgr1r"))))
"15g4dmy4iqqpk8ivhkpsngzllbw0nc5d2sc9j36sdnhwkajzhidj"))))
(build-system emacs-build-system)
(arguments
`(#:phases
@ -20473,6 +20763,30 @@ collapse macro forms one step at a time, and evaluate or instrument the
expansions for debugging with Edebug as normal.")
(license license:gpl3+))))
(define-public emacs-macrostep-geiser
;; XXX: Upstream does not tag commits (yet). The commit below matches the
;; version bump.
(let ((commit "7927651b188cac07113bce5b2cd0de12b2b082f7"))
(package
(name "emacs-macrostep-geiser")
(version "0.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/nbfalcon/macrostep-geiser")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1gz2kypyrb4k76dn4j02c8s6a3dqb1la5jcrdcifv8saa8lvqyli"))))
(build-system emacs-build-system)
(propagated-inputs (list emacs-geiser emacs-macrostep))
(home-page "https://github.com/nbfalcon/macrostep-geiser")
(synopsis "Macrostep for Geiser and Cider")
(description
"This plug-in implements a Macrostep back-end powered by Geiser.")
(license license:gpl3+))))
(define-public emacs-parent-mode
(package
(name "emacs-parent-mode")
@ -23440,6 +23754,31 @@ from Emacs for C/C++ code that needs to be build against multiple incompatible
versions of third party libraries or @code{C++} standards.")
(license license:gpl3+)))
(define-public emacs-cpreproc-openvdb
(package
(name "emacs-cpreproc-openvdb")
(version "3.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.sr.ht/~plattfot/cpreproc-openvdb")
(commit version)))
(sha256
(base32
"0n1y8cxx6xipvip8y6nk9ig1dpjdksz77956wlql3lhqcrcn5hzg"))
(file-name (git-file-name name version))))
(build-system emacs-build-system)
(propagated-inputs
(list emacs-cpreproc))
(home-page "https://sr.ht/~plattfot/cpreproc")
(synopsis "Create preprocessor macros for C++ that uses OpenVDB")
(description
"This project makes it easier to generate preprocessor macros from Emacs
for C++ code that uses OpenVDB and needs to be build against multiple
incompatible versions of it.")
(license license:gpl3+)))
(define-public emacs-org-brain
(package
(name "emacs-org-brain")
@ -23646,7 +23985,7 @@ source code.")
(define-public emacs-rustic
(package
(name "emacs-rustic")
(version "3.3")
(version "3.4")
(source
(origin
(method git-fetch)
@ -23655,7 +23994,7 @@ source code.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "088g6arlbq7czxyg5f31zmcm0gla7qh4vapaaskf6866yyqhizvb"))))
(base32 "16vsv4fhj8zq9g4zrsmipdb1nydxgw3dhh5s3wawpvx2rcg6gx2l"))))
(build-system emacs-build-system)
(propagated-inputs
(list emacs-dash
@ -24642,6 +24981,23 @@ common set-up and tear-down code, and allows the programmer to \"spy\" on
functions to ensure they are called with the right arguments during testing.")
(license license:gpl3+)))
;;; Required by emacs-lua-mode
(define emacs-buttercup-1.25
(package
(inherit emacs-buttercup)
(name "emacs-buttercup")
(version "1.25")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jorgenschaefer/emacs-buttercup")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0fsysvsypda6b7azc15bpaprq3bwx4gb6rlq2mj6f8rgwdqc8153"))))))
(define-public emacs-cort
(package
(name "emacs-cort")
@ -27339,6 +27695,169 @@ outline-enabled table of contents, additional metadata association for Info
nodes, and more.")
(license license:gpl2+))))
(define-public emacs-eval-in-repl
(package
(name "emacs-eval-in-repl")
(version "0.9.7")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/kaz-yos/eval-in-repl")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1mrssbl0wyc6iij8zk1y3h9bd3rv53nnrxsij7fn67l1m4z0clyn"))))
(build-system emacs-build-system)
(arguments
(list #:include
#~(list "eval-in-repl\\.el" "eval-in-repl-test\\.el" "README\\.md")))
(propagated-inputs (list emacs-dash emacs-paredit emacs-ace-window))
(home-page "https://github.com/kaz-yos/eval-in-repl")
(synopsis "One keybinding to communicate with REPLs")
(description
"@code{eval-in-repl} provides a consistent ESS-like evaluation interface
for various REPLs. In particular, it mimics ESS' C-RET binding, which sends a
line or region to an appropriately configured shell. This package provides
just the core of @code{eval-in-repl}---for the languages themselves, see their
respective packages.")
(license license:expat)))
(define* (make-emacs-eval-in-repl repl #:key
(eval-in-repl-package emacs-eval-in-repl)
(language (string-capitalize repl))
(inputs '()))
"Construct an emacs-eval-in-repl package for REPL, which interprets LANGUAGE.
Optionally propagate INPUTS or use a different EVAL-IN-REPL-PACKAGE."
(package
(inherit eval-in-repl-package)
(name (string-append "emacs-eval-in-repl-" repl))
(arguments
(list #:include
#~(list #$(string-append "eval-in-repl-" repl "\\.el"))))
(propagated-inputs (cons* eval-in-repl-package
(cond
((procedure? inputs) (inputs))
((promise? inputs) (force inputs))
(else inputs))))
(description
(format #f (G_ "This package provides an ESS-like binding to send lines
or regions to a REPL from ~a buffers.") language))))
(define-public emacs-eval-in-repl-cider
(make-emacs-eval-in-repl "cider" #:language "Clojure"
#:inputs (list emacs-cider)))
(define-public emacs-eval-in-repl-elm
(make-emacs-eval-in-repl "elm" #:inputs (list emacs-elm-mode)))
(define-public emacs-eval-in-repl-erlang
(make-emacs-eval-in-repl "erlang" #:inputs (list emacs-erlang)))
(define-public emacs-eval-in-repl-geiser
(make-emacs-eval-in-repl "geiser" #:language "Scheme"
#:inputs (list emacs-geiser)))
(define-public emacs-eval-in-repl-hy
(make-emacs-eval-in-repl "hy" #:inputs (list emacs-hy-mode)))
(define-public emacs-eval-in-repl-ielm
(make-emacs-eval-in-repl "ielm" #:language "Emacs Lisp"))
(define-public emacs-eval-in-repl-iex
(make-emacs-eval-in-repl
"iex" #:language "Elixir"
#:inputs (delay
(list emacs-elixir-mode emacs-alchemist))))
(define-public emacs-eval-in-repl-javascript
(make-emacs-eval-in-repl "javascript"
#:inputs (list emacs-js2-mode emacs-js-comint)))
(define-public emacs-eval-in-repl-lua
(make-emacs-eval-in-repl "lua" #:inputs (list emacs-lua-mode)))
(define-public emacs-eval-in-repl-ocaml
(make-emacs-eval-in-repl "ocaml" #:language "OCaml"
#:inputs (delay (list emacs-tuareg))))
(define-public emacs-eval-in-repl-prolog
(make-emacs-eval-in-repl "prolog"))
(define-public emacs-eval-in-repl-python
(make-emacs-eval-in-repl "python"))
(define-public emacs-eval-in-repl-racket
(make-emacs-eval-in-repl "racket" #:inputs (list emacs-racket-mode)))
(define-public emacs-eval-in-repl-ruby
(make-emacs-eval-in-repl "ruby" #:inputs (list emacs-inf-ruby)))
(define-public emacs-eval-in-repl-scheme
(make-emacs-eval-in-repl "scheme"))
(define-public emacs-eval-in-repl-shell
(make-emacs-eval-in-repl "shell"))
(define-public emacs-eval-in-repl-slime
(make-emacs-eval-in-repl "slime" #:language "Common Lisp"
#:inputs (list emacs-slime)))
(define-public emacs-eval-in-repl-sly
(make-emacs-eval-in-repl "sly" #:language "Common Lisp"
#:inputs (list emacs-sly)))
(define-public emacs-eval-in-repl-sml
(make-emacs-eval-in-repl "sml" #:language "Standard ML"
#:inputs (list emacs-sml-mode)))
(define-public emacs-ob-elm
(let ((commit "d3a9fbc2f56416894c9aed65ea9a20cc1d98f15d")
(revision "0"))
(package
(name "emacs-ob-elm")
(version (git-version "0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/BonfaceKilz/ob-elm")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1wdlr0cbsb2drdmcn2bnivjkj1f2v52l6yizwsnjgi4xq3w6k56h"))))
(build-system emacs-build-system)
(home-page "https://github.com/BonfaceKilz/ob-elm")
(synopsis "Org-Babel support for Elm code")
(description
"This package adds support to Org-Babel for evaluating Elm code.")
(license license:gpl3+))))
(define-public emacs-org-babel-eval-in-repl
(package
(name "emacs-org-babel-eval-in-repl")
(version "1.6")
(source
(origin
(method url-fetch)
(uri (string-append "https://stable.melpa.org/packages/"
"org-babel-eval-in-repl-" version ".tar"))
(sha256
(base32 "0bdnps6m3kcvsagz8cfm3kf2rvxzl2p252pfggwbdbl43kzvl35h"))
(modules '((guix build utils)))
(snippet
#~(begin (delete-file "eval-in-repl-matlab.el")))))
(build-system emacs-build-system)
(propagated-inputs (list emacs-eval-in-repl emacs-ess))
(home-page "https://github.com/diadochos/org-babel-eval-in-repl")
(synopsis "Eval org-mode babel code blocks in various REPLs")
(description
"This package allows you to execute org-mode source code blocks with
@code{eval-in-repl}. It can execute code blocks asynchronously, without
needing to write the result into the buffer.")
(license license:expat)))
(define-public emacs-eval-sexp-fu-el
(package
(name "emacs-eval-sexp-fu-el")
@ -29455,7 +29974,7 @@ current buffer.")
(define-public emacs-repl-toggle
(package
(name "emacs-repl-toggle")
(version "0.7.1")
(version "0.7.2")
(source
(origin
(method git-fetch)
@ -29464,7 +29983,7 @@ current buffer.")
(commit version)))
(sha256
(base32
"0nycm8a4wwkkaif958z4m89slayp17k20lp2h7lvddjx8prn6yfp"))
"18dpy7a7yrn7m7qifrjk5zcr6zbd3kwp9pb55la9052vwipxxvfk"))
(file-name (git-file-name name version))))
(build-system emacs-build-system)
(propagated-inputs
@ -30093,7 +30612,7 @@ mercury-mode provided by Emacs as a wrapper around prolog-mode.")
(define-public emacs-boxquote
(package
(name "emacs-boxquote")
(version "2.2")
(version "2.3")
(source
(origin
(method git-fetch)
@ -30102,7 +30621,7 @@ mercury-mode provided by Emacs as a wrapper around prolog-mode.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0wwjawgylaaifdsszqxcfsyhfzgxbjkzqhzrnxnr9b16wghb7xf7"))))
(base32 "0d7m9kcwhbgv4pikaa2dzlg9zkmwdhyx2ksn68di6xzbh838892q"))))
(build-system emacs-build-system)
(home-page "https://github.com/davep/boxquote.el")
(synopsis "Quote text with different kinds of boxes")
@ -30902,34 +31421,6 @@ as a plug-and-play solution for anyone already using Org mode for their
personal wiki.")
(license license:gpl3+)))
(define-public emacs-org-roam-ui
(let ((commit "c75fc7506ee7f03840a9a93ed9336d7ed24551aa")
(revision "0"))
(package
(name "emacs-org-roam-ui")
(version (git-version "0.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/org-roam/org-roam-ui")
(commit commit)))
(sha256
(base32 "0mkcd2622np8s5qz2zvx7lch6dc586xqmn6914gi4ym7nvklf3zy"))))
(build-system emacs-build-system)
(arguments
(list #:include #~(cons "^out" %default-include)))
(propagated-inputs
(list emacs-org-roam emacs-simple-httpd emacs-websocket))
(home-page "https://github.com/org-roam/org-roam-ui")
(synopsis "Web User Interface for Org Roam")
(description
"Org Roam UI is meant as a successor of Org Roam server that extends
functionality of Org Roam with a web app that runs side-by-side with Emacs,
providing a web interface for navigating around notes created within Org
Roam.")
(license license:gpl3+))))
(define-public emacs-org-roam-bibtex
(package
(name "emacs-org-roam-bibtex")
@ -32368,14 +32859,14 @@ are prefixed with @code{seq-} and work on lists, strings, and vectors.")
(define-public emacs-setup
(package
(name "emacs-setup")
(version "1.3.1")
(version "1.3.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/setup-"
version ".tar"))
(sha256
(base32 "0n9zjclf4b2sr8c8zd37fs45p25p3856frm419c9hch69hhcsv3a"))))
(base32 "1sr514w4mn0fbdawjb5p0fd6i6q2zi9737rbwcgakb1l9cqvb5qy"))))
(build-system emacs-build-system)
(home-page "https://git.sr.ht/~pkal/setup")
(synopsis "Helpful configuration macro")
@ -32594,26 +33085,41 @@ hacker.")
(define-public emacs-osm
(package
(name "emacs-osm")
(version "0.6")
(version "0.8")
(home-page "https://github.com/minad/osm")
(source
(origin
(method git-fetch)
(uri (git-reference (url home-page) (commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0aiq2z9vv4jsl0s0x9vpjgp0mnn27wanhirzj3h80ivgiphzs7l5"))))
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"039ac364f00slx1dxxgsgfcr4x47v9ymn8arcs0fyhdhw7jnky5j"))))
(build-system emacs-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(add-after 'unpack 'set-curl-file-name
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "osm.el"
(("\"curl( ?)\"" _ space)
(string-append "\""
(search-input-file inputs "/bin/curl")
space "\""))))))))
(list #:phases #~(modify-phases %standard-phases
(add-after 'unpack 'set-curl-file-name
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "osm.el"
(("\"curl( ?)\"" _ space)
(string-append "\""
(search-input-file inputs
"/bin/curl")
space "\"")))))
(add-after 'install 'makeinfo
(lambda _
(invoke "emacs"
"--batch"
"--eval=(require 'ox-texinfo)"
"--eval=(setq org-export-with-broken-links t)"
"--eval=(find-file \"README.org\")"
"--eval=(org-texinfo-export-to-info)")
(install-file "osm.info"
(string-append #$output
"/share/info")))))))
(inputs (list curl))
(native-inputs (list texinfo))
(synopsis "OpenStreetMap viewer for Emacs")
(description
"This package provides an OpenStreetMap viewer for Emacs, featuring

View File

@ -412,7 +412,9 @@ languages.")
(source
(origin
(inherit (package-source emacs-next))
(patches (search-patches "emacs-pgtk-super-key-fix.patch"))))
(patches
(append (search-patches "emacs-pgtk-super-key-fix.patch")
(origin-patches (package-source emacs-next))))))
(arguments
(substitute-keyword-arguments (package-arguments emacs-next)
((#:configure-flags flags #~'())

View File

@ -71,7 +71,7 @@
(define-public efl
(package
(name "efl")
(version "1.26.2")
(version "1.26.3")
(source (origin
(method url-fetch)
(uri (string-append
@ -79,7 +79,7 @@
version ".tar.xz"))
(sha256
(base32
"071h0pscbd8g341yy5rz9mk1xn8yhryldhl6mmr1y6lafaycyy99"))))
"05bxc58hj0z6pkp6yy5cmy1lc575q0nrbr5lxr6z8d4kznh3my6r"))))
(build-system meson-build-system)
(native-inputs
`(("check" ,check)
@ -289,7 +289,7 @@ Libraries with some extra bells and whistles.")
(define-public enlightenment
(package
(name "enlightenment")
(version "0.25.3")
(version "0.25.4")
(source (origin
(method url-fetch)
(uri
@ -297,7 +297,7 @@ Libraries with some extra bells and whistles.")
"enlightenment/enlightenment-" version ".tar.xz"))
(sha256
(base32
"1xngwixp0cckfq3jhrdmmk6zj67125amr7g6xwc6l89pnpmlkz9p"))
"18mp4ggfy7n0yz6kzx56ali0piqa84z72vnj6649l6w2dch5vnsn"))
(patches (search-patches "enlightenment-fix-setuid-path.patch"))))
(build-system meson-build-system)
(arguments

View File

@ -707,7 +707,7 @@ blockchain.")
;; the system's dynamically linked library.
(package
(name "monero")
(version "0.18.1.0")
(version "0.18.1.1")
(source
(origin
(method git-fetch)
@ -725,7 +725,7 @@ blockchain.")
delete-file-recursively
'("external/miniupnp" "external/rapidjson"))))
(sha256
(base32 "18yj44pki7x8ir6wg02g1h6yxp1hnqb0nrx9x5dvv94rda48cy66"))))
(base32 "050rf4c1i42d0vhcb3hqrrndr2l45w1qg4h62cagk0nmq5va6xj7"))))
(build-system cmake-build-system)
(native-inputs
(list doxygen
@ -812,7 +812,7 @@ the Monero command line client and daemon.")
(define-public monero-gui
(package
(name "monero-gui")
(version "0.18.1.0")
(version "0.18.1.1")
(source
(origin
(method git-fetch)
@ -828,7 +828,7 @@ the Monero command line client and daemon.")
;; See the 'extract-monero-sources' phase.
(delete-file-recursively "monero")))
(sha256
(base32 "1z627jy9n6cwc9yv0w58fbhix4qnllk0q42ga75mhlawaz68j0qi"))))
(base32 "0zh0sf7acr1a4s5kmp9fpjd2wr78qv74z1xhkwrkkn9ainp4qfaz"))))
(build-system qt-build-system)
(native-inputs
`(,@(package-native-inputs monero)

View File

@ -19,7 +19,7 @@
;;; Copyright © 2017 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2017, 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017, 2018, 2019, 2020, 2022 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
;;; Copyright © 2018 Charlie Ritter <chewzerita@posteo.net>
;;; Copyright © 2018 Gabriel Hondet <gabrielhondet@gmail.com>
@ -117,7 +117,7 @@ titling.")
(define-public font-ibm-plex
(package
(name "font-ibm-plex")
(version "5.1.3")
(version "6.1.1")
(source (origin
(method url-fetch)
(uri (string-append
@ -125,7 +125,7 @@ titling.")
"v" version "/OpenType.zip"))
(sha256
(base32
"0zlz8kxx54i4hpgaip9690bilvn5w14gp7jjkk6cz4h9p3xml231"))))
"1z9nxac9ha6gqz5yvfy5lp6hyl39f8f8hdrw3llcp89rdpjfqdn9"))))
(build-system font-build-system)
(home-page "https://github.com/IBM/plex")
(synopsis "IBM Plex typeface")
@ -2736,7 +2736,7 @@ and readability. This package bundles those icons into a font.")
(define-public font-lxgw-wenkai
(package
(name "font-lxgw-wenkai")
(version "1.240")
(version "1.245")
(source (origin
(method url-fetch)
(uri (string-append
@ -2744,7 +2744,7 @@ and readability. This package bundles those icons into a font.")
version "/lxgw-wenkai-v" version ".tar.gz"))
(sha256
(base32
"1rg6i6fqs1b0b2g4kijimkyqbxfn6n8ac74rppsizq65n6crvfib"))))
"01x5nfw0cy7v8vsjw32zayc0ryskiwj22yzqi28252896073mm9k"))))
(build-system font-build-system)
(home-page "https://lxgw.github.io/2021/01/28/Klee-Simpchin/")
(synopsis "Simplified Chinese Imitation Song typeface")
@ -2758,7 +2758,7 @@ within GB 2312, standard glyphs for Mainland China is used.")
(package
(inherit font-lxgw-wenkai)
(name "font-lxgw-wenkai-tc")
(version "0.921")
(version "0.922")
(source (origin
(method url-fetch)
(uri (string-append
@ -2766,7 +2766,7 @@ within GB 2312, standard glyphs for Mainland China is used.")
version "/lxgw-wenkai-tc-v" version ".tar.gz"))
(sha256
(base32
"0s7zvb8i1f7ziw8r94l1f3rcv21b80dbgc43zjwz34s43465lwrb"))))
"0kb12sfb8ihsj14yzk5ib657xvswqy0hy5gr1vfbn1n05vzy8wyk"))))
(home-page "https://github.com/lxgw/LxgwWenKaitc")
(synopsis "Traditional Chinese Imitation Song typeface")
(description
@ -2777,7 +2777,7 @@ dialects in Hong Kong and Taiwan.")))
(define-public font-chiron-sung-hk
(package
(name "font-chiron-sung-hk")
(version "1.005")
(version "1.006")
(source (origin
(method git-fetch)
(uri (git-reference
@ -2786,7 +2786,7 @@ dialects in Hong Kong and Taiwan.")))
(file-name (git-file-name name version))
(sha256
(base32
"0iqlnb7825kisg2avhr9hwwvb4jw8f642vvmms5dw6m9czzydpgw"))))
"0cibyhy363yqmif31lwv4qmcaar5np2gdd3nbnxxp55mb4qn0kms"))))
(build-system font-build-system)
(home-page "https://chiron-fonts.github.io/")
(synopsis "Traditional Chinese Song typeface")
@ -2801,7 +2801,7 @@ prevalent typefaces in Traditional Chinese regions.")
(package
(inherit font-chiron-sung-hk)
(name "font-chiron-hei-hk")
(version "2.503")
(version "2.504")
(source (origin
(method git-fetch)
(uri (git-reference
@ -2810,7 +2810,7 @@ prevalent typefaces in Traditional Chinese regions.")
(file-name (git-file-name name version))
(sha256
(base32
"00av598lcsvbwfxabs8m1bfvlk3zq98nziynsrg5p2s5mhz2pkvk"))))
"0d0k88sbhgr597sv2jzz2rcg8g4k60lcjka1xlnkv08n3bdgvmhr"))))
(synopsis "Traditional Chinese Gothic typeface")
(description
"Chiron Hei HK is a Traditional Chinese Gothic typeface based on the Hong

View File

@ -73,6 +73,7 @@
;;; Copyright © 2022 zamfofex <zamfofex@twdb.moe>
;;; Copyright © 2022 Gabriel Arazas <foo.dogsquared@gmail.com>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Hendursaga <hendursaga@aol.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -2684,6 +2685,35 @@ available, as well as a single-player mode with AI-controlled ships.")
(license (list license:expat ; game
license:silofl1.1)))) ; fonts
(define-public tetzle
(package
(name "tetzle")
(version "2.2.1")
(source (origin
(method url-fetch)
(uri (string-append "https://gottcode.org/"
name
"/"
name
"-"
version
"-src.tar.bz2"))
(sha256
(base32
"1m4j4lzqp8fnwmvyglmzcn3vh14ix4hhh52ycmcsjgrsgj1w4p6a"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; no tests
(native-inputs (list qttools))
(inputs (list qtbase))
(home-page "https://gottcode.org/tetzle/")
(synopsis "Jigsaw puzzle game that uses tetrominoes for the pieces")
(description
"Tetzle is a jigsaw puzzle game that uses tetrominoes for the pieces. Any image
can be imported and used to create puzzles with a wide range of sizes. Games are
saved automatically, and you can select between currently in progress games.")
(license license:gpl3+)))
(define %ufoai-commit "a542a87a891f96b1ab2c44d35b2f6f16859a5019")
(define %ufoai-revision "0")
(define %ufoai-version (git-version "2.6.0_dev" %ufoai-revision %ufoai-commit))
@ -5764,17 +5794,14 @@ Linux / Mac OS X servers, and an auto mapper with a VT100 map display.")
(patches (search-patches "laby-make-install.patch"))))
(build-system gnu-build-system)
(inputs
`(("lablgtk3" ,lablgtk3)
("ocaml" ,ocaml)
("ocaml-findlib" ,ocaml-findlib)
("ocamlbuild" ,ocamlbuild)))
(list lablgtk3 ocaml-lablgtk3-sourceview3 ocaml ocaml-findlib ocamlbuild))
(arguments
'(#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-before 'build 'set-library-path
(lambda* (#:key inputs #:allow-other-keys)
(let ((lablgtk (assoc-ref inputs "lablgtk3")))
(let ((lablgtk (assoc-ref inputs "lablgtk")))
(setenv "LD_LIBRARY_PATH"
(string-append lablgtk "/lib/ocaml/stublibs"))))))
#:tests? #f ; no 'check' target
@ -5892,101 +5919,63 @@ throwing people around in pseudo-randomly generated buildings.")
(define-public hyperrogue
(package
(name "hyperrogue")
(version "11.3a")
;; When updating this package, be sure to update the "hyperrogue-data"
;; origin in native-inputs.
(source (origin
(method url-fetch)
(uri (string-append
"https://www.roguetemple.com/z/hyper/hyperrogue"
(string-join (string-split version #\.) "")
"-src.tgz"))
(sha256
(base32
"1yxabbswq02fc5frigvs43f83m5vlxybc7n5mynkwzj2c70lfp2k"))))
(version "12.1a")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/zenorogue/hyperrogue")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1l09d1r3jdwp54zq071fk09hpggif5phjn0gsapzrjy3i289jran"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no check target
#:make-flags '("HYPERROGUE_USE_GLEW=1"
"HYPERROGUE_USE_PNG=1")
#:phases
(modify-phases %standard-phases
(add-after 'set-paths 'set-sdl-paths
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CPATH"
(string-append (or (getenv "CPATH") "") ":"
(assoc-ref inputs "sdl-union")
"/include/SDL"))))
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(share-dir (string-append out "/share/hyperrogue"))
(dejavu-dir (string-append
(assoc-ref inputs "font-dejavu")
"/share/fonts/truetype"))
(dejavu-font "DejaVuSans-Bold.ttf")
(music-file "hyperrogue-music.txt"))
;; Fix font and music paths.
(substitute* "basegraph.cpp"
((dejavu-font)
(string-append dejavu-dir "/" dejavu-font)))
(substitute* music-file
(("\\*/")
(string-append share-dir "/sounds/")))
(substitute* "sound.cpp"
(("musicfile = \"\"")
(string-append "musicfile = \""
share-dir "/" music-file "\"")))
;; Disable build machine CPU optimizations and warnings treated
;; as errors.
(substitute* "Makefile"
(("-march=native") "")
(("-Werror") "")))
#t))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(share-dir (string-append out "/share/hyperrogue")))
(mkdir-p bin)
(install-file "hyperrogue" bin)
(install-file "hyperrogue-music.txt" share-dir))
#t))
(add-after 'install 'install-data
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((data (assoc-ref inputs "hyperrogue-data"))
(out (assoc-ref outputs "out"))
(sounds (string-append out "/share/hyperrogue/sounds"))
(unzip (search-input-file inputs "/bin/unzip")))
;; Extract media license information into sounds directory.
(invoke unzip "-j" data
(string-append
"hyperrogue"
(string-join (string-split ,version #\.) "")
"/sounds/credits.txt") "-d" sounds)
;; Extract sounds and music into sounds directory.
(invoke "unzip" "-j" data
(string-append
"hyperrogue"
(string-join (string-split ,version #\.) "")
"/*.ogg") "-d" sounds)))))))
(native-inputs
`(("hyperrogue-data"
,(origin
(method url-fetch)
(uri
(string-append
"https://www.roguetemple.com/z/hyper/hyperrogue"
(string-join (string-split version #\.) "")
"-win.zip"))
(sha256
(base32
"11yhbia45f1w9z0j67h9nynwjqmvakr9l6rnrmdrdkzin6lvzzj4"))))
("unzip" ,unzip)))
(list
#:tests? #f ; no check target
#:make-flags #~(list "HYPERROGUE_USE_GLEW=1"
"HYPERROGUE_USE_PNG=1")
#:phases
#~(modify-phases %standard-phases
(add-after 'set-paths 'set-sdl-paths
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CPATH"
(string-append (or (getenv "CPATH") "") ":"
(search-input-directory inputs
"/include/SDL")))))
(replace 'configure
(lambda* (#:key inputs #:allow-other-keys)
(let ((share-dir (string-append #$output "/share/hyperrogue/"))
(fonts-dir (dirname
(search-input-file inputs
"DejaVuSans-Bold.ttf"))))
;; Set fonts and music path.
(substitute* "sysconfig.h"
(("(#define HYPERPATH ).*" _ lead)
(string-append lead "\"" share-dir "\"\n"))
(("(#define HYPERFONTPATH ).*" _ lead)
(string-append lead "\"" fonts-dir "/\"\n")))
;; Disable build machine CPU optimizations and warnings treated
;; as errors.
(substitute* "Makefile"
(("-march=native") "")
(("-Werror") "")))))
(replace 'install
(lambda _
(install-file "hyperrogue" (string-append #$output "/bin"))
(let ((share-dir (string-append #$output "/share/hyperrogue/")))
(install-file "hyperrogue-music.txt" share-dir)
(for-each (lambda (dir)
(copy-recursively dir
(string-append share-dir dir)))
'("music" "sounds"))))))))
(inputs
(list font-dejavu glew libpng
(list font-dejavu
glew
libpng
(sdl-union (list sdl sdl-gfx sdl-mixer sdl-ttf))))
(home-page "https://www.roguetemple.com/z/hyper/")
(home-page "https://roguetemple.com/z/hyper")
(synopsis "Non-euclidean graphical rogue-like game")
(description
"HyperRogue is a game in which the player collects treasures and fights
@ -5999,9 +5988,9 @@ are home to particular creatures and may be subject to their own rules of
While the game can use ASCII characters to display the the classical rogue
symbols, it still needs graphics to render the non-euclidean world.")
(license (list license:bsd-3 ; glew.c, mtrand.*
license:cc-by-sa3.0 ; music
license:cc-by-sa4.0 ; sounds
(license (list license:bsd-3 ; glew.c, mtrand.*
license:cc-by-sa3.0 ; music
license:cc-by-sa4.0 ; sounds
license:cc0
license:public-domain ; direntx.*, some sounds
license:zlib ; savepng.*

View File

@ -491,6 +491,8 @@ coverages using a SpatiaLite DBMS.")
(arguments
`(#:configure-flags
'("--enable-rttopo=yes")
;; FIXME: Several tests fail with Proj 9.
#:tests? #f
#:phases
(modify-phases %standard-phases
;; 1 test is failing, ignore it:

View File

@ -330,7 +330,7 @@ GNOME Shell.")
(define-public gnome-shell-extension-clipboard-indicator
(package
(name "gnome-shell-extension-clipboard-indicator")
(version "39")
(version "42")
(source (origin
(method git-fetch)
(uri (git-reference
@ -342,7 +342,7 @@ GNOME Shell.")
(file-name (git-file-name name version))
(sha256
(base32
"1kq6bzxki7lwmw690f4qml8pvfwafpqpsfnq2kyjhrp8nh39axwi"))
"0wf2k33pbwjdf8i4y3aw32fgvjbh751qh7504lwhnl02rcq5dc88"))
(modules '((guix build utils)))
(snippet
;; Remove pre-compiled settings schemas and translations from
@ -449,7 +449,7 @@ easier to keep track of applications running in the background.")
(define-public gnome-shell-extension-dash-to-dock
(package
(name "gnome-shell-extension-dash-to-dock")
(version "71")
(version "73")
(source (origin
(method git-fetch)
(uri (git-reference
@ -458,7 +458,7 @@ easier to keep track of applications running in the background.")
version))))
(sha256
(base32
"12b6ljzs5071zs0kcf5yj4jfhq10b1gnldv0hmbksnqzz5g719wf"))
"1l0isbrgfc8v46l1yc5l4myz7qnlxzyfyiifipp86z9d79d8klzw"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
@ -487,17 +487,17 @@ faster window switching.")
(define-public gnome-shell-extension-gsconnect
(package
(name "gnome-shell-extension-gsconnect")
(version "48")
(version "50") ; See GNOME Shell supported versions in metadata.json
(source (origin
(method git-fetch)
(uri (git-reference
(url (string-append "https://github.com/andyholmes"
(url (string-append "https://github.com/GSConnect"
"/gnome-shell-extension-gsconnect.git"))
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"15agblnm7k1wqnnz6gwhwym992fzqkdz8mkm04805783bx60b8bh"))))
"0vg87fdihs5kp7apgyd32ldjmwzmrxaimsc005yjyy8m3f65sjmr"))))
(build-system meson-build-system)
(arguments
`(#:tests? #f ;; every test fails
@ -568,7 +568,7 @@ faster window switching.")
("gobject-introspection" ,gobject-introspection)
("libxml2" ,libxml2)
("pkg-config" ,pkg-config)))
(home-page "https://github.com/andyholmes/gnome-shell-extension-gsconnect/wiki")
(home-page "https://github.com/GSConnect/gnome-shell-extension-gsconnect/wiki")
(synopsis "Connect GNOME Shell with your Android phone")
(description "GSConnect is a complete implementation of KDE Connect
especially for GNOME Shell, allowing devices to securely share content, like
@ -627,7 +627,7 @@ currently focused application in the top panel of the GNOME shell.")
(define-public gnome-shell-extension-just-perfection
(package
(name "gnome-shell-extension-just-perfection")
(version "20.0")
(version "22.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -636,7 +636,7 @@ currently focused application in the top panel of the GNOME shell.")
(file-name (git-file-name name version))
(sha256
(base32
"1b1hzibgryn861av2bjnfh5bmzs2bxfcsyl0ardkaj97228xsjzy"))))
"0r4rflppcp05kwhzmh07dzi7znc4kch4nc8mzw61arj3qsfq2qqj"))))
(build-system copy-build-system)
(arguments
`(#:install-plan
@ -678,7 +678,7 @@ certain elements or change animation speeds.")
(define-public gnome-shell-extension-dash-to-panel
(package
(name "gnome-shell-extension-dash-to-panel")
(version "45")
(version "51")
(source (origin
(method git-fetch)
(uri (git-reference
@ -686,7 +686,7 @@ certain elements or change animation speeds.")
(commit (string-append "v" version))))
(sha256
(base32
"05bfd3b1g9zd86pl1rpgfqsmip271lasyfj8phpqf1gdds5yz6f6"))
"103pl77dhafi2ayds5yma2smv3b58zcysnd6vl5m5zavjvk35sz7"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
@ -714,27 +714,31 @@ into a single panel, similar to that found in KDE Plasma and Windows 7+.")
(license license:gpl2+)))
(define-public gnome-shell-extension-noannoyance
(package
(name "gnome-shell-extension-noannoyance")
(version "5")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/BjoernDaase/noannoyance")
(commit "e37b5b3c31f577b4698bc6659bc9fec5ea9ac5d4")))
(sha256
(base32
"0fa8l3xlh8kbq07y4385wpb908zm6x53z81q16xlmin97dln32hh"))
(file-name (git-file-name name version))))
(build-system copy-build-system)
(arguments
'(#:install-plan
'(("." "share/gnome-shell/extensions/noannoyance@daase.net"))))
(synopsis "Remove 'Window is ready' annotation")
(description "One of the many extensions that remove this message.
(let ((revision "1")
(commit "b759d10fd2799bc084007fdd927b62637c3dbd2c"))
(package
(name "gnome-shell-extension-noannoyance")
;; XXX: There is no version noted anywhere in the source. Thus, infer it
;; from <https://extensions.gnome.org/extension/2182/noannoyance/>.
(version (git-version "16" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/bdaase/noannoyance")
(commit commit)))
(sha256
(base32
"0hh7fdqvx54h9j41ia2jl0nq1d5i66k7blw41ya6hkh7201r4anp"))
(file-name (git-file-name name version))))
(build-system copy-build-system)
(arguments
'(#:install-plan
'(("." "share/gnome-shell/extensions/noannoyance@daase.net"))))
(synopsis "Remove 'Window is ready' annotation")
(description "One of the many extensions that remove this message.
It uses ES6 syntax and claims to be more actively maintained than others.")
(home-page "https://extensions.gnome.org/extension/2182/noannoyance/")
(license license:gpl2)))
(home-page "https://extensions.gnome.org/extension/2182/noannoyance/")
(license license:gpl2))))
(define-public gnome-shell-extension-paperwm
(package
@ -833,7 +837,7 @@ copies you now want to paste.")
(define-public gnome-shell-extension-vertical-overview
(package
(name "gnome-shell-extension-vertical-overview")
(version "8")
(version "9")
(source
(origin
(method git-fetch)
@ -842,7 +846,7 @@ copies you now want to paste.")
(commit (string-append "v" version))))
(sha256
(base32
"01vz48p3bh7p3ybdyw0s0ahs18lk2kzk9x4ad46s0dnwmmsyhww9"))
"0pkby00rjipj04z68d6i3rr7mzm01dckf2vl3iz6yvbl39602icl"))
(file-name (git-file-name name version))
(snippet
'(begin (delete-file "schemas/gschemas.compiled")))))
@ -914,7 +918,7 @@ position when the mouse is moved rapidly.")
(define-public gnome-shell-extension-burn-my-windows
(package
(name "gnome-shell-extension-burn-my-windows")
(version "15")
(version "21")
(source
(origin
(method git-fetch)
@ -923,7 +927,7 @@ position when the mouse is moved rapidly.")
(commit (string-append "v" version))))
(sha256
(base32
"1gabnqdk11n6345jzv9sc4yjmfrdgg0lsz6zc29gc5afzgirkhm5"))
"07ckfl47pq83nhb77v230zfxlz3imga3s8nn3sr9cq4zxvbkj2r4"))
(file-name (git-file-name name version))))
(build-system copy-build-system)
(arguments

View File

@ -5430,6 +5430,47 @@ possible while still providing features that make playing difficult Sudoku
more fun.")
(license license:gpl2+)))
(define-public gnome-console
(package
(name "gnome-console")
(version "42.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/gnome-console/"
(version-major version) "/"
"gnome-console-" version ".tar.xz"))
(sha256
(base32
"0jbh8g3hmc35fy5fbscqf0831xpg1kv66ci9hykpbia4hz0yc9kx"))))
(build-system meson-build-system)
(arguments
(list #:glib-or-gtk? #t
#:configure-flags #~(list "-Dtests=true"
"-Dnautilus=enabled")
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'patch-nautilus-extension-path
(lambda _
(substitute* "nautilus/meson.build"
(("'extensions-[0-9.]*'")
"'site-extensions'")))))))
(native-inputs (list `(,glib "bin")
gettext-minimal
sassc
pkg-config
`(,gtk+ "bin")
desktop-file-utils))
(inputs (list gtk+
libhandy
nautilus
vte
libgtop
gsettings-desktop-schemas))
(home-page "https://gitlab.gnome.org/GNOME/console")
(synopsis "GNOME terminal emulator")
(description
"Console is a simple terminal emulator for GNOME desktop")
(license license:gpl3+)))
(define-public gnome-terminal
(package
(name "gnome-terminal")
@ -5493,6 +5534,39 @@ It supports several profiles, multiple tabs and implements several
keyboard shortcuts.")
(license license:gpl3+)))
(define-public gnome-text-editor
(package
(name "gnome-text-editor")
(version "42.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/gnome-text-editor/"
(version-major version) "/"
"gnome-text-editor-" version ".tar.xz"))
(sha256
(base32
"1nn53iv2a82kkqkg5jy0bqh2b2wzg7g4a6w8q3qsis5wvj64lvg5"))))
(build-system meson-build-system)
(arguments
(list #:glib-or-gtk? #t))
(native-inputs (list pkg-config
cmake
gettext-minimal
desktop-file-utils
appstream-glib
`(,glib "bin")
`(,gtk "bin")
itstool))
(inputs (list gtk gtksourceview libadwaita enchant))
(home-page "https://gitlab.gnome.org/GNOME/gnome-text-editor")
(synopsis "GNOME text editor")
(description
"GNOME Text Editor is a simple text editor that focuses on session
management. It keeps track of changes and state even if you quit the
application. You can come back to your work even if you've never saved it to a
file.")
(license license:gpl3+)))
(define-public colord-minimal
(package
(name "colord-minimal")
@ -5565,37 +5639,43 @@ output devices.")
(define-public colord
(package/inherit colord-minimal
(name "colord")
(version "1.4.6")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.freedesktop.org/software/colord/releases/"
"colord-" version ".tar.xz"))
(sha256
(base32 "0vwfx06k1in8hci3kdxpc3c0bh81f1vl5bp7favd3rdz4wd661vl"))))
(arguments
(substitute-keyword-arguments
(package-arguments colord-minimal)
(substitute-keyword-arguments (package-arguments colord-minimal)
((#:configure-flags flags)
`(begin
(use-modules (srfi srfi-1))
(append '("-Dbash_completion=true"
"-Ddocs=true"
"-Dman=true"
"-Dvapi=true")
(fold delete ,flags '("-Dbash_completion=false"
"-Ddocs=false"
"-Dman=false")))))
#~(begin
(use-modules (srfi srfi-1))
(append '("-Dbash_completion=true"
"-Ddocs=true"
"-Dman=true"
"-Dvapi=true")
(fold delete #$flags '("-Dbash_completion=false"
"-Ddocs=false"
"-Dman=false")))))
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'fix-bash-completion-dir
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "data/meson.build"
(("bash_completion.get_pkgconfig_variable\
#~(modify-phases #$phases
(add-after 'unpack 'fix-bash-completion-dir
(lambda _
(substitute* "data/meson.build"
(("bash_completion.get_pkgconfig_variable\
\\('completionsdir'\\)")
(string-append "'" (assoc-ref outputs "out")
"/etc/bash_completion.d'")))))))))
(string-append "'" #$output
"/etc/bash_completion.d'")))))))))
(native-inputs
(append
`(("bash-completion" ,bash-completion)
("docbook-xsl-ns" ,docbook-xsl-ns)
("gtk-doc" ,gtk-doc/stable)
("libxml2" ,libxml2) ;for XML_CATALOG_FILES
("libxslt" ,libxslt)
("vala" ,vala)) ;for VAPI, needed by simple-scan
(package-native-inputs colord-minimal)))))
(modify-inputs (package-native-inputs colord-minimal)
(append bash-completion
docbook-xsl-1.79.1
gtk-doc/stable
libxml2 ;for XML_CATALOG_FILES
libxslt
vala))))) ;for VAPI, needed by simple-scan
(define-public geoclue
(package
@ -8028,7 +8108,7 @@ Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
(define-public evolution-data-server
(package
(name "evolution-data-server")
(version "3.45.3")
(version "3.46.0")
(source
(origin
(method url-fetch)
@ -8036,7 +8116,7 @@ Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32 "1zjg9b77qmfin9m16rqa6cpqp1rh63pg3bcnkh25vmklslwhvq7a"))))
(base32 "1aydynpc9qx2a5xlrvc3xzfq3d3rhf15mqr8m6splgqqb84jiyp5"))))
(build-system cmake-build-system)
(arguments
(list
@ -10271,19 +10351,18 @@ desktop. It supports world clock, stop watch, alarms, and count down timer.")
desktop. It supports multiple calendars, month, week and year view.")
(license license:gpl3+)))
(define-public gnome-todo
(define-public endeavour
(package
(name "gnome-todo")
(version "41.0")
(name "endeavour")
(version "42.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major version) "/"
name "-" version ".tar.xz"))
(method git-fetch)
(uri (git-reference
(url "https://gitlab.gnome.org/World/Endeavour")
(commit (string-append "v" version))))
(sha256
(base32
"1r94880d4khbjhhfnhaba3y3d4hv2bri82rzfzxn27s5iybpqras"))
(patches (search-patches "gnome-todo-libportal.patch"))))
"0d6by7aq8db35zavzvckcxxxcdi6qnv0mkjndhb0syc8ih15dpak"))))
(build-system meson-build-system)
(arguments
(list
@ -10328,6 +10407,9 @@ desktop. It supports multiple calendars, month, week and year view.")
to perfectly fit the GNOME desktop.")
(license license:gpl3+)))
(define-public gnome-todo
(deprecated-package "gnome-todo" endeavour))
(define-public gnome-dictionary
(package
(name "gnome-dictionary")
@ -11521,7 +11603,7 @@ generic enough to work for everyone.")
(define-public evolution
(package
(name "evolution")
(version "3.45.3")
(version "3.46.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/evolution/"
@ -11529,7 +11611,7 @@ generic enough to work for everyone.")
"evolution-" version ".tar.xz"))
(sha256
(base32
"1q4fa5l7k0rax39iwn2spmzxcr2l73mj3644lf8j9mnp5w774c96"))))
"0gwi89bqk20ggcxsq7xgd97my0hxx8z82kisml6vz6kbpiv957p0"))))
(build-system cmake-build-system)
(arguments
(list
@ -12167,7 +12249,13 @@ integrate seamlessly with the GNOME desktop.")
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'disable-gtk-update-icon-cache
(lambda _
(setenv "DESTDIR" "/"))))))
(setenv "DESTDIR" "/")))
(add-before 'configure 'set-qemu-file-name
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/installed-media.vala"
(("qemu-img")
(search-input-file inputs
"/bin/qemu-img"))))))))
(native-inputs
(list desktop-file-utils ;for update-desktop-database
gettext-minimal
@ -12193,6 +12281,7 @@ integrate seamlessly with the GNOME desktop.")
libvirt
libvirt-glib
libxml2
qemu-minimal ;for qemu-img
sparql-query
spice-gtk
tracker

View File

@ -19,6 +19,7 @@
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Baptiste Strazzul <bstrazzull@hotmail.fr>
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -84,6 +85,7 @@
#:use-module (gnu packages assembly)
#:use-module (gnu packages rust)
#:use-module (gnu packages rust-apps)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages llvm)
#:use-module (gnu packages nss)
#:use-module (gnu packages icu4c)
@ -348,6 +350,169 @@ in C/C++.")
(inputs
(list icu4c readline zlib))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Temporary packaging of rust-1.59, pending inclusion in (gnu packages rust)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define rust-1.58-promise
(delay
(let ((rust-bootstrapped-package
(@@ (gnu packages rust)
rust-bootstrapped-package)))
(rust-bootstrapped-package
rust "1.58.1" "1iq7kj16qfpkx8gvw50d8rf7glbm6s0pj2y1qkrz7mi56vfsyfd8"))))
(define rust-1.59-promise
(delay
(let ((rust-bootstrapped-package
(@@ (gnu packages rust)
rust-bootstrapped-package)))
(rust-bootstrapped-package
(force rust-1.58-promise)
"1.59.0" "1yc5bwcbmbwyvpfq7zvra78l0r8y3lbv60kbr62fzz2vx2pfxj57"))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Temporary packaging of rust-cbindgen-0.23 and its dependencies
;; follow, pending their inclusion into (gnu packages rust-apps)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define rust-textwrap-0.15-promise
(delay
(package
(inherit rust-textwrap-0.12)
(name "rust-textwrap")
(version "0.15.0")
(source (origin
(method url-fetch)
(uri (crate-uri "textwrap" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1yw513k61lfiwgqrfvsjw1a5wpvm0azhpjr2kr0jhnq9c56is55i"))))
(arguments
`(#:skip-build? #t
#:cargo-inputs (("rust-hyphenation" ,rust-hyphenation-0.8)
("rust-smawk" ,rust-smawk-0.3)
("rust-terminal-size" ,rust-terminal-size-0.1)
("rust-unicode-linebreak" ,rust-unicode-linebreak-0.1)
("rust-unicode-width" ,rust-unicode-width-0.1)))))))
(define rust-clap-lex-0.2
(package
(name "rust-clap-lex")
(version "0.2.4")
(source (origin
(method url-fetch)
(uri (crate-uri "clap_lex" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1ib1a9v55ybnaws11l63az0jgz5xiy24jkdgsmyl7grcm3sz4l18"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs (("rust-os-str-bytes" ,rust-os-str-bytes-6))))
(home-page "https://github.com/clap-rs/clap/tree/master/clap_lex")
(synopsis "Minimal, flexible command line parser")
(description "Minimal, flexible command line parser")
(license (list license:expat license:asl2.0))))
(define rust-clap-derive-3.2.15-promise
(delay
(package
(inherit rust-clap-derive-3)
(name "rust-clap-derive")
(version "3.2.15")
(source (origin
(method url-fetch)
(uri (crate-uri "clap_derive" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1d2c4vs345fwihkd8cc7m6acbiydcwramkd5mnp36p0a7g6jm9cv"))))
(arguments
`(#:skip-build? #t
#:cargo-inputs (("rust-heck" ,rust-heck-0.4)
("rust-proc-macro-error" ,rust-proc-macro-error-1)
("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-quote" ,rust-quote-1)
("rust-syn" ,rust-syn-1)))))))
(define rust-clap-3.2.16-promise
(delay
(package
(inherit rust-clap-3)
(name "rust-clap")
(version "3.2.16")
(source (origin
(method url-fetch)
(uri (crate-uri "clap" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1af06z8z7m3327yz1xvzxfjanclgpvvy3lssb745rig7adkbpnx3"))))
(arguments
`(#:skip-build? #t
#:cargo-inputs (("rust-atty" ,rust-atty-0.2)
("rust-backtrace" ,rust-backtrace-0.3)
("rust-bitflags" ,rust-bitflags-1)
("rust-clap-derive" ,(force rust-clap-derive-3.2.15-promise))
("rust-clap-lex" ,rust-clap-lex-0.2)
("rust-indexmap" ,rust-indexmap-1)
("rust-once-cell" ,rust-once-cell-1)
("rust-regex" ,rust-regex-1)
("rust-strsim" ,rust-strsim-0.10)
("rust-termcolor" ,rust-termcolor-1)
("rust-terminal-size" ,rust-terminal-size-0.1)
("rust-textwrap" ,(force rust-textwrap-0.15-promise))
("rust-unicase" ,rust-unicase-2)
("rust-yaml-rust" ,rust-yaml-rust-0.4)))))))
(define rust-cbindgen-0.24-promise
(delay
(package
(inherit rust-cbindgen-0.19)
(name "rust-cbindgen")
(version "0.24.3")
(source (origin
(method url-fetch)
(uri (crate-uri "cbindgen" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1yqxqsz2d0cppd8zwihk2139g5gy38wqgl9snj6rnk8gyvnqsdd6"))))
(arguments
`(#:cargo-inputs (("rust-clap" ,(force rust-clap-3.2.16-promise))
("rust-heck" ,rust-heck-0.4)
("rust-indexmap" ,rust-indexmap-1)
("rust-log" ,rust-log-0.4)
("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-quote" ,rust-quote-1)
("rust-serde" ,rust-serde-1)
("rust-serde-json" ,rust-serde-json-1)
("rust-syn" ,rust-syn-1)
("rust-tempfile" ,rust-tempfile-3)
("rust-toml" ,rust-toml-0.5))
#:cargo-development-inputs (("rust-serial-test" ,rust-serial-test-0.5)))))))
;; Bug with IceCat 102 with cbindgen-0.24, see
;; https://bugzilla.mozilla.org/show_bug.cgi?id=1773259#c5 for
;; possible patch (untested)
(define rust-cbindgen-0.23-promise
(delay
(package
(inherit (force rust-cbindgen-0.24-promise))
(name "rust-cbindgen")
(version "0.23.0")
(source (origin
(method url-fetch)
(uri (crate-uri "cbindgen" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"006rn3fn4njayjxr2vd24g1awssr9i3894nbmfzkybx07j728vav")))))))
(define mozilla-compare-locales
(origin
(method hg-fetch)
@ -375,110 +540,110 @@ in C/C++.")
(mozilla-locales
;; sha256 changeset locale
;;---------------------------------------------------------------------------
("0f2lkv79gqf46f74905mab3zwyz1532chxlf9d28s548p1hw6lv9" "8312cd2e0777" "ach")
("1v5jpmd0b04mizm9pjffp4r9q121vpq3yzkkxcgmrcwj4gc5jb2y" "21bf766c19d8" "af")
("1fqjiq2la543z5pbbvd9kfs0wdc2phmqjbxascfsak854qy1z9f9" "34b6a4f0790d" "an")
("0pl6j99xnali25glyr3g9fmj67v9vqmhd9k74i97f8q5n4xmv3ym" "513c3e8dac97" "ar")
("0d1fbk9jcai19pi8b7i4y4r0gscqi1inr9dbahd6h0xbxfwc0zif" "19ca0cd0d1bf" "ast")
("08f9b63wxxy28zaimjn1ab9w51bvrarc3pp75s7v6kzm5bk1jwic" "44aa0dad7964" "az")
("15pksy9bgaxcbcnvvp8jwqnqxvvhq9vnljpai6jlh52yyrsglbwi" "5e4499355167" "be")
("0gdg84jp1i4il4nc6gwaswdhc4ljbb9inyip7vhkng09v3pmwm0h" "98d006107851" "bg")
("0i6vl0ag74phj4l38cvds1ds3jjdal1c8d7hy6pf4aqrp4ai32mh" "2ca52cbb680a" "bn")
("16yavargwq8rhipzpmrrvyh68g3a6disz9g5m8xbhxvixhcsi5fr" "ce92556a0a90" "br")
("1512dzp394pj66i13nsz76qh6fmjpz7r7fmvk8d0h7pjk0d6n0dy" "1c79dabdb120" "bs")
("19wg0kbr2ihbn4lscsxg9agz04r8bsih4692vfgb6nyn1z8vx2i0" "a22912c01617" "ca")
("1ixpzjb7caq1d9c7c044rxg3ymxs3hjw120kq85v004jrrb4d9c6" "34bf3fd631d4" "ca-valencia")
("1abizdmd1c56syni1aanwwrfvmgzz25fmimbj2324bcw801ma9h0" "e2e4ba2c37bc" "cak")
("0wgrg2wiz1jcj52nd4zl4shfkjhbngfj6p1gw1ywj266hk8g6pvw" "a60792bff6ff" "cs")
("132f29111jd2z9yxpakkyri80mi2ggnik6zxaxqrp4vlcrd1fxd2" "66369fcad8c7" "cy")
("04lpic3cxdj1imcwjkbk81avp9dpa1c9b1zcchrr1a4vyy4yfjpy" "af198d43f7d6" "da")
("1h0rkwlsqls8k1qi1y68plw6xk0z2c5xc2y4nqywiirl71yz7fi5" "816fcef20c05" "de")
("11lzdyl1h42zb1x2yxiv3r0wih8jy1gr0gzs5d1isdq53sa9cqnq" "962e5a544415" "dsb")
("146jgrhl41k6zbxg58hxh1s088padsjz7ny8nm59i9i8d00jpv0a" "e7c49fd88463" "el")
("1qppr44hdnrb1z1igcd1p0w5sy9vpihzilkl2w44y0v0v9rigppv" "5a0e35b08a48" "en-CA")
("1v2irfms24cx9g5s6r1glmp2c000wi91axyca1pn37s7c01r0n4b" "72f8c5d8305d" "en-GB")
("1y0rbbmax1w6jy4jacy27xgy4aqnd43izysw8qjwm0qhhfjvf3xh" "40994fca693d" "eo")
("0kmjvinqpb3y81mqda1qq8k202aa36as9z1z775745bx6sbvkggz" "6cf3c836995d" "es-AR")
("06rvd1z3l0r7hwnsnw90i0f5j2ysbv6wd3cl64g0bgifmwjk75hi" "8727dda3935e" "es-CL")
("0gzw1rn9nzpgcrrc10indnbqqpax87azczrfxv8mn5n56j734hc0" "5351aba49895" "es-ES")
("0bnmgisxfkb6rb12avhipbsj1yr0dyv56qjj9471gnc2ppq7k3c9" "dd834a4af402" "es-MX")
("1951975h9w813qxanbk3frjz7c8knzx5rvq9i82j9i6x6a3fh6fi" "1f2150796079" "et")
("1vkb5rd0k6vh9dbll3fhyzg8rfpkxxkd2rxwf66b8l3hg4fqd7f2" "2911663f4a7c" "eu")
("1cj9zblfp94h86m7zd762bfmcfz0yxc1q4ra35s4wnnlqajarzwj" "04ec3c3bbe92" "fa")
("1ininsyzaj7xd8ppmklm3zglgw1i0nhdy43iiyva32hb592zxy4m" "0cf866f9bc4e" "ff")
("1hc308d71iygarrpliv7pxjz49gxwqg10d0pv8j4sbb2pw39bprl" "04a600fc54a4" "fi")
("02nl54db9130rg59wmrrnh0z726fg5ir1njfcnhxagb4g5b7s69f" "64a3576df276" "fr")
("1qbby23qlkxjz3vwlk8pd2w1w4cxdff8cq7j0ipk44mijkxkry0c" "c84177dfa254" "fy-NL")
("1x23pg36ld5qnrmdn149rkl85ia8lmiqbzcac2bm0iqprnjdszii" "31590cffac56" "ga-IE")
("005fpyr1lvw23dja3yrzx4y8wdih7vx6ljjpisf4pd3k5zai4x81" "ba4f274ac4a1" "gd")
("0kdlb5q74n0fl5fxfy873s392kry69dmdl8b4gvqdyh5sy66vsqm" "56b41bdcd401" "gl")
("0v8r8b0nrk1l4xipzhq16klmh0pinzcrma0s0gyhgzqqli6z7aym" "59e2afb65c08" "gn")
("1grb1lq1f9p5jxgh9v78jl1wswxmsqxkcssm35l30k6y24pglr0m" "33b4409fb615" "gu-IN")
("172fg55y8l90ix4c8s5x7f8mg6rc7779p6l852cnnkfqjgqa5a5f" "92f9f8238189" "he")
("0i52nmg0yv3y1y3rkinxcyh51mgjksk7c3jlc8014801m3zvyxj7" "00090f7a2a3f" "hi-IN")
("074q8n00yq54kzk632dwbs64r0sygvybbvwpd6hbvfpn38lz8hxf" "6e4a3fdc01f3" "hr")
("1jxiz8zyxbpnwgk5xkwfxlr5f1zfyc88jcsajy8wcaifdkld3cwn" "7fd9bc25e49d" "hsb")
("0ca11pmkzyd9ccrnrbmk0jrpcb03k88v4zivxblnxj4w03g0hyhq" "ce3b378ce950" "hu")
("1yszljbh8f7w6lckfw22jwximy3yhis4430lfynfb8lh9nm0fw59" "c91a4a3e8821" "hy-AM")
("0hhl8b8szqlhjdxhsa81zmgr303kr0jx5d6rzbi840qwf01h12sz" "4f235acc839e" "ia")
("063yfk3nz3kignbri7r9sr3jwr5p9yyqc6sckgqs94hx6lvc355p" "fface86a34e4" "id")
("1qszxkgliall4haaq6v0xayxikq43ddcdsn1d4m1mwyp7gdpbry5" "5978ae767b44" "is")
("1fsfz9iz5pdd5r9ckdal6grvddchsc4r3r8gn4w6f2bja6vpbs05" "0c7d2a0e1304" "it")
("1phkw0apiicgbw2nq3g392xncw1v2c4yac595h3nchs4q6rp9pd9" "1c923f3e88b9" "ja")
("1y4gc4l6g72nphhsw4aqhcl80a7wi9qdy61h66c6jc6h14i7278d" "66f700940cfa" "ja-JP-mac")
("0iqwj0y19zqcdclnn92z490s1g9vh2qr9gmkyfnpsz69llxidx1j" "49b4a7c6bb2c" "ka")
("111nm2khff0zxnqqfc68rbi3j0b1nx5r4xai7b8yymyv1i0qbsxd" "4854facbd60b" "kab")
("12p7lg2p6pcqdlb4bqbz5isxilw2r9vb8344sh8zrvv9cb9jq04f" "d2fda8a1b287" "kk")
("142vpw9npqgc8b5zcg5cy2lh07s4mg8xfbaymg44fb4j3s6agw88" "3a5a1cae9b93" "km")
("00v1sd2byj2ksxw1020z142cdlxa7ri2v1rzjrhay9l465bj3k8x" "6ed122b33cac" "kn")
("1s07yhwzpxj0l5vj5lzbvgw115sjx1g2zgbqca5wln95dds39npl" "49bc07645a47" "ko")
("1b4brfww0w7x1h3ff19i6xi8xq2cb1hxysilira6yq4rb6vhlmly" "93f04df12616" "lij")
("1i30my0bbgm9z02rxxi7x4vc69bs3bnjs9l2q6jd8xvs1ga3vc7n" "e1f4e0d87509" "lt")
("1bjh4xlx6562hxq527cqcn4b5295dsdpwn4c4y5ci902nlh6fc8l" "daea4ba4e7f4" "lv")
("0vig42slcx6bhpisyc1bnyklr95lbv7vqd1ckiywp5c5qzfa9afi" "0c4ca0f4fc17" "mk")
("10qfnkqi2snmgvm4vcrmp2489klchv3hn2c4rmkdhi5bilfk42jx" "9be8d5951976" "mr")
("1bkn8ds3fyz710ck4gg4g5vpv23bi573ssm9xbiyl8y59pvbig9b" "0f44d0bcfda2" "ms")
("1j9af3axbijn0s8y96310mvgaq5a36m0r3ij550jv5bv52862crj" "ccbf0c4355d6" "my")
("0lspnp9jn3rrgz3djnmc0qrb6ymigvqnr3fb0jbhmf83r4yfs8z1" "a6cf2c6e3594" "nb-NO")
("1xp2884m9gqm9gaakc747bd9j55wssrh3qsf4y4k02ijh08sfmwb" "c1636a1a7507" "ne-NP")
("0y1fxp9pxia6x2wxdharh2ynvzdqcmzpya1gdb89pcv5qyrzqgcl" "60ed1c2397a6" "nl")
("1nbp924p7fp2c76ym71wp34vk96z89i4g2rfgpsi54cgv42a6vgq" "a7f9a3d35875" "nn-NO")
("1yrmhyvb6skypcyvi6j3py51sdkq9vn35zkryx6rdp8ygqwm1va7" "9ac29828960e" "oc")
("0rn2414ji1icar627arf5rjwl9r9vxhznbfsyxgrmrf0p6dp72fv" "87720cc32205" "pa-IN")
("09lam6yaprc8zyisq0pcdj4afpg930c2x3x47gdxnqfyhmcfygs7" "56b2c592ffba" "pl")
("0mbc1a8wvjs3k928qh0k800d230251i0rw0myhdpc6mk3xjna7i5" "89f1b173c9b1" "pt-BR")
("1v1qa5slllz78222rlqr4b8k7c8dapmx8d7s5nb90wdffic0zcqy" "27adc5dad781" "pt-PT")
("04k6h5d7c740lz1hx1vavj6p0fmhgn9mm3nwvk4p9iccy5nw5pmf" "83e2e4833fc3" "rm")
("0f0hz792wr17mgi6n190dliqx67479aqg3y2ak0jg0fiz2c8qr7p" "69cdc288966f" "ro")
("17yngj0v30687m7fa1ls0g86vjg8jzxs7bnsca91jpxf3ij44xp6" "03046775600f" "ru")
("1fvz23nphs9i4gdkx9fcy5ahdk2f879281pchclwi0qlciq7digr" "61ea93a50fff" "sco")
("0yc1iwqbnpnf1i7yz3zqrx6g8pinc7l53pvbczywfkq3rz6wmmf5" "2b134d24c046" "si")
("0kizljksn2vn4yw7qlv7c8h2m75f7n9ddg6n6ag3hwxxip83hn4y" "6d69c24dc8db" "sk")
("1ll936b18wy464623jc5smf3c6dpimh0qwn28a991h7zcw31n3kp" "29e195d1d160" "sl")
("14w9n994z9gf0wx7vrqisyxkngvhmmnayx8r0vwiq8k7jy81sxlm" "60a3b235fe1d" "son")
("0z7bcfvq6x6dxf4d4bbjsg36r5npkr89087b0j360ljampk6c2fn" "8588cbc89847" "sq")
("1fcq9g89lhzckzr2qb6x0w0z6q486n9jdqfi6h70dx8b069b3jfj" "198f7e89f10d" "sr")
("0ap3m1sbibnaj9s2l139m7l8cc8s2ky4jlxwgzbxdzvqxfz7n954" "b098e2ebc049" "sv-SE")
("0k93gnwfs5mahb9vz1c65ddcbkav0cwhxnrww3qk7gcmn7q88gqk" "25951b964d5b" "szl")
("0b0v5pcwvhvhg8vlzy26g3j0m1r8svrpq07hq0q7lxldwlb48phz" "94659c83c9d8" "ta")
("1v35cl6m3ikzsriq6zkjzjs3p9bhl8zmbp2gl14mga1f1zy4kcah" "eb59646a5d36" "te")
("0y3r30mjgxngjraqmf5cm00kgqx2pvhbvy8sfxb3fhypv9vda3yr" "10d257301a2d" "th")
("1inyqk495py20jwjvs4yl0n5ncf3hhb896bs1lwfsgpvbvr5hbq1" "9be6adca0e51" "tl")
("0vsirjs655cia9n8dys2r84bvg303hcxkk2w6a9j3dkbifq5ymk6" "51354c936bf6" "tr")
("050x882c0ywil290k4g861njw70ffw2y55dqk3w0kffi972mm909" "d7510f2d01dc" "trs")
("001ykwxkwibavbi1k42b1hmysb3gmrwcs68zmw96m1vc80p29nz1" "4d1fa878042b" "uk")
("0lsz6jlmmsqdg47pdx8b1djjvcavi0wlyr0mkpyhjgpginag21zx" "ad3035f28183" "ur")
("0d3ggm3q76pkpg4n3lz2ji4pbb47n885byqxbp7sk6n9vlgzir7l" "8ea7a5a051db" "uz")
("0v7d8y6xsr6yf2s1sjxnsjmw0hdnj91f0w2da6spkifb52lmbv6v" "67fe2acb306f" "vi")
("0j8l09vzqlw4zlkyp6wkh44c5gr1xgbcmnawks1zj7xz02ambwii" "abc22dfb6d84" "xh")
("1c01pbyswixkjg42714fvfy33b09mpdbf4d8f8kcs88c86jpf07z" "d6d6f9bb6113" "zh-CN")
("0yq8fqdz862pnlbvfsqfc152rhpsqgncvp8bqkd653mdfv4qkwr4" "0cbdc5f1a048" "zh-TW")))
("1y562h0dg33vhhhwfk6jl7xbr67gng21vcf3rpm96zzcgbnf8rjj" "503a7baec899" "ach")
("1cqixlk9f8p63jz20wzsvnfb7xa82ba725gzdydlwz2axgp09c26" "4e2c7d1ddbed" "af")
("19r1yhmfxqasyslc8gr9as5w1scscz1xr8iqy9zi4b90fdjzs0ac" "06897e40a7ea" "an")
("0nfknb1p03j9fgmkwlm1mzdyh10g0l33x34ab39kc072apziyv0n" "9272819b09e2" "ar")
("11qqblqfffbmkdr5b6mxzq02i8rj1hjq3iy6xv5i5xxy311b3vpb" "f706d22e6910" "ast")
("0q2p1a437qr2nshdd4934qkv2sblmykiwzir149c8p9m5sjk0dyw" "f5c2a9800add" "az")
("0gxxm3lv18kj0922bw0g897azc4nkrszm5irgwdkgmkbyr97li83" "98ba7d51484f" "be")
("10vrbbaabjns824ndya6c09znm815pak2xpvqgjydl3r5qvacx65" "5c79c77311cd" "bg")
("1il7yyifx5xzj0v2lna315mppl5pk1vi4m9r66hdz1lzc485m1wp" "c80c87ef7193" "bn")
("1p1ig4v9pczzrnnxzr20r61g7xk85k5lgnxhzgn1rx518p85xrkm" "6a1bcb9851b2" "br")
("08q33bk9kdvbyc4ib58bsn2b67ki3d2yzskkf5r2n5zlglblksa2" "939779cb58d6" "bs")
("1bdkywrqah85fh8kfnz163qnc02ffx0a4vlnx5pq1wg9j4f1gznf" "9a45ccf144f1" "ca")
("0hhmp5dzc0rssykl0b2n9h0vfy4svwhxmhpsr3rcfpbg2s0r5h6l" "4f60e18fc248" "ca-valencia")
("18phbl9raqsbys9wa8z0gq0h0pw3b55v6ngn67r4373lfc0s9cxv" "b4ef404c7de8" "cak")
("0147qyw1y97mgqhkb46wblxv61lq2mvvm5n5ihwf49l5cyizi0jg" "f56ef18f05df" "cs")
("08sbhnsxndlsaijnxndc367qcbrzb29m7bpkcawinz9fg6mz3573" "4f9d92f04f5e" "cy")
("09cm5kk1sh2a6ws1fj185jrknhfa6n4bhj7nfnr4lsk339n0kvv9" "902503567e30" "da")
("0r630bki5d4ylicq6lzh6s2mvsq225933szswmm0sap507rj75cm" "6000baf7a412" "de")
("0749qjsfv3rn94rnci3ydgndw27qlr3w3w97kfwma2gmsf3m3r0p" "4a948952d1f4" "dsb")
("0yc64i7mpxhs4qlyyh59i2aiz0vpap0bn8slcsk8b71wd1d7cy5m" "153a16a13733" "el")
("0d4m5ji6ii10yap8y24cxx3fr60ba1jqi10hy3j1cq6ni7hzavga" "7ce17ae529ac" "en-CA")
("12jzqcfbgdhfm8f2gqp15bdnin62li07jwicjc8ynn4cl9a19xiz" "a25d9eea7c23" "en-GB")
("0gbb8hfc5yvjah63mapjxm53wxrf98srbrbg43b9g734zfi4n8y5" "4ed3471dad5d" "eo")
("19lw7zmqx2irjmv5y6r7nncp6nysn06abf10n3dzj5nzgays6sln" "853fe7acb415" "es-AR")
("0rq4pa380b77rkv6dq7sqx8a8i33jk3vs5rgcl8fv7slqvsw23kd" "921b67bf27a5" "es-CL")
("1dyxzab9hln5spch66wmfagfzmfdiaxgpq7qlzvdfg98wkqdj25n" "c9a210ea496c" "es-ES")
("1gwpmfl37wxl7rynqswgj41liljflgxydvljd4zdhk3jzqn605fb" "ddd35183d81c" "es-MX")
("0c3blniddklapifnjbz03f2frw24jjgwgwn6swl5mwm2z0y6wa9f" "82d23ffaa7d3" "et")
("05mq2df6n6fr8m5m2xwl0f6n1q3zgjrnk465ldx1nfr9agrhd36c" "13975626d549" "eu")
("1l1jyqqiy551903j6yzh9ayg1pf26q2hr9h3jj4l51xzp7x4ms2q" "039e1fdb7c71" "fa")
("091l05y9sggxznv0y11b9zy5qf146p0hb5faw4ix7yn5p5kca2f5" "7bd3722d82de" "ff")
("1lllwjvmbl5dx44fcvsqg08fbflkc8dx5as9n6nf4xlkzydx6izm" "39808e88c9d1" "fi")
("10ha955vvyf5vbciricm72kplj9j0s00g2333lmg46jiwi7aviiv" "426d373db6a7" "fr")
("11zdfk8jvdy1k9z1q162cwapplcbz35l3dq4mv45brdin3v0x8kr" "96cd93d18389" "fy-NL")
("1l5xr25gmssyachwmfprlnp2v2xj4b0hp8gxrf7fi5bvv9c2fynb" "de3daf7d3f9d" "ga-IE")
("06h9ijfsn1cgz5fvxxbisk7fvqhgsw99id92575hgyg1p8xb1n69" "f04aea656d9e" "gd")
("19913i5n8yyfhz9j21krlk7wqsyy89vggxc1m1swv94y2ix8rpaj" "1b8cdb87bf69" "gl")
("0k5x31bfl2l0r9b5dkn03frm1gd8n6igai7ch2f1kj0skflynwww" "82df570c4241" "gn")
("03rygnj9xhfvykark7dls117kwhid13ghvrsqiial0vp8m7ymx79" "e2e41d7beaa5" "gu-IN")
("0vyraplj1x7b5im15anhzdaq03k2gqfyybgklrd4f9ry6msh5jhx" "de724e943805" "he")
("1zqps586jrgxpf7xx2l3qw3ch3fr31r9a25y861fpxrpvh7ygw7g" "898598e1a5c6" "hi-IN")
("0czq68l3qdhdc0mgazlrh8x83a6d5qrjwgjv8xvsmmzi7h68ww0l" "2711d1515af0" "hr")
("1wwvrnm38gk2rnw4vmcranh8hk61gjcj9292pck3ckiv6mq7kd4s" "03e02f3d0676" "hsb")
("0yvgdxlbyhhg3lk43hxx9gx66rcm7gaj02zzzx5zni8dhvlk2v6m" "d423ada9dc00" "hu")
("1kjm7bg4990jhfbxwc38r4lqm2fbcxc82nc2d4qkqwikr4aah4b9" "06836af0bd6e" "hy-AM")
("1dla7r3snvagb7m985xxqyi7gl498cr5xsz8msw0zpg6xmi05rlx" "299bd950d538" "ia")
("0w8w9xn93akir7nqcp5iwr3kqvba5gbirg7gmzlzg7mgrhw8pcsa" "dee087477b99" "id")
("10iakv1c1d20ihxg1s7c3zc1zfw18vr2kspcw7bk5k02rmrffgcn" "320095d063ed" "is")
("1xn5pa3rc7l6k2migm3c0dx71q1hk7mjls045xpv9cy8gvirnj94" "4722680fb5bf" "it")
("0va9zfj3wqh1yvbgh3x808yvdyxkg780vazjg887wbxpfk1n6hxa" "cb3cfe294621" "ja")
("0qvjc3fhk6jg2c3g6mymmnslg1rkkxmv9gi3whf2bc5mzfgyc5zw" "7efe92bd7780" "ja-JP-mac")
("0zfiwwz0axbd219ar32c7a6b8h816sf04ajx6jl74s5kyij79y82" "4c1fe3a18da9" "ka")
("1aiik4758r5df76q2a132y5fjdjrsxshjylk7irwsr7yy0c7f63g" "acdf76048aa0" "kab")
("0icxh4sgv6m1yykycb9d9c43k3r6w02f9c6jr04wm8hvqq5icfl5" "9b418ff7936b" "kk")
("1cqlhggf46lr7w399k7qb7a1hc56f32w1dy26i2racpppzza5plc" "9771ada0b5f8" "km")
("0p04irnb7x7y37m6lz388x9dynn8rnk000avpp296barajnhs5i8" "645aa37a2112" "kn")
("1lbc1fxr5i0ccymlsd8axz3633cqggg5k8ak5yqwi704g7kvv9g2" "1cd68952d119" "ko")
("11b55bxg73zqfdn5gy9nn5imab2mv0hxr603whggp7vymllgb7kb" "26bb83959bfe" "lij")
("15jsijm6d26i0105gz0f7sh2yh2v4pmw4j95cwkdrb1d8m935jlz" "b9829891f153" "lt")
("0liwwv13fgyw97nizhsyy53xrbf8jks5ics7qkkxfccawjrg5rlb" "e5f09d03d959" "lv")
("0w420yf3hdnl7dp9mn9ghc20cq79k24fn9adn3syk723ppl6mkb0" "7884845e94f3" "mk")
("13wkr7rgqsv9w3d9w7k8lnxdzgfixsq4bmc27zsyc770l6062ml6" "030db7412202" "mr")
("06nsadcnxx0ssdp67x47dj9crihn1ycgd5mwvn5m7lkb97r4ch9f" "40a7703e875c" "ms")
("0mlnjdzck6dp9p59ajj3sr63r36fn0qi8r9scrqrqcisgfclw9sg" "daca40056531" "my")
("0z1hgx9d5i9w20f9k9azzng1y3lmm5d6hdjkj7rf6r5710bhhzh5" "664bd049e105" "nb-NO")
("1466qvrs13g2iix1k35cknb2pia9b66li2ncvdyqf0jsd92z9k8x" "eaa6ae781ba0" "ne-NP")
("0jgmz2lkzj0aspd9mabygzic6li5s2b25y0r6vjg8mv3jm5pi86j" "5ef8f1c9739e" "nl")
("1m46x0h20vdfbzjxlz0ac43dbaq40xnyldr2yzbf7pk5di9pzxa6" "f08e15466d5d" "nn-NO")
("0r3zvihqh6iya3z1qm7if0m3zfgf81s9qp7x7qc701h2q357wkgf" "6712c0e12ec2" "oc")
("102j89jm28c223yhhkrj76xxj4kmy58hcs2r0jn15xa1qkqv1fdk" "8f36cc819e00" "pa-IN")
("1j9za6s0i46abn8dsrlkpck3qxxw35rhfcg1xs1vp8sc4ckg8qwi" "c3b0c1c02b94" "pl")
("1k9lbsvckpwl4xax8kxp5yxsfkspq2mhqm77jh5nl9aw88dsn55b" "cc32bf9630fe" "pt-BR")
("0f0jyvbn2sa5m66wqdzh4607g4gd0270xq37ipd9ls52b4764bd8" "5478d7242086" "pt-PT")
("19znkkialh1d4np7qcp80xkagrf1j2xah2s1xxzsh854p3d30zs7" "dd934a76fb01" "rm")
("1xn26r8g8zzkb5myfgmnjbk8k4i0brkvbrvnhp7k5nkrnsin25di" "d57ab3dee73d" "ro")
("04rhkxlmpp5pyzw85ldbfkmiigqr2p9y5cbns5dqs6sz1633ccxp" "7aea98f33a20" "ru")
("1zzkkxl7ayxh5gx9snyvp5czflsvi77hp48li613h3c2fii4n9qk" "7c986f4b5044" "sco")
("1219i0ghhqj3s1i0rm68jjkvivh6y40938wav7z4ifck527sq6r1" "bc9e55d4e3ea" "si")
("05i5p3n3a6hgl6rf10yjs4vag7y3rn2jwgxsddcdcqiv6405zn81" "8814afd7f67e" "sk")
("1wcqdbm1py1ldq6cj2g201m715nql79r6szr71jvrxacb711c62a" "20013dc06e96" "sl")
("0g2izkaa4ipwgwyhy77ciyrxxpf4pxzj9mjqvxriy5prmkhm3zjs" "d86d5d2b6eef" "son")
("1cc99m6srjg8698dkc3il70crby0mdv43v3ijwy069k4w50hyjjg" "49bb5fae5d9b" "sq")
("13kfssq4fhq9mb36as6sxiaffl17qyg1wdw8kpz3ilqm86bsjrgl" "d6a0ab79b06f" "sr")
("1wx9snbm0431q97i0q0nv4wbsqcv9nhllwfr88crlp7bfj5w8czw" "4bab04993da3" "sv-SE")
("0laglkfl8ml0ip5vmm3z2q790hgwax9gfqwq3wm68a2nnsyck8fw" "4b3316c4aa48" "szl")
("15pnlic4q7m48y0mc5yh8w5yscjwzx0mmfrbj3f2b9jxxa44nx4h" "48c7aab86db8" "ta")
("16qar5y0wns75ryi8bfv7yln3mjsyn7qi4345zcniz3ydgkczh46" "7bbb3dac8f47" "te")
("112g7x8h0qz16r5faam386x4a0rgwd4zy02d5agmg9m0kbficdfx" "009fd0852454" "th")
("1l80kh9byqxnz5vkz357rb39g4y9sgn9pr0v29ywp6d009img1qg" "dad9caecd7a9" "tl")
("1nalvjlxxsa9wldhhdb93bgfc7dl084xayh7i7mgg93yjgrym93x" "0c48082d37cd" "tr")
("0wkxqcfgsra2ljws28kiwajv73w9aa8drsc4fqlg9krbicnjl2n8" "f6d105faedcc" "trs")
("18jf4ysrfv3635fyxc1vwr970dr2r05bl3h8v599pwp2g7jzyjpm" "e1011388a55e" "uk")
("1ihmksjsz54yii23qda5iv8cxrj9144afy75hzhvfi6m182kj4h8" "c4e927eab511" "ur")
("0d42dhfa2vcw24wsvwf95pw20np0pz8c0is6p4307n981n8s207y" "7063df917cb3" "uz")
("04khnkrg8css55hyna01jqay9c2ppxk5znbx2zj9i25knhvvx1lq" "1753054e6ab8" "vi")
("0fi5kxn78xp7s15svkqlf4748j4pzxh941nm52n6kbbrhyi3qcqn" "93bc595dc32e" "xh")
("0jg676vd37wqgzjnm0yynj7xrvm6fsgdwg296h78wnyc33zc4ads" "edd4e468bc31" "zh-CN")
("1y4wldm3z95mfjlficp994jyqg0lj07wi35b79dy1s8ljy3jilil" "0bad1f7d2b2d" "zh-TW")))
;; XXXX: Workaround 'snippet' limitations.
(define computed-origin-method (@@ (guix packages) computed-origin-method))
(define %icecat-version "91.13.0-guix0-preview1")
(define %icecat-build-id "20220823000000") ;must be of the form YYYYMMDDhhmmss
(define %icecat-version "102.3.0-guix0-preview1")
(define %icecat-build-id "20220920000000") ;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'
@ -500,11 +665,11 @@ in C/C++.")
"firefox-" upstream-firefox-version ".source.tar.xz"))
(sha256
(base32
"0qh7j960wdp5zcfqhkj8ki47spp9i9ms12xx0v0kxvmmw36jpgjk"))))
"0nmm861p4zakdvi9lj0ac8dkf9v17250rzcmrx1f6r7rvjv273ih"))))
(upstream-icecat-base-version "91.13.0") ; maybe older than base-version
(upstream-icecat-base-version "102.3.0") ; maybe older than base-version
;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version))
(gnuzilla-commit "4a87716686104266a9cccc2d83cc249e312f3673")
(gnuzilla-commit "f82b5b40943fe7723486fadccb48d454ee3e9dad")
(gnuzilla-source
(origin
(method git-fetch)
@ -516,13 +681,10 @@ in C/C++.")
(string-take gnuzilla-commit 8)))
(sha256
(base32
"070j78al04xzchfl5xj1w300hmw17a3iqcw7mnlxf6b8rqlgj20p"))))
"1d7lfvwi9mvaxcfiqcgch3idhyxpdf56r9b71r54yiifv6xlr7x9"))))
;; 'search-patch' returns either a valid file name or #f, so wrap it
;; in 'assume-valid-file-name' to avoid 'local-file' warnings.
(gnuzilla-fixes-patch
(local-file (assume-valid-file-name
(search-patch "icecat-use-older-reveal-hidden-html.patch"))))
(makeicecat-patch
(local-file (assume-valid-file-name
(search-patch "icecat-makeicecat.patch")))))
@ -578,8 +740,6 @@ in C/C++.")
(with-directory-excursion "/tmp/gnuzilla"
(make-file-writable "makeicecat")
(invoke "patch" "--force" "--no-backup-if-mismatch"
"-p1" "--input" #+gnuzilla-fixes-patch)
(invoke "patch" "--force" "--no-backup-if-mismatch"
"-p1" "--input" #+makeicecat-patch)
(patch-shebang "makeicecat")
@ -695,7 +855,7 @@ in C/C++.")
libffi
ffmpeg
libvpx
icu4c
icu4c-71 ; TODO: Change to 'icu4c' when its version is >= 71.
pixman
pulseaudio
mesa
@ -719,18 +879,19 @@ in C/C++.")
;; a tarball suitable for compilation on any system that IceCat supports.
;; (Bug fixes and security fixes, however, should go in 'source').
(list
;; XXX TODO: Adapt these patches to IceCat 91.
;; XXX TODO: Adapt these patches to IceCat 102.
;; ("icecat-avoid-bundled-libraries.patch"
;; ,(search-patch "icecat-avoid-bundled-libraries.patch"))
;; ("icecat-use-system-graphite2+harfbuzz.patch"
;; ,(search-patch "icecat-use-system-graphite2+harfbuzz.patch"))
;; ("icecat-use-system-media-libs.patch"
;; ,(search-patch "icecat-use-system-media-libs.patch"))
rust
`(,rust "cargo")
rust-cbindgen-0.19
llvm-11
clang-11
;; TODO: Change the following lines to use 'rust' when it's >= 1.59.
(force rust-1.59-promise)
`(,(force rust-1.59-promise) "cargo")
(force rust-cbindgen-0.23-promise)
llvm
clang
perl
node
python-wrapper
@ -787,6 +948,9 @@ in C/C++.")
;; Hack to work around missing "unofficial" branding in icecat.
"--enable-official-branding"
;; TODO: Add support for wasm sandboxed libraries.
"--without-wasm-sandboxed-libraries"
;; Avoid bundled libraries.
"--with-system-jpeg" ;must be libjpeg-turbo
"--with-system-png" ;must be libpng-apng
@ -950,6 +1114,13 @@ in C/C++.")
"servo"
"security/manager/ssl"
"build")))))
(add-after 'patch-cargo-checksums 'remove-cargo-frozen-flag
(lambda _
;; Remove --frozen flag from cargo invokation, otherwise it'll
;; complain that it's not able to change Cargo.lock.
;; https://bugzilla.mozilla.org/show_bug.cgi?id=1726373
(substitute* "build/RunCbindgen.py"
(("\"--frozen\",") ""))))
(delete 'bootstrap)
(replace 'configure
;; configure does not work followed by both "SHELL=..." and
@ -971,10 +1142,18 @@ in C/C++.")
(setenv "LDFLAGS" (string-append "-Wl,-rpath="
#$output "/lib/icecat"))
(setenv "MACH_USE_SYSTEM_PYTHON" "1")
(setenv "MOZ_NOSPAM" "1")
(setenv "MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE" "system")
(setenv "MOZ_BUILD_DATE" #$%icecat-build-id) ; avoid timestamp
;; XXX TODO: Fix this to work on systems other than x86_64-linux.
(setenv "GUIX_PYTHONPATH"
(string-append (getcwd)
"/obj-x86_64-pc-linux-gnu/_virtualenvs/build"))
(mkdir ".mozbuild")
(setenv "MOZBUILD_STATE_PATH"
(string-append (getcwd) "/.mozbuild"))
(format #t "build directory: ~s~%" (getcwd))
(format #t "configure flags: ~s~%" flags)
@ -1049,7 +1228,9 @@ in C/C++.")
(("IceCat") "GNU IceCat")
(("Icon=.*") "Icon=icecat\n")
(("NewWindow") "new-window")
(("NewPrivateWindow") "new-private-window"))
(("NewPrivateWindow") "new-private-window")
(("StartupNotify=true")
"StartupNotify=true\nStartupWMClass=Navigator"))
(install-file desktop-file applications))))
(add-after 'install-desktop-entry 'install-icons
(lambda _
@ -1073,7 +1254,7 @@ features built-in privacy-protecting features. This package also includes the
@command{geckodriver} command, which can be useful for automated web
testing.
WARNING: IceCat 91 has not yet been released by the upstream IceCat project.
WARNING: IceCat 102 has not yet been released by the upstream IceCat project.
This is a preview release, and does not currently meet the privacy-respecting
standards of the IceCat project.")
(license license:mpl2.0) ;and others, see toolkit/content/license.html
@ -1082,13 +1263,293 @@ standards of the IceCat project.")
(cpe-name . "firefox_esr")
(cpe-version . ,(first (string-split version #\-)))))))
(define all-mozilla-91-locales
(mozilla-locales
;; sha256 changeset locale
;;---------------------------------------------------------------------------
("0f2lkv79gqf46f74905mab3zwyz1532chxlf9d28s548p1hw6lv9" "8312cd2e0777" "ach")
("1v5jpmd0b04mizm9pjffp4r9q121vpq3yzkkxcgmrcwj4gc5jb2y" "21bf766c19d8" "af")
("1fqjiq2la543z5pbbvd9kfs0wdc2phmqjbxascfsak854qy1z9f9" "34b6a4f0790d" "an")
("0pl6j99xnali25glyr3g9fmj67v9vqmhd9k74i97f8q5n4xmv3ym" "513c3e8dac97" "ar")
("0d1fbk9jcai19pi8b7i4y4r0gscqi1inr9dbahd6h0xbxfwc0zif" "19ca0cd0d1bf" "ast")
("08f9b63wxxy28zaimjn1ab9w51bvrarc3pp75s7v6kzm5bk1jwic" "44aa0dad7964" "az")
("15pksy9bgaxcbcnvvp8jwqnqxvvhq9vnljpai6jlh52yyrsglbwi" "5e4499355167" "be")
("0gdg84jp1i4il4nc6gwaswdhc4ljbb9inyip7vhkng09v3pmwm0h" "98d006107851" "bg")
("0i6vl0ag74phj4l38cvds1ds3jjdal1c8d7hy6pf4aqrp4ai32mh" "2ca52cbb680a" "bn")
("16yavargwq8rhipzpmrrvyh68g3a6disz9g5m8xbhxvixhcsi5fr" "ce92556a0a90" "br")
("1512dzp394pj66i13nsz76qh6fmjpz7r7fmvk8d0h7pjk0d6n0dy" "1c79dabdb120" "bs")
("19wg0kbr2ihbn4lscsxg9agz04r8bsih4692vfgb6nyn1z8vx2i0" "a22912c01617" "ca")
("1ixpzjb7caq1d9c7c044rxg3ymxs3hjw120kq85v004jrrb4d9c6" "34bf3fd631d4" "ca-valencia")
("1abizdmd1c56syni1aanwwrfvmgzz25fmimbj2324bcw801ma9h0" "e2e4ba2c37bc" "cak")
("0wgrg2wiz1jcj52nd4zl4shfkjhbngfj6p1gw1ywj266hk8g6pvw" "a60792bff6ff" "cs")
("132f29111jd2z9yxpakkyri80mi2ggnik6zxaxqrp4vlcrd1fxd2" "66369fcad8c7" "cy")
("04lpic3cxdj1imcwjkbk81avp9dpa1c9b1zcchrr1a4vyy4yfjpy" "af198d43f7d6" "da")
("1h0rkwlsqls8k1qi1y68plw6xk0z2c5xc2y4nqywiirl71yz7fi5" "816fcef20c05" "de")
("11lzdyl1h42zb1x2yxiv3r0wih8jy1gr0gzs5d1isdq53sa9cqnq" "962e5a544415" "dsb")
("146jgrhl41k6zbxg58hxh1s088padsjz7ny8nm59i9i8d00jpv0a" "e7c49fd88463" "el")
("1qppr44hdnrb1z1igcd1p0w5sy9vpihzilkl2w44y0v0v9rigppv" "5a0e35b08a48" "en-CA")
("1v2irfms24cx9g5s6r1glmp2c000wi91axyca1pn37s7c01r0n4b" "72f8c5d8305d" "en-GB")
("1y0rbbmax1w6jy4jacy27xgy4aqnd43izysw8qjwm0qhhfjvf3xh" "40994fca693d" "eo")
("0kmjvinqpb3y81mqda1qq8k202aa36as9z1z775745bx6sbvkggz" "6cf3c836995d" "es-AR")
("06rvd1z3l0r7hwnsnw90i0f5j2ysbv6wd3cl64g0bgifmwjk75hi" "8727dda3935e" "es-CL")
("0gzw1rn9nzpgcrrc10indnbqqpax87azczrfxv8mn5n56j734hc0" "5351aba49895" "es-ES")
("0bnmgisxfkb6rb12avhipbsj1yr0dyv56qjj9471gnc2ppq7k3c9" "dd834a4af402" "es-MX")
("1951975h9w813qxanbk3frjz7c8knzx5rvq9i82j9i6x6a3fh6fi" "1f2150796079" "et")
("1vkb5rd0k6vh9dbll3fhyzg8rfpkxxkd2rxwf66b8l3hg4fqd7f2" "2911663f4a7c" "eu")
("1cj9zblfp94h86m7zd762bfmcfz0yxc1q4ra35s4wnnlqajarzwj" "04ec3c3bbe92" "fa")
("1ininsyzaj7xd8ppmklm3zglgw1i0nhdy43iiyva32hb592zxy4m" "0cf866f9bc4e" "ff")
("1hc308d71iygarrpliv7pxjz49gxwqg10d0pv8j4sbb2pw39bprl" "04a600fc54a4" "fi")
("02nl54db9130rg59wmrrnh0z726fg5ir1njfcnhxagb4g5b7s69f" "64a3576df276" "fr")
("1qbby23qlkxjz3vwlk8pd2w1w4cxdff8cq7j0ipk44mijkxkry0c" "c84177dfa254" "fy-NL")
("1x23pg36ld5qnrmdn149rkl85ia8lmiqbzcac2bm0iqprnjdszii" "31590cffac56" "ga-IE")
("005fpyr1lvw23dja3yrzx4y8wdih7vx6ljjpisf4pd3k5zai4x81" "ba4f274ac4a1" "gd")
("0kdlb5q74n0fl5fxfy873s392kry69dmdl8b4gvqdyh5sy66vsqm" "56b41bdcd401" "gl")
("0v8r8b0nrk1l4xipzhq16klmh0pinzcrma0s0gyhgzqqli6z7aym" "59e2afb65c08" "gn")
("1grb1lq1f9p5jxgh9v78jl1wswxmsqxkcssm35l30k6y24pglr0m" "33b4409fb615" "gu-IN")
("172fg55y8l90ix4c8s5x7f8mg6rc7779p6l852cnnkfqjgqa5a5f" "92f9f8238189" "he")
("0i52nmg0yv3y1y3rkinxcyh51mgjksk7c3jlc8014801m3zvyxj7" "00090f7a2a3f" "hi-IN")
("074q8n00yq54kzk632dwbs64r0sygvybbvwpd6hbvfpn38lz8hxf" "6e4a3fdc01f3" "hr")
("1jxiz8zyxbpnwgk5xkwfxlr5f1zfyc88jcsajy8wcaifdkld3cwn" "7fd9bc25e49d" "hsb")
("0ca11pmkzyd9ccrnrbmk0jrpcb03k88v4zivxblnxj4w03g0hyhq" "ce3b378ce950" "hu")
("1yszljbh8f7w6lckfw22jwximy3yhis4430lfynfb8lh9nm0fw59" "c91a4a3e8821" "hy-AM")
("0hhl8b8szqlhjdxhsa81zmgr303kr0jx5d6rzbi840qwf01h12sz" "4f235acc839e" "ia")
("063yfk3nz3kignbri7r9sr3jwr5p9yyqc6sckgqs94hx6lvc355p" "fface86a34e4" "id")
("1qszxkgliall4haaq6v0xayxikq43ddcdsn1d4m1mwyp7gdpbry5" "5978ae767b44" "is")
("1fsfz9iz5pdd5r9ckdal6grvddchsc4r3r8gn4w6f2bja6vpbs05" "0c7d2a0e1304" "it")
("1phkw0apiicgbw2nq3g392xncw1v2c4yac595h3nchs4q6rp9pd9" "1c923f3e88b9" "ja")
("1y4gc4l6g72nphhsw4aqhcl80a7wi9qdy61h66c6jc6h14i7278d" "66f700940cfa" "ja-JP-mac")
("0iqwj0y19zqcdclnn92z490s1g9vh2qr9gmkyfnpsz69llxidx1j" "49b4a7c6bb2c" "ka")
("111nm2khff0zxnqqfc68rbi3j0b1nx5r4xai7b8yymyv1i0qbsxd" "4854facbd60b" "kab")
("12p7lg2p6pcqdlb4bqbz5isxilw2r9vb8344sh8zrvv9cb9jq04f" "d2fda8a1b287" "kk")
("142vpw9npqgc8b5zcg5cy2lh07s4mg8xfbaymg44fb4j3s6agw88" "3a5a1cae9b93" "km")
("00v1sd2byj2ksxw1020z142cdlxa7ri2v1rzjrhay9l465bj3k8x" "6ed122b33cac" "kn")
("1s07yhwzpxj0l5vj5lzbvgw115sjx1g2zgbqca5wln95dds39npl" "49bc07645a47" "ko")
("1b4brfww0w7x1h3ff19i6xi8xq2cb1hxysilira6yq4rb6vhlmly" "93f04df12616" "lij")
("1i30my0bbgm9z02rxxi7x4vc69bs3bnjs9l2q6jd8xvs1ga3vc7n" "e1f4e0d87509" "lt")
("1bjh4xlx6562hxq527cqcn4b5295dsdpwn4c4y5ci902nlh6fc8l" "daea4ba4e7f4" "lv")
("0vig42slcx6bhpisyc1bnyklr95lbv7vqd1ckiywp5c5qzfa9afi" "0c4ca0f4fc17" "mk")
("10qfnkqi2snmgvm4vcrmp2489klchv3hn2c4rmkdhi5bilfk42jx" "9be8d5951976" "mr")
("1bkn8ds3fyz710ck4gg4g5vpv23bi573ssm9xbiyl8y59pvbig9b" "0f44d0bcfda2" "ms")
("1j9af3axbijn0s8y96310mvgaq5a36m0r3ij550jv5bv52862crj" "ccbf0c4355d6" "my")
("0lspnp9jn3rrgz3djnmc0qrb6ymigvqnr3fb0jbhmf83r4yfs8z1" "a6cf2c6e3594" "nb-NO")
("1xp2884m9gqm9gaakc747bd9j55wssrh3qsf4y4k02ijh08sfmwb" "c1636a1a7507" "ne-NP")
("0y1fxp9pxia6x2wxdharh2ynvzdqcmzpya1gdb89pcv5qyrzqgcl" "60ed1c2397a6" "nl")
("1nbp924p7fp2c76ym71wp34vk96z89i4g2rfgpsi54cgv42a6vgq" "a7f9a3d35875" "nn-NO")
("1yrmhyvb6skypcyvi6j3py51sdkq9vn35zkryx6rdp8ygqwm1va7" "9ac29828960e" "oc")
("0rn2414ji1icar627arf5rjwl9r9vxhznbfsyxgrmrf0p6dp72fv" "87720cc32205" "pa-IN")
("09lam6yaprc8zyisq0pcdj4afpg930c2x3x47gdxnqfyhmcfygs7" "56b2c592ffba" "pl")
("0mbc1a8wvjs3k928qh0k800d230251i0rw0myhdpc6mk3xjna7i5" "89f1b173c9b1" "pt-BR")
("1v1qa5slllz78222rlqr4b8k7c8dapmx8d7s5nb90wdffic0zcqy" "27adc5dad781" "pt-PT")
("04k6h5d7c740lz1hx1vavj6p0fmhgn9mm3nwvk4p9iccy5nw5pmf" "83e2e4833fc3" "rm")
("0f0hz792wr17mgi6n190dliqx67479aqg3y2ak0jg0fiz2c8qr7p" "69cdc288966f" "ro")
("17yngj0v30687m7fa1ls0g86vjg8jzxs7bnsca91jpxf3ij44xp6" "03046775600f" "ru")
("1fvz23nphs9i4gdkx9fcy5ahdk2f879281pchclwi0qlciq7digr" "61ea93a50fff" "sco")
("0yc1iwqbnpnf1i7yz3zqrx6g8pinc7l53pvbczywfkq3rz6wmmf5" "2b134d24c046" "si")
("0kizljksn2vn4yw7qlv7c8h2m75f7n9ddg6n6ag3hwxxip83hn4y" "6d69c24dc8db" "sk")
("1ll936b18wy464623jc5smf3c6dpimh0qwn28a991h7zcw31n3kp" "29e195d1d160" "sl")
("14w9n994z9gf0wx7vrqisyxkngvhmmnayx8r0vwiq8k7jy81sxlm" "60a3b235fe1d" "son")
("0z7bcfvq6x6dxf4d4bbjsg36r5npkr89087b0j360ljampk6c2fn" "8588cbc89847" "sq")
("1fcq9g89lhzckzr2qb6x0w0z6q486n9jdqfi6h70dx8b069b3jfj" "198f7e89f10d" "sr")
("0ap3m1sbibnaj9s2l139m7l8cc8s2ky4jlxwgzbxdzvqxfz7n954" "b098e2ebc049" "sv-SE")
("0k93gnwfs5mahb9vz1c65ddcbkav0cwhxnrww3qk7gcmn7q88gqk" "25951b964d5b" "szl")
("0b0v5pcwvhvhg8vlzy26g3j0m1r8svrpq07hq0q7lxldwlb48phz" "94659c83c9d8" "ta")
("1v35cl6m3ikzsriq6zkjzjs3p9bhl8zmbp2gl14mga1f1zy4kcah" "eb59646a5d36" "te")
("0y3r30mjgxngjraqmf5cm00kgqx2pvhbvy8sfxb3fhypv9vda3yr" "10d257301a2d" "th")
("1inyqk495py20jwjvs4yl0n5ncf3hhb896bs1lwfsgpvbvr5hbq1" "9be6adca0e51" "tl")
("0vsirjs655cia9n8dys2r84bvg303hcxkk2w6a9j3dkbifq5ymk6" "51354c936bf6" "tr")
("050x882c0ywil290k4g861njw70ffw2y55dqk3w0kffi972mm909" "d7510f2d01dc" "trs")
("001ykwxkwibavbi1k42b1hmysb3gmrwcs68zmw96m1vc80p29nz1" "4d1fa878042b" "uk")
("0lsz6jlmmsqdg47pdx8b1djjvcavi0wlyr0mkpyhjgpginag21zx" "ad3035f28183" "ur")
("0d3ggm3q76pkpg4n3lz2ji4pbb47n885byqxbp7sk6n9vlgzir7l" "8ea7a5a051db" "uz")
("0v7d8y6xsr6yf2s1sjxnsjmw0hdnj91f0w2da6spkifb52lmbv6v" "67fe2acb306f" "vi")
("0j8l09vzqlw4zlkyp6wkh44c5gr1xgbcmnawks1zj7xz02ambwii" "abc22dfb6d84" "xh")
("1c01pbyswixkjg42714fvfy33b09mpdbf4d8f8kcs88c86jpf07z" "d6d6f9bb6113" "zh-CN")
("0yq8fqdz862pnlbvfsqfc152rhpsqgncvp8bqkd653mdfv4qkwr4" "0cbdc5f1a048" "zh-TW")))
(define %icecat-91-version "91.13.0-guix0-preview1")
(define icecat-91-source
(let* ((base-version (first (string-split %icecat-91-version #\-)))
(major-version (first (string-split base-version #\.)))
(minor-version (second (string-split base-version #\.)))
(sub-version (third (string-split base-version #\.)))
(upstream-firefox-version (string-append base-version "esr"))
(upstream-firefox-source
(origin
(method url-fetch)
(uri (string-append
"https://ftp.mozilla.org/pub/firefox/releases/"
upstream-firefox-version "/source/"
"firefox-" upstream-firefox-version ".source.tar.xz"))
(sha256
(base32
"0qh7j960wdp5zcfqhkj8ki47spp9i9ms12xx0v0kxvmmw36jpgjk"))))
(upstream-icecat-base-version "91.13.0") ; maybe older than base-version
;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version))
(gnuzilla-commit "4a87716686104266a9cccc2d83cc249e312f3673")
(gnuzilla-source
(origin
(method git-fetch)
(uri (git-reference
(url "git://git.savannah.gnu.org/gnuzilla.git")
(commit gnuzilla-commit)))
(file-name (git-file-name "gnuzilla"
;;upstream-icecat-base-version
(string-take gnuzilla-commit 8)))
(sha256
(base32
"070j78al04xzchfl5xj1w300hmw17a3iqcw7mnlxf6b8rqlgj20p"))))
;; 'search-patch' returns either a valid file name or #f, so wrap it
;; in 'assume-valid-file-name' to avoid 'local-file' warnings.
(gnuzilla-fixes-patch
(local-file (assume-valid-file-name
(search-patch "icecat-use-older-reveal-hidden-html.patch"))))
(makeicecat-patch
(local-file (assume-valid-file-name
(search-patch "icecat-makeicecat.patch")))))
(origin
(method computed-origin-method)
(file-name (string-append "icecat-" %icecat-91-version ".tar.xz"))
(sha256 #f)
(uri
(delay
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils))
(let ((firefox-dir
(string-append "firefox-" #$base-version))
(icecat-dir
(string-append "icecat-" #$%icecat-91-version)))
(set-path-environment-variable
"PATH" '("bin")
(list #+rename
#+python
#+(canonical-package bash)
#+(canonical-package coreutils)
#+(canonical-package findutils)
#+(canonical-package patch)
#+(canonical-package xz)
#+(canonical-package sed)
#+(canonical-package grep)
#+(canonical-package bzip2)
#+(canonical-package gzip)
#+(canonical-package tar)))
(set-path-environment-variable
"PYTHONPATH"
(list #+(format #f "lib/python~a/site-packages"
(version-major+minor
(package-version python))))
'#+(cons python-jsonschema
(map second
(package-transitive-propagated-inputs
python-jsonschema))))
;; Needed by the 'makeicecat' script.
(setenv "RENAME_CMD" "rename")
;; We copy the gnuzilla source directory because it is
;; read-only in 'gnuzilla-source', and the makeicecat script
;; uses "cp -a" to copy parts of it and assumes that the
;; copies will be writable.
(copy-recursively #+gnuzilla-source "/tmp/gnuzilla"
#:log (%make-void-port "w"))
(with-directory-excursion "/tmp/gnuzilla"
(make-file-writable "makeicecat")
(invoke "patch" "--force" "--no-backup-if-mismatch"
"-p1" "--input" #+gnuzilla-fixes-patch)
(invoke "patch" "--force" "--no-backup-if-mismatch"
"-p1" "--input" #+makeicecat-patch)
(patch-shebang "makeicecat")
(substitute* "makeicecat"
(("^readonly FFMAJOR=(.*)" all ffmajor)
(unless (string=? #$major-version
(string-trim-both ffmajor))
;; The makeicecat script cannot be expected to work
;; properly on a different version of Firefox, even if
;; no errors occur during execution.
(error "makeicecat major version mismatch"))
(string-append "readonly FFMAJOR=" #$major-version "\n"))
(("^readonly FFMINOR=.*")
(string-append "readonly FFMINOR=" #$minor-version "\n"))
(("^readonly FFSUB=.*")
(string-append "readonly FFSUB=" #$sub-version "\n"))
(("^readonly DATADIR=.*")
"readonly DATADIR=/tmp/gnuzilla/data\n")
(("^readonly SOURCEDIR=.*")
(string-append "readonly SOURCEDIR=" icecat-dir "\n"))
(("/bin/sed")
#+(file-append (canonical-package sed) "/bin/sed"))))
(format #t "Unpacking upstream firefox tarball...~%")
(force-output)
(invoke "tar" "xf" #+upstream-firefox-source)
(rename-file firefox-dir icecat-dir)
(with-directory-excursion icecat-dir
(format #t "Populating l10n directory...~%")
(force-output)
(mkdir "l10n")
(with-directory-excursion "l10n"
(for-each
(lambda (locale-dir)
(let ((locale
(string-drop (basename locale-dir)
(+ 32 ; length of hash
(string-length "-mozilla-locale-")))))
(format #t " ~a~%" locale)
(force-output)
(copy-recursively locale-dir locale
#:log (%make-void-port "w"))
(for-each make-file-writable (find-files locale))
(with-directory-excursion locale
(when (file-exists? ".hgtags")
(delete-file ".hgtags"))
(mkdir-p "browser/chrome/browser/preferences")
(call-with-output-file
"browser/chrome/browser/preferences/advanced-scripts.dtd"
(lambda (port) #f)))))
'#+all-mozilla-91-locales)
(copy-recursively #+mozilla-compare-locales
"compare-locales"
#:log (%make-void-port "w"))
(delete-file "compare-locales/.gitignore")
(delete-file "compare-locales/.hgignore")
(delete-file "compare-locales/.hgtags")))
(format #t "Running makeicecat script...~%")
(force-output)
(invoke "bash" "/tmp/gnuzilla/makeicecat")
(format #t "Packing IceCat source tarball...~%")
(force-output)
(setenv "XZ_DEFAULTS" (string-join (%xz-parallel-args)))
(invoke "tar" "cfa" #$output
;; Avoid non-determinism in the archive. We set the
;; mtime of files in the archive to early 1980 because
;; the build process fails if the mtime of source
;; files is pre-1980, due to the creation of zip
;; archives.
"--mtime=@315619200" ; 1980-01-02 UTC
"--owner=root:0"
"--group=root:0"
"--sort=name"
icecat-dir)))))))))
;; Update this together with icecat!
(define %icedove-build-id "20220726000000") ;must be of the form YYYYMMDDhhmmss
(define %icedove-build-id "20220919000000") ;must be of the form YYYYMMDDhhmmss
(define-public icedove
(package
(name "icedove")
(version "91.12.0")
(source icecat-source)
(version "91.13.1")
(source icecat-91-source)
(properties
`((cpe-name . "thunderbird_esr")))
(build-system gnu-build-system)
@ -1366,7 +1827,7 @@ standards of the IceCat project.")
;; in the Thunderbird release tarball. We don't use the release
;; tarball because it duplicates the Icecat sources and only adds the
;; "comm" directory, which is provided by this repository.
,(let ((changeset "bd3da11e22d0070699026cb5f4e31b44b35580f0"))
,(let ((changeset "2f9b465346ceb38b4ab79ccc1bfe8d8ad0bc8743"))
(origin
(method hg-fetch)
(uri (hg-reference
@ -1375,7 +1836,7 @@ standards of the IceCat project.")
(file-name (string-append "thunderbird-" version "-checkout"))
(sha256
(base32
"14na1n37sqjqcxmhbp0c56a1j70gnyqgrhlrk5jkblml47x4i35w")))))
"10vsbwlh5imq7iljwzq3r4y80wzsmj6s2gsi1n64l0wmfq2m6ilb")))))
("cargo" ,rust "cargo")
("clang" ,clang)
("llvm" ,llvm)

View File

@ -4951,7 +4951,7 @@ with a FSM is being built (for example, from a Makefile.)")
(define-public guile-ini
(package
(name "guile-ini")
(version "0.5.1")
(version "0.5.2")
(source (origin
(method git-fetch)
(uri (git-reference
@ -4960,21 +4960,12 @@ with a FSM is being built (for example, from a Makefile.)")
(file-name (string-append name "-" version))
(sha256
(base32
"0ky7sffxywc2p84q5kdsphr99q0g5gy45rj0vx7f77hwpfm2093x"))))
"17fbys3gsfyx4f77a2fswirx76dlr57il2z27z77wljaz777jk36"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags '("GUILE_AUTO_COMPILE=0") ;to prevent guild warnings
#:phases (modify-phases %standard-phases
(delete 'strip)
(add-before 'build 'generate-fsm-context
;; Make sure the intermediate FSM context is present
;; before the build.
(lambda _
(let ((cwd (getcwd)))
(chdir "modules/ini/")
(invoke "make" "GUILE_AUTO_COMPILE=0"
"fsm-context.scm")
(chdir cwd)))))))
(delete 'strip))))
(native-inputs (list autoconf automake pkg-config texinfo))
(inputs (list bash-minimal guile-3.0 guile-lib))
(propagated-inputs (list guile-smc))

View File

@ -22,6 +22,7 @@
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages commencement)
#:use-module (gnu packages compression)
#:use-module (gnu packages datastructures)
#:use-module (gnu packages documentation)
#:use-module (gnu packages elf)
@ -30,6 +31,7 @@
#:use-module (gnu packages flex)
#:use-module (gnu packages gawk)
#:use-module (gnu packages glib)
#:use-module (gnu packages guile)
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages linux)
@ -207,17 +209,76 @@ interactive SVGs out of traces genated from various tracing tools. It comes
with the script @command{flamegraph.pl} and many stackcollapse scripts.")
(license license:cddl1.0))))
(define-public libpatch
(package
(name "libpatch")
(version "1.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.sr.ht/~old/libpatch")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1sx1sichnnqfi84z37gd04h41vpr8i2vg6yg0jkqxlrv3dys489a"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list
(string-append
"--target="
,(platform-linux-architecture
(lookup-platform-by-target-or-system
(or
(%current-target-system)
(%current-system))))))))
;;; Add lttng-ust to the inputs if you want tracepoints within libpatch
;;; for debugging.
(inputs
(list capstone
elfutils
libunwind
liburcu))
(native-inputs
(list coreutils
;; test-ftrace.scm
(list coreutils "debug")
(list guile-3.0 "debug")
(list gnu-make "debug")
;; For eu-nm in test-ftrace.scm.
(list elfutils "bin")
guile-3.0
gnu-make
pkg-config
;; zlib is required by libdw. This can be removed if zlib is put
;; as a propagated-input of elfutils.
zlib))
(synopsis "Dynamic binary patcher")
(description
"libpatch is a lightweight C library that can be used by tracers,
debuggers and other tools for insertion of probes in a program at runtime. It
has many strategies to minimize probe overhead and maximize possible
coverage.")
(home-page "https://git.sr.ht/~old/libpatch")
(license (list license:lgpl2.1 license:expat license:gpl3+))
;; Libpatch only supports instrumentation for x86_64 right now. Augment
;; that list in further version.
(supported-systems (list "x86_64-linux"))))
(define-public lttng-modules
(package
(name "lttng-modules")
(version "2.13.4")
(version "2.13.5")
(source (origin
(method url-fetch)
(uri (string-append "https://lttng.org/files/lttng-modules/"
"lttng-modules-" version ".tar.bz2"))
(sha256
(base32
"1vm9nnjvid7acsvgwnjyxd60ih9rmbhnfjldxip58n8x9q7d0nb1"))))
"0277yfp57psnvn5g40mk09zryp0r4saynns213qak18fv0l39szc"))))
(build-system linux-module-build-system)
(arguments
`(#:tests? #f ; no tests
@ -234,14 +295,14 @@ many probes which instrument numerous interesting parts of Linux.")
(define-public lttng-ust
(package
(name "lttng-ust")
(version "2.13.3")
(version "2.13.4")
(source (origin
(method url-fetch)
(uri (string-append "https://lttng.org/files/lttng-ust/"
"lttng-ust-" version ".tar.bz2"))
(sha256
(base32
"0vwgxp027pgwm0a4xr6bdibday7xjlnv6wmbqh546l2h2i8jzi1c"))))
"165kz3zsklynkxdkcbkwhw7cccdgmgmld35h1cf9hvn5bpn853v9"))))
(build-system gnu-build-system)
(inputs
(list numactl))
@ -260,20 +321,17 @@ to ring buffers shared with a consumer daemon.")
(define-public lttng-tools
(package
(name "lttng-tools")
(version "2.13.7")
(version "2.13.8")
(source (origin
(method url-fetch)
(uri (string-append "https://lttng.org/files/lttng-tools/"
"lttng-tools-" version ".tar.bz2"))
(sha256
(base32
"13gh4bvlgbh82h9vb80aw8l1cfmdj3xyvjg30cscz9vqy7l04yni"))))
"1h9x6mmqrxrbgivll3g81l7a9f7ggjmcgwr01f9r01r6kdbmksdi"))))
(build-system gnu-build-system)
(arguments
`( ;; FIXME - Currently there's a segmentation fault by swig when enabling
;; Python's bindings. Thus, bindings are disable here. Replace
;; `disable` by `enable` in #:configure-flags when this is fixed.
#:configure-flags '("--disable-python-bindings")
`(#:configure-flags '("--enable-python-bindings")
;; FIXME - Tests are disabled for now because one test hangs
;; indefinetely. Also, parallel testing is not possible because of how
;; the lttng-daemon handles sessions. Thus, keep parallel testing

View File

@ -3,6 +3,7 @@
;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;;
;;; This file is part of GNU Guix.
;;;
@ -28,7 +29,8 @@
#:use-module (guix build-system go)
#:use-module (gnu packages golang)
#:use-module (gnu packages python)
#:use-module (gnu packages shells))
#:use-module (gnu packages shells)
#:use-module (gnu packages syncthing))
(define-public go-github-com-ipfs-go-ipfs-cmdkit-files
(let ((commit
@ -227,7 +229,55 @@ written in Go.")
"/go-ipfs-source.tar.gz"))
(sha256
(base32 "13pmj83hwpz6mk7x52qn0cjnfqxqw2qri3r0k4b270w3bafcccwm"))
(file-name (string-append name "-" version "-source"))))
(file-name (string-append name "-" version "-source"))
(modules '((guix build utils)))
(snippet '(for-each delete-file-recursively
;; TODO: unbundle the rest as well
'("vendor/github.com/alecthomas"
;; "vendor/github.com/blang"
"vendor/github.com/cespare"
;; TODO: Go files not found
;; "vendor/github.com/cheggaaa"
"vendor/github.com/davecgh"
"vendor/github.com/dustin"
"vendor/github.com/flynn"
"vendor/github.com/francoispqt"
"vendor/github.com/fsnotify"
"vendor/github.com/gogo"
"vendor/github.com/golang/groupcache"
"vendor/github.com/golang/snappy"
"vendor/github.com/google/uuid"
"vendor/github.com/gorilla"
;; These should be fine, they are part of
;; the IPFS project
;; "vendor/github.com/ipfs"
;; "vendor/github.com/ipld"
"vendor/github.com/jackpal"
"vendor/github.com/klauspost"
;; TODO: Go files not found
;; "vendor/github.com/lucas-clemente"
"vendor/github.com/mattn"
"vendor/github.com/mgutz"
"vendor/github.com/minio"
"vendor/github.com/mitchellh"
"vendor/github.com/mr-tron"
"vendor/github.com/opentracing"
"vendor/github.com/pkg"
"vendor/github.com/pmezard"
"vendor/github.com/prometheus/client_golang"
"vendor/github.com/prometheus/client_model"
"vendor/github.com/prometheus/common"
"vendor/github.com/prometheus/procfs"
"vendor/github.com/spaolacci"
"vendor/github.com/stretchr"
"vendor/github.com/syndtr"
"vendor/golang.org/x"
"vendor/gopkg.in/yaml.v2"
"vendor/gopkg.in/yaml.v3"
"vendor/go.uber.org/atomic"
"vendor/go.uber.org/multierr"
"vendor/go.uber.org/zap"
"vendor/lukechampine.com")))))
(build-system go-build-system)
(arguments
(list
@ -247,6 +297,60 @@ written in Go.")
"ipfs"
#~(string-append #$output "/bin/ipfs"))
"commands" "completion" "bash")))))))))
(inputs (list go-github-com-alecthomas-units
;; TODO: needs to be updated first
;; go-github-com-blang-semver
go-github-com-cespare-xxhash
go-github-com-cheekybits-genny
go-github-com-cheggaaa-pb-v3
go-github-com-davecgh-go-spew
go-github-com-dustin-go-humanize
go-github-com-flynn-noise
go-github-com-francoispqt-gojay
go-github-com-fsnotify-fsnotify
go-github-com-gogo-protobuf
go-github-com-google-uuid
go-github-com-golang-groupcache-lru
go-github-com-golang-snappy
go-github-com-gorilla-websocket
go-github-com-jackpal-go-nat-pmp
go-github-com-klauspost-compress
go-github-com-klauspost-cpuid
go-github-com-lucas-clemente-quic-go
go-github-com-mattn-go-colorable
go-github-com-mattn-go-isatty
go-github-com-mattn-go-runewidth
go-github-com-mgutz-ansi
go-github-com-minio-blake2b-simd
go-github-com-minio-sha256-simd
go-github-com-mitchellh-go-homedir
go-github-com-mr-tron-base58
go-github-com-opentracing-opentracing-go
go-github-com-pkg-errors
go-github-com-pmezard-go-difflib
go-github-com-prometheus-client-golang
go-github-com-prometheus-client-model
go-github-com-prometheus-common
go-github-com-prometheus-procfs
go-github-com-spaolacci-murmur3
go-github-com-stretchr-testify
go-github-com-syndtr-goleveldb
go-gopkg-in-yaml-v2
go-gopkg-in-yaml-v3
go-go-uber-org-atomic
go-go-uber-org-multierr
go-go-uber-org-zap
go-golang-org-x-crypto
go-golang-org-x-lint
go-golang-org-x-mod
go-golang-org-x-net
go-golang-org-x-oauth2
go-golang-org-x-sync
go-golang-org-x-sys
go-golang-org-x-term
go-golang-org-x-tools
go-golang-org-x-xerrors
go-lukechampine-com-blake3))
(native-inputs
(append (if (%current-target-system)
(list this-package)

View File

@ -66,7 +66,7 @@
#:use-module (guix packages)
#:use-module (guix utils))
(define %jami-version "20220726.1515.da8d1da")
(define %jami-version "20220825.0828.c10f01f")
(define %jami-sources
;; Return an origin object of the tarball release sources archive of the
@ -90,8 +90,8 @@
"plugins"))))
(sha256
(base32
"1zx0i9aw8jsba3bjc5r4pkkybm8c0lyz420ciq89vsswd48gfdhg"))
(patches (search-patches "jami-fix-esc-bug.patch"))))
"1iv06jb66g206qxm75v7rc3mqvrml1028avflsj11chj8jh63j14"))
(patches (search-patches "jami-fix-crash-on-block-contact.patch"))))
;; Jami maintains a set of patches for some key dependencies (currently
;; pjproject and ffmpeg) of Jami that haven't yet been integrated upstream.
@ -113,12 +113,12 @@
patches))))
(define-public pjproject-jami
(let ((commit "e1f389d0b905011e0cb62cbdf7a8b37fc1bcde1a")
(let ((commit "5e478bbf8692f43059de9c6ad654b377359baaa0")
(revision "0"))
(package
(inherit pjproject)
(name "pjproject-jami")
(version (git-version "2.11" revision commit))
(version (git-version "2.12" revision commit))
(source (origin
(inherit (package-source pjproject))
;; The Jami development team regularly issues patches to
@ -133,7 +133,7 @@
(file-name (git-file-name name version))
(sha256
(base32
"0inpmyb6mhrzr0g309d6clkc99lddqdvyf9xajz0igvgp9pvgpza"))))
"0n9hyqr57hhbmq35iqq5ihavj22gxzsspv0f8i6ajxwd4029nmcl"))))
(arguments
(substitute-keyword-arguments (package-arguments pjproject)
((#:phases phases '%standard-phases)
@ -374,16 +374,21 @@
'())))
(define-public ffmpeg-jami
(package/inherit ffmpeg
(package
(inherit ffmpeg-5)
(name "ffmpeg-jami")
;; XXX: Use a slightly older version, otherwise the
;; 'libopusdec-enable-FEC' patch doesn't apply.
(version "5.0.1")
(source (origin
(method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz"))
(sha256
(base32
"0yq0jcdc4qm5znrzylj3dsicrkk2n3n8bv28vr0a506fb7iglbpg"))))
(arguments
(substitute-keyword-arguments (package-arguments ffmpeg)
((#:tests? _ #f)
;; The "rtp_ext_abs_send_time" patch causes the 'lavf-mov_rtphint'
;; test to fail (see:
;; https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/685).
;; TODO: Try to disable just this test.
#f)
(substitute-keyword-arguments (package-arguments ffmpeg-5)
((#:configure-flags '())
(ffmpeg-compose-configure-flags))
((#:phases phases)
@ -399,7 +404,16 @@
"rtp_ext_abs_send_time"
"libopusdec-enable-FEC"
"libopusenc-reload-packet-loss-at-encode"
"screen-sharing-x11-fix"))))))))))
"screen-sharing-x11-fix"))))
(add-after 'apply-patches 'disable-problematic-tests
(lambda _
;; The "rtp_ext_abs_send_time" patch causes the 'lavf-mov_rtphint'
;; test to fail (see:
;; https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/685).
(substitute* "tests/fate/lavf-container.mak"
(("mov mov_rtphint ismv")
"mov ismv")
(("fate-lavf-mov_rtphint:.*") ""))))))))))
(define-public libjami
(package

View File

@ -1781,511 +1781,398 @@ new Date();"))
"0di91nnms2iq1svgq72r5y17am17r4vh2lq43k0bkcwpc84d6nd8"))
(modules '((guix build utils)))
(snippet
`(begin
(for-each delete-file (find-files "." ".*.(bin|exe|jar)$"))
#t))))
'(for-each delete-file (find-files "." ".*.(bin|exe|jar)$")))))
(build-system gnu-build-system)
(outputs '("out" "jdk" "doc"))
(arguments
`(#:imported-modules ((guix build syscalls)
(list
#:imported-modules `((guix build syscalls)
,@%gnu-build-system-modules)
#:modules `((guix build gnu-build-system)
(guix build utils)
(ice-9 match)
(srfi srfi-1)
(srfi srfi-26))
#:disallowed-references (list (gexp-input openjdk10)
(gexp-input openjdk10 "jdk"))
#:disallowed-references ,(list (gexp-input openjdk10)
(gexp-input openjdk10 "jdk"))
#:tests? #f; requires jtreg
;; TODO package jtreg
#:configure-flags
`(;; Add flags for compilation with gcc >= 10
,(string-append "--with-extra-cflags=-fcommon"
" -fno-delete-null-pointer-checks"
" -fno-lifetime-dse")
"--disable-option-checking" ; --enable-fast-install default flag errors otherwise
#:tests? #f ; requires jtreg
;; TODO package jtreg
#:configure-flags
#~(list
;; Add flags for compilation with gcc >= 10.
#$(string-append "--with-extra-cflags=-fcommon"
" -fno-delete-null-pointer-checks"
" -fno-lifetime-dse")
;; Otherwise, the '--enable-fast-install' causes an error.
"--disable-option-checking"
"--disable-warnings-as-errors"
;; make validate-runpath pass, see: http://issues.guix.info/issue/32894
;; Make validate-runpath pass (see:
;; http://issues.guix.info/issue/32894).
"--with-native-debug-symbols=zipped"
;; do not use the bundled libraries
;; Do not use the bundled libraries.
"--with-giflib=system"
"--with-lcms=system"
"--with-libjpeg=system"
"--with-libpng=system"
"--with-version-pre="
;; allow the build system to locate the system freetype
,(string-append "--with-freetype-include="
(assoc-ref %build-inputs "freetype") "/include")
,(string-append "--with-freetype-lib="
(assoc-ref %build-inputs "freetype") "/lib"))
#:phases
(modify-phases %standard-phases
(add-after 'patch-source-shebangs 'fix-java-shebangs
(lambda _
;; This file was "fixed" by patch-source-shebangs, but it requires
;; this exact first line.
(substitute* "make/data/blockedcertsconverter/blocked.certs.pem"
(("^#!.*") "#! java BlockedCertsConverter SHA-256\n"))
#t))
(add-after 'unpack 'patch-jni-libs
;; Hardcode dynamically loaded libraries.
(lambda _
(define remove
(@ (srfi srfi-1) remove))
;; Allow the build system to locate the system freetype.
(string-append "--with-freetype-include="
#$(this-package-input "freetype") "/include")
(string-append "--with-freetype-lib="
#$(this-package-input "freetype") "/lib"))
#:phases
#~(modify-phases %standard-phases
(add-after 'patch-source-shebangs 'fix-java-shebangs
(lambda _
;; This file was "fixed" by patch-source-shebangs, but it requires
;; this exact first line.
(substitute* "make/data/blockedcertsconverter/blocked.certs.pem"
(("^#!.*") "#! java BlockedCertsConverter SHA-256\n"))))
(add-after 'unpack 'patch-jni-libs
;; Hardcode dynamically loaded libraries.
(lambda _
(define remove
(@ (srfi srfi-1) remove))
(define (icedtea-or-openjdk? path)
(or (string-contains path "openjdk")
(string-contains path "icedtea")))
(define (icedtea-or-openjdk? path)
(or (string-contains path "openjdk")
(string-contains path "icedtea")))
(let* ((library-path (remove icedtea-or-openjdk?
(search-path-as-string->list
(getenv "LIBRARY_PATH"))))
(find-library (lambda (name)
(or (search-path
library-path
(string-append "lib" name ".so"))
(string-append "lib" name ".so")))))
(for-each
(lambda (file)
(catch 'decoding-error
(lambda ()
(substitute* file
(("VERSIONED_JNI_LIB_NAME\\(\"(.*)\", \"(.*)\"\\)"
_ name version)
(string-append "\"" (find-library name) "\""))
(("JNI_LIB_NAME\\(\"(.*)\"\\)" _ name)
(string-append "\"" (find-library name) "\""))))
(lambda _
;; Those are safe to skip.
(format (current-error-port)
"warning: failed to substitute: ~a~%"
file))))
(find-files "."
"\\.c$|\\.h$"))
#t)))
(add-before 'build 'write-source-revision-file
(lambda _
(with-output-to-file ".src-rev"
(lambda _
(display ,version)))
#t))
(replace 'build
(lambda* (#:key parallel-build? make-flags #:allow-other-keys)
(apply invoke "make" "all"
`(,@(if parallel-build?
(list (string-append "JOBS="
(number->string (parallel-job-count))))
'())
,@make-flags))))
;; jdk 11 does not build jre by default any more
;; building it anyways
;; for further information see:
;; https://github.com/AdoptOpenJDK/openjdk-build/issues/356
(add-after 'build 'build-jre
(lambda* (#:key parallel-build? make-flags #:allow-other-keys)
(apply invoke "make" "legacy-jre-image"
`(,@(if parallel-build?
(list (string-append "JOBS="
(number->string (parallel-job-count))))
'())
,@make-flags))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(jdk (assoc-ref outputs "jdk"))
(doc (assoc-ref outputs "doc"))
(images (car (find-files "build" ".*-server-release"
#:directories? #t))))
(copy-recursively (string-append images "/images/jdk") jdk)
(copy-recursively (string-append images "/images/jre") out)
(copy-recursively (string-append images "/images/docs") doc))
#t))
;; Some of the libraries in the lib/ folder link to libjvm.so.
;; But that shared object is located in the server/ folder, so it
;; cannot be found. This phase creates a symbolic link in the
;; lib/ folder so that the other libraries can find it.
;;
;; See:
;; https://lists.gnu.org/archive/html/guix-devel/2017-10/msg00169.html
;;
;; FIXME: Find the bug in the build system, so that this symlink is
;; not needed.
(add-after 'install 'install-libjvm
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((lib-out (string-append (assoc-ref outputs "out")
"/lib"))
(lib-jdk (string-append (assoc-ref outputs "jdk")
"/lib")))
(symlink (string-append lib-jdk "/server/libjvm.so")
(string-append lib-jdk "/libjvm.so"))
(symlink (string-append lib-out "/server/libjvm.so")
(string-append lib-out "/libjvm.so")))
#t))
(add-after 'install 'strip-character-data-timestamps
(lambda* (#:key outputs #:allow-other-keys)
(use-modules (guix build syscalls))
(let ((archive (string-append
(assoc-ref outputs "jdk") "/lib/src.zip"))
(dir (mkdtemp! "zip-contents.XXXXXX")))
(with-directory-excursion dir
(invoke "unzip" archive))
(delete-file archive)
(with-directory-excursion dir
(let ((char-data-files (find-files "." "CharacterData.*")))
(for-each (lambda (file)
(substitute* file
(((string-append "This file was generated "
(let* ((library-path (remove icedtea-or-openjdk?
(search-path-as-string->list
(getenv "LIBRARY_PATH"))))
(find-library (lambda (name)
(or (search-path
library-path
(string-append "lib" name ".so"))
(string-append "lib" name ".so")))))
(for-each
(lambda (file)
(catch 'decoding-error
(lambda ()
(substitute* file
(("VERSIONED_JNI_LIB_NAME\\(\"(.*)\", \"(.*)\"\\)"
_ name version)
(string-append "\"" (find-library name) "\""))
(("JNI_LIB_NAME\\(\"(.*)\"\\)" _ name)
(string-append "\"" (find-library name) "\""))))
(lambda _
;; Those are safe to skip.
(format (current-error-port)
"warning: failed to substitute: ~a~%"
file))))
(find-files "."
"\\.c$|\\.h$")))))
(add-before 'build 'write-source-revision-file
(lambda _
(with-output-to-file ".src-rev"
(lambda _
(display #$version)))))
(replace 'build
(lambda* (#:key parallel-build? make-flags #:allow-other-keys)
(apply invoke "make" "all"
`(,@(if parallel-build?
(list (string-append "JOBS="
(number->string (parallel-job-count))))
'())
,@make-flags))))
;; jdk 11 does not build jre by default any more; so explicitly build
;; it (see:
;; https://github.com/AdoptOpenJDK/openjdk-build/issues/356).
(add-after 'build 'build-jre
(lambda* (#:key parallel-build? make-flags #:allow-other-keys)
(apply invoke "make" "legacy-jre-image"
`(,@(if parallel-build?
(list (string-append "JOBS="
(number->string (parallel-job-count))))
'())
,@make-flags))))
(replace 'install
(lambda _
(let ((images (car (find-files "build" ".*-server-release"
#:directories? #t))))
(copy-recursively (string-append images "/images/jdk")
#$output:jdk)
(copy-recursively (string-append images "/images/jre")
#$output)
(copy-recursively (string-append images "/images/docs")
#$output:doc))))
;; Some of the libraries in the lib/ folder link to libjvm.so.
;; But that shared object is located in the server/ folder, so it
;; cannot be found. This phase creates a symbolic link in the
;; lib/ folder so that the other libraries can find it.
;;
;; See:
;; https://lists.gnu.org/archive/html/guix-devel/2017-10/msg00169.html
;;
;; FIXME: Find the bug in the build system, so that this symlink is
;; not needed.
(add-after 'install 'install-libjvm
(lambda _
(let ((lib-out (string-append #$output "/lib"))
(lib-jdk (string-append #$output:jdk "/lib")))
(symlink (string-append lib-jdk "/server/libjvm.so")
(string-append lib-jdk "/libjvm.so"))
(symlink (string-append lib-out "/server/libjvm.so")
(string-append lib-out "/libjvm.so")))))
(add-after 'install 'strip-character-data-timestamps
(lambda _
(use-modules (guix build syscalls))
(let ((archive (string-append #$output:jdk "/lib/src.zip"))
(dir (mkdtemp! "zip-contents.XXXXXX")))
(with-directory-excursion dir
(invoke "unzip" archive))
(delete-file archive)
(with-directory-excursion dir
(let ((char-data-files (find-files "." "CharacterData.*")))
(for-each (lambda (file)
(substitute* file
(((string-append "This file was generated "
"AUTOMATICALLY from a template "
"file.*"))
(string-append "This file was generated "
"AUTOMATICALLY from a template "
"file.*"))
(string-append "This file was generated "
"AUTOMATICALLY from a template "
"file"))))
char-data-files)))
(with-directory-excursion dir
(let ((files (find-files "." ".*" #:directories? #t)))
(apply invoke "zip" "-0" "-X" archive files))))))
(add-after 'strip-character-data-timestamps 'strip-archive-timestamps
(lambda* (#:key outputs #:allow-other-keys)
(use-modules (guix build syscalls)
(ice-9 binary-ports)
(rnrs bytevectors))
(letrec ((repack-archive
(lambda (archive)
(let ((dir (mkdtemp! "zip-contents.XXXXXX")))
(with-directory-excursion dir
(invoke "unzip" archive))
(delete-file archive)
(for-each (compose repack-archive canonicalize-path)
(find-files dir "(ct.sym|.*.jar)$"))
(let ((reset-file-timestamp
(lambda (file)
(let ((s (lstat file)))
(unless (eq? (stat:type s) 'symlink)
(format #t "reset ~a~%" file)
(utime file 0 0 0 0))))))
(for-each reset-file-timestamp
(find-files dir #:directories? #t)))
(with-directory-excursion dir
(let ((files (find-files "." ".*" #:directories? #t)))
(apply invoke "zip" "-0" "-X" archive files)))))))
(for-each repack-archive
(find-files (assoc-ref outputs "doc") ".*.zip$"))
(for-each repack-archive
(find-files (assoc-ref outputs "jdk")
".*.(zip|jar|diz)$"))
(repack-archive (string-append (assoc-ref outputs "jdk") "/lib/ct.sym"))
(let ((repack-jmod
(lambda (file-name)
(call-with-input-file file-name
(lambda (file)
(let ((header #vu8(#x4a #x4d #x01 #x00)))
(if (equal? (get-bytevector-n
file (bytevector-length header))
header)
(let* ((header-length (bytevector-length header))
(temp-file (mkstemp!
(string-copy
"temp-file.XXXXXX")))
(temp-filename (port-filename temp-file))
(content-length
(- (stat:size (stat file))
header-length)))
(sendfile temp-file file content-length header-length)
(delete-file file-name)
(close-port temp-file)
(repack-archive (canonicalize-path temp-filename))
(call-with-output-file file-name
(lambda (file)
(put-bytevector file header)
(call-with-input-file temp-filename
(lambda (temp-file)
(sendfile
file temp-file
(stat:size (stat temp-file)) 0)))))))))))))
(for-each repack-jmod
(find-files (assoc-ref outputs "jdk") ".*.jmod$")))
#t)))
(add-after 'install 'remove-timestamp-from-api-summary
(lambda* (#:key outputs #:allow-other-keys)
(substitute* (string-append (assoc-ref outputs "doc")
"/api/overview-summary.html")
(("Generated by javadoc \\(11-internal\\).*$")
"Generated by javadoc (11-internal) -->\n"))
#t)))))
"file"))))
char-data-files)))
(with-directory-excursion dir
(let ((files (find-files "." ".*" #:directories? #t)))
(apply invoke "zip" "-0" "-X" archive files))))))
(add-after 'strip-character-data-timestamps 'remove-extraneous-files
(lambda* (#:key outputs #:allow-other-keys)
;; Remove the *.diz and src.zip files for space considerations.
;; The former are compressed debuginfo files not typically
;; shipped with Java distributions, while the later corresponds
;; to Java core API source files.
(for-each delete-file
(append-map (cut find-files <> "(^src\\.zip|\\.diz)$")
(map (match-lambda
((name . dir)
dir))
outputs)))))
(add-after 'remove-diz-file 'strip-archive-timestamps
(lambda _
(use-modules (guix build syscalls)
(ice-9 binary-ports)
(rnrs bytevectors))
(letrec ((repack-archive
(lambda (archive)
(let ((dir (mkdtemp! "zip-contents.XXXXXX")))
(with-directory-excursion dir
(invoke "unzip" archive))
(delete-file archive)
(for-each (compose repack-archive canonicalize-path)
(find-files dir "(ct.sym|\\.jar)$"))
(let ((reset-file-timestamp
(lambda (file)
(let ((s (lstat file)))
(unless (eq? (stat:type s) 'symlink)
(format #t "reset ~a~%" file)
(utime file 0 0 0 0))))))
(for-each reset-file-timestamp
(find-files dir #:directories? #t)))
(with-directory-excursion dir
(let ((files (find-files "." ".*" #:directories? #t)))
(apply invoke "zip" "-0" "-X" archive files)))))))
(for-each repack-archive
(find-files #$output:doc "\\.zip$"))
(for-each repack-archive
(find-files #$output:jdk "\\.(zip|jar)$"))
(repack-archive (string-append #$output:jdk "/lib/ct.sym"))
(let ((repack-jmod
(lambda (file-name)
(call-with-input-file file-name
(lambda (file)
(let ((header #vu8(#x4a #x4d #x01 #x00)))
(if (equal? (get-bytevector-n
file (bytevector-length header))
header)
(let* ((header-length (bytevector-length header))
(temp-file (mkstemp!
(string-copy
"temp-file.XXXXXX")))
(temp-filename (port-filename temp-file))
(content-length
(- (stat:size (stat file))
header-length)))
(sendfile temp-file file content-length header-length)
(delete-file file-name)
(close-port temp-file)
(repack-archive (canonicalize-path temp-filename))
(call-with-output-file file-name
(lambda (file)
(put-bytevector file header)
(call-with-input-file temp-filename
(lambda (temp-file)
(sendfile
file temp-file
(stat:size (stat temp-file)) 0)))))))))))))
(for-each repack-jmod
(find-files #$output:jdk "\\.jmod$"))))))
(add-after 'install 'remove-timestamp-from-api-summary
(lambda _
(substitute* (string-append #$output:doc
"/api/overview-summary.html")
(("Generated by javadoc \\(11-internal\\).*$")
"Generated by javadoc (11-internal) -->\n")))))))
(inputs
`(("alsa-lib" ,alsa-lib)
("cups" ,cups)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
("giflib" ,giflib)
("lcms" ,lcms)
("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)
("libx11" ,libx11)
("libxext" ,libxext)
("libxrandr" ,libxrandr)
("libxrender" ,libxrender)
("libxt" ,libxt)
("libxtst" ,libxtst)))
(list alsa-lib
cups
fontconfig
freetype
giflib
lcms
libjpeg-turbo
libpng
libx11
libxext
libxrandr
libxrender
libxt
libxtst))
(native-inputs
`(("autoconf" ,autoconf)
("openjdk10" ,openjdk10)
("openjdk10:jdk" ,openjdk10 "jdk")
("make" ,gnu-make-4.2)
("pkg-config" ,pkg-config)
("unzip" ,unzip)
("which" ,which)
("zip" ,zip)))
(list autoconf
openjdk10
`(,openjdk10 "jdk")
gnu-make-4.2
pkg-config
unzip
which
zip))
(home-page "https://openjdk.java.net/projects/jdk/11/")
(synopsis "Java development kit")
(description
"This package provides the Java development kit OpenJDK.")
(license license:gpl2+)))
(define-syntax make-openjdk
;; Return an OpenJDK package at VERSION with checksum HASH, using BOOTSTRAP,
;; the bootstrap package. One or more FIELD can be provided to further
;; refine the package definition; for convenience, the BASE, NAME and
;; VERSION are defined in their scope.
(lambda (x)
(syntax-case x ()
((_ bootstrap version* hash field ...)
(with-syntax ((base (datum->syntax x 'base))
(name (datum->syntax x 'name))
(version (datum->syntax x 'version)))
#'(let ((base (package
(inherit bootstrap)
(name "openjdk")
(version version*)
(source
(origin
(inherit (package-source bootstrap))
(method git-fetch)
(uri (git-reference
(url (format
#f "https://github.com/openjdk/jdk~au"
(version-major version*)))
(commit (string-append "jdk-" version*
"-ga"))))
(file-name (git-file-name name version))
(sha256 (base32 hash))))
(native-inputs
(modify-inputs (package-native-inputs bootstrap)
(replace "openjdk" bootstrap)))
(home-page (string-append
"https://openjdk.java.net/projects/jdk/"
(version-major version)))))
(name "openjdk")
(version version*))
(package
(inherit base)
field
...)))))))
(define-public openjdk12
(package
(inherit openjdk11)
(name "openjdk")
(version "12.33")
(source (origin
(method url-fetch)
(uri "http://hg.openjdk.java.net/jdk/jdk/archive/0276cba45aac.tar.bz2")
(file-name (string-append name "-" version ".tar.bz2"))
(sha256
(base32
"0mbhdrk12b6878kby0flnbak7444dlpm0ihlmf92vk59y1c02bc2"))
(modules '((guix build utils)))
(snippet
`(begin
(for-each delete-file (find-files "." ".*.(bin|exe|jar)$"))
#t))))
(arguments
(substitute-keyword-arguments (package-arguments openjdk11)
((#:phases phases)
`(modify-phases ,phases
(make-openjdk
openjdk11 "12.33" "0mbhdrk12b6878kby0flnbak7444dlpm0ihlmf92vk59y1c02bc2"
(source
(origin
(method url-fetch)
(uri "http://hg.openjdk.java.net/jdk/jdk/archive/0276cba45aac.tar.bz2")
(file-name (string-append name "-" version ".tar.bz2"))
(sha256
(base32
"0mbhdrk12b6878kby0flnbak7444dlpm0ihlmf92vk59y1c02bc2"))
(modules '((guix build utils)))
(snippet
'(for-each delete-file (find-files "." "\\.(bin|exe|jar)$")))))
(arguments
(substitute-keyword-arguments (package-arguments openjdk11)
((#:phases phases)
#~(modify-phases #$phases
(replace 'fix-java-shebangs
(lambda _
;; This file was "fixed" by patch-source-shebangs, but it requires
;; this exact first line.
(substitute* "make/data/blacklistedcertsconverter/blacklisted.certs.pem"
(("^#!.*") "#! java BlacklistedCertsConverter SHA-256\n"))))))))
(inputs
`(("alsa-lib" ,alsa-lib)
("cups" ,cups)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
("giflib" ,giflib)
("lcms" ,lcms)
("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)
("libx11" ,libx11)
("libxext" ,libxext)
("libxrandr" ,libxrandr)
("libxrender" ,libxrender)
("libxt" ,libxt)
("libxtst" ,libxtst)))
(native-inputs
`(("autoconf" ,autoconf)
("openjdk11" ,openjdk11)
("openjdk11:jdk" ,openjdk11 "jdk")
("make@4.2" ,gnu-make-4.2)
("pkg-config" ,pkg-config)
("unzip" ,unzip)
("which" ,which)
("zip" ,zip)))
(home-page "https://openjdk.java.net/projects/jdk/12")))
;; 'blocked' was renamed to 'blacklisted' in this version for
;; some reason.
(substitute* "make/data/blacklistedcertsconverter/\
blacklisted.certs.pem"
(("^#!.*")
"#! java BlacklistedCertsConverter SHA-256\n"))))))))))
(define-public openjdk13
(package
(inherit openjdk12)
(name "openjdk")
(version "13.0.7")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/openjdk/jdk13u")
(commit (string-append "jdk-" version "-ga"))))
(file-name (git-file-name name version))
(sha256
(base32
(make-openjdk openjdk12 "13.0.7"
"0wrrr0d7lz1v8qqm752mn4gz5l2vpl2kmx4ac3ysvk4mljc924hp"))
(modules '((guix build utils)))
(snippet
`(begin
(for-each delete-file (find-files "." ".*.(bin|exe|jar)$"))
#t))))
(inputs
`(("alsa-lib" ,alsa-lib)
("cups" ,cups)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
("giflib" ,giflib)
("lcms" ,lcms)
("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)
("libx11" ,libx11)
("libxext" ,libxext)
("libxrandr" ,libxrandr)
("libxrender" ,libxrender)
("libxt" ,libxt)
("libxtst" ,libxtst)))
(native-inputs
`(("autoconf" ,autoconf)
("openjdk12:jdk" ,openjdk12 "jdk")
("make@4.2" ,gnu-make-4.2)
("pkg-config" ,pkg-config)
("unzip" ,unzip)
("which" ,which)
("zip" ,zip)))
(home-page "https://openjdk.java.net/projects/jdk/13")))
(define-public openjdk14
(package
(inherit openjdk13)
(name "openjdk")
(version "14.0.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/openjdk/jdk14u")
(commit (string-append "jdk-" version "-ga"))))
(file-name (git-file-name name version))
(sha256
(base32
"07k9bsbxwyf2z2n50z96nvhsdai916mxdxcr5lm44jz7f6xrwfq6"))
(modules '((guix build utils)))
(snippet
`(begin
;; The m4 macro uses 'help' to search for builtins, which is
;; not available in bash-minimal
(substitute* "make/autoconf/basics.m4"
(("if help") "if command -v"))
(for-each delete-file (find-files "." ".*.(bin|exe|jar)$"))
#t))))
(inputs
`(("alsa-lib" ,alsa-lib)
("cups" ,cups)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
("giflib" ,giflib)
("lcms" ,lcms)
("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)
("libx11" ,libx11)
("libxext" ,libxext)
("libxrandr" ,libxrandr)
("libxrender" ,libxrender)
("libxt" ,libxt)
("libxtst" ,libxtst)))
(native-inputs
`(("autoconf" ,autoconf)
("make@4.2" ,gnu-make-4.2)
("openjdk13:jdk" ,openjdk13 "jdk")
("pkg-config" ,pkg-config)
("unzip" ,unzip)
("which" ,which)
("zip" ,zip)))
(home-page "https://openjdk.java.net/projects/jdk/14")))
(make-openjdk
openjdk13 "14.0.2"
"07k9bsbxwyf2z2n50z96nvhsdai916mxdxcr5lm44jz7f6xrwfq6"
(source (origin
(inherit (package-source base))
(snippet ;override snippet
'(begin
;; The m4 macro uses 'help' to search for builtins, which is
;; not available in bash-minimal
(substitute* "make/autoconf/basics.m4"
(("if help") "if command -v"))
(for-each delete-file (find-files "." "\\.(bin|exe|jar)$"))))))))
(define-public openjdk15
(package
(inherit openjdk14)
(name "openjdk")
(version "15.0.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/openjdk/jdk15u")
(commit (string-append "jdk-" version "-ga"))))
(file-name (git-file-name name version))
(sha256
(base32
"168cr08nywp0q3vyj8njkhsmmnyd8rz9r58hk4xhzdzc6bdfkl1i"))
(patches
(search-patches "openjdk-15-xcursor-no-dynamic.patch"))))
(inputs
(cons `("libxcursor" ,libxcursor) ; for our patch to work
(package-inputs openjdk14)))
(native-inputs
`(("autoconf" ,autoconf)
("openjdk14:jdk" ,openjdk14 "jdk")
("pkg-config" ,pkg-config)
("unzip" ,unzip)
("which" ,which)
("zip" ,zip)))
(home-page "https://openjdk.java.net/projects/jdk/15")))
(make-openjdk
openjdk14 "15.0.3"
"168cr08nywp0q3vyj8njkhsmmnyd8rz9r58hk4xhzdzc6bdfkl1i"
(source (origin
(inherit (package-source base))
(modules '())
(snippet #f)
(patches
(search-patches "openjdk-15-xcursor-no-dynamic.patch"))))
(inputs
(modify-inputs (package-inputs base)
(append libxcursor))) ;for our patch to work
(native-inputs
(modify-inputs (package-native-inputs base)
(delete "make" ;remove old gnu-make-4.2
"openjdk") ;to remove non-jdk output
(append `(,openjdk14 "jdk"))))))
(define-public openjdk16
(package
(inherit openjdk15)
(name "openjdk")
(version "16.0.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/openjdk/jdk16u")
(commit (string-append "jdk-" version "-ga"))))
(file-name (git-file-name name version))
(sha256
(base32
(make-openjdk openjdk15 "16.0.1"
"1ggddsbsar4dj2fycfqqqagqil7prhb30afvq6933rz7pa9apm2f"))
(patches
(search-patches "openjdk-15-xcursor-no-dynamic.patch"))))
(native-inputs
`(("autoconf" ,autoconf)
("openjdk15:jdk" ,openjdk15 "jdk")
("pkg-config" ,pkg-config)
("unzip" ,unzip)
("which" ,which)
("zip" ,zip)))
(arguments
(substitute-keyword-arguments (package-arguments openjdk15)
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'make-templates-writable
(lambda _
;; The build system copies a few .template files from the
;; source directory into the build directory and then modifies
;; them in-place. So these files have to be writable.
(for-each make-file-writable
(find-files "src/java.base/share/classes/jdk/internal/misc/"
"\\.template$"))))))))
(home-page "https://openjdk.java.net/projects/jdk/16")))
(define-public openjdk17
(package
(inherit openjdk16)
(name "openjdk")
(version "17.0.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/openjdk/jdk17u")
(commit (string-append "jdk-" version "-ga"))))
(file-name (git-file-name name version))
(sha256
(base32
"0slmd6ww947gxpp4yr2wmr5z975bg86qh7zqfp2radf2q77ql65b"))
(patches
(search-patches "openjdk-15-xcursor-no-dynamic.patch"))))
(native-inputs
`(("autoconf" ,autoconf)
("openjdk16:jdk" ,openjdk16 "jdk")
("pkg-config" ,pkg-config)
("unzip" ,unzip)
("which" ,which)
("zip" ,zip)))
(arguments
(substitute-keyword-arguments (package-arguments openjdk16)
((#:phases phases)
`(modify-phases ,phases
(make-openjdk
openjdk16 "17.0.3"
"0slmd6ww947gxpp4yr2wmr5z975bg86qh7zqfp2radf2q77ql65b"
(arguments
(substitute-keyword-arguments (package-arguments openjdk16)
((#:phases phases)
#~(modify-phases #$phases
(replace 'fix-java-shebangs
(lambda _
;; This file was "fixed" by patch-source-shebangs, but it requires
;; this exact first line.
;; 'blacklisted' was renamed back to 'blocked'.
(substitute* "make/data/blockedcertsconverter/blocked.certs.pem"
(("^#!.*") "#! java BlockedCertsConverter SHA-256\n"))))))))
(home-page "https://openjdk.java.net/projects/jdk/17")))
(("^#!.*") "#! java BlockedCertsConverter SHA-256\n"))))))))))
(define-public openjdk18
(make-openjdk openjdk17 "18"
"1bv6bdhkmwvn10l0xy8yi9xibds640hs5zsvx0jp7wrxa3qw4qy8"))
;;; Convenience alias to point to the latest version of OpenJDK.
(define-public openjdk openjdk17)
(define-public openjdk openjdk18)
(define-public icedtea icedtea-8)
@ -13965,6 +13852,41 @@ library and the API is similar.")
parse command line options/arguments in your CUI application.")
(license license:expat)))
(define-public java-argparse4j
(package
(name "java-argparse4j")
(version "0.9.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/argparse4j/argparse4j")
(commit (string-append "argparse4j-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1i0j3zs1ln48n0g8a90vqbv6528mcswhzys6252yp0c8w1ai64fb"))))
(build-system ant-build-system)
(arguments
(list #:jar-name "java-argparse4j.jar"
#:source-dir "main/src/main/"
#:test-dir "main/src/test/"
#:jdk openjdk11
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'copy-resources
(lambda _
(copy-recursively "main/src/test/resources"
"target/test-classes")
(copy-recursively "main/src/main/resources"
"build/classes")))
(replace 'install
(install-from-pom "pom.xml")))))
(inputs (list java-junit))
(home-page "https://argparse4j.github.io/")
(synopsis "Java command-line argument parser library")
(description "Argparse4j is a command line argument parser library for
Java based on Python's @code{argparse} module.")
(license license:expat)))
(define-public java-metadata-extractor
(package
(name "java-metadata-extractor")

View File

@ -11,6 +11,7 @@
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Christopher Howard <christopher@librehacker.com>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2022 Jacob Hrbek <kreyren@rixotstudio.cz>
;;;
;;; This file is part of GNU Guix.
;;;
@ -41,6 +42,8 @@
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system python)
#:use-module (gnu packages autotools)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gtk)
#:use-module (gnu packages java)
@ -49,6 +52,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages readline)
#:use-module (gnu packages tls)
#:use-module (gnu packages xiph))
@ -339,6 +343,72 @@ unmodified CircuitPython code to run on the host computer and interact with
I2C and SPI devices attached to the USB Hub.")
(license license:expat)))
(define-public ideviceinstaller
(package
(name "ideviceinstaller")
(version "1.1.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/libimobiledevice/ideviceinstaller")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1xp0sjgfx2z19x9mxihn18ybsmrnrcfc55zbh5a44g3vrmagmlzz"))))
(build-system gnu-build-system)
(native-inputs (list autoconf automake libtool pkg-config))
(inputs (list libimobiledevice libzip))
(home-page "https://libimobiledevice.org/")
(synopsis "CLI Tool to manage apps and app archives on iOS devices")
(description "This package provides an interface to manage IPA format
files and applications for iOS devices, it's written in C")
(license license:gpl2)))
(define-public libirecovery
(package
(name "libirecovery")
(version "1.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/libimobiledevice/libirecovery")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0p9ncqnz5kb7qisw00ynvasw1hax5qx241h9nwppi2g544i9lbnr"))))
(build-system gnu-build-system)
(inputs (list readline libusb))
(native-inputs (list autoconf automake libtool pkg-config))
(home-page "https://libimobiledevice.org/")
(synopsis "Communication library with iBoot/iBSS of iOS devices via USB")
(description "Libirecovery is a cross-platform library which implements
communication to iBoot/iBSS found on Apple's iOS devices via USB.")
(license license:lgpl2.1)))
(define-public idevicerestore
(package
(name "idevicerestore")
(version "1.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/libimobiledevice/idevicerestore")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1w7ywp77xc6v4hifi3j9ywrj447vv7fkwg2w26w0lq95f3bkblqr"))))
(build-system gnu-build-system)
(inputs (list libusb libirecovery libimobiledevice libzip curl zlib))
(native-inputs (list autoconf automake libtool pkg-config))
(home-page "https://libimobiledevice.org/")
(synopsis "CLI tool to restore firmware files to iOS devices")
(description "This utility is used to restore bricked or otherwise
broken iOS devices.")
(license license:lgpl3+)))
(define-public libplist
(package
(name "libplist")

View File

@ -64,6 +64,7 @@
;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2022 Rene Saavedra <nanuui@protonmail.com>
;;; Copyright © 2022 muradm <mail@muradm.net>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;;
;;; This file is part of GNU Guix.
@ -353,7 +354,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-5.19-version "5.19.9")
(define-public linux-libre-5.19-version "5.19.11")
(define-public linux-libre-5.19-gnu-revision "gnu")
(define deblob-scripts-5.19
(linux-libre-deblob-scripts
@ -363,7 +364,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "092myqjixvy1k3ylcj0hfc4whfxapjvxsxm4gk30a3jv5dnh7mly")))
(define-public linux-libre-5.19-pristine-source
(let ((version linux-libre-5.19-version)
(hash (base32 "0dvzjbyknzlx4ndz77fsm6v28fj2chxbq1z85fbc3bckcscbbm8a")))
(hash (base32 "0wyrwdqm4dypx2jbb7d8c3b7fl7q5j434d6g9x2v6sw01gwx4m2m")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.19)))
@ -372,7 +373,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-5.15-version "5.15.68")
(define-public linux-libre-5.15-version "5.15.70")
(define-public linux-libre-5.15-gnu-revision "gnu")
(define deblob-scripts-5.15
(linux-libre-deblob-scripts
@ -382,12 +383,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "048r4synfax2ajyzlmp672b68yshxwlfccdah2vz1kh88rqfmgsc")))
(define-public linux-libre-5.15-pristine-source
(let ((version linux-libre-5.15-version)
(hash (base32 "0zlb44bwpc0hwfynzz5v5b3lkv4aha7w5737ns1qb8cvbk5v7fqp")))
(hash (base32 "0xhdjz7aqq13pkh1yr7ax3msqdb2xvrcpj464wibn1rl4pq2cz0s")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.15)))
(define-public linux-libre-5.10-version "5.10.143")
(define-public linux-libre-5.10-version "5.10.145")
(define-public linux-libre-5.10-gnu-revision "gnu1")
(define deblob-scripts-5.10
(linux-libre-deblob-scripts
@ -397,12 +398,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1981axxswghza3iadp94q54y8w30h9w9vyq4cbjiiv9alvbv0pb8")))
(define-public linux-libre-5.10-pristine-source
(let ((version linux-libre-5.10-version)
(hash (base32 "14af0lsvgh1k0fh283d0nrm1pkrk2kaf2mz0ab59vlvjybg9wb7s")))
(hash (base32 "0qdcqmwvc70hfgj8hb8ccwmnvwl41dvdffqrmyg3cyblwprr0ngw")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.10)))
(define-public linux-libre-5.4-version "5.4.213")
(define-public linux-libre-5.4-version "5.4.214")
(define-public linux-libre-5.4-gnu-revision "gnu1")
(define deblob-scripts-5.4
(linux-libre-deblob-scripts
@ -412,12 +413,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1vnjbdyssa7dwyjl9kg35alwvf7yh597cl74yr1wy2gk5bc9paw6")))
(define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version)
(hash (base32 "1wdssqmac66zqsnq5lx2z8ampa0rd3qswg0gm1sh6n3y8xlf2z76")))
(hash (base32 "1ny57g5agk8sq6cbp2crjiay5bfkwqy32i4a5yw7x0lch2s7kg4s")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.4)))
(define-public linux-libre-4.19-version "4.19.258")
(define-public linux-libre-4.19-version "4.19.259")
(define-public linux-libre-4.19-gnu-revision "gnu1")
(define deblob-scripts-4.19
(linux-libre-deblob-scripts
@ -427,12 +428,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im")))
(define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version)
(hash (base32 "002sw8b272dzkp3vff0x89sbj5p3vrrikqygfdgrsxv7k3w4459x")))
(hash (base32 "1ska6v95zjjj44h53gi34rnbsrm4507jwxi3kklnky6d0aykiy1z")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.19)))
(define-public linux-libre-4.14-version "4.14.293")
(define-public linux-libre-4.14-version "4.14.294")
(define-public linux-libre-4.14-gnu-revision "gnu1")
(define deblob-scripts-4.14
(linux-libre-deblob-scripts
@ -442,12 +443,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im")))
(define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version)
(hash (base32 "047gl9nqrvpi9jaxlmhfnx848qvnrhf13710ka8fwn3lyv22k342")))
(hash (base32 "069i11hv4fhwc9dirqbag1g1k3fn21wzpfggah4f1a41whf98apy")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.14)))
(define-public linux-libre-4.9-version "4.9.328")
(define-public linux-libre-4.9-version "4.9.329")
(define-public linux-libre-4.9-gnu-revision "gnu1")
(define deblob-scripts-4.9
(linux-libre-deblob-scripts
@ -457,7 +458,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0bib3641dbcqdkx3anna3caxnsg3nw9cnmhcklq0s93g3m57041h")))
(define-public linux-libre-4.9-pristine-source
(let ((version linux-libre-4.9-version)
(hash (base32 "1px2np3k796cjwq1sp9gfxyql6hqyqya82vq9cb5y0canq6fqmg8")))
(hash (base32 "168hy7vhgw2sfknflhhf6ykhkp4xs8v0igii6ivjlvs3dmwm21sj")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.9)))
@ -1342,6 +1343,31 @@ battery charging thresholds, keyboard backlight, fans and thermal monitors,
and the notification, WiFi, and Bluetooth LED.")
(license license:gpl2)))
(define-public ec
(package
(name "ec")
(version (package-version linux-libre))
(source (package-source linux-libre))
(build-system gnu-build-system)
(arguments
(list #:make-flags #~(list (string-append "sbindir="
#$output "/sbin")
"INSTALL=install" "STRIPCMD=true")
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'enter-subdirectory
(lambda _
(chdir "tools/power/acpi/tools/ec")))
(delete 'configure)) ;no configure script
#:tests? #f)) ;no tests
(home-page (package-home-page linux-libre))
(synopsis
"Utility for reading or writing @acronym{EC, Embedded Controller} registers")
(description
"This utility can read or write specific registers or all the available
registers of the @acronym{EC, Embedded Controller} supported by the
@code{ec_sys} Linux driver.")
(license license:gpl2)))
(define-public lkrg
(package
(name "lkrg")
@ -8699,7 +8725,11 @@ of Linux application development.")
#:configure-flags
#~(list (string-append "-Dudevrulesdir=" #$output "/lib/udev/rules.d")
"-Dsystemd=disabled"
"-Dsession-managers=[]")))
"-Dsession-managers=[]"
"-Dman=enabled")))
(native-inputs
(modify-inputs (package-native-inputs pipewire)
(prepend python-docutils)))
(inputs (modify-inputs (package-inputs pipewire)
(prepend avahi
bluez

View File

@ -575,7 +575,7 @@ testing. It is an extension of the library written by Chris Riesbeck.")
;; See https://github.com/AccelerationNet/symbol-munger/issues/4
(package
(name "sbcl-lisp-unit2")
(version "0.9.3")
(version "0.9.4")
(source
(origin
(method git-fetch)
@ -584,7 +584,7 @@ testing. It is an extension of the library written by Chris Riesbeck.")
(commit version)))
(file-name (git-file-name "cl-lisp-unit2" version))
(sha256
(base32 "0y7k6fd4mf7ggc8kdrbg8flkj5j7i7ki1350wnj6hqax7cmh4xv5"))))
(base32 "0dnq0qvbsn7ciknvmwzfjnimlzq1gdkv5xd87agmhxm1cpm1ksz0"))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-alexandria sbcl-cl-interpol sbcl-iterate

View File

@ -214,6 +214,38 @@ with dice-roll statistics.")
(define-public ecl-alea
(sbcl-package->ecl-package sbcl-alea))
(define-public sbcl-bubble-operator-upwards
(let ((commit "846275a318b960de81b62caecb1e31930f70aef6")
(revision "0"))
(package
(name "sbcl-bubble-operator-upwards")
(version (git-version "1.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Hexstream/bubble-operator-upwards")
(commit commit)))
(file-name (git-file-name "cl-bubble-operator-upwards" version))
(sha256
(base32 "0ybsy29ms3yrxgr7f2146lr6z4vm070dvdyzvwwxjh4dgm9na7bi"))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list sbcl-parachute))
(home-page "https://www.hexstreamsoft.com/libraries/bubble-operator-upwards/")
(synopsis "Function that bubbles an operator upwards in a form")
(description
"@code{bubble-operator-upwards} is a function that bubbles an operator
upwards in a form, demultiplexing all alternative branches by way of
cartesian product.")
(license license:unlicense))))
(define-public cl-bubble-operator-upwards
(sbcl-package->cl-source-package sbcl-bubble-operator-upwards))
(define-public ecl-bubble-operator-upwards
(sbcl-package->ecl-package sbcl-bubble-operator-upwards))
(define-public sbcl-map-bind
(let ((commit "532d55d93540c632e22b2cd264b5daa5f9d3d900")
(revision "0"))

View File

@ -988,7 +988,7 @@ the HTML documentation of TXR.")
(define-public txr
(package
(name "txr")
(version "281")
(version "282")
(source
(origin
(method git-fetch)
@ -997,7 +997,7 @@ the HTML documentation of TXR.")
(commit (string-append "txr-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "18sncprahl41hcy9l6mc4vwlaiamkwrs805974g4vci4waccb37k"))))
(base32 "1hzni1v9qlh1vy8spz8prink7v9hp2bin15vnyfha2ax306w6dq5"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@ -1359,7 +1359,7 @@ executable Common Lisp image. It is similar to cl-launch and hu.dwim.build.")
(define-public eisl
(package
(name "eisl")
(version "2.62")
(version "2.63")
(source
(origin
(method git-fetch)
@ -1368,7 +1368,7 @@ executable Common Lisp image. It is similar to cl-launch and hu.dwim.build.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0yqzj64h9z4dlf2jz5chy6l6lggd4scgsd06crvfi9h1j1cxjvgi"))))
(base32 "01fwffk71c1cvq7pf50xwpl2a32rbghcymllg67wvm07yfw3gi0q"))))
(build-system gnu-build-system)
(inputs
(list bash-minimal freeglut gdbm libiconv ncurses tcl tk))

View File

@ -3,7 +3,7 @@
;;; Copyright © 2014 Raimon Grau <raimonster@gmail.com>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016, 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2020-2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 doncatnip <gnopap@gmail.com>
;;; Copyright © 2016, 2017, 2019 Clément Lassieur <clement@lassieur.org>
@ -61,7 +61,8 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages vim)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
#:use-module (gnu packages xorg)
#:use-module (srfi srfi-1))
(define-public lua
(package
@ -177,7 +178,8 @@ for configuration, scripting, and rapid prototyping.")
(synopsis "Just in time compiler for Lua programming language version 5.1")
;; On powerpc64le-linux, the build fails with an error: "No support for
;; PowerPC 64 bit mode (yet)". See: https://issues.guix.gnu.org/49220
(supported-systems (delete "powerpc64le-linux" %supported-systems))
(supported-systems (fold delete %supported-systems
(list "powerpc64le-linux" "riscv64-linux")))
(description
"LuaJIT is a Just-In-Time Compiler (JIT) for the Lua
programming language. Lua is a powerful, dynamic and light-weight programming

View File

@ -295,19 +295,36 @@ training, HMM clustering, HMM mixtures.")
(define-public guile-aiscm
(package
(name "guile-aiscm")
(version "0.23.1")
(version "0.24.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/wedesoft/aiscm")
(commit "c78b91edb7c17c6fbf3b294452f44e91d75e3c67")))
(commit "2e16e38391bf1638f1dd9a1cf4b25a25f6626078")))
(file-name (git-file-name name version))
(sha256
(base32
"09rdbcr8dinzijyx9h940ann91yjlbg0fangx365llhvy354n840"))))
"1gwqpzl6irpaszkpxaf5wliwq19280632hlgxs3ikjkfg8mkqql0"))))
(build-system gnu-build-system)
(arguments
(list
#:configure-flags
#~(list (string-append "OPENCV_CFLAGS=-I" #$(this-package-input "opencv")
"/include/opencv4")
(let ((modules
(list "aruco" "barcode" "bgsegm" "bioinspired"
"calib3d" "ccalib" "core" "datasets" "dnn"
"dnn_objdetect" "dnn_superres" "dpm" "face"
"features2d" "flann" "freetype" "fuzzy" "hdf"
"hfs" "highgui" "img_hash" "imgcodecs" "imgproc"
"intensity_transform" "line_descriptor" "mcc"
"ml" "objdetect" "optflow" "phase_unwrapping"
"photo" "plot" "quality" "rapid" "reg" "rgbd"
"saliency" "shape" "stereo" "stitching"
"structured_light" "superres" "surface_matching"
"text" "tracking" "video" "videoio" "videostab"
"wechat_qrcode" "ximgproc" "xobjdetect" "xphoto")))
(format #false "OPENCV_LIBS=~{-lopencv_~a~^ ~}" modules)))
#:make-flags
#~(list (string-append "GUILE_CACHE=" #$output "/lib/guile/3.0/site-ccache")
(string-append "GUILE_EXT=" #$output "/lib/guile/3.0/extensions")
@ -318,10 +335,23 @@ training, HMM clustering, HMM mixtures.")
(lambda _
(substitute* "doc/Makefile.am"
(("\\$\\(DATE\\)") "1970-01-01"))))
(add-after 'unpack 'find-clearsilver
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "configure.ac"
(("/usr/local/include/ClearSilver")
(string-append (assoc-ref inputs "clearsilver")
"/include/ClearSilver")))
(substitute* "aiscm/Makefile.am"
(("-lneo_utl" m)
(string-append m " -lstreamhtmlparser")))
(setenv "C_INCLUDE_PATH"
(string-append (assoc-ref inputs "clearsilver")
"/include/ClearSilver:"
(or (getenv "C_INCLUDE_PATH") "")))))
(add-after 'unpack 'use-llvm-config
(lambda _
(substitute* "m4/ax_llvmc.m4"
(("llvm-config-13") "llvm-config")
(("llvm-config-11") "llvm-config")
;; For some reason this library is not on the link list.
(("(LLVM_LIBS=\"\\$\\(\\$ac_llvm_config_path --libs \\$1\\))\"" _ m)
(string-append m " -lLLVMMCJIT\"")))
@ -329,10 +359,17 @@ training, HMM clustering, HMM mixtures.")
;; Because of this message:
;; symbol lookup error: ./.libs/libguile-aiscm-core.so: undefined symbol: LLVMInitializeX86TargetInfo
;; This probably needs to differ when building on architectures
;; other than x86_64p
;; other than x86_64.
(substitute* "aiscm/Makefile.am"
(("LLVM_LIBS\\)") "LLVM_LIBS) \
-lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMX86Desc -lLLVMX86Info"))))
;; This test fails because our version of tensorflow is too old
;; to provide tf-string-length.
(add-after 'unpack 'disable-broken-test
(lambda _
(substitute* "tests/test_tensorflow.scm"
(("\\(test-eqv \"determine string length" m)
(string-append "#;" m)))))
;; Use Clang instead of GCC.
(add-before 'configure 'prepare-build-environment
(lambda _
@ -341,10 +378,12 @@ training, HMM clustering, HMM mixtures.")
(setenv "CC" "clang")
(setenv "CXX" "clang++"))))))
(inputs
(list ffmpeg
(list clearsilver
ffmpeg-4
freeglut
guile-3.0
imagemagick
libgc
libjpeg-turbo
libomp
libxi
@ -354,12 +393,15 @@ training, HMM clustering, HMM mixtures.")
libxv
mesa
mjpegtools
opencv
pandoc
pulseaudio))
pulseaudio
tensorflow))
(native-inputs
(list clang-13
llvm-13
(list clang-11
llvm-11
pkg-config
protobuf-c
autoconf
automake
gettext-minimal
@ -372,68 +414,7 @@ Performance is achieved by using the LLVM JIT compiler.")
(license license:gpl3+)))
(define-public guile-aiscm-next
(let ((commit "b17ed538c303badc419a7c358d91f266d2a8c354")
(revision "1"))
(package
(inherit guile-aiscm)
(name "guile-aiscm-next")
(version (git-version "0.23.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/wedesoft/aiscm")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0px7r7lfskbp1prdrfrcvrsc4wjrk3ahkigsw4pqvny6zs7jnvc0"))))
(arguments
(substitute-keyword-arguments (package-arguments guile-aiscm)
((#:configure-flags flags '())
#~(list (string-append "OPENCV_CFLAGS=-I" #$(this-package-input "opencv")
"/include/opencv4")
(let ((modules
(list "aruco" "barcode" "bgsegm" "bioinspired"
"calib3d" "ccalib" "core" "datasets" "dnn"
"dnn_objdetect" "dnn_superres" "dpm" "face"
"features2d" "flann" "freetype" "fuzzy" "hdf"
"hfs" "highgui" "img_hash" "imgcodecs" "imgproc"
"intensity_transform" "line_descriptor" "mcc"
"ml" "objdetect" "optflow" "phase_unwrapping"
"photo" "plot" "quality" "rapid" "reg" "rgbd"
"saliency" "shape" "stereo" "stitching"
"structured_light" "superres" "surface_matching"
"text" "tracking" "video" "videoio" "videostab"
"wechat_qrcode" "ximgproc" "xobjdetect" "xphoto")))
(format #false "OPENCV_LIBS=~{-lopencv_~a~^ ~}" modules))))
((#:phases phases '%standard-phases)
`(modify-phases ,phases
(add-after 'unpack 'find-clearsilver
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "configure.ac"
(("/usr/local/include/ClearSilver")
(string-append (assoc-ref inputs "clearsilver")
"/include/ClearSilver")))
(substitute* "aiscm/Makefile.am"
(("-lneo_utl" m)
(string-append m " -lstreamhtmlparser")))
(setenv "C_INCLUDE_PATH"
(string-append (assoc-ref inputs "clearsilver")
"/include/ClearSilver:"
(or (getenv "C_INCLUDE_PATH") "")))))
;; This test fails because our version of tensorflow is too old
;; to provide tf-string-length.
(add-after 'unpack 'disable-broken-test
(lambda _
(substitute* "tests/test_tensorflow.scm"
(("\\(test-eqv \"determine string length" m)
(string-append "#;" m)))))))))
(inputs
(modify-inputs (package-inputs guile-aiscm)
(append clearsilver opencv tensorflow libgc)))
(native-inputs
(modify-inputs (package-native-inputs guile-aiscm)
(append protobuf-c))))))
(deprecated-package "guile-aiscm-next" guile-aiscm))
(define-public mcl
(package
@ -3165,7 +3146,7 @@ of Hidden Markov Models.")
(define-public liblantern
(package
(name "liblantern")
(version "0.8.0")
(version "0.8.1")
(source
(origin
(method git-fetch)
@ -3174,48 +3155,53 @@ of Hidden Markov Models.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1xkqyj1clj1r70yrp5qpbpyf0xmh9c128005idshi7vk883wfp77"))))
(base32 "1q57jsqzv9b70svr6whf04yd08np3x15qq1zm06fbl0sqf0kfn7p"))))
(build-system cmake-build-system)
(arguments
(list
#:tests? #false ;no test target
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _ (chdir "lantern")))
(add-after 'chdir 'do-not-download-binaries
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "CMakeLists.txt"
(("find_package\\(Torch.*") "set(TORCH_CXX_FLAGS \"-ltorch\")\n")
(("retrieve_lib\\(.*") ""))
(setenv "LIBRARY_PATH"
(string-append
(search-input-directory
inputs "/lib/python3.9/site-packages/torch/lib")
":" (or (getenv "LIBRARY_PATH") "")))
(setenv "CPLUS_INCLUDE_PATH"
(string-append
(search-input-directory
inputs "lib/python3.9/site-packages/torch/include/torch/csrc/api/include/")
":"
(search-input-directory
inputs "lib/python3.9/site-packages/torch/include/")
":"
(or (getenv "CPLUS_INCLUDE_PATH") "")))
(setenv "C_INCLUDE_PATH"
(string-append
(search-input-directory
inputs "lib/python3.9/site-packages/torch/include/")
":"
(or (getenv "C_INCLUDE_PATH") "")))))
(replace 'install
(lambda _
(install-file
"../build/liblantern.so"
(string-append #$output "/lib"))
(copy-recursively
"../lantern/include"
(string-append #$output "/include")))))))
(let ((python-version (version-major+minor (package-version python))))
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _ (chdir "lantern")))
(add-after 'chdir 'do-not-download-binaries
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "CMakeLists.txt"
(("find_package\\(Torch.*") "set(TORCH_CXX_FLAGS \"-ltorch\")\n")
(("retrieve_lib\\(.*") ""))
(let ((site-packages (string-append "/lib/python"
#$python-version
"/site-packages")))
(setenv "LIBRARY_PATH"
(string-append
(search-input-directory
inputs (string-append site-packages "/torch/lib"))
":" (or (getenv "LIBRARY_PATH") "")))
(setenv "CPLUS_INCLUDE_PATH"
(string-append
(search-input-directory
inputs (string-append
site-packages "/torch/include/torch/csrc/api/include/"))
":"
(search-input-directory
inputs (string-append site-packages "/torch/include/"))
":"
(or (getenv "CPLUS_INCLUDE_PATH") "")))
(setenv "C_INCLUDE_PATH"
(string-append
(search-input-directory
inputs (string-append site-packages "/torch/include/"))
":"
(or (getenv "C_INCLUDE_PATH") ""))))))
(replace 'install
(lambda _
(install-file
"../build/liblantern.so"
(string-append #$output "/lib"))
(copy-recursively
"../lantern/include"
(string-append #$output "/include"))))))))
(inputs (list python-pytorch-for-r-torch))
(home-page "https://github.com/mlverse/torch/")
(synopsis "C API to libtorch")

View File

@ -7590,6 +7590,7 @@ of C, Java, or Ada programs.")
ocaml-graph
ocaml-yojson
ocaml-zarith
ocaml-lablgtk3-sourceview3
lablgtk3
why3))
(native-search-paths

View File

@ -27,6 +27,7 @@
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system ant)
#:use-module (guix gexp)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
@ -1780,31 +1781,33 @@ artifactId=maven-core" ,(package-version maven-core-bootstrap))))
(arguments
`(#:jar-name "maven-slf4j-provider.jar"
#:source-dir "maven-slf4j-provider/src/main/java"
#:tests? #f; no tests
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'unpack-slf4j
(lambda* (#:key inputs #:allow-other-keys)
(mkdir-p "generated-sources")
(with-directory-excursion "generated-sources"
(invoke "tar" "xf" (assoc-ref inputs "java-slf4j-simple-source"))
(for-each delete-file (find-files "." "StaticLoggerBinder.java")))
(for-each
(lambda (simple)
(for-each
(lambda (java)
(copy-file java
(string-append
"maven-slf4j-provider/src/main/java/org/slf4j/impl/"
(basename java))))
(find-files (string-append simple "/src/main/java/") "\\.java$")))
(find-files "generated-sources" "slf4j-simple" #:directories? #t))))
(replace 'install
(install-from-pom "maven-slf4j-provider/pom.xml")))))
(inputs
`(("java-slf4j-api" ,java-slf4j-api)
("java-slf4j-simple-source" ,(package-source java-slf4j-simple))
("maven-shared-utils" ,maven-shared-utils)))
#:tests? #f ;no tests
#:phases (modify-phases %standard-phases
(add-after 'unpack 'unpack-slf4j
(lambda* (#:key inputs #:allow-other-keys)
(mkdir-p "generated-sources")
(copy-recursively (assoc-ref inputs
"java-slf4j-simple-source")
"generated-sources")
(with-directory-excursion "generated-sources"
(for-each delete-file
(find-files "." "StaticLoggerBinder.java")))
(for-each (lambda (simple)
(for-each (lambda (java)
(copy-file java
(string-append
"maven-slf4j-provider/src/main/java/org/slf4j/impl/"
(basename java))))
(find-files (string-append simple
"/src/main/java/")
"\\.java$")))
(find-files "generated-sources" "slf4j-simple"
#:directories? #t))))
(replace 'install
(install-from-pom "maven-slf4j-provider/pom.xml")))))
(inputs `(("java-slf4j-api" ,java-slf4j-api)
("java-slf4j-simple-source" ,(package-source java-slf4j-simple))
("maven-shared-utils" ,maven-shared-utils)))
(native-inputs (list unzip))))
(define-public maven-embedder
@ -3012,6 +3015,50 @@ Maven project dependencies.")
maven-plugin-annotations
maven-enforcer-parent-pom))))
(define-public maven-sisu-plugin
(package
(name "maven-sisu-plugin")
(version "0.3.5")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/eclipse/sisu.mojos/")
(commit (string-append "releases/" version))))
(file-name (git-file-name name version))
(sha256
(base32
"00hb7v6hz8jg0mgkj3cl0nmqz49za4k2a0rbjr4gdhy2m7f34sq3"))))
(build-system ant-build-system)
(arguments
(list #:jar-name "maven-sisu-plugin.jar"
#:source-dir "src"
#:tests? #f ;no tests
#:phases #~(modify-phases %standard-phases
(add-before 'build 'generate-plugin.xml
(generate-plugin.xml "pom.xml" "sisu"
"src/main/java/org/eclipse/sisu/mojos/"
(list (list "IndexMojo.java")
(list "MainIndexMojo.java")
(list "TestIndexMojo.java"))))
(replace 'install
(install-from-pom "pom.xml")))))
(propagated-inputs (list java-sonatype-oss-parent-pom-9))
(inputs (list maven-artifact
maven-plugin-api
maven-plugin-annotations
maven-core
maven-common-artifact-filters
java-slf4j-nop
java-eclipse-sisu-inject
java-plexus-utils
java-plexus-build-api
java-slf4j-api))
(home-page "https://www.eclipse.org/sisu/")
(synopsis "Maven plugin that generates annotation indexes for Sisu")
(description "Maven plugin that generates annotation indexes for Sisu to
avoid classpath scanning at runtime.")
(license license:epl1.0)))
(define-public maven-artifact-transfer
(package
(name "maven-artifact-transfer")

View File

@ -3196,7 +3196,7 @@ designed for experienced users.")
(define-public matterbridge
(package
(name "matterbridge")
(version "1.24.0")
(version "1.25.2")
(source (origin
(method git-fetch)
(uri (git-reference
@ -3205,7 +3205,7 @@ designed for experienced users.")
(file-name (git-file-name name version))
(sha256
(base32
"0cd70x9685162c0imdici1ipl9lziq700wzyb5bsg610wfak3ms7"))))
"0csvxsgl62fjkrmk0wy64h2qaiy16m0wh6pqfbhz0kfacq16p9an"))))
;; Using the go-build-system results in the same error message
;; than in the bug 1551[1]. So we fix it by running go build
;; manually in the git repository as-is as this is the solution

View File

@ -12,6 +12,8 @@
;;; Copyright © 2021 Raphaël Mélotte <raphael.melotte@mind.be>
;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2022 ( <paren@disroot.org>
;;; Copyright © 2022 Mathieu Laparie <mlaparie@disr.it>
;;;
;;; This file is part of GNU Guix.
;;;
@ -50,6 +52,7 @@
#:use-module (gnu packages django)
#:use-module (gnu packages gd)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gnome) ;libnotify
#:use-module (gnu packages image)
#:use-module (gnu packages mail)
#:use-module (gnu packages ncurses)
@ -758,3 +761,46 @@ display resumes.
(description "StatsD is a friendly front-end to Graphite. This package
provides a simple Python client for the StatsD daemon.")
(license license:expat)))
(define-public batsignal
(package
(name "batsignal")
(version "1.6.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/electrickite/batsignal")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0b1j6mljnqgxwr3id3r9shzhsjk5r0qdh9cxkvy1dm4kzbyc4dxq"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags
#~(list (string-append "PREFIX=" #$output)
(string-append "CC=" #$(cc-for-target)))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-cross-compile
(lambda _
(substitute* "Makefile"
(("pkg-config")
#$(pkg-config-for-target)))))
(delete 'configure)
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "./batsignal" "-v")))))))
(inputs (list libnotify))
(native-inputs (list pkg-config))
(home-page "https://github.com/electrickite/batsignal")
(synopsis "Power monitoring tool")
(description
"This package provides a daemon that monitors device power levels,
notifying the user and optionally running a command when it reaches
user-configured power thresholds. This can be used to force powering off a
laptop when the battery gets below critical levels, instead of damaging the
battery.")
(license license:isc)))

View File

@ -867,14 +867,14 @@ systems with no further dependencies.")
(define-public blueman
(package
(name "blueman")
(version "2.2.3")
(version "2.3.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/blueman-project/blueman/releases"
"/download/" version "/blueman-" version ".tar.xz"))
(sha256
(base32 "1s86w4mklzr8hvbgl3nkg8jycl6grww533dhzw8gdn5glqfpkpbf"))))
(base32 "1bjh0cx9j2akygiqyxm7g0q74jyx9hpgf186gv3m31vks5zpvkw4"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:configure-flags (list "--enable-polkit"
@ -942,30 +942,30 @@ systems with no further dependencies.")
(map (lambda (prog) (string-append libexec prog))
'("mechanism" "rfcomm-watcher"))))))))))
(native-inputs
`(("cython" ,python-cython)
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("gtk+:bin" ,gtk+ "bin")
("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(list python-cython
`(,glib "bin")
gobject-introspection
`(,gtk+ "bin")
intltool
pkg-config))
(inputs
`(("bluez" ,bluez)
("dbus" ,dbus)
("librsvg" ,librsvg)
("glib" ,glib)
("gtk+" ,gtk+)
("iproute2" ,iproute)
("iptables" ,iptables)
("net-tools" ,net-tools)
("pango" ,pango)
("polkit" ,polkit)
("ppp" ,ppp)
("pulseaudio" ,pulseaudio)
("pycairo" ,python-pycairo)
("pygobject" ,python-pygobject)
("python" ,python-wrapper)
("libappindicator" ,libappindicator)
("libnm" ,network-manager)))
(list bluez
dbus
librsvg
glib
gtk+
iproute
iptables
net-tools
pango
polkit
ppp
pulseaudio
python-pycairo
python-pygobject
python-wrapper
libappindicator
network-manager))
(synopsis "GTK+ Bluetooth manager")
(description "Blueman is a Bluetooth management utility using the Bluez
D-Bus backend. It is designed to be easy to use for most common Bluetooth
@ -2747,6 +2747,10 @@ procedure calls (RPCs).")
"--disable-static" ; XXX still installs libopenvswitchavx512.a
"--localstatedir=/var"
"--with-dbdir=/var/lib/openvswitch")
;; Tests fail in different ways, on different x86_64-linux hardware:
;; 25. bfd.at:268: 25. bfd - bfd decay (bfd.at:268): FAILED (bfd.at:397)
;; 1040. dpif-netdev - meters (dpif-netdev.at:269): FAILED (dpif-netdev.at:376)
#:tests? #f
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'use-absolute-/bin/sh

View File

@ -26,6 +26,7 @@
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -1078,54 +1079,52 @@ the OCaml core distribution.")
(license license:lgpl2.1+))); with linking exception
(define-public emacs-tuareg
;; Last upstream release on Sept., 14th, 2018, since then "Package cl
;; deprecated" or 'lexical-binding' and others had been fixed.
(let ((commit "ccde45bbc292123ec20617f1af7f7e19f7481545")
(revision "0"))
(package
(name "emacs-tuareg")
(version (git-version "2.2.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ocaml/tuareg")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1yxv4bnqarilnpg5j7wywall8170hwvm0q4xx06yqjgcn8pq1lac"))))
(build-system gnu-build-system)
(native-inputs
`(("emacs" ,emacs-minimal)
("opam" ,opam)))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-git-checkout-writable
(lambda _
(for-each make-file-writable (find-files "."))
#t))
(delete 'configure)
(add-before 'install 'fix-install-path
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "Makefile"
(("/emacs/site-lisp")
(string-append (assoc-ref %outputs "out")
"/share/emacs/site-lisp/")))
#t))
(add-after 'install 'post-install
(lambda* (#:key outputs #:allow-other-keys)
(symlink "tuareg.el"
(string-append (assoc-ref outputs "out")
"/share/emacs/site-lisp/"
"tuareg-autoloads.el"))
#t)))))
(home-page "https://github.com/ocaml/tuareg")
(synopsis "OCaml programming mode, REPL, debugger for Emacs")
(description "Tuareg helps editing OCaml code, to highlight important
(package
(name "emacs-tuareg")
(version "3.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ocaml/tuareg")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "115vm0hq4xkwfd3w0j8xqhkdgcirlxpnwzwxv02c27583hj056is"))))
(build-system gnu-build-system)
(arguments
(list
#:imported-modules `(,@%gnu-build-system-modules
(guix build emacs-build-system)
(guix build emacs-utils))
#:modules '((guix build gnu-build-system)
((guix build emacs-build-system) #:prefix emacs:)
(guix build emacs-utils)
(guix build utils))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'make-git-checkout-writable
(lambda _
(for-each make-file-writable (find-files "."))))
(delete 'configure)
(add-before 'install 'fix-install-path
(lambda _
(substitute* "Makefile"
(("/emacs/site-lisp")
(emacs:elpa-directory #$output)))))
(add-after 'install 'post-install
(lambda _
(symlink "tuareg.el"
(string-append (emacs:elpa-directory #$output)
"/tuareg-autoloads.el")))))))
(native-inputs
(list emacs-minimal opam))
(home-page "https://github.com/ocaml/tuareg")
(synopsis "OCaml programming mode, REPL, debugger for Emacs")
(description "Tuareg helps editing OCaml code, to highlight important
parts of the code, to run an OCaml REPL, and to run the OCaml debugger within
Emacs.")
(license license:gpl2+))))
(license license:gpl2+)))
(define-public ocaml-menhir
(package
@ -1954,7 +1953,7 @@ ocaml-migrate-parsetree")
(define-public ocaml-linenoise
(package
(name "ocaml-linenoise")
(version "1.3.1")
(version "1.4.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1963,7 +1962,7 @@ ocaml-migrate-parsetree")
(file-name (git-file-name name version))
(sha256
(base32
"0s98695skz1wvrak0rdlh80w3cv6piic1dxqpn9rv1yymbklafg4"))))
"1gk11pflal08kg2dz1b5zrlpnhbxpg2rwf8cknw3vzmq6gsmk2kc"))))
(build-system dune-build-system)
(arguments
;; No tests
@ -2701,7 +2700,7 @@ module Unix.")
(define-public ocaml-lwt-log
(package
(name "ocaml-lwt-log")
(version "1.1.1")
(version "1.1.2")
(source (origin
(method git-fetch)
(uri (git-reference
@ -2710,7 +2709,7 @@ module Unix.")
(file-name (git-file-name name version))
(sha256
(base32
"1n12i1rmn9cjn6p8yr6qn5dwbrwvym7ckr7bla04a1xnq8qlcyj7"))))
"0mbv5l9gj09jd1c4lr2axcl4v043ipmhjd9xrk27l4hylzfc6d1q"))))
(build-system dune-build-system)
(arguments
`(#:tests? #f)); require lwt_ppx
@ -3068,7 +3067,7 @@ string values and to directly encode characters in OCaml Buffer.t values.")
(define-public ocaml-uunf
(package
(name "ocaml-uunf")
(version "14.0.0")
(version "15.0.0")
(source
(origin
(method url-fetch)
@ -3076,13 +3075,18 @@ string values and to directly encode characters in OCaml Buffer.t values.")
version".tbz"))
(sha256
(base32
"17wv0nm3vvwcbzb1b09akw8jblmigyhbfmh1sy9lkb5756ni94a2"))))
"1s5svvdqfbzw16rf1h0zm9n92xfdr0qciprd7lcjza8z1hy6pyh7"))))
(build-system ocaml-build-system)
(arguments
`(#:build-flags (list "build" "--tests" "true")
#:phases
(modify-phases %standard-phases
(delete 'configure)
;; reported and fixed upstream, will be available in next version.
(add-before 'build 'fix-test
(lambda _
(substitute* "test/test.ml"
(("test/NormalizationTest.txt") "-"))))
(add-before 'check 'check-data
(lambda* (#:key inputs #:allow-other-keys)
(copy-file (assoc-ref inputs "NormalizationTest.txt")
@ -3101,7 +3105,7 @@ string values and to directly encode characters in OCaml Buffer.t values.")
"/ucd/NormalizationTest.txt"))
(file-name (string-append "NormalizationTest-" version ".txt"))
(sha256
(base32 "0c93pqdkksf7b7zw8y2w0h9i5kkrsdjmh2cr5clrrhp6mg10rcvw"))))))
(base32 "09pkawfqpgy2xnv2nkkgmxv53rx4anprg65crbbcm02a2p6ci6pv"))))))
(propagated-inputs (list ocaml-uutf))
(home-page "https://erratique.ch/software/uunf")
(synopsis "Unicode text normalization for OCaml")
@ -4468,6 +4472,35 @@ sensitive completion, colors, and more.")
("ocaml-zed" ,ocaml-zed)))
(properties '()))))
(define-public ocaml-ansiterminal
(package
(name "ocaml-ansiterminal")
(version "0.8.5")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Chris00/ANSITerminal")
(commit version)
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
(base32
"052qnc23vmxp90yympjz9q6lhqw98gs1yvb3r15kcbi1j678l51h"))))
(build-system dune-build-system)
(arguments
`(#:test-target "tests"))
(home-page "https://github.com/Chris00/ANSITerminal")
(synopsis
"Basic control of ANSI compliant terminals and the windows shell")
(description
"ANSITerminal is a module allowing to use the colors and cursor
movements on ANSI terminals.")
;; Variant of the LGPL3+ which permits
;; static and dynamic linking when producing binary files.
;; In other words, it allows one to link to the library
;; when compiling nonfree software.
(license (license:non-copyleft "LICENSE.md"))))
(define-public ocaml-ptmap
(package
(name "ocaml-ptmap")
@ -7998,7 +8031,7 @@ support for Mparser.")))
(define-public lablgtk3
(package
(name "lablgtk")
(version "3.1.1")
(version "3.1.2")
(source (origin
(method git-fetch)
(uri (git-reference
@ -8007,10 +8040,11 @@ support for Mparser.")))
(file-name (git-file-name name version))
(sha256
(base32
"11qfc39cmwfwfpwmjh6wh98zwdv6p73bv8hqwcsss869vs1r7gmn"))))
"0b17w9qb1f02h3313cm62mrqlhwxficppzm72n7sf8mmwrylxbm7"))))
(build-system dune-build-system)
(arguments
`(#:test-target "."
`(#:package "lablgtk3"
#:test-target "."
#:phases
(modify-phases %standard-phases
(add-before 'build 'make-writable
@ -8026,7 +8060,7 @@ support for Mparser.")))
(propagated-inputs
(list ocaml-cairo2))
(inputs
(list camlp5 gtk+ gtksourceview-3 gtkspell3))
(list camlp5 gtk+))
(native-inputs
(list pkg-config))
(home-page "https://github.com/garrigue/lablgtk")
@ -8040,6 +8074,19 @@ generate OCaml code from .glade files), libpanel, librsvg and quartz.")
;; Version 2 only, with linking exception.
(license license:lgpl2.0)))
(define-public ocaml-lablgtk3-sourceview3
(package
(inherit lablgtk3)
(name "ocaml-lablgtk3-sourceview3")
(propagated-inputs (list lablgtk3))
(native-inputs (list gtksourceview-3 pkg-config))
(arguments
`(#:package "lablgtk3-sourceview3"
#:test-target "."))
(synopsis "OCaml interface to GTK+ gtksourceview library")
(description "This package provides the lablgtk interface to the
GTK+ gtksourceview library.")))
(define-public ocaml-reactivedata
(package
(name "ocaml-reactivedata")
@ -8071,7 +8118,7 @@ client chooses the concrete timeline.")
(define-public ocaml-uucd
(package
(name "ocaml-uucd")
(version "14.0.0")
(version "15.0.0")
(source
(origin
(method url-fetch)
@ -8079,7 +8126,7 @@ client chooses the concrete timeline.")
"uucd-" version ".tbz"))
(sha256
(base32
"0fc737v5gj3339jx4x9xr096lxrpwvp6vaiylhavcvsglcwbgm30"))))
"1g26237yqmxr7sd1n9fg65qm5mxz66ybk7hr336zfyyzl25h6jqf"))))
(build-system ocaml-build-system)
(arguments
'(#:build-flags '("build" "--tests" "true")
@ -8101,7 +8148,7 @@ representations can be extracted.")
(define-public ocaml-uucp
(package
(name "ocaml-uucp")
(version "14.0.0")
(version "15.0.0")
(source
(origin
(method url-fetch)
@ -8109,7 +8156,7 @@ representations can be extracted.")
"uucp-" version ".tbz"))
(sha256
(base32
"1yx9nih3d9prb9zizq8fzmmqylf24a6yifhf81h33znrj5xn1mpj"))))
"0c2k9gkg442l7hnc8rn1vqzn6qh68w9fx7h3nj03n2x90ps98ixc"))))
(build-system ocaml-build-system)
(arguments
'(#:build-flags '("build" "--tests" "true")

View File

@ -0,0 +1,34 @@
https://git.kernel.org/pub/scm/network/connman/connman.git/patch/?id=d1a5ede5d255bde8ef707f8441b997563b9312bd
From d1a5ede5d255bde8ef707f8441b997563b9312bd Mon Sep 17 00:00:00 2001
From: Nathan Crandall <ncrandall@tesla.com>
Date: Tue, 12 Jul 2022 08:56:34 +0200
Subject: gweb: Fix OOB write in received_data()
There is a mismatch of handling binary vs. C-string data with memchr
and strlen, resulting in pos, count, and bytes_read to become out of
sync and result in a heap overflow. Instead, do not treat the buffer
as an ASCII C-string. We calculate the count based on the return value
of memchr, instead of strlen.
Fixes: CVE-2022-32292
---
gweb/gweb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gweb/gweb.c b/gweb/gweb.c
index 12fcb1d8..13c6c5f2 100644
--- a/gweb/gweb.c
+++ b/gweb/gweb.c
@@ -918,7 +918,7 @@ static gboolean received_data(GIOChannel *channel, GIOCondition cond,
}
*pos = '\0';
- count = strlen((char *) ptr);
+ count = pos - ptr;
if (count > 0 && ptr[count - 1] == '\r') {
ptr[--count] = '\0';
bytes_read--;
--
cgit

View File

@ -0,0 +1,140 @@
https://git.kernel.org/pub/scm/network/connman/connman.git/patch/?id=72343929836de80727a27d6744c869dff045757c
From 72343929836de80727a27d6744c869dff045757c Mon Sep 17 00:00:00 2001
From: Daniel Wagner <wagi@monom.org>
Date: Tue, 5 Jul 2022 08:32:12 +0200
Subject: wispr: Add reference counter to portal context
Track the connman_wispr_portal_context live time via a
refcounter. This only adds the infrastructure to do proper reference
counting.
Fixes: CVE-2022-32293
---
src/wispr.c | 52 ++++++++++++++++++++++++++++++++++++++++++----------
1 file changed, 42 insertions(+), 10 deletions(-)
diff --git a/src/wispr.c b/src/wispr.c
index a07896ca..bde7e63b 100644
--- a/src/wispr.c
+++ b/src/wispr.c
@@ -56,6 +56,7 @@ struct wispr_route {
};
struct connman_wispr_portal_context {
+ int refcount;
struct connman_service *service;
enum connman_ipconfig_type type;
struct connman_wispr_portal *wispr_portal;
@@ -97,6 +98,11 @@ static char *online_check_ipv4_url = NULL;
static char *online_check_ipv6_url = NULL;
static bool enable_online_to_ready_transition = false;
+#define wispr_portal_context_ref(wp_context) \
+ wispr_portal_context_ref_debug(wp_context, __FILE__, __LINE__, __func__)
+#define wispr_portal_context_unref(wp_context) \
+ wispr_portal_context_unref_debug(wp_context, __FILE__, __LINE__, __func__)
+
static void connman_wispr_message_init(struct connman_wispr_message *msg)
{
DBG("");
@@ -162,9 +168,6 @@ static void free_connman_wispr_portal_context(
{
DBG("context %p", wp_context);
- if (!wp_context)
- return;
-
if (wp_context->wispr_portal) {
if (wp_context->wispr_portal->ipv4_context == wp_context)
wp_context->wispr_portal->ipv4_context = NULL;
@@ -201,9 +204,38 @@ static void free_connman_wispr_portal_context(
g_free(wp_context);
}
+static struct connman_wispr_portal_context *
+wispr_portal_context_ref_debug(struct connman_wispr_portal_context *wp_context,
+ const char *file, int line, const char *caller)
+{
+ DBG("%p ref %d by %s:%d:%s()", wp_context,
+ wp_context->refcount + 1, file, line, caller);
+
+ __sync_fetch_and_add(&wp_context->refcount, 1);
+
+ return wp_context;
+}
+
+static void wispr_portal_context_unref_debug(
+ struct connman_wispr_portal_context *wp_context,
+ const char *file, int line, const char *caller)
+{
+ if (!wp_context)
+ return;
+
+ DBG("%p ref %d by %s:%d:%s()", wp_context,
+ wp_context->refcount - 1, file, line, caller);
+
+ if (__sync_fetch_and_sub(&wp_context->refcount, 1) != 1)
+ return;
+
+ free_connman_wispr_portal_context(wp_context);
+}
+
static struct connman_wispr_portal_context *create_wispr_portal_context(void)
{
- return g_try_new0(struct connman_wispr_portal_context, 1);
+ return wispr_portal_context_ref(
+ g_new0(struct connman_wispr_portal_context, 1));
}
static void free_connman_wispr_portal(gpointer data)
@@ -215,8 +247,8 @@ static void free_connman_wispr_portal(gpointer data)
if (!wispr_portal)
return;
- free_connman_wispr_portal_context(wispr_portal->ipv4_context);
- free_connman_wispr_portal_context(wispr_portal->ipv6_context);
+ wispr_portal_context_unref(wispr_portal->ipv4_context);
+ wispr_portal_context_unref(wispr_portal->ipv6_context);
g_free(wispr_portal);
}
@@ -452,7 +484,7 @@ static void portal_manage_status(GWebResult *result,
connman_info("Client-Timezone: %s", str);
if (!enable_online_to_ready_transition)
- free_connman_wispr_portal_context(wp_context);
+ wispr_portal_context_unref(wp_context);
__connman_service_ipconfig_indicate_state(service,
CONNMAN_SERVICE_STATE_ONLINE, type);
@@ -616,7 +648,7 @@ static void wispr_portal_request_wispr_login(struct connman_service *service,
return;
}
- free_connman_wispr_portal_context(wp_context);
+ wispr_portal_context_unref(wp_context);
return;
}
@@ -952,7 +984,7 @@ static int wispr_portal_detect(struct connman_wispr_portal_context *wp_context)
if (wp_context->token == 0) {
err = -EINVAL;
- free_connman_wispr_portal_context(wp_context);
+ wispr_portal_context_unref(wp_context);
}
} else if (wp_context->timeout == 0) {
wp_context->timeout = g_idle_add(no_proxy_callback, wp_context);
@@ -1001,7 +1033,7 @@ int __connman_wispr_start(struct connman_service *service,
/* If there is already an existing context, we wipe it */
if (wp_context)
- free_connman_wispr_portal_context(wp_context);
+ wispr_portal_context_unref(wp_context);
wp_context = create_wispr_portal_context();
if (!wp_context)
--
cgit

View File

@ -0,0 +1,173 @@
https://git.kernel.org/pub/scm/network/connman/connman.git/patch/?id=416bfaff988882c553c672e5bfc2d4f648d29e8a
From 416bfaff988882c553c672e5bfc2d4f648d29e8a Mon Sep 17 00:00:00 2001
From: Daniel Wagner <wagi@monom.org>
Date: Tue, 5 Jul 2022 09:11:09 +0200
Subject: wispr: Update portal context references
Maintain proper portal context references to avoid UAF.
Fixes: CVE-2022-32293
---
src/wispr.c | 34 ++++++++++++++++++++++------------
1 file changed, 22 insertions(+), 12 deletions(-)
diff --git a/src/wispr.c b/src/wispr.c
index bde7e63b..84bed33f 100644
--- a/src/wispr.c
+++ b/src/wispr.c
@@ -105,8 +105,6 @@ static bool enable_online_to_ready_transition = false;
static void connman_wispr_message_init(struct connman_wispr_message *msg)
{
- DBG("");
-
msg->has_error = false;
msg->current_element = NULL;
@@ -166,8 +164,6 @@ static void free_wispr_routes(struct connman_wispr_portal_context *wp_context)
static void free_connman_wispr_portal_context(
struct connman_wispr_portal_context *wp_context)
{
- DBG("context %p", wp_context);
-
if (wp_context->wispr_portal) {
if (wp_context->wispr_portal->ipv4_context == wp_context)
wp_context->wispr_portal->ipv4_context = NULL;
@@ -483,9 +479,6 @@ static void portal_manage_status(GWebResult *result,
&str))
connman_info("Client-Timezone: %s", str);
- if (!enable_online_to_ready_transition)
- wispr_portal_context_unref(wp_context);
-
__connman_service_ipconfig_indicate_state(service,
CONNMAN_SERVICE_STATE_ONLINE, type);
@@ -546,14 +539,17 @@ static void wispr_portal_request_portal(
{
DBG("");
+ wispr_portal_context_ref(wp_context);
wp_context->request_id = g_web_request_get(wp_context->web,
wp_context->status_url,
wispr_portal_web_result,
wispr_route_request,
wp_context);
- if (wp_context->request_id == 0)
+ if (wp_context->request_id == 0) {
wispr_portal_error(wp_context);
+ wispr_portal_context_unref(wp_context);
+ }
}
static bool wispr_input(const guint8 **data, gsize *length,
@@ -618,13 +614,15 @@ static void wispr_portal_browser_reply_cb(struct connman_service *service,
return;
if (!authentication_done) {
- wispr_portal_error(wp_context);
free_wispr_routes(wp_context);
+ wispr_portal_error(wp_context);
+ wispr_portal_context_unref(wp_context);
return;
}
/* Restarting the test */
__connman_service_wispr_start(service, wp_context->type);
+ wispr_portal_context_unref(wp_context);
}
static void wispr_portal_request_wispr_login(struct connman_service *service,
@@ -700,11 +698,13 @@ static bool wispr_manage_message(GWebResult *result,
wp_context->wispr_result = CONNMAN_WISPR_RESULT_LOGIN;
+ wispr_portal_context_ref(wp_context);
if (__connman_agent_request_login_input(wp_context->service,
wispr_portal_request_wispr_login,
- wp_context) != -EINPROGRESS)
+ wp_context) != -EINPROGRESS) {
wispr_portal_error(wp_context);
- else
+ wispr_portal_context_unref(wp_context);
+ } else
return true;
break;
@@ -753,6 +753,7 @@ static bool wispr_portal_web_result(GWebResult *result, gpointer user_data)
if (length > 0) {
g_web_parser_feed_data(wp_context->wispr_parser,
chunk, length);
+ wispr_portal_context_unref(wp_context);
return true;
}
@@ -770,6 +771,7 @@ static bool wispr_portal_web_result(GWebResult *result, gpointer user_data)
switch (status) {
case 000:
+ wispr_portal_context_ref(wp_context);
__connman_agent_request_browser(wp_context->service,
wispr_portal_browser_reply_cb,
wp_context->status_url, wp_context);
@@ -781,11 +783,14 @@ static bool wispr_portal_web_result(GWebResult *result, gpointer user_data)
if (g_web_result_get_header(result, "X-ConnMan-Status",
&str)) {
portal_manage_status(result, wp_context);
+ wispr_portal_context_unref(wp_context);
return false;
- } else
+ } else {
+ wispr_portal_context_ref(wp_context);
__connman_agent_request_browser(wp_context->service,
wispr_portal_browser_reply_cb,
wp_context->redirect_url, wp_context);
+ }
break;
case 300:
@@ -798,6 +803,7 @@ static bool wispr_portal_web_result(GWebResult *result, gpointer user_data)
!g_web_result_get_header(result, "Location",
&redirect)) {
+ wispr_portal_context_ref(wp_context);
__connman_agent_request_browser(wp_context->service,
wispr_portal_browser_reply_cb,
wp_context->status_url, wp_context);
@@ -808,6 +814,7 @@ static bool wispr_portal_web_result(GWebResult *result, gpointer user_data)
wp_context->redirect_url = g_strdup(redirect);
+ wispr_portal_context_ref(wp_context);
wp_context->request_id = g_web_request_get(wp_context->web,
redirect, wispr_portal_web_result,
wispr_route_request, wp_context);
@@ -820,6 +827,7 @@ static bool wispr_portal_web_result(GWebResult *result, gpointer user_data)
break;
case 505:
+ wispr_portal_context_ref(wp_context);
__connman_agent_request_browser(wp_context->service,
wispr_portal_browser_reply_cb,
wp_context->status_url, wp_context);
@@ -832,6 +840,7 @@ static bool wispr_portal_web_result(GWebResult *result, gpointer user_data)
wp_context->request_id = 0;
done:
wp_context->wispr_msg.message_type = -1;
+ wispr_portal_context_unref(wp_context);
return false;
}
@@ -890,6 +899,7 @@ static void proxy_callback(const char *proxy, void *user_data)
xml_wispr_parser_callback, wp_context);
wispr_portal_request_portal(wp_context);
+ wispr_portal_context_unref(wp_context);
}
static gboolean no_proxy_callback(gpointer user_data)
--
cgit

View File

@ -1,54 +0,0 @@
From 3e1f4da8c0e536c09ffaf3b43fe2eb5dc17cc23e Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date: Thu, 18 Nov 2021 19:46:13 -0300
Subject: [PATCH] flatpak: Adjust to libportal changes
---
build-aux/flatpak/org.gnome.Todo.json | 3 +++
src/plugins/background/gtd-plugin-background.c | 2 +-
src/plugins/background/meson.build | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/build-aux/flatpak/org.gnome.Todo.json b/build-aux/flatpak/org.gnome.Todo.json
index 034e200c..44b83d66 100644
--- a/build-aux/flatpak/org.gnome.Todo.json
+++ b/build-aux/flatpak/org.gnome.Todo.json
@@ -143,6 +143,9 @@
{
"name" : "libportal",
"buildsystem" : "meson",
+ "config-opts" : [
+ "-Dbackends=gtk4"
+ ],
"sources" : [
{
"type" : "git",
diff --git a/src/plugins/background/gtd-plugin-background.c b/src/plugins/background/gtd-plugin-background.c
index cf48786c..f64d07aa 100644
--- a/src/plugins/background/gtd-plugin-background.c
+++ b/src/plugins/background/gtd-plugin-background.c
@@ -28,7 +28,7 @@
#include <gtk/gtk.h>
#include <libportal/portal.h>
-#include <libportal/portal-gtk4.h>
+#include <libportal-gtk4/portal-gtk4.h>
#define AUTOSTART_NOTIFICATION_ID "Gtd::BackgroundPlugin::autostart_notification"
#define AUTOSTART_NOTIFICATION_TIMEOUT 3 /* seconds */
diff --git a/src/plugins/background/meson.build b/src/plugins/background/meson.build
index a671a4f3..59d3635f 100644
--- a/src/plugins/background/meson.build
+++ b/src/plugins/background/meson.build
@@ -1,7 +1,7 @@
plugins_ldflags += ['-Wl,--undefined=gtd_plugin_background_register_types']
plugins_deps += [
- dependency('libportal'),
+ dependency('libportal-gtk4'),
]
plugins_sources += files(
--
GitLab

View File

@ -0,0 +1,32 @@
From 673dc5f525c9d478fc22f8ea0a50d9849a81f6c8 Mon Sep 17 00:00:00 2001
From: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
Date: Fri, 2 Sep 2022 13:32:10 -0400
Subject: [PATCH] conversation: fix crash when block contact
This patch fixes crash that happened when block contact
for not active account.
GitLab: #758
Change-Id: I5347394a67cdffe0d95c9ee03aedf9d2618cec55
---
src/jamidht/jamiaccount.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/daemon/src/jamidht/jamiaccount.cpp b/daemon/src/jamidht/jamiaccount.cpp
index fe15eedb2..9d0a5ee68 100644
--- a/daemon/src/jamidht/jamiaccount.cpp
+++ b/daemon/src/jamidht/jamiaccount.cpp
@@ -1129,7 +1129,9 @@ JamiAccount::loadAccount(const std::string& archive_password,
if (auto convModule = shared->convModule())
convModule->removeContact(uri, banned);
// Remove current connections with contact
- shared->connectionManager_->closeConnectionsWith(uri);
+ if (shared->connectionManager_) {
+ shared->connectionManager_->closeConnectionsWith(uri);
+ }
// Update client.
emitSignal<DRing::ConfigurationSignal::ContactRemoved>(shared->getAccountID(),
uri,
--
2.37.3

View File

@ -1,24 +0,0 @@
This fixes the issue where pressing the ESC key would hide the Jami
GUI on systems lacking a notification tray.
From 47fd4c38ddd8bd350319ce9bb750ca496826e655 Mon Sep 17 00:00:00 2001
From: Sébastien Blin <sebastien.blin@savoirfairelinux.com>
Date: Fri, 29 Jul 2022 21:24:01 -0400
Subject: [PATCH] layoutmanager: fix popFullScreenItem
Change-Id: I79780d4ad570846e6f3c52734dd627bcd0e11327
---
diff --git a/src/app/LayoutManager.qml b/src/app/LayoutManager.qml
index 98516ce..87f13ac 100644
--- a/client-qt/src/app/LayoutManager.qml
+++ b/client-qt/src/app/LayoutManager.qml
@@ -176,7 +176,7 @@
// Only leave fullscreen mode if our window isn't in fullscreen
// mode already.
- if (priv.fullScreenItems.length === 0) {
+ if (priv.fullScreenItems.length === 0 && priv.windowedVisibility !== Window.Hidden) {
// Simply recall the last visibility state.
visibility = priv.windowedVisibility
}

View File

@ -1,19 +0,0 @@
# Retrieved from upstream:
# https://github.com/pjsip/pjproject/commit/742f7dc252ded778a8b677937791c02e2fbc0dde
diff --git a/Makefile b/Makefile
index 31a6d39d4..74e246a44 100644
--- a/Makefile
+++ b/Makefile
@@ -121,9 +121,10 @@ cmp_wav:
install:
mkdir -p $(DESTDIR)$(libdir)/
- cp -af $(APP_LIB_FILES) $(DESTDIR)$(libdir)/
if [ "$(PJ_EXCLUDE_PJSUA2)x" = "x" ] ; then \
- cp -af $(PJ_DIR)/pjsip/lib/libpjsua2-$(LIB_SUFFIX) $(DESTDIR)$(libdir)/; \
+ cp -af $(APP_LIBXX_FILES) $(DESTDIR)$(libdir)/; \
+ else \
+ cp -af $(APP_LIB_FILES) $(DESTDIR)$(libdir)/; \
fi
mkdir -p $(DESTDIR)$(includedir)/
for d in pjlib pjlib-util pjnath pjmedia pjsip; do \

View File

@ -0,0 +1,25 @@
From ff5ed26f21d304e867ab57781878069567deb23d Mon Sep 17 00:00:00 2001
From: Hartmut Goebel <h.goebel@crazy-compilers.com>
Date: Mon, 3 Aug 2020 19:49:58 +0000
Subject: [PATCH] Fix build errors if PREFIX is different from ECM's PREFIX.
See <https://bugs.kde.org/424483> for details
---
KF5PlasmaMacros.cmake | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/KF5PlasmaMacros.cmake b/KF5PlasmaMacros.cmake
index 494b42d56..80b3fd8dd 100644
--- a/KF5PlasmaMacros.cmake
+++ b/KF5PlasmaMacros.cmake
@@ -1,6 +1,5 @@
-find_package(ECM 1.6.0 CONFIG REQUIRED)
-include(${ECM_KDE_MODULE_DIR}/KDEInstallDirs.cmake)
+include(KDEInstallDirs)
set(PLASMA_RELATIVE_DATA_INSTALL_DIR "plasma")
set(PLASMA_DATA_INSTALL_DIR "${KDE_INSTALL_DATADIR}/${PLASMA_RELATIVE_DATA_INSTALL_DIR}")
--
GitLab

View File

@ -0,0 +1,13 @@
Disable the qtest-aarch64/migration-test, which sometimes fail non-deterministically.
See: https://gitlab.com/qemu-project/qemu/-/issues/1230.
--- qemu-7.1.0/tests/qtest/meson.build.old 1969-12-31 19:00:01.000000000 -0500
+++ qemu-7.1.0/tests/qtest/meson.build 2022-09-26 11:11:05.434209797 -0400
@@ -219,7 +219,6 @@
['arm-cpu-features',
'numa-test',
'boot-serial-test',
- 'migration-test',
'bcm2835-dma-test']
qtests_s390x = \

View File

@ -1,7 +1,7 @@
Removes references to bundled libuv.
--- a/src/Makevars 2020-07-31 11:53:30.576484531 +0200
+++ b/src/Makevars 2020-07-31 11:54:19.369863118 +0200
--- a/src/Makevars 2022-09-19 23:37:55.067810741 +0200
+++ b/src/Makevars 2022-09-19 23:39:20.984859770 +0200
@@ -5,7 +5,7 @@
UNAME := $(shell uname)
@ -20,13 +20,12 @@ Removes references to bundled libuv.
# To avoid spurious warnings from `R CMD check --as-cran`, about compiler
# warning flags like -Werror.
@@ -43,49 +43,5 @@
@@ -43,50 +43,4 @@
# PKG_CPPFLAGS += -D_GLIBCXX_ASSERTIONS
-$(SHLIB): libuv/.libs/libuv.a http-parser/http_parser.o sha1/sha1.o base64/base64.o
+$(SHLIB): http-parser/http_parser.o sha1/sha1.o base64/base64.o
-
-# We needed to rename lt~obsolete.m4 because the name causes problems with R
-# CMD check. Here we rename it back.
-libuv/m4/lt~obsolete.m4: libuv/m4/lt_obsolete.m4
@ -59,7 +58,8 @@ Removes references to bundled libuv.
- touch aclocal.m4; \
- touch -r aclocal.m4 configure Makefile.in; \
- else \
- echo "automake found. Running autogen.sh."; \
- echo "automake found. Running autoupdate and autogen.sh."; \
- autoupdate; \
- sh autogen.sh; \
- fi; \
- chmod +x configure; \
@ -71,3 +71,4 @@ Removes references to bundled libuv.
-
-clean:
- $(MAKE) --directory=libuv distclean
+$(SHLIB): http-parser/http_parser.o sha1/sha1.o base64/base64.o

View File

@ -625,7 +625,7 @@ by using the poppler rendering engine.")
(define-public zathura
(package
(name "zathura")
(version "0.4.9")
(version "0.5.1")
(source (origin
(method url-fetch)
(uri
@ -633,20 +633,21 @@ by using the poppler rendering engine.")
version ".tar.xz"))
(sha256
(base32
"0msy7s57mlx0wya99qpia4fpcy40pbj253kmx2y97nb0sqnc8c7w"))))
(native-inputs `(("pkg-config" ,pkg-config)
("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
"1c8vmfpghqlq5kdnq92bzzp2grym3x3kxxxqgs51178s4z7639lq"))))
(native-inputs
(list pkg-config
gettext-minimal
(list glib "bin")
;; For building documentation.
("python-sphinx" ,python-sphinx)
;; For building documentation.
python-sphinx
;; For building icons.
("librsvg" ,(librsvg-for-system))
;; For building icons.
(librsvg-for-system)
;; For tests.
("check" ,check)
("xorg-server" ,xorg-server-for-tests)))
;; For tests.
check
xorg-server-for-tests))
(inputs (list sqlite))
;; Listed in 'Requires.private' of 'zathura.pc'.
(propagated-inputs (list cairo girara))
@ -660,8 +661,7 @@ by using the poppler rendering engine.")
(add-before 'check 'start-xserver
;; Tests require a running X server.
(lambda* (#:key inputs #:allow-other-keys)
(let ((xorg-server (assoc-ref inputs "xorg-server"))
(display ":1"))
(let ((display ":1"))
(setenv "DISPLAY" display)
;; On busy machines, tests may take longer than
@ -670,8 +670,9 @@ by using the poppler rendering engine.")
;; Don't fail due to missing '/etc/machine-id'.
(setenv "DBUS_FATAL_WARNINGS" "0")
(zero? (system (string-append xorg-server "/bin/Xvfb "
display " &")))))))))
(zero? (system (string-append
(search-input-file inputs "/bin/Xvfb")
" " display " &")))))))))
(home-page "https://pwmt.org/projects/zathura/")
(synopsis "Lightweight keyboard-driven PDF viewer")
(description "Zathura is a customizable document viewer. It provides a

View File

@ -7,6 +7,7 @@
;;; Copyright © 2018, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -474,3 +475,25 @@ system, then @code{flit_core} to build the package.")
@dfn{software configuration management} (SCM) metadata instead of declaring
them as the version argument or in a SCM managed file.")
(license license:expat)))
(define-public python-editables
(package
(name "python-editables")
(version "0.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pfmoore/editables")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1gbfkgzmrmbd4ycshm09fr2wd4f1n9gq7s567jgkavhfkn7s2pn1"))))
(build-system python-build-system)
(home-page "https://github.com/pfmoore/editables")
(synopsis "Editable installations")
(description "This library supports the building of wheels which, when
installed, will expose packages in a local directory on @code{sys.path} in
``editable mode''. In other words, changes to the package source will be
reflected in the package visible to Python, without needing a reinstall.")
(license license:expat)))

View File

@ -50,6 +50,7 @@
#:use-module (guix git-download)
#:use-module (guix build-system cargo)
#:use-module (guix build-system python)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages check)
#:use-module (gnu packages crates-io)
@ -394,6 +395,86 @@ general production use. Include this module and use its backends at your own
risk.")
(license license:expat)))
(define-public python-blake3
(package
(name "python-blake3")
(version "0.3.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "blake3" version))
(sha256
(base32 "1p6z6jfk8n1lshz4cp6dgz2i8zmqdxwr8d9m86ypp3m1kp70k5xk"))))
(build-system cargo-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'build-python-module
(lambda _
;; We don't use maturin.
(delete-file "pyproject.toml")
(call-with-output-file "pyproject.toml"
(lambda (port)
(format port "\
[build-system]
build-backend = 'setuptools.build_meta'
requires = ['setuptools']
")))
(call-with-output-file "setup.cfg"
(lambda (port)
(format port "\
[metadata]
name = blake3
version = '~a'
[options]
packages = find:
[options.packages.find]
exclude =
src*
c_impl*
tests*
Cargo.toml
" #$version)))
;; ZIP does not support timestamps before 1980.
(setenv "SOURCE_DATE_EPOCH" "315532800")
(invoke "python" "-m" "build" "--wheel" "--no-isolation" ".")))
(add-after 'build-python-module 'install-python-module
(lambda* (#:key outputs #:allow-other-keys)
(let ((whl (car (find-files "dist" "\\.whl$"))))
(invoke "pip" "--no-cache-dir" "--no-input"
"install" "--no-deps" "--prefix" #$output whl))))
(add-after 'install-python-module 'install-python-library
(lambda _
(let ((site (string-append #$output "/lib/python"
#$(version-major+minor
(package-version python))
"/site-packages")))
(mkdir-p site)
(copy-file "target/release/libblake3.so"
(string-append site "/blake3.so"))))))
#:cargo-inputs
`(("rust-blake3" ,rust-blake3-1)
("rust-hex" ,rust-hex-0.4)
("rust-parking-lot" ,rust-parking-lot-0.11)
("rust-pyo3" ,rust-pyo3-0.15)
("rust-rayon" ,rust-rayon-1))))
(inputs (list rust-blake3-1))
(native-inputs
(list python-wrapper
python-pypa-build
python-wheel))
(home-page "https://github.com/oconnor663/blake3-py")
(synopsis "Python bindings for the Rust blake3 crate")
(description "This package provides Python bindings for the Rust crate of
blake3, a cryptographic hash function.")
;; This work is released into the public domain with CC0
;; 1.0. Alternatively, it is licensed under the Apache License 2.0.
(license (list license:asl2.0 license:cc0))))
(define-public python-certauth
(package
(name "python-certauth")

View File

@ -45,12 +45,14 @@
#:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages cpp)
#:use-module (gnu packages crypto)
#:use-module (gnu packages databases)
#:use-module (gnu packages gcc)
#:use-module (gnu packages image-processing)
#:use-module (gnu packages machine-learning)
#:use-module (gnu packages maths)
#:use-module (gnu packages mpi)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
@ -1492,6 +1494,62 @@ well as potentially any library which conforms to a standard API. See the
documentation for more information.")
(license license:expat)))
(define-public python-vaex-core
(package
(name "python-vaex-core")
(version "4.13.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "vaex-core" version))
(sha256
(base32 "0ni862x5njhfsldjy49xmasd34plrs7yrmkyss6z1b6sgkbw9fsb"))
(modules '((guix build utils)))
(snippet
;; Remove bundled libraries
'(for-each delete-file-recursively
(list "vendor/boost"
"vendor/pcre"
"vendor/pybind11")))))
(build-system python-build-system)
(arguments
`(#:tests? #false ;require vaex.server and others, which require vaex-core.
#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "pytest" "-vv" )))))))
(inputs
(list boost pcre pybind11-2.3))
(propagated-inputs
(list python-aplus
python-blake3
python-cloudpickle
python-dask
python-filelock
python-frozendict
python-future
python-nest-asyncio
python-numpy
python-pandas
python-progressbar2
python-pyarrow
python-pydantic
python-pyyaml
python-requests
python-rich
python-six
python-tabulate))
(native-inputs
(list python-pytest python-cython))
(home-page "https://www.github.com/maartenbreddels/vaex")
(synopsis "Core of Vaex library for exploring tabular datasets")
(description "Vaex is a high performance Python library for lazy
Out-of-Core DataFrames (similar to Pandas), to visualize and explore big
tabular datasets. This package provides the core modules of Vaex.")
(license license:expat)))
;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances
;;; of a merge conflict, place them above by existing packages with similar

View File

@ -129,6 +129,7 @@
;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl>
;;; Copyright © 2022 Mathieu Laparie <mlaparie@disr.it>
;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -19664,6 +19665,26 @@ point is the point of maximum curvature.")
perform the operations required for synchronizing plain text.")
(license license:asl2.0)))
(define-public python-icdiff
(package
(name "python-icdiff")
(version "2.0.5")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jeffkaufman/icdiff")
(commit (string-append "release-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"14gr9j2h7sfw47pwfzspm4zinywhqmzm4a0qz5c2k9wbixz120a4"))))
(build-system python-build-system)
(home-page "https://www.jefftk.com/icdiff")
(synopsis "Improved colored diff")
(description "This package provides colored diff functions that highlight
parts of the lines that were modified.")
(license license:psfl)))
(define-public python-dirsync
(package
(name "python-dirsync")
@ -22381,6 +22402,26 @@ library: to minimize boilerplate code in traditional extension modules by
inferring type information using compile-time introspection.")
(license license:bsd-3)))
;; This is needed for python-vaex-core.
(define-public pybind11-2.3
(package
(inherit pybind11)
(name "pybind11")
(version "2.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pybind/pybind11")
(commit (string-append "v" version))))
(sha256
(base32
"11b6dniri8m05spfd2a19irz82shf4sdca73566bniggrf3zclnf"))
(file-name (git-file-name name version))))
(arguments
(substitute-keyword-arguments (package-arguments pybind11)
((#:tests? tests? #false)
#false)))))
(define-public python-pooch
(package
(name "python-pooch")
@ -27148,6 +27189,29 @@ applications with variable CPU loads).")
(home-page "https://jwilk.net/software/python-djvulibre")
(license license:gpl2)))
(define-public python-version
;; No version tags available in the git repo; just using bare commit instead.
(let ((commit "5232eea250ab72cc5cb72b0b75efb35d2192b906")
(revision "1"))
(package
(name "python-version")
(version (git-version "0.0.2" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/halfak/python_version")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0w210559ypdynlj9yn40m9awzkaknwrf682i99hswl7h66sdgh0h"))))
(build-system python-build-system)
(home-page "https://gitlab.com/halfak/python_version")
(synopsis "Python version checking utility")
(description
"This package provides a simple utility for checking the python version.")
(license license:expat))))
(define-public python-versioneer
(package
(name "python-versioneer")

View File

@ -18,6 +18,7 @@
;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org>
;;; Copyright © 2022 Gabriel Arazas <foo.dogsquared@gmail.com>
;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2022 Mathieu Laparie <mlaparie@disr.it>
;;;
;;; This file is part of GNU Guix.
;;;
@ -768,6 +769,31 @@ your current directory for a regex pattern while respecting your
gitignore rules.")
(license (list license:unlicense license:expat))))
(define-public rot8
(package
(name "rot8")
(version "0.1.4")
(source (origin
(method url-fetch)
(uri (crate-uri "rot8" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1m5kzpqq9pgc19lbnh20iaq654lzlmc1m5fc9f73w2vpwqdiw1qf"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-clap" ,rust-clap-2)
("rust-glob" ,rust-glob-0.3)
("rust-regex" ,rust-regex-1)
("rust-serde" ,rust-serde-1)
("rust-serde-json" ,rust-serde-json-1))))
(home-page "https://github.com/efernau/rot8/")
(synopsis "Automatic display rotation using built-in accelerometer")
(description "@command{rot8} is a daemon that automates rotating screen and
associated input devices using the built-in accelerometer; handy for convertible
touchscreen devices.")
(license license:expat)))
(define-public git-interactive-rebase-tool
(package
(name "git-interactive-rebase-tool")

View File

@ -35,6 +35,7 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system copy)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (gnu packages)
@ -274,7 +275,7 @@ external dependencies.")
python-pyasn1 ;for krb5 tests
;; For generating man pages.
docbook-xml-4.2
docbook-xsl
docbook-xsl-next ;otherwise the man pages are corrupted
libxslt
libxml2)) ;for XML_CATALOG_FILES
(home-page "https://www.samba.org/")
@ -505,3 +506,30 @@ and IPV6 and the protocols layered above them, such as TCP and UDP.")
license:bsd-4
license:gpl2+
license:public-domain))))
(define-public wsdd
(package
(name "wsdd")
(version "0.7.0")
(source
(origin
(method git-fetch)
(uri (git-reference (url "https://github.com/christgau/wsdd")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "04an2w6hamnai668ag4vq8x0i09fsg2jrayb4a7ar0x6bn837k7m"))))
(build-system copy-build-system)
(inputs
`(("python" ,python)))
(arguments
'(#:install-plan
'(("src/wsdd.py" "bin/wsdd")
("man/wsdd.1" "share/man/man1/"))))
(home-page "https://github.com/christgau/wsdd")
(synopsis "A Web Service Discovery host daemon")
(description "This daemon allows (Samba) hosts to be found by Web
Service Dicovery Clients. It also implements the client side of the
discovery protocol which allows to search for devices implementing
WSD.")
(license license:expat)))

View File

@ -540,14 +540,14 @@ ksh, and tcsh.")
(define-public xonsh
(package
(name "xonsh")
(version "0.13.1")
(version "0.13.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "xonsh" version))
(sha256
(base32
"1b409wkh41inn6m0qmps4iq6bgvwg465dcfcbffqd15fr1j2d0hq"))
"154s4lbda3n8kamiyblfrv8isn3hnqyxw2k99qicyfll02chpjzl"))
(modules '((guix build utils)))
(snippet
#~(begin

View File

@ -550,14 +550,14 @@ k-nearest neighbour, Learning Vector Quantization and Self-Organizing Maps.")
(define-public r-cluster
(package
(name "r-cluster")
(version "2.1.3")
(version "2.1.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "cluster" version))
(sha256
(base32
"1ab466lniykz2a6kdnrbkk7hwair79xfmy6cqvhc8d6nana7mbd3"))))
"1dpmss4mdpw6la5kjf135h2jj5j5zmqvykpj6fl6n5wslbn0rwf6"))))
(build-system r-build-system)
(native-inputs
(list gfortran))
@ -655,14 +655,14 @@ also flexible enough to handle most nonstandard requirements.")
(define-public r-matrix
(package
(name "r-matrix")
(version "1.4-1")
(version "1.5-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "Matrix" version))
(sha256
(base32
"0zigzgx4dv7ydcyppr5ypna9dxi9vzi944pgy07jnj4l3qflzcj2"))))
"0pap6pb0is2s02l43y982p7banwi844bjpgbcgf6fb8pb01vlzam"))))
(properties `((upstream-name . "Matrix")))
(build-system r-build-system)
(propagated-inputs
@ -677,13 +677,13 @@ and operations on them using LAPACK and SuiteSparse.")
(define-public r-nlme
(package
(name "r-nlme")
(version "3.1-158")
(version "3.1-159")
(source
(origin
(method url-fetch)
(uri (cran-uri "nlme" version))
(sha256
(base32 "08xzaslqmbizj38v746hn09bi7k9h0vjhh0z7mv0c9xsq80v8nx5"))))
(base32 "1gqrv4skfgcny4pdpmymdwjcmsd3hla84s76g18dgqj665f5zc4v"))))
(build-system r-build-system)
(propagated-inputs
(list r-lattice))
@ -779,14 +779,14 @@ analysis.")
(define-public r-survival
(package
(name "r-survival")
(version "3.3-1")
(version "3.4-0")
(source
(origin
(method url-fetch)
(uri (cran-uri "survival" version))
(sha256
(base32
"1isdrcvrzi118xiyigckj9sq1xl4m92180brmpzdqzhcrl2qg1ql"))))
"04pqkklbjpcqaq49h49j0vw18q4hi31ry3szzf84vzk5fba273m4"))))
(build-system r-build-system)
(propagated-inputs
(list r-matrix))
@ -1186,16 +1186,21 @@ transliteration, concatenation, date-time formatting and parsing, etc.")
(define-public r-stringr
(package
(name "r-stringr")
(version "1.4.0")
(version "1.4.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "stringr" version))
(sha256
(base32 "1p9ip7p87gbbg4s6d3d392svvzz2b5dqdq2c8ilgvn4s78nlsq47"))))
(base32 "1cfw1lv64lzg16zb04c0fcmd3gx8vq9x73hqikqhgqd3ra88w3gc"))))
(build-system r-build-system)
(propagated-inputs
(list r-glue r-magrittr r-stringi))
;; We can't add r-knitr here, because this package ends up being an input
;; to r-knitr.
#;
(native-inputs
(list r-knitr))
(home-page "https://github.com/hadley/stringr")
(synopsis "Simple, consistent wrappers for common string operations")
(description
@ -1421,13 +1426,13 @@ for template use among CRAN packages.")
(define-public r-evaluate
(package
(name "r-evaluate")
(version "0.15")
(version "0.16")
(source (origin
(method url-fetch)
(uri (cran-uri "evaluate" version))
(sha256
(base32
"0pbwj02y2j7r0msa7747ih1p32xm9bcyr8fa7bysfslb199ywnl8"))))
"009861l805z4c10cz0pyym5qd2b2wsiignjkz74vl25718k0mz0h"))))
(build-system r-build-system)
(home-page "https://github.com/hadley/evaluate")
(synopsis "Parsing and evaluation tools for R")
@ -1551,13 +1556,13 @@ emitter (http://pyyaml.org/wiki/LibYAML) for R.")
(define-public r-knitr
(package
(name "r-knitr")
(version "1.39")
(version "1.40")
(source (origin
(method url-fetch)
(uri (cran-uri "knitr" version))
(sha256
(base32
"0wmcj6xv0bcqzmp5vm8s574rfx366rkgm03lgyppk9ywxgnna6n9"))))
"1g1mhnkyxd2sv6p1l6iph9dnmpbwxhah78xx4kq543ks6vzrb3wv"))))
(build-system r-build-system)
(propagated-inputs
(list r-evaluate r-highr r-stringr r-xfun r-yaml))
@ -1756,13 +1761,13 @@ defined in different packages.")
(define-public r-rlang
(package
(name "r-rlang")
(version "1.0.4")
(version "1.0.5")
(source (origin
(method url-fetch)
(uri (cran-uri "rlang" version))
(sha256
(base32
"15l65as409b3y9sn1jm7lb2019jsp19w6qxsgvimr1badka8kdqz"))))
"1argj8pvf8b19693r6j7rw1fl4bd99b39h5y52qrm1wpcvjkba9d"))))
(build-system r-build-system)
(home-page "http://rlang.tidyverse.org")
(synopsis "Functions for base types, core R and Tidyverse features")
@ -1803,13 +1808,13 @@ and printing capabilities than traditional data frames.")
(define-public r-dplyr
(package
(name "r-dplyr")
(version "1.0.9")
(version "1.0.10")
(source (origin
(method url-fetch)
(uri (cran-uri "dplyr" version))
(sha256
(base32
"0sxl9yzccsdhlrrwj26lmh9frsijxyfaf7csv8mf7d0q4qqzgqg2"))))
"0aqggs0gk95b326gzqjab8i27cna1hzik3zi5l2kkr5l4zv3kdis"))))
(build-system r-build-system)
(propagated-inputs
(list r-generics
@ -2173,13 +2178,13 @@ jackknifed confidence intervals are available for most estimates.")
(define-public r-rversions
(package
(name "r-rversions")
(version "2.1.1")
(version "2.1.2")
(source (origin
(method url-fetch)
(uri (cran-uri "rversions" version))
(sha256
(base32
"1cbwwbz8lqx2n33xr4q904whvld22s63rpyy1nn93395l7ssrakr"))))
"0q5ip3rkhcxz7472fbqddrw3a2wm31b18w7ax0pi6wc27qiihn6y"))))
(build-system r-build-system)
(propagated-inputs
(list r-curl r-xml2))
@ -2353,14 +2358,14 @@ module, Java Server Pages, and Python's psp module.")
(define-public r-desc
(package
(name "r-desc")
(version "1.4.1")
(version "1.4.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "desc" version))
(sha256
(base32
"0m3g5m0g08k674zh4lq0ihmqiwz8jpsfqrdwfqp5p4ngxi8vp7lg"))))
"0z1259ghccmrjylydra4bpryqasirsky7bc4gsx0k327pqacz2km"))))
(build-system r-build-system)
(propagated-inputs
(list r-cli r-r6 r-rprojroot))
@ -2434,14 +2439,14 @@ collation, and NAMESPACE files.")
(define-public r-openssl
(package
(name "r-openssl")
(version "2.0.2")
(version "2.0.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "openssl" version))
(sha256
(base32
"1i7il5kkr1yp2xk8zw7max4llga4hfz0cx9sx0v2xnb9pg4ksbc6"))))
"1al6cb0qwafa32dxr2hhhv6hvbp26hiykamn7w27z1gc1d99ipkw"))))
(build-system r-build-system)
(arguments
(list
@ -2476,13 +2481,13 @@ integers.")
(define-public r-httr
(package
(name "r-httr")
(version "1.4.3")
(version "1.4.4")
(source (origin
(method url-fetch)
(uri (cran-uri "httr" version))
(sha256
(base32
"0skwi501rzndywn81704d68n1l6lrvqilf91q08cjfhpjvx171ls"))))
"0pa3ypkq6kq6sw7b8w62rfpcbjwhc49y8nkvk900s9pfycijbn21"))))
(build-system r-build-system)
(propagated-inputs
(list r-curl r-jsonlite r-openssl r-mime r-r6))
@ -2523,13 +2528,13 @@ pure C implementation of the Git core methods.")
(define-public r-rstudioapi
(package
(name "r-rstudioapi")
(version "0.13")
(version "0.14")
(source (origin
(method url-fetch)
(uri (cran-uri "rstudioapi" version))
(sha256
(base32
"12vdfzzjc6mv4h105l8cp108j3hjk0mqmg23m6mqr3jarfymphxa"))))
"1i5g9l2739mlaglzg98iifycx98jlzxj5933qfb8lwmdn63hk7a6"))))
(build-system r-build-system)
(native-inputs
(list r-knitr))
@ -2605,14 +2610,14 @@ were originally a part of the r-devtools package.")
(define-public r-hms
(package
(name "r-hms")
(version "1.1.1")
(version "1.1.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "hms" version))
(sha256
(base32
"0qlh4s1g9rbm6c3s906dhw3xsz28m8fg6cyynlkhvis533dk0pvb"))))
"1vdx08irnh8q5232hriv47hh88hc55nbbrff7y6zbainff2akrhy"))))
(build-system r-build-system)
(propagated-inputs
(list r-ellipsis r-lifecycle r-pkgconfig r-rlang r-vctrs))
@ -2721,13 +2726,13 @@ well as additional utilities such as panel and axis annotation functions.")
(define-public r-rcpparmadillo
(package
(name "r-rcpparmadillo")
(version "0.11.2.0.0")
(version "0.11.2.4.0")
(source (origin
(method url-fetch)
(uri (cran-uri "RcppArmadillo" version))
(sha256
(base32
"0f0rrv254jd66m80vm4bmk3yrnyw1kdfgdki6zbcih7mbvw7mqgr"))))
"1y499idmci72x6gpj855vf4rlzh1r2qqpxyzs53r59ay8f4g0jar"))))
(properties `((upstream-name . "RcppArmadillo")))
(build-system r-build-system)
(propagated-inputs
@ -2813,13 +2818,13 @@ certain criterion, e.g., it contains a certain regular file.")
(define-public r-rmarkdown
(package
(name "r-rmarkdown")
(version "2.14")
(version "2.16")
(source
(origin
(method url-fetch)
(uri (cran-uri "rmarkdown" version))
(sha256
(base32 "081j1hpxcwadn606ch5lq279s66c1b0f0mjvap7yimnrljpigv79"))))
(base32 "0wgsc5ax4wynviasyxr240fkjk0g1wm9aq7b42mx66f43424xlyk"))))
(properties `((upstream-name . "rmarkdown")))
(build-system r-build-system)
(propagated-inputs
@ -2846,15 +2851,17 @@ variety of formats.")
(define-public r-gtable
(package
(name "r-gtable")
(version "0.3.0")
(version "0.3.1")
(source (origin
(method url-fetch)
(uri (cran-uri "gtable" version))
(sha256
(base32
"1lyncxf2dqdjgw1071cn9c8zwzkz6sldnd5cgmicf70bc726qf7x"))))
"1dbwxhxawwbmaixwxxglazv5bici56qvmjk7sqa8j66m49bjrmlb"))))
(properties `((upstream-name . "gtable")))
(build-system r-build-system)
(native-inputs
(list r-knitr))
(home-page "https://cran.r-project.org/web/packages/gtable")
(synopsis "R library to arrange grobs in tables")
(description
@ -2928,13 +2935,13 @@ a column in data frame.")
(define-public r-rsqlite
(package
(name "r-rsqlite")
(version "2.2.15")
(version "2.2.17")
(source (origin
(method url-fetch)
(uri (cran-uri "RSQLite" version))
(sha256
(base32
"1cypz9i85fnp3izk0px9r8s3l1jwn5kmgs2avc0fi3fad1775029"))))
"16l64ganvdlaldmqryz2c95id2m8vchlj9x5rz9kppbmhy122vjw"))))
(properties `((upstream-name . "RSQLite")))
(build-system r-build-system)
(propagated-inputs
@ -3346,9 +3353,8 @@ using the multicore functionality of the parallel package.")
("https://cdn.datatables.net/buttons/1.6.1/js/buttons.bootstrap4.js"
"0hfclipg43wr9p7irrcn9vp5wji8z7gz6y5mclkq88z1mlpwklzf"
"datatables-extensions/Buttons")
;; It is not clear what version the bundled file corresponds to.
("https://cdnjs.cloudflare.com/ajax/libs/jszip/2.5.0/jszip.js"
"18hpj9vwgki56ijb20l5gwmqa5p1d0xprn57z2mlg3ph6ll0bdkd"
("https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.js"
"01l5lw49jz2qn6k9i63dk4llar4lvvpd6xp6i45mpwfk49fbxqg2"
"datatables-extensions/Buttons")
("https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/pdfmake.js"
"1sfw80az2cgzin5wk7q1p2n9zm66c35cz0m6isdygml81i594wia"
@ -3564,13 +3570,13 @@ using the multicore functionality of the parallel package.")
"datatables-extensions/Select"))))
(package
(name "r-dt")
(version "0.23")
(version "0.25")
(source (origin
(method url-fetch)
(uri (cran-uri "DT" version))
(sha256
(base32
"0w6wgiwa3zgldp175a3q7zfw853xqc7mfj34n6hja48ln7yf42in"))
"0as43h4minnz5c09nvbvq8b1d9506mzkcdl98bhf87rf0q9qgz0d"))
(modules '((guix build utils)))
(snippet
'(for-each delete-file
@ -4132,14 +4138,14 @@ most common form of color blindness.")
(define-public r-viridislite
(package
(name "r-viridislite")
(version "0.4.0")
(version "0.4.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "viridisLite" version))
(sha256
(base32
"0siwr0vq80gs3sbyd542zjb0cl9av5zqdm0fqnym5g6ribf5b6c4"))))
"15zaf2c7kzjf3i0g7y8w6jlgfkpprqj2zl346y5imz75r8fdp5m8"))))
(properties `((upstream-name . "viridisLite")))
(build-system r-build-system)
(home-page "https://github.com/sjmgarnier/viridisLite")
@ -4183,14 +4189,14 @@ selection.")
(define-public r-tidyr
(package
(name "r-tidyr")
(version "1.2.0")
(version "1.2.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "tidyr" version))
(sha256
(base32
"1a0k296a0jb2xi5zgfrqfmmw8197bwibjl7a04fm49vqx6livl4c"))))
"1bv1rvnbbfdqf78qfbawq3yxjhjfdy0mgcla6b17bp336rnpcwb9"))))
(build-system r-build-system)
(propagated-inputs
(list r-cpp11
@ -4445,14 +4451,14 @@ following problems:
(define-public r-base64
(package
(name "r-base64")
(version "2.0")
(version "2.0.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "base64" version))
(sha256
(base32
"1labh0ycdm2xcjssj8bhnyjvbk44mcdsi0rb2p8rfqa428mrq9cf"))))
"1w9m4n29xmj7px8fbmha04vq146bxfqi7ipj1ag09hlm05y6h8jd"))))
(build-system r-build-system)
(propagated-inputs
(list r-openssl))
@ -4467,13 +4473,13 @@ package instead.")
(define-public r-hmisc
(package
(name "r-hmisc")
(version "4.7-0")
(version "4.7-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "Hmisc" version))
(sha256
(base32 "1gc71wg6f17x6nriphs1kk39ix7lpqk32clk1qshqy8wl6f2vv19"))))
(base32 "0zrfi2mmi6wfl6440iqflzzmkina8dhxia2qsamqw6djd0d5fp9j"))))
(properties `((upstream-name . "Hmisc")))
(build-system r-build-system)
(native-inputs
@ -4858,13 +4864,13 @@ Wall Street Journal, among others. This package also provides
(define-public r-statmod
(package
(name "r-statmod")
(version "1.4.36")
(version "1.4.37")
(source (origin
(method url-fetch)
(uri (cran-uri "statmod" version))
(sha256
(base32
"1hkvklcav6gj4zib4g3b4xwsdsbsmnzdblr0v6jaqv227p49gs0l"))))
"04v9nynv3lakhnd7b17v5syrlnscrxml71jnd3r93chckskwillh"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/statmod")
(native-inputs
@ -5245,14 +5251,14 @@ analysis} (PCA) by projection pursuit.")
(define-public r-rrcov
(package
(name "r-rrcov")
(version "1.7-0")
(version "1.7-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "rrcov" version))
(sha256
(base32
"1z98j9973hl19b70dcwfcf55ifxr2a9v53daaq2sagynh95aik6b"))))
"1rd4r4acgpr25x2iy7v2mnahmmf76a378zq16gnpwv5ljycs05g1"))))
(build-system r-build-system)
(propagated-inputs
(list r-lattice r-mvtnorm r-pcapp r-robustbase))
@ -5486,14 +5492,14 @@ metrics for evaluating models.")
(define-public r-matrixmodels
(package
(name "r-matrixmodels")
(version "0.5-0")
(version "0.5-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "MatrixModels" version))
(sha256
(base32
"1va6i6bpkq71rzl9i4xgyc5x7qcksa3nfzihlaggf6aj30dayzx8"))))
"1a9ywhv1yklfcp0jgirkih3ib5scs61hkscmyddwfh5blpgmpi9z"))))
(properties `((upstream-name . "MatrixModels")))
(build-system r-build-system)
(propagated-inputs
@ -5773,14 +5779,14 @@ first and second order derivatives.")
(define-public r-sn
(package
(name "r-sn")
(version "2.0.2")
(version "2.1.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "sn" version))
(sha256
(base32
"140p1pl5sq0laxhcm16kbqm986hlhqj90gj3jccga491gh14jywm"))))
"12s4g9rfrnijdil7bqw66ikj5k3w6bdnz6fsgqsp0bkfsap9nps9"))))
(build-system r-build-system)
(propagated-inputs
(list r-mnormt r-numderiv r-quantreg))
@ -5950,17 +5956,24 @@ and the corresponding decision threshold.")
(define-public r-forcats
(package
(name "r-forcats")
(version "0.5.1")
(version "0.5.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "forcats" version))
(sha256
(base32
"12d2nv2w15085jscgidmjdnr1ryymciflcmal6ldmgp2fkl9dyy4"))))
"0hb1m16il1n8nmhp7hx8k2xxq8bd8kp3qqs2pw7xm0iz311hm9hl"))))
(build-system r-build-system)
(propagated-inputs
(list r-ellipsis r-magrittr r-tibble r-rlang))
(list r-cli
r-ellipsis
r-glue
r-lifecycle
r-magrittr
r-tibble
r-rlang
r-withr))
(native-inputs
(list r-knitr))
(home-page "https://forcats.tidyverse.org")
@ -6462,14 +6475,14 @@ mediation and estimating power.")
(define-public r-clubsandwich
(package
(name "r-clubsandwich")
(version "0.5.7")
(version "0.5.8")
(source
(origin
(method url-fetch)
(uri (cran-uri "clubSandwich" version))
(sha256
(base32
"1chq0bjz0yskm3cs8k6019j9v1m3fiz4p2ysk3xmqxlcihmnvv0b"))))
"1y894n35l4lzqm15ifxjnpnh95dldsfivv4098571yqf1z4a253q"))))
(properties `((upstream-name . "clubSandwich")))
(build-system r-build-system)
(propagated-inputs
@ -6901,13 +6914,13 @@ Calculates confidence intervals for the difference in proportion.")
(define-public r-desctools
(package
(name "r-desctools")
(version "0.99.45")
(version "0.99.46")
(source
(origin
(method url-fetch)
(uri (cran-uri "DescTools" version))
(sha256
(base32 "01gbmikpzjmymvb7p76k7wqvfvwznl6v0qa78jy7bi6fzmbp1zld"))))
(base32 "1f6jhvwgzv8mw5vmy7nqh8bpmrrzl36x1bq1ggnk3va24fcd01jq"))))
(properties `((upstream-name . "DescTools")))
(build-system r-build-system)
(propagated-inputs

View File

@ -62,6 +62,7 @@
#:use-module (gnu packages xorg)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
@ -71,6 +72,230 @@
#:use-module (guix build-system python)
#:use-module (guix build-system qt))
(define %telegram-version "2.9.3")
(define libvpx-for-telegram-desktop
(let ((commit "5b63f0f821e94f8072eb483014cfc33b05978bb9")
(revision "112"))
(origin
(method git-fetch)
(uri (git-reference
(url "https://chromium.googlesource.com/webm/libvpx")
(commit commit)))
(file-name (git-file-name
"libvpx-for-telegram-desktop"
(git-version "1.9.0" revision commit)))
(sha256
(base32
"1psvxaddihlw1k5n0anxif3qli6zyw2sa2ywn6mkb8six9myrp68")))))
(define libyuv-for-telegram-desktop
(let ((commit "ad890067f661dc747a975bc55ba3767fe30d4452")
(revision "2211"))
(origin
(method git-fetch)
(uri (git-reference
(url "https://chromium.googlesource.com/libyuv/libyuv")
(commit commit)))
(file-name (git-file-name
"libyuv-for-telegram-desktop"
(git-version "0" revision commit)))
(sha256
(base32
"01knnk4h247rq536097n9n3s3brxlbby3nv3ppdgsqfda3k159ll")))))
(define cmake-helpers-for-telegram-desktop
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/desktop-app/cmake_helpers.git")
(commit "4d44d822e01b3b5fbec3ce824e01f56aa35d7f72")))
(file-name
(git-file-name "cmake-helpers-for-telegram-desktop" %telegram-version))
(sha256
(base32
"0h6cjiqy014h2mz90h1z5a7plb3ihbnds4bja8994ybr1dy3m7m5"))))
(define codegen-for-telegram-desktop
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/desktop-app/codegen.git")
(commit "248614b49cd7d5aff69d75a737f2e35b79fbb119")))
(file-name
(git-file-name "codegen-for-telegram-desktop" %telegram-version))
(sha256
(base32
"00f7g2z6xmkbkrmi3q27hscjl44mg66wf9q0mz3rhy3jaa6cfdrk"))))
(define lib-base-for-telegram-desktop
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/desktop-app/lib_base.git")
(commit "a23c05c44e4f01dc4428f4d75d4db98c59d313a6")))
(file-name
(git-file-name "lib-base-for-telegram-desktop" %telegram-version))
(sha256
(base32
"0vh5zgxwalmbnvz8lzlnba87ch8vnpmcz6nvf56w09f3nlxvvq78"))))
(define lib-crl-for-telegram-desktop
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/desktop-app/lib_crl.git")
(commit "3ccf2ed5095442e5874bba8852cb7dc4efeae29f")))
(file-name
(git-file-name "lib-crl-for-telegram-desktop" %telegram-version))
(sha256
(base32
"11my7q54m4lvvlgma6pbdyjxi1cv1adk1gph2j50mh18sqlm8myz"))))
(define lib-lottie-for-telegram-desktop
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/desktop-app/lib_lottie.git")
(commit "0770df009db7928df1d0cad0900dc5110106d229")))
(file-name
(git-file-name "lib-lottie-for-telegram-desktop" %telegram-version))
(sha256
(base32
"1gj56ymlbk5dnk82jw674808m511lv9dky8891a5wm4gp3pph5jb"))))
(define lib-qr-for-telegram-desktop
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/desktop-app/lib_qr.git")
(commit "2b08c71c6edcfc3e31f7d7f518cc963493b6e189")))
(file-name
(git-file-name "lib-qr-for-telegram-desktop" %telegram-version))
(sha256
(base32
"05hrkmwgrczyjv87r507i2r7m1zr6k2i43mq3my0s6j4szr1rjq0"))))
(define lib-rlottie-for-telegram-desktop
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/desktop-app/lib_rlottie.git")
(commit "0671bf70547381effcf442ec9618e04502a8adbc")))
(file-name
(git-file-name "lib-rlottie-for-telegram-desktop" %telegram-version))
(sha256
(base32
"05qnza7j15356s8jq16pkbyp4zr586lssmd86lz5jq23lcb3raxv"))))
(define lib-rpl-for-telegram-desktop
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/desktop-app/lib_rpl.git")
(commit "df721be3fa14a27dfc230d2e3c42bb1a7c9d0617")))
(file-name
(git-file-name "lib-rpl-for-telegram-desktop" %telegram-version))
(sha256
(base32
"15fnv3ssn7rn5d0j52gggdvyqc2wm464678dj7v2x9h8lka2jjxn"))))
(define lib-spellcheck-for-telegram-desktop
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/desktop-app/lib_spellcheck.git")
(commit "68c9b788958904aea7de79f986a0f82ec8c5b094")))
(file-name
(git-file-name "lib-spellcheck-for-telegram-desktop" %telegram-version))
(sha256
(base32
"0d8s4wwk6fxf536mhzq2vb9qw3j0m8nqia7ylvvpsbc4kh09dadn"))))
(define lib-storage-for-telegram-desktop
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/desktop-app/lib_storage.git")
(commit "403df6c4a29562bd417c92d410e49819f5a48cc1")))
(file-name
(git-file-name "lib-storage-for-telegram-desktop" %telegram-version))
(sha256
(base32
"1zxvzfrxbj4d395fzyb5pm9wn3n8jyimxx88cyqjcdd46sx4h7r5"))))
(define lib-tl-for-telegram-desktop
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/desktop-app/lib_tl.git")
(commit "45faed44e7f4d11fec79b7a70e4a35dc91ef3fdb")))
(file-name
(git-file-name "lib-tl-for-telegram-desktop" %telegram-version))
(sha256
(base32
"0h43xvzklda02494d466jp52hl8c1kmav9f12dyld10dpf1w6c7m"))))
(define lib-ui-for-telegram-desktop
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/desktop-app/lib_ui.git")
(commit "1b590f9e16eb9571a039f072d6fea66c607e419f")))
(file-name
(git-file-name "lib-ui-for-telegram-desktop" %telegram-version))
(sha256
(base32
"0ighyhfp29h9h8c7vr70pnhcv2xnsr9ln084pssn8hb5z4pmb62f"))))
(define lib-waylandshells-for-telegram-desktop
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/desktop-app/lib_waylandshells.git")
(commit "59b0ee55a68976d27f1bf7cec0e11d5939e185e7")))
(file-name
(git-file-name "lib-waylandshells-for-telegram-desktop" %telegram-version))
(sha256
(base32
"0l2xrpc5mvvdlsj333pmkgfvn9wi1ijfdaaz8skfnw9icw52faaf"))))
(define lib-webrtc-for-telegram-desktop
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/desktop-app/lib_webrtc.git")
(commit "ef49f953f12b112008a094a719f40939aaf39db4")))
(file-name
(git-file-name "lib-webrtc-for-telegram-desktop" %telegram-version))
(sha256
(base32
"15k4xs3462p3ddp5cn9im3nvdiaijmxir8wxsf5yrj70ghy26ibw"))))
(define lib-webview-for-telegram-desktop
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/desktop-app/lib_webview.git")
(commit "e06427c624515485774e2e2181d4afeb05ad5a67")))
(file-name
(git-file-name "lib-webview-for-telegram-desktop" %telegram-version))
(sha256
(base32
"148z7xzfscynwwwqssdsd97npax6yn8zrd64xw8qzbwff2g2r7k4"))))
(define tgcalls-for-telegram-desktop
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/TelegramMessenger/tgcalls.git")
(commit "81e97fa52e25b7775b62ce07bb653533d81e91b3")))
(file-name
(git-file-name "tgcalls-for-telegram-desktop" %telegram-version))
(sha256
(base32
"0fvad87hyxli83xn19mgf8jjrrh6y6iaig14pckpbkg33vf4wqkj"))))
(define-public webrtc-for-telegram-desktop
(let ((commit "91d836dc84a16584c6ac52b36c04c0de504d9c34")
(revision "166"))
@ -94,84 +319,54 @@
(ice-9 ftw)
(srfi srfi-1)))
(snippet
`(begin
(let ((keep
'( ;; Custom forks which are incompatible with the ones in Guix.
"abseil-cpp" "libsrtp" "openh264" "rnnoise"
;; Not available in Guix.
"pffft" "usrsctp"
;; Has cmake support files for libvpx input.
"libvpx")))
(with-directory-excursion "src/third_party"
(for-each delete-file-recursively
(lset-difference string=?
(scandir ".")
(cons* "." ".." keep))))
#t)))))
#~(begin
(let ((keep
'( ;; Custom forks which are incompatible with the ones in Guix.
"abseil-cpp" "libsrtp" "openh264" "rnnoise"
;; Not available in Guix.
"pffft" "usrsctp"
;; Has cmake support files for libvpx input.
"libvpx")))
(with-directory-excursion "src/third_party"
(for-each delete-file-recursively
(lset-difference string=?
(scandir ".")
(cons* "." ".." keep)))))))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; No target
#:configure-flags
(list
"-DCMAKE_C_FLAGS=-fPIC"
"-DCMAKE_CXX_FLAGS=-fPIC")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'copy-inputs
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((libvpx-from (assoc-ref inputs "libvpx"))
(libyuv-from (assoc-ref inputs "libyuv"))
(libvpx-to (string-append (getcwd)
"/src/third_party/libvpx/source/libvpx"))
(libyuv-to (string-append (getcwd)
"/src/third_party/libyuv")))
(copy-recursively libvpx-from libvpx-to)
(copy-recursively libyuv-from libyuv-to))
#t)))))
(native-inputs
`(("perl" ,perl)
("pkg-config" ,pkg-config)
("python" ,python-wrapper)
("yasm" ,yasm)))
(list
#:tests? #f ; No target
#:configure-flags #~(list "-DCMAKE_C_FLAGS=-fPIC"
"-DCMAKE_CXX_FLAGS=-fPIC")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'copy-inputs
(lambda _
(let* ((third-party (string-append (getcwd) "/src/third_party"))
(libvpx-to (string-append third-party
"/libvpx/source/libvpx"))
(libyuv-to (string-append third-party "/libyuv")))
(copy-recursively #$libvpx-for-telegram-desktop libvpx-to)
(copy-recursively #$libyuv-for-telegram-desktop
libyuv-to)))))))
(native-inputs (list perl pkg-config python-wrapper yasm))
(inputs
`(("alsa" ,alsa-lib)
("ffmpeg" ,ffmpeg)
("libjpeg" ,libjpeg-turbo)
("glib" ,glib)
("libvpx"
,(origin
(method git-fetch)
(uri
(git-reference
(url "https://chromium.googlesource.com/webm/libvpx")
(commit "5b63f0f821e94f8072eb483014cfc33b05978bb9")))
(file-name
(git-file-name "libvpx-for-webrtc-for-telegram-desktop" version))
(sha256
(base32 "1psvxaddihlw1k5n0anxif3qli6zyw2sa2ywn6mkb8six9myrp68"))))
("libyuv"
,(origin
(method git-fetch)
(uri
(git-reference
(url "https://chromium.googlesource.com/libyuv/libyuv")
(commit "ad890067f661dc747a975bc55ba3767fe30d4452")))
(file-name
(git-file-name "libyuv-for-webrtc-for-telegram-desktop" version))
(sha256
(base32 "01knnk4h247rq536097n9n3s3brxlbby3nv3ppdgsqfda3k159ll"))))
("libxcomposite" ,libxcomposite)
("libxdamage" ,libxdamage)
("libxrender" ,libxrender)
("libxrandr" ,libxrandr)
("openssl" ,openssl)
("opus" ,opus)
("pipewire" ,pipewire)
("protobuf" ,protobuf)
("pulseaudio" ,pulseaudio)
("x11" ,libx11)
("xext" ,libxext)
("xtst" ,libxtst)))
(list alsa-lib
ffmpeg
libjpeg-turbo
glib
libxcomposite
libxdamage
libxrender
libxrandr
openssl
opus
pipewire
protobuf
pulseaudio
libx11
libxext
libxtst))
(synopsis "WebRTC support for Telegram Desktop")
(description "WebRTC-for-Telegram-Desktop is a custom WebRTC fork by
Telegram project, for its use in telegram desktop client.")
@ -269,7 +464,7 @@ Telegram project, for its use in telegram desktop client.")
(define-public telegram-desktop
(package
(name "telegram-desktop")
(version "2.9.3")
(version %telegram-version)
(source
(origin
(method git-fetch)
@ -286,312 +481,124 @@ Telegram project, for its use in telegram desktop client.")
(ice-9 ftw)
(srfi srfi-1)))
(snippet
`(begin
(let ((keep
'( ;; Not available in Guix.
"SPMediaKeyTap" "statusnotifieritem" "tgcalls")))
(with-directory-excursion "Telegram/ThirdParty"
(for-each delete-file-recursively
(lset-difference string=?
(scandir ".")
(cons* "." ".." keep))))
#t)))))
#~(begin
(let ((keep
'( ;; Not available in Guix.
"SPMediaKeyTap" "statusnotifieritem" "tgcalls")))
(with-directory-excursion "Telegram/ThirdParty"
(for-each delete-file-recursively
(lset-difference string=?
(scandir ".")
(cons* "." ".." keep)))))))))
(build-system qt-build-system)
(arguments
`(#:tests? #f ; No target
#:imported-modules
(,@%qt-build-system-modules
(guix build glib-or-gtk-build-system))
#:modules
((guix build qt-build-system)
((guix build glib-or-gtk-build-system)
#:prefix glib-or-gtk:)
(guix build utils)
(ice-9 match))
#:configure-flags
(list
;; Client applications must provide their own API-ID and API-HASH,
;; see also <https://core.telegram.org/api/obtaining_api_id>.
;; In case, that the credentials below fail to work, contact
;; Raghav Gururajan <rg@raghavgururajan.name>
"-DTDESKTOP_API_ID=2791056"
"-DTDESKTOP_API_HASH=582d6d0b44f7a2de949e99271fd8b3f2"
;; Disable WebkitGTK support as it fails to link
"-DDESKTOP_APP_DISABLE_WEBKITGTK=ON"
;; Use bundled fonts as fallback.
"-DDESKTOP_APP_USE_PACKAGED_FONTS=OFF")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-writable
(lambda _
(for-each make-file-writable (find-files "."))
#t))
(add-after 'make-writable 'copy-inputs
(lambda* (#:key inputs outputs #:allow-other-keys)
(for-each
(match-lambda
((dst src)
(copy-recursively src dst)
(for-each make-file-writable (find-files dst))))
`(("cmake" ,(assoc-ref inputs "cmake-helpers"))
("Telegram/codegen" ,(assoc-ref inputs "codegen-source"))
("Telegram/lib_base" ,(assoc-ref inputs "lib-base-source"))
("Telegram/lib_crl" ,(assoc-ref inputs "lib-crl-source"))
("Telegram/lib_lottie"
,(assoc-ref inputs "lib-lottie-source"))
("Telegram/lib_qr" ,(assoc-ref inputs "lib-qr-source"))
("Telegram/lib_rlottie"
,(assoc-ref inputs "lib-rlottie-source"))
("Telegram/lib_rpl" ,(assoc-ref inputs "lib-rpl-source"))
("Telegram/lib_spellcheck"
,(assoc-ref inputs "lib-spellcheck-source"))
("Telegram/lib_storage"
,(assoc-ref inputs "lib-storage-source"))
("Telegram/lib_tl" ,(assoc-ref inputs "lib-tl-source"))
("Telegram/lib_ui" ,(assoc-ref inputs "lib-ui-source"))
("Telegram/lib_waylandshells" ,(assoc-ref inputs "lib-waylandshells-source"))
("Telegram/lib_webrtc" ,(assoc-ref inputs "lib-webrtc-source"))
("Telegram/lib_webview" ,(assoc-ref inputs "lib-webview-source"))
("Telegram/ThirdParty/tgcalls"
,(assoc-ref inputs "tgcalls-source"))))
#t))
(add-before 'configure 'patch-cxx-flags
(lambda _
(substitute* "cmake/options_linux.cmake"
(("class-memaccess") "all"))
#t))
(add-after 'install 'glib-or-gtk-compile-schemas
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
(add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
(list #:tests? #f ; No target
#:imported-modules
`(,@%qt-build-system-modules
(guix build glib-or-gtk-build-system))
#:modules
'((guix build qt-build-system)
((guix build glib-or-gtk-build-system)
#:prefix glib-or-gtk:)
(guix build utils)
(ice-9 match))
#:configure-flags
#~(list
;; Client applications must provide their own API-ID and API-HASH,
;; see also <https://core.telegram.org/api/obtaining_api_id>.
;; Here, we snarf the keys from the official Snaps, which are
;; also stored in <#$source/snap/snapcraft.yaml>.
"-DTDESKTOP_API_ID=611335"
"-DTDESKTOP_API_HASH=d524b414d21f4d37f08684c1df41ac9c"
;; Disable WebkitGTK support as it fails to link
"-DDESKTOP_APP_DISABLE_WEBKITGTK=ON"
;; Use bundled fonts as fallback.
"-DDESKTOP_APP_USE_PACKAGED_FONTS=OFF")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'make-writable
(lambda _
(for-each make-file-writable (find-files "."))))
(add-after 'make-writable 'copy-inputs
(lambda _
(for-each
(match-lambda
((dst src)
(copy-recursively src dst)
(for-each make-file-writable (find-files dst))))
'(("cmake" #$cmake-helpers-for-telegram-desktop)
("Telegram/codegen" #$codegen-for-telegram-desktop)
("Telegram/lib_base" #$lib-base-for-telegram-desktop)
("Telegram/lib_crl" #$lib-crl-for-telegram-desktop)
("Telegram/lib_lottie" #$lib-lottie-for-telegram-desktop)
("Telegram/lib_qr" #$lib-qr-for-telegram-desktop)
("Telegram/lib_rlottie" #$lib-rlottie-for-telegram-desktop)
("Telegram/lib_rpl" #$lib-rpl-for-telegram-desktop)
("Telegram/lib_spellcheck" #$lib-spellcheck-for-telegram-desktop)
("Telegram/lib_storage" #$lib-storage-for-telegram-desktop)
("Telegram/lib_tl" #$lib-tl-for-telegram-desktop)
("Telegram/lib_ui" #$lib-ui-for-telegram-desktop)
("Telegram/lib_waylandshells" #$lib-waylandshells-for-telegram-desktop)
("Telegram/lib_webrtc" #$lib-webrtc-for-telegram-desktop)
("Telegram/lib_webview" #$lib-webview-for-telegram-desktop)
("Telegram/ThirdParty/tgcalls" #$tgcalls-for-telegram-desktop)))))
(add-before 'configure 'patch-cxx-flags
(lambda _
(substitute* "cmake/options_linux.cmake" (("class-memaccess") "all"))))
(add-after 'install 'glib-or-gtk-compile-schemas
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
(add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
(native-inputs
`(("cmake-helpers"
,(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/desktop-app/cmake_helpers.git")
(commit "4d44d822e01b3b5fbec3ce824e01f56aa35d7f72")))
(file-name
(git-file-name "cmake-helpers-for-telegram-desktop" version))
(sha256
(base32 "0h6cjiqy014h2mz90h1z5a7plb3ihbnds4bja8994ybr1dy3m7m5"))))
("cmake-shared" ,cmake-shared)
("extra-cmake-modules" ,extra-cmake-modules)
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("gtk+:bin" ,gtk+ "bin")
("pkg-config" ,pkg-config)
("python" ,python-wrapper)
("qttools-5" ,qttools-5)))
(list cmake-shared
extra-cmake-modules
`(,glib "bin")
`(,gtk+ "bin")
pkg-config
python-wrapper
qttools-5))
(inputs
`(("alsa" ,alsa-lib)
("c++-gsl" ,c++-gsl)
("catch" ,catch2)
("codegen-source"
,(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/desktop-app/codegen.git")
(commit "248614b49cd7d5aff69d75a737f2e35b79fbb119")))
(file-name
(git-file-name "codegen" version))
(sha256
(base32 "00f7g2z6xmkbkrmi3q27hscjl44mg66wf9q0mz3rhy3jaa6cfdrk"))))
("expected" ,libexpected)
("fcitx-qt5" ,fcitx-qt5)
("fcitx5-qt" ,fcitx5-qt)
("ffmpeg" ,ffmpeg)
("glib" ,glib)
("glibmm" ,glibmm-2.64)
("gtk+" ,gtk+)
("hime" ,hime)
("hunspell" ,hunspell)
("jemalloc" ,jemalloc)
("kwayland" ,kwayland)
("lib-base-source"
,(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/desktop-app/lib_base.git")
(commit "a23c05c44e4f01dc4428f4d75d4db98c59d313a6")))
(file-name
(git-file-name "lib-base-for-telegram-desktop" version))
(sha256
(base32 "0vh5zgxwalmbnvz8lzlnba87ch8vnpmcz6nvf56w09f3nlxvvq78"))))
("lib-crl-source"
,(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/desktop-app/lib_crl.git")
(commit "3ccf2ed5095442e5874bba8852cb7dc4efeae29f")))
(file-name
(git-file-name "lib-crl-for-telegram-desktop" version))
(sha256
(base32 "11my7q54m4lvvlgma6pbdyjxi1cv1adk1gph2j50mh18sqlm8myz"))))
("lib-lottie-source"
,(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/desktop-app/lib_lottie.git")
(commit "0770df009db7928df1d0cad0900dc5110106d229")))
(file-name
(git-file-name "lib-lottie-for-telegram-desktop" version))
(sha256
(base32 "1gj56ymlbk5dnk82jw674808m511lv9dky8891a5wm4gp3pph5jb"))))
("lib-qr-source"
,(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/desktop-app/lib_qr.git")
(commit "2b08c71c6edcfc3e31f7d7f518cc963493b6e189")))
(file-name
(git-file-name "lib-qr-for-telegram-desktop" version))
(sha256
(base32 "05hrkmwgrczyjv87r507i2r7m1zr6k2i43mq3my0s6j4szr1rjq0"))))
("lib-rlottie-source"
,(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/desktop-app/lib_rlottie.git")
(commit "0671bf70547381effcf442ec9618e04502a8adbc")))
(file-name
(git-file-name "lib-rlottie-for-telegram-desktop" version))
(sha256
(base32 "05qnza7j15356s8jq16pkbyp4zr586lssmd86lz5jq23lcb3raxv"))))
("lib-rpl-source"
,(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/desktop-app/lib_rpl.git")
(commit "df721be3fa14a27dfc230d2e3c42bb1a7c9d0617")))
(file-name
(git-file-name "lib-rpl-for-telegram-desktop" version))
(sha256
(base32 "15fnv3ssn7rn5d0j52gggdvyqc2wm464678dj7v2x9h8lka2jjxn"))))
("lib-spellcheck-source"
,(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/desktop-app/lib_spellcheck.git")
(commit "68c9b788958904aea7de79f986a0f82ec8c5b094")))
(file-name
(git-file-name "lib-spellcheck-for-telegram-desktop" version))
(sha256
(base32 "0d8s4wwk6fxf536mhzq2vb9qw3j0m8nqia7ylvvpsbc4kh09dadn"))))
("lib-storage-source"
,(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/desktop-app/lib_storage.git")
(commit "403df6c4a29562bd417c92d410e49819f5a48cc1")))
(file-name
(git-file-name "lib-storage-for-telegram-desktop" version))
(sha256
(base32 "1zxvzfrxbj4d395fzyb5pm9wn3n8jyimxx88cyqjcdd46sx4h7r5"))))
("lib-tl-source"
,(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/desktop-app/lib_tl.git")
(commit "45faed44e7f4d11fec79b7a70e4a35dc91ef3fdb")))
(file-name
(git-file-name "lib-tl-for-telegram-desktop" version))
(sha256
(base32 "0h43xvzklda02494d466jp52hl8c1kmav9f12dyld10dpf1w6c7m"))))
("lib-ui-source"
,(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/desktop-app/lib_ui.git")
(commit "1b590f9e16eb9571a039f072d6fea66c607e419f")))
(file-name
(git-file-name "lib-ui-for-telegram-desktop" version))
(sha256
(base32 "0ighyhfp29h9h8c7vr70pnhcv2xnsr9ln084pssn8hb5z4pmb62f"))))
("lib-waylandshells-source"
,(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/desktop-app/lib_waylandshells.git")
(commit "59b0ee55a68976d27f1bf7cec0e11d5939e185e7")))
(file-name
(git-file-name "lib-waylandshells-for-telegram-desktop" version))
(sha256
(base32 "0l2xrpc5mvvdlsj333pmkgfvn9wi1ijfdaaz8skfnw9icw52faaf"))))
("lib-webrtc-source"
,(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/desktop-app/lib_webrtc.git")
(commit "ef49f953f12b112008a094a719f40939aaf39db4")))
(file-name
(git-file-name "lib-webrtc-for-telegram-desktop" version))
(sha256
(base32 "15k4xs3462p3ddp5cn9im3nvdiaijmxir8wxsf5yrj70ghy26ibw"))))
("lib-webview-source"
,(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/desktop-app/lib_webview.git")
(commit "e06427c624515485774e2e2181d4afeb05ad5a67")))
(file-name
(git-file-name "lib-webview-for-telegram-desktop" version))
(sha256
(base32 "148z7xzfscynwwwqssdsd97npax6yn8zrd64xw8qzbwff2g2r7k4"))))
("libdbusmenu-qt" ,libdbusmenu-qt)
("libjpeg" ,libjpeg-turbo)
("libtgvoip" ,libtgvoip-for-telegram-desktop)
("lz4" ,lz4)
("materialdecoration" ,materialdecoration)
("minizip" ,minizip)
("nimf" ,nimf)
("openal" ,openal)
("openssl" ,openssl)
("opus" ,opus)
("pulseaudio" ,pulseaudio)
("qrcodegen" ,qrcodegen-cpp)
("qt" ,qtbase-5)
("qtsvg-5" ,qtsvg-5)
("qt5ct" ,qt5ct)
("qtimageformats" ,qtimageformats)
("qtwayland" ,qtwayland)
("range-v3" ,range-v3)
("rlottie" ,rlottie-for-telegram-desktop)
("rnnoise" ,rnnoise)
("tgcalls-source"
,(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/TelegramMessenger/tgcalls.git")
(commit "81e97fa52e25b7775b62ce07bb653533d81e91b3")))
(file-name
(git-file-name "tgcalls-for-telegram-desktop" version))
(sha256
(base32 "0fvad87hyxli83xn19mgf8jjrrh6y6iaig14pckpbkg33vf4wqkj"))))
("webrtc" ,webrtc-for-telegram-desktop)
("x11" ,libx11)
("xcb" ,libxcb)
("xcb-keysyms" ,xcb-util-keysyms)
("xxhash" ,xxhash)
("zlib" ,zlib)))
(propagated-inputs
(list dconf))
(list alsa-lib
c++-gsl
catch2
libexpected
fcitx-qt5
fcitx5-qt
ffmpeg
glib
glibmm-2.64
gtk+
hime
hunspell
jemalloc
kwayland
libdbusmenu-qt
libjpeg-turbo
libtgvoip-for-telegram-desktop
lz4
materialdecoration
minizip
nimf
openal
openssl
opus
pulseaudio
qrcodegen-cpp
qtbase-5
qtsvg-5
qt5ct
qtimageformats
qtwayland
range-v3
rlottie-for-telegram-desktop
rnnoise
webrtc-for-telegram-desktop
libx11
libxcb
xcb-util-keysyms
xxhash
zlib))
(propagated-inputs (list dconf))
(synopsis "Telegram Desktop")
(description "Telegram desktop is the official desktop version of the
Telegram instant messenger.")

View File

@ -17,7 +17,7 @@
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
@ -723,7 +723,7 @@ your calls and messages.")
(define-public pjproject
(package
(name "pjproject")
(version "2.11.1")
(version "2.12.1")
(source
(origin
(method git-fetch)
@ -733,7 +733,7 @@ your calls and messages.")
(file-name (git-file-name name version))
(sha256
(base32
"04s4bgr2d22ym2ajjk6q507hyqss1p59yp8avyyyf5f8032nbaws"))
"0xrj4sznbaip22y9hclff6y81l285bzkkj1smzifskpk3kiwp00w"))
(modules '((guix build utils)))
(snippet
'(begin
@ -742,99 +742,100 @@ your calls and messages.")
(substitute* "aconfigure.ac"
(("third_party/build/os-auto.mak") ""))
(substitute* "Makefile"
(("third_party/build") ""))))
(patches (search-patches "pjproject-install-libpjsua2.patch"))))
(("third_party/build") ""))))))
(build-system gnu-build-system)
(outputs '("out" "debug" "static"))
(arguments
`(#:test-target "selftest"
#:configure-flags
(list "--enable-shared"
"--with-external-speex"
"--with-external-gsm"
"--with-external-srtp"
"--with-external-pa"
;; The following flag is Linux specific.
,@(if (string-contains (or (%current-system)
(%current-target-system)) "linux")
'("--enable-epoll")
'())
"--with-gnutls" ;disable OpenSSL checks
"--disable-libyuv" ;TODO: add missing package
"--disable-silk" ;TODO: add missing package
"--disable-libwebrtc" ;TODO: add missing package
"--disable-ilbc-codec" ;cannot be unbundled
"--disable-g7221-codec" ;TODO: add missing package
"--enable-libsamplerate"
;; -DNDEBUG is set to prevent pjproject from raising
;; assertions that aren't critical, crashing
;; applications as the result.
"CFLAGS=-DNDEBUG"
;; Specify a runpath reference to itself, which is missing and
;; causes the validate-runpath phase to fail.
(string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out")
"/lib"))
#:phases
(modify-phases %standard-phases
(add-before 'build 'build-dep
(lambda _ (invoke "make" "dep")))
;; The check phases is moved after the install phase so to
;; use the installed shared libraries for the tests.
(delete 'check)
(add-after 'install 'move-static-libraries
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(s (string-append (assoc-ref outputs "static") "/lib")))
(mkdir-p s)
(with-directory-excursion out
(for-each (lambda (f)
(rename-file f (string-append s "/" (basename f))))
(find-files "." "\\.a$"))))))
(add-after 'install 'check
(assoc-ref %standard-phases 'check))
(add-before 'patch-source-shebangs 'autoconf
(lambda _
(invoke "autoconf" "-v" "-f" "-i" "-o"
"aconfigure" "aconfigure.ac")))
(add-before 'autoconf 'disable-some-tests
(lambda _
(substitute* "pjlib/src/pjlib-test/test.h"
;; Disable network tests which are slow and/or require an
;; actual network.
(("#define GROUP_NETWORK.*")
"#define GROUP_NETWORK 0\n"))
(substitute* "self-test.mak"
;; Fails with: pjlib-util-test-x86_64-unknown-linux-gnu:
;; ../src/pjlib-util-test/resolver_test.c:1501: action2_1:
;; Assertio n `pj_strcmp2(&pkt->q[0].name, "_sip._udp."
;; "domain2.com")==0' failed.
((" pjlib_util_test ") ""))
(substitute* "pjsip/src/test/test.h"
;; Fails with: Error: unable to acquire TCP transport:
;; [pj_status_t=120101] Network is unreachable.
(("#define INCLUDE_TCP_TEST.*")
"#define INCLUDE_TCP_TEST 0\n")
;; The TSX tests takes a very long time to run; skip them.
(("#define INCLUDE_TSX_GROUP.*")
"#define INCLUDE_TSX_GROUP 0\n"))
(substitute* "pjsip/src/test/dns_test.c"
;; The round_robin_test fails non-deterministically (depending
;; on load); skip it (see:
;; https://github.com/pjsip/pjproject/issues/2500).
(("round_robin_test(pool)") 0))
(substitute* "pjmedia/src/test/test.h"
;; The following tests require a sound card.
(("#define HAS_MIPS_TEST.*")
"#define HAS_MIPS_TEST 0\n")
(("#define HAS_JBUF_TEST.*")
"#define HAS_JBUF_TEST 0\n"))
(substitute* "Makefile"
;; Disable the pjnath and pjsua tests, which require an actual
;; network and an actual sound card, respectively.
(("pjnath-test pjmedia-test pjsip-test pjsua-test")
"pjmedia-test pjsip-test")))))))
(list
#:test-target "selftest"
#:configure-flags
#~(list "--enable-shared"
"--with-external-speex"
"--with-external-gsm"
"--with-external-srtp"
"--with-external-pa"
;; The following flag is Linux specific.
#$@(if (string-contains (or (%current-system)
(%current-target-system)) "linux")
#~("--enable-epoll")
#~())
"--with-gnutls" ;disable OpenSSL checks
"--disable-libyuv" ;TODO: add missing package
"--disable-silk" ;TODO: add missing package
"--disable-libwebrtc" ;TODO: add missing package
"--disable-ilbc-codec" ;cannot be unbundled
"--disable-g7221-codec" ;TODO: add missing package
"--enable-libsamplerate"
;; -DNDEBUG is set to prevent pjproject from raising
;; assertions that aren't critical, crashing
;; applications as the result.
"CFLAGS=-DNDEBUG"
;; Specify a runpath reference to itself, which is missing and
;; causes the validate-runpath phase to fail.
(string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib"))
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'build-dep
(lambda _ (invoke "make" "dep")))
;; The check phases is moved after the install phase so to
;; use the installed shared libraries for the tests.
(delete 'check)
(add-after 'install 'move-static-libraries
(lambda* (#:key outputs #:allow-other-keys)
(let ((s (string-append #$output:static "/lib")))
(mkdir-p s)
(with-directory-excursion #$output
(for-each (lambda (f)
(rename-file f (string-append s "/" (basename f))))
(find-files "." "\\.a$"))))))
(add-after 'install 'check
(assoc-ref %standard-phases 'check))
(add-before 'patch-source-shebangs 'autoconf
(lambda _
(invoke "autoconf" "-v" "-f" "-i" "-o"
"aconfigure" "aconfigure.ac")))
(add-before 'autoconf 'disable-some-tests
(lambda _
(substitute* "pjlib/src/pjlib-test/test.h"
;; Disable network tests which are slow and/or require an
;; actual network.
(("#define GROUP_NETWORK.*")
"#define GROUP_NETWORK 0\n"))
(substitute* "self-test.mak"
;; Fails with: pjlib-util-test-x86_64-unknown-linux-gnu:
;; ../src/pjlib-util-test/resolver_test.c:1501: action2_1:
;; Assertio n `pj_strcmp2(&pkt->q[0].name, "_sip._udp."
;; "domain2.com")==0' failed.
((" pjlib_util_test ") ""))
(substitute* "pjsip/src/test/test.h"
;; Fails with: Error: unable to acquire TCP transport:
;; [pj_status_t=120101] Network is unreachable.
(("#define INCLUDE_TCP_TEST.*")
"#define INCLUDE_TCP_TEST 0\n")
;; The TSX tests takes a very long time to run; skip them.
(("#define INCLUDE_TSX_GROUP.*")
"#define INCLUDE_TSX_GROUP 0\n"))
(substitute* "pjsip/src/test/dns_test.c"
;; The round_robin_test fails non-deterministically (depending
;; on load); skip it (see:
;; https://github.com/pjsip/pjproject/issues/2500).
(("round_robin_test(pool)") 0))
(substitute* "pjmedia/src/test/test.h"
;; The following tests require a sound card.
(("#define HAS_MIPS_TEST.*")
"#define HAS_MIPS_TEST 0\n")
(("#define HAS_JBUF_TEST.*")
"#define HAS_JBUF_TEST 0\n"))
(substitute* "Makefile"
;; Disable the pjnath and pjsua tests, which require an actual
;; network and an actual sound card, respectively.
(("pjnath-test pjmedia-test pjsip-test pjsua-test")
"pjmedia-test pjsip-test")))))))
(native-inputs
(list autoconf automake libtool pkg-config))
(list autoconf
automake
libtool
pkg-config))
(inputs
(list bcg729
gnutls

View File

@ -6209,6 +6209,45 @@ the same place. The package also has a range of techniques for labelling
footnotes with symbols rather than numbers.")
(license license:lppl1.3+)))
(define-public texlive-latex-frankenstein
(package
(name "texlive-latex-frankenstein")
(version (number->string %texlive-revision))
(source (origin
(method svn-fetch)
(uri (svn-reference (url (string-append
"svn://www.tug.org/texlive/tags/"
%texlive-tag "/Master/texmf-dist/"
"/tex/latex/frankenstein"))
(revision %texlive-revision)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"1zhdvn3zgdarlzfcyq8nzilvw0v0bqgl4m0y7j233cbqw8wiil4z"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder (begin
(use-modules (guix build utils))
(let ((target (string-append (assoc-ref %outputs "out")
"/share/texmf-dist/tex/latex/frankenstein")))
(mkdir-p target)
(copy-recursively (assoc-ref %build-inputs "source")
target) #t))))
(home-page "https://ctan.org/pkg/frankenstein")
(synopsis "Collection of unrelated LaTeX packages")
(description
"Frankenstein is a bundle of LaTeX packages serving various purposes and a
BibTeX bibliography style. The individual packages are: @code{abbrevs},
@code{achicago}, @code{achicago} bibstyle, @code{attrib}, @code{blkcntrl},
@code{compsci}, @code{dialogue}, @code{lips}, @code{moredefs}, @code{newclude},
@code{slemph} and @code{titles}. Note: The installation follows the suboptimal
``Quick and dirty'' recipe, rendering some features unavailable.")
;; README mentions an unspecified version of GNU GPL and points to COPYING,
;; which is missing. However, the individual files mention LPPL 1.2 or
;; later.
(license license:lppl1.2+)))
(define-public texlive-latex-letltxmacro
(package
(inherit (simple-texlive-package
@ -6929,6 +6968,24 @@ They combine a comprehensive Unicode-based collection of mathematical symbols
and alphabets with a set of text faces suitable for professional publishing.")
(license license:silofl1.1))))
(define-public texlive-latex-sidecap
(package
(inherit (simple-texlive-package
"texlive-latex-sidecap"
(list "doc/latex/sidecap/"
"tex/latex/sidecap/")
(base32 "1biyxvh7fm70pq1rxqrla2vs013bpsd1j8jvlyl3vjg433d5bly3")
#:trivial? #t))
(build-system texlive-build-system)
(home-page "https://ctan.org/pkg/sidecap")
(synopsis "Typeset captions sideways")
(description
"@code{sidecap} defines environments called @code{SCfigure} and
@code{SCtable} (analogous to @code{figure} and @code{table}) to typeset
captions sideways. Options include @code{outercaption}, @code{innercaption},
@code{leftcaption} and @code{rightcaption}.")
(license license:lppl1.0+)))
(define-public texlive-stmaryrd
(let ((template (simple-texlive-package
"texlive-stmaryrd"
@ -11238,6 +11295,33 @@ Danish in @code{babel}. It provides all the necessary macros, definitions and
settings to typeset Danish documents.")
(license license:lppl1.3c+))))
(define-public texlive-babel-polish
(let ((template (simple-texlive-package
"texlive-babel-polish"
(list "/source/generic/babel-polish/")
(base32
"1jymxl98mwxmq0yq90mhrr7bq7c613rh1rnhl7l3bih36af55rwr"))))
(package
(inherit template)
(arguments
(substitute-keyword-arguments (package-arguments template)
((#:tex-directory _ '())
"generic/babel-polish")
((#:build-targets _ '())
''("polish.ins")) ; TODO: use dtx and build documentation
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'chdir
(lambda _
(chdir "source/generic/babel-polish")))))))
(home-page "https://www.ctan.org/pkg/babel-polish")
(synopsis "Babel support for Polish")
(description
"This package provides the language definition file for support of
Polish in @code{babel}. Some shortcuts are defined, as well as translations to
Polish of standard ``LaTeX names''.")
(license license:lppl1.3+))))
(define-public texlive-mdframed
(package
(inherit

View File

@ -77,7 +77,7 @@
(define-public vim
(package
(name "vim")
(version "9.0.0325")
(version "9.0.0509")
(source (origin
(method git-fetch)
(uri (git-reference
@ -86,7 +86,7 @@
(file-name (git-file-name name version))
(sha256
(base32
"18m3lhp7d8a0n3bx0kqn082gqrh7lyar1ndvwq79gj73fz5c19vh"))))
"0affh0q6r5cvf01f4m5nr94bq1k23bzhiwa4xlpqim21yipafamm"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
@ -95,14 +95,11 @@
(modify-phases %standard-phases
(add-after 'configure 'patch-absolute-paths
(lambda _
(substitute* '("runtime/autoload/context.vim"
"src/testdir/Makefile"
(substitute* '("src/testdir/Makefile"
"src/testdir/test_filetype.vim"
"src/testdir/test_normal.vim"
"src/testdir/test_popupwin.vim"
"src/testdir/test_prompt_buffer.vim"
"src/testdir/test_shell.vim"
"src/testdir/test_suspend.vim"
"src/testdir/test_terminal.vim"
"src/testdir/test_terminal2.vim")
(("/bin/sh") (which "sh")))
@ -826,7 +823,7 @@ and support for fonts with ligatures.")
(define-public vifm
(package
(name "vifm")
(version "0.12")
(version "0.12.1")
(source
(origin
(method url-fetch)
@ -837,7 +834,7 @@ and support for fonts with ligatures.")
"vifm-" version ".tar.bz2")))
(sha256
(base32
"1h5j4y704nciyzg3aaav8sl3r5h9mpwq8f28cj65nnxk6a7n3a9k"))))
"122ncp319xisxjxcy33bshjib6905bb0aaz0xjdfkkycplz83qlg"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--disable-build-timestamp")
@ -852,8 +849,7 @@ and support for fonts with ligatures.")
(("/bin/bash") (which "bash")))
;; This test segfaults
(substitute* "tests/Makefile"
(("misc") ""))
#t))
(("misc") ""))))
(add-after 'install 'install-vim-plugin-files
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@ -864,8 +860,7 @@ and support for fonts with ligatures.")
(copy-recursively (string-append vifm "/vim")
vimfiles)
(delete-file-recursively (string-append vifm "/colors"))
(delete-file-recursively (string-append vifm "/vim")))
#t)))))
(delete-file-recursively (string-append vifm "/vim"))))))))
(native-inputs
(list groff)) ; for the documentation
(inputs
@ -1380,30 +1375,29 @@ files for reading or editing, and perform basic file system operations.")
(license license:wtfpl2)))
(define-public vim-nerdcommenter
(let ((commit "a65465d321f2f8a74b2ffa540b9b87563f7e12e8")
(revision "1"))
(package
(name "vim-nerdcommenter")
(version (git-version "2.5.2" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/preservim/nerdcommenter")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "00ir65iv8jfbgzjmj7332fmydh0qhabbhx8zbvd3j6pgfxqpaafw"))))
(build-system copy-build-system)
(arguments
'(#:install-plan
'(("autoload" "share/vim/vimfiles/")
("doc" "share/vim/vimfiles/")
("plugin" "share/vim/vimfiles/"))))
(home-page "https://github.com/preservim/nerdcommenter")
(synopsis "Vim plugin for easy commenting of code")
(description
"NERD commenter is a Vim plugin that provides many different commenting
(package
(name "vim-nerdcommenter")
(version "2.6.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/preservim/nerdcommenter")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1ka2rqn7rby55aps3iblh1dcqxm7m7qx72mpkz6y2aaj8mkj0zyd"))))
(build-system copy-build-system)
(arguments
(list
#:install-plan
#~`(("autoload" "share/vim/vimfiles/")
("doc" "share/vim/vimfiles/")
("plugin" "share/vim/vimfiles/"))))
(home-page "https://github.com/preservim/nerdcommenter")
(synopsis "Vim plugin for easy commenting of code")
(description
"NERD commenter is a Vim plugin that provides many different commenting
operations and styles which are invoked via key mappings and a menu. These
operations are available for most filetypes.")
(license license:cc0))))
(license license:cc0)))

View File

@ -169,6 +169,7 @@
(base32
"1rmvrgqjhrvcmchnz170dxvrrf14n6nm39y8ivrprmfydd9lwqx0"))
(patches (search-patches "qemu-build-info-manual.patch"
"qemu-disable-aarch64-migration-test.patch"
"qemu-fix-agent-paths.patch"))
(modules '((guix build utils)))
(snippet

View File

@ -1987,6 +1987,41 @@ productive, customizable lisp based systems.")
(description "This package provides a StumpWM interactive shell.")
(license (list license:gpl2+ license:gpl3+ license:bsd-2))))
(define-public sbcl-stumpwm-pamixer
(let ((commit "aa820533c80ea1af5a0e107cea25eaf34e69dc24")
(revision "1"))
(package
(name "sbcl-stumpwm-pamixer")
(version (git-version "0.1.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Junker/stumpwm-pamixer")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0djcrr16bx40l7b60d4j507vk5l42fdgmjpgrnk86z1ba8wlqim8"))))
(inputs (list pamixer `(,stumpwm "lib")))
(build-system asdf-build-system/sbcl)
(arguments
(list #:asd-systems ''("pamixer")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-pamixer
(lambda _
(substitute* "pamixer.lisp"
(("\"pamixer \"")
(string-append "\""
#$(this-package-input "pamixer")
"/bin/pamixer \""))))))))
(home-page "https://github.com/Junker/stumpwm-pamixer")
(synopsis "StumpWM Pamixer Module")
(description
"This package provides a minimalistic Pulseaudio volume and microphone
control module for StumpWM.")
(license license:gpl3))))
(define-public sbcl-stumpwm+slynk
(deprecated-package "sbcl-stumpwm-with-slynk" stumpwm+slynk))
@ -2809,7 +2844,7 @@ Type=Application~%"
(define-public avizo
(package
(name "avizo")
(version "1.2")
(version "1.2.1")
(source (origin
(method git-fetch)
(uri (git-reference
@ -2818,7 +2853,7 @@ Type=Application~%"
(file-name (git-file-name name version))
(sha256
(base32
"02h2jbgrbl2hyq6bzwryc1r47mipgdqrdh7zi44skc25w045s6q5"))))
"0ddv5ssxfjbzhqskbbhi9qj1yqkraiv3r8svfmp9s5nnfpid8aba"))))
(build-system meson-build-system)
(inputs (list gtk+))
(native-inputs

View File

@ -497,7 +497,7 @@ matching them against regular expressions.")
(define-public xfce4-pulseaudio-plugin
(package
(name "xfce4-pulseaudio-plugin")
(version "0.4.3")
(version "0.4.5")
(source
(origin
(method url-fetch)
@ -506,21 +506,8 @@ matching them against regular expressions.")
(version-major+minor version) "/"
"xfce4-pulseaudio-plugin-" version ".tar.bz2"))
(sha256
(base32 "0nv1lbkshfzar87f6xq1ib120pjja24r7135rbc42wqkw8vq4las"))))
(base32 "05f12fzn8q1y7jkzanxy82pzl00km66gngb5j6d5k8kbx9ykj9a4"))))
(build-system gnu-build-system)
(arguments
`(#:phases
;; For dbus/dbus-glib.h in pulseaudio-config.h.
(modify-phases %standard-phases
(add-after 'set-paths 'augment-cflags
(lambda* (#:key inputs #:allow-other-keys)
(setenv "C_INCLUDE_PATH"
(string-append (assoc-ref inputs "dbus-glib")
"/include/dbus-1.0" ":"
(assoc-ref inputs "dbus")
"/include/dbus-1.0" ":"
(or (getenv "C_INCLUDE_PATH") "")))
#t)))))
(native-inputs
(list intltool pkg-config dbus-glib dbus))
(inputs
@ -1530,7 +1517,7 @@ each time a new earthquake occurs.")
(define-public xfce4-datetime-plugin
(package
(name "xfce4-datetime-plugin")
(version "0.8.1")
(version "0.8.2")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@ -1539,7 +1526,7 @@ each time a new earthquake occurs.")
"/xfce4-datetime-plugin-" version ".tar.bz2"))
(sha256
(base32
"0h15mxq5lawlxyr6h1vxc60rkf0rpmnv81l0f52mrswww9dz3xp9"))))
"0dz0syl9dm55pqcqywbnjpi14z2xh7pg2ipmxjgn4pq1az28qf3c"))))
(build-system gnu-build-system)
(native-inputs
(list intltool pkg-config))
@ -1847,7 +1834,7 @@ interfaces of your choice in the panel.")
(define-public xfce4-places-plugin
(package
(name "xfce4-places-plugin")
(version "1.8.1")
(version "1.8.2")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@ -1856,7 +1843,7 @@ interfaces of your choice in the panel.")
"/xfce4-places-plugin-" version ".tar.bz2"))
(sha256
(base32
"1chac4ki70axgvkmhw94m0srsv0pwiwqrqbh8di0y9n90fgj24gj"))))
"00bh7d91vzk6s38djlpnihvjvymxgrnx3nh6sm2y3mnx2jmb4chy"))))
(build-system gnu-build-system)
(native-inputs
(list intltool desktop-file-utils pkg-config))

View File

@ -410,7 +410,7 @@ If NEGATE? is @code{#t}, retrieve all fields except FIELDS."
(define* (interpose ls #:optional (delimiter "\n") (grammar 'infix))
"Same as @code{string-join}, but without join and string, returns an
"Same as @code{string-join}, but without join and string, returns a
DELIMITER interposed LS. Support 'infix and 'suffix GRAMMAR values."
(when (not (member grammar '(infix suffix)))
(raise
@ -442,6 +442,7 @@ the list result in @code{#t} when applying PRED? on them."
(define (text-config? config)
(list-of file-like?))
(define (serialize-text-config field-name val)
#~(string-append
#$@(interpose

286
gnu/services/samba.scm Normal file
View File

@ -0,0 +1,286 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Simon Streit <simon@netpanic.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 services samba)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages admin)
#:use-module (gnu packages samba)
#:use-module (gnu services)
#:use-module (gnu services configuration)
#:use-module (gnu services shepherd)
#:use-module (gnu services base)
#:use-module (gnu system shadow)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix modules)
#:use-module (guix records)
#:use-module (ice-9 format)
#:use-module (ice-9 match)
#:use-module (ice-9 textual-ports)
#:use-module (srfi srfi-1)
#:export (samba-service-type
samba-configuration
samba-smb-conf
wsdd-service-type
wsdd-configuration))
(define %smb-conf
(plain-file "smb.conf" "[global]
workgroup = WORKGROUP
server string = Samba Server
server role = standalone server
log file = /var/log/samba/log.%m
logging = file
"))
(define-record-type* <samba-configuration>
samba-configuration
make-samba-configuration
samba-configuration?
(package samba-configuration-package
(default samba))
(config-file samba-configuration-config-file
(default #f))
(enable-samba? samba-configuration-enable-samba?
(default #f))
(enable-smbd? samba-configuration-enable-smbd?
(default #t))
(enable-nmbd? samba-configuration-enable-nmbd?
(default #t))
(enable-winbindd? samba-configuration-enable-winbindd?
(default #t)))
(define (samba-activation config)
(let ((package (samba-configuration-package config))
(config-file (samba-configuration-config-file config)))
(with-imported-modules '((guix build utils))
(let ((lib-dir "/var/lib/samba")
(log-dir "/var/log/samba")
(run-dir "/var/run/samba")
(lock-dir "/var/lock/samba")
(cache-dir "/var/cache/samba")
(etc-dir "/etc/samba")
(smb.conf "/etc/samba/smb.conf"))
#~(begin
(use-modules (guix build utils))
(mkdir-p #$etc-dir)
(mkdir-p #$lib-dir)
(mkdir-p/perms (string-append #$lib-dir "/private")
(getpwnam "root") #o700)
(mkdir-p #$log-dir)
(mkdir-p #$run-dir)
(mkdir-p #$lock-dir)
(mkdir-p #$cache-dir)
(copy-file #$config-file #$smb.conf)
(invoke #$(file-append package "/bin/testparm")
"--suppress-prompt" #$smb.conf))))))
(define (samba-samba-shepherd-service config)
(let ((package (samba-configuration-package config))
(config-file (samba-configuration-config-file config)))
(list (shepherd-service
(documentation "Run Samba")
(provision '(samba-samba))
(requirement '(networking))
(start #~(make-forkexec-constructor
(list #$(file-append package "/sbin/samba")
(string-append "--configfile=" #$config-file)
"--foreground"
"--no-process-group")))
(stop #~(make-kill-destructor))))))
(define (samba-nmbd-shepherd-service config)
(let ((package (samba-configuration-package config))
(config-file (samba-configuration-config-file config)))
(list (shepherd-service
(documentation "Run NMBD")
(provision '(samba-nmbd))
(requirement '(networking))
(start #~(make-forkexec-constructor
(list #$(file-append package "/sbin/nmbd")
(string-append "--configfile=" #$config-file)
"--foreground"
"--no-process-group")))
(stop #~(make-kill-destructor))))))
(define (samba-smbd-shepherd-service config)
(let ((package (samba-configuration-package config))
(config-file (samba-configuration-config-file config)))
(list (shepherd-service
(documentation "Run SMBD")
(provision '(samba-smbd))
(requirement '(networking))
(start #~(make-forkexec-constructor
(list #$(file-append package "/sbin/smbd")
(string-append "--configfile=" #$config-file)
"--foreground"
"--no-process-group")))
(stop #~(make-kill-destructor))))))
(define (samba-winbindd-shepherd-service config)
(let ((package (samba-configuration-package config))
(config-file (samba-configuration-config-file config)))
(list (shepherd-service
(documentation "Run Winnbindd for Name Service Switch")
(provision '(samba-winbindd))
(requirement '(networking))
(start #~(make-forkexec-constructor
(list #$(file-append package "/sbin/winbindd")
(string-append "--configfile=" #$config-file)
"--foreground"
"--no-process-group")))
(stop #~(make-kill-destructor))))))
(define (samba-shepherd-services config)
(append (if (samba-configuration-enable-samba? config)
(samba-samba-shepherd-service config)
'())
(if (samba-configuration-enable-nmbd? config)
(samba-nmbd-shepherd-service config)
'())
(if (samba-configuration-enable-smbd? config)
(samba-smbd-shepherd-service config)
'())
(if (samba-configuration-enable-winbindd? config)
(samba-winbindd-shepherd-service config)
'())))
(define samba-service-type
(service-type
(name 'samba)
(description "Run @uref{https://www.samba.org/, Samba}, a network file and
print service for all clients using the SMB/CIFS protocol. Samba is an
important component to seamlessly integrate Linux/Unix Servers and Desktops
into Active Directory environments. It can function both as a domain
controller or as a regular domain member.")
(extensions
(list (service-extension shepherd-root-service-type
samba-shepherd-services)
(service-extension activation-service-type
samba-activation)
(service-extension profile-service-type
(compose list samba-configuration-package))))
(default-value (samba-configuration))))
;;;
;;; WSDD
;;;
(define-record-type* <wsdd-configuration>
wsdd-configuration
make-wsdd-configuration
wsdd-configuration?
(package wsdd-configuration-package
(default wsdd))
(ipv4only? wsdd-configuration-ipv4only?
(default #f))
(ipv6only? wsdd-configuration-ipv6only?
(default #f))
(chroot wsdd-configuration-chroot
(default #f))
(hop-limit wsdd-configuration-hop-limit
(default 1))
(interfaces wsdd-configuration-interfaces
(default '()))
(uuid-device wsdd-configuration-uuid-device
(default #f))
(domain wsdd-configuration-domain
(default #f))
(host-name wsdd-configuration-host-name
(default #f))
(preserve-case? wsdd-configuration-preserve-case?
(default #f))
(workgroup wsdd-configuration-workgroup
(default "WORKGROUP")))
(define wsdd-accounts
(list
(user-group (name "wsdd"))
(user-account (name "wsdd")
(group "wsdd")
(comment "Web Service Discovery user")
(home-directory "/var/empty")
(shell (file-append shadow "/sbin/nologin")))))
(define (wsdd-shepherd-service config)
(match-record config <wsdd-configuration>
(package ipv4only? ipv6only? chroot hop-limit interfaces uuid-device
domain host-name preserve-case? workgroup)
(list (shepherd-service
(documentation "The Web Service Discovery daemon enables (Samba) hosts,
like your local NAS device, to be found by Web Service Discovery Clients
like Windows.")
(provision '(wsdd))
(requirement '(networking))
(start #~(make-forkexec-constructor
(list #$(file-append package "/bin/wsdd")
#$@(if ipv4only?
#~("--ipv4only")
'())
#$@(if ipv6only?
#~("--ipv6only")
'())
#$@(if chroot
#~("--chroot" #$chroot)
'())
#$@(if hop-limit
#~("--hoplimit" #$(number->string hop-limit))
'())
#$@(map (lambda (interfaces)
(string-append "--interface=" interfaces))
interfaces)
#$@(if uuid-device
#~("--uuid" #$uuid-device)
'())
#$@(if domain
#~("--domain" #$domain)
'())
#$@(if host-name
#~("--hostname" #$host-name)
'())
#$@(if preserve-case?
#~("--preserve-case")
'())
#$@(if workgroup
#~("--workgroup" #$workgroup)
'()))
#:user "wsdd"
#:group "wsdd"
#:log-file "/var/log/wsdd.log"))
(stop #~(make-kill-destructor))))))
(define wsdd-service-type
(service-type
(name 'wsdd)
(description "Web Service Discovery Daemon")
(extensions
(list (service-extension shepherd-root-service-type
wsdd-shepherd-service)
(service-extension account-service-type
(const wsdd-accounts))
(service-extension profile-service-type
(compose list wsdd-configuration-package))))
(default-value (wsdd-configuration))))

View File

@ -685,13 +685,11 @@ argument, either a registered username or the fingerprint of the account.")
;; Finally, return the PID of the daemon process.
daemon-pid))
(stop
#~(lambda (pid . args)
(kill pid SIGKILL)
;; Wait for the process to exit; this prevents overlapping
;; processes when issuing 'herd restart'.
(waitpid pid)
#f))))))))
;; XXX: jamid takes some time to terminate, and GNU Shepherd
;; doesn't block when calling waitpid (see:
;; https://issues.guix.gnu.org/57922). Using SIGKILL instead
;; of SIGTERM works around that.
(stop #~(make-kill-destructor SIGKILL))))))))
(define jami-service-type
(service-type

View File

@ -14,6 +14,7 @@
;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020, 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro>
;;; Copyright © 2022 Simen Endsjø <simendsjo@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -646,8 +647,12 @@ of index files."
" server_name " (config-domain-strings server-name) ";\n"
(and/l ssl-certificate " ssl_certificate " <> ";\n")
(and/l ssl-certificate-key " ssl_certificate_key " <> ";\n")
" root " root ";\n"
" index " (config-index-strings index) ";\n"
(if (not (equal? "" root))
(list " root " root ";\n")
"")
(if (not (null? index))
(list " index " (config-index-strings index) ";\n")
"")
(if (not (nil? try-files))
(and/l (config-index-strings try-files) " try_files " <> ";\n")
"")

View File

@ -434,7 +434,7 @@ TARGET in the other system."
(define %pseudo-file-system-types
;; List of know pseudo file system types. This is used when validating file
;; system definitions.
'("binfmt_misc" "cgroup" "debugfs" "devpts" "devtmpfs" "efivarfs" "fusectl"
'("binfmt_misc" "cgroup" "cgroup2" "debugfs" "devpts" "devtmpfs" "efivarfs" "fusectl"
"hugetlbfs" "overlay" "proc" "securityfs" "sysfs" "tmpfs"))
(define %fuse-control-file-system

View File

@ -3,6 +3,7 @@
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2022 Pavel Shlyak <p.shlyak@pantherx.org>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2022 Alex Griffin <a@ajgrf.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -32,17 +33,20 @@
#:use-module ((guix self) #:select (make-config.scm))
#:use-module (gnu bootloader)
#:use-module (gnu bootloader grub)
#:use-module (gnu compression)
#:use-module (gnu image)
#:use-module (guix platform)
#:use-module (gnu services)
#:use-module (gnu services base)
#:use-module (gnu system)
#:use-module (gnu system accounts)
#:use-module (gnu system file-systems)
#:use-module (gnu system linux-container)
#:use-module (gnu system uuid)
#:use-module (gnu system vm)
#:use-module (guix packages)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages bootloaders)
#:use-module (gnu packages cdrom)
#:use-module (gnu packages compression)
@ -65,6 +69,7 @@
#:use-module (ice-9 match)
#:export (root-offset
root-label
image-without-os
esp-partition
esp32-partition
@ -73,6 +78,8 @@
efi-disk-image
iso9660-image
docker-image
tarball-image
wsl2-image
raw-with-offset-disk-image
image-with-os
@ -82,6 +89,8 @@
iso-image-type
uncompressed-iso-image-type
docker-image-type
tarball-image-type
wsl2-image-type
raw-with-offset-image-type
image-with-label
@ -102,6 +111,12 @@
;; Generic root partition label.
(define root-label "Guix_image")
(define-syntax-rule (image-without-os . fields)
"Return an image record with the mandatory operating-system field set to
#false. This is useful when creating an image record that will serve as a
parent image record."
(image (operating-system #false) . fields))
(define esp-partition
(partition
(size (* 40 (expt 2 20)))
@ -127,17 +142,17 @@
(initializer (gexp initialize-root-partition))))
(define efi-disk-image
(image
(image-without-os
(format 'disk-image)
(partitions (list esp-partition root-partition))))
(define efi32-disk-image
(image
(image-without-os
(format 'disk-image)
(partitions (list esp32-partition root-partition))))
(define iso9660-image
(image
(image-without-os
(format 'iso9660)
(partitions
(list (partition
@ -146,11 +161,19 @@
(flags '(boot)))))))
(define docker-image
(image
(image-without-os
(format 'docker)))
(define tarball-image
(image-without-os
(format 'tarball)))
(define wsl2-image
(image-without-os
(format 'wsl2)))
(define* (raw-with-offset-disk-image #:optional (offset root-offset))
(image
(image-without-os
(format 'disk-image)
(partitions
(list (partition
@ -211,6 +234,16 @@ set to the given OS."
(name 'docker)
(constructor (cut image-with-os docker-image <>))))
(define tarball-image-type
(image-type
(name 'tarball)
(constructor (cut image-with-os tarball-image <>))))
(define wsl2-image-type
(image-type
(name 'wsl2)
(constructor (cut image-with-os wsl2-image <>))))
(define raw-with-offset-image-type
(image-type
(name 'raw-with-offset)
@ -681,6 +714,88 @@ output file."
#:options `(#:references-graphs ((,graph ,os))
#:substitutable? ,substitutable?))))
;;;
;;; Tarball image.
;;;
;; TODO: Some bits can be factorized with (guix scripts pack).
(define* (system-tarball-image image
#:key
(name "image")
(compressor (srfi-1:first %compressors))
(wsl? #f))
"Build a tarball of IMAGE. NAME is the base name to use for the
output file."
(let* ((os (image-operating-system image))
(substitutable? (image-substitutable? image))
(schema (local-file (search-path %load-path
"guix/store/schema.sql")))
(name (string-append name ".tar" (compressor-extension compressor)))
(graph "system-graph")
(root (srfi-1:find (lambda (user)
(and=> (user-account-uid user) zero?))
(operating-system-users os)))
(root-shell (or (and=> root user-account-shell)
(file-append bash "/bin/bash"))))
(define builder
(with-extensions gcrypt-sqlite3&co ;for (guix store database)
(with-imported-modules `(,@(source-module-closure
'((guix build pack)
(guix build store-copy)
(guix build utils)
(guix store database)
(gnu build image))
#:select? not-config?)
((guix config) => ,(make-config.scm)))
#~(begin
(use-modules (guix build pack)
(guix build store-copy)
(guix build utils)
(guix store database)
(gnu build image))
;; Set the SQL schema location.
(sql-schema #$schema)
;; Allow non-ASCII file names--e.g., 'nss-certs'--to be decoded.
(setenv "GUIX_LOCPATH"
#+(file-append glibc-utf8-locales "/lib/locale"))
(setlocale LC_ALL "en_US.utf8")
(let ((image-root (string-append (getcwd) "/tmp-root"))
(tar #+(file-append tar "/bin/tar")))
(mkdir-p image-root)
(initialize-root-partition image-root
#:references-graphs '(#$graph)
#:deduplicate? #f
#:system-directory #$os)
(with-directory-excursion image-root
#$@(if wsl?
#~(;; WSL requires /bin/sh. Will be overwritten by
;; system activation.
(symlink #$root-shell "./bin/sh")
;; WSL requires /bin/mount to access the host fs.
(symlink #$(file-append util-linux "/bin/mount")
"./bin/mount"))
#~())
(apply invoke tar "-cvf" #$output "."
(tar-base-options
#:tar tar
#:compressor
#+(and=> compressor compressor-command)))))))))
(computed-file name builder
;; Allow offloading so that this I/O-intensive process
;; doesn't run on the build farm's head node.
#:local-build? #f
#:options `(#:references-graphs ((,graph ,os))
#:substitutable? ,substitutable?))))
;;
;; Image creation.
@ -690,7 +805,7 @@ output file."
"Return the IMAGE root partition file-system type."
(case (image-format image)
((iso9660) "iso9660")
((docker) "dummy")
((docker tarball wsl2) "dummy")
(else
(partition-file-system (find-root-partition image)))))
@ -827,6 +942,10 @@ image, depending on IMAGE format."
("bootcfg" ,bootcfg))))
((memq image-format '(docker))
(system-docker-image image*))
((memq image-format '(tarball))
(system-tarball-image image*))
((memq image-format '(wsl2))
(system-tarball-image image* #:wsl? #t))
((memq image-format '(iso9660))
(system-iso9660-image
image*

View File

@ -74,9 +74,9 @@
#:wal-mode? #f)))))
(define hurd-disk-image
(image
(image-without-os
(format 'disk-image)
(platform hurd)
(platform i586-gnu)
(partitions
(list (partition
(size 'guess)
@ -104,14 +104,14 @@
(define hurd-barebones-disk-image
(image
(inherit
(os+platform->image hurd-barebones-os hurd
(os+platform->image hurd-barebones-os i586-gnu
#:type hurd-image-type))
(name 'hurd-barebones-disk-image)))
(define hurd-barebones-qcow2-image
(image
(inherit
(os+platform->image hurd-barebones-os hurd
(os+platform->image hurd-barebones-os i586-gnu
#:type hurd-qcow2-image-type))
(name 'hurd-barebones.qcow2)))

170
gnu/system/images/wsl2.scm Normal file
View File

@ -0,0 +1,170 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.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 system images wsl2)
#:use-module (gnu bootloader)
#:use-module (gnu image)
#:use-module (gnu packages admin)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages guile)
#:use-module (gnu packages linux)
#:use-module (gnu services)
#:use-module (gnu services base)
#:use-module (gnu system)
#:use-module (gnu system image)
#:use-module (gnu system shadow)
#:use-module (guix build-system trivial)
#:use-module (guix gexp)
#:use-module (guix packages)
#:export (wsl-boot-program
wsl-os
wsl2-image))
(define (wsl-boot-program user)
"Program that runs the system boot script, then starts a login shell as
USER."
(program-file
"wsl-boot-program"
(with-imported-modules '((guix build syscalls))
#~(begin
(use-modules (guix build syscalls))
(unless (file-exists? "/run/current-system")
(let ((shepherd-socket "/var/run/shepherd/socket"))
;; Clean up this file so we can wait for it later.
(when (file-exists? shepherd-socket)
(delete-file shepherd-socket))
;; Child process boots the system and is replaced by shepherd.
(when (zero? (primitive-fork))
(let* ((system-generation
(readlink "/var/guix/profiles/system"))
(system (readlink
(string-append
(if (absolute-file-name? system-generation)
""
"/var/guix/profiles/")
system-generation))))
(setenv "GUIX_NEW_SYSTEM" system)
(execl #$(file-append guile-3.0 "/bin/guile")
"guile"
"--no-auto-compile"
(string-append system "/boot"))))
;; Parent process waits for shepherd before continuing.
(while (not (file-exists? shepherd-socket))
(sleep 1))))
(let* ((pw (getpw #$user))
(shell (passwd:shell pw))
(sudo #+(file-append sudo "/bin/sudo"))
(args (cdr (command-line))))
;; Save the value of $PATH set by WSL. Useful for finding
;; Windows binaries to run with WSL's binfmt interop.
(setenv "WSLPATH" (getenv "PATH"))
;; /run is mounted with the nosuid flag by WSL. This prevents
;; running the /run/setuid-programs. Remount it without this flag
;; as a workaround. See:
;; https://github.com/microsoft/WSL/issues/8716.
(mount #f "/run" #f
MS_REMOUNT
#:update-mtab? #f)
;; Start login shell as user.
(apply execl sudo "sudo"
"--preserve-env=WSLPATH"
"-u" #$user
"--"
shell "-l" args))))))
(define dummy-package
(package
(name "dummy")
(version "0")
(source #f)
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:target #f
#:builder (begin
(use-modules (guix build utils))
(let* ((out (assoc-ref %outputs "out"))
(dummy (string-append out "/dummy")))
(mkdir-p out)
(call-with-output-file dummy
(const #t))))))
(home-page #f)
(synopsis #f)
(description #f)
(license #f)))
(define dummy-bootloader
(bootloader
(name 'dummy-bootloader)
(package dummy-package)
(configuration-file "/dev/null")
(configuration-file-generator
(lambda (. _rest)
(plain-file "dummy-bootloader" "")))
(installer #~(const #t))))
(define dummy-kernel dummy-package)
(define (dummy-initrd . _rest)
(plain-file "dummy-initrd" ""))
(define-public wsl-os
(operating-system
(host-name "gnu")
(timezone "Etc/UTC")
(bootloader
(bootloader-configuration
(bootloader dummy-bootloader)))
(kernel dummy-kernel)
(initrd dummy-initrd)
(initrd-modules '())
(firmware '())
(file-systems '())
(users (cons* (user-account
(name "guest")
(group "users")
(supplementary-groups '("wheel")) ; allow use of sudo
(password "")
(comment "Guest of GNU"))
(user-account
(inherit %root-account)
(shell (wsl-boot-program "guest")))
%base-user-accounts))
(services
(list
(service guix-service-type)
(service special-files-service-type
`(("/bin/sh" ,(file-append bash "/bin/bash"))
("/bin/mount" ,(file-append util-linux "/bin/mount"))
("/usr/bin/env" ,(file-append coreutils "/bin/env"))))))))
(define wsl2-image
(image
(inherit
(os->image wsl-os
#:type wsl2-image-type))
(name 'wsl2-image)))
wsl2-image

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