Archived
1
0
Fork 0

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 #+TITLE: Guix NEWS history of user-visible changes
#+STARTUP: content hidestars #+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 © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org> 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 *** New interface for declaring swap space
*** GNOME is now at version 42 *** GNOME is now at version 42
*** TeX Live is now at version 2021 *** 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 *** Python is now faster thanks to being built with optimizations
*** The Rust bootstrap now starts from 1.54 instead of 1.19 *** The Rust bootstrap now starts from 1.54 instead of 1.19
*** Most Python 2 packages have been removed *** 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 *** Faster shared libraries discovery via a per-package dynamic linker cache
*** Package inputs can now be plain package lists *** Package inputs can now be plain package lists
*** A package origin can now be a single file rather than an archive *** A package origin can now be a single file rather than an archive
*** Multiple Tex Live trees can now be used via GUIX_TEXMF *** New sanity-check phase to detect Python packaging problems at build time
*** A new sanity-check phase detects packaging problems at build time
*** Fetching sources can now fall-back to use Disarchive *** Fetching sources can now fall-back to use Disarchive
*** Improved CI and infrastructure *** Improved CI and infrastructure
*** Multiple cross-compilation tooling addition and fixes *** 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 *** The installer now has a crash dump upload mechanism
*** Emacs now supports native compilation *** Emacs now supports native compilation
*** GRUB bootloader now supports chain-loading *** 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 ** Programming interfaces
*** (guix records) now supports “field sanitizers” *** Package input fields can now plain package lists
*** Build phases are no longer required to return a boolean *** G-expressions can now be used in build phases
*** G-Expressions can now be used to author build phases
*** Various improvements to the helpers in (gnu service configuration)
*** New modify-inputs macro to ease customizing a list of package inputs *** New modify-inputs macro to ease customizing a list of package inputs
*** New this-package-input and this-package-native-input macros *** 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 *** texlive-union is now deprecated in favor of texlive-updmap.cfg
*** New (guix cpu) module *** New (guix cpu) module
*** New (guix least-authority) module *** New (guix least-authority) module
@ -112,7 +115,7 @@ nar-herder, opendht, rasdaemon, seatd, strongswan
(<https://issues.guix.gnu.org/51425>) (<https://issues.guix.gnu.org/51425>)
*** Fonts can now be discovered in any profile via XDG_DATA_DIRS *** Fonts can now be discovered in any profile via XDG_DATA_DIRS
(<https://issues.guix.gnu.org/31403>) (<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 *** Various Python reproducibility fixes
*** The installer now supports MSDOS disk labels on UEFI systems *** The installer now supports MSDOS disk labels on UEFI systems
(<https://issues.guix.gnu.org/47889>) (<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}. @command{guix install git:send-email}.
@c Debbugs bug: https://debbugs.gnu.org/db/15/15361.html @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 @node Tracking Bugs and Patches
@section 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 Karl Hallsby@*
Copyright @copyright{} 2022 Justin Veilleux@* Copyright @copyright{} 2022 Justin Veilleux@*
Copyright @copyright{} 2022 Reily Siegel@* Copyright @copyright{} 2022 Reily Siegel@*
Copyright @copyright{} 2022 Simon Streit@*
Permission is granted to copy, distribute and/or modify this document Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or under the terms of the GNU Free Documentation License, Version 1.3 or
@ -182,6 +183,8 @@ Weblate} (@pxref{Translating Guix}).
* System Configuration:: Configuring the operating system. * System Configuration:: Configuring the operating system.
* Home Configuration:: Configuring the home environment. * Home Configuration:: Configuring the home environment.
* Documentation:: Browsing software user manuals. * Documentation:: Browsing software user manuals.
* Platforms:: Defining platforms.
* System Images:: Creating system images.
* Installing Debugging Files:: Feeding the debugger. * Installing Debugging Files:: Feeding the debugger.
* Using TeX and LaTeX:: Typesetting. * Using TeX and LaTeX:: Typesetting.
* Security Updates:: Deploying security fixes quickly. * Security Updates:: Deploying security fixes quickly.
@ -385,6 +388,7 @@ Services
* DNS Services:: DNS daemons. * DNS Services:: DNS daemons.
* VPN Services:: VPN daemons. * VPN Services:: VPN daemons.
* Network File System:: NFS related services. * Network File System:: NFS related services.
* Samba Services:: Samba services.
* Continuous Integration:: Cuirass and Laminar services. * Continuous Integration:: Cuirass and Laminar services.
* Power Management Services:: Extending battery life. * Power Management Services:: Extending battery life.
* Audio Services:: The MPD. * Audio Services:: The MPD.
@ -405,6 +409,18 @@ Defining Services
* Shepherd Services:: A particular type of service. * Shepherd Services:: A particular type of service.
* Complex Configurations:: Defining bindings for complex configurations. * 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 Installing Debugging Files
* Separate Debug Info:: Installing 'debug' outputs. * Separate Debug Info:: Installing 'debug' outputs.
@ -17516,6 +17532,7 @@ declaration.
* DNS Services:: DNS daemons. * DNS Services:: DNS daemons.
* VPN Services:: VPN daemons. * VPN Services:: VPN daemons.
* Network File System:: NFS related services. * Network File System:: NFS related services.
* Samba Services:: Samba services.
* Continuous Integration:: Cuirass and Laminar services. * Continuous Integration:: Cuirass and Laminar services.
* Power Management Services:: Extending battery life. * Power Management Services:: Extending battery life.
* Audio Services:: The MPD. * Audio Services:: The MPD.
@ -31297,6 +31314,125 @@ The verbosity level of the daemon.
@end table @end table
@end deftp @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 @node Continuous Integration
@subsection 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 bindings to navigate manuals. @xref{Getting Started,,, info, Info: An
Introduction}, for an introduction to Info navigation. 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 @node Installing Debugging Files
@chapter 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 configuration triplets,, autoconf, Autoconf}), the equivalent
@var{system} in Nix notation, the name of the @var{system} in Nix notation, the name of the
@var{glibc-dynamic-linker}, and the corresponding Linux architecture @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 Once the bootstrap tarball are built, the @code{(gnu packages
bootstrap)} module needs to be updated to refer to these binaries on the bootstrap)} module needs to be updated to refer to these binaries on the

View file

@ -25,6 +25,64 @@
(channel-news (channel-news
(version 0) (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") (entry (commit "11a06d1e49f4d50d6789e05bbf35e2e145ff7838")
(title (title
(en "Emacs now supports native compilation") (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 ": Use HTTPS home page." n n
"* " (car (magit-staged-files)) " (" (s var) ")[home-page]: Use HTTPS." n "* " (car (magit-staged-files)) " (" (s var) ")[home-page]: Use HTTPS." n
(mapconcat (lambda (file) (concat "* " file)) (cdr (magit-staged-files))) 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 ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -22,23 +23,28 @@
;;; Commentary: ;;; Commentary:
;; This code defines development teams and team members. ;; This code defines development teams and team members, as well as their
;; scope.
;;; Code: ;;; Code:
(use-modules (srfi srfi-1) (use-modules (srfi srfi-1)
(srfi srfi-9) (srfi srfi-9)
(srfi srfi-26)
(ice-9 format) (ice-9 format)
(ice-9 regex)
(ice-9 match) (ice-9 match)
(guix ui)) (guix ui)
(git))
(define-record-type <team> (define-record-type <team>
(make-team id name description members) (make-team id name description members scope)
team? team?
(id team-id) (id team-id)
(name team-name) (name team-name)
(description team-description) (description team-description)
(members team-members set-team-members!)) (members team-members set-team-members!)
(scope team-scope))
(define-record-type <person> (define-record-type <person>
(make-person name email) (make-person name email)
@ -49,11 +55,13 @@
(define* (person name #:optional email) (define* (person name #:optional email)
(make-person name email)) (make-person name email))
(define* (team id #:key name description (members '())) (define* (team id #:key name description (members '())
(scope '()))
(make-team id (make-team id
(or name (symbol->string id)) (or name (symbol->string id))
description description
members)) members
scope))
(define %teams (define %teams
(make-hash-table)) (make-hash-table))
@ -84,14 +92,37 @@
(team 'python (team 'python
#:name "Python team" #:name "Python team"
#:description #: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 (define-team haskell
(team 'haskell (team 'haskell
#:name "Haskell team" #:name "Haskell team"
#:description #:description
"GHC, Hugs, Haskell packages, the \"hackage\" and \"stackage\" importers, and "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 (define-team r
(team 'r (team 'r
@ -111,14 +142,36 @@ and the r-build-system."))
#:name "OCaml and Dune team" #:name "OCaml and Dune team"
#:description #:description
"The OCaml language, the Dune build system, OCaml packages, the \"opam\" "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 (define-team java
(team 'java (team 'java
#:name "Java and Maven team" #:name "Java and Maven team"
#:description #:description
"The JDK and JRE, the Maven build system, Java packages, the ant-build-system, "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 (define-team science
(team 'science (team 'science
@ -126,11 +179,24 @@ and the maven-build-system."))
(define-team emacs (define-team emacs
(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 (define-team lisp
(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 (define-team ruby
(team 'ruby (team 'ruby
@ -154,11 +220,99 @@ and the maven-build-system."))
(define-team core (define-team core
(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 (define-team games
(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 (define-team translations
(team 'translations (team 'translations
@ -166,7 +320,9 @@ and the maven-build-system."))
(define-team installer (define-team installer
(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 (define-team home
(team 'home (team 'home
@ -270,12 +426,38 @@ importer."))
"andrew@trop.in") "andrew@trop.in")
home emacs) home emacs)
(define-member (person "pukkamustard"
"pukkamustard@posteo.net")
ocaml)
(define-member (person "Josselin Poiret"
"dev@jpoiret.xyz")
core installer)
(define (find-team name) (define (find-team name)
(or (hash-ref %teams (string->symbol name)) (or (hash-ref %teams (string->symbol name))
(error (format #false (error (format #false
"no such team: ~a~%" name)))) "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) (define (cc . teams)
"Return arguments for `git send-email' to notify the members of the given "Return arguments for `git send-email' to notify the members of the given
TEAMS when a patch is received by Debbugs." TEAMS when a patch is received by Debbugs."
@ -297,7 +479,7 @@ TEAMS when a patch is received by Debbugs."
(team-members team))) (team-members team)))
(define (list-teams) (define (list-teams)
"Print all teams and their members." "Print all teams, their scope and their members."
(define port* (current-output-port)) (define port* (current-output-port))
(define width* (%text-width)) (define width* (%text-width))
(hash-for-each (hash-for-each
@ -307,7 +489,7 @@ TEAMS when a patch is received by Debbugs."
id: ~a id: ~a
name: ~a name: ~a
description: ~a description: ~a
members: ~amembers:
" "
(team-id team) (team-id team)
(team-name team) (team-name team)
@ -316,15 +498,48 @@ members:
(string->recutils (string->recutils
(fill-paragraph text width* (fill-paragraph text width*
(string-length "description: "))))) (string-length "description: ")))))
"<none>")) "<none>")
(match (team-scope team)
(() "")
(scope (format #f "scope: ~{~s ~}~%" scope))))
(list-members team port* "+ ") (list-members team port* "+ ")
(newline)) (newline))
%teams)) %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) (define (main . args)
(match args (match args
(("cc" . team-names) (("cc" . team-names)
(apply cc (map find-team 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" . args)
(list-teams)) (list-teams))
(("list-members" . team-names) (("list-members" . team-names)

View file

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

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; 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. ;;; 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 ;; 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 ;; before it can boot. To negotiate this, a pipe is used such that the
;; child process blocks until the parent writes to it. ;; 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) ((child . parent)
(let ((flags (namespaces->bit-mask namespaces))) (let ((flags (namespaces->bit-mask namespaces)))
(match (clone flags) (match (clone flags)
@ -442,6 +442,10 @@ return the exit status."
"Like 'container-excursion', but return the return value of THUNK." "Like 'container-excursion', but return the return value of THUNK."
(match (pipe) (match (pipe)
((in . out) ((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 (match (container-excursion pid
(lambda () (lambda ()
(close-port in) (close-port in)

View file

@ -39,9 +39,10 @@
#:select (gpl3+ license? license-name)) #:select (gpl3+ license? license-name))
#:use-module ((guix utils) #:select (%current-system)) #:use-module ((guix utils) #:select (%current-system))
#:use-module ((guix scripts pack) #:use-module ((guix scripts pack)
#:select (lookup-compressor self-contained-tarball)) #:select (self-contained-tarball))
#:use-module (gnu bootloader) #:use-module (gnu bootloader)
#:use-module (gnu bootloader u-boot) #:use-module (gnu bootloader u-boot)
#:use-module (gnu compression)
#:use-module (gnu image) #:use-module (gnu image)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages gcc) #: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. ;; The supported image formats.
(define-set-sanitizer validate-image-format format (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. ;; The supported partition table types.
(define-set-sanitizer validate-partition-table-type partition-table-type (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 (size image-size ;size in bytes as integer
(default 'guess) (default 'guess)
(sanitize validate-size)) (sanitize validate-size))
(operating-system image-operating-system ;<operating-system> (operating-system image-operating-system) ;<operating-system>
(default #f))
(partition-table-type image-partition-table-type ; 'mbr or 'gpt (partition-table-type image-partition-table-type ; 'mbr or 'gpt
(default 'mbr) (default 'mbr)
(sanitize validate-partition-table-type)) (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) (if (string=? password confirmation)
(user-partition (user-partition
(inherit user-part) (inherit user-part)
(crypt-password password)) (crypt-password (make-secret password)))
(begin (begin
(run-error-page (run-error-page
(G_ "Password mismatch, please try again.") (G_ "Password mismatch, please try again.")
@ -795,13 +795,13 @@ by pressing the Exit button.~%~%")))
(user-partitions (run-page eligible-devices)) (user-partitions (run-page eligible-devices))
(user-partitions-with-pass (prompt-luks-passwords (user-partitions-with-pass (prompt-luks-passwords
user-partitions)) 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. ;; Make sure the disks are not in use before proceeding to formatting.
(free-parted eligible-devices) (free-parted eligible-devices)
(format-user-partitions user-partitions-with-pass) (format-user-partitions user-partitions-with-pass)
(installer-log-line "formatted ~a user partitions" (installer-log-line "formatted ~a user partitions"
(length user-partitions-with-pass)) (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) (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) #:item->text (compose G_ system-service-name)
#:checkbox-tree-height 5 #:checkbox-tree-height 5
#:exit-button-callback-procedure #:exit-button-callback-procedure
(lambda () (lambda _
(raise (abort-to-prompt 'installer-step 'abort)))))
(condition
(&installer-step-abort)))))))
(define (run-network-management-page) (define (run-network-management-page)
"Run a page to select among several network management methods." "Run a page to select among several network management methods."

View file

@ -148,7 +148,7 @@
(default #f)) (default #f))
(crypt-label user-partition-crypt-label (crypt-label user-partition-crypt-label
(default #f)) (default #f))
(crypt-password user-partition-crypt-password (crypt-password user-partition-crypt-password ; <secret>
(default #f)) (default #f))
(fs-type user-partition-fs-type (fs-type user-partition-fs-type
(default 'ext4)) (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." "Format and open the encrypted partition pointed by USER-PARTITION."
(let* ((file-name (user-partition-file-name user-partition)) (let* ((file-name (user-partition-file-name user-partition))
(label (user-partition-crypt-label 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 (call-with-luks-key-file
password password
(lambda (key-file) (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" ((run-command-in-installer) "cryptsetup" "open" "--type" "luks"
"--key-file" key-file file-name label))))) "--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) (define (luks-close user-partition)
"Close the encrypted partition pointed by USER-PARTITION." "Close the encrypted partition pointed by USER-PARTITION."
(let ((label (user-partition-crypt-label user-partition))) (let ((label (user-partition-crypt-label user-partition)))
@ -1278,6 +1292,8 @@ respective mount-points."
(user-fs-type->mount-type fs-type)) (user-fs-type->mount-type fs-type))
(file-name (file-name
(user-partition-upper-file-name user-partition))) (user-partition-upper-file-name user-partition)))
(when crypt-label
(luks-ensure-open user-partition))
(mkdir-p target) (mkdir-p target)
(installer-log-line "mounting ~s on ~s" file-name target) (installer-log-line "mounting ~s on ~s" file-name target)
(mount file-name target mount-type))) (mount file-name target mount-type)))

View file

@ -280,6 +280,10 @@ instrumented for further testing."
exp))) exp)))
(let ((content (call-with-input-file file read-expressions))) (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 (call-with-output-file file
(lambda (port) (lambda (port)
(format port "\ (format port "\

View file

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

View file

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

View file

@ -53,6 +53,7 @@
# Copyright © 2022 John Kehayias <john.kehayias@protonmail.com> # Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
# Copyright © 2022 muradm <mail@muradm.net> # Copyright © 2022 muradm <mail@muradm.net>
# Copyright © 2022 Hilton Chain <hako@ultrarare.space> # Copyright © 2022 Hilton Chain <hako@ultrarare.space>
# Copyright © 2022 Alex Griffin <a@ajgrf.com>
# #
# This file is part of GNU Guix. # This file is part of GNU Guix.
# #
@ -81,6 +82,7 @@ GNU_SYSTEM_MODULES = \
%D%/bootloader/u-boot.scm \ %D%/bootloader/u-boot.scm \
%D%/bootloader/depthcharge.scm \ %D%/bootloader/depthcharge.scm \
%D%/ci.scm \ %D%/ci.scm \
%D%/compression.scm \
%D%/home.scm \ %D%/home.scm \
%D%/home/services.scm \ %D%/home/services.scm \
%D%/home/services/desktop.scm \ %D%/home/services/desktop.scm \
@ -682,6 +684,7 @@ GNU_SYSTEM_MODULES = \
%D%/services/herd.scm \ %D%/services/herd.scm \
%D%/services/pm.scm \ %D%/services/pm.scm \
%D%/services/rsync.scm \ %D%/services/rsync.scm \
%D%/services/samba.scm \
%D%/services/sddm.scm \ %D%/services/sddm.scm \
%D%/services/spice.scm \ %D%/services/spice.scm \
%D%/services/ssh.scm \ %D%/services/ssh.scm \
@ -716,6 +719,7 @@ GNU_SYSTEM_MODULES = \
%D%/system/images/pine64.scm \ %D%/system/images/pine64.scm \
%D%/system/images/pinebook-pro.scm \ %D%/system/images/pinebook-pro.scm \
%D%/system/images/rock64.scm \ %D%/system/images/rock64.scm \
%D%/system/images/wsl2.scm \
\ \
%D%/machine.scm \ %D%/machine.scm \
\ \
@ -761,6 +765,7 @@ GNU_SYSTEM_MODULES = \
%D%/tests/package-management.scm \ %D%/tests/package-management.scm \
%D%/tests/reconfigure.scm \ %D%/tests/reconfigure.scm \
%D%/tests/rsync.scm \ %D%/tests/rsync.scm \
%D%/tests/samba.scm \
%D%/tests/security.scm \ %D%/tests/security.scm \
%D%/tests/security-token.scm \ %D%/tests/security-token.scm \
%D%/tests/singularity.scm \ %D%/tests/singularity.scm \
@ -979,9 +984,12 @@ dist_patch_DATA = \
%D%/packages/patches/cmake-curl-certificates-3.24.patch \ %D%/packages/patches/cmake-curl-certificates-3.24.patch \
%D%/packages/patches/coda-use-system-libs.patch \ %D%/packages/patches/coda-use-system-libs.patch \
%D%/packages/patches/collectd-5.11.0-noinstallvar.patch \ %D%/packages/patches/collectd-5.11.0-noinstallvar.patch \
%D%/packages/patches/containerd-create-pid-file.patch \
%D%/packages/patches/combinatorial-blas-awpm.patch \ %D%/packages/patches/combinatorial-blas-awpm.patch \
%D%/packages/patches/combinatorial-blas-io-fix.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/cool-retro-term-wctype.patch \
%D%/packages/patches/coreutils-gnulib-tests.patch \ %D%/packages/patches/coreutils-gnulib-tests.patch \
%D%/packages/patches/coq-fix-envvars.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-online-miners-tracker-3.patch \
%D%/packages/patches/gnome-settings-daemon-gc.patch \ %D%/packages/patches/gnome-settings-daemon-gc.patch \
%D%/packages/patches/gnome-session-support-elogind.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/gnome-tweaks-search-paths.patch \
%D%/packages/patches/gnupg-CVE-2022-34903.patch \ %D%/packages/patches/gnupg-CVE-2022-34903.patch \
%D%/packages/patches/gnupg-default-pinentry.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/irrlicht-link-against-needed-libs.patch \
%D%/packages/patches/isl-0.11.1-aarch64-support.patch \ %D%/packages/patches/isl-0.11.1-aarch64-support.patch \
%D%/packages/patches/itk-snap-alt-glibc-compat.patch \ %D%/packages/patches/itk-snap-alt-glibc-compat.patch \
%D%/packages/patches/jami-fix-esc-bug.patch \ %D%/packages/patches/jami-fix-crash-on-block-contact.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/jamvm-1.5.1-aarch64-support.patch \ %D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \
%D%/packages/patches/jamvm-1.5.1-armv7-support.patch \ %D%/packages/patches/jamvm-1.5.1-armv7-support.patch \
%D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \ %D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \
@ -1347,6 +1351,9 @@ dist_patch_DATA = \
%D%/packages/patches/jfsutils-add-sysmacros.patch \ %D%/packages/patches/jfsutils-add-sysmacros.patch \
%D%/packages/patches/jfsutils-gcc-compat.patch \ %D%/packages/patches/jfsutils-gcc-compat.patch \
%D%/packages/patches/jfsutils-include-systypes.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-SOURCE_DATE_EPOCH-mtime.patch \
%D%/packages/patches/julia-tracker-16-compat.patch \ %D%/packages/patches/julia-tracker-16-compat.patch \
%D%/packages/patches/julia-allow-parallel-build.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/password-store-tree-compat.patch \
%D%/packages/patches/pciutils-hurd-configure.patch \ %D%/packages/patches/pciutils-hurd-configure.patch \
%D%/packages/patches/pciutils-hurd-fix.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/pokerth-boost.patch \
%D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \ %D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \
%D%/packages/patches/pthreadpool-system-libraries.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-werkzeug-tests.patch \
%D%/packages/patches/python-zeep-Fix-pytest_httpx-test-cases.patch \ %D%/packages/patches/python-zeep-Fix-pytest_httpx-test-cases.patch \
%D%/packages/patches/qemu-build-info-manual.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.27.patch \
%D%/packages/patches/qemu-glibc-2.30.patch \ %D%/packages/patches/qemu-glibc-2.30.patch \
%D%/packages/patches/qemu-fix-agent-paths.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/readline-6.2-CVE-2014-2524.patch \
%D%/packages/patches/renpy-use-system-fribidi.patch \ %D%/packages/patches/renpy-use-system-fribidi.patch \
%D%/packages/patches/reposurgeon-add-missing-docbook-files.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/ri-li-modernize_cpp.patch \
%D%/packages/patches/ripperx-missing-file.patch \ %D%/packages/patches/ripperx-missing-file.patch \
%D%/packages/patches/rpcbind-CVE-2017-8779.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 "Raise a '&message' error condition if it is clear that deploying MACHINE's
'system' declaration would fail." 'system' declaration would fail."
(define assertions (define assertions
(append (machine-check-file-system-availability machine) (parameterize ((%current-system
(machine-check-initrd-modules machine) (machine-ssh-configuration-system
(list (machine-check-forward-update machine)))) (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 (define aggregate-exp
;; Gather all the expressions so that a single round-trip is enough to ;; 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) (define (deploy-managed-host machine)
"Internal implementation of 'deploy-machine' for MACHINE instances with an "Internal implementation of 'deploy-machine' for MACHINE instances with an
environment type of 'managed-host." 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) (maybe-raise-unsupported-configuration-error machine)
(when (machine-ssh-configuration-authorize? (when (machine-ssh-configuration-authorize?
(machine-configuration machine)) (machine-configuration machine))
@ -466,50 +474,54 @@ have you run 'guix archive --generate-key?'")
(get-string-all port)))) (get-string-all port))))
(machine-ssh-session machine) (machine-ssh-session machine)
(machine-become-command machine))) (machine-become-command machine)))
(mlet %store-monad ((_ (check-deployment-sanity machine)) (mlet %store-monad ((_ (check-deployment-sanity machine))
(boot-parameters (machine-boot-parameters machine))) (boot-parameters (machine-boot-parameters machine)))
(let* ((os (machine-operating-system machine)) ;; Make sure code that check %CURRENT-SYSTEM, such as
(host (machine-ssh-configuration-host-name ;; %BASE-INITRD-MODULES, gets to see the right value.
(machine-configuration machine))) (parameterize ((%current-system system)
(eval (cut machine-remote-eval machine <>)) (%current-target-system #f))
(menu-entries (map boot-parameters->menu-entry boot-parameters)) (let* ((os (machine-operating-system machine))
(bootloader-configuration (operating-system-bootloader os)) (eval (cut machine-remote-eval machine <>))
(bootcfg (operating-system-bootcfg os menu-entries))) (menu-entries (map boot-parameters->menu-entry boot-parameters))
(define-syntax-rule (eval/error-handling condition handler ...) (bootloader-configuration (operating-system-bootloader os))
;; Return a wrapper around EVAL such that HANDLER is evaluated if an (bootcfg (operating-system-bootcfg os menu-entries)))
;; exception is raised. (define-syntax-rule (eval/error-handling condition handler ...)
(lambda (exp) ;; Return a wrapper around EVAL such that HANDLER is evaluated if an
(lambda (store) ;; exception is raised.
(guard (condition ((inferior-exception? condition) (lambda (exp)
(values (begin handler ...) store))) (lambda (store)
(values (run-with-store store (eval exp)) (guard (condition ((inferior-exception? condition)
store))))) (values (begin handler ...) store)))
(values (run-with-store store (eval exp)
#:system system)
store)))))
(mbegin %store-monad (mbegin %store-monad
(with-roll-back #f (with-roll-back #f
(switch-to-system (eval/error-handling c (switch-to-system (eval/error-handling c
(raise (formatted-message (raise (formatted-message
(G_ "\ (G_ "\
failed to switch systems while deploying '~a':~%~{~s ~}") failed to switch systems while deploying '~a':~%~{~s ~}")
host host
(inferior-exception-arguments c)))) (inferior-exception-arguments c))))
os)) os))
(with-roll-back #t (with-roll-back #t
(mbegin %store-monad (mbegin %store-monad
(upgrade-shepherd-services (eval/error-handling c (upgrade-shepherd-services (eval/error-handling c
(warning (G_ "\ (warning (G_ "\
an error occurred while upgrading services on '~a':~%~{~s ~}~%") an error occurred while upgrading services on '~a':~%~{~s ~}~%")
host host
(inferior-exception-arguments (inferior-exception-arguments
c))) c)))
os) os)
(install-bootloader (eval/error-handling c (install-bootloader (eval/error-handling c
(raise (formatted-message (raise (formatted-message
(G_ "\ (G_ "\
failed to install bootloader on '~a':~%~{~s ~}~%") failed to install bootloader on '~a':~%~{~s ~}~%")
host host
(inferior-exception-arguments c)))) (inferior-exception-arguments c))))
bootloader-configuration bootcfg))))))) bootloader-configuration bootcfg))))))))
;;; ;;;

View file

@ -4,6 +4,7 @@
;;; Copyright © 2018, 2021, 2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2021, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw> ;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2022 Hunter Jozwiak <hunter.t.joz@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -28,6 +29,7 @@
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system meson)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages lisp) #:use-module (gnu packages lisp)
#:use-module (gnu packages ocaml) #: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.") assistant for graphic designers, who need to select individual pixels.")
;; Licensed either under Expat or GPLv2+. ;; Licensed either under Expat or GPLv2+.
(license (list license:expat license:gpl2+)))) (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 (define-public tree
(package (package
(name "tree") (name "tree")
(version "2.0.3") (version "2.0.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"http://mama.indstate.edu/users/ice/tree/src/tree-" "https://mama.indstate.edu/users/ice/tree/src/tree-"
version ".tgz")) version ".tgz"))
(sha256 (sha256
(base32 "079vda37d5i3nfx12wx81z6r6bxynv2jww1z1hjziiwxbxxyf55s")))) (base32 "0x7s9wxvf83fw4qah16kapswl2277pybw3d514zrlms9g0cr5smh"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list (list
#:phases #:phases
#~(modify-phases %standard-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. #:tests? #f ; No check target.
#:make-flags #:make-flags
#~(list (string-append "PREFIX=" #$output) #~(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 "Tree is a recursive directory listing command that produces a depth
indented listing of files, which is colorized ala dircolors if the LS_COLORS indented listing of files, which is colorized ala dircolors if the LS_COLORS
environment variable is set and output is to tty.") 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+))) (license license:gpl2+)))
(define-public lr (define-public lr

View file

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

View file

@ -29,6 +29,7 @@
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages algebra) #:use-module (gnu packages algebra)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bison) #:use-module (gnu packages bison)
#:use-module (gnu packages boost) #:use-module (gnu packages boost)
#:use-module (gnu packages check) #:use-module (gnu packages check)
@ -1054,6 +1055,29 @@ attempting to maintain ISTP compliance
@end itemize\n") @end itemize\n")
(license license:expat))) (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 (define-public python-photutils
(package (package
(name "python-photutils") (name "python-photutils")
@ -1823,6 +1847,27 @@ N-Chilada and RAMSES AMR outputs.")
(modify-inputs (package-inputs libsep) (modify-inputs (package-inputs libsep)
(prepend python-numpy))))) (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 (define-public python-asdf
(package (package
(name "python-asdf") (name "python-asdf")

View file

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

View file

@ -7273,6 +7273,228 @@ sequence.")
(supported-systems '("i686-linux" "x86_64-linux")) (supported-systems '("i686-linux" "x86_64-linux"))
(license license:bsd-3))) (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 (define-public r-presto
(let ((commit "052085db9c88aa70a28d11cc58ebc807999bf0ad") (let ((commit "052085db9c88aa70a28d11cc58ebc807999bf0ad")
(revision "0")) (revision "0"))
@ -12514,6 +12736,12 @@ fasta subsequences.")
(substitute* '("requirements.txt" (substitute* '("requirements.txt"
"cooler.egg-info/requires.txt") "cooler.egg-info/requires.txt")
(("cytoolz.*<.*0.11") "cytoolz")))) (("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 (add-after 'unpack 'patch-tests
(lambda _ (lambda _
(substitute* "tests/test_create.py" (substitute* "tests/test_create.py"
@ -12522,10 +12750,13 @@ fasta subsequences.")
"access to genome.ucsc.edu\")\n" "access to genome.ucsc.edu\")\n"
"def test_roundtrip"))) "def test_roundtrip")))
(substitute* "tests/test_util.py" (substitute* "tests/test_util.py"
(("def test_fetch_chromsizes") (("def test_fetch_chromsizes")
(string-append "@pytest.mark.skip(reason=\"requires network " (string-append "@pytest.mark.skip(reason=\"requires network "
"access to genome.ucsc.edu\")\n" "access to genome.ucsc.edu\")\n"
"def test_fetch_chromsizes"))) "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 ;; This test depends on ipytree, which contains a lot of minified
;; JavaScript. ;; JavaScript.
(substitute* "tests/test_fileops.py" (substitute* "tests/test_fileops.py"
@ -15541,47 +15772,49 @@ for the analysis and visualization of raw nanopore signal.")
(license license:mpl2.0))) (license license:mpl2.0)))
(define-public python-pyvcf (define-public python-pyvcf
(package (let ((commit "476169cd457ba0caa6b998b301a4d91e975251d9")
(name "python-pyvcf") (revision "0"))
(version "0.6.8") (package
;; Use git, because the PyPI tarballs lack test data. (name "python-pyvcf")
(source (version (git-version "0.6.8" revision commit))
(origin ;; Use git, because the PyPI tarballs lack test data.
(method git-fetch) (source
(uri (git-reference (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jamescasbon/PyVCF.git") (url "https://github.com/jamescasbon/PyVCF.git")
;; Latest release is not tagged. ;; Latest release is not tagged.
(commit "bfcedb9bad1a14074ac4526ffdb610611e073810"))) (commit commit)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0c7lsssns3zp8fh2ibllzzra003srg9vbxqzmq6654akbzdb7lrf")))) "0qf9lwj7r2hjjp4bd4vc7nayrhblfm4qcqs4dbd43a6p4bj2jv5p"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'patch-sample-script (add-after 'unpack 'patch-sample-script
(lambda _ (lambda _
;; Add Python 3 compatibility to this sample script. ;; Add Python 3 compatibility to this sample script.
(substitute* "scripts/vcf_sample_filter.py" (substitute* "scripts/vcf_sample_filter.py"
(("print (.*)\n" _ arg) (("print (.*)\n" _ arg)
(string-append "print(" arg ")\n"))))) (string-append "print(" arg ")\n")))))
(add-after 'install 'remove-installed-tests (add-after 'install 'remove-installed-tests
;; Do not install test files. ;; Do not install test files.
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(delete-file-recursively (string-append (delete-file-recursively (string-append
(site-packages inputs outputs) (site-packages inputs outputs)
"/vcf/test"))))))) "/vcf/test")))))))
(native-inputs (native-inputs
;; Older setuptools is needed for use_2to3. ;; Older setuptools is needed for use_2to3.
(list python-cython python-setuptools)) (list python-cython python-setuptools-for-tensorflow))
(propagated-inputs (propagated-inputs
(list python-pysam python-rpy2)) (list python-pysam python-rpy2))
(home-page "https://github.com/jamescasbon/PyVCF") (home-page "https://github.com/jamescasbon/PyVCF")
(synopsis "Variant Call Format parser for Python") (synopsis "Variant Call Format parser for Python")
(description "This package provides a @acronym{VCF,Variant Call Format} (description "This package provides a @acronym{VCF,Variant Call Format}
parser for Python.") parser for Python.")
(license license:expat))) (license license:expat))))
(define-public nanosv (define-public nanosv
(package (package
@ -15996,6 +16229,43 @@ BigWig files, as well as efficient region coverage summary over intervals from
both types of files.") both types of files.")
(license license:expat))) (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 (define-public r-ascat
(package (package
(name "r-ascat") (name "r-ascat")
@ -16155,6 +16425,29 @@ integration, exploration, and analysis of high-dimensional single-cell
cytometry and imaging data.") cytometry and imaging data.")
(license license:expat)))) (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 (define-public r-cytonorm
(let ((commit "e4b9d343ee65db3c422800f1db3e77c25abde987") (let ((commit "e4b9d343ee65db3c422800f1db3e77c25abde987")
(revision "1")) (revision "1"))

View file

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

View file

@ -401,7 +401,7 @@ traditional Chinese characters.")
(license (list license:gpl2+ license:lgpl2.1+)))) (license (list license:gpl2+ license:lgpl2.1+))))
(define-public gsimplecal (define-public gsimplecal
(let ((version "2.2")) (let ((version "2.4.1"))
(package (package
(name "gsimplecal") (name "gsimplecal")
(version version) (version version)
@ -411,16 +411,17 @@ traditional Chinese characters.")
(url "https://github.com/dmedvinsky/gsimplecal/") (url "https://github.com/dmedvinsky/gsimplecal/")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (base32 (sha256
"1qyf65l088dqsz25hm6s1cv18j52yaias0llqvpqwjfnvssa5cxg")) (base32
"0ypnq9q6v2l8jg0ah31d8502jig1rk2bz749ljj97wk0rg1rixpi"))
(modules '((guix build utils))))) (modules '((guix build utils)))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (list gtk+)) (inputs (list gtk+))
(native-inputs (native-inputs (list autoconf automake pkg-config))
(list autoconf automake pkg-config))
(home-page "https://dmedvinsky.github.io/gsimplecal/") (home-page "https://dmedvinsky.github.io/gsimplecal/")
(synopsis "Lightweight calendar applet") (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, 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 launched again it closes the running instance. It can additionally be
configured to show the current time in different timezones.") configured to show the current time in different timezones.")

View file

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

View file

@ -53,7 +53,10 @@
(uri (string-append "mirror://kernel.org/linux/network/connman/" (uri (string-append "mirror://kernel.org/linux/network/connman/"
"connman-" version ".tar.xz")) "connman-" version ".tar.xz"))
(sha256 (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) (build-system gnu-build-system)
(arguments (arguments
(list #:configure-flags (list #:configure-flags

View file

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

View file

@ -8,6 +8,7 @@
;;; Copyright © 2020 Robin Green <greenrd@greenrd.org> ;;; Copyright © 2020 Robin Green <greenrd@greenrd.org>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com> ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -43,6 +44,7 @@
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system ocaml) #:use-module (guix build-system ocaml)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
@ -52,7 +54,7 @@
(define-public coq-core (define-public coq-core
(package (package
(name "coq-core") (name "coq-core")
(version "8.15.2") (version "8.16.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -62,7 +64,7 @@
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1m6dilfbp9q8j8sya4ap82q72m3a4mq6m96gzvi6vgv04cr6r33c")) "1rp4m2yjldsz0kj7p2fsc312n740fr8kg99jlsk8aq3h524qz2h8"))
(patches (search-patches "coq-fix-envvars.patch")))) (patches (search-patches "coq-fix-envvars.patch"))))
(native-search-paths (native-search-paths
(list (search-path-specification (list (search-path-specification
@ -148,7 +150,7 @@ It is developed using Objective Caml and Camlp5.")
(propagated-inputs (propagated-inputs
(list coq coq-ide-server)) (list coq coq-ide-server))
(inputs (inputs
`(("lablgtk3" ,lablgtk3))))) (list lablgtk3 ocaml-lablgtk3-sourceview3))))
(define-public proof-general (define-public proof-general
;; The latest release is from 2016 and there has been more than 450 commits ;; The latest release is from 2016 and there has been more than 450 commits
@ -240,7 +242,7 @@ provers.")
(define-public coq-flocq (define-public coq-flocq
(package (package
(name "coq-flocq") (name "coq-flocq")
(version "4.0.0") (version "4.1.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -250,7 +252,7 @@ provers.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"159ykkhxz7zms28r4v8jjccapl5vv00csdz29mfy83lwrv5b6rwk")))) "1yscj1120wch6myakaia03j11qji416v78ylx842d23hrbaqwmw5"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list autoconf automake ocaml which coq)) (list autoconf automake ocaml which coq))
@ -287,7 +289,7 @@ inside Coq.")
(define-public coq-gappa (define-public coq-gappa
(package (package
(name "coq-gappa") (name "coq-gappa")
(version "1.5.1") (version "1.5.2")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -297,7 +299,7 @@ inside Coq.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"18y4mv44mcgyam77rf4xs7l06mg7pxx1qli3yvs0kklmnnvwa463")))) "0l65ah81yj9vabgkwqh47c02qvscvl8nl60gqn1qrs47dx1pi80q"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list autoconf (list autoconf
@ -315,7 +317,9 @@ inside Coq.")
(arguments (arguments
`(#:configure-flags `(#:configure-flags
(list (string-append "COQUSERCONTRIB=" (assoc-ref %outputs "out") (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 #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'fix-remake (add-before 'configure 'fix-remake
@ -345,7 +349,7 @@ assistant.")
(define-public coq-mathcomp (define-public coq-mathcomp
(package (package
(name "coq-mathcomp") (name "coq-mathcomp")
(version "1.14.0") (version "1.15.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -354,7 +358,7 @@ assistant.")
(commit (string-append "mathcomp-" version)))) (commit (string-append "mathcomp-" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1rqg47dg84wr6d9v2pzna54dm62awcm8xdwx4dqwdwhf58fjxa9i")))) (base32 "158zl36zbvi5qx2nqbfnrg00jpgp6hjr5hmls7d8d0421ar6b67i"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list ocaml which coq)) (list ocaml which coq))
@ -431,7 +435,7 @@ theorems between the two libraries.")
(define-public coq-bignums (define-public coq-bignums
(package (package
(name "coq-bignums") (name "coq-bignums")
(version "8.15.0") (version "8.16.0")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -440,7 +444,7 @@ theorems between the two libraries.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"093klwlhclgyrba1iv18dyz1qp5f0lwiaa7y0qwvgmai8rll5fns")))) "07ndnm7pndmai3a2bkcmwjfjzfaqyq19c5an15hmhgmd0rdy4z8c"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list ocaml coq)) (list ocaml coq))
@ -450,7 +454,9 @@ theorems between the two libraries.")
`(#:tests? #f ; No test target. `(#:tests? #f ; No test target.
#:make-flags #:make-flags
(list (string-append "COQLIBINSTALL=" (assoc-ref %outputs "out") (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 #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'configure)))) (delete 'configure))))
@ -463,7 +469,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
(define-public coq-interval (define-public coq-interval
(package (package
(name "coq-interval") (name "coq-interval")
(version "4.4.0") (version "4.5.2")
(source (source
(origin (origin
(method git-fetch) (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)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1rlcbv1nqm7zv60n63lca6nnxcq3c18akgzl72s1n3h89gvhs87z")))) "138vgb0bq6wkygrhkahjgb9spwpzc6x6kkycj2qnf5naxx1z412w"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list autoconf automake ocaml which coq)) (list autoconf automake ocaml which coq))
@ -486,7 +492,9 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
(arguments (arguments
`(#:configure-flags `(#:configure-flags
(list (string-append "COQUSERCONTRIB=" (assoc-ref %outputs "out") (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 #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'fix-remake (add-before 'configure 'fix-remake
@ -557,11 +565,11 @@ uses Ltac to synthesize the substitution operation.")
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/mattam82/Coq-Equations") (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)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1vfcfpsp9zyj0sw0cwibk76nj6n0r6gwh8m1aa3lbvc0b1kbm32k")))) "08f756vgdd1wklkarg0b93j4n5mhkqm5ixxrhyb23dcv2dwhc8yg"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list ocaml coq camlp5)) (list ocaml coq camlp5))
@ -571,7 +579,10 @@ uses Ltac to synthesize the substitution operation.")
`(#:test-target "test-suite" `(#:test-target "test-suite"
#:make-flags (list (string-append "COQLIBINSTALL=" #:make-flags (list (string-append "COQLIBINSTALL="
(assoc-ref %outputs "out") (assoc-ref %outputs "out")
"/lib/coq/user-contrib")) "/lib/coq/user-contrib")
(string-append "COQPLUGININSTALL="
(assoc-ref %outputs "out")
"/lib/ocaml/site-lib/"))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'configure (replace 'configure
@ -685,3 +696,78 @@ for goals involving set operations.
@end itemize") @end itemize")
(home-page "https://gitlab.mpi-sws.org/iris/stdpp") (home-page "https://gitlab.mpi-sws.org/iris/stdpp")
(license license:bsd-3))) (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-wasm-bindgen" ,rust-wasm-bindgen-0.2)
("rust-web-sys" ,rust-web-sys-0.3) ("rust-web-sys" ,rust-web-sys-0.3)
("rust-winapi" ,rust-winapi-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 (inputs
(list rust-wayland-client-0.29 rust-wayland-protocols-0.29)) (list rust-wayland-client-0.29 rust-wayland-protocols-0.29))
(home-page "https://github.com/rust-windowing/winit") (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-wasm-bindgen" ,rust-wasm-bindgen-0.2)
("rust-web-sys" ,rust-web-sys-0.3) ("rust-web-sys" ,rust-web-sys-0.3)
("rust-winapi" ,rust-winapi-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 (inputs
(list rust-wayland-client-0.28)))) (list rust-wayland-client-0.28))))

View file

@ -3362,6 +3362,52 @@ coverage-guided, mutation-based fuzzers.")
that runs on Argon2.") that runs on Argon2.")
(license license:expat))) (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 (define-public rust-array-macro-1
(package (package
(name "rust-array-macro") (name "rust-array-macro")
@ -3432,7 +3478,7 @@ structures.")
(define-public rust-arrayvec-0.7 (define-public rust-arrayvec-0.7
(package (package
(name "rust-arrayvec") (name "rust-arrayvec")
(version "0.7.0") (version "0.7.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -3441,7 +3487,7 @@ structures.")
(string-append name "-" version ".tar.gz")) (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1xza6jbs8x51yhh4qnwjw1crm33bhl975r965fpq1hqhpfq5hbss")))) "1mjl8jjqxpl0x7sm9cij61cppi7yi38cdrd1l8zjw7h7qxk2v9cd"))))
(build-system cargo-build-system) (build-system cargo-build-system)
(arguments (arguments
`(#:skip-build? #t `(#:skip-build? #t
@ -8493,7 +8539,7 @@ alphabet.")
(define-public rust-bstr-0.2 (define-public rust-bstr-0.2
(package (package
(name "rust-bstr") (name "rust-bstr")
(version "0.2.15") (version "0.2.17")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -8502,7 +8548,7 @@ alphabet.")
(string-append name "-" version ".tar.gz")) (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0gca4v6448clsssll3y787jgw542c9mw9phqdi7419g1jfnlf2x4")))) "08rjbhysy6gg27db2h3pnhvr2mlr5vkj797i9625kwg8hgrnjdds"))))
(build-system cargo-build-system) (build-system cargo-build-system)
(arguments (arguments
`(#:skip-build? #t `(#:skip-build? #t
@ -12208,6 +12254,32 @@ diagnostics easy and relatively painless for everyone!")
("rust-structopt" ,rust-structopt-0.3) ("rust-structopt" ,rust-structopt-0.3)
("rust-unindent" ,rust-unindent-0.1)))))) ("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 (define-public rust-color-backtrace-0.5
(package (package
(name "rust-color-backtrace") (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}.") that logs panics to @code{console.error}.")
(license (list license:expat license:asl2.0)))) (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 (define-public rust-console-log-0.1
(package (package
(name "rust-console-log") (name "rust-console-log")
@ -14530,14 +14626,14 @@ criterion.")
(define-public rust-crossbeam-channel-0.5 (define-public rust-crossbeam-channel-0.5
(package (package
(name "rust-crossbeam-channel") (name "rust-crossbeam-channel")
(version "0.5.0") (version "0.5.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (crate-uri "crossbeam-channel" version)) (uri (crate-uri "crossbeam-channel" version))
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 "0xfplw54pskl3kyf2q6kw8y2phnq6wn8pqxx003n8qfkz3hnx8nw")))) (base32 "08f5f043rljl82a06d1inda6nl2b030s7yfqp31ps8w8mzfh9pf2"))))
(build-system cargo-build-system) (build-system cargo-build-system)
(arguments (arguments
`(#:skip-build? #t `(#:skip-build? #t
@ -14745,14 +14841,14 @@ message passing.")
(define-public rust-crossbeam-queue-0.3 (define-public rust-crossbeam-queue-0.3
(package (package
(name "rust-crossbeam-queue") (name "rust-crossbeam-queue")
(version "0.3.1") (version "0.3.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (crate-uri "crossbeam-queue" version)) (uri (crate-uri "crossbeam-queue" version))
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 "0mk790w2y7cn9zqj6cn1kl8vvgaamlkj6fmpxg1iprdqyp3v6v0g")))) (base32 "19ram1wp87i57w834hwl95mzz9g53qlzkraq6lvab629n21jbm0w"))))
(build-system cargo-build-system) (build-system cargo-build-system)
(arguments (arguments
`(#:cargo-inputs `(#:cargo-inputs
@ -21284,6 +21380,40 @@ You can use this crate to turn non-blocking data structures into async or
blocking data structures.") blocking data structures.")
(license (list license:asl2.0 license:expat)))) (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 (define-public rust-exitcode-1
(package (package
(name "rust-exitcode") (name "rust-exitcode")
@ -23307,6 +23437,29 @@ helpful error messages.")
process and much more.") process and much more.")
(license license:expat))) (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 (define-public rust-fs2-0.2
(package (package
(name "rust-fs2") (name "rust-fs2")
@ -25885,7 +26038,11 @@ graphics.")
("rust-smallvec" ,rust-smallvec-1) ("rust-smallvec" ,rust-smallvec-1)
("rust-takeable-option" ,rust-takeable-option-0.5)) ("rust-takeable-option" ,rust-takeable-option-0.5))
#:cargo-development-inputs #: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") (home-page "https://github.com/glium/glium")
(synopsis "OpenGL wrapper") (synopsis "OpenGL wrapper")
(description (description
@ -28073,6 +28230,48 @@ Hash-based Message Authentication Code algorithm} for SHA1.")
characters in HTML, decoding and unescaping HTML entities as well.") characters in HTML, decoding and unescaping HTML entities as well.")
(license license:expat))) (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 (define-public rust-http-0.2
(package (package
(name "rust-http") (name "rust-http")
@ -29029,6 +29228,27 @@ with hyper.")
(("rust-rustc-serialize" ,rust-rustc-serialize-0.3) (("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
("rust-rustc-test" ,rust-rustc-test-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 (define-public rust-if-chain-1
(package (package
(name "rust-if-chain") (name "rust-if-chain")
@ -31906,6 +32126,29 @@ macros on libc without stdlib.")
(description "This package provides FFI bindings to libdbus.") (description "This package provides FFI bindings to libdbus.")
(license (list license:asl2.0 license:expat)))) (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 (define-public rust-libflate-1
(package (package
(name "rust-libflate") (name "rust-libflate")
@ -32441,6 +32684,63 @@ library.")
library.") library.")
(license (list license:expat license:asl2.0)))) (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 (define-public rust-libsqlite3-sys-0.23
(package (package
(name "rust-libsqlite3-sys") (name "rust-libsqlite3-sys")
@ -32652,6 +32952,30 @@ known as zlib).")
(license (list license:asl2.0 (license (list license:asl2.0
license:expat)))) 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 (define-public rust-lifeguard-0.6
(package (package
(name "rust-lifeguard") (name "rust-lifeguard")
@ -32728,6 +33052,48 @@ libraries have.
"Efficiently insert line separators.") "Efficiently insert line separators.")
(license license:asl2.0))) (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 (define-public rust-link-cplusplus-1
(package (package
(name "rust-link-cplusplus") (name "rust-link-cplusplus")
@ -35182,6 +35548,55 @@ based on Rustls and Ring.")
and XXH3 algorithms.") and XXH3 algorithms.")
(license license:expat))) (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 (define-public rust-metrohash-1
(package (package
(name "rust-metrohash") (name "rust-metrohash")
@ -35614,10 +36029,8 @@ drop-in replacement for miniz.")
"1zw5glv8z2d99c82jy2za97hh9p6377xmf4rbwz7jynsdfxfngg5")))) "1zw5glv8z2d99c82jy2za97hh9p6377xmf4rbwz7jynsdfxfngg5"))))
(build-system cargo-build-system) (build-system cargo-build-system)
(arguments (arguments
`(#:cargo-inputs `(#:cargo-inputs (("rust-serde" ,rust-serde-1))
(("rust-serde" ,rust-serde-1)) #:cargo-development-inputs (("rust-serde-json" ,rust-serde-json-1))))
#:cargo-development-inputs
(("rust-serde-json" ,rust-serde-json-1))))
(home-page "https://github.com/kvark/mint") (home-page "https://github.com/kvark/mint")
(synopsis "Math interoperability standard types") (synopsis "Math interoperability standard types")
(description (description
@ -37436,6 +37849,45 @@ general elements and for numerics.")
(description "This package provides FFI bindings for the Android NDK.") (description "This package provides FFI bindings for the Android NDK.")
(license (list license:expat license:asl2.0)))) (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 (define-public rust-neli-0.4
(package (package
(name "rust-neli") (name "rust-neli")
@ -39618,6 +40070,25 @@ mathematics.")
`(#:cargo-inputs `(#:cargo-inputs
(("rust-num-traits" , rust-num-traits-0.2)))))) (("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 (define-public rust-number-prefix-0.3
(package (package
(name "rust-number-prefix") (name "rust-number-prefix")
@ -39679,6 +40150,27 @@ obfuscation for Rust. The string constant itself is embedded in obfuscated
form and deobfuscated locally.") form and deobfuscated locally.")
(license license:expat))) (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 (define-public rust-obj-0.9
(package (package
(name "rust-obj") (name "rust-obj")
@ -47783,6 +48275,33 @@ integers, floats, tuples, booleans, lists, strings, options and results.")
#:cargo-development-inputs #:cargo-development-inputs
(("rust-quickcheck" ,rust-quickcheck-0.8)))))) (("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 (define-public rust-quine-mc-cluskey-0.2
(package (package
(name "rust-quine-mc-cluskey") (name "rust-quine-mc-cluskey")
@ -51494,6 +52013,49 @@ please consider using @code{async-std} or @code{tokio}.")
(inputs (inputs
(list sqlite)))) (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 (define-public rust-rustsec-0.25
(package (package
(name "rust-rustsec") (name "rust-rustsec")
@ -53003,6 +53565,37 @@ rustc compiler.")
("rust-serde-derive" ,rust-serde-derive-1) ("rust-serde-derive" ,rust-serde-derive-1)
("rust-webpki-roots" ,rust-webpki-roots-0.14)))))) ("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 (define-public rust-rustls-native-certs-0.6
(package (package
(name "rust-rustls-native-certs") (name "rust-rustls-native-certs")
@ -54052,6 +54645,33 @@ encodable types.")
"This package provides a simple scanf()-like input for Rust") "This package provides a simple scanf()-like input for Rust")
(license license:expat))) (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 (define-public rust-schannel-0.1
(package (package
(name "rust-schannel") (name "rust-schannel")
@ -59602,6 +60222,70 @@ OIDs)")
(description "Simple SPMC channel") (description "Simple SPMC channel")
(license (list license:expat license:asl2.0)))) (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 (define-public rust-rspotify-0.10
(package (package
(name "rust-rspotify") (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.") "This package provides the features between \"full\" and \"derive\" of syn.")
(license (list license:asl2.0 license:expat)))) (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 (define-public rust-synom-0.11
(package (package
(name "rust-synom") (name "rust-synom")
@ -65066,6 +65772,47 @@ to a style defined by John Gruber for post titles on his website ``Daring
Fireball''.") Fireball''.")
(license license:expat))) (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 (define-public rust-tokio-1
(package (package
(name "rust-tokio") (name "rust-tokio")
@ -75041,6 +75788,34 @@ for @code{uint} and @code{fixed_hash}.")
a trait for tuples.") a trait for tuples.")
(license (list license:asl2.0 license:expat)))) (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 (define-public rust-inflections-1
(package (package
(name "rust-inflections") (name "rust-inflections")

View file

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

View file

@ -24,6 +24,7 @@
;;; Copyright © 2021, 2022 Brendan Tildesley <mail@brendan.scot> ;;; Copyright © 2021, 2022 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2022 Allan Adair <allan@adair.no> ;;; Copyright © 2022 Allan Adair <allan@adair.no>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -1699,3 +1700,42 @@ sha256crypt, md5crypt, SunMD5, sha1crypt, NT, bsdicrypt, bigcrypt, and
descrypt.") descrypt.")
(home-page "https://github.com/besser82/libxcrypt") (home-page "https://github.com/besser82/libxcrypt")
(license license:lgpl2.1))) (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 (define-public apache-arrow
(package (package
(name "apache-arrow") (name "apache-arrow")
(version "8.0.0") (version "9.0.0")
(source (source
(origin (origin
(method git-fetch) (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)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1gwiflk72pq1krc0sjzabypmh7slfyf7ak71fiypy3xgzw8a777c")))) "1l76q7944jyx22vjkk12hxb3nadgiivc3x8ml4mg619v9xxagc2v"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f `(#:tests? #f

View file

@ -4,7 +4,7 @@
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org> ;;; 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 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Andrew Whatson <whatson@gmail.com> ;;; Copyright © 2021 Andrew Whatson <whatson@gmail.com>
@ -37,9 +37,11 @@
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages web-browsers) #:use-module (gnu packages web-browsers)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix build utils) #:select (alist-replace)) #:use-module ((guix build utils) #:select (alist-replace))
#:use-module (guix build-system copy) #:use-module (guix build-system copy)
#:use-module (guix build-system gnu) #: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.") "This package provides XSL style sheets for DocBook.")
(license (license:x11-style "" "See 'COPYING' file.")))) (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 (package
(name "docbook-xsl-ns") (name "docbook-xsl")
(version "1.79.1") (version "1.79.1")
(source (origin (source (origin
(method url-fetch) (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/" (uri (string-append "mirror://sourceforge/docbook/"
name "/" version "/" name "-ns/" version "/"
name "-" version ".tar.bz2")) name "-ns-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"170ggf5dgjar65kkn5n33kvjr3pdinpj66nnxfx8b2avw0k91jin")))) "170ggf5dgjar65kkn5n33kvjr3pdinpj66nnxfx8b2avw0k91jin"))))
(build-system copy-build-system) (build-system copy-build-system)
(outputs '("out" "doc")) (outputs '("out" "doc"))
(arguments (arguments
`(#:phases (list
(modify-phases %standard-phases #:phases
;; XXX: The copy-build-system doesn't seem to allow installing to a #~(modify-phases %standard-phases
;; different output. ;; XXX: The copy-build-system doesn't seem to allow installing to a
(replace 'install ;; different output.
(lambda* (#:key outputs #:allow-other-keys) (replace 'install
(let* ((out (assoc-ref outputs "out")) (lambda _
(xml (string-append out "/xml/xsl/" ,name "-" ,version)) (let ((xml (string-append #$output "/xml/xsl/" #$name "-" #$version))
(doc (string-append (assoc-ref %outputs "doc") (doc (string-append #$output:doc
"/share/doc/" ,name "-" ,version)) "/share/doc/" #$name "-" #$version))
(select-rx (make-regexp (select-rx (make-regexp
"(\\.xml$|\\.xsl$|\\.dtd$|\\.ent$)"))) "(\\.xml$|\\.xsl$|\\.dtd$|\\.ent$)")))
;; Install catalog. ;; Install catalog.
(install-file "catalog.xml" xml) (install-file "catalog.xml" xml)
(install-file "VERSION.xsl" xml) (install-file "VERSION.xsl" xml)
(substitute* (string-append xml "/catalog.xml") (substitute* (string-append xml "/catalog.xml")
(("rewritePrefix=\"./") (("rewritePrefix=\"./")
(string-append "rewritePrefix=\"file://" xml "/"))) (string-append "rewritePrefix=\"file://" xml "/")))
;; Install style sheets. ;; Install style sheets.
(for-each (lambda (dir) (for-each (lambda (dir)
(for-each (lambda (f) (for-each (lambda (f)
(install-file (install-file
f (string-append xml "/" (dirname f)))) f (string-append xml "/" (dirname f))))
(find-files dir select-rx))) (find-files dir select-rx)))
'("assembly" "common" "eclipse" "epub" "epub3" "fo" '("assembly" "common" "eclipse" "epub" "epub3" "fo"
"highlighting" "html" "htmlhelp" "javahelp" "lib" "highlighting" "html" "htmlhelp" "javahelp" "lib"
"manpages" "params" "profiling" "roundtrip" "manpages" "params" "profiling" "roundtrip"
"template" "website" "template" "website"
"xhtml" "xhtml-1_1" "xhtml5")) "xhtml" "xhtml-1_1" "xhtml5"))
;; Install documentation. ;; Install documentation.
(install-file "NEWS" doc) (install-file "NEWS" doc)
(install-file "RELEASE-NOTES.html" doc) (install-file "RELEASE-NOTES.html" doc)
(copy-recursively "slides" doc) (copy-recursively "slides" doc)
(copy-recursively "webhelp" doc))))))) (copy-recursively "webhelp" doc)))))))
(home-page "https://docbook.org") (home-page "https://docbook.org")
(synopsis "DocBook XSL namespaced style sheets for document authoring") (synopsis "DocBook XSL namespaced style sheets for document authoring")
(description "This package provides the @emph{namespaced} XSL style sheets (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 Jérémy Korwin-Zmijowski <jeremy@korwin-zmijowski.fr>
;;; Copyright © 2020 Alberto Eleuterio Flores Guerrero <barbanegra+guix@posteo.mx> ;;; Copyright © 2020 Alberto Eleuterio Flores Guerrero <barbanegra+guix@posteo.mx>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; 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, 2021, 2022 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Ryan Desfosses <rdes@protonmail.com> ;;; Copyright © 2020 Ryan Desfosses <rdes@protonmail.com>
;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl> ;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
@ -95,7 +95,7 @@
;;; Copyright © 2021 Alexey Abramov <levenson@mmer.org> ;;; Copyright © 2021 Alexey Abramov <levenson@mmer.org>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2021, 2022 Stefan Reichör <stefan@xsteve.at> ;;; 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 Eugene Klimov <lipklim@mailbox.org>
;;; Copyright © 2021 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2021 David Dashyan <mail@davie.li> ;;; Copyright © 2021 David Dashyan <mail@davie.li>
@ -116,6 +116,7 @@
;;; Copyright © 2022 Haider Mirza <haider@haider.gq> ;;; Copyright © 2022 Haider Mirza <haider@haider.gq>
;;; Copyright © 2022 Jose G Perez Taveras <josegpt27@gmail.com> ;;; Copyright © 2022 Jose G Perez Taveras <josegpt27@gmail.com>
;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space> ;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2022 Nicolas Graves <ngraves@ngraves.fr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -139,6 +140,7 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix bzr-download) #:use-module (guix bzr-download)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix i18n)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix hg-download) #:use-module (guix hg-download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
@ -240,6 +242,9 @@
#:use-module (gnu packages photo) #:use-module (gnu packages photo)
#:use-module (gnu packages uml) #:use-module (gnu packages uml)
#:use-module (gnu packages finance) #: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 (guix utils)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (ice-9 match)) #:use-module (ice-9 match))
@ -962,6 +967,8 @@ on stdout instead of using a socket as the Emacsclient does.")
(install #:outputs outputs (install #:outputs outputs
#:include (cons "\\.so$" #:include (cons "\\.so$"
emacs:%default-include))))) 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 (add-after 'install 'make-autoloads
(assoc-ref emacs:%standard-phases 'make-autoloads)) (assoc-ref emacs:%standard-phases 'make-autoloads))
(add-after 'make-autoloads 'enable-autoloads-compilation (add-after 'make-autoloads 'enable-autoloads-compilation
@ -2618,6 +2625,29 @@ framework as the user interface, which integrates well with Vertico or
Selectrum.") Selectrum.")
(license license:gpl3+))) (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. ;;; Miscellaneous.
@ -2676,6 +2706,29 @@ command, which uses Emacs standard completion to select an application
installed on your machine and launch it.") installed on your machine and launch it.")
(license license:gpl3+)))) (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 (define-public emacs-auto-sudoedit
(package (package
(name "emacs-auto-sudoedit") (name "emacs-auto-sudoedit")
@ -3996,7 +4049,9 @@ during idle time, while Emacs is doing nothing else.")
("pdf-tools-handle-upgrades" '())))) ("pdf-tools-handle-upgrades" '()))))
(add-after 'emacs-patch-variables 'emacs-expand-load-path (add-after 'emacs-patch-variables 'emacs-expand-load-path
(assoc-ref emacs:%standard-phases '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)) (assoc-ref emacs:%standard-phases 'install))
(add-after 'emacs-install 'emacs-build (add-after 'emacs-install 'emacs-build
(assoc-ref emacs:%standard-phases '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.") restore the saved place.")
(license license:gpl3+))) (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 (define-public emacs-dash
(package (package
(name "emacs-dash") (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.") their original location with another.")
(license license:gpl3+)))) (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 (define-public emacs-rich-minority
(package (package
(name "emacs-rich-minority") (name "emacs-rich-minority")
@ -6854,14 +6980,14 @@ user.")
(define-public emacs-subed (define-public emacs-subed
(package (package
(name "emacs-subed") (name "emacs-subed")
(version "1.0.9") (version "1.0.10")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://elpa.nongnu.org/nongnu/subed-" (uri (string-append "https://elpa.nongnu.org/nongnu/subed-"
version ".tar")) version ".tar"))
(sha256 (sha256
(base32 (base32
"192m7pg8hiqx7ppr1sk6n5qjcbz78dmcg6m14syq12ll07zfpcm0")))) "08vw9sv2g76yj8sfnx53dd28zkj4s0842i7qi92jam993v9s8h0z"))))
(arguments (arguments
(list (list
#:tests? #t #:tests? #t
@ -6945,6 +7071,34 @@ source code using IPython.")
src blocks.") src blocks.")
(license license:gpl3+))) (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 (define-public emacs-debbugs
(package (package
(name "emacs-debbugs") (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}.") Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
(license license:gpl3+))) (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 (define-public emacs-ert-expectations
(package (package
(name "emacs-ert-expectations") (name "emacs-ert-expectations")
@ -8953,6 +9144,40 @@ variants.")
package provides a light and a dark variant.") package provides a light and a dark variant.")
(license license:gpl3+))) (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 (define-public emacs-poet-theme
(let ((commit "16eb694f0755c04c4db98614d0eca1199fddad70") (let ((commit "16eb694f0755c04c4db98614d0eca1199fddad70")
(revision "1")) (revision "1"))
@ -9713,7 +9938,7 @@ regexp that matches all known keywords.")
(define-public emacs-perspective (define-public emacs-perspective
(package (package
(name "emacs-perspective") (name "emacs-perspective")
(version "2.17") (version "2.18")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -9722,7 +9947,7 @@ regexp that matches all known keywords.")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1nmz39pcaa969g1966ykblzrz6lr3ddb0ip465y5in1fj498as6y")))) (base32 "1r026cw6p2ss5wg8mxgzf6iv1lb9pdnqyf6yrqb914aibkrvp9b6"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
`(#:tests? #t `(#:tests? #t
@ -11078,6 +11303,27 @@ errors and strict-mode warnings, smart line-wrapping within comments and
strings, and code folding.") strings, and code folding.")
(license license:gpl3+))) (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 (define-public emacs-nodejs-repl
(package (package
(name "emacs-nodejs-repl") (name "emacs-nodejs-repl")
@ -12780,7 +13026,7 @@ using package inferred style.")
`(#:tests? #t `(#:tests? #t
#:test-command '("buttercup" "-l" "lua-mode.el"))) #:test-command '("buttercup" "-l" "lua-mode.el")))
(native-inputs (native-inputs
(list emacs-buttercup lua)) (list emacs-buttercup-1.25 lua))
(synopsis "Major mode for lua") (synopsis "Major mode for lua")
(description (description
"This Emacs package provides a mode for @uref{https://www.lua.org/, "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 (define-public emacs-denote
(package (package
(name "emacs-denote") (name "emacs-denote")
(version "0.5.1") (version "0.6.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -14019,7 +14265,7 @@ you to deal with multiple log levels.")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "00f50dhw0x1hn87rc6vkrdwpybnbphg5z0g2c6c4r4cbgaiia8bi")))) (base32 "0wqrl2fdprmgffxg5xak881gs0g4ffdy2n8wcb4wbz3f6anhfaa5"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(native-inputs (list texinfo)) (native-inputs (list texinfo))
(home-page "https://protesilaos.com/emacs/denote/") (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.") @uref{https://bazel.build/} for background on Bazel.")
(license license:asl2.0)))) (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 (define-public emacs-gntp
(package (package
(name "emacs-gntp") (name "emacs-gntp")
@ -14293,7 +14566,7 @@ automatically discovered and presented in recency order.")
(define-public emacs-mentor (define-public emacs-mentor
(package (package
(name "emacs-mentor") (name "emacs-mentor")
(version "0.3.5") (version "0.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -14301,7 +14574,7 @@ automatically discovered and presented in recency order.")
version ".tar")) version ".tar"))
(sha256 (sha256
(base32 (base32
"01zrvfk2njzyzjzkvp5hv5cjl1k1qjrila1ab4bv26gf6bkq5xh3")))) "1n51yabm4npx62fpfn8rhky09x4y779ismdxa026fycy7va7ynzz"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
(list emacs-async emacs-xml-rpc)) (list emacs-async emacs-xml-rpc))
@ -15401,13 +15674,13 @@ containing words from the Rime project.")
(define-public emacs-pyim (define-public emacs-pyim
(package (package
(name "emacs-pyim") (name "emacs-pyim")
(version "5.2.4") (version "5.2.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/pyim-" version ".tar")) (uri (string-append "https://elpa.gnu.org/packages/pyim-" version ".tar"))
(sha256 (sha256
(base32 "1dzl4xaf31nyjb5hnwwf29i75x0i8dakpmmagbn4ks5hi3jl2ig0")))) (base32 "00f23pl53rdy9iwp4gj2656wik7c6vnmhsglg7z4pz3ippz3f4hq"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
(list emacs-async emacs-popup emacs-posframe emacs-xr)) (list emacs-async emacs-popup emacs-posframe emacs-xr))
@ -16304,25 +16577,42 @@ highlighting.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-jsonrpc (define-public emacs-jsonrpc
(package ;; Commit refers to a commit in the Emacs repository, as jsonrpc.el was
(name "emacs-jsonrpc") ;; upstreamed. By convention, it should refer to a commit in which
(version "1.0.15") ;; jsonrpc.el was actually touched.
(source (let ((commit "50654cf0b1bf6210fc8f46d8e7ae13bbeeccecb5")
(origin (revision "0")) ; Currently a version bump
(method url-fetch) (package
(uri (string-append "https://elpa.gnu.org/packages/" (name "emacs-jsonrpc")
"jsonrpc-" version ".tar")) (version (git-version "1.0.15" revision commit))
(sha256 (source
(base32 "1hx378rg12jz2zm105cvrqk0nqyzsn04l59d903l98d6lbd96rsw")))) (origin
(build-system emacs-build-system) (method git-fetch)
(home-page "http://elpa.gnu.org/packages/jsonrpc.html") (uri (git-reference
(synopsis "JSON-RPC library") (url "https://git.savannah.gnu.org/git/emacs.git")
(description (commit commit)))
"This library implements the JSONRPC 2.0 specification as (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, described in @url{http://www.jsonrpc.org/}. As the name suggests,
JSONRPC is a generic Remote Procedure Call protocol designed around JSONRPC is a generic Remote Procedure Call protocol designed around
JSON objects.") JSON objects.")
(license license:gpl3+))) (license license:gpl3+))))
(define-public emacs-jsonnet-mode (define-public emacs-jsonnet-mode
(package (package
@ -16706,7 +16996,7 @@ multiplexer.")
(define-public emacs-plz (define-public emacs-plz
(package (package
(name "emacs-plz") (name "emacs-plz")
(version "0.2") (version "0.2.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -16715,7 +17005,7 @@ multiplexer.")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "170pbqiywk1zyhd0ig4f25qnjf7r1gwy0c6h343bcnl6qxvkvlv2")))) (base32 "0p0xd532xa8icysyxwqk481lr9xanmp68gf97fd9n2936gp12chv"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(inputs (list curl)) (inputs (list curl))
(home-page "https://github.com/alphapapa/plz.el") (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 (define-public emacs-ement
(package (package
(name "emacs-ement") (name "emacs-ement")
(version "0.1.4") (version "0.2.1")
(source (source
(origin (origin
(method git-fetch) (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)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1kms6l14h6ig8kphzpkxv16z7gpvcwvcfsp5ljssdnrx0c7dzz16")))) (base32 "0kfh0vlsz4qnx4vwkwhkxawk5cpxgnvkar72wha9cxj8s6j51vx0"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
`(#:emacs ,emacs)) ;need libxml support `(#:emacs ,emacs)) ;need libxml support
@ -17192,7 +17482,7 @@ an elisp expression.")
(define-public emacs-taxy (define-public emacs-taxy
(package (package
(name "emacs-taxy") (name "emacs-taxy")
(version "0.10") (version "0.10.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -17200,7 +17490,7 @@ an elisp expression.")
"https://elpa.gnu.org/packages/taxy-" version ".tar")) "https://elpa.gnu.org/packages/taxy-" version ".tar"))
(sha256 (sha256
(base32 (base32
"1jamry2p3qhswq8prd2g7ljh4yqk0wwblyd9fhnaclakahrn5vi3")))) "05czw8fkifb25rwl99dmncr1g0rjfx1bqijl7igqs9j6h9ia2xvg"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
(list emacs-magit)) (list emacs-magit))
@ -17496,8 +17786,8 @@ through them using @key{C-c C-SPC}.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-slack (define-public emacs-slack
(let ((commit "1f6a40faec0d8d9c9de51c444508d05a3e995ccd") (let ((commit "ff46d88726482211e3ac3d0b9c95dd4fdffe11c2")
(revision "9")) (revision "10"))
(package (package
(name "emacs-slack") (name "emacs-slack")
(version (git-version "0.0.2" revision commit)) (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)) (file-name (git-file-name name commit))
(sha256 (sha256
(base32 (base32
"19lan9nd8qfw2ws7mx814vrin04c892yn5c8g3nad7lpnzszgr1r")))) "15g4dmy4iqqpk8ivhkpsngzllbw0nc5d2sc9j36sdnhwkajzhidj"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
`(#:phases `(#: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.") expansions for debugging with Edebug as normal.")
(license license:gpl3+)))) (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 (define-public emacs-parent-mode
(package (package
(name "emacs-parent-mode") (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.") versions of third party libraries or @code{C++} standards.")
(license license:gpl3+))) (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 (define-public emacs-org-brain
(package (package
(name "emacs-org-brain") (name "emacs-org-brain")
@ -23646,7 +23985,7 @@ source code.")
(define-public emacs-rustic (define-public emacs-rustic
(package (package
(name "emacs-rustic") (name "emacs-rustic")
(version "3.3") (version "3.4")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -23655,7 +23994,7 @@ source code.")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "088g6arlbq7czxyg5f31zmcm0gla7qh4vapaaskf6866yyqhizvb")))) (base32 "16vsv4fhj8zq9g4zrsmipdb1nydxgw3dhh5s3wawpvx2rcg6gx2l"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
(list emacs-dash (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.") functions to ensure they are called with the right arguments during testing.")
(license license:gpl3+))) (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 (define-public emacs-cort
(package (package
(name "emacs-cort") (name "emacs-cort")
@ -27339,6 +27695,169 @@ outline-enabled table of contents, additional metadata association for Info
nodes, and more.") nodes, and more.")
(license license:gpl2+)))) (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 (define-public emacs-eval-sexp-fu-el
(package (package
(name "emacs-eval-sexp-fu-el") (name "emacs-eval-sexp-fu-el")
@ -29455,7 +29974,7 @@ current buffer.")
(define-public emacs-repl-toggle (define-public emacs-repl-toggle
(package (package
(name "emacs-repl-toggle") (name "emacs-repl-toggle")
(version "0.7.1") (version "0.7.2")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -29464,7 +29983,7 @@ current buffer.")
(commit version))) (commit version)))
(sha256 (sha256
(base32 (base32
"0nycm8a4wwkkaif958z4m89slayp17k20lp2h7lvddjx8prn6yfp")) "18dpy7a7yrn7m7qifrjk5zcr6zbd3kwp9pb55la9052vwipxxvfk"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
@ -30093,7 +30612,7 @@ mercury-mode provided by Emacs as a wrapper around prolog-mode.")
(define-public emacs-boxquote (define-public emacs-boxquote
(package (package
(name "emacs-boxquote") (name "emacs-boxquote")
(version "2.2") (version "2.3")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -30102,7 +30621,7 @@ mercury-mode provided by Emacs as a wrapper around prolog-mode.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0wwjawgylaaifdsszqxcfsyhfzgxbjkzqhzrnxnr9b16wghb7xf7")))) (base32 "0d7m9kcwhbgv4pikaa2dzlg9zkmwdhyx2ksn68di6xzbh838892q"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(home-page "https://github.com/davep/boxquote.el") (home-page "https://github.com/davep/boxquote.el")
(synopsis "Quote text with different kinds of boxes") (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.") personal wiki.")
(license license:gpl3+))) (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 (define-public emacs-org-roam-bibtex
(package (package
(name "emacs-org-roam-bibtex") (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 (define-public emacs-setup
(package (package
(name "emacs-setup") (name "emacs-setup")
(version "1.3.1") (version "1.3.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/setup-" (uri (string-append "https://elpa.gnu.org/packages/setup-"
version ".tar")) version ".tar"))
(sha256 (sha256
(base32 "0n9zjclf4b2sr8c8zd37fs45p25p3856frm419c9hch69hhcsv3a")))) (base32 "1sr514w4mn0fbdawjb5p0fd6i6q2zi9737rbwcgakb1l9cqvb5qy"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(home-page "https://git.sr.ht/~pkal/setup") (home-page "https://git.sr.ht/~pkal/setup")
(synopsis "Helpful configuration macro") (synopsis "Helpful configuration macro")
@ -32594,26 +33085,41 @@ hacker.")
(define-public emacs-osm (define-public emacs-osm
(package (package
(name "emacs-osm") (name "emacs-osm")
(version "0.6") (version "0.8")
(home-page "https://github.com/minad/osm") (home-page "https://github.com/minad/osm")
(source (source (origin
(origin (method git-fetch)
(method git-fetch) (uri (git-reference
(uri (git-reference (url home-page) (commit version))) (url home-page)
(file-name (git-file-name name version)) (commit version)))
(sha256 (file-name (git-file-name name version))
(base32 "0aiq2z9vv4jsl0s0x9vpjgp0mnn27wanhirzj3h80ivgiphzs7l5")))) (sha256
(base32
"039ac364f00slx1dxxgsgfcr4x47v9ymn8arcs0fyhdhw7jnky5j"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases (list #:phases #~(modify-phases %standard-phases
(add-after 'unpack 'set-curl-file-name (add-after 'unpack 'set-curl-file-name
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(substitute* "osm.el" (substitute* "osm.el"
(("\"curl( ?)\"" _ space) (("\"curl( ?)\"" _ space)
(string-append "\"" (string-append "\""
(search-input-file inputs "/bin/curl") (search-input-file inputs
space "\"")))))))) "/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)) (inputs (list curl))
(native-inputs (list texinfo))
(synopsis "OpenStreetMap viewer for Emacs") (synopsis "OpenStreetMap viewer for Emacs")
(description (description
"This package provides an OpenStreetMap viewer for Emacs, featuring "This package provides an OpenStreetMap viewer for Emacs, featuring

View file

@ -412,7 +412,9 @@ languages.")
(source (source
(origin (origin
(inherit (package-source emacs-next)) (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 (arguments
(substitute-keyword-arguments (package-arguments emacs-next) (substitute-keyword-arguments (package-arguments emacs-next)
((#:configure-flags flags #~'()) ((#:configure-flags flags #~'())

View file

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

View file

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

View file

@ -19,7 +19,7 @@
;;; Copyright © 2017 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2017 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Brendan Tildesley <mail@brendan.scot> ;;; 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 © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
;;; Copyright © 2018 Charlie Ritter <chewzerita@posteo.net> ;;; Copyright © 2018 Charlie Ritter <chewzerita@posteo.net>
;;; Copyright © 2018 Gabriel Hondet <gabrielhondet@gmail.com> ;;; Copyright © 2018 Gabriel Hondet <gabrielhondet@gmail.com>
@ -117,7 +117,7 @@ titling.")
(define-public font-ibm-plex (define-public font-ibm-plex
(package (package
(name "font-ibm-plex") (name "font-ibm-plex")
(version "5.1.3") (version "6.1.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -125,7 +125,7 @@ titling.")
"v" version "/OpenType.zip")) "v" version "/OpenType.zip"))
(sha256 (sha256
(base32 (base32
"0zlz8kxx54i4hpgaip9690bilvn5w14gp7jjkk6cz4h9p3xml231")))) "1z9nxac9ha6gqz5yvfy5lp6hyl39f8f8hdrw3llcp89rdpjfqdn9"))))
(build-system font-build-system) (build-system font-build-system)
(home-page "https://github.com/IBM/plex") (home-page "https://github.com/IBM/plex")
(synopsis "IBM Plex typeface") (synopsis "IBM Plex typeface")
@ -2736,7 +2736,7 @@ and readability. This package bundles those icons into a font.")
(define-public font-lxgw-wenkai (define-public font-lxgw-wenkai
(package (package
(name "font-lxgw-wenkai") (name "font-lxgw-wenkai")
(version "1.240") (version "1.245")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -2744,7 +2744,7 @@ and readability. This package bundles those icons into a font.")
version "/lxgw-wenkai-v" version ".tar.gz")) version "/lxgw-wenkai-v" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1rg6i6fqs1b0b2g4kijimkyqbxfn6n8ac74rppsizq65n6crvfib")))) "01x5nfw0cy7v8vsjw32zayc0ryskiwj22yzqi28252896073mm9k"))))
(build-system font-build-system) (build-system font-build-system)
(home-page "https://lxgw.github.io/2021/01/28/Klee-Simpchin/") (home-page "https://lxgw.github.io/2021/01/28/Klee-Simpchin/")
(synopsis "Simplified Chinese Imitation Song typeface") (synopsis "Simplified Chinese Imitation Song typeface")
@ -2758,7 +2758,7 @@ within GB 2312, standard glyphs for Mainland China is used.")
(package (package
(inherit font-lxgw-wenkai) (inherit font-lxgw-wenkai)
(name "font-lxgw-wenkai-tc") (name "font-lxgw-wenkai-tc")
(version "0.921") (version "0.922")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (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")) version "/lxgw-wenkai-tc-v" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0s7zvb8i1f7ziw8r94l1f3rcv21b80dbgc43zjwz34s43465lwrb")))) "0kb12sfb8ihsj14yzk5ib657xvswqy0hy5gr1vfbn1n05vzy8wyk"))))
(home-page "https://github.com/lxgw/LxgwWenKaitc") (home-page "https://github.com/lxgw/LxgwWenKaitc")
(synopsis "Traditional Chinese Imitation Song typeface") (synopsis "Traditional Chinese Imitation Song typeface")
(description (description
@ -2777,7 +2777,7 @@ dialects in Hong Kong and Taiwan.")))
(define-public font-chiron-sung-hk (define-public font-chiron-sung-hk
(package (package
(name "font-chiron-sung-hk") (name "font-chiron-sung-hk")
(version "1.005") (version "1.006")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -2786,7 +2786,7 @@ dialects in Hong Kong and Taiwan.")))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0iqlnb7825kisg2avhr9hwwvb4jw8f642vvmms5dw6m9czzydpgw")))) "0cibyhy363yqmif31lwv4qmcaar5np2gdd3nbnxxp55mb4qn0kms"))))
(build-system font-build-system) (build-system font-build-system)
(home-page "https://chiron-fonts.github.io/") (home-page "https://chiron-fonts.github.io/")
(synopsis "Traditional Chinese Song typeface") (synopsis "Traditional Chinese Song typeface")
@ -2801,7 +2801,7 @@ prevalent typefaces in Traditional Chinese regions.")
(package (package
(inherit font-chiron-sung-hk) (inherit font-chiron-sung-hk)
(name "font-chiron-hei-hk") (name "font-chiron-hei-hk")
(version "2.503") (version "2.504")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -2810,7 +2810,7 @@ prevalent typefaces in Traditional Chinese regions.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"00av598lcsvbwfxabs8m1bfvlk3zq98nziynsrg5p2s5mhz2pkvk")))) "0d0k88sbhgr597sv2jzz2rcg8g4k60lcjka1xlnkv08n3bdgvmhr"))))
(synopsis "Traditional Chinese Gothic typeface") (synopsis "Traditional Chinese Gothic typeface")
(description (description
"Chiron Hei HK is a Traditional Chinese Gothic typeface based on the Hong "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 zamfofex <zamfofex@twdb.moe>
;;; Copyright © 2022 Gabriel Arazas <foo.dogsquared@gmail.com> ;;; Copyright © 2022 Gabriel Arazas <foo.dogsquared@gmail.com>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Hendursaga <hendursaga@aol.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; 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 (list license:expat ; game
license:silofl1.1)))) ; fonts 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-commit "a542a87a891f96b1ab2c44d35b2f6f16859a5019")
(define %ufoai-revision "0") (define %ufoai-revision "0")
(define %ufoai-version (git-version "2.6.0_dev" %ufoai-revision %ufoai-commit)) (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")))) (patches (search-patches "laby-make-install.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("lablgtk3" ,lablgtk3) (list lablgtk3 ocaml-lablgtk3-sourceview3 ocaml ocaml-findlib ocamlbuild))
("ocaml" ,ocaml)
("ocaml-findlib" ,ocaml-findlib)
("ocamlbuild" ,ocamlbuild)))
(arguments (arguments
'(#:phases '(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'configure) (delete 'configure)
(add-before 'build 'set-library-path (add-before 'build 'set-library-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((lablgtk (assoc-ref inputs "lablgtk3"))) (let ((lablgtk (assoc-ref inputs "lablgtk")))
(setenv "LD_LIBRARY_PATH" (setenv "LD_LIBRARY_PATH"
(string-append lablgtk "/lib/ocaml/stublibs")))))) (string-append lablgtk "/lib/ocaml/stublibs"))))))
#:tests? #f ; no 'check' target #:tests? #f ; no 'check' target
@ -5892,101 +5919,63 @@ throwing people around in pseudo-randomly generated buildings.")
(define-public hyperrogue (define-public hyperrogue
(package (package
(name "hyperrogue") (name "hyperrogue")
(version "11.3a") (version "12.1a")
;; When updating this package, be sure to update the "hyperrogue-data" (source
;; origin in native-inputs. (origin
(source (origin (method git-fetch)
(method url-fetch) (uri (git-reference
(uri (string-append (url "https://github.com/zenorogue/hyperrogue")
"https://www.roguetemple.com/z/hyper/hyperrogue" (commit (string-append "v" version))))
(string-join (string-split version #\.) "") (file-name (git-file-name name version))
"-src.tgz")) (sha256
(sha256 (base32
(base32 "1l09d1r3jdwp54zq071fk09hpggif5phjn0gsapzrjy3i289jran"))))
"1yxabbswq02fc5frigvs43f83m5vlxybc7n5mynkwzj2c70lfp2k"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; no check target (list
#:make-flags '("HYPERROGUE_USE_GLEW=1" #:tests? #f ; no check target
"HYPERROGUE_USE_PNG=1") #:make-flags #~(list "HYPERROGUE_USE_GLEW=1"
#:phases "HYPERROGUE_USE_PNG=1")
(modify-phases %standard-phases #:phases
(add-after 'set-paths 'set-sdl-paths #~(modify-phases %standard-phases
(lambda* (#:key inputs #:allow-other-keys) (add-after 'set-paths 'set-sdl-paths
(setenv "CPATH" (lambda* (#:key inputs #:allow-other-keys)
(string-append (or (getenv "CPATH") "") ":" (setenv "CPATH"
(assoc-ref inputs "sdl-union") (string-append (or (getenv "CPATH") "") ":"
"/include/SDL")))) (search-input-directory inputs
(replace 'configure "/include/SDL")))))
(lambda* (#:key inputs outputs #:allow-other-keys) (replace 'configure
(let* ((out (assoc-ref outputs "out")) (lambda* (#:key inputs #:allow-other-keys)
(share-dir (string-append out "/share/hyperrogue")) (let ((share-dir (string-append #$output "/share/hyperrogue/"))
(dejavu-dir (string-append (fonts-dir (dirname
(assoc-ref inputs "font-dejavu") (search-input-file inputs
"/share/fonts/truetype")) "DejaVuSans-Bold.ttf"))))
(dejavu-font "DejaVuSans-Bold.ttf") ;; Set fonts and music path.
(music-file "hyperrogue-music.txt")) (substitute* "sysconfig.h"
;; Fix font and music paths. (("(#define HYPERPATH ).*" _ lead)
(substitute* "basegraph.cpp" (string-append lead "\"" share-dir "\"\n"))
((dejavu-font) (("(#define HYPERFONTPATH ).*" _ lead)
(string-append dejavu-dir "/" dejavu-font))) (string-append lead "\"" fonts-dir "/\"\n")))
(substitute* music-file ;; Disable build machine CPU optimizations and warnings treated
(("\\*/") ;; as errors.
(string-append share-dir "/sounds/"))) (substitute* "Makefile"
(substitute* "sound.cpp" (("-march=native") "")
(("musicfile = \"\"") (("-Werror") "")))))
(string-append "musicfile = \"" (replace 'install
share-dir "/" music-file "\""))) (lambda _
;; Disable build machine CPU optimizations and warnings treated (install-file "hyperrogue" (string-append #$output "/bin"))
;; as errors. (let ((share-dir (string-append #$output "/share/hyperrogue/")))
(substitute* "Makefile" (install-file "hyperrogue-music.txt" share-dir)
(("-march=native") "") (for-each (lambda (dir)
(("-Werror") ""))) (copy-recursively dir
#t)) (string-append share-dir dir)))
(replace 'install '("music" "sounds"))))))))
(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)))
(inputs (inputs
(list font-dejavu glew libpng (list font-dejavu
glew
libpng
(sdl-union (list sdl sdl-gfx sdl-mixer sdl-ttf)))) (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") (synopsis "Non-euclidean graphical rogue-like game")
(description (description
"HyperRogue is a game in which the player collects treasures and fights "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 While the game can use ASCII characters to display the the classical rogue
symbols, it still needs graphics to render the non-euclidean world.") symbols, it still needs graphics to render the non-euclidean world.")
(license (list license:bsd-3 ; glew.c, mtrand.* (license (list license:bsd-3 ; glew.c, mtrand.*
license:cc-by-sa3.0 ; music license:cc-by-sa3.0 ; music
license:cc-by-sa4.0 ; sounds license:cc-by-sa4.0 ; sounds
license:cc0 license:cc0
license:public-domain ; direntx.*, some sounds license:public-domain ; direntx.*, some sounds
license:zlib ; savepng.* license:zlib ; savepng.*

View file

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

View file

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

View file

@ -5430,6 +5430,47 @@ possible while still providing features that make playing difficult Sudoku
more fun.") more fun.")
(license license:gpl2+))) (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 (define-public gnome-terminal
(package (package
(name "gnome-terminal") (name "gnome-terminal")
@ -5493,6 +5534,39 @@ It supports several profiles, multiple tabs and implements several
keyboard shortcuts.") keyboard shortcuts.")
(license license:gpl3+))) (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 (define-public colord-minimal
(package (package
(name "colord-minimal") (name "colord-minimal")
@ -5565,37 +5639,43 @@ output devices.")
(define-public colord (define-public colord
(package/inherit colord-minimal (package/inherit colord-minimal
(name "colord") (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 (arguments
(substitute-keyword-arguments (substitute-keyword-arguments (package-arguments colord-minimal)
(package-arguments colord-minimal)
((#:configure-flags flags) ((#:configure-flags flags)
`(begin #~(begin
(use-modules (srfi srfi-1)) (use-modules (srfi srfi-1))
(append '("-Dbash_completion=true" (append '("-Dbash_completion=true"
"-Ddocs=true" "-Ddocs=true"
"-Dman=true" "-Dman=true"
"-Dvapi=true") "-Dvapi=true")
(fold delete ,flags '("-Dbash_completion=false" (fold delete #$flags '("-Dbash_completion=false"
"-Ddocs=false" "-Ddocs=false"
"-Dman=false"))))) "-Dman=false")))))
((#:phases phases) ((#:phases phases)
`(modify-phases ,phases #~(modify-phases #$phases
(add-after 'unpack 'fix-bash-completion-dir (add-after 'unpack 'fix-bash-completion-dir
(lambda* (#:key outputs #:allow-other-keys) (lambda _
(substitute* "data/meson.build" (substitute* "data/meson.build"
(("bash_completion.get_pkgconfig_variable\ (("bash_completion.get_pkgconfig_variable\
\\('completionsdir'\\)") \\('completionsdir'\\)")
(string-append "'" (assoc-ref outputs "out") (string-append "'" #$output
"/etc/bash_completion.d'"))))))))) "/etc/bash_completion.d'")))))))))
(native-inputs (native-inputs
(append (modify-inputs (package-native-inputs colord-minimal)
`(("bash-completion" ,bash-completion) (append bash-completion
("docbook-xsl-ns" ,docbook-xsl-ns) docbook-xsl-1.79.1
("gtk-doc" ,gtk-doc/stable) gtk-doc/stable
("libxml2" ,libxml2) ;for XML_CATALOG_FILES libxml2 ;for XML_CATALOG_FILES
("libxslt" ,libxslt) libxslt
("vala" ,vala)) ;for VAPI, needed by simple-scan vala))))) ;for VAPI, needed by simple-scan
(package-native-inputs colord-minimal)))))
(define-public geoclue (define-public geoclue
(package (package
@ -8028,7 +8108,7 @@ Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
(define-public evolution-data-server (define-public evolution-data-server
(package (package
(name "evolution-data-server") (name "evolution-data-server")
(version "3.45.3") (version "3.46.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -8036,7 +8116,7 @@ Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
(version-major+minor version) "/" (version-major+minor version) "/"
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 "1zjg9b77qmfin9m16rqa6cpqp1rh63pg3bcnkh25vmklslwhvq7a")))) (base32 "1aydynpc9qx2a5xlrvc3xzfq3d3rhf15mqr8m6splgqqb84jiyp5"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
(list (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.") desktop. It supports multiple calendars, month, week and year view.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public gnome-todo (define-public endeavour
(package (package
(name "gnome-todo") (name "endeavour")
(version "41.0") (version "42.0")
(source (origin (source (origin
(method url-fetch) (method git-fetch)
(uri (string-append "mirror://gnome/sources/" name "/" (uri (git-reference
(version-major version) "/" (url "https://gitlab.gnome.org/World/Endeavour")
name "-" version ".tar.xz")) (commit (string-append "v" version))))
(sha256 (sha256
(base32 (base32
"1r94880d4khbjhhfnhaba3y3d4hv2bri82rzfzxn27s5iybpqras")) "0d6by7aq8db35zavzvckcxxxcdi6qnv0mkjndhb0syc8ih15dpak"))))
(patches (search-patches "gnome-todo-libportal.patch"))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments (arguments
(list (list
@ -10328,6 +10407,9 @@ desktop. It supports multiple calendars, month, week and year view.")
to perfectly fit the GNOME desktop.") to perfectly fit the GNOME desktop.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public gnome-todo
(deprecated-package "gnome-todo" endeavour))
(define-public gnome-dictionary (define-public gnome-dictionary
(package (package
(name "gnome-dictionary") (name "gnome-dictionary")
@ -11521,7 +11603,7 @@ generic enough to work for everyone.")
(define-public evolution (define-public evolution
(package (package
(name "evolution") (name "evolution")
(version "3.45.3") (version "3.46.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/evolution/" (uri (string-append "mirror://gnome/sources/evolution/"
@ -11529,7 +11611,7 @@ generic enough to work for everyone.")
"evolution-" version ".tar.xz")) "evolution-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1q4fa5l7k0rax39iwn2spmzxcr2l73mj3644lf8j9mnp5w774c96")))) "0gwi89bqk20ggcxsq7xgd97my0hxx8z82kisml6vz6kbpiv957p0"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
(list (list
@ -12167,7 +12249,13 @@ integrate seamlessly with the GNOME desktop.")
#:phases #~(modify-phases %standard-phases #:phases #~(modify-phases %standard-phases
(add-after 'unpack 'disable-gtk-update-icon-cache (add-after 'unpack 'disable-gtk-update-icon-cache
(lambda _ (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 (native-inputs
(list desktop-file-utils ;for update-desktop-database (list desktop-file-utils ;for update-desktop-database
gettext-minimal gettext-minimal
@ -12193,6 +12281,7 @@ integrate seamlessly with the GNOME desktop.")
libvirt libvirt
libvirt-glib libvirt-glib
libxml2 libxml2
qemu-minimal ;for qemu-img
sparql-query sparql-query
spice-gtk spice-gtk
tracker tracker

View file

@ -19,6 +19,7 @@
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Baptiste Strazzul <bstrazzull@hotmail.fr> ;;; Copyright © 2021 Baptiste Strazzul <bstrazzull@hotmail.fr>
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -84,6 +85,7 @@
#:use-module (gnu packages assembly) #:use-module (gnu packages assembly)
#:use-module (gnu packages rust) #:use-module (gnu packages rust)
#:use-module (gnu packages rust-apps) #:use-module (gnu packages rust-apps)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages llvm) #:use-module (gnu packages llvm)
#:use-module (gnu packages nss) #:use-module (gnu packages nss)
#:use-module (gnu packages icu4c) #:use-module (gnu packages icu4c)
@ -348,6 +350,169 @@ in C/C++.")
(inputs (inputs
(list icu4c readline zlib)))) (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 (define mozilla-compare-locales
(origin (origin
(method hg-fetch) (method hg-fetch)
@ -375,110 +540,110 @@ in C/C++.")
(mozilla-locales (mozilla-locales
;; sha256 changeset locale ;; sha256 changeset locale
;;--------------------------------------------------------------------------- ;;---------------------------------------------------------------------------
("0f2lkv79gqf46f74905mab3zwyz1532chxlf9d28s548p1hw6lv9" "8312cd2e0777" "ach") ("1y562h0dg33vhhhwfk6jl7xbr67gng21vcf3rpm96zzcgbnf8rjj" "503a7baec899" "ach")
("1v5jpmd0b04mizm9pjffp4r9q121vpq3yzkkxcgmrcwj4gc5jb2y" "21bf766c19d8" "af") ("1cqixlk9f8p63jz20wzsvnfb7xa82ba725gzdydlwz2axgp09c26" "4e2c7d1ddbed" "af")
("1fqjiq2la543z5pbbvd9kfs0wdc2phmqjbxascfsak854qy1z9f9" "34b6a4f0790d" "an") ("19r1yhmfxqasyslc8gr9as5w1scscz1xr8iqy9zi4b90fdjzs0ac" "06897e40a7ea" "an")
("0pl6j99xnali25glyr3g9fmj67v9vqmhd9k74i97f8q5n4xmv3ym" "513c3e8dac97" "ar") ("0nfknb1p03j9fgmkwlm1mzdyh10g0l33x34ab39kc072apziyv0n" "9272819b09e2" "ar")
("0d1fbk9jcai19pi8b7i4y4r0gscqi1inr9dbahd6h0xbxfwc0zif" "19ca0cd0d1bf" "ast") ("11qqblqfffbmkdr5b6mxzq02i8rj1hjq3iy6xv5i5xxy311b3vpb" "f706d22e6910" "ast")
("08f9b63wxxy28zaimjn1ab9w51bvrarc3pp75s7v6kzm5bk1jwic" "44aa0dad7964" "az") ("0q2p1a437qr2nshdd4934qkv2sblmykiwzir149c8p9m5sjk0dyw" "f5c2a9800add" "az")
("15pksy9bgaxcbcnvvp8jwqnqxvvhq9vnljpai6jlh52yyrsglbwi" "5e4499355167" "be") ("0gxxm3lv18kj0922bw0g897azc4nkrszm5irgwdkgmkbyr97li83" "98ba7d51484f" "be")
("0gdg84jp1i4il4nc6gwaswdhc4ljbb9inyip7vhkng09v3pmwm0h" "98d006107851" "bg") ("10vrbbaabjns824ndya6c09znm815pak2xpvqgjydl3r5qvacx65" "5c79c77311cd" "bg")
("0i6vl0ag74phj4l38cvds1ds3jjdal1c8d7hy6pf4aqrp4ai32mh" "2ca52cbb680a" "bn") ("1il7yyifx5xzj0v2lna315mppl5pk1vi4m9r66hdz1lzc485m1wp" "c80c87ef7193" "bn")
("16yavargwq8rhipzpmrrvyh68g3a6disz9g5m8xbhxvixhcsi5fr" "ce92556a0a90" "br") ("1p1ig4v9pczzrnnxzr20r61g7xk85k5lgnxhzgn1rx518p85xrkm" "6a1bcb9851b2" "br")
("1512dzp394pj66i13nsz76qh6fmjpz7r7fmvk8d0h7pjk0d6n0dy" "1c79dabdb120" "bs") ("08q33bk9kdvbyc4ib58bsn2b67ki3d2yzskkf5r2n5zlglblksa2" "939779cb58d6" "bs")
("19wg0kbr2ihbn4lscsxg9agz04r8bsih4692vfgb6nyn1z8vx2i0" "a22912c01617" "ca") ("1bdkywrqah85fh8kfnz163qnc02ffx0a4vlnx5pq1wg9j4f1gznf" "9a45ccf144f1" "ca")
("1ixpzjb7caq1d9c7c044rxg3ymxs3hjw120kq85v004jrrb4d9c6" "34bf3fd631d4" "ca-valencia") ("0hhmp5dzc0rssykl0b2n9h0vfy4svwhxmhpsr3rcfpbg2s0r5h6l" "4f60e18fc248" "ca-valencia")
("1abizdmd1c56syni1aanwwrfvmgzz25fmimbj2324bcw801ma9h0" "e2e4ba2c37bc" "cak") ("18phbl9raqsbys9wa8z0gq0h0pw3b55v6ngn67r4373lfc0s9cxv" "b4ef404c7de8" "cak")
("0wgrg2wiz1jcj52nd4zl4shfkjhbngfj6p1gw1ywj266hk8g6pvw" "a60792bff6ff" "cs") ("0147qyw1y97mgqhkb46wblxv61lq2mvvm5n5ihwf49l5cyizi0jg" "f56ef18f05df" "cs")
("132f29111jd2z9yxpakkyri80mi2ggnik6zxaxqrp4vlcrd1fxd2" "66369fcad8c7" "cy") ("08sbhnsxndlsaijnxndc367qcbrzb29m7bpkcawinz9fg6mz3573" "4f9d92f04f5e" "cy")
("04lpic3cxdj1imcwjkbk81avp9dpa1c9b1zcchrr1a4vyy4yfjpy" "af198d43f7d6" "da") ("09cm5kk1sh2a6ws1fj185jrknhfa6n4bhj7nfnr4lsk339n0kvv9" "902503567e30" "da")
("1h0rkwlsqls8k1qi1y68plw6xk0z2c5xc2y4nqywiirl71yz7fi5" "816fcef20c05" "de") ("0r630bki5d4ylicq6lzh6s2mvsq225933szswmm0sap507rj75cm" "6000baf7a412" "de")
("11lzdyl1h42zb1x2yxiv3r0wih8jy1gr0gzs5d1isdq53sa9cqnq" "962e5a544415" "dsb") ("0749qjsfv3rn94rnci3ydgndw27qlr3w3w97kfwma2gmsf3m3r0p" "4a948952d1f4" "dsb")
("146jgrhl41k6zbxg58hxh1s088padsjz7ny8nm59i9i8d00jpv0a" "e7c49fd88463" "el") ("0yc64i7mpxhs4qlyyh59i2aiz0vpap0bn8slcsk8b71wd1d7cy5m" "153a16a13733" "el")
("1qppr44hdnrb1z1igcd1p0w5sy9vpihzilkl2w44y0v0v9rigppv" "5a0e35b08a48" "en-CA") ("0d4m5ji6ii10yap8y24cxx3fr60ba1jqi10hy3j1cq6ni7hzavga" "7ce17ae529ac" "en-CA")
("1v2irfms24cx9g5s6r1glmp2c000wi91axyca1pn37s7c01r0n4b" "72f8c5d8305d" "en-GB") ("12jzqcfbgdhfm8f2gqp15bdnin62li07jwicjc8ynn4cl9a19xiz" "a25d9eea7c23" "en-GB")
("1y0rbbmax1w6jy4jacy27xgy4aqnd43izysw8qjwm0qhhfjvf3xh" "40994fca693d" "eo") ("0gbb8hfc5yvjah63mapjxm53wxrf98srbrbg43b9g734zfi4n8y5" "4ed3471dad5d" "eo")
("0kmjvinqpb3y81mqda1qq8k202aa36as9z1z775745bx6sbvkggz" "6cf3c836995d" "es-AR") ("19lw7zmqx2irjmv5y6r7nncp6nysn06abf10n3dzj5nzgays6sln" "853fe7acb415" "es-AR")
("06rvd1z3l0r7hwnsnw90i0f5j2ysbv6wd3cl64g0bgifmwjk75hi" "8727dda3935e" "es-CL") ("0rq4pa380b77rkv6dq7sqx8a8i33jk3vs5rgcl8fv7slqvsw23kd" "921b67bf27a5" "es-CL")
("0gzw1rn9nzpgcrrc10indnbqqpax87azczrfxv8mn5n56j734hc0" "5351aba49895" "es-ES") ("1dyxzab9hln5spch66wmfagfzmfdiaxgpq7qlzvdfg98wkqdj25n" "c9a210ea496c" "es-ES")
("0bnmgisxfkb6rb12avhipbsj1yr0dyv56qjj9471gnc2ppq7k3c9" "dd834a4af402" "es-MX") ("1gwpmfl37wxl7rynqswgj41liljflgxydvljd4zdhk3jzqn605fb" "ddd35183d81c" "es-MX")
("1951975h9w813qxanbk3frjz7c8knzx5rvq9i82j9i6x6a3fh6fi" "1f2150796079" "et") ("0c3blniddklapifnjbz03f2frw24jjgwgwn6swl5mwm2z0y6wa9f" "82d23ffaa7d3" "et")
("1vkb5rd0k6vh9dbll3fhyzg8rfpkxxkd2rxwf66b8l3hg4fqd7f2" "2911663f4a7c" "eu") ("05mq2df6n6fr8m5m2xwl0f6n1q3zgjrnk465ldx1nfr9agrhd36c" "13975626d549" "eu")
("1cj9zblfp94h86m7zd762bfmcfz0yxc1q4ra35s4wnnlqajarzwj" "04ec3c3bbe92" "fa") ("1l1jyqqiy551903j6yzh9ayg1pf26q2hr9h3jj4l51xzp7x4ms2q" "039e1fdb7c71" "fa")
("1ininsyzaj7xd8ppmklm3zglgw1i0nhdy43iiyva32hb592zxy4m" "0cf866f9bc4e" "ff") ("091l05y9sggxznv0y11b9zy5qf146p0hb5faw4ix7yn5p5kca2f5" "7bd3722d82de" "ff")
("1hc308d71iygarrpliv7pxjz49gxwqg10d0pv8j4sbb2pw39bprl" "04a600fc54a4" "fi") ("1lllwjvmbl5dx44fcvsqg08fbflkc8dx5as9n6nf4xlkzydx6izm" "39808e88c9d1" "fi")
("02nl54db9130rg59wmrrnh0z726fg5ir1njfcnhxagb4g5b7s69f" "64a3576df276" "fr") ("10ha955vvyf5vbciricm72kplj9j0s00g2333lmg46jiwi7aviiv" "426d373db6a7" "fr")
("1qbby23qlkxjz3vwlk8pd2w1w4cxdff8cq7j0ipk44mijkxkry0c" "c84177dfa254" "fy-NL") ("11zdfk8jvdy1k9z1q162cwapplcbz35l3dq4mv45brdin3v0x8kr" "96cd93d18389" "fy-NL")
("1x23pg36ld5qnrmdn149rkl85ia8lmiqbzcac2bm0iqprnjdszii" "31590cffac56" "ga-IE") ("1l5xr25gmssyachwmfprlnp2v2xj4b0hp8gxrf7fi5bvv9c2fynb" "de3daf7d3f9d" "ga-IE")
("005fpyr1lvw23dja3yrzx4y8wdih7vx6ljjpisf4pd3k5zai4x81" "ba4f274ac4a1" "gd") ("06h9ijfsn1cgz5fvxxbisk7fvqhgsw99id92575hgyg1p8xb1n69" "f04aea656d9e" "gd")
("0kdlb5q74n0fl5fxfy873s392kry69dmdl8b4gvqdyh5sy66vsqm" "56b41bdcd401" "gl") ("19913i5n8yyfhz9j21krlk7wqsyy89vggxc1m1swv94y2ix8rpaj" "1b8cdb87bf69" "gl")
("0v8r8b0nrk1l4xipzhq16klmh0pinzcrma0s0gyhgzqqli6z7aym" "59e2afb65c08" "gn") ("0k5x31bfl2l0r9b5dkn03frm1gd8n6igai7ch2f1kj0skflynwww" "82df570c4241" "gn")
("1grb1lq1f9p5jxgh9v78jl1wswxmsqxkcssm35l30k6y24pglr0m" "33b4409fb615" "gu-IN") ("03rygnj9xhfvykark7dls117kwhid13ghvrsqiial0vp8m7ymx79" "e2e41d7beaa5" "gu-IN")
("172fg55y8l90ix4c8s5x7f8mg6rc7779p6l852cnnkfqjgqa5a5f" "92f9f8238189" "he") ("0vyraplj1x7b5im15anhzdaq03k2gqfyybgklrd4f9ry6msh5jhx" "de724e943805" "he")
("0i52nmg0yv3y1y3rkinxcyh51mgjksk7c3jlc8014801m3zvyxj7" "00090f7a2a3f" "hi-IN") ("1zqps586jrgxpf7xx2l3qw3ch3fr31r9a25y861fpxrpvh7ygw7g" "898598e1a5c6" "hi-IN")
("074q8n00yq54kzk632dwbs64r0sygvybbvwpd6hbvfpn38lz8hxf" "6e4a3fdc01f3" "hr") ("0czq68l3qdhdc0mgazlrh8x83a6d5qrjwgjv8xvsmmzi7h68ww0l" "2711d1515af0" "hr")
("1jxiz8zyxbpnwgk5xkwfxlr5f1zfyc88jcsajy8wcaifdkld3cwn" "7fd9bc25e49d" "hsb") ("1wwvrnm38gk2rnw4vmcranh8hk61gjcj9292pck3ckiv6mq7kd4s" "03e02f3d0676" "hsb")
("0ca11pmkzyd9ccrnrbmk0jrpcb03k88v4zivxblnxj4w03g0hyhq" "ce3b378ce950" "hu") ("0yvgdxlbyhhg3lk43hxx9gx66rcm7gaj02zzzx5zni8dhvlk2v6m" "d423ada9dc00" "hu")
("1yszljbh8f7w6lckfw22jwximy3yhis4430lfynfb8lh9nm0fw59" "c91a4a3e8821" "hy-AM") ("1kjm7bg4990jhfbxwc38r4lqm2fbcxc82nc2d4qkqwikr4aah4b9" "06836af0bd6e" "hy-AM")
("0hhl8b8szqlhjdxhsa81zmgr303kr0jx5d6rzbi840qwf01h12sz" "4f235acc839e" "ia") ("1dla7r3snvagb7m985xxqyi7gl498cr5xsz8msw0zpg6xmi05rlx" "299bd950d538" "ia")
("063yfk3nz3kignbri7r9sr3jwr5p9yyqc6sckgqs94hx6lvc355p" "fface86a34e4" "id") ("0w8w9xn93akir7nqcp5iwr3kqvba5gbirg7gmzlzg7mgrhw8pcsa" "dee087477b99" "id")
("1qszxkgliall4haaq6v0xayxikq43ddcdsn1d4m1mwyp7gdpbry5" "5978ae767b44" "is") ("10iakv1c1d20ihxg1s7c3zc1zfw18vr2kspcw7bk5k02rmrffgcn" "320095d063ed" "is")
("1fsfz9iz5pdd5r9ckdal6grvddchsc4r3r8gn4w6f2bja6vpbs05" "0c7d2a0e1304" "it") ("1xn5pa3rc7l6k2migm3c0dx71q1hk7mjls045xpv9cy8gvirnj94" "4722680fb5bf" "it")
("1phkw0apiicgbw2nq3g392xncw1v2c4yac595h3nchs4q6rp9pd9" "1c923f3e88b9" "ja") ("0va9zfj3wqh1yvbgh3x808yvdyxkg780vazjg887wbxpfk1n6hxa" "cb3cfe294621" "ja")
("1y4gc4l6g72nphhsw4aqhcl80a7wi9qdy61h66c6jc6h14i7278d" "66f700940cfa" "ja-JP-mac") ("0qvjc3fhk6jg2c3g6mymmnslg1rkkxmv9gi3whf2bc5mzfgyc5zw" "7efe92bd7780" "ja-JP-mac")
("0iqwj0y19zqcdclnn92z490s1g9vh2qr9gmkyfnpsz69llxidx1j" "49b4a7c6bb2c" "ka") ("0zfiwwz0axbd219ar32c7a6b8h816sf04ajx6jl74s5kyij79y82" "4c1fe3a18da9" "ka")
("111nm2khff0zxnqqfc68rbi3j0b1nx5r4xai7b8yymyv1i0qbsxd" "4854facbd60b" "kab") ("1aiik4758r5df76q2a132y5fjdjrsxshjylk7irwsr7yy0c7f63g" "acdf76048aa0" "kab")
("12p7lg2p6pcqdlb4bqbz5isxilw2r9vb8344sh8zrvv9cb9jq04f" "d2fda8a1b287" "kk") ("0icxh4sgv6m1yykycb9d9c43k3r6w02f9c6jr04wm8hvqq5icfl5" "9b418ff7936b" "kk")
("142vpw9npqgc8b5zcg5cy2lh07s4mg8xfbaymg44fb4j3s6agw88" "3a5a1cae9b93" "km") ("1cqlhggf46lr7w399k7qb7a1hc56f32w1dy26i2racpppzza5plc" "9771ada0b5f8" "km")
("00v1sd2byj2ksxw1020z142cdlxa7ri2v1rzjrhay9l465bj3k8x" "6ed122b33cac" "kn") ("0p04irnb7x7y37m6lz388x9dynn8rnk000avpp296barajnhs5i8" "645aa37a2112" "kn")
("1s07yhwzpxj0l5vj5lzbvgw115sjx1g2zgbqca5wln95dds39npl" "49bc07645a47" "ko") ("1lbc1fxr5i0ccymlsd8axz3633cqggg5k8ak5yqwi704g7kvv9g2" "1cd68952d119" "ko")
("1b4brfww0w7x1h3ff19i6xi8xq2cb1hxysilira6yq4rb6vhlmly" "93f04df12616" "lij") ("11b55bxg73zqfdn5gy9nn5imab2mv0hxr603whggp7vymllgb7kb" "26bb83959bfe" "lij")
("1i30my0bbgm9z02rxxi7x4vc69bs3bnjs9l2q6jd8xvs1ga3vc7n" "e1f4e0d87509" "lt") ("15jsijm6d26i0105gz0f7sh2yh2v4pmw4j95cwkdrb1d8m935jlz" "b9829891f153" "lt")
("1bjh4xlx6562hxq527cqcn4b5295dsdpwn4c4y5ci902nlh6fc8l" "daea4ba4e7f4" "lv") ("0liwwv13fgyw97nizhsyy53xrbf8jks5ics7qkkxfccawjrg5rlb" "e5f09d03d959" "lv")
("0vig42slcx6bhpisyc1bnyklr95lbv7vqd1ckiywp5c5qzfa9afi" "0c4ca0f4fc17" "mk") ("0w420yf3hdnl7dp9mn9ghc20cq79k24fn9adn3syk723ppl6mkb0" "7884845e94f3" "mk")
("10qfnkqi2snmgvm4vcrmp2489klchv3hn2c4rmkdhi5bilfk42jx" "9be8d5951976" "mr") ("13wkr7rgqsv9w3d9w7k8lnxdzgfixsq4bmc27zsyc770l6062ml6" "030db7412202" "mr")
("1bkn8ds3fyz710ck4gg4g5vpv23bi573ssm9xbiyl8y59pvbig9b" "0f44d0bcfda2" "ms") ("06nsadcnxx0ssdp67x47dj9crihn1ycgd5mwvn5m7lkb97r4ch9f" "40a7703e875c" "ms")
("1j9af3axbijn0s8y96310mvgaq5a36m0r3ij550jv5bv52862crj" "ccbf0c4355d6" "my") ("0mlnjdzck6dp9p59ajj3sr63r36fn0qi8r9scrqrqcisgfclw9sg" "daca40056531" "my")
("0lspnp9jn3rrgz3djnmc0qrb6ymigvqnr3fb0jbhmf83r4yfs8z1" "a6cf2c6e3594" "nb-NO") ("0z1hgx9d5i9w20f9k9azzng1y3lmm5d6hdjkj7rf6r5710bhhzh5" "664bd049e105" "nb-NO")
("1xp2884m9gqm9gaakc747bd9j55wssrh3qsf4y4k02ijh08sfmwb" "c1636a1a7507" "ne-NP") ("1466qvrs13g2iix1k35cknb2pia9b66li2ncvdyqf0jsd92z9k8x" "eaa6ae781ba0" "ne-NP")
("0y1fxp9pxia6x2wxdharh2ynvzdqcmzpya1gdb89pcv5qyrzqgcl" "60ed1c2397a6" "nl") ("0jgmz2lkzj0aspd9mabygzic6li5s2b25y0r6vjg8mv3jm5pi86j" "5ef8f1c9739e" "nl")
("1nbp924p7fp2c76ym71wp34vk96z89i4g2rfgpsi54cgv42a6vgq" "a7f9a3d35875" "nn-NO") ("1m46x0h20vdfbzjxlz0ac43dbaq40xnyldr2yzbf7pk5di9pzxa6" "f08e15466d5d" "nn-NO")
("1yrmhyvb6skypcyvi6j3py51sdkq9vn35zkryx6rdp8ygqwm1va7" "9ac29828960e" "oc") ("0r3zvihqh6iya3z1qm7if0m3zfgf81s9qp7x7qc701h2q357wkgf" "6712c0e12ec2" "oc")
("0rn2414ji1icar627arf5rjwl9r9vxhznbfsyxgrmrf0p6dp72fv" "87720cc32205" "pa-IN") ("102j89jm28c223yhhkrj76xxj4kmy58hcs2r0jn15xa1qkqv1fdk" "8f36cc819e00" "pa-IN")
("09lam6yaprc8zyisq0pcdj4afpg930c2x3x47gdxnqfyhmcfygs7" "56b2c592ffba" "pl") ("1j9za6s0i46abn8dsrlkpck3qxxw35rhfcg1xs1vp8sc4ckg8qwi" "c3b0c1c02b94" "pl")
("0mbc1a8wvjs3k928qh0k800d230251i0rw0myhdpc6mk3xjna7i5" "89f1b173c9b1" "pt-BR") ("1k9lbsvckpwl4xax8kxp5yxsfkspq2mhqm77jh5nl9aw88dsn55b" "cc32bf9630fe" "pt-BR")
("1v1qa5slllz78222rlqr4b8k7c8dapmx8d7s5nb90wdffic0zcqy" "27adc5dad781" "pt-PT") ("0f0jyvbn2sa5m66wqdzh4607g4gd0270xq37ipd9ls52b4764bd8" "5478d7242086" "pt-PT")
("04k6h5d7c740lz1hx1vavj6p0fmhgn9mm3nwvk4p9iccy5nw5pmf" "83e2e4833fc3" "rm") ("19znkkialh1d4np7qcp80xkagrf1j2xah2s1xxzsh854p3d30zs7" "dd934a76fb01" "rm")
("0f0hz792wr17mgi6n190dliqx67479aqg3y2ak0jg0fiz2c8qr7p" "69cdc288966f" "ro") ("1xn26r8g8zzkb5myfgmnjbk8k4i0brkvbrvnhp7k5nkrnsin25di" "d57ab3dee73d" "ro")
("17yngj0v30687m7fa1ls0g86vjg8jzxs7bnsca91jpxf3ij44xp6" "03046775600f" "ru") ("04rhkxlmpp5pyzw85ldbfkmiigqr2p9y5cbns5dqs6sz1633ccxp" "7aea98f33a20" "ru")
("1fvz23nphs9i4gdkx9fcy5ahdk2f879281pchclwi0qlciq7digr" "61ea93a50fff" "sco") ("1zzkkxl7ayxh5gx9snyvp5czflsvi77hp48li613h3c2fii4n9qk" "7c986f4b5044" "sco")
("0yc1iwqbnpnf1i7yz3zqrx6g8pinc7l53pvbczywfkq3rz6wmmf5" "2b134d24c046" "si") ("1219i0ghhqj3s1i0rm68jjkvivh6y40938wav7z4ifck527sq6r1" "bc9e55d4e3ea" "si")
("0kizljksn2vn4yw7qlv7c8h2m75f7n9ddg6n6ag3hwxxip83hn4y" "6d69c24dc8db" "sk") ("05i5p3n3a6hgl6rf10yjs4vag7y3rn2jwgxsddcdcqiv6405zn81" "8814afd7f67e" "sk")
("1ll936b18wy464623jc5smf3c6dpimh0qwn28a991h7zcw31n3kp" "29e195d1d160" "sl") ("1wcqdbm1py1ldq6cj2g201m715nql79r6szr71jvrxacb711c62a" "20013dc06e96" "sl")
("14w9n994z9gf0wx7vrqisyxkngvhmmnayx8r0vwiq8k7jy81sxlm" "60a3b235fe1d" "son") ("0g2izkaa4ipwgwyhy77ciyrxxpf4pxzj9mjqvxriy5prmkhm3zjs" "d86d5d2b6eef" "son")
("0z7bcfvq6x6dxf4d4bbjsg36r5npkr89087b0j360ljampk6c2fn" "8588cbc89847" "sq") ("1cc99m6srjg8698dkc3il70crby0mdv43v3ijwy069k4w50hyjjg" "49bb5fae5d9b" "sq")
("1fcq9g89lhzckzr2qb6x0w0z6q486n9jdqfi6h70dx8b069b3jfj" "198f7e89f10d" "sr") ("13kfssq4fhq9mb36as6sxiaffl17qyg1wdw8kpz3ilqm86bsjrgl" "d6a0ab79b06f" "sr")
("0ap3m1sbibnaj9s2l139m7l8cc8s2ky4jlxwgzbxdzvqxfz7n954" "b098e2ebc049" "sv-SE") ("1wx9snbm0431q97i0q0nv4wbsqcv9nhllwfr88crlp7bfj5w8czw" "4bab04993da3" "sv-SE")
("0k93gnwfs5mahb9vz1c65ddcbkav0cwhxnrww3qk7gcmn7q88gqk" "25951b964d5b" "szl") ("0laglkfl8ml0ip5vmm3z2q790hgwax9gfqwq3wm68a2nnsyck8fw" "4b3316c4aa48" "szl")
("0b0v5pcwvhvhg8vlzy26g3j0m1r8svrpq07hq0q7lxldwlb48phz" "94659c83c9d8" "ta") ("15pnlic4q7m48y0mc5yh8w5yscjwzx0mmfrbj3f2b9jxxa44nx4h" "48c7aab86db8" "ta")
("1v35cl6m3ikzsriq6zkjzjs3p9bhl8zmbp2gl14mga1f1zy4kcah" "eb59646a5d36" "te") ("16qar5y0wns75ryi8bfv7yln3mjsyn7qi4345zcniz3ydgkczh46" "7bbb3dac8f47" "te")
("0y3r30mjgxngjraqmf5cm00kgqx2pvhbvy8sfxb3fhypv9vda3yr" "10d257301a2d" "th") ("112g7x8h0qz16r5faam386x4a0rgwd4zy02d5agmg9m0kbficdfx" "009fd0852454" "th")
("1inyqk495py20jwjvs4yl0n5ncf3hhb896bs1lwfsgpvbvr5hbq1" "9be6adca0e51" "tl") ("1l80kh9byqxnz5vkz357rb39g4y9sgn9pr0v29ywp6d009img1qg" "dad9caecd7a9" "tl")
("0vsirjs655cia9n8dys2r84bvg303hcxkk2w6a9j3dkbifq5ymk6" "51354c936bf6" "tr") ("1nalvjlxxsa9wldhhdb93bgfc7dl084xayh7i7mgg93yjgrym93x" "0c48082d37cd" "tr")
("050x882c0ywil290k4g861njw70ffw2y55dqk3w0kffi972mm909" "d7510f2d01dc" "trs") ("0wkxqcfgsra2ljws28kiwajv73w9aa8drsc4fqlg9krbicnjl2n8" "f6d105faedcc" "trs")
("001ykwxkwibavbi1k42b1hmysb3gmrwcs68zmw96m1vc80p29nz1" "4d1fa878042b" "uk") ("18jf4ysrfv3635fyxc1vwr970dr2r05bl3h8v599pwp2g7jzyjpm" "e1011388a55e" "uk")
("0lsz6jlmmsqdg47pdx8b1djjvcavi0wlyr0mkpyhjgpginag21zx" "ad3035f28183" "ur") ("1ihmksjsz54yii23qda5iv8cxrj9144afy75hzhvfi6m182kj4h8" "c4e927eab511" "ur")
("0d3ggm3q76pkpg4n3lz2ji4pbb47n885byqxbp7sk6n9vlgzir7l" "8ea7a5a051db" "uz") ("0d42dhfa2vcw24wsvwf95pw20np0pz8c0is6p4307n981n8s207y" "7063df917cb3" "uz")
("0v7d8y6xsr6yf2s1sjxnsjmw0hdnj91f0w2da6spkifb52lmbv6v" "67fe2acb306f" "vi") ("04khnkrg8css55hyna01jqay9c2ppxk5znbx2zj9i25knhvvx1lq" "1753054e6ab8" "vi")
("0j8l09vzqlw4zlkyp6wkh44c5gr1xgbcmnawks1zj7xz02ambwii" "abc22dfb6d84" "xh") ("0fi5kxn78xp7s15svkqlf4748j4pzxh941nm52n6kbbrhyi3qcqn" "93bc595dc32e" "xh")
("1c01pbyswixkjg42714fvfy33b09mpdbf4d8f8kcs88c86jpf07z" "d6d6f9bb6113" "zh-CN") ("0jg676vd37wqgzjnm0yynj7xrvm6fsgdwg296h78wnyc33zc4ads" "edd4e468bc31" "zh-CN")
("0yq8fqdz862pnlbvfsqfc152rhpsqgncvp8bqkd653mdfv4qkwr4" "0cbdc5f1a048" "zh-TW"))) ("1y4wldm3z95mfjlficp994jyqg0lj07wi35b79dy1s8ljy3jilil" "0bad1f7d2b2d" "zh-TW")))
;; XXXX: Workaround 'snippet' limitations. ;; XXXX: Workaround 'snippet' limitations.
(define computed-origin-method (@@ (guix packages) computed-origin-method)) (define computed-origin-method (@@ (guix packages) computed-origin-method))
(define %icecat-version "91.13.0-guix0-preview1") (define %icecat-version "102.3.0-guix0-preview1")
(define %icecat-build-id "20220823000000") ;must be of the form YYYYMMDDhhmmss (define %icecat-build-id "20220920000000") ;must be of the form YYYYMMDDhhmmss
;; 'icecat-source' is a "computed" origin that generates an IceCat tarball ;; 'icecat-source' is a "computed" origin that generates an IceCat tarball
;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat' ;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat'
@ -500,11 +665,11 @@ in C/C++.")
"firefox-" upstream-firefox-version ".source.tar.xz")) "firefox-" upstream-firefox-version ".source.tar.xz"))
(sha256 (sha256
(base32 (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 (string-append "v" upstream-icecat-base-version))
(gnuzilla-commit "4a87716686104266a9cccc2d83cc249e312f3673") (gnuzilla-commit "f82b5b40943fe7723486fadccb48d454ee3e9dad")
(gnuzilla-source (gnuzilla-source
(origin (origin
(method git-fetch) (method git-fetch)
@ -516,13 +681,10 @@ in C/C++.")
(string-take gnuzilla-commit 8))) (string-take gnuzilla-commit 8)))
(sha256 (sha256
(base32 (base32
"070j78al04xzchfl5xj1w300hmw17a3iqcw7mnlxf6b8rqlgj20p")))) "1d7lfvwi9mvaxcfiqcgch3idhyxpdf56r9b71r54yiifv6xlr7x9"))))
;; 'search-patch' returns either a valid file name or #f, so wrap it ;; 'search-patch' returns either a valid file name or #f, so wrap it
;; in 'assume-valid-file-name' to avoid 'local-file' warnings. ;; 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 (makeicecat-patch
(local-file (assume-valid-file-name (local-file (assume-valid-file-name
(search-patch "icecat-makeicecat.patch"))))) (search-patch "icecat-makeicecat.patch")))))
@ -578,8 +740,6 @@ in C/C++.")
(with-directory-excursion "/tmp/gnuzilla" (with-directory-excursion "/tmp/gnuzilla"
(make-file-writable "makeicecat") (make-file-writable "makeicecat")
(invoke "patch" "--force" "--no-backup-if-mismatch"
"-p1" "--input" #+gnuzilla-fixes-patch)
(invoke "patch" "--force" "--no-backup-if-mismatch" (invoke "patch" "--force" "--no-backup-if-mismatch"
"-p1" "--input" #+makeicecat-patch) "-p1" "--input" #+makeicecat-patch)
(patch-shebang "makeicecat") (patch-shebang "makeicecat")
@ -695,7 +855,7 @@ in C/C++.")
libffi libffi
ffmpeg ffmpeg
libvpx libvpx
icu4c icu4c-71 ; TODO: Change to 'icu4c' when its version is >= 71.
pixman pixman
pulseaudio pulseaudio
mesa mesa
@ -719,18 +879,19 @@ in C/C++.")
;; a tarball suitable for compilation on any system that IceCat supports. ;; a tarball suitable for compilation on any system that IceCat supports.
;; (Bug fixes and security fixes, however, should go in 'source'). ;; (Bug fixes and security fixes, however, should go in 'source').
(list (list
;; XXX TODO: Adapt these patches to IceCat 91. ;; XXX TODO: Adapt these patches to IceCat 102.
;; ("icecat-avoid-bundled-libraries.patch" ;; ("icecat-avoid-bundled-libraries.patch"
;; ,(search-patch "icecat-avoid-bundled-libraries.patch")) ;; ,(search-patch "icecat-avoid-bundled-libraries.patch"))
;; ("icecat-use-system-graphite2+harfbuzz.patch" ;; ("icecat-use-system-graphite2+harfbuzz.patch"
;; ,(search-patch "icecat-use-system-graphite2+harfbuzz.patch")) ;; ,(search-patch "icecat-use-system-graphite2+harfbuzz.patch"))
;; ("icecat-use-system-media-libs.patch" ;; ("icecat-use-system-media-libs.patch"
;; ,(search-patch "icecat-use-system-media-libs.patch")) ;; ,(search-patch "icecat-use-system-media-libs.patch"))
rust ;; TODO: Change the following lines to use 'rust' when it's >= 1.59.
`(,rust "cargo") (force rust-1.59-promise)
rust-cbindgen-0.19 `(,(force rust-1.59-promise) "cargo")
llvm-11 (force rust-cbindgen-0.23-promise)
clang-11 llvm
clang
perl perl
node node
python-wrapper python-wrapper
@ -787,6 +948,9 @@ in C/C++.")
;; Hack to work around missing "unofficial" branding in icecat. ;; Hack to work around missing "unofficial" branding in icecat.
"--enable-official-branding" "--enable-official-branding"
;; TODO: Add support for wasm sandboxed libraries.
"--without-wasm-sandboxed-libraries"
;; Avoid bundled libraries. ;; Avoid bundled libraries.
"--with-system-jpeg" ;must be libjpeg-turbo "--with-system-jpeg" ;must be libjpeg-turbo
"--with-system-png" ;must be libpng-apng "--with-system-png" ;must be libpng-apng
@ -950,6 +1114,13 @@ in C/C++.")
"servo" "servo"
"security/manager/ssl" "security/manager/ssl"
"build"))))) "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) (delete 'bootstrap)
(replace 'configure (replace 'configure
;; configure does not work followed by both "SHELL=..." and ;; configure does not work followed by both "SHELL=..." and
@ -971,10 +1142,18 @@ in C/C++.")
(setenv "LDFLAGS" (string-append "-Wl,-rpath=" (setenv "LDFLAGS" (string-append "-Wl,-rpath="
#$output "/lib/icecat")) #$output "/lib/icecat"))
(setenv "MACH_USE_SYSTEM_PYTHON" "1") (setenv "MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE" "system")
(setenv "MOZ_NOSPAM" "1")
(setenv "MOZ_BUILD_DATE" #$%icecat-build-id) ; avoid timestamp (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 "build directory: ~s~%" (getcwd))
(format #t "configure flags: ~s~%" flags) (format #t "configure flags: ~s~%" flags)
@ -1049,7 +1228,9 @@ in C/C++.")
(("IceCat") "GNU IceCat") (("IceCat") "GNU IceCat")
(("Icon=.*") "Icon=icecat\n") (("Icon=.*") "Icon=icecat\n")
(("NewWindow") "new-window") (("NewWindow") "new-window")
(("NewPrivateWindow") "new-private-window")) (("NewPrivateWindow") "new-private-window")
(("StartupNotify=true")
"StartupNotify=true\nStartupWMClass=Navigator"))
(install-file desktop-file applications)))) (install-file desktop-file applications))))
(add-after 'install-desktop-entry 'install-icons (add-after 'install-desktop-entry 'install-icons
(lambda _ (lambda _
@ -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 @command{geckodriver} command, which can be useful for automated web
testing. 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 This is a preview release, and does not currently meet the privacy-respecting
standards of the IceCat project.") standards of the IceCat project.")
(license license:mpl2.0) ;and others, see toolkit/content/license.html (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-name . "firefox_esr")
(cpe-version . ,(first (string-split version #\-))))))) (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! ;; 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 (define-public icedove
(package (package
(name "icedove") (name "icedove")
(version "91.12.0") (version "91.13.1")
(source icecat-source) (source icecat-91-source)
(properties (properties
`((cpe-name . "thunderbird_esr"))) `((cpe-name . "thunderbird_esr")))
(build-system gnu-build-system) (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 ;; in the Thunderbird release tarball. We don't use the release
;; tarball because it duplicates the Icecat sources and only adds the ;; tarball because it duplicates the Icecat sources and only adds the
;; "comm" directory, which is provided by this repository. ;; "comm" directory, which is provided by this repository.
,(let ((changeset "bd3da11e22d0070699026cb5f4e31b44b35580f0")) ,(let ((changeset "2f9b465346ceb38b4ab79ccc1bfe8d8ad0bc8743"))
(origin (origin
(method hg-fetch) (method hg-fetch)
(uri (hg-reference (uri (hg-reference
@ -1375,7 +1836,7 @@ standards of the IceCat project.")
(file-name (string-append "thunderbird-" version "-checkout")) (file-name (string-append "thunderbird-" version "-checkout"))
(sha256 (sha256
(base32 (base32
"14na1n37sqjqcxmhbp0c56a1j70gnyqgrhlrk5jkblml47x4i35w"))))) "10vsbwlh5imq7iljwzq3r4y80wzsmj6s2gsi1n64l0wmfq2m6ilb")))))
("cargo" ,rust "cargo") ("cargo" ,rust "cargo")
("clang" ,clang) ("clang" ,clang)
("llvm" ,llvm) ("llvm" ,llvm)

View file

@ -4951,7 +4951,7 @@ with a FSM is being built (for example, from a Makefile.)")
(define-public guile-ini (define-public guile-ini
(package (package
(name "guile-ini") (name "guile-ini")
(version "0.5.1") (version "0.5.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -4960,21 +4960,12 @@ with a FSM is being built (for example, from a Makefile.)")
(file-name (string-append name "-" version)) (file-name (string-append name "-" version))
(sha256 (sha256
(base32 (base32
"0ky7sffxywc2p84q5kdsphr99q0g5gy45rj0vx7f77hwpfm2093x")))) "17fbys3gsfyx4f77a2fswirx76dlr57il2z27z77wljaz777jk36"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:make-flags '("GUILE_AUTO_COMPILE=0") ;to prevent guild warnings `(#:make-flags '("GUILE_AUTO_COMPILE=0") ;to prevent guild warnings
#:phases (modify-phases %standard-phases #:phases (modify-phases %standard-phases
(delete 'strip) (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)))))))
(native-inputs (list autoconf automake pkg-config texinfo)) (native-inputs (list autoconf automake pkg-config texinfo))
(inputs (list bash-minimal guile-3.0 guile-lib)) (inputs (list bash-minimal guile-3.0 guile-lib))
(propagated-inputs (list guile-smc)) (propagated-inputs (list guile-smc))

View file

@ -22,6 +22,7 @@
#:use-module (gnu packages bison) #:use-module (gnu packages bison)
#:use-module (gnu packages boost) #:use-module (gnu packages boost)
#:use-module (gnu packages commencement) #:use-module (gnu packages commencement)
#:use-module (gnu packages compression)
#:use-module (gnu packages datastructures) #:use-module (gnu packages datastructures)
#:use-module (gnu packages documentation) #:use-module (gnu packages documentation)
#:use-module (gnu packages elf) #:use-module (gnu packages elf)
@ -30,6 +31,7 @@
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
#:use-module (gnu packages gawk) #:use-module (gnu packages gawk)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages guile)
#:use-module (gnu packages haskell-xyz) #:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages libunwind) #:use-module (gnu packages libunwind)
#:use-module (gnu packages linux) #: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.") with the script @command{flamegraph.pl} and many stackcollapse scripts.")
(license license:cddl1.0)))) (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 (define-public lttng-modules
(package (package
(name "lttng-modules") (name "lttng-modules")
(version "2.13.4") (version "2.13.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://lttng.org/files/lttng-modules/" (uri (string-append "https://lttng.org/files/lttng-modules/"
"lttng-modules-" version ".tar.bz2")) "lttng-modules-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1vm9nnjvid7acsvgwnjyxd60ih9rmbhnfjldxip58n8x9q7d0nb1")))) "0277yfp57psnvn5g40mk09zryp0r4saynns213qak18fv0l39szc"))))
(build-system linux-module-build-system) (build-system linux-module-build-system)
(arguments (arguments
`(#:tests? #f ; no tests `(#:tests? #f ; no tests
@ -234,14 +295,14 @@ many probes which instrument numerous interesting parts of Linux.")
(define-public lttng-ust (define-public lttng-ust
(package (package
(name "lttng-ust") (name "lttng-ust")
(version "2.13.3") (version "2.13.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://lttng.org/files/lttng-ust/" (uri (string-append "https://lttng.org/files/lttng-ust/"
"lttng-ust-" version ".tar.bz2")) "lttng-ust-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0vwgxp027pgwm0a4xr6bdibday7xjlnv6wmbqh546l2h2i8jzi1c")))) "165kz3zsklynkxdkcbkwhw7cccdgmgmld35h1cf9hvn5bpn853v9"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
(list numactl)) (list numactl))
@ -260,20 +321,17 @@ to ring buffers shared with a consumer daemon.")
(define-public lttng-tools (define-public lttng-tools
(package (package
(name "lttng-tools") (name "lttng-tools")
(version "2.13.7") (version "2.13.8")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://lttng.org/files/lttng-tools/" (uri (string-append "https://lttng.org/files/lttng-tools/"
"lttng-tools-" version ".tar.bz2")) "lttng-tools-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"13gh4bvlgbh82h9vb80aw8l1cfmdj3xyvjg30cscz9vqy7l04yni")))) "1h9x6mmqrxrbgivll3g81l7a9f7ggjmcgwr01f9r01r6kdbmksdi"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`( ;; FIXME - Currently there's a segmentation fault by swig when enabling `(#:configure-flags '("--enable-python-bindings")
;; Python's bindings. Thus, bindings are disable here. Replace
;; `disable` by `enable` in #:configure-flags when this is fixed.
#:configure-flags '("--disable-python-bindings")
;; FIXME - Tests are disabled for now because one test hangs ;; FIXME - Tests are disabled for now because one test hangs
;; indefinetely. Also, parallel testing is not possible because of how ;; indefinetely. Also, parallel testing is not possible because of how
;; the lttng-daemon handles sessions. Thus, keep parallel testing ;; 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 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -28,7 +29,8 @@
#:use-module (guix build-system go) #:use-module (guix build-system go)
#:use-module (gnu packages golang) #:use-module (gnu packages golang)
#:use-module (gnu packages python) #: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 (define-public go-github-com-ipfs-go-ipfs-cmdkit-files
(let ((commit (let ((commit
@ -227,7 +229,55 @@ written in Go.")
"/go-ipfs-source.tar.gz")) "/go-ipfs-source.tar.gz"))
(sha256 (sha256
(base32 "13pmj83hwpz6mk7x52qn0cjnfqxqw2qri3r0k4b270w3bafcccwm")) (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) (build-system go-build-system)
(arguments (arguments
(list (list
@ -247,6 +297,60 @@ written in Go.")
"ipfs" "ipfs"
#~(string-append #$output "/bin/ipfs")) #~(string-append #$output "/bin/ipfs"))
"commands" "completion" "bash"))))))))) "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 (native-inputs
(append (if (%current-target-system) (append (if (%current-target-system)
(list this-package) (list this-package)

View file

@ -66,7 +66,7 @@
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix utils)) #:use-module (guix utils))
(define %jami-version "20220726.1515.da8d1da") (define %jami-version "20220825.0828.c10f01f")
(define %jami-sources (define %jami-sources
;; Return an origin object of the tarball release sources archive of the ;; Return an origin object of the tarball release sources archive of the
@ -90,8 +90,8 @@
"plugins")))) "plugins"))))
(sha256 (sha256
(base32 (base32
"1zx0i9aw8jsba3bjc5r4pkkybm8c0lyz420ciq89vsswd48gfdhg")) "1iv06jb66g206qxm75v7rc3mqvrml1028avflsj11chj8jh63j14"))
(patches (search-patches "jami-fix-esc-bug.patch")))) (patches (search-patches "jami-fix-crash-on-block-contact.patch"))))
;; Jami maintains a set of patches for some key dependencies (currently ;; Jami maintains a set of patches for some key dependencies (currently
;; pjproject and ffmpeg) of Jami that haven't yet been integrated upstream. ;; pjproject and ffmpeg) of Jami that haven't yet been integrated upstream.
@ -113,12 +113,12 @@
patches)))) patches))))
(define-public pjproject-jami (define-public pjproject-jami
(let ((commit "e1f389d0b905011e0cb62cbdf7a8b37fc1bcde1a") (let ((commit "5e478bbf8692f43059de9c6ad654b377359baaa0")
(revision "0")) (revision "0"))
(package (package
(inherit pjproject) (inherit pjproject)
(name "pjproject-jami") (name "pjproject-jami")
(version (git-version "2.11" revision commit)) (version (git-version "2.12" revision commit))
(source (origin (source (origin
(inherit (package-source pjproject)) (inherit (package-source pjproject))
;; The Jami development team regularly issues patches to ;; The Jami development team regularly issues patches to
@ -133,7 +133,7 @@
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0inpmyb6mhrzr0g309d6clkc99lddqdvyf9xajz0igvgp9pvgpza")))) "0n9hyqr57hhbmq35iqq5ihavj22gxzsspv0f8i6ajxwd4029nmcl"))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments pjproject) (substitute-keyword-arguments (package-arguments pjproject)
((#:phases phases '%standard-phases) ((#:phases phases '%standard-phases)
@ -374,16 +374,21 @@
'()))) '())))
(define-public ffmpeg-jami (define-public ffmpeg-jami
(package/inherit ffmpeg (package
(inherit ffmpeg-5)
(name "ffmpeg-jami") (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 (arguments
(substitute-keyword-arguments (package-arguments ffmpeg) (substitute-keyword-arguments (package-arguments ffmpeg-5)
((#: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)
((#:configure-flags '()) ((#:configure-flags '())
(ffmpeg-compose-configure-flags)) (ffmpeg-compose-configure-flags))
((#:phases phases) ((#:phases phases)
@ -399,7 +404,16 @@
"rtp_ext_abs_send_time" "rtp_ext_abs_send_time"
"libopusdec-enable-FEC" "libopusdec-enable-FEC"
"libopusenc-reload-packet-loss-at-encode" "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 (define-public libjami
(package (package

View file

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

View file

@ -11,6 +11,7 @@
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Christopher Howard <christopher@librehacker.com> ;;; Copyright © 2020 Christopher Howard <christopher@librehacker.com>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2022 Jacob Hrbek <kreyren@rixotstudio.cz>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -41,6 +42,8 @@
#:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages gnupg) #:use-module (gnu packages gnupg)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages java) #:use-module (gnu packages java)
@ -49,6 +52,7 @@
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages readline)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages xiph)) #: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.") I2C and SPI devices attached to the USB Hub.")
(license license:expat))) (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 (define-public libplist
(package (package
(name "libplist") (name "libplist")

View file

@ -64,6 +64,7 @@
;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2022 Rene Saavedra <nanuui@protonmail.com> ;;; Copyright © 2022 Rene Saavedra <nanuui@protonmail.com>
;;; Copyright © 2022 muradm <mail@muradm.net> ;;; Copyright © 2022 muradm <mail@muradm.net>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; 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 ;; The current "stable" kernels. That is, the most recently released major
;; versions that are still supported upstream. ;; versions that are still supported upstream.
(define-public linux-libre-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-public linux-libre-5.19-gnu-revision "gnu")
(define deblob-scripts-5.19 (define deblob-scripts-5.19
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -363,7 +364,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "092myqjixvy1k3ylcj0hfc4whfxapjvxsxm4gk30a3jv5dnh7mly"))) (base32 "092myqjixvy1k3ylcj0hfc4whfxapjvxsxm4gk30a3jv5dnh7mly")))
(define-public linux-libre-5.19-pristine-source (define-public linux-libre-5.19-pristine-source
(let ((version linux-libre-5.19-version) (let ((version linux-libre-5.19-version)
(hash (base32 "0dvzjbyknzlx4ndz77fsm6v28fj2chxbq1z85fbc3bckcscbbm8a"))) (hash (base32 "0wyrwdqm4dypx2jbb7d8c3b7fl7q5j434d6g9x2v6sw01gwx4m2m")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-5.19))) 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. ;; The "longterm" kernels — the older releases with long-term upstream support.
;; Here are the support timelines: ;; Here are the support timelines:
;; <https://www.kernel.org/category/releases.html> ;; <https://www.kernel.org/category/releases.html>
(define-public linux-libre-5.15-version "5.15.68") (define-public linux-libre-5.15-version "5.15.70")
(define-public linux-libre-5.15-gnu-revision "gnu") (define-public linux-libre-5.15-gnu-revision "gnu")
(define deblob-scripts-5.15 (define deblob-scripts-5.15
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -382,12 +383,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "048r4synfax2ajyzlmp672b68yshxwlfccdah2vz1kh88rqfmgsc"))) (base32 "048r4synfax2ajyzlmp672b68yshxwlfccdah2vz1kh88rqfmgsc")))
(define-public linux-libre-5.15-pristine-source (define-public linux-libre-5.15-pristine-source
(let ((version linux-libre-5.15-version) (let ((version linux-libre-5.15-version)
(hash (base32 "0zlb44bwpc0hwfynzz5v5b3lkv4aha7w5737ns1qb8cvbk5v7fqp"))) (hash (base32 "0xhdjz7aqq13pkh1yr7ax3msqdb2xvrcpj464wibn1rl4pq2cz0s")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-5.15))) deblob-scripts-5.15)))
(define-public linux-libre-5.10-version "5.10.143") (define-public linux-libre-5.10-version "5.10.145")
(define-public linux-libre-5.10-gnu-revision "gnu1") (define-public linux-libre-5.10-gnu-revision "gnu1")
(define deblob-scripts-5.10 (define deblob-scripts-5.10
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -397,12 +398,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1981axxswghza3iadp94q54y8w30h9w9vyq4cbjiiv9alvbv0pb8"))) (base32 "1981axxswghza3iadp94q54y8w30h9w9vyq4cbjiiv9alvbv0pb8")))
(define-public linux-libre-5.10-pristine-source (define-public linux-libre-5.10-pristine-source
(let ((version linux-libre-5.10-version) (let ((version linux-libre-5.10-version)
(hash (base32 "14af0lsvgh1k0fh283d0nrm1pkrk2kaf2mz0ab59vlvjybg9wb7s"))) (hash (base32 "0qdcqmwvc70hfgj8hb8ccwmnvwl41dvdffqrmyg3cyblwprr0ngw")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-5.10))) deblob-scripts-5.10)))
(define-public linux-libre-5.4-version "5.4.213") (define-public linux-libre-5.4-version "5.4.214")
(define-public linux-libre-5.4-gnu-revision "gnu1") (define-public linux-libre-5.4-gnu-revision "gnu1")
(define deblob-scripts-5.4 (define deblob-scripts-5.4
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -412,12 +413,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1vnjbdyssa7dwyjl9kg35alwvf7yh597cl74yr1wy2gk5bc9paw6"))) (base32 "1vnjbdyssa7dwyjl9kg35alwvf7yh597cl74yr1wy2gk5bc9paw6")))
(define-public linux-libre-5.4-pristine-source (define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version) (let ((version linux-libre-5.4-version)
(hash (base32 "1wdssqmac66zqsnq5lx2z8ampa0rd3qswg0gm1sh6n3y8xlf2z76"))) (hash (base32 "1ny57g5agk8sq6cbp2crjiay5bfkwqy32i4a5yw7x0lch2s7kg4s")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-5.4))) deblob-scripts-5.4)))
(define-public linux-libre-4.19-version "4.19.258") (define-public linux-libre-4.19-version "4.19.259")
(define-public linux-libre-4.19-gnu-revision "gnu1") (define-public linux-libre-4.19-gnu-revision "gnu1")
(define deblob-scripts-4.19 (define deblob-scripts-4.19
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -427,12 +428,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im"))) (base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im")))
(define-public linux-libre-4.19-pristine-source (define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version) (let ((version linux-libre-4.19-version)
(hash (base32 "002sw8b272dzkp3vff0x89sbj5p3vrrikqygfdgrsxv7k3w4459x"))) (hash (base32 "1ska6v95zjjj44h53gi34rnbsrm4507jwxi3kklnky6d0aykiy1z")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-4.19))) deblob-scripts-4.19)))
(define-public linux-libre-4.14-version "4.14.293") (define-public linux-libre-4.14-version "4.14.294")
(define-public linux-libre-4.14-gnu-revision "gnu1") (define-public linux-libre-4.14-gnu-revision "gnu1")
(define deblob-scripts-4.14 (define deblob-scripts-4.14
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -442,12 +443,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im"))) (base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im")))
(define-public linux-libre-4.14-pristine-source (define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version) (let ((version linux-libre-4.14-version)
(hash (base32 "047gl9nqrvpi9jaxlmhfnx848qvnrhf13710ka8fwn3lyv22k342"))) (hash (base32 "069i11hv4fhwc9dirqbag1g1k3fn21wzpfggah4f1a41whf98apy")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-4.14))) deblob-scripts-4.14)))
(define-public linux-libre-4.9-version "4.9.328") (define-public linux-libre-4.9-version "4.9.329")
(define-public linux-libre-4.9-gnu-revision "gnu1") (define-public linux-libre-4.9-gnu-revision "gnu1")
(define deblob-scripts-4.9 (define deblob-scripts-4.9
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -457,7 +458,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0bib3641dbcqdkx3anna3caxnsg3nw9cnmhcklq0s93g3m57041h"))) (base32 "0bib3641dbcqdkx3anna3caxnsg3nw9cnmhcklq0s93g3m57041h")))
(define-public linux-libre-4.9-pristine-source (define-public linux-libre-4.9-pristine-source
(let ((version linux-libre-4.9-version) (let ((version linux-libre-4.9-version)
(hash (base32 "1px2np3k796cjwq1sp9gfxyql6hqyqya82vq9cb5y0canq6fqmg8"))) (hash (base32 "168hy7vhgw2sfknflhhf6ykhkp4xs8v0igii6ivjlvs3dmwm21sj")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-4.9))) deblob-scripts-4.9)))
@ -1342,6 +1343,31 @@ battery charging thresholds, keyboard backlight, fans and thermal monitors,
and the notification, WiFi, and Bluetooth LED.") and the notification, WiFi, and Bluetooth LED.")
(license license:gpl2))) (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 (define-public lkrg
(package (package
(name "lkrg") (name "lkrg")
@ -8699,7 +8725,11 @@ of Linux application development.")
#:configure-flags #:configure-flags
#~(list (string-append "-Dudevrulesdir=" #$output "/lib/udev/rules.d") #~(list (string-append "-Dudevrulesdir=" #$output "/lib/udev/rules.d")
"-Dsystemd=disabled" "-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) (inputs (modify-inputs (package-inputs pipewire)
(prepend avahi (prepend avahi
bluez 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 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
(package (package
(name "sbcl-lisp-unit2") (name "sbcl-lisp-unit2")
(version "0.9.3") (version "0.9.4")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -584,7 +584,7 @@ testing. It is an extension of the library written by Chris Riesbeck.")
(commit version))) (commit version)))
(file-name (git-file-name "cl-lisp-unit2" version)) (file-name (git-file-name "cl-lisp-unit2" version))
(sha256 (sha256
(base32 "0y7k6fd4mf7ggc8kdrbg8flkj5j7i7ki1350wnj6hqax7cmh4xv5")))) (base32 "0dnq0qvbsn7ciknvmwzfjnimlzq1gdkv5xd87agmhxm1cpm1ksz0"))))
(build-system asdf-build-system/sbcl) (build-system asdf-build-system/sbcl)
(inputs (inputs
(list sbcl-alexandria sbcl-cl-interpol sbcl-iterate (list sbcl-alexandria sbcl-cl-interpol sbcl-iterate

View file

@ -214,6 +214,38 @@ with dice-roll statistics.")
(define-public ecl-alea (define-public ecl-alea
(sbcl-package->ecl-package sbcl-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 (define-public sbcl-map-bind
(let ((commit "532d55d93540c632e22b2cd264b5daa5f9d3d900") (let ((commit "532d55d93540c632e22b2cd264b5daa5f9d3d900")
(revision "0")) (revision "0"))

View file

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

View file

@ -3,7 +3,7 @@
;;; Copyright © 2014 Raimon Grau <raimonster@gmail.com> ;;; Copyright © 2014 Raimon Grau <raimonster@gmail.com>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Andreas Enge <andreas@enge.fr> ;;; 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, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 doncatnip <gnopap@gmail.com> ;;; Copyright © 2016 doncatnip <gnopap@gmail.com>
;;; Copyright © 2016, 2017, 2019 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2016, 2017, 2019 Clément Lassieur <clement@lassieur.org>
@ -61,7 +61,8 @@
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages vim) #:use-module (gnu packages vim)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages xorg)) #:use-module (gnu packages xorg)
#:use-module (srfi srfi-1))
(define-public lua (define-public lua
(package (package
@ -177,7 +178,8 @@ for configuration, scripting, and rapid prototyping.")
(synopsis "Just in time compiler for Lua programming language version 5.1") (synopsis "Just in time compiler for Lua programming language version 5.1")
;; On powerpc64le-linux, the build fails with an error: "No support for ;; On powerpc64le-linux, the build fails with an error: "No support for
;; PowerPC 64 bit mode (yet)". See: https://issues.guix.gnu.org/49220 ;; 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 (description
"LuaJIT is a Just-In-Time Compiler (JIT) for the Lua "LuaJIT is a Just-In-Time Compiler (JIT) for the Lua
programming language. Lua is a powerful, dynamic and light-weight programming 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 (define-public guile-aiscm
(package (package
(name "guile-aiscm") (name "guile-aiscm")
(version "0.23.1") (version "0.24.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/wedesoft/aiscm") (url "https://github.com/wedesoft/aiscm")
(commit "c78b91edb7c17c6fbf3b294452f44e91d75e3c67"))) (commit "2e16e38391bf1638f1dd9a1cf4b25a25f6626078")))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"09rdbcr8dinzijyx9h940ann91yjlbg0fangx365llhvy354n840")))) "1gwqpzl6irpaszkpxaf5wliwq19280632hlgxs3ikjkfg8mkqql0"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list (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 #:make-flags
#~(list (string-append "GUILE_CACHE=" #$output "/lib/guile/3.0/site-ccache") #~(list (string-append "GUILE_CACHE=" #$output "/lib/guile/3.0/site-ccache")
(string-append "GUILE_EXT=" #$output "/lib/guile/3.0/extensions") (string-append "GUILE_EXT=" #$output "/lib/guile/3.0/extensions")
@ -318,10 +335,23 @@ training, HMM clustering, HMM mixtures.")
(lambda _ (lambda _
(substitute* "doc/Makefile.am" (substitute* "doc/Makefile.am"
(("\\$\\(DATE\\)") "1970-01-01")))) (("\\$\\(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 (add-after 'unpack 'use-llvm-config
(lambda _ (lambda _
(substitute* "m4/ax_llvmc.m4" (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. ;; For some reason this library is not on the link list.
(("(LLVM_LIBS=\"\\$\\(\\$ac_llvm_config_path --libs \\$1\\))\"" _ m) (("(LLVM_LIBS=\"\\$\\(\\$ac_llvm_config_path --libs \\$1\\))\"" _ m)
(string-append m " -lLLVMMCJIT\""))) (string-append m " -lLLVMMCJIT\"")))
@ -329,10 +359,17 @@ training, HMM clustering, HMM mixtures.")
;; Because of this message: ;; Because of this message:
;; symbol lookup error: ./.libs/libguile-aiscm-core.so: undefined symbol: LLVMInitializeX86TargetInfo ;; symbol lookup error: ./.libs/libguile-aiscm-core.so: undefined symbol: LLVMInitializeX86TargetInfo
;; This probably needs to differ when building on architectures ;; This probably needs to differ when building on architectures
;; other than x86_64p ;; other than x86_64.
(substitute* "aiscm/Makefile.am" (substitute* "aiscm/Makefile.am"
(("LLVM_LIBS\\)") "LLVM_LIBS) \ (("LLVM_LIBS\\)") "LLVM_LIBS) \
-lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMX86Desc -lLLVMX86Info")))) -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. ;; Use Clang instead of GCC.
(add-before 'configure 'prepare-build-environment (add-before 'configure 'prepare-build-environment
(lambda _ (lambda _
@ -341,10 +378,12 @@ training, HMM clustering, HMM mixtures.")
(setenv "CC" "clang") (setenv "CC" "clang")
(setenv "CXX" "clang++")))))) (setenv "CXX" "clang++"))))))
(inputs (inputs
(list ffmpeg (list clearsilver
ffmpeg-4
freeglut freeglut
guile-3.0 guile-3.0
imagemagick imagemagick
libgc
libjpeg-turbo libjpeg-turbo
libomp libomp
libxi libxi
@ -354,12 +393,15 @@ training, HMM clustering, HMM mixtures.")
libxv libxv
mesa mesa
mjpegtools mjpegtools
opencv
pandoc pandoc
pulseaudio)) pulseaudio
tensorflow))
(native-inputs (native-inputs
(list clang-13 (list clang-11
llvm-13 llvm-11
pkg-config pkg-config
protobuf-c
autoconf autoconf
automake automake
gettext-minimal gettext-minimal
@ -372,68 +414,7 @@ Performance is achieved by using the LLVM JIT compiler.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public guile-aiscm-next (define-public guile-aiscm-next
(let ((commit "b17ed538c303badc419a7c358d91f266d2a8c354") (deprecated-package "guile-aiscm-next" guile-aiscm))
(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))))))
(define-public mcl (define-public mcl
(package (package
@ -3165,7 +3146,7 @@ of Hidden Markov Models.")
(define-public liblantern (define-public liblantern
(package (package
(name "liblantern") (name "liblantern")
(version "0.8.0") (version "0.8.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -3174,48 +3155,53 @@ of Hidden Markov Models.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1xkqyj1clj1r70yrp5qpbpyf0xmh9c128005idshi7vk883wfp77")))) (base32 "1q57jsqzv9b70svr6whf04yd08np3x15qq1zm06fbl0sqf0kfn7p"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
(list (list
#:tests? #false ;no test target #:tests? #false ;no test target
#:phases #:phases
#~(modify-phases %standard-phases (let ((python-version (version-major+minor (package-version python))))
(add-after 'unpack 'chdir #~(modify-phases %standard-phases
(lambda _ (chdir "lantern"))) (add-after 'unpack 'chdir
(add-after 'chdir 'do-not-download-binaries (lambda _ (chdir "lantern")))
(lambda* (#:key inputs #:allow-other-keys) (add-after 'chdir 'do-not-download-binaries
(substitute* "CMakeLists.txt" (lambda* (#:key inputs #:allow-other-keys)
(("find_package\\(Torch.*") "set(TORCH_CXX_FLAGS \"-ltorch\")\n") (substitute* "CMakeLists.txt"
(("retrieve_lib\\(.*") "")) (("find_package\\(Torch.*") "set(TORCH_CXX_FLAGS \"-ltorch\")\n")
(setenv "LIBRARY_PATH" (("retrieve_lib\\(.*") ""))
(string-append (let ((site-packages (string-append "/lib/python"
(search-input-directory #$python-version
inputs "/lib/python3.9/site-packages/torch/lib") "/site-packages")))
":" (or (getenv "LIBRARY_PATH") ""))) (setenv "LIBRARY_PATH"
(setenv "CPLUS_INCLUDE_PATH" (string-append
(string-append (search-input-directory
(search-input-directory inputs (string-append site-packages "/torch/lib"))
inputs "lib/python3.9/site-packages/torch/include/torch/csrc/api/include/") ":" (or (getenv "LIBRARY_PATH") "")))
":" (setenv "CPLUS_INCLUDE_PATH"
(search-input-directory (string-append
inputs "lib/python3.9/site-packages/torch/include/") (search-input-directory
":" inputs (string-append
(or (getenv "CPLUS_INCLUDE_PATH") ""))) site-packages "/torch/include/torch/csrc/api/include/"))
(setenv "C_INCLUDE_PATH" ":"
(string-append (search-input-directory
(search-input-directory inputs (string-append site-packages "/torch/include/"))
inputs "lib/python3.9/site-packages/torch/include/") ":"
":" (or (getenv "CPLUS_INCLUDE_PATH") "")))
(or (getenv "C_INCLUDE_PATH") ""))))) (setenv "C_INCLUDE_PATH"
(replace 'install (string-append
(lambda _ (search-input-directory
(install-file inputs (string-append site-packages "/torch/include/"))
"../build/liblantern.so" ":"
(string-append #$output "/lib")) (or (getenv "C_INCLUDE_PATH") ""))))))
(copy-recursively (replace 'install
"../lantern/include" (lambda _
(string-append #$output "/include"))))))) (install-file
"../build/liblantern.so"
(string-append #$output "/lib"))
(copy-recursively
"../lantern/include"
(string-append #$output "/include"))))))))
(inputs (list python-pytorch-for-r-torch)) (inputs (list python-pytorch-for-r-torch))
(home-page "https://github.com/mlverse/torch/") (home-page "https://github.com/mlverse/torch/")
(synopsis "C API to libtorch") (synopsis "C API to libtorch")

View file

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

View file

@ -27,6 +27,7 @@
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix build-system ant) #:use-module (guix build-system ant)
#:use-module (guix gexp)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
@ -1780,31 +1781,33 @@ artifactId=maven-core" ,(package-version maven-core-bootstrap))))
(arguments (arguments
`(#:jar-name "maven-slf4j-provider.jar" `(#:jar-name "maven-slf4j-provider.jar"
#:source-dir "maven-slf4j-provider/src/main/java" #:source-dir "maven-slf4j-provider/src/main/java"
#:tests? #f; no tests #:tests? #f ;no tests
#:phases #:phases (modify-phases %standard-phases
(modify-phases %standard-phases (add-after 'unpack 'unpack-slf4j
(add-after 'unpack 'unpack-slf4j (lambda* (#:key inputs #:allow-other-keys)
(lambda* (#:key inputs #:allow-other-keys) (mkdir-p "generated-sources")
(mkdir-p "generated-sources") (copy-recursively (assoc-ref inputs
(with-directory-excursion "generated-sources" "java-slf4j-simple-source")
(invoke "tar" "xf" (assoc-ref inputs "java-slf4j-simple-source")) "generated-sources")
(for-each delete-file (find-files "." "StaticLoggerBinder.java"))) (with-directory-excursion "generated-sources"
(for-each (for-each delete-file
(lambda (simple) (find-files "." "StaticLoggerBinder.java")))
(for-each (for-each (lambda (simple)
(lambda (java) (for-each (lambda (java)
(copy-file java (copy-file java
(string-append (string-append
"maven-slf4j-provider/src/main/java/org/slf4j/impl/" "maven-slf4j-provider/src/main/java/org/slf4j/impl/"
(basename java)))) (basename java))))
(find-files (string-append simple "/src/main/java/") "\\.java$"))) (find-files (string-append simple
(find-files "generated-sources" "slf4j-simple" #:directories? #t)))) "/src/main/java/")
(replace 'install "\\.java$")))
(install-from-pom "maven-slf4j-provider/pom.xml"))))) (find-files "generated-sources" "slf4j-simple"
(inputs #:directories? #t))))
`(("java-slf4j-api" ,java-slf4j-api) (replace 'install
("java-slf4j-simple-source" ,(package-source java-slf4j-simple)) (install-from-pom "maven-slf4j-provider/pom.xml")))))
("maven-shared-utils" ,maven-shared-utils))) (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)))) (native-inputs (list unzip))))
(define-public maven-embedder (define-public maven-embedder
@ -3012,6 +3015,50 @@ Maven project dependencies.")
maven-plugin-annotations maven-plugin-annotations
maven-enforcer-parent-pom)))) 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 (define-public maven-artifact-transfer
(package (package
(name "maven-artifact-transfer") (name "maven-artifact-transfer")

View file

@ -3196,7 +3196,7 @@ designed for experienced users.")
(define-public matterbridge (define-public matterbridge
(package (package
(name "matterbridge") (name "matterbridge")
(version "1.24.0") (version "1.25.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -3205,7 +3205,7 @@ designed for experienced users.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0cd70x9685162c0imdici1ipl9lziq700wzyb5bsg610wfak3ms7")))) "0csvxsgl62fjkrmk0wy64h2qaiy16m0wh6pqfbhz0kfacq16p9an"))))
;; Using the go-build-system results in the same error message ;; 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 ;; 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 ;; 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 © 2021 Raphaël Mélotte <raphael.melotte@mind.be>
;;; Copyright © 2022 Paul A. Patience <paul@apatience.com> ;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.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. ;;; This file is part of GNU Guix.
;;; ;;;
@ -50,6 +52,7 @@
#:use-module (gnu packages django) #:use-module (gnu packages django)
#:use-module (gnu packages gd) #:use-module (gnu packages gd)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
#:use-module (gnu packages gnome) ;libnotify
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages mail) #:use-module (gnu packages mail)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
@ -758,3 +761,46 @@ display resumes.
(description "StatsD is a friendly front-end to Graphite. This package (description "StatsD is a friendly front-end to Graphite. This package
provides a simple Python client for the StatsD daemon.") provides a simple Python client for the StatsD daemon.")
(license license:expat))) (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 (define-public blueman
(package (package
(name "blueman") (name "blueman")
(version "2.2.3") (version "2.3.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/blueman-project/blueman/releases" (uri (string-append "https://github.com/blueman-project/blueman/releases"
"/download/" version "/blueman-" version ".tar.xz")) "/download/" version "/blueman-" version ".tar.xz"))
(sha256 (sha256
(base32 "1s86w4mklzr8hvbgl3nkg8jycl6grww533dhzw8gdn5glqfpkpbf")))) (base32 "1bjh0cx9j2akygiqyxm7g0q74jyx9hpgf186gv3m31vks5zpvkw4"))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(arguments (arguments
`(#:configure-flags (list "--enable-polkit" `(#:configure-flags (list "--enable-polkit"
@ -942,30 +942,30 @@ systems with no further dependencies.")
(map (lambda (prog) (string-append libexec prog)) (map (lambda (prog) (string-append libexec prog))
'("mechanism" "rfcomm-watcher")))))))))) '("mechanism" "rfcomm-watcher"))))))))))
(native-inputs (native-inputs
`(("cython" ,python-cython) (list python-cython
("glib:bin" ,glib "bin") `(,glib "bin")
("gobject-introspection" ,gobject-introspection) gobject-introspection
("gtk+:bin" ,gtk+ "bin") `(,gtk+ "bin")
("intltool" ,intltool) intltool
("pkg-config" ,pkg-config))) pkg-config))
(inputs (inputs
`(("bluez" ,bluez) (list bluez
("dbus" ,dbus) dbus
("librsvg" ,librsvg) librsvg
("glib" ,glib) glib
("gtk+" ,gtk+) gtk+
("iproute2" ,iproute) iproute
("iptables" ,iptables) iptables
("net-tools" ,net-tools) net-tools
("pango" ,pango) pango
("polkit" ,polkit) polkit
("ppp" ,ppp) ppp
("pulseaudio" ,pulseaudio) pulseaudio
("pycairo" ,python-pycairo) python-pycairo
("pygobject" ,python-pygobject) python-pygobject
("python" ,python-wrapper) python-wrapper
("libappindicator" ,libappindicator) libappindicator
("libnm" ,network-manager))) network-manager))
(synopsis "GTK+ Bluetooth manager") (synopsis "GTK+ Bluetooth manager")
(description "Blueman is a Bluetooth management utility using the Bluez (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 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 "--disable-static" ; XXX still installs libopenvswitchavx512.a
"--localstatedir=/var" "--localstatedir=/var"
"--with-dbdir=/var/lib/openvswitch") "--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 #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'use-absolute-/bin/sh (add-after 'unpack 'use-absolute-/bin/sh

View file

@ -26,6 +26,7 @@
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -1078,54 +1079,52 @@ the OCaml core distribution.")
(license license:lgpl2.1+))); with linking exception (license license:lgpl2.1+))); with linking exception
(define-public emacs-tuareg (define-public emacs-tuareg
;; Last upstream release on Sept., 14th, 2018, since then "Package cl (package
;; deprecated" or 'lexical-binding' and others had been fixed. (name "emacs-tuareg")
(let ((commit "ccde45bbc292123ec20617f1af7f7e19f7481545") (version "3.0.0")
(revision "0")) (source
(package (origin
(name "emacs-tuareg") (method git-fetch)
(version (git-version "2.2.0" revision commit)) (uri (git-reference
(source (url "https://github.com/ocaml/tuareg")
(origin (commit version)))
(method git-fetch) (file-name (git-file-name name version))
(uri (git-reference (sha256
(url "https://github.com/ocaml/tuareg") (base32 "115vm0hq4xkwfd3w0j8xqhkdgcirlxpnwzwxv02c27583hj056is"))))
(commit commit))) (build-system gnu-build-system)
(file-name (git-file-name name version)) (arguments
(sha256 (list
(base32 "1yxv4bnqarilnpg5j7wywall8170hwvm0q4xx06yqjgcn8pq1lac")))) #:imported-modules `(,@%gnu-build-system-modules
(build-system gnu-build-system) (guix build emacs-build-system)
(native-inputs (guix build emacs-utils))
`(("emacs" ,emacs-minimal) #:modules '((guix build gnu-build-system)
("opam" ,opam))) ((guix build emacs-build-system) #:prefix emacs:)
(arguments (guix build emacs-utils)
`(#:phases (guix build utils))
(modify-phases %standard-phases #:phases
(add-after 'unpack 'make-git-checkout-writable #~(modify-phases %standard-phases
(lambda _ (add-after 'unpack 'make-git-checkout-writable
(for-each make-file-writable (find-files ".")) (lambda _
#t)) (for-each make-file-writable (find-files "."))))
(delete 'configure) (delete 'configure)
(add-before 'install 'fix-install-path (add-before 'install 'fix-install-path
(lambda* (#:key outputs #:allow-other-keys) (lambda _
(substitute* "Makefile" (substitute* "Makefile"
(("/emacs/site-lisp") (("/emacs/site-lisp")
(string-append (assoc-ref %outputs "out") (emacs:elpa-directory #$output)))))
"/share/emacs/site-lisp/"))) (add-after 'install 'post-install
#t)) (lambda _
(add-after 'install 'post-install (symlink "tuareg.el"
(lambda* (#:key outputs #:allow-other-keys) (string-append (emacs:elpa-directory #$output)
(symlink "tuareg.el" "/tuareg-autoloads.el")))))))
(string-append (assoc-ref outputs "out") (native-inputs
"/share/emacs/site-lisp/" (list emacs-minimal opam))
"tuareg-autoloads.el")) (home-page "https://github.com/ocaml/tuareg")
#t))))) (synopsis "OCaml programming mode, REPL, debugger for Emacs")
(home-page "https://github.com/ocaml/tuareg") (description "Tuareg helps editing OCaml code, to highlight important
(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 parts of the code, to run an OCaml REPL, and to run the OCaml debugger within
Emacs.") Emacs.")
(license license:gpl2+)))) (license license:gpl2+)))
(define-public ocaml-menhir (define-public ocaml-menhir
(package (package
@ -1954,7 +1953,7 @@ ocaml-migrate-parsetree")
(define-public ocaml-linenoise (define-public ocaml-linenoise
(package (package
(name "ocaml-linenoise") (name "ocaml-linenoise")
(version "1.3.1") (version "1.4.0")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -1963,7 +1962,7 @@ ocaml-migrate-parsetree")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0s98695skz1wvrak0rdlh80w3cv6piic1dxqpn9rv1yymbklafg4")))) "1gk11pflal08kg2dz1b5zrlpnhbxpg2rwf8cknw3vzmq6gsmk2kc"))))
(build-system dune-build-system) (build-system dune-build-system)
(arguments (arguments
;; No tests ;; No tests
@ -2701,7 +2700,7 @@ module Unix.")
(define-public ocaml-lwt-log (define-public ocaml-lwt-log
(package (package
(name "ocaml-lwt-log") (name "ocaml-lwt-log")
(version "1.1.1") (version "1.1.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -2710,7 +2709,7 @@ module Unix.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1n12i1rmn9cjn6p8yr6qn5dwbrwvym7ckr7bla04a1xnq8qlcyj7")))) "0mbv5l9gj09jd1c4lr2axcl4v043ipmhjd9xrk27l4hylzfc6d1q"))))
(build-system dune-build-system) (build-system dune-build-system)
(arguments (arguments
`(#:tests? #f)); require lwt_ppx `(#: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 (define-public ocaml-uunf
(package (package
(name "ocaml-uunf") (name "ocaml-uunf")
(version "14.0.0") (version "15.0.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -3076,13 +3075,18 @@ string values and to directly encode characters in OCaml Buffer.t values.")
version".tbz")) version".tbz"))
(sha256 (sha256
(base32 (base32
"17wv0nm3vvwcbzb1b09akw8jblmigyhbfmh1sy9lkb5756ni94a2")))) "1s5svvdqfbzw16rf1h0zm9n92xfdr0qciprd7lcjza8z1hy6pyh7"))))
(build-system ocaml-build-system) (build-system ocaml-build-system)
(arguments (arguments
`(#:build-flags (list "build" "--tests" "true") `(#:build-flags (list "build" "--tests" "true")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'configure) (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 (add-before 'check 'check-data
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(copy-file (assoc-ref inputs "NormalizationTest.txt") (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")) "/ucd/NormalizationTest.txt"))
(file-name (string-append "NormalizationTest-" version ".txt")) (file-name (string-append "NormalizationTest-" version ".txt"))
(sha256 (sha256
(base32 "0c93pqdkksf7b7zw8y2w0h9i5kkrsdjmh2cr5clrrhp6mg10rcvw")))))) (base32 "09pkawfqpgy2xnv2nkkgmxv53rx4anprg65crbbcm02a2p6ci6pv"))))))
(propagated-inputs (list ocaml-uutf)) (propagated-inputs (list ocaml-uutf))
(home-page "https://erratique.ch/software/uunf") (home-page "https://erratique.ch/software/uunf")
(synopsis "Unicode text normalization for OCaml") (synopsis "Unicode text normalization for OCaml")
@ -4468,6 +4472,35 @@ sensitive completion, colors, and more.")
("ocaml-zed" ,ocaml-zed))) ("ocaml-zed" ,ocaml-zed)))
(properties '())))) (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 (define-public ocaml-ptmap
(package (package
(name "ocaml-ptmap") (name "ocaml-ptmap")
@ -7998,7 +8031,7 @@ support for Mparser.")))
(define-public lablgtk3 (define-public lablgtk3
(package (package
(name "lablgtk") (name "lablgtk")
(version "3.1.1") (version "3.1.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -8007,10 +8040,11 @@ support for Mparser.")))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"11qfc39cmwfwfpwmjh6wh98zwdv6p73bv8hqwcsss869vs1r7gmn")))) "0b17w9qb1f02h3313cm62mrqlhwxficppzm72n7sf8mmwrylxbm7"))))
(build-system dune-build-system) (build-system dune-build-system)
(arguments (arguments
`(#:test-target "." `(#:package "lablgtk3"
#:test-target "."
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'build 'make-writable (add-before 'build 'make-writable
@ -8026,7 +8060,7 @@ support for Mparser.")))
(propagated-inputs (propagated-inputs
(list ocaml-cairo2)) (list ocaml-cairo2))
(inputs (inputs
(list camlp5 gtk+ gtksourceview-3 gtkspell3)) (list camlp5 gtk+))
(native-inputs (native-inputs
(list pkg-config)) (list pkg-config))
(home-page "https://github.com/garrigue/lablgtk") (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. ;; Version 2 only, with linking exception.
(license license:lgpl2.0))) (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 (define-public ocaml-reactivedata
(package (package
(name "ocaml-reactivedata") (name "ocaml-reactivedata")
@ -8071,7 +8118,7 @@ client chooses the concrete timeline.")
(define-public ocaml-uucd (define-public ocaml-uucd
(package (package
(name "ocaml-uucd") (name "ocaml-uucd")
(version "14.0.0") (version "15.0.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -8079,7 +8126,7 @@ client chooses the concrete timeline.")
"uucd-" version ".tbz")) "uucd-" version ".tbz"))
(sha256 (sha256
(base32 (base32
"0fc737v5gj3339jx4x9xr096lxrpwvp6vaiylhavcvsglcwbgm30")))) "1g26237yqmxr7sd1n9fg65qm5mxz66ybk7hr336zfyyzl25h6jqf"))))
(build-system ocaml-build-system) (build-system ocaml-build-system)
(arguments (arguments
'(#:build-flags '("build" "--tests" "true") '(#:build-flags '("build" "--tests" "true")
@ -8101,7 +8148,7 @@ representations can be extracted.")
(define-public ocaml-uucp (define-public ocaml-uucp
(package (package
(name "ocaml-uucp") (name "ocaml-uucp")
(version "14.0.0") (version "15.0.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -8109,7 +8156,7 @@ representations can be extracted.")
"uucp-" version ".tbz")) "uucp-" version ".tbz"))
(sha256 (sha256
(base32 (base32
"1yx9nih3d9prb9zizq8fzmmqylf24a6yifhf81h33znrj5xn1mpj")))) "0c2k9gkg442l7hnc8rn1vqzn6qh68w9fx7h3nj03n2x90ps98ixc"))))
(build-system ocaml-build-system) (build-system ocaml-build-system)
(arguments (arguments
'(#:build-flags '("build" "--tests" "true") '(#: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. Removes references to bundled libuv.
--- a/src/Makevars 2020-07-31 11:53:30.576484531 +0200 --- a/src/Makevars 2022-09-19 23:37:55.067810741 +0200
+++ b/src/Makevars 2020-07-31 11:54:19.369863118 +0200 +++ b/src/Makevars 2022-09-19 23:39:20.984859770 +0200
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
UNAME := $(shell uname) UNAME := $(shell uname)
@ -20,13 +20,12 @@ Removes references to bundled libuv.
# To avoid spurious warnings from `R CMD check --as-cran`, about compiler # To avoid spurious warnings from `R CMD check --as-cran`, about compiler
# warning flags like -Werror. # warning flags like -Werror.
@@ -43,49 +43,5 @@ @@ -43,50 +43,4 @@
# PKG_CPPFLAGS += -D_GLIBCXX_ASSERTIONS # PKG_CPPFLAGS += -D_GLIBCXX_ASSERTIONS
-$(SHLIB): libuv/.libs/libuv.a http-parser/http_parser.o sha1/sha1.o base64/base64.o -$(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 -# We needed to rename lt~obsolete.m4 because the name causes problems with R
-# CMD check. Here we rename it back. -# CMD check. Here we rename it back.
-libuv/m4/lt~obsolete.m4: libuv/m4/lt_obsolete.m4 -libuv/m4/lt~obsolete.m4: libuv/m4/lt_obsolete.m4
@ -59,7 +58,8 @@ Removes references to bundled libuv.
- touch aclocal.m4; \ - touch aclocal.m4; \
- touch -r aclocal.m4 configure Makefile.in; \ - touch -r aclocal.m4 configure Makefile.in; \
- else \ - else \
- echo "automake found. Running autogen.sh."; \ - echo "automake found. Running autoupdate and autogen.sh."; \
- autoupdate; \
- sh autogen.sh; \ - sh autogen.sh; \
- fi; \ - fi; \
- chmod +x configure; \ - chmod +x configure; \
@ -71,3 +71,4 @@ Removes references to bundled libuv.
- -
-clean: -clean:
- $(MAKE) --directory=libuv distclean - $(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 (define-public zathura
(package (package
(name "zathura") (name "zathura")
(version "0.4.9") (version "0.5.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -633,20 +633,21 @@ by using the poppler rendering engine.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0msy7s57mlx0wya99qpia4fpcy40pbj253kmx2y97nb0sqnc8c7w")))) "1c8vmfpghqlq5kdnq92bzzp2grym3x3kxxxqgs51178s4z7639lq"))))
(native-inputs `(("pkg-config" ,pkg-config) (native-inputs
("gettext" ,gettext-minimal) (list pkg-config
("glib:bin" ,glib "bin") gettext-minimal
(list glib "bin")
;; For building documentation. ;; For building documentation.
("python-sphinx" ,python-sphinx) python-sphinx
;; For building icons. ;; For building icons.
("librsvg" ,(librsvg-for-system)) (librsvg-for-system)
;; For tests. ;; For tests.
("check" ,check) check
("xorg-server" ,xorg-server-for-tests))) xorg-server-for-tests))
(inputs (list sqlite)) (inputs (list sqlite))
;; Listed in 'Requires.private' of 'zathura.pc'. ;; Listed in 'Requires.private' of 'zathura.pc'.
(propagated-inputs (list cairo girara)) (propagated-inputs (list cairo girara))
@ -660,8 +661,7 @@ by using the poppler rendering engine.")
(add-before 'check 'start-xserver (add-before 'check 'start-xserver
;; Tests require a running X server. ;; Tests require a running X server.
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((xorg-server (assoc-ref inputs "xorg-server")) (let ((display ":1"))
(display ":1"))
(setenv "DISPLAY" display) (setenv "DISPLAY" display)
;; On busy machines, tests may take longer than ;; 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'. ;; Don't fail due to missing '/etc/machine-id'.
(setenv "DBUS_FATAL_WARNINGS" "0") (setenv "DBUS_FATAL_WARNINGS" "0")
(zero? (system (string-append xorg-server "/bin/Xvfb " (zero? (system (string-append
display " &"))))))))) (search-input-file inputs "/bin/Xvfb")
" " display " &")))))))))
(home-page "https://pwmt.org/projects/zathura/") (home-page "https://pwmt.org/projects/zathura/")
(synopsis "Lightweight keyboard-driven PDF viewer") (synopsis "Lightweight keyboard-driven PDF viewer")
(description "Zathura is a customizable document viewer. It provides a (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 © 2018, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021, 2022 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; 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 @dfn{software configuration management} (SCM) metadata instead of declaring
them as the version argument or in a SCM managed file.") them as the version argument or in a SCM managed file.")
(license license:expat))) (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 git-download)
#:use-module (guix build-system cargo) #:use-module (guix build-system cargo)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix utils)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages crates-io) #:use-module (gnu packages crates-io)
@ -394,6 +395,86 @@ general production use. Include this module and use its backends at your own
risk.") risk.")
(license license:expat))) (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 (define-public python-certauth
(package (package
(name "python-certauth") (name "python-certauth")

View file

@ -45,12 +45,14 @@
#:use-module (gnu packages build-tools) #:use-module (gnu packages build-tools)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages cpp) #:use-module (gnu packages cpp)
#:use-module (gnu packages crypto)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages image-processing) #:use-module (gnu packages image-processing)
#:use-module (gnu packages machine-learning) #:use-module (gnu packages machine-learning)
#:use-module (gnu packages maths) #:use-module (gnu packages maths)
#:use-module (gnu packages mpi) #:use-module (gnu packages mpi)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
@ -1492,6 +1494,62 @@ well as potentially any library which conforms to a standard API. See the
documentation for more information.") documentation for more information.")
(license license:expat))) (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 ;;; 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 ;;; 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 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl> ;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl>
;;; Copyright © 2022 Mathieu Laparie <mlaparie@disr.it> ;;; Copyright © 2022 Mathieu Laparie <mlaparie@disr.it>
;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; 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.") perform the operations required for synchronizing plain text.")
(license license:asl2.0))) (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 (define-public python-dirsync
(package (package
(name "python-dirsync") (name "python-dirsync")
@ -22381,6 +22402,26 @@ library: to minimize boilerplate code in traditional extension modules by
inferring type information using compile-time introspection.") inferring type information using compile-time introspection.")
(license license:bsd-3))) (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 (define-public python-pooch
(package (package
(name "python-pooch") (name "python-pooch")
@ -27148,6 +27189,29 @@ applications with variable CPU loads).")
(home-page "https://jwilk.net/software/python-djvulibre") (home-page "https://jwilk.net/software/python-djvulibre")
(license license:gpl2))) (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 (define-public python-versioneer
(package (package
(name "python-versioneer") (name "python-versioneer")

View file

@ -18,6 +18,7 @@
;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org> ;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org>
;;; Copyright © 2022 Gabriel Arazas <foo.dogsquared@gmail.com> ;;; Copyright © 2022 Gabriel Arazas <foo.dogsquared@gmail.com>
;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2022 Mathieu Laparie <mlaparie@disr.it>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -768,6 +769,31 @@ your current directory for a regex pattern while respecting your
gitignore rules.") gitignore rules.")
(license (list license:unlicense license:expat)))) (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 (define-public git-interactive-rebase-tool
(package (package
(name "git-interactive-rebase-tool") (name "git-interactive-rebase-tool")

View file

@ -35,6 +35,7 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system copy)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (gnu packages) #:use-module (gnu packages)
@ -274,7 +275,7 @@ external dependencies.")
python-pyasn1 ;for krb5 tests python-pyasn1 ;for krb5 tests
;; For generating man pages. ;; For generating man pages.
docbook-xml-4.2 docbook-xml-4.2
docbook-xsl docbook-xsl-next ;otherwise the man pages are corrupted
libxslt libxslt
libxml2)) ;for XML_CATALOG_FILES libxml2)) ;for XML_CATALOG_FILES
(home-page "https://www.samba.org/") (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:bsd-4
license:gpl2+ license:gpl2+
license:public-domain)))) 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 (define-public xonsh
(package (package
(name "xonsh") (name "xonsh")
(version "0.13.1") (version "0.13.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "xonsh" version)) (uri (pypi-uri "xonsh" version))
(sha256 (sha256
(base32 (base32
"1b409wkh41inn6m0qmps4iq6bgvwg465dcfcbffqd15fr1j2d0hq")) "154s4lbda3n8kamiyblfrv8isn3hnqyxw2k99qicyfll02chpjzl"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
#~(begin #~(begin

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1987,6 +1987,41 @@ productive, customizable lisp based systems.")
(description "This package provides a StumpWM interactive shell.") (description "This package provides a StumpWM interactive shell.")
(license (list license:gpl2+ license:gpl3+ license:bsd-2)))) (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 (define-public sbcl-stumpwm+slynk
(deprecated-package "sbcl-stumpwm-with-slynk" stumpwm+slynk)) (deprecated-package "sbcl-stumpwm-with-slynk" stumpwm+slynk))
@ -2809,7 +2844,7 @@ Type=Application~%"
(define-public avizo (define-public avizo
(package (package
(name "avizo") (name "avizo")
(version "1.2") (version "1.2.1")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -2818,7 +2853,7 @@ Type=Application~%"
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"02h2jbgrbl2hyq6bzwryc1r47mipgdqrdh7zi44skc25w045s6q5")))) "0ddv5ssxfjbzhqskbbhi9qj1yqkraiv3r8svfmp9s5nnfpid8aba"))))
(build-system meson-build-system) (build-system meson-build-system)
(inputs (list gtk+)) (inputs (list gtk+))
(native-inputs (native-inputs

View file

@ -497,7 +497,7 @@ matching them against regular expressions.")
(define-public xfce4-pulseaudio-plugin (define-public xfce4-pulseaudio-plugin
(package (package
(name "xfce4-pulseaudio-plugin") (name "xfce4-pulseaudio-plugin")
(version "0.4.3") (version "0.4.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -506,21 +506,8 @@ matching them against regular expressions.")
(version-major+minor version) "/" (version-major+minor version) "/"
"xfce4-pulseaudio-plugin-" version ".tar.bz2")) "xfce4-pulseaudio-plugin-" version ".tar.bz2"))
(sha256 (sha256
(base32 "0nv1lbkshfzar87f6xq1ib120pjja24r7135rbc42wqkw8vq4las")))) (base32 "05f12fzn8q1y7jkzanxy82pzl00km66gngb5j6d5k8kbx9ykj9a4"))))
(build-system gnu-build-system) (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 (native-inputs
(list intltool pkg-config dbus-glib dbus)) (list intltool pkg-config dbus-glib dbus))
(inputs (inputs
@ -1530,7 +1517,7 @@ each time a new earthquake occurs.")
(define-public xfce4-datetime-plugin (define-public xfce4-datetime-plugin
(package (package
(name "xfce4-datetime-plugin") (name "xfce4-datetime-plugin")
(version "0.8.1") (version "0.8.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://archive.xfce.org/src/panel-plugins/" (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")) "/xfce4-datetime-plugin-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0h15mxq5lawlxyr6h1vxc60rkf0rpmnv81l0f52mrswww9dz3xp9")))) "0dz0syl9dm55pqcqywbnjpi14z2xh7pg2ipmxjgn4pq1az28qf3c"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list intltool pkg-config)) (list intltool pkg-config))
@ -1847,7 +1834,7 @@ interfaces of your choice in the panel.")
(define-public xfce4-places-plugin (define-public xfce4-places-plugin
(package (package
(name "xfce4-places-plugin") (name "xfce4-places-plugin")
(version "1.8.1") (version "1.8.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://archive.xfce.org/src/panel-plugins/" (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")) "/xfce4-places-plugin-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1chac4ki70axgvkmhw94m0srsv0pwiwqrqbh8di0y9n90fgj24gj")))) "00bh7d91vzk6s38djlpnihvjvymxgrnx3nh6sm2y3mnx2jmb4chy"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list intltool desktop-file-utils pkg-config)) (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)) (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." DELIMITER interposed LS. Support 'infix and 'suffix GRAMMAR values."
(when (not (member grammar '(infix suffix))) (when (not (member grammar '(infix suffix)))
(raise (raise
@ -442,6 +442,7 @@ the list result in @code{#t} when applying PRED? on them."
(define (text-config? config) (define (text-config? config)
(list-of file-like?)) (list-of file-like?))
(define (serialize-text-config field-name val) (define (serialize-text-config field-name val)
#~(string-append #~(string-append
#$@(interpose #$@(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. ;; Finally, return the PID of the daemon process.
daemon-pid)) daemon-pid))
(stop ;; XXX: jamid takes some time to terminate, and GNU Shepherd
#~(lambda (pid . args) ;; doesn't block when calling waitpid (see:
(kill pid SIGKILL) ;; https://issues.guix.gnu.org/57922). Using SIGKILL instead
;; Wait for the process to exit; this prevents overlapping ;; of SIGTERM works around that.
;; processes when issuing 'herd restart'. (stop #~(make-kill-destructor SIGKILL))))))))
(waitpid pid)
#f))))))))
(define jami-service-type (define jami-service-type
(service-type (service-type

View file

@ -14,6 +14,7 @@
;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020, 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro> ;;; Copyright © 2020, 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro>
;;; Copyright © 2022 Simen Endsjø <simendsjo@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -646,8 +647,12 @@ of index files."
" server_name " (config-domain-strings server-name) ";\n" " server_name " (config-domain-strings server-name) ";\n"
(and/l ssl-certificate " ssl_certificate " <> ";\n") (and/l ssl-certificate " ssl_certificate " <> ";\n")
(and/l ssl-certificate-key " ssl_certificate_key " <> ";\n") (and/l ssl-certificate-key " ssl_certificate_key " <> ";\n")
" root " root ";\n" (if (not (equal? "" root))
" index " (config-index-strings index) ";\n" (list " root " root ";\n")
"")
(if (not (null? index))
(list " index " (config-index-strings index) ";\n")
"")
(if (not (nil? try-files)) (if (not (nil? try-files))
(and/l (config-index-strings try-files) " try_files " <> ";\n") (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 (define %pseudo-file-system-types
;; List of know pseudo file system types. This is used when validating file ;; List of know pseudo file system types. This is used when validating file
;; system definitions. ;; 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")) "hugetlbfs" "overlay" "proc" "securityfs" "sysfs" "tmpfs"))
(define %fuse-control-file-system (define %fuse-control-file-system

View file

@ -3,6 +3,7 @@
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2022 Pavel Shlyak <p.shlyak@pantherx.org> ;;; Copyright © 2022 Pavel Shlyak <p.shlyak@pantherx.org>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> ;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2022 Alex Griffin <a@ajgrf.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -32,17 +33,20 @@
#:use-module ((guix self) #:select (make-config.scm)) #:use-module ((guix self) #:select (make-config.scm))
#:use-module (gnu bootloader) #:use-module (gnu bootloader)
#:use-module (gnu bootloader grub) #:use-module (gnu bootloader grub)
#:use-module (gnu compression)
#:use-module (gnu image) #:use-module (gnu image)
#:use-module (guix platform) #:use-module (guix platform)
#:use-module (gnu services) #:use-module (gnu services)
#:use-module (gnu services base) #:use-module (gnu services base)
#:use-module (gnu system) #:use-module (gnu system)
#:use-module (gnu system accounts)
#:use-module (gnu system file-systems) #:use-module (gnu system file-systems)
#:use-module (gnu system linux-container) #:use-module (gnu system linux-container)
#:use-module (gnu system uuid) #:use-module (gnu system uuid)
#:use-module (gnu system vm) #:use-module (gnu system vm)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages bootloaders) #:use-module (gnu packages bootloaders)
#:use-module (gnu packages cdrom) #:use-module (gnu packages cdrom)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
@ -65,6 +69,7 @@
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:export (root-offset #:export (root-offset
root-label root-label
image-without-os
esp-partition esp-partition
esp32-partition esp32-partition
@ -73,6 +78,8 @@
efi-disk-image efi-disk-image
iso9660-image iso9660-image
docker-image docker-image
tarball-image
wsl2-image
raw-with-offset-disk-image raw-with-offset-disk-image
image-with-os image-with-os
@ -82,6 +89,8 @@
iso-image-type iso-image-type
uncompressed-iso-image-type uncompressed-iso-image-type
docker-image-type docker-image-type
tarball-image-type
wsl2-image-type
raw-with-offset-image-type raw-with-offset-image-type
image-with-label image-with-label
@ -102,6 +111,12 @@
;; Generic root partition label. ;; Generic root partition label.
(define root-label "Guix_image") (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 (define esp-partition
(partition (partition
(size (* 40 (expt 2 20))) (size (* 40 (expt 2 20)))
@ -127,17 +142,17 @@
(initializer (gexp initialize-root-partition)))) (initializer (gexp initialize-root-partition))))
(define efi-disk-image (define efi-disk-image
(image (image-without-os
(format 'disk-image) (format 'disk-image)
(partitions (list esp-partition root-partition)))) (partitions (list esp-partition root-partition))))
(define efi32-disk-image (define efi32-disk-image
(image (image-without-os
(format 'disk-image) (format 'disk-image)
(partitions (list esp32-partition root-partition)))) (partitions (list esp32-partition root-partition))))
(define iso9660-image (define iso9660-image
(image (image-without-os
(format 'iso9660) (format 'iso9660)
(partitions (partitions
(list (partition (list (partition
@ -146,11 +161,19 @@
(flags '(boot))))))) (flags '(boot)))))))
(define docker-image (define docker-image
(image (image-without-os
(format 'docker))) (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)) (define* (raw-with-offset-disk-image #:optional (offset root-offset))
(image (image-without-os
(format 'disk-image) (format 'disk-image)
(partitions (partitions
(list (partition (list (partition
@ -211,6 +234,16 @@ set to the given OS."
(name 'docker) (name 'docker)
(constructor (cut image-with-os docker-image <>)))) (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 (define raw-with-offset-image-type
(image-type (image-type
(name 'raw-with-offset) (name 'raw-with-offset)
@ -681,6 +714,88 @@ output file."
#:options `(#:references-graphs ((,graph ,os)) #:options `(#:references-graphs ((,graph ,os))
#:substitutable? ,substitutable?)))) #: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. ;; Image creation.
@ -690,7 +805,7 @@ output file."
"Return the IMAGE root partition file-system type." "Return the IMAGE root partition file-system type."
(case (image-format image) (case (image-format image)
((iso9660) "iso9660") ((iso9660) "iso9660")
((docker) "dummy") ((docker tarball wsl2) "dummy")
(else (else
(partition-file-system (find-root-partition image))))) (partition-file-system (find-root-partition image)))))
@ -827,6 +942,10 @@ image, depending on IMAGE format."
("bootcfg" ,bootcfg)))) ("bootcfg" ,bootcfg))))
((memq image-format '(docker)) ((memq image-format '(docker))
(system-docker-image image*)) (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)) ((memq image-format '(iso9660))
(system-iso9660-image (system-iso9660-image
image* image*

View file

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