Merge remote-tracking branch core-updates-frozen into core-updates

This commit is contained in:
Mathieu Othacehe 2021-09-22 06:25:20 +00:00
commit 0cccc2f52c
No known key found for this signature in database
GPG key ID: 8354763531769CA6
506 changed files with 305419 additions and 215120 deletions

View file

@ -148,6 +148,8 @@
(eval . (put 'with-paginated-output-port 'scheme-indent-function 1))
(eval . (put 'with-shepherd-action 'scheme-indent-function 3))
;; This notably allows '(' in Paredit to not insert a space when the
;; preceding symbol is one of these.
(eval . (modify-syntax-entry ?~ "'"))

View file

@ -78,7 +78,7 @@
("CA4F 8CF4 37D7 478F DA05 5FD4 4213 7701 1A37 8446"
(name "lbraun (professional)"))
("ACC2 3BA0 59F7 CCF4 08F0 43AD 442A 84B8 C70E 2F87"
(name "leoprikler"))
(name "lilyp"))
("45E5 75FA 53EA 8BD6 1BCE 0B4E 3ADC 75F0 13D6 78F9"
(name "leungbk"))
(;; primary: "4F71 6F9A 8FA2 C80E F1B5 E1BA 5E35 F231 DE1A C5E0"

View file

@ -15,6 +15,7 @@ Ben Woodcroft <donttrustben@gmail.com>
Ben Woodcroft <donttrustben@gmail.com> <b.woodcroft@uq.edu.au>
Ben Woodcroft <donttrustben@gmail.com> <donttrustben near gmail.com>
Brett Gilio <brettg@gnu.org> <brettg@posteo.net>
Christine Lemmer-Webber <cwebber@dustycloud.org>
Claes Wallin (韋嘉誠) <claes.wallin@greatsinodevelopment.com>
Cyprien Nicolas <cyprien@nicolas.tf> <c.nicolas+gitorious@gmail.com>
Daniel Pimentel <d4n1@d4n1.org> <d4n1@member.fsf.org>
@ -40,9 +41,13 @@ Joshua Grant <tadni@riseup.net> <tadnimi@gmail.com>
Joshua Grant <tadni@riseup.net> <youlysses@riseup.net>
Kei Kebreau <kkebreau@posteo.net>
Leo Famulari <leo@famulari.name> <lfamular@gmail.com>
Liliana Prikler <liliana.prikler@gmail.com> Leo Prikler <leo.prikler@student.tugraz.at>
Ludovic Courtès <ludo@gnu.org> <ludovic.courtes@inria.fr>
Marek Benc <dusxmt@gmx.com> <merkur32@gmail.com>
Marius Bakke <mbakke@fastmail.com> <m.bakke@warwick.ac.uk>
Marius Bakke <marius@gnu.org> <mbakke@fastmail.com>
Marius Bakke <marius@gnu.org> <m.bakke@warwick.ac.uk>
Marius Bakke <marius@gnu.org> <marius.bakke@usit.uio.no>
Marius Bakke <marius@gnu.org> <mbakke@berlin.guixsd.org>
Mathieu Lirzin <mthl@gnu.org> <mthl@openmailbox.org>
Mathieu Lirzin <mthl@gnu.org> <mathieu.lirzin@openmailbox.org>
Mathieu Othacehe <m.othacehe@gmail.com>

View file

@ -141,6 +141,7 @@ MODULES = \
guix/build-system/go.scm \
guix/build-system/meson.scm \
guix/build-system/minify.scm \
guix/build-system/minetest.scm \
guix/build-system/asdf.scm \
guix/build-system/copy.scm \
guix/build-system/glib-or-gtk.scm \
@ -203,6 +204,7 @@ MODULES = \
guix/build/gnu-dist.scm \
guix/build/guile-build-system.scm \
guix/build/maven-build-system.scm \
guix/build/minetest-build-system.scm \
guix/build/node-build-system.scm \
guix/build/perl-build-system.scm \
guix/build/python-build-system.scm \
@ -260,6 +262,7 @@ MODULES = \
guix/import/json.scm \
guix/import/kde.scm \
guix/import/launchpad.scm \
guix/import/minetest.scm \
guix/import/opam.scm \
guix/import/print.scm \
guix/import/pypi.scm \
@ -303,6 +306,7 @@ MODULES = \
guix/scripts/import/go.scm \
guix/scripts/import/hackage.scm \
guix/scripts/import/json.scm \
guix/scripts/import/minetest.scm \
guix/scripts/import/opam.scm \
guix/scripts/import/pypi.scm \
guix/scripts/import/stackage.scm \
@ -367,14 +371,14 @@ AUX_FILES = \
gnu/packages/aux-files/chromium/master-preferences.json \
gnu/packages/aux-files/emacs/guix-emacs.el \
gnu/packages/aux-files/guix.vim \
gnu/packages/aux-files/linux-libre/5.14-arm.conf \
gnu/packages/aux-files/linux-libre/5.14-arm64.conf \
gnu/packages/aux-files/linux-libre/5.14-i686.conf \
gnu/packages/aux-files/linux-libre/5.14-x86_64.conf \
gnu/packages/aux-files/linux-libre/5.13-arm.conf \
gnu/packages/aux-files/linux-libre/5.13-arm64.conf \
gnu/packages/aux-files/linux-libre/5.13-i686.conf \
gnu/packages/aux-files/linux-libre/5.13-x86_64.conf \
gnu/packages/aux-files/linux-libre/5.12-arm.conf \
gnu/packages/aux-files/linux-libre/5.12-arm64.conf \
gnu/packages/aux-files/linux-libre/5.12-i686.conf \
gnu/packages/aux-files/linux-libre/5.12-x86_64.conf \
gnu/packages/aux-files/linux-libre/5.10-arm.conf \
gnu/packages/aux-files/linux-libre/5.10-arm64.conf \
gnu/packages/aux-files/linux-libre/5.10-i686.conf \
@ -475,6 +479,7 @@ SCM_TESTS = \
tests/import-utils.scm \
tests/inferior.scm \
tests/lint.scm \
tests/minetest.scm \
tests/modules.scm \
tests/monads.scm \
tests/nar.scm \
@ -496,6 +501,7 @@ SCM_TESTS = \
tests/services/file-sharing.scm \
tests/services/configuration.scm \
tests/services/linux.scm \
tests/services/telephony.scm \
tests/sets.scm \
tests/size.scm \
tests/status.scm \
@ -519,6 +525,8 @@ SCM_TESTS = \
if HAVE_GUILE_LIB
SCM_TESTS += tests/go.scm
else
EXTRA_DIST += tests/go.scm
endif
if BUILD_DAEMON_OFFLOAD
@ -620,9 +628,11 @@ EXTRA_DIST += \
.guix-authorizations \
.guix-channel \
scripts/guix.in \
etc/disarchive-manifest.scm \
etc/guix-install.sh \
etc/news.scm \
etc/release-manifest.scm \
etc/source-manifest.scm \
etc/system-tests.scm \
etc/historical-authorizations \
build-aux/build-self.scm \

2
THANKS
View file

@ -43,7 +43,7 @@ infrastructure help:
Alen Skondro <askondro@gmail.com>
Jan Synáček <jan.synacek@gmail.com>
Matthias Wachs <wachs@net.in.tum.de>
Christopher Allan Webber <cwebber@dustycloud.org>
Christine Lemmer-Webber <cwebber@dustycloud.org>
Philip Woods <elzairthesorcerer@gmail.com>
GNU Guix also includes non-software works. Thanks to the following

View file

@ -16,7 +16,7 @@ Copyright @copyright{} 2020 Matthew Brooks@*
Copyright @copyright{} 2020 Marcin Karpezo@*
Copyright @copyright{} 2020 Brice Waegeneire@*
Copyright @copyright{} 2020 André Batista@*
Copyright @copyright{} 2020 Christopher Lemmer Webber
Copyright @copyright{} 2020 Christine Lemmer-Webber@*
Copyright @copyright{} 2021 Joshua Branson@*
Permission is granted to copy, distribute and/or modify this document
@ -591,7 +591,7 @@ packages.
Guix makes it possible to streamline the process by adding as many ``package
declaration directories'' as you want.
Create a directory, say @file{~./guix-packages} and add it to the @samp{GUIX_PACKAGE_PATH}
Create a directory, say @file{~/guix-packages} and add it to the @samp{GUIX_PACKAGE_PATH}
environment variable:
@example
@ -1714,7 +1714,7 @@ operating-system dedicated to the @b{Pine A64 LTS} board.
(locale "en_US.utf8")
(bootloader (bootloader-configuration
(bootloader u-boot-pine64-lts-bootloader)
(target "/dev/vda")))
(targets '("/dev/vda"))))
(initrd-modules '())
(kernel linux-libre-arm64-generic)
(file-systems (cons (file-system
@ -2046,10 +2046,12 @@ Copy into it the output of:
cat ~/.ssh/<username>_rsa.pub
@end example
Power the Linode down. In the Linode's Disks/Configurations tab, resize
the Debian disk to be smaller. 30 GB is recommended.
Power the Linode down.
In the Linode's Storage tab, resize the Debian disk to be smaller.
30 GB free space is recommended. Then click "Add a disk", and fill
out the form with the following:
In the Linode settings, "Add a disk", with the following:
@itemize @bullet
@item
Label: "Guix"
@ -2061,9 +2063,9 @@ Filesystem: ext4
Set it to the remaining size
@end itemize
On the "configuration" field that comes with the default image, press
"..." and select "Edit", then on that menu add to @file{/dev/sdc} the "Guix"
label.
In the Configurations tab, press "Edit" on the default Debian profile.
Under "Block Device Assignment" click "Add a Device". It should be
@file{/dev/sdc} and you can select the "Guix" disk. Save Changes.
Now "Add a Configuration", with the following:
@itemize @bullet
@ -2089,8 +2091,8 @@ Root device: @file{/dev/sda}
Turn off all the filesystem/boot helpers
@end itemize
Now power it back up, picking the Debian configuration. Once it's
booted up, ssh in your server via @code{ssh
Now power it back up, booting with the Debian configuration. Once it's
running, ssh to your server via @code{ssh
root@@@var{<your-server-IP-here>}}. (You can find your server IP address in
your Linode Summary section.) Now you can run the "install guix from
@pxref{Binary Installation,,, guix, GNU Guix}" steps:
@ -2179,19 +2181,20 @@ Replace the following fields in the above configuration:
@end lisp
The last line in the above example lets you log into the server as root
and set the initial root password. After you have done this, you may
and set the initial root password (see the note at the end of this
recipe about root login). After you have done this, you may
delete that line from your configuration and reconfigure to prevent root
login.
Save your ssh public key (eg: @file{~/.ssh/id_rsa.pub}) as
@file{@var{<your-username-here>}_rsa.pub} and your
Copy your ssh public key (eg: @file{~/.ssh/id_rsa.pub}) as
@file{@var{<your-username-here>}_rsa.pub} and put
@file{guix-config.scm} in the same directory. In a new terminal run
these commands.
@example
sftp root@@<remote server ip address>
put /home/<username>/ssh/id_rsa.pub .
put /path/to/linode/guix-config.scm .
put /path/to/files/<username>_rsa.pub .
put /path/to/files/guix-config.scm .
@end example
In your first terminal, mount the guix drive:
@ -2201,9 +2204,9 @@ mkdir /mnt/guix
mount /dev/sdc /mnt/guix
@end example
Due to the way we set things up above, we do not install GRUB
completely. Instead we install only our grub configuration file. So we
need to copy over some of the other GRUB stuff that is already there:
Due to the way we set up the bootloader section of the guix-config.scm,
only the grub configuration file will be installed. So, we need to copy
over some of the other GRUB stuff already installed on the Debian system:
@example
mkdir -p /mnt/guix/boot/grub
@ -2256,7 +2259,7 @@ still need to set your root and user password initially by clicking on
the ``Launch Console'' option in your linode. Choose the ``Glish''
instead of ``Weblish''. Now you should be able to ssh into the machine.
Horray! At this point you can shut down the server, delete the
Hooray! At this point you can shut down the server, delete the
Debian disk, and resize the Guix to the rest of the size.
Congratulations!

View file

@ -46,8 +46,8 @@ Copyright @copyright{} 2017 Federico Beffa@*
Copyright @copyright{} 2017, 2018 Carlo Zancanaro@*
Copyright @copyright{} 2017 Thomas Danckaert@*
Copyright @copyright{} 2017 humanitiesNerd@*
Copyright @copyright{} 2017, 2021 Christopher Lemmer Webber@*
Copyright @copyright{} 2017, 2018, 2019, 2020 Marius Bakke@*
Copyright @copyright{} 2017, 2021 Christine Lemmer-Webber@*
Copyright @copyright{} 2017, 2018, 2019, 2020, 2021 Marius Bakke@*
Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@*
Copyright @copyright{} 2017, 2019, 2020, 2021 Maxim Cournoyer@*
Copyright @copyright{} 2017, 2018, 2019, 2020, 2021 Tobias Geerinckx-Rice@*
@ -94,6 +94,8 @@ Copyright @copyright{} 2021 Xinglu Chen@*
Copyright @copyright{} 2021 Raghav Gururajan@*
Copyright @copyright{} 2021 Domagoj Stolfa@*
Copyright @copyright{} 2021 Hui Lu@*
Copyright @copyright{} 2021 pukkamustard@*
Copyright @copyright{} 2021 Alice Brenon@*
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@ -2568,14 +2570,15 @@ in particular:
@itemize
@item
Make sure the @code{bootloader-configuration} form refers to the target
you want to install GRUB on. It should mention @code{grub-bootloader} if
you are installing GRUB in the legacy way, or @code{grub-efi-bootloader}
for newer UEFI systems. For legacy systems, the @code{target} field
names a device, like @code{/dev/sda}; for UEFI systems it names a path
to a mounted EFI partition, like @code{/boot/efi}; do make sure the path is
currently mounted and a @code{file-system} entry is specified in your
configuration.
Make sure the @code{bootloader-configuration} form refers to the targets
you want to install GRUB on. It should mention @code{grub-bootloader}
if you are installing GRUB in the legacy way, or
@code{grub-efi-bootloader} for newer UEFI systems. For legacy systems,
the @code{targets} field contain the names of the devices, like
@code{(list "/dev/sda")}; for UEFI systems it names the paths to mounted
EFI partitions, like @code{(list "/boot/efi")}; do make sure the paths
are currently mounted and a @code{file-system} entry is specified in
your configuration.
@item
Be sure that your file system labels match the value of their respective
@ -7056,9 +7059,10 @@ retrieve.
The URL of the Git repository to clone.
@item @code{commit}
This string denotes either the commit to fetch (a hexadecimal string,
either the full SHA1 commit or a ``short'' commit string; the latter is
not recommended) or the tag to fetch.
This string denotes either the commit to fetch (a hexadecimal string),
or the tag to fetch. You can also use a ``short'' commit ID or a
@command{git describe} style identifier such as
@code{v1.0.1-10-g58d7909c97}.
@item @code{recursive?} (default: @code{#f})
This Boolean indicates whether to recursively fetch Git sub-modules.
@ -7801,6 +7805,7 @@ The @code{#:package} parameter can be passed to specify a package name, which
is useful when a package contains multiple packages and you want to build
only one of them. This is equivalent to passing the @code{-p} argument to
@code{dune}.
@end defvr
@defvr {Scheme Variable} go-build-system
@ -7824,6 +7829,13 @@ Packages that provide Go libraries should install their source code into
the built output. The key @code{#:install-source?}, which defaults to
@code{#t}, controls whether or not the source code is installed. It can
be set to @code{#f} for packages that only provide executable files.
Packages can be cross-built, and if a specific architecture or operating
system is desired then the keywords @code{#:goarch} and @code{#:goos}
can be used to force the package to be built for that architecture and
operating system. The combinations known to Go can be found
@url{"https://golang.org/doc/install/source#environment", in their
documentation}.
@end defvr
@defvr {Scheme Variable} glib-or-gtk-build-system
@ -7965,6 +7977,14 @@ declaration. Its default value is @code{(default-maven-plugins)} which is
also exported.
@end defvr
@defvr {Scheme Variable} minetest-mod-build-system
This variable is exported by @code{(guix build-system minetest)}. It
implements a build procedure for @uref{https://www.minetest.net, Minetest}
mods, which consists of copying Lua code, images and other resources to
the location Minetest searches for mods. The build system also minimises
PNG images and verifies that Minetest can load the mod without errors.
@end defvr
@defvr {Scheme Variable} minify-build-system
This variable is exported by @code{(guix build-system minify)}. It
implements a minification procedure for simple JavaScript packages.
@ -10743,7 +10763,8 @@ guix build --with-branch=guile-sqlite3=master cuirass
@item --with-commit=@var{package}=@var{commit}
This is similar to @option{--with-branch}, except that it builds from
@var{commit} rather than the tip of a branch. @var{commit} must be a valid
Git commit SHA1 identifier or a tag.
Git commit SHA1 identifier, a tag, or a @command{git describe} style
identifier such as @code{1.0-3-gabc123}.
@item --with-patch=@var{package}=@var{file}
Add @var{file} to the list of patches applied to @var{package}, where
@ -11410,6 +11431,38 @@ and generate package expressions for all those packages that are not yet
in Guix.
@end table
@item minetest
@cindex minetest
@cindex ContentDB
Import metadata from @uref{https://content.minetest.net, ContentDB}.
Information is taken from the JSON-formatted metadata provided through
@uref{https://content.minetest.net/help/api/, ContentDB's API} and
includes most relevant information, including dependencies. There are
some caveats, however. The license information is often incomplete.
The commit hash is sometimes missing. The descriptions are in the
Markdown format, but Guix uses Texinfo instead. Texture packs and
subgames are unsupported.
The command below imports metadata for the Mesecons mod by Jeija:
@example
guix import minetest Jeija/mesecons
@end example
The author name can also be left out:
@example
guix import minetest mesecons
@end example
@table @code
@item --recursive
@itemx -r
Traverse the dependency graph of the given upstream package recursively
and generate package expressions for all those packages that are not yet
in Guix.
@end table
@item cpan
@cindex CPAN
Import metadata from @uref{https://www.metacpan.org/, MetaCPAN}.
@ -11660,6 +11713,10 @@ contained in the GnuPG keyring at
@code{emacs} package (@pxref{Package Installation, ELPA package
signatures,, emacs, The GNU Emacs Manual}).
@item
@uref{https://elpa.nongnu.org/nongnu/, NonGNU}, selected by the
@code{nongnu} identifier.
@item
@uref{https://stable.melpa.org/packages, MELPA-Stable}, selected by the
@code{melpa-stable} identifier.
@ -11716,14 +11773,31 @@ Traverse the dependency graph of the given upstream package recursively
and generate package expressions for all those packages that are not yet
in Guix.
@item --repo
Select the given repository (a repository name). Possible values include:
By default, packages are searched in the official OPAM repository. This
option, which can be used more than once, lets you add other repositories
which will be searched for packages. It accepts as valid arguments:
@itemize
@item @code{opam}, the default opam repository,
@item @code{coq} or @code{coq-released}, the stable repository for coq packages,
@item @code{coq-core-dev}, the repository that contains development versions of coq,
@item @code{coq-extra-dev}, the repository that contains development versions
of coq packages.
@item the name of a known repository - can be one of @code{opam},
@code{coq} (equivalent to @code{coq-released}),
@code{coq-core-dev}, @code{coq-extra-dev} or @code{grew}.
@item the URL of a repository as expected by the
@code{opam repository add} command (for instance, the URL equivalent
of the above @code{opam} name would be
@uref{https://opam.ocaml.org}).
@item the path to a local copy of a repository (a directory containing a
@file{packages/} sub-directory).
@end itemize
Repositories are assumed to be passed to this option by order of
preference. The additional repositories will not replace the default
@code{opam} repository, which is always kept as a fallback.
Also, please note that versions are not compared accross repositories.
The first repository (from left to right) that has at least one version
of a given package will prevail over any others, and the version
imported will be the latest one found @emph{in this repository only}.
@end table
@item go
@ -13681,7 +13755,7 @@ the @code{bootloader} field should contain something along these lines:
@lisp
(bootloader-configuration
(bootloader grub-efi-bootloader)
(target "/boot/efi"))
(targets '("/boot/efi")))
@end lisp
@xref{Bootloader Configuration}, for more information on the available
@ -14108,8 +14182,8 @@ Linux @dfn{pluggable authentication module} (PAM) services.
@c FIXME: Add xref to PAM services section.
@item @code{setuid-programs} (default: @code{%setuid-programs})
List of string-valued G-expressions denoting setuid programs.
@xref{Setuid Programs}.
List of @code{<setuid-program>}. @xref{Setuid Programs}, for more
information.
@item @code{sudoers-file} (default: @code{%sudoers-specification})
@cindex sudoers file
@ -14896,7 +14970,7 @@ configuration would look like:
(keyboard-layout (keyboard-layout "tr")) ;for the console
(bootloader (bootloader-configuration
(bootloader grub-efi-bootloader)
(target "/boot/efi")
(targets '("/boot/efi"))
(keyboard-layout keyboard-layout))) ;for GRUB
(services (cons (set-xorg-configuration
(xorg-configuration ;for Xorg
@ -16122,7 +16196,8 @@ gexps to introduce job definitions that are passed to mcron
(lambda ()
(execl (string-append #$findutils "/bin/updatedb")
"updatedb"
"--prunepaths=/tmp /var/tmp /gnu/store"))))
"--prunepaths=/tmp /var/tmp /gnu/store"))
"updatedb"))
(define garbage-collector-job
;; Collect garbage 5 minutes after midnight every day.
@ -16151,6 +16226,14 @@ gexps to introduce job definitions that are passed to mcron
%base-services)))
@end lisp
@quotation Tip
When providing the action of a job specification as a procedure, you
should provide an explicit name for the job via the optional 3rd
argument as done in the @code{updatedb-job} example above. Otherwise,
the job would appear as ``Lambda function'' in the output of
@command{herd schedule mcron}, which is not nearly descriptive enough!
@end quotation
For more complex jobs defined in Scheme where you need control over the top
level, for instance to introduce a @code{use-modules} form, you can move your
code to a separate program using the @code{program-file} procedure of the
@ -18259,6 +18342,14 @@ Data type representing the configuration of @code{slim-service-type}.
@item @code{allow-empty-passwords?} (default: @code{#t})
Whether to allow logins with empty passwords.
@item @code{gnupg?} (default: @code{#f})
If enabled, @code{pam-gnupg} will attempt to automatically unlock the
user's GPG keys with the login password via @code{gpg-agent}. The
keygrips of all keys to be unlocked should be written to
@file{~/.pam-gnupg}, and can be queried with @code{gpg -K
--with-keygrip}. Presetting passphrases must be enabled by adding
@code{allow-preset-passphrase} in @file{~/.gnupg/gpg-agent.conf}.
@item @code{auto-login?} (default: @code{#f})
@itemx @code{default-user} (default: @code{""})
When @code{auto-login?} is false, SLiM presents a log-in screen.
@ -22735,6 +22826,234 @@ and Error.
@node Telephony Services
@subsection Telephony Services
@cindex telephony, services
The @code{(gnu services telephony)} module contains Guix service
definitions for telephony services. Currently it provides the following
services:
@subsubheading Jami
@cindex jami, service
This section describes how to configure a Jami server that can be used
to host video (or audio) conferences, among other uses. The following
example demonstrates how to specify Jami account archives (backups) to
be provisioned automatically:
@lisp
(service jami-service-type
(jami-configuration
(accounts
(list (jami-account
(archive "/etc/jami/unencrypted-account-1.gz"))
(jami-account
(archive "/etc/jami/unencrypted-account-2.gz"))))))
@end lisp
When the accounts field is specified, the Jami account files of the
service found under @file{/var/lib/jami} are recreated every time the
service starts.
Jami accounts and their corresponding backup archives can be generated
using either the @code{jami-qt} or @code{jami-gnome} Jami clients. The
accounts should not be password-protected, but it is wise to ensure
their files are only readable by @samp{root}.
The next example shows how to declare that only some contacts should be
allowed to communicate with a given account:
@lisp
(service jami-service-type
(jami-configuration
(accounts
(list (jami-account
(archive "/etc/jami/unencrypted-account-1.gz")
(peer-discovery? #t)
(rendezvous-point? #t)
(allowed-contacts
'("1dbcb0f5f37324228235564b79f2b9737e9a008f"
"2dbcb0f5f37324228235564b79f2b9737e9a008f")))))))
@end lisp
In this mode, only the declared @code{allowed-contacts} can initiate
communication with the Jami account. This can be used, for example,
with rendezvous point accounts to create a private video conferencing
space.
To put the system administrator in full control of the conferences
hosted on their system, the Jami service supports the following actions:
@example sh
# herd doc jami list-actions
(list-accounts
list-account-details
list-banned-contacts
list-contacts
list-moderators
add-moderator
ban-contact
enable-account
disable-account)
@end example
The above actions aim to provide the most valuable actions for
moderation purposes, not to cover the whole Jami API. Users wanting to
interact with the Jami daemon from Guile may be interested in
experimenting with the @code{(gnu build jami-service)} module, which
powers the above Shepherd actions.
@c TODO: This should be auto-generated from the doc already defined on
@c the shepherd-actions themselves in (gnu services telephony).
The @code{add-moderator} and @code{ban-contact} actions accept a contact
@emph{fingerprint} (40 characters long hash) as first argument and an
account fingerprint or username as second argument:
@example sh
# herd add-moderator jami 1dbcb0f5f37324228235564b79f2b9737e9a008f \
f3345f2775ddfe07a4b0d95daea111d15fbc1199
# herd list-moderators jami
Moderators for account f3345f2775ddfe07a4b0d95daea111d15fbc1199:
- 1dbcb0f5f37324228235564b79f2b9737e9a008f
@end example
In the case of @code{ban-contact}, the second username argument is
optional; when omitted, the account is banned from all Jami accounts:
@example sh
# herd ban-contact jami 1dbcb0f5f37324228235564b79f2b9737e9a008f
# herd list-banned-contacts jami
Banned contacts for account f3345f2775ddfe07a4b0d95daea111d15fbc1199:
- 1dbcb0f5f37324228235564b79f2b9737e9a008f
@end example
Banned contacts are also stripped from their moderation privileges.
The @code{disable-account} action allows to completely disconnect an
account from the network, making it unreachable, while
@code{enable-account} does the inverse. They accept a single account
username or fingerprint as first argument:
@example sh
# herd disable-account jami f3345f2775ddfe07a4b0d95daea111d15fbc1199
# herd list-accounts jami
The following Jami accounts are available:
- f3345f2775ddfe07a4b0d95daea111d15fbc1199 (dummy) [disabled]
@end example
The @code{list-account-details} action prints the detailed parameters of
each accounts in the Recutils format, which means the @command{recsel}
command can be used to select accounts of interest (@pxref{Selection
Expressions,,,recutils, GNU recutils manual}). Note that period
characters (@samp{.}) found in the account parameter keys are mapped to
underscores (@samp{_}) in the output, to meet the requirements of the
Recutils format. The following example shows how to print the account
fingerprints for all accounts operating in the rendezvous point mode:
@example sh
# herd list-account-details jami | \
recsel -p Account.username -e 'Account.rendezVous ~ "true"'
Account_username: f3345f2775ddfe07a4b0d95daea111d15fbc1199
@end example
The remaining actions should be self-explanatory.
The complete set of available configuration options is detailed below.
@c TODO: Ideally, the following fragments would be auto-generated at
@c build time, so that they needn't be manually duplicated.
@c Auto-generated via (configuration->documentation 'jami-configuration)
@deftp {Data Type} jami-configuration
Available @code{jami-configuration} fields are:
@table @asis
@item @code{jamid} (default: @code{libring}) (type: package)
The Jami daemon package to use.
@item @code{dbus} (default: @code{dbus}) (type: package)
The D-Bus package to use to start the required D-Bus session.
@item @code{nss-certs} (default: @code{nss-certs}) (type: package)
The nss-certs package to use to provide TLS certificates.
@item @code{enable-logging?} (default: @code{#t}) (type: boolean)
Whether to enable logging to syslog.
@item @code{debug?} (default: @code{#f}) (type: boolean)
Whether to enable debug level messages.
@item @code{auto-answer?} (default: @code{#f}) (type: boolean)
Whether to force automatic answer to incoming calls.
@item @code{accounts} (default: @code{disabled}) (type: maybe-jami-account-list)
A list of Jami accounts to be (re-)provisioned every time the Jami
daemon service starts. When providing this field, the account
directories under @file{/var/lib/jami/} are recreated every time the
service starts, ensuring a consistent state.
@end table
@end deftp
@c Auto-generated via (configuration->documentation 'jami-account)
@deftp {Data Type} jami-account
Available @code{jami-account} fields are:
@table @asis
@item @code{archive} (type: string-or-computed-file)
The account archive (backup) file name of the account. This is used to
provision the account when the service starts. The account archive
should @emph{not} be encrypted. It is highly recommended to make it
readable only to the @samp{root} user (i.e., not in the store), to guard
against leaking the secret key material of the Jami account it contains.
@item @code{allowed-contacts} (default: @code{disabled}) (type: maybe-account-fingerprint-list)
The list of allowed contacts for the account, entered as their 40
characters long fingerprint. Messages or calls from accounts not in
that list will be rejected. When unspecified, the configuration of the
account archive is used as-is with respect to contacts and public
inbound calls/messaging allowance, which typically defaults to allow any
contact to communicate with the account.
@item @code{moderators} (default: @code{disabled}) (type: maybe-account-fingerprint-list)
The list of contacts that should have moderation privileges (to ban,
mute, etc. other users) in rendezvous conferences, entered as their 40
characters long fingerprint. When unspecified, the configuration of the
account archive is used as-is with respect to moderation, which
typically defaults to allow anyone to moderate.
@item @code{rendezvous-point?} (default: @code{disabled}) (type: maybe-boolean)
Whether the account should operate in the rendezvous mode. In this
mode, all the incoming audio/video calls are mixed into a conference.
When left unspecified, the value from the account archive prevails.
@item @code{peer-discovery?} (default: @code{disabled}) (type: maybe-boolean)
Whether peer discovery should be enabled. Peer discovery is used to
discover other OpenDHT nodes on the local network, which can be useful
to maintain communication between devices on such network even when the
connection to the the Internet has been lost. When left unspecified,
the value from the account archive prevails.
@item @code{bootstrap-hostnames} (default: @code{disabled}) (type: maybe-string-list)
A list of hostnames or IPs pointing to OpenDHT nodes, that should be
used to initially join the OpenDHT network. When left unspecified, the
value from the account archive prevails.
@item @code{name-server-uri} (default: @code{disabled}) (type: maybe-string)
The URI of the name server to use, that can be used to retrieve the
account fingerprint for a registered username.
@end table
@end deftp
@subsubheading Murmur (VoIP server)
@cindex Murmur (VoIP server)
@cindex VoIP server
This section describes how to set up and run a Murmur server. Murmur is
@ -25042,6 +25361,7 @@ of strings and G-expressions.
@end table
@end deffn
@anchor{NGINX}
@subsubheading NGINX
@deffn {Scheme Variable} nginx-service-type
@ -27861,6 +28181,11 @@ Use @var{cache} directory to cache build log files.
Once a substitute is successfully fetched, trigger substitute baking at
@var{trigger-url}.
@item @code{publish?} (default: @code{#t})
If set to false, do not start a publish server and ignore the
@code{publish-port} argument. This can be useful if there is already a
standalone publish server standing next to the remote server.
@item @code{public-key}
@item @code{private-key}
Use the specific @var{file}s as the public/private key pair used to sign
@ -27895,6 +28220,9 @@ Location of the log file.
@item @code{publish-port} (default: @code{5558})
The TCP port of the publish server. It defaults to @code{5558}.
@item @code{substitute-urls} (default: @code{%default-substitute-urls})
The list of URLs where to look for substitutes by default.
@item @code{public-key}
@item @code{private-key}
Use the specific @var{file}s as the public/private key pair used to sign
@ -31407,6 +31735,19 @@ A value like @code{#o0027} will give read access to the group used by Gitolite
(by default: @code{git}). This is necessary when using Gitolite with software
like cgit or gitweb.
@item @code{unsafe-pattern} (default: @code{#f})
An optional Perl regular expression for catching unsafe configurations in
the configuration file. See
@uref{https://gitolite.com/gitolite/git-config.html#compensating-for-unsafe_patt,
Gitolite's documentation} for more information.
When the value is not @code{#f}, it should be a string containing a Perl
regular expression, such as @samp{"[`~#\$\&()|;<>]"}, which is the default
value used by gitolite. It rejects any special character in configuration
that might be interpreted by a shell, which is useful when sharing the
administration burden with other people that do not otherwise have shell
access on the server.
@item @code{git-config-keys} (default: @code{""})
Gitolite allows you to set git config values using the @samp{config}
keyword. This setting allows control over the config keys to accept.
@ -31421,6 +31762,137 @@ This setting controls the commands and features to enable within Gitolite.
@end deftp
@subsubheading Gitile Service
@cindex Gitile service
@cindex Git, forge
@uref{https://git.lepiller.eu/gitile, Gitile} is a Git forge for viewing
public git repository contents from a web browser.
Gitile works best in collaboration with Gitolite, and will serve the public
repositories from Gitolite by default. The service should listen only on
a local port, and a webserver should be configured to serve static resources.
The gitile service provides an easy way to extend the Nginx service for
that purpose (@pxref{NGINX}).
The following example will configure Gitile to serve repositories from a
custom location, with some default messages for the home page and the
footers.
@lisp
(service gitile-service-type
(gitile-configuration
(repositories "/srv/git")
(base-git-url "https://myweb.site/git")
(index-title "My git repositories")
(intro '((p "This is all my public work!")))
(footer '((p "This is the end")))
(nginx-server-block
(nginx-server-configuration
(ssl-certificate
"/etc/letsencrypt/live/myweb.site/fullchain.pem")
(ssl-certificate-key
"/etc/letsencrypt/live/myweb.site/privkey.pem")
(listen '("443 ssl http2" "[::]:443 ssl http2"))
(locations
(list
;; Allow for https anonymous fetch on /git/ urls.
(git-http-nginx-location-configuration
(git-http-configuration
(uri-path "/git/")
(git-root "/var/lib/gitolite/repositories")))))))))
@end lisp
In addition to the configuration record, you should configure your git
repositories to contain some optional information. First, your public
repositories need to contain the @file{git-daemon-export-ok} magic file
that allows Git to export the repository. Gitile uses the presence of this
file to detect public repositories it should make accessible. To do so with
Gitolite for instance, modify your @file{conf/gitolite.conf} to include
this in the repositories you want to make public:
@example
repo foo
R = daemon
@end example
In addition, Gitile can read the repository configuration to display more
infomation on the repository. Gitile uses the gitweb namespace for its
configuration. As an example, you can use the following in your
@file{conf/gitolite.conf}:
@example
repo foo
R = daemon
desc = A long description, optionally with <i>HTML</i>, shown on the index page
config gitweb.name = The Foo Project
config gitweb.synopsis = A short description, shown on the main page of the project
@end example
Do not forget to commit and push these changes once you are satisfied. You
may need to change your gitolite configuration to allow the previous
configuration options to be set. One way to do that is to add the
following service definition:
@lisp
(service gitolite-service-type
(gitolite-configuration
(admin-pubkey (local-file "key.pub"))
(rc-file
(gitolite-rc-file
(umask #o0027)
;; Allow to set any configuration key
(git-config-keys ".*")
;; Allow any text as a valid configuration value
(unsafe-patt "^$")))))
@end lisp
@deftp {Data Type} gitile-configuration
Data type representing the configuration for @code{gitile-service-type}.
@table @asis
@item @code{package} (default: @var{gitile})
Gitile package to use.
@item @code{host} (default: @code{"localhost"})
The host on which gitile is listening.
@item @code{port} (default: @code{8080})
The port on which gitile is listening.
@item @code{database} (default: @code{"/var/lib/gitile/gitile-db.sql"})
The location of the database.
@item @code{repositories} (default: @code{"/var/lib/gitolite/repositories"})
The location of the repositories. Note that only public repositories will
be shown by Gitile. To make a repository public, add an empty
@file{git-daemon-export-ok} file at the root of that repository.
@item @code{base-git-url}
The base git url that will be used to show clone commands.
@item @code{index-title} (default: @code{"Index"})
The page title for the index page that lists all the available repositories.
@item @code{intro} (default: @code{'()})
The intro content, as a list of sxml expressions. This is shown above the list
of repositories, on the index page.
@item @code{footer} (default: @code{'()})
The footer content, as a list of sxml expressions. This is shown on every
page served by Gitile.
@item @code{nginx-server-block}
An nginx server block that will be extended and used as a reverse proxy by
Gitile to serve its pages, and as a normal web server to serve its assets.
You can use this block to add more custom URLs to your domain, such as a
@code{/git/} URL for anonymous clones, or serving any other files you would
like to serve.
@end table
@end deftp
@node Game Services
@subsection Game Services
@ -32598,20 +33070,47 @@ the store, we let the system administrator @emph{declare} which programs
should be setuid root.
The @code{setuid-programs} field of an @code{operating-system}
declaration contains a list of G-expressions denoting the names of
programs to be setuid-root (@pxref{Using the Configuration System}).
For instance, the @command{passwd} program, which is part of the Shadow
package, can be designated by this G-expression (@pxref{G-Expressions}):
declaration contains a list of @code{<setuid-program>} denoting the
names of programs to have a setuid or setgid bit set (@pxref{Using the
Configuration System}). For instance, the @command{passwd} program,
which is part of the Shadow package, with a setuid root can be
designated like this:
@example
#~(string-append #$shadow "/bin/passwd")
(setuid-program
(program (file-append #$shadow "/bin/passwd")))
@end example
@deftp {Data Type} setuid-program
This data type represents a program with a setuid or setgid bit set.
@table @asis
@item @code{program}
A file-like object having its setuid and/or setgid bit set.
@item @code{setuid?} (default: @code{#t})
Whether to set user setuid bit.
@item @code{setgid?} (default: @code{#f})
Whether to set group setgid bit.
@item @code{user} (default: @code{0})
UID (integer) or user name (string) for the user owner of the program,
defaults to root.
@item @code{group} (default: @code{0})
GID (integer) goup name (string) for the group owner of the program,
defaults to root.
@end table
@end deftp
A default set of setuid programs is defined by the
@code{%setuid-programs} variable of the @code{(gnu system)} module.
@defvr {Scheme Variable} %setuid-programs
A list of G-expressions denoting common programs that are setuid-root.
A list of @code{<setuid-program>} denoting common programs that are
setuid-root.
The list includes commands such as @command{passwd}, @command{ping},
@command{su}, and @command{sudo}.
@ -33052,11 +33551,11 @@ in ``legacy'' BIOS mode.
through TFTP@. In combination with an NFS root file system this allows you to
build a diskless Guix system.
The installation of the @code{grub-efi-netboot-bootloader} generates the content
of the TFTP root directory at @code{target}
(@pxref{Bootloader Configuration, @code{target}}), to be served by a TFTP server.
You may want to mount your TFTP server directory onto @code{target} to move the
required files to the TFTP server automatically.
The installation of the @code{grub-efi-netboot-bootloader} generates the
content of the TFTP root directory at @code{targets} (@pxref{Bootloader
Configuration, @code{targets}}), to be served by a TFTP server. You may
want to mount your TFTP server directories onto the @code{targets} to
move the required files to the TFTP server automatically.
If you plan to use an NFS root file system as well (actually if you mount the
store from an NFS share), then the TFTP server needs to serve the file
@ -33067,22 +33566,25 @@ files from the store will be accessed by GRUB through TFTP with their normal
store path, for example as
@file{tftp://tftp-server/gnu/store/…-initrd/initrd.cpio.gz}.
Two symlinks are created to make this possible. The first symlink is
@code{target}@file{/efi/Guix/boot/grub/grub.cfg} pointing to
@file{../../../boot/grub/grub.cfg},
where @code{target} may be @file{/boot}. In this case the link is not leaving
the served TFTP root directory, but otherwise it does. The second link is
@code{target}@file{/gnu/store} and points to @file{../gnu/store}. This link
is leaving the served TFTP root directory.
Two symlinks are created to make this possible. For each target in the
@code{targets} field, the first symlink is
@samp{target}@file{/efi/Guix/boot/grub/grub.cfg} pointing to
@file{../../../boot/grub/grub.cfg}, where @samp{target} may be
@file{/boot}. In this case the link is not leaving the served TFTP root
directory, but otherwise it does. The second link is
@samp{target}@file{/gnu/store} and points to @file{../gnu/store}. This
link is leaving the served TFTP root directory.
The assumption behind all this is that you have an NFS server exporting the root
file system for your Guix system, and additionally a TFTP server exporting your
@code{target} directory—usually @file{/boot}—from that same root file system for
your Guix system. In this constellation the symlinks will work.
The assumption behind all this is that you have an NFS server exporting
the root file system for your Guix system, and additionally a TFTP
server exporting your @code{targets} directories—usually a single
@file{/boot}—from that same root file system for your Guix system. In
this constellation the symlinks will work.
For other constellations you will have to program your own bootloader installer,
which then takes care to make necessary files from the store accessible through
TFTP, for example by copying them into the TFTP root directory at @code{target}.
For other constellations you will have to program your own bootloader
installer, which then takes care to make necessary files from the store
accessible through TFTP, for example by copying them into the TFTP root
directory to your @code{targets}.
It is important to note that symlinks pointing outside the TFTP root directory
may need to be allowed in the configuration of your TFTP server. Further the
@ -33094,18 +33596,19 @@ NFS servers, you also need a properly configured DHCP server to make the booting
over netboot possible. For all this we can currently only recommend you to look
for instructions about @acronym{PXE, Preboot eXecution Environment}.
@item @code{target}
This is a string denoting the target onto which to install the
@item @code{targets}
This is a list of strings denoting the targets onto which to install the
bootloader.
The interpretation depends on the bootloader in question. For
@code{grub-bootloader}, for example, it should be a device name understood by
the bootloader @command{installer} command, such as @code{/dev/sda} or
@code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU GRUB Manual}). For
@code{grub-efi-bootloader}, it should be the mount point of the EFI file
system, usually @file{/boot/efi}. For @code{grub-efi-netboot-bootloader},
@code{target} should be the mount point corresponding to the TFTP root
directory of your TFTP server.
The interpretation of targets depends on the bootloader in question.
For @code{grub-bootloader}, for example, they should be device names
understood by the bootloader @command{installer} command, such as
@code{/dev/sda} or @code{(hd0)} (@pxref{Invoking grub-install,,, grub,
GNU GRUB Manual}). For @code{grub-efi-bootloader}, they should be mount
points of the EFI file system, usually @file{/boot/efi}. For
@code{grub-efi-netboot-bootloader}, @code{targets} should be the mount
points corresponding to TFTP root directories served by your TFTP
server.
@item @code{menu-entries} (default: @code{()})
A possibly empty list of @code{menu-entry} objects (see below), denoting
@ -33521,7 +34024,7 @@ files, packages, and so on. It also creates other essential files
needed for the system to operate correctly---e.g., the @file{/etc},
@file{/var}, and @file{/run} directories, and the @file{/bin/sh} file.
This command also installs bootloader on the target specified in
This command also installs bootloader on the targets specified in
@file{my-os-config}, unless the @option{--no-bootloader} option was
passed.
@ -33917,7 +34420,7 @@ evaluates to. As an example, @var{file} might contain a definition like this:
(timezone "Etc/UTC")
(bootloader (bootloader-configuration
(bootloader grub-bootloader)
(target "/dev/vda")
(targets '("/dev/vda"))
(terminal-outputs '(console))))
(file-systems (cons (file-system
(mount-point "/")

View file

@ -23,7 +23,7 @@
# If adding a language, update the following variables, and info_TEXINFOS.
MANUAL_LANGUAGES = de es fa fr it ko pt_BR ru sk zh_CN
COOKBOOK_LANGUAGES = de fa fr ko zh_Hans
COOKBOOK_LANGUAGES = de fa fr ko ru sk zh_Hans
# Arg1: A list of languages codes.
# Arg2: The file name stem.
@ -47,6 +47,8 @@ info_TEXINFOS = %D%/guix.texi \
%D%/guix-cookbook.fa.texi \
%D%/guix-cookbook.fr.texi \
%D%/guix-cookbook.ko.texi \
%D%/guix-cookbook.ru.texi \
%D%/guix-cookbook.sk.texi \
%D%/guix-cookbook.zh_Hans.texi
%C%_guix_TEXINFOS = \

View file

@ -4,6 +4,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;;
;;; This file is part of GNU Guix.
;;;
@ -36,7 +37,9 @@
(ice-9 popen)
(ice-9 match)
(ice-9 rdelim)
(ice-9 textual-ports))
(ice-9 regex)
(ice-9 textual-ports)
(guix gexp))
(define* (break-string str #:optional (max-line-length 70))
"Break the string STR into lines that are no longer than MAX-LINE-LENGTH.
@ -65,6 +68,13 @@ Return a single string."
(string-join (reverse (cons (restore-line last-words) lines))
"\n"))))))
(define* (break-string-with-newlines str #:optional (max-line-length 70))
"Break the lines of string STR into lines that are no longer than
MAX-LINE-LENGTH. Return a single string."
(string-join (map (cut break-string <> max-line-length)
(string-split str #\newline))
"\n"))
(define (read-excursion port)
"Read an expression from PORT and reset the port position before returning
the expression."
@ -252,6 +262,32 @@ corresponding to the top-level definition containing the staged changes."
"gnu: Add ~a.~%~%* ~a (~a): New variable.~%"
variable-name file-name variable-name))
(define* (custom-commit-message file-name variable-name message changelog
#:optional (port (current-output-port)))
"Print custom commit message for a change to VARIABLE-NAME in FILE-NAME, using
MESSAGE as the commit message and CHANGELOG as the body of the ChangeLog
entry. If CHANGELOG is #f, the commit message is reused. If CHANGELOG already
contains ': ', no colon is inserted between the location and body of the
ChangeLog entry."
(define (trim msg)
(string-trim-right (string-trim-both msg) (char-set #\.)))
(define (changelog-has-location? changelog)
(->bool (string-match "^[[:graph:]]+:[[:blank:]]" changelog)))
(let* ((message (trim message))
(changelog (if changelog (trim changelog) message))
(message/f (format #f "gnu: ~a: ~a." variable-name message))
(changelog/f (if (changelog-has-location? changelog)
(format #f "* ~a (~a)~a."
file-name variable-name changelog)
(format #f "* ~a (~a): ~a."
file-name variable-name changelog))))
(format port
"~a~%~%~a~%"
(break-string-with-newlines message/f 72)
(break-string-with-newlines changelog/f 72))))
(define (group-hunks-by-sexp hunks)
"Return a list of pairs associating all hunks with the S-expression they are
modifying."
@ -280,6 +316,15 @@ modifying."
(define %delay 1000)
(define (main . args)
(define* (change-commit-message* file-name old new #:rest rest)
(let ((changelog #f))
(match args
((or (message changelog) (message))
(apply custom-commit-message
file-name (second old) message changelog rest))
(_
(apply change-commit-message file-name old new rest)))))
(match (diff-info)
(()
(display "Nothing to be done.\n" (current-error-port)))
@ -325,11 +370,10 @@ modifying."
(error "Cannot apply")))
(usleep %delay))
hunks)
(change-commit-message (hunk-file-name (first hunks))
old new
(current-output-port))
(change-commit-message* (hunk-file-name (first hunks))
old new)
(let ((port (open-pipe* OPEN_WRITE "git" "commit" "-F" "-")))
(change-commit-message (hunk-file-name (first hunks))
(change-commit-message* (hunk-file-name (first hunks))
old new
port)
(usleep %delay)
@ -339,4 +383,4 @@ modifying."
;; insertions lead to offsets.
(new+old+hunks (diff-info)))))))
(main)
(apply main (cdr (command-line)))

View file

@ -2,6 +2,8 @@
#
# GNU Guix --- Functional package management for GNU
# Copyright © 2016 Eric Le Bihan <eric.le.bihan.dev@free.fr>
# Copyright © 2021 Noah Evans <noah@nevans.me>
# Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
#
# This file is part of GNU Guix.
#
@ -68,21 +70,24 @@ _guix_list_installed_packages()
(( $+functions[_guix_build] )) || _guix_build()
{
_arguments \
'--expression=[build the package matching EXPR]:EXPR' \
'--file=[build the package matching code evaluated from FILE]:FILE:_files' \
'--source[build the packages source derivations]' \
'--sources=[build source derivations]:TYPE:(all package transitive)' \
'--system=[attempt to build for SYSTEM (e.g. "i686-linux")]:SYSTEM' \
{-e,--expression=}'[build the package or derivation EXPR evaluates to]:EXPR' \
{-f,--file=}'[build the package or derivation that the code within FILE evaluates to]:FILE:_files' \
{-m,--manifest=}'[build the packages that the manifest given in FILE evaluates to]:FILE:_files' \
{-S,--source}'[build the packages source derivations]' \
'--sources=[build source derivations]:TYPE:(package all transitive)' \
{-s,--system=}'[attempt to build for SYSTEM (e.g. "i686-linux")]:SYSTEM' \
'--target=[cross-build for TRIPLET (e.g. "armel-linux-gnu")]:TRIPLET' \
'--derivations[return the derivation paths of the given packages]' \
{-d,--derivations}'[return the derivation paths of the given packages]' \
'--check[rebuild items to check for non-determinism issues]' \
'--root=[symlink result to FILE and register it as GC root]:FILE:_files' \
'--quiet[do not show the build log]' \
'--repair[repair the specified items]' \
{-r,--root=}'[make FILE a symlink to the result, and register it as a GC root]:FILE:_files' \
{-v,--verbosity=}'[use the given verbosity LEVEL]:LEVEL' \
{-q,--quiet}'[do not show the build log]' \
'--log-file[return the log file names for the given derivations]' \
'--load-path=[prepend DIR to the package module search path]:DIR:_dirs' \
'--keep-failed[keep build tree of failed builds]' \
'--keep-going[keep going when some of the derivations fail]' \
'--dry-run[do not build the derivations]' \
{-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -\' \
{-K,--keep-failed}'[keep build tree of failed builds]' \
{-k,--keep-going}'[keep going when some of the derivations fail]' \
{-n,--dry-run}'[do not build the derivations]' \
'--fallback[fall back to building when the substituter fails]' \
'--no-substitutes[build instead of resorting to pre-built substitutes]' \
'--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
@ -90,12 +95,12 @@ _guix_list_installed_packages()
'--no-offload[do not attempt to offload builds]' \
'--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
'--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
'--verbosity=[use the given verbosity LEVEL]:LEVEL' \
'--rounds=[build N times in a row to detect non-determinism]:N' \
'--cores=[allow the use of up to N CPU cores for the build]:N' \
'--max-jobs=[allow at most N build jobs]:N' \
'--with-source=[use SOURCE when building the corresponding package]:SOURCE' \
'--with-input=[replace dependency PACKAGE by REPLACEMENT]:PACKAGE=REPLACEMENT' \
{-c,--cores=}'[allow the use of up to N CPU cores for the build]:N' \
{-M,--max-jobs=}'[allow at most N build jobs]:N' \
'--debug=[produce debugging output at LEVEL]:LEVEL' \
'--help-transform[list package transformation options not shown here]' \
{-V,--version}'[display version information and exit]' \
'*:package:->packages'
if [[ "$state" = packages ]]; then
@ -107,7 +112,10 @@ _guix_list_installed_packages()
(( $+functions[_guix_challenge] )) || _guix_challenge()
{
_arguments \
'--substitute-urls=[fetch substitute from URLS if they are authorized]:URL:_urls' \
'--substitute-urls=[compare build results with those at URLS]:URLS:_urls' \
'--diff=[show differences according to MODE]:MODE' \
{-v,--verbose}'[show details about successful comparisons]' \
{-V,--version}'[display version information and exit]' \
'*:package:->packages'
if [[ "$state" = packages ]]; then
@ -126,7 +134,11 @@ _guix_list_installed_packages()
(( $+functions[_guix_download] )) || _guix_download()
{
_arguments \
'--format=[write the hash in the given format]:FMT:(nix-base32 base16 base32 hex)' \
{-f,--format=}'[write the hash in the given format]:FMT:(nix-base32 base16 base32 hex)' \
{-H,--hash=}'[use the given hash ALGORITHM]:ALGORITHM' \
'--no-check-certificate[do not validate the certificate of HTTPS servers ]' \
{-o,--output=}'[download to FILE]:FILE:_files' \
{-V,--version}'[display version information and exit]' \
'1:URL:_urls'
}
@ -139,21 +151,29 @@ _guix_list_installed_packages()
(( $+functions[_guix_environment] )) || _guix_environment()
{
_arguments \
'--expression=[create environment for the package evaluated from EXPR]:EXPR' \
'--load=[create environment for the package evaluated from FILE]:FILE:_files' \
'--ad-hoc[include all specified packages, not only their inputs]' \
{-e,--expression=}'[create environment for the package that EXPR evaluates to]:EXPR' \
{-l,--load=}'[create environment for the package that the code within FILE evaluates to]:FILE:_files' \
{-m,--manifest=}'[create environment with the manifest from FILE]:FILE:_files' \
{-p,--profile=}'[create environment from profile at PATH]:PATH:_files -/' \
'--ad-hoc[include all specified packages in the environment instead of only their inputs]' \
'--pure[unset existing environment variables]' \
{-E,--preserve=}'[preserve environment variables that match REGEXP]:REGEXP' \
'--search-paths[display needed environment variable definitions]' \
'--system=[attempt to build for SYSTEM (e.g. "i686-linux")]:SYSTEM' \
'--container[run command within an isolated container]' \
'--network[allow containers to access the network]' \
'--share=[share writable host file system according to SPEC]:SPEC' \
'--expose=[expose read-only host file system according to SPEC]:SPEC' \
{-s,--system=}'[attempt to build for SYSTEM (e.g. "i686-linux")]:SYSTEM' \
{-r,--root=}'[make FILE a symlink to the result, and register it as a GC root]:FILE:_files' \
{-C,--container}'[run command within an isolated container]' \
{-N,--network}'[allow containers to access the network]' \
{-P,--link-profile}'[link environment profile to ~/.guix-profile within an isolated container]' \
{-u,--user=}'[instead of copying the name and home of the current user into an isolated container, use the name USER with home directory /home/USER]:USER:_users' \
'--no-cwd[do not share current working directory with an isolated container]' \
'--share=[for containers, share writable host file system according to SPEC]:SPEC' \
'--expose=[for containers, expose read-only host file system according to SPEC]:SPEC' \
{-v,--verbosity=}'[use the given verbosity LEVEL]:LEVEL' \
'--bootstrap[use bootstrap binaries to build the environment]' \
'--load-path=[prepend DIR to the package module search path]:DIR:_dirs' \
'--keep-failed[keep build tree of failed builds]' \
'--keep-going[keep going when some of the derivations fail]' \
'--dry-run[do not build the derivations]' \
{-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -/' \
{-K,--keep-failed}'[keep build tree of failed builds]' \
{-k,--keep-going}'[keep going when some of the derivations fail]' \
{-n,--dry-run}'[do not build the derivations]' \
'--fallback[fall back to building when the substituter fails]' \
'--no-substitutes[build instead of resorting to pre-built substitutes]' \
'--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
@ -161,10 +181,12 @@ _guix_list_installed_packages()
'--no-offload[do not attempt to offload builds]' \
'--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
'--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
'--verbosity=[use the given verbosity LEVEL]:LEVEL' \
'--rounds=[build N times in a row to detect non-determinism]:N' \
'--cores=[allow the use of up to N CPU cores for the build]:N' \
'--max-jobs=[allow at most N build jobs]:N' \
{-c,--cores=}'[allow the use of up to N CPU cores for the build]:N' \
{-M,--max-jobs=}'[allow at most N build jobs]:N' \
'--debug=[produce debugging output at LEVEL]:LEVEL' \
'--help-transform[list package transformation options not shown here]' \
{-V,--version}'[display version information and exit]' \
'*:package:->packages'
if [[ "$state" = packages ]]; then
@ -177,27 +199,39 @@ _guix_list_installed_packages()
(( $+functions[_guix_gc] )) || _guix_gc()
{
_arguments \
'--collect-garbage=[collect at least MIN bytes of garbage]:MIN' \
'--free-space=[attempt to reach FREE available space in the store]:FREE' \
'--delete[attempt to delete PATHS]' \
{-C,--collect-garbage=}'[collect at least MIN bytes of garbage]:MIN' \
{-F,--free-space=}'[attempt to reach FREE available space in the store]:FREE' \
{-d,--delete-generations=}'[delete profile generations matching PATTERN]:PATTERN' \
{-D,--delete}'[attempt to delete PATHS]' \
'--list-roots[list the users GC roots]' \
'--list-busy[list store items used by running processes]' \
'--optimize[optimize the store by deduplicating identical files]' \
'--list-dead[list dead paths]' \
'--list-live[list live paths]' \
'--references[list the references of PATHS]' \
'--requisites[list the requisites of PATHS]' \
{-R,--requisites}'[list the requisites of PATHS]' \
'--referrers[list the referrers of PATHS]' \
'--derivers[list the derivers of PATHS]' \
'--verify=[verify the integrity of the store]:OPTS:(contents repair)' \
'--list-failures[list cached build failures]' \
'--clear-failures[remove PATHS from the set of cached failures]' \
'1:PATH:_dirs'
{-V,--version}'[display version information and exit]:V' \
'1:PATH:_files -/'
}
(( $+functions[_guix_graph] )) || _guix_graph()
{
_arguments \
'--type=[represent nodes of the given TYPE]:TYPE:->types' \
{-b,--backend=}'[produce a graph with the given backend TYPE]:TYPE:->types' \
'--list-backends[list the available graph backends]' \
{-t,--type=}'[represent nodes of the given TYPE]:TYPE:->types' \
'--list-types[list the available graph types]' \
'--expression=[consider the package EXPR evaluates to]:EXPR' \
'--path[display the shortest path between the given nodes]' \
{-e,--expression=}'[consider the package EXPR evaluates to]:EXPR' \
{-s,--system=}'[consider the graph for SYSTEM (e.g. "i686-linux")]:SYSTEM' \
{-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -/' \
'--help-transform[list package transformation options not shown here]' \
{-V,--version}'[display version information and exit]' \
'1:PACKAGE:->packages'
case "$state" in
@ -216,14 +250,18 @@ _guix_list_installed_packages()
(( $+functions[_guix_hash] )) || _guix_hash()
{
_arguments \
'--format=[write the hash in the given format]:FMT:(nix-base32 base16 base32 hex)' \
'--recursive[compute the hash on FILE recursively]'\
{-x,--exclude-vcs}'[exclude version control directories]' \
{-H,--hash=}'[use the given hash ALGORITHM]:ALGORITHM' \
{-f,--format=}'[write the hash in the given format]:FMT:(nix-base32 base16 base32 hex)' \
{-r,--recursive}'[compute the hash on FILE recursively]' \
{-V,--version}'[display version information and exit]' \
'1:FILE:_files'
}
(( $+functions[_guix_import] )) || _guix_import()
{
_arguments \
{-V,--version}'[display version information and exit]' \
'1:IMPORTER:->importer' \
'*:args:'
@ -236,8 +274,12 @@ _guix_list_installed_packages()
(( $+functions[_guix_lint] )) || _guix_lint()
{
_arguments \
'--checkers=[only run the specified checkers]:CHECKERS:->checkers' \
'--list-checkers[display the list of available lint checkers]' \
{-c,--checkers=}'[only run the specified checkers]:CHECKERS:->checkers' \
{-x,--exclude=}'[exclude the specified checkers]:CHECKERSS:->checkers' \
{-n,--no-network}'[only run checkers that do not access the network]' \
{-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -/' \
{-l,--list-checkers}'[display the list of available lint checkers]' \
{-V,--version}'[display version information and exit]' \
'1:PACKAGE:->packages'
case "$state" in
@ -255,29 +297,32 @@ _guix_list_installed_packages()
(( $+functions[_guix_package] )) || _guix_package()
{
_arguments \
'--install[install one or more packages]: :->install' \
'--install-from-expression=[install the package EXP evaluates to]:EXP' \
'--install-from-file=[install the package evaluated from FILE]:FILE:_files' \
'--remove[remove one or more packages]: :->remove' \
'--upgrade=[upgrade all the installed packages matching REGEXP]:REGEXP' \
'--manifest=[create a new profile generation from FILE]:FILE:_files' \
{-i,--install}'[install one or more packages]: :->install' \
{-e,--install-from-expression=}'[install the package EXP evaluates to]:EXP' \
{-f,--install-from-file=}'[install the package evaluated from FILE]:FILE:_files' \
{-r,--remove}'[remove one or more packages]: :->remove' \
{-u,--upgrade=}'[upgrade all the installed packages matching REGEXP]:REGEXP' \
{-m,--manifest=}'[create a new profile generation from FILE]:FILE:_files' \
'--do-not-upgrade=[do not upgrade any packages matching REGEXP]:REGEXP' \
'--roll-back[roll back to the previous generation]' \
'--search-paths=[display needed environment variable definitions]:KINDS' \
'--list-generations=[list generations matching PATTERN]:PATTERN' \
'--delete-generations=[delete generations matching PATTERN]:PATTERN' \
'--switch-generation=[switch to a generation matching PATTERN]:PATTERN' \
'--profile=[use PROFILE instead of the default profile]:PROFILE' \
{-l,--list-generations=}'[list generations matching PATTERN]:PATTERN' \
{-d,--delete-generations=}'[delete generations matching PATTERN]:PATTERN' \
{-S,--switch-generation=}'[switch to a generation matching PATTERN]:PATTERN' \
'--export-manifest[print a manifest for the chosen profile]' \
'--export-channels[print channels for the chosen profile]' \
{-p,--profile}'[use PROFILE instead of the default profile]:PROFILE:_files -/' \
'--list-profiles[list the profiles]' \
'--allow-collisions[do not treat collisions in the profile as an error]' \
'--bootstrap[use the bootstrap Guile to build the profile]' \
'--verbose[produce verbose output]' \
'--search=[search in synopsis and description using REGEXP]:REGEXP' \
'--list-installed=[list installed packages matching REGEXP]:REGEXP' \
'--list-available=[list available packages matching REGEXP]:REGEXP' \
{-s,--search=}'[search in synopsis and description using REGEXP]:REGEXP' \
{-I,--list-installed=}'[list installed packages matching REGEXP]:REGEXP' \
{-A,--list-available=}'[list available packages matching REGEXP]:REGEXP' \
'--show=[show details about a package]: :->show' \
'--load-path=[prepend DIR to the package module search path]:DIR:_dirs' \
'--keep-failed[keep build tree of failed builds]' \
'--keep-going[keep going when some of the derivations fail]' \
'--dry-run[do not build the derivations]' \
{-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -/' \
{-K,--keep-failed}'[keep build tree of failed builds]' \
{-k,--keep-going}'[keep going when some of the derivations fail]' \
{-n,--dry-run}'[do not build the derivations]' \
'--fallback[fall back to building when the substituter fails]' \
'--no-substitutes[build instead of resorting to pre-built substitutes]' \
'--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
@ -285,12 +330,13 @@ _guix_list_installed_packages()
'--no-offload[do not attempt to offload builds]' \
'--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
'--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
'--verbosity=[use the given verbosity LEVEL]:LEVEL' \
'--rounds=[build N times in a row to detect non-determinism]:N' \
'--cores=[allow the use of up to N CPU cores for the build]:N' \
'--max-jobs=[allow at most N build jobs]:N' \
'--with-source=[use SOURCE when building the corresponding package]:SOURCE' \
'--with-input=[replace dependency PACKAGE by REPLACEMENT]:PACKAGE=REPLACEMENT'
{-c,--cores=}'[allow the use of up to N CPU cores for the build]:N' \
{-M,--max-jobs=}'[allow at most N build jobs]:N' \
'--debug=[produce debugging output at LEVEL]' \
'--help-transform[list package transformation options not shown here]' \
{-v,--verbosity=}'[use the given verbosity LEVEL]' \
{-V,--version}'[display version information and exit]'
case "$state" in
install|show)
@ -304,37 +350,165 @@ _guix_list_installed_packages()
esac
}
(( $+functions[_guix_install] )) || _guix_install()
{
_arguments \
{-p,--profile=}'[use PROFILE instead of the users default profile]:PROFILE:_files -/' \
{-v,--verbosity=}'[use the given verbosity LEVEL]:LEVEL' \
{-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -/' \
{-K,--keep-failed}'[keep build tree of failed builds]' \
{-k,--keep-going}'[keep going when some of the derivations fail]' \
{-n,--dry-run}'[do not build the derivations]' \
'--fallback[fall back to building when the substituter fails]' \
'--no-substitutes[build instead of resorting to pre-built substitutes]' \
'--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
'--no-grafts[do not graft packages]' \
'--no-offload[do not attempt to offload builds]' \
'--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
'--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
'--rounds=[build N times in a row to detect non-determinism]:N' \
{-c,--cores=}'[allow the use of up to N CPU cores for the build]:N' \
{-M,--max-jobs=}'[allow at most N build jobs]:N' \
'--debug=[produce debugging output at LEVEL]:LEVEL' \
'--help-transform[list package transformation options not shown here]' \
{-V,--version}'[display version information and exit]' \
'*:package:->packages'
if [[ "$state" = packages ]]; then
_guix_list_available_packages
compadd -a -- _guix_available_packages
fi
}
(( $+functions[_guix_remove] )) || _guix_remove()
{
_arguments \
{-p,--profile=}'[use PROFILE instead of the users default profile]:PROFILE:_files -/' \
{-v,--verbosity=}'[use the given verbosity LEVEL]:LEVEL' \
{-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -/' \
{-K,--keep-failed}'[keep build tree of failed builds]' \
{-k,--keep-going}'[keep going when some of the derivations fail]' \
{-n,--dry-run}'[do not build the derivations]' \
'--fallback[fall back to building when the substituter fails]' \
'--no-substitutes[build instead of resorting to pre-built substitutes]' \
'--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
'--no-grafts[do not graft packages]' \
'--no-offload[do not attempt to offload builds]' \
'--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
'--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
'--rounds=[build N times in a row to detect non-determinism]:N' \
{-c,--cores=}'[allow the use of up to N CPU cores for the build]:N' \
{-M,--max-jobs=}'[allow at most N build jobs]:N' \
'--debug=[produce debugging output at LEVEL]:LEVEL' \
{-V,--version}'[display version information and exit]' \
'*:package:->packages'
if [[ "$state" = packages ]]; then
_guix_list_installed_packages
compadd -a -- _guix_installed_packages
fi
}
(( $+functions[_guix_upgrade] )) || _guix_upgrade()
{
_arguments \
{-p,--profile=}'[use PROFILE instead of the users default profile]:PROFILE:_files -/' \
{-v,--verbosity=}'[use the given verbosity LEVEL]:LEVEL' \
'--do-not-upgrade=[do not upgrade any packages matching REGEXP]:REGEXP' \
{-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -/' \
{-K,--keep-failed}'[keep build tree of failed builds]' \
{-k,--keep-going}'[keep going when some of the derivations fail]' \
{-n,--dry-run}'[do not build the derivations]' \
'--fallback[fall back to building when the substituter fails]' \
'--no-substitutes[build instead of resorting to pre-built substitutes]' \
'--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
'--no-grafts[do not graft packages]' \
'--no-offload[do not attempt to offload builds]' \
'--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
'--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
'--rounds=[build N times in a row to detect non-determinism]:N' \
{-c,--cores=}'[allow the use of up to N CPU cores for the build]:N' \
{-M,--max-jobs=}'[allow at most N build jobs]:N' \
'--debug=[produce debugging output at LEVEL]:LEVEL' \
'--help-transform[list package transformation options not shown here]' \
{-V,--version}'[display version information and exit]' \
'*:regexp'
}
(( $+functions[_guix_publish] )) || _guix_publish()
{
_arguments \
'--port=[listen on PORT]:PORT:' \
'--listen=[listen on the network interface for HOST]:HOST:_hosts' \
'--user=[change privileges to USER as soon as possible]:USER:_users' \
'--compression=[compress archives at LEVEL]:LEVEL' \
{-p,--port=}'[listen on PORT]:PORT' \
'--listen=[listen on the network interface for HOST]:HOST_hosts' \
{-u,--user=}'[change privileges to USER as soon as possible]:USER_users' \
{-a,--advertise}'[advertise on the local network]' \
{-C,--compression=}'[compress archives with METHOD at LEVEL]:METHOD' \
{-c,--cache=}'[cache published items to DIRECTORY]:DIRECTORY:_files -/' \
'--cache-bypass-threshold=[serve store items below SIZE even when not cached]:SIZE' \
'--workers=[use N workers to bake items]:N' \
'--ttl=[announce narinfos can be cached for TTL seconds]:TTL' \
'--repl=[spawn REPL server on PORT]:PORT'
'--negative-ttl=[announce missing narinfos can be cached for TTL seconds]:TTL' \
'--nar-path=[use PATH as the prefix for nar URLs]:PATH' \
'--public-key=[use FILE as the public key for signatures]:FILE:_files' \
'--private-key=[use FILE as the private key for signatures]:FILE:_files' \
{-r,--repl=}'[spawn REPL server on PORT]:PORT' \
{-V,--version}'[display version information and exit]' \
}
(( $+functions[_guix_pull] )) || _guix_pull()
{
_arguments \
'--verbose[produce verbose output]' \
'--url=[download the Guix tarball from URL]:URL:_urls' \
'--bootstrap[use the bootstrap Guile to build the new Guix]'
{-C,--channels=}'[deploy the channels defined in FILE]:FILE:_files' \
'--url=[download from the Git repository at URL]:URL:_urls' \
'--commit=[download the specified COMMIT]:COMMIT' \
'--branch=[download the tip of the specified BRANCH]:BRANCH' \
'--allow-downgrades[allow downgrades to earlier channel revisions]' \
'--disable-authentication[disable channel authentication]' \
{-N,--news}'[display news compared to the previous generation]' \
{-l,--list-generations=}'[list generations matching PATTERN]:PATTERN' \
'--roll-back[roll back to the previous generation]' \
{-d,--delete-generations=}'[delete generations matching PATTERN]:PATTERN' \
{-S,--switch-generation=}'[switch to a generation matching PATTERN]:PATTERN' \
{-p,--profile=}'[use PROFILE instead of ~/.config/guix/current]:PROFILE:_files -/' \
{-v,--verbosity=}'[use the given verbosity LEVEL]:LEVEL' \
{-s,--system=}'[attempt to build for SYSTEM (e.g. "i686-linux")]:SYSTEM' \
'--bootstrap[use the bootstrap Guile to build the new Guix]' \
{-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -/' \
{-K,--keep-failed}'[keep build tree of failed builds]' \
{-k,--keep-going}'[keep going when some of the derivations fail]' \
{-n,--dry-run}'[do not build the derivations]' \
'--fallback[fall back to building when the substituter fails]' \
'--no-substitutes[build instead of resorting to pre-built substitutes]' \
'--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
'--no-grafts[do not graft packages]' \
'--no-offload[do not attempt to offload builds]' \
'--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
'--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
'--rounds=[build N times in a row to detect non-determinism]:N' \
{-c,--cores=}'[allow the use of up to N CPU cores for the build]:N' \
{-M,--max-jobs=}'[allow at most N build jobs]:N' \
'--debug=[produce debugging output at LEVEL]:LEVEL' \
{-V,--version}'[display version information and exit]'
}
(( $+functions[_guix_refresh] )) || _guix_refresh()
{
_arguments \
'--expression=[consider the package EXPR evaluates to]:EXPR' \
'--update[update source files in place]' \
'--select=[select all the packages in SUBSET]:SUBSET:(core non-core)' \
'--type=[restrict to updates from the specified updaters]:UPDATER:->updaters' \
'--list-updaters[list available updaters and exit]' \
'--list-dependent[list top-level dependent packages]' \
'--key-server=[use HOST as the OpenPGP key server]:HOST:_hosts' \
{-e,--expression=}'[consider the package EXPR evaluates to]:EXPR' \
{-u,--update}'[update source files in place]' \
{-s,--select=}'[select all the packages in SUBSET, one of]:SUBSET:(core non-core)' \
{-m,--manifest=}'[select all the packages from the manifest in FILE]:FILE:_files' \
{-t,--type=}'[restrict to updates from the specified updaters]:UPDATER:-.updaters' \
{-L,--list-updaters}'[list available updaters and exit]' \
{-l,--list-dependent}'[list top-level dependent packages that would need to be rebuilt as a result of upgrading PACKAGE...]' \
{-r,--recursive}'[check the PACKAGE and its inputs for upgrades]' \
'--list-transitive[list all the packages that PACKAGE depends on]' \
'--keyring=[use FILE as the keyring of upstream OpenPGP keys]:FILE:_files' \
'--key-server=[use HOST as the OpenPGP key server]:HOST_hosts' \
'--gpg=[use COMMAND as the GnuPG 2.x command]:COMMAND' \
'--key-download=[policy to handle missing OpenPGP keys]:POLICY:(always interactive never)' \
'--key-download=[handle missing OpenPGP keys according to POLICY:]:POLICY:(always interactive never)' \
'--load-path=[prepend DIR to the package module search path]:DIR:_files -/' \
{-V,--version}'[display version information and exit]' \
'*:package:->packages'
case "$state" in
@ -352,9 +526,12 @@ _guix_list_installed_packages()
(( $+functions[_guix_size] )) || _guix_size()
{
_arguments \
'--substitute-urls=[fetch substitute from URLS if they are authorized]:URL:_urls' \
'-system=[consider packages for SYSTEM--e.g., "i686-linux"]:SYSTEM' \
'--map-file=[write to FILE a graphical map of disk usage]:FILE:_files' \
'--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
{-s,--system=}'[consider packages for SYSTEM (e.g. "i686-linux")]:SYSTEM' \
'--sort=[sort according to KEY]:KEY:(closure self)' \
{-m,--map-file=}'[write to FILE a graphical map of disk usage]:FILE:_files' \
{-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -/' \
{-V,--version}'[display version information and exit]' \
'*:package:->packages'
if [[ "$state" = packages ]]; then
@ -366,28 +543,42 @@ _guix_list_installed_packages()
(( $+functions[_guix_system] )) || _guix_system()
{
_arguments \
'--load-path=[prepend DIR to the package module search path]:DIR:_dirs' \
'--keep-failed[keep build tree of failed builds]' \
'--keep-going[keep going when some of the derivations fail]' \
'--dry-run[do not build the derivations]' \
{-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -/' \
{-K,--keep-failed}'[keep build tree of failed builds]' \
{-k,--keep-going}'[keep going when some of the derivations fail]' \
{-n,--dry-run}'[do not build the derivations]' \
'--fallback[fall back to building when the substituter fails]' \
'--no-substitutes[build instead of resorting to pre-built substitutes]' \
'--substitute-urls=[fetch substitute from URLS if they are authorized]:URL:_urls' \
'--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
'--no-grafts[do not graft packages]' \
'--no-offload[do not attempt to offload builds]' \
'--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
'--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
'--verbosity=[use the given verbosity LEVEL]:LEVEL' \
'--rounds=[build N times in a row to detect non-determinism]:N' \
'--cores=[allow the use of up to N CPU cores for the build]:N' \
'--max-jobs=[allow at most N build jobs]:N' \
'--derivation[return the derivation of the given system]' \
'--on-error=[apply STRATEGY when an error occurs while reading FILE]:STRATEGY' \
'--image-size=[for "image", produce an image of SIZE]:SIZE' \
'--no-grub[for "init", do not install GRUB]' \
'--share=[for "vm", share host file system according to SPEC]:SPEC' \
'--expose=[for "vm", expose host file system according to SPEC]:SPEC' \
'--full-boot[for "vm", make a full boot sequence]' \
{-c,--cores=}'[allow the use of up to N CPU cores for the build]:N' \
{-M,--max-jobs=}'[allow at most N build jobs]:N' \
'--debug=[produce debugging output at LEVEL]:LEVEL' \
{-d,--derivation}'[return the derivation of the given system]' \
{-e,--expression=}'[consider the operating-system EXPR evaluates to instead of reading FILE, when applicable]:EXPR' \
'--allow-downgrades[for reconfigure, allow downgrades to earlier channel revisions]' \
'--on-error=[apply STRATEGY when an error occurs while reading FILE]:STRATEGY:(nothing-special backtrace debug)' \
'--list-image-types[list available image types]' \
{-t,--image-type=}'[for image, produce an image of TYPE]:TYPE' \
'--image-size=[for image, produce an image of SIZE]:SIZE' \
'--no-bootloader[for init, do not install a bootloader]' \
'--volatile[for image, make the root file system volatile]' \
'--label=[for image, label disk image with LABEL]:LABEL' \
'--save-provenance[save provenance information]' \
'--share=[for vm and container, share host file system with read/write access according to SPEC]:SPEC' \
'--expose=[for vm and container, expose host file system directory as read-only according to SPEC]:SPEC' \
{-N,--network}'[for container, allow containers to access the network]' \
{-r,--root=}'[for vm, image, container and build, make FILE a symlink to the result, and register it as a GC root]:FILE:_files' \
'--full-boot[for vm, make a full boot sequence]' \
'--skip-checks[skip file system and initrd module safety checks]' \
'--target=[cross-build for TRIPLET (e.g. "armel-linux-gnu")]:TRIPLET' \
{-v,--verbosity=}'[use the given verbosity LEVEL]:LEVEL' \
'--graph-backend=[use BACKEND for extension-graphs and shepherd-graph]:BACKEND' \
{-V,--version}'[display version information and exit]' \
'1:action:->actions' \
'*:file:_files'
@ -405,20 +596,35 @@ _guix_list_installed_packages()
"build:Build a given package"
"challenge:Challenge the substitutes for a package"
"container:Build and manipulate Linux containers"
"copy:Copy store items remotely over SSH"
"deploy:Deploy operating systems on a set of machines"
"describe:Describe the channel revisions currently used"
"download:Download the file at given URL and add it to the store"
"edit:Edit the definitions of a package"
"environment:Build an environment with a package and its dependencies"
"gc:Invoke the garbage collector"
"git:Operate on Git repositories"
"graph:Emit a DOT representation of the dependencies of a package"
"hash:Return the cryptographic hash of a file"
"import:Run an importer"
"install:Install packages"
"lint:Run a set of checkers on a package"
"offload:Set up and operate build offloading"
"pack:Create application bundles"
"package:Install, remove, or upgrade packages"
"processes:List currently running sessions"
"publish:Publish /gnu/store over HTTP."
"pull:Download and deploy the latest version of Guix"
"refresh:Update package definitions to match the latest version"
"remove:Remove packages"
"repl:Read-eval-print loop (REPL) for interactive programming"
"search:Search for packages"
"show:Show information about packages"
"size:Report the size of a package and its dependencies"
"system:Build the operating system"
"time-machine:Run commands from a different revision"
"upgrade:Upgrade packages"
"weather:Report on the availability of pre-built package binaries"
)
if (( CURRENT == 1 )); then

112
etc/disarchive-manifest.scm Normal file
View file

@ -0,0 +1,112 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Ludovic Courtès <ludo@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/>.
;;; This file returns a manifest that builds a directory containing Disarchive
;;; metadata for all the tarballs packages refer to.
(use-modules (srfi srfi-1) (ice-9 match)
(guix packages) (guix gexp) (guix profiles)
(guix base16)
(gnu packages))
(include "source-manifest.scm")
(define (tarball-origin? origin)
(match (origin-actual-file-name origin)
(#f #f)
((? string? file)
;; As of version 0.2.1, Disarchive can only deal with raw tarballs and
;; gzip-compressed tarballs.
(and (origin-hash origin)
(or (string-suffix? ".tar.gz" file)
(string-suffix? ".tgz" file)
(string-suffix? ".tar" file))))))
(define (origin->disarchive origin)
"Return a directory containing Disarchive metadata for ORIGIN, a tarball, or
an empty directory if ORIGIN could not be disassembled."
(define file-name
(let ((hash (origin-hash origin)))
(string-append (symbol->string (content-hash-algorithm hash))
"/"
(bytevector->base16-string
(content-hash-value hash)))))
(define disarchive
(specification->package "disarchive"))
(define build
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils)
(srfi srfi-34))
(define tarball
#+(upstream-origin origin))
(define file-name
(string-append #$output "/" #$file-name))
(define profile
#+(profile (content (packages->manifest (list disarchive)))))
(mkdir-p (dirname file-name))
(setenv "PATH" (string-append profile "/bin"))
(setenv "GUILE_LOAD_PATH"
(string-append profile "/share/guile/site/"
(effective-version)))
(setenv "GUILE_LOAD_COMPILED_PATH"
(string-append profile "/lib/guile/" (effective-version)
"/site-ccache"))
(guard (c ((invoke-error? c)
;; Sometimes Disarchive fails with "could not find Gzip
;; compressor". When that happens, produce an empty
;; directory instead of failing.
(report-invoke-error c)
(delete-file file-name)))
(with-output-to-file file-name
(lambda ()
;; Disarchive records the tarball name in its output. Thus,
;; strip the hash from TARBALL.
(let ((short-name (strip-store-file-name tarball)))
(symlink tarball short-name)
(invoke "disarchive" "disassemble" short-name))))))))
(computed-file (match (origin-actual-file-name origin)
((? string? str) (string-append str ".dis"))
(#f "anonymous-tarball.dis"))
build))
(define (disarchive-collection origins)
"Return a directory containing all the Disarchive metadata for ORIGINS."
(directory-union "disarchive-collection"
(filter-map (lambda (origin)
(and (tarball-origin? origin)
(origin->disarchive origin)))
origins)
#:copy? #t))
;; The manifest containing Disarchive data.
(let ((origins (all-origins)))
(manifest
(list (manifest-entry
(name "disarchive-collection")
(version (length origins))
(item (disarchive-collection origins))))))

66
etc/source-manifest.scm Normal file
View file

@ -0,0 +1,66 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Ludovic Courtès <ludo@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/>.
;;; This file returns a manifest containing origins of all the packages. The
;;; main purpose is to allow continuous integration services to keep upstream
;;; source code around. It can also be passed to 'guix weather -m'.
(use-modules (srfi srfi-1) (srfi srfi-26)
(ice-9 match) (ice-9 vlist)
(guix packages) (guix profiles)
(gnu packages))
(define (all-packages)
"Return the list of all the packages, public or private, omitting only
superseded packages."
(fold-packages (lambda (package lst)
(match (package-replacement package)
(#f (cons package lst))
(replacement
(append (list replacement package) lst))))
'()
#:select? (negate package-superseded)))
(define (upstream-origin source)
"Return SOURCE without any patches or snippet."
(origin (inherit source)
(snippet #f) (patches '())))
(define (all-origins)
"Return the list of origins referred to by all the packages."
(let loop ((packages (all-packages))
(origins '())
(visited vlist-null))
(match packages
((head . tail)
(let ((new (remove (cut vhash-assq <> visited)
(package-direct-sources head))))
(loop tail (append new origins)
(fold (cut vhash-consq <> #t <>)
visited new))))
(()
origins))))
;; Return a manifest containing all the origins.
(manifest (map (lambda (origin)
(manifest-entry
(name (or (origin-actual-file-name origin)
"origin"))
(version "0")
(item (upstream-origin origin))))
(all-origins)))

View file

@ -2,7 +2,7 @@
;;; Copyright © 2017 David Craven <david@craven.ch>
;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
@ -25,7 +25,10 @@
#:use-module (guix gexp)
#:use-module (guix profiles)
#:use-module (guix records)
#:use-module (guix ui)
#:use-module (guix deprecation)
#:use-module ((guix ui) #:select (warn-about-load-error))
#:use-module (guix diagnostics)
#:use-module (guix i18n)
#:use-module (srfi srfi-1)
#:use-module (ice-9 match)
#:export (menu-entry
@ -55,7 +58,8 @@
bootloader-configuration
bootloader-configuration?
bootloader-configuration-bootloader
bootloader-configuration-target
bootloader-configuration-target ;deprecated
bootloader-configuration-targets
bootloader-configuration-menu-entries
bootloader-configuration-default-entry
bootloader-configuration-timeout
@ -179,12 +183,17 @@ record."
;; The <bootloader-configuration> record contains bootloader independant
;; configuration used to fill bootloader configuration file.
(define-syntax-rule (warn-target-field-deprecation value)
(%warn-target-field-deprecation value (current-source-location)))
(define-record-type* <bootloader-configuration>
bootloader-configuration make-bootloader-configuration
bootloader-configuration?
(bootloader bootloader-configuration-bootloader) ;<bootloader>
(target bootloader-configuration-target ;string
(targets %bootloader-configuration-targets ;list of strings
(default #f))
(target %bootloader-configuration-target ;deprecated
(default #f) (sanitize warn-target-field-deprecation))
(menu-entries bootloader-configuration-menu-entries ;list of <menu-entry>
(default '()))
(default-entry bootloader-configuration-default-entry ;integer
@ -204,6 +213,26 @@ record."
(serial-speed bootloader-configuration-serial-speed ;integer | #f
(default #f)))
(define (%warn-target-field-deprecation value location)
(when value
(warning (source-properties->location location)
(G_ "the 'target' field is deprecated, please use 'targets' \
instead~%")))
value)
(define-deprecated (bootloader-configuration-target config)
bootloader-configuration-targets
(%bootloader-configuration-target config))
(define (bootloader-configuration-targets config)
(or (%bootloader-configuration-targets config)
;; TODO: Remove after the deprecated 'target' field is removed.
(list (%bootloader-configuration-target config))
;; XXX: At least the GRUB installer (see (gnu bootloader grub)) has this
;; peculiar behavior of installing fonts and GRUB modules when DEVICE is #f,
;; hence the default value of '(#f) rather than '().
(list #f)))
;;;
;;; Bootloaders.

View file

@ -647,11 +647,12 @@ below the directory TARGET for the system whose root is mounted at MOUNT-POINT.
MOUNT-POINT is the last argument in 'guix system init /etc/config.scm mnt/point'
or '/' for other 'guix system' commands.
TARGET is the target argument given to the bootloader-configuration in
Where TARGET comes from the targets argument given to the
bootloader-configuration in:
(operating-system
(bootloader (bootloader-configuration
(target \"/boot\")
(targets '(\"/boot\"))
))
)

View file

@ -6,6 +6,8 @@
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2020 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
;;;
;;; This file is part of GNU Guix.
;;;
@ -24,6 +26,7 @@
(define-module (gnu build activation)
#:use-module (gnu system accounts)
#:use-module (gnu system setuid)
#:use-module (gnu build accounts)
#:use-module (gnu build linux-boot)
#:use-module (guix build utils)
@ -279,14 +282,17 @@ they already exist."
"/run/setuid-programs")
(define (activate-setuid-programs programs)
"Turn PROGRAMS, a list of file names, into setuid programs stored under
%SETUID-DIRECTORY."
(define (make-setuid-program prog)
"Turn PROGRAMS, a list of file setuid-programs record, into setuid programs
stored under %SETUID-DIRECTORY."
(define (make-setuid-program program setuid? setgid? uid gid)
(let ((target (string-append %setuid-directory
"/" (basename prog))))
(copy-file prog target)
(chown target 0 0)
(chmod target #o4555)))
"/" (basename program)))
(mode (+ #o0555 ; base permissions
(if setuid? #o4000 0) ; setuid bit
(if setgid? #o2000 0)))) ; setgid bit
(copy-file program target)
(chown target uid gid)
(chmod target mode)))
(format #t "setting up setuid programs in '~a'...~%"
%setuid-directory)
@ -302,15 +308,27 @@ they already exist."
(for-each (lambda (program)
(catch 'system-error
(lambda ()
(make-setuid-program program))
(let* ((program-name (setuid-program-program program))
(setuid? (setuid-program-setuid? program))
(setgid? (setuid-program-setgid? program))
(user (setuid-program-user program))
(group (setuid-program-group program))
(uid (match user
((? string?) (passwd:uid (getpwnam user)))
((? integer?) user)))
(gid (match group
((? string?) (group:gid (getgrnam group)))
((? integer?) group))))
(make-setuid-program program-name setuid? setgid? uid gid)))
(lambda args
;; If we fail to create a setuid program, better keep going
;; so that we don't leave %SETUID-DIRECTORY empty or
;; half-populated. This can happen if PROGRAMS contains
;; incorrect file names: <https://bugs.gnu.org/38800>.
(format (current-error-port)
"warning: failed to make '~a' setuid-root: ~a~%"
program (strerror (system-error-errno args))))))
"warning: failed to make ~s setuid/setgid: ~a~%"
(setuid-program-program program)
(strerror (system-error-errno args))))))
programs))
(define (activate-special-files special-files)

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>

587
gnu/build/jami-service.scm Normal file
View file

@ -0,0 +1,587 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; 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/>.
;;; Commentary:
;;;
;;; This module contains helpers used as part of the jami-service-type
;;; definition.
;;;
;;; Code:
(define-module (gnu build jami-service)
#:use-module (ice-9 format)
#:use-module (ice-9 match)
#:use-module (ice-9 peg)
#:use-module (ice-9 rdelim)
#:use-module (ice-9 regex)
#:use-module (rnrs io ports)
#:autoload (shepherd service) (fork+exec-command)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:export (account-fingerprint?
account-details->recutil
get-accounts
get-usernames
set-account-details
add-account
account->username
username->account
username->contacts
enable-account
disable-account
add-contact
remove-contact
set-all-moderators
set-moderator
username->all-moderators?
username->moderators
dbus-available-services
dbus-service-available?
%send-dbus-binary
%send-dbus-bus
%send-dbus-user
%send-dbus-group
%send-dbus-debug
send-dbus
with-retries))
;;;
;;; Utilities.
;;;
(define-syntax-rule (with-retries n delay body ...)
"Retry the code in BODY up to N times until it doesn't raise an exception
nor return #f, else raise an error. A delay of DELAY seconds is inserted
before each retry."
(let loop ((attempts 0))
(catch #t
(lambda ()
(let ((result (begin body ...)))
(if (not result)
(error "failed attempt" attempts)
result)))
(lambda args
(if (< attempts n)
(begin
(sleep delay) ;else wait and retry
(loop (+ 1 attempts)))
(error "maximum number of retry attempts reached"
body ... args))))))
(define (alist->list alist)
"Flatten ALIST into a list."
(append-map (match-lambda
(() '())
((key . value)
(list key value)))
alist))
(define account-fingerprint-rx (make-regexp "[0-9A-Fa-f]{40}"))
(define (account-fingerprint? val)
"A Jami account fingerprint is 40 characters long and only contains
hexadecimal characters."
(and (string? val)
(regexp-exec account-fingerprint-rx val)))
;;;
;;; D-Bus reply parser.
;;;
(define (parse-dbus-reply reply)
"Return the parse tree of REPLY, a string returned by the 'dbus-send'
command."
;; Refer to 'man 1 dbus-send' for the grammar reference. Note that the
;; format of the replies doesn't match the format of the input, which is the
;; one documented, but it gives an idea. For an even better reference, see
;; the `print_iter' procedure of the 'dbus-print-message.c' file from the
;; 'dbus' package sources.
(define-peg-string-patterns
"contents <- header (item / container (item / container*)?)
item <-- WS type WS value NL
container <- array / dict / variant
array <-- array-start (item / container)* array-end
dict <-- array-start dict-entry* array-end
dict-entry <-- dict-entry-start item item dict-entry-end
variant <-- variant-start item
type <-- 'string' / 'int16' / 'uint16' / 'int32' / 'uint32' / 'int64' /
'uint64' / 'double' / 'byte' / 'boolean' / 'objpath'
value <-- (!NL .)* NL
header < (!NL .)* NL
variant-start < WS 'variant'
array-start < WS 'array [' NL
array-end < WS ']' NL
dict-entry-start < WS 'dict entry(' NL
dict-entry-end < WS ')' NL
DQ < '\"'
WS < ' '*
NL < '\n'*")
(peg:tree (match-pattern contents reply)))
(define (strip-quotes text)
"Strip the leading and trailing double quotes (\") characters from TEXT."
(let* ((text* (if (string-prefix? "\"" text)
(string-drop text 1)
text))
(text** (if (string-suffix? "\"" text*)
(string-drop-right text* 1)
text*)))
text**))
(define (deserialize-item item)
"Return the value described by the ITEM parse tree as a Guile object."
;; Strings are printed wrapped in double quotes (see the print_iter
;; procedure in dbus-print-message.c).
(match item
(('item ('type "string") ('value value))
(strip-quotes value))
(('item ('type "boolean") ('value value))
(if (string=? "true" value)
#t
#f))
(('item _ ('value value))
value)))
(define (serialize-boolean bool)
"Return the serialized format expected by dbus-send for BOOL."
(format #f "boolean:~:[false~;true~]" bool))
(define (dict->alist dict-parse-tree)
"Translate a dict parse tree to an alist."
(define (tuples->alist tuples)
(map (lambda (x) (apply cons x)) tuples))
(match dict-parse-tree
('dict
'())
(('dict ('dict-entry keys values) ...)
(let ((keys* (map deserialize-item keys))
(values* (map deserialize-item values)))
(tuples->alist (zip keys* values*))))))
(define (array->list array-parse-tree)
"Translate an array parse tree to a list."
(match array-parse-tree
('array
'())
(('array items ...)
(map deserialize-item items))))
;;;
;;; Low-level, D-Bus-related procedures.
;;;
;;; The following parameters are used in the jami-service-type service
;;; definition to conveniently customize the behavior of the send-dbus helper,
;;; even when called indirectly.
(define %send-dbus-binary (make-parameter "dbus-send"))
(define %send-dbus-bus (make-parameter #f))
(define %send-dbus-user (make-parameter #f))
(define %send-dbus-group (make-parameter #f))
(define %send-dbus-debug (make-parameter #f))
(define* (send-dbus #:key service path interface method
bus
dbus-send
user group
timeout
arguments)
"Return the response of DBUS-SEND, else raise an error. Unless explicitly
provided, DBUS-SEND takes the value of the %SEND-DBUS-BINARY parameter. BUS
can be used to specify the bus address, such as 'unix:path=/var/run/jami/bus'.
Alternatively, the %SEND-DBUS-BUS parameter can be used. ARGUMENTS can be
used to pass input values to a D-Bus method call. TIMEOUT is the amount of
time to wait for a reply in milliseconds before giving up with an error. USER
and GROUP allow choosing under which user/group the DBUS-SEND command is
executed. Alternatively, the %SEND-DBUS-USER and %SEND-DBUS-GROUP parameters
can be used instead."
(let* ((command `(,(if dbus-send
dbus-send
(%send-dbus-binary))
,@(if (or bus (%send-dbus-bus))
(list (string-append "--bus="
(or bus (%send-dbus-bus))))
'())
"--print-reply"
,@(if timeout
(list (format #f "--reply-timeout=~d" timeout))
'())
,(string-append "--dest=" service) ;e.g., cx.ring.Ring
,path ;e.g., /cx/ring/Ring/ConfigurationManager
,(string-append interface "." method)
,@(or arguments '())))
(temp-port (mkstemp! (string-copy "/tmp/dbus-send-output-XXXXXXX")))
(temp-file (port-filename temp-port)))
(dynamic-wind
(lambda ()
(let* ((uid (or (and=> (or user (%send-dbus-user))
(compose passwd:uid getpwnam)) -1))
(gid (or (and=> (or group (%send-dbus-group))
(compose group:gid getgrnam)) -1)))
(chown temp-port uid gid)))
(lambda ()
(let ((pid (fork+exec-command command
#:user (or user (%send-dbus-user))
#:group (or group (%send-dbus-group))
#:log-file temp-file)))
(match (waitpid pid)
((_ . status)
(let ((exit-status (status:exit-val status))
(output (call-with-port temp-port get-string-all)))
(if (= 0 exit-status)
output
(error "the send-dbus command exited with: "
command exit-status output)))))))
(lambda ()
(false-if-exception (delete-file temp-file))))))
(define (parse-account-ids reply)
"Return the Jami account IDs from REPLY, which is assumed to be the output
of the Jami D-Bus `getAccountList' method."
(array->list (parse-dbus-reply reply)))
(define (parse-account-details reply)
"Parse REPLY, which is assumed to be the output of the Jami D-Bus
`getAccountDetails' method, and return its content as an alist."
(dict->alist (parse-dbus-reply reply)))
(define (parse-contacts reply)
"Parse REPLY, which is assumed to be the output of the Jamid D-Bus
`getContacts' method, and return its content as an alist."
(match (parse-dbus-reply reply)
('array
'())
(('array dicts ...)
(map dict->alist dicts))))
;;;
;;; Higher-level, D-Bus-related procedures.
;;;
(define (validate-fingerprint fingerprint)
"Validate that fingerprint is 40 characters long."
(unless (account-fingerprint? fingerprint)
(error "Account fingerprint is not valid:" fingerprint)))
(define (dbus-available-services)
"Return the list of available (acquired) D-Bus services."
(let ((reply (parse-dbus-reply
(send-dbus #:service "org.freedesktop.DBus"
#:path "/org/freedesktop/DBus"
#:interface "org.freedesktop.DBus"
#:method "ListNames"))))
;; Remove entries such as ":1.7".
(remove (cut string-prefix? ":" <>)
(array->list reply))))
(define (dbus-service-available? service)
"Predicate to check for the D-Bus SERVICE availability."
(member service (dbus-available-services)))
(define* (send-dbus/configuration-manager #:key method arguments timeout)
"Query the Jami D-Bus ConfigurationManager service."
(send-dbus #:service "cx.ring.Ring"
#:path "/cx/ring/Ring/ConfigurationManager"
#:interface "cx.ring.Ring.ConfigurationManager"
#:method method
#:arguments arguments
#:timeout timeout))
;;; The following methods are for internal use; they make use of the account
;;; ID, an implementation detail of Jami the user should not need to be
;;; concerned with.
(define (get-account-ids)
"Return the available Jami account identifiers (IDs). Account IDs are an
implementation detail used to identify the accounts in Jami."
(parse-account-ids
(send-dbus/configuration-manager #:method "getAccountList")))
(define (id->account-details id)
"Retrieve the account data associated with the given account ID."
(parse-account-details
(send-dbus/configuration-manager
#:method "getAccountDetails"
#:arguments (list (string-append "string:" id)))))
(define (id->volatile-account-details id)
"Retrieve the account data associated with the given account ID."
(parse-account-details
(send-dbus/configuration-manager
#:method "getVolatileAccountDetails"
#:arguments (list (string-append "string:" id)))))
(define (id->account id)
"Retrieve the complete account data associated with the given account ID."
(append (id->volatile-account-details id)
(id->account-details id)))
(define %username-to-id-cache #f)
(define (invalidate-username-to-id-cache!)
(set! %username-to-id-cache #f))
(define (username->id username)
"Return the first account ID corresponding to USERNAME."
(unless (assoc-ref %username-to-id-cache username)
(set! %username-to-id-cache
(append-map
(lambda (id)
(let* ((account (id->account id))
(username (assoc-ref account "Account.username"))
(registered-name (assoc-ref account
"Account.registeredName")))
`(,@(if username
(list (cons username id))
'())
,@(if registered-name
(list (cons registered-name id))
'()))))
(get-account-ids))))
(or (assoc-ref %username-to-id-cache username)
(let ((message (format #f "Could not retrieve a local account ID\
for ~:[username~;fingerprint~]" (account-fingerprint? username))))
(error message username))))
(define (account->username account)
"Return USERNAME, the registered username associated with ACCOUNT, else its
public key fingerprint."
(or (assoc-ref account "Account.registeredName")
(assoc-ref account "Account.username")))
(define (id->username id)
"Return USERNAME, the registered username associated with ID, else its
public key fingerprint, else #f."
(account->username (id->account id)))
(define (get-accounts)
"Return the list of all accounts, as a list of alists."
(map id->account (get-account-ids)))
(define (get-usernames)
"Return the list of the usernames associated with the present accounts."
(map account->username (get-accounts)))
(define (username->account username)
"Return the first account associated with USERNAME, else #f.
USERNAME can be either the account 40 characters public key fingerprint or a
registered username."
(find (lambda (account)
(member username
(list (assoc-ref account "Account.username")
(assoc-ref account "Account.registeredName"))))
(get-accounts)))
(define (add-account archive)
"Import the Jami account ARCHIVE and return its account ID. The archive
should *not* be encrypted with a password. Return the username associated
with the account."
(invalidate-username-to-id-cache!)
(let ((reply (send-dbus/configuration-manager
#:method "addAccount"
#:arguments (list (string-append
"dict:string:string:Account.archivePath,"
archive
",Account.type,RING")))))
;; The account information takes some time to be populated.
(let ((id (deserialize-item (parse-dbus-reply reply))))
(with-retries 20 1
(let ((username (id->username id)))
(if (string-null? username)
#f
username))))))
(define (remove-account username)
"Delete the Jami account associated with USERNAME, the account 40 characters
fingerprint or a registered username."
(let ((id (username->id username)))
(send-dbus/configuration-manager
#:method "removeAccount"
#:arguments (list (string-append "string:" id))))
(invalidate-username-to-id-cache!))
(define* (username->contacts username)
"Return the contacts associated with the account of USERNAME as two values;
the first one being the regular contacts and the second one the banned
contacts. USERNAME can be either the account 40 characters public key
fingerprint or a registered username. The contacts returned are represented
using their 40 characters fingerprint."
(let* ((id (username->id username))
(reply (send-dbus/configuration-manager
#:method "getContacts"
#:arguments (list (string-append "string:" id))))
(all-contacts (parse-contacts reply))
(banned? (lambda (contact)
(and=> (assoc-ref contact "banned")
(cut string=? "true" <>))))
(banned (filter banned? all-contacts))
(not-banned (filter (negate banned?) all-contacts))
(fingerprint (cut assoc-ref <> "id")))
(values (map fingerprint not-banned)
(map fingerprint banned))))
(define* (remove-contact contact username #:key ban?)
"Remove CONTACT, the 40 characters public key fingerprint of a contact, from
the account associated with USERNAME (either a fingerprint or a registered
username). When BAN? is true, also mark the contact as banned."
(validate-fingerprint contact)
(let ((id (username->id username)))
(send-dbus/configuration-manager
#:method "removeContact"
#:arguments (list (string-append "string:" id)
(string-append "string:" contact)
(serialize-boolean ban?)))))
(define (add-contact contact username)
"Add CONTACT, the 40 characters public key fingerprint of a contact, to the
account of USERNAME (either a fingerprint or a registered username)."
(validate-fingerprint contact)
(let ((id (username->id username)))
(send-dbus/configuration-manager
#:method "addContact"
#:arguments (list (string-append "string:" id)
(string-append "string:" contact)))))
(define* (set-account-details details username #:key timeout)
"Set DETAILS, an alist containing the key value pairs to set for the account
of USERNAME, a registered username or account fingerprint. The value of the
parameters not provided are unchanged. TIMEOUT is a value in milliseconds to
pass to the `send-dbus/configuration-manager' procedure."
(let* ((id (username->id username))
(current-details (id->account-details id))
(updated-details (map (match-lambda
((key . value)
(or (and=> (assoc-ref details key)
(cut cons key <>))
(cons key value))))
current-details))
;; dbus-send does not permit sending null strings (it throws a
;; "malformed dictionary" error). Luckily they seem to have the
;; semantic of "default account value" in Jami; so simply drop them.
(updated-details* (remove (match-lambda
((_ . value)
(string-null? value)))
updated-details)))
(send-dbus/configuration-manager
#:timeout timeout
#:method "setAccountDetails"
#:arguments
(list (string-append "string:" id)
(string-append "dict:string:string:"
(string-join (alist->list updated-details*)
","))))))
(define (set-all-moderators enabled? username)
"Set the 'AllModerators' property to enabled? for the account of USERNAME, a
registered username or account fingerprint."
(let ((id (username->id username)))
(send-dbus/configuration-manager
#:method "setAllModerators"
#:arguments
(list (string-append "string:" id)
(serialize-boolean enabled?)))))
(define (username->all-moderators? username)
"Return the 'AllModerators' property for the account of USERNAME, a
registered username or account fingerprint."
(let* ((id (username->id username))
(reply (send-dbus/configuration-manager
#:method "isAllModerators"
#:arguments
(list (string-append "string:" id)))))
(deserialize-item (parse-dbus-reply reply))))
(define (username->moderators username)
"Return the moderators for the account of USERNAME, a registered username or
account fingerprint."
(let* ((id (username->id username))
(reply (send-dbus/configuration-manager
#:method "getDefaultModerators"
#:arguments
(list (string-append "string:" id)))))
(array->list (parse-dbus-reply reply))))
(define (set-moderator contact enabled? username)
"Set the moderator flag to ENABLED? for CONTACT, the 40 characters public
key fingerprint of a contact for the account of USERNAME, a registered
username or account fingerprint."
(validate-fingerprint contact)
(let* ((id (username->id username)))
(send-dbus/configuration-manager #:method "setDefaultModerator"
#:arguments
(list (string-append "string:" id)
(string-append "string:" contact)
(serialize-boolean enabled?)))))
(define (disable-account username)
"Disable the account known by USERNAME, a registered username or account
fingerprint."
(set-account-details '(("Account.enable" . "false")) username
;; Waiting for the reply on this command takes a very
;; long time that trips the default D-Bus timeout value
;; (25 s), for some reason.
#:timeout 60000))
(define (enable-account username)
"Enable the account known by USERNAME, a registered username or account
fingerprint."
(set-account-details '(("Account.enable" . "true")) username))
;;;
;;; Presentation procedures.
;;;
(define (.->_ text)
"Map each period character to underscore characters."
(string-map (match-lambda
(#\. #\_)
(c c))
text))
(define (account-details->recutil account-details)
"Serialize the account-details alist into a recutil string. Period
characters in the keys are normalized to underscore to meet Recutils' format
requirements."
(define (pair->recutil-property pair)
(match pair
((key . value)
(string-append (.->_ key) ": " value))))
(define sorted-account-details
;; Have the account username, display name and alias appear first, for
;; convenience.
(let ((first-items '("Account.username"
"Account.displayName"
"Account.alias")))
(append (map (cut assoc <> account-details) first-items)
(fold alist-delete account-details first-items))))
(string-join (map pair->recutil-property sorted-account-details) "\n"))
;; Local Variables:
;; eval: (put 'with-retries 'scheme-indent-function 2)
;; End:

View file

@ -390,10 +390,6 @@ networking values.) Return #t if INTERFACE is up, #f otherwise."
(set-network-interface-address sock interface address)
(set-network-interface-flags sock interface (logior flags IFF_UP))
;; Hello! We used to create /etc/resolv.conf here, with "nameserver
;; 10.0.2.3\n". However, with Linux-libre 3.16, we're getting ENOSPC.
;; And since it's actually unnecessary, it's gone.
(logand (network-interface-flags sock interface) IFF_UP)))
(define (device-number major minor)

View file

@ -24,6 +24,12 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (ice-9 match)
;; XXX: Lazy-bind the Shepherd to avoid a compile-time dependency.
#:autoload (shepherd service) (fork+exec-command
read-pid-file
exec-command
%precious-signals)
#:autoload (shepherd system) (unblock-signals)
#:export (make-forkexec-constructor/container
fork+exec-command/container))
@ -92,14 +98,6 @@
(file-exists? (file-system-mapping-source mapping)))
mappings)))))
;; XXX: Lazy-bind the Shepherd to avoid a compile-time dependency.
(module-autoload! (current-module)
'(shepherd service)
'(fork+exec-command read-pid-file exec-command
%precious-signals))
(module-autoload! (current-module)
'(shepherd system) '(unblock-signals))
(define* (read-pid-file/container pid pid-file #:key (max-delay 5))
"Read PID-FILE in the container namespaces of PID, which exists in a
separate mount and PID name space. Return the \"outer\" PID. "

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2018, 2021 Mathieu Othacehe <othacehe@gnu.org>
;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
;;;
;;; This file is part of GNU Guix.
@ -79,6 +79,11 @@
"Parse FILE and return two values, the list of supported X11-KEYMAP-MODEL
and X11-KEYMAP-LAYOUT records. FILE is an XML file from the X Keyboard
Configuration Database, describing possible XKB configurations."
(define maybe-empty
(match-lambda
((x) x)
(#f "")))
(define (model m)
(sxml-match m
[(model
@ -108,7 +113,7 @@ Configuration Database, describing possible XKB configurations."
. ,rest-variant))
(x11-keymap-variant
(name name)
(description (car
(description (maybe-empty
(assoc-ref rest-variant 'description))))]))
(define (layout l)
@ -120,9 +125,9 @@ Configuration Database, describing possible XKB configurations."
(variantList ,[variant -> v] ...))
(x11-keymap-layout
(name name)
(synopsis (car
(synopsis (maybe-empty
(assoc-ref rest-layout 'shortDescription)))
(description (car
(description (maybe-empty
(assoc-ref rest-layout 'description)))
(variants (list v ...)))]
[(layout
@ -131,9 +136,9 @@ Configuration Database, describing possible XKB configurations."
. ,rest-layout))
(x11-keymap-layout
(name name)
(synopsis (car
(synopsis (maybe-empty
(assoc-ref rest-layout 'shortDescription)))
(description (car
(description (maybe-empty
(assoc-ref rest-layout 'description)))
(variants '()))]))

View file

@ -1356,9 +1356,9 @@ from (gnu system mapped-devices) and return it."
`((bootloader-configuration
,@(if (efi-installation?)
`((bootloader grub-efi-bootloader)
(target ,(default-esp-mount-point)))
(targets (list ,(default-esp-mount-point))))
`((bootloader grub-bootloader)
(target ,root-partition-disk)))
(targets (list ,root-partition-disk))))
;; XXX: Assume we defined the 'keyboard-layout' field of
;; <operating-system> right above.

View file

@ -20,7 +20,7 @@
# Copyright © 2018, 2019, 2020, 2021 Oleg Pykhalov <go.wigust@gmail.com>
# Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
# Copyright © 2018, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
# Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
# Copyright © 2019, 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
# Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
# Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
# Copyright © 2019 Evan Straw <evan.straw99@gmail.com>
@ -44,6 +44,7 @@
# Copyright © 2021 Philip McGrath <philip@philipmcgrath.com>
# Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
# Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
# Copyright © 2021 Dmitry Polyakov <polyakov@liltechdude.xyz>
#
# This file is part of GNU Guix.
#
@ -187,7 +188,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/docbook.scm \
%D%/packages/docker.scm \
%D%/packages/documentation.scm \
%D%/packages/drones.scm \
%D%/packages/dunst.scm \
%D%/packages/dvtm.scm \
%D%/packages/easyrpg.scm \
@ -384,6 +384,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/mercury.scm \
%D%/packages/mes.scm \
%D%/packages/messaging.scm \
%D%/packages/minetest.scm \
%D%/packages/mingw.scm \
%D%/packages/microcom.scm \
%D%/packages/moe.scm \
@ -451,6 +452,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/php.scm \
%D%/packages/piet.scm \
%D%/packages/pkg-config.scm \
%D%/packages/plan9.scm \
%D%/packages/plotutils.scm \
%D%/packages/poedit.scm \
%D%/packages/polkit.scm \
@ -492,7 +494,9 @@ GNU_SYSTEM_MODULES = \
%D%/packages/rednotebook.scm \
%D%/packages/regex.scm \
%D%/packages/robotics.scm \
%D%/packages/rocm.scm \
%D%/packages/rpc.scm \
%D%/packages/rpm.scm \
%D%/packages/rrdtool.scm \
%D%/packages/rsync.scm \
%D%/packages/ruby.scm \
@ -559,6 +563,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/tmux.scm \
%D%/packages/tor.scm \
%D%/packages/tv.scm \
%D%/packages/uglifyjs.scm \
%D%/packages/uml.scm \
%D%/packages/unicode.scm \
%D%/packages/unrtf.scm \
@ -666,6 +671,7 @@ GNU_SYSTEM_MODULES = \
%D%/system/mapped-devices.scm \
%D%/system/nss.scm \
%D%/system/pam.scm \
%D%/system/setuid.scm \
%D%/system/shadow.scm \
%D%/system/uuid.scm \
%D%/system/vm.scm \
@ -684,6 +690,7 @@ GNU_SYSTEM_MODULES = \
%D%/build/chromium-extension.scm \
%D%/build/cross-toolchain.scm \
%D%/build/image.scm \
%D%/build/jami-service.scm \
%D%/build/file-systems.scm \
%D%/build/hurd-boot.scm \
%D%/build/install.scm \
@ -721,6 +728,7 @@ GNU_SYSTEM_MODULES = \
%D%/tests/security-token.scm \
%D%/tests/singularity.scm \
%D%/tests/ssh.scm \
%D%/tests/telephony.scm \
%D%/tests/version-control.scm \
%D%/tests/virtualization.scm \
%D%/tests/web.scm
@ -786,7 +794,8 @@ dist_installer_DATA = \
MODULES_NOT_COMPILED += \
%D%/build/locale.scm \
%D%/build/shepherd.scm \
%D%/build/svg.scm
%D%/build/svg.scm \
%D%/tests/data/jami-dummy-account.dat
patchdir = $(guilemoduledir)/%D%/packages/patches
dist_patch_DATA = \
@ -801,6 +810,7 @@ dist_patch_DATA = \
%D%/packages/patches/abseil-cpp-fix-gtest.patch \
%D%/packages/patches/abseil-cpp-fix-strerror_test.patch \
%D%/packages/patches/adb-add-libraries.patch \
%D%/packages/patches/adb-libssl_11-compatibility.patch \
%D%/packages/patches/aegis-constness-error.patch \
%D%/packages/patches/aegis-perl-tempdir1.patch \
%D%/packages/patches/aegis-perl-tempdir2.patch \
@ -873,10 +883,10 @@ dist_patch_DATA = \
%D%/packages/patches/bsd-games-prevent-name-collisions.patch \
%D%/packages/patches/bsd-games-stdio.h.patch \
%D%/packages/patches/beancount-disable-googleapis-fonts.patch \
%D%/packages/patches/beets-werkzeug-compat.patch \
%D%/packages/patches/behave-skip-a-couple-of-tests.patch \
%D%/packages/patches/beignet-correct-file-names.patch \
%D%/packages/patches/bidiv-update-fribidi.patch \
%D%/packages/patches/binutils-2.37-file-descriptor-leak.patch \
%D%/packages/patches/binutils-boot-2.20.1a.patch \
%D%/packages/patches/binutils-loongson-workaround.patch \
%D%/packages/patches/binutils-mingw-w64-timestamp.patch \
@ -900,6 +910,7 @@ dist_patch_DATA = \
%D%/packages/patches/cdparanoia-fpic.patch \
%D%/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch \
%D%/packages/patches/ceph-disable-cpu-optimizations.patch \
%D%/packages/patches/cheese-vala-update.patch \
%D%/packages/patches/chez-scheme-build-util-paths-backport.patch \
%D%/packages/patches/chmlib-inttypes.patch \
%D%/packages/patches/cl-asdf-config-directories.patch \
@ -921,6 +932,7 @@ dist_patch_DATA = \
%D%/packages/patches/clang-runtime-3.9-libsanitizer-mode-field.patch \
%D%/packages/patches/clang-runtime-3.8-libsanitizer-mode-field.patch \
%D%/packages/patches/classpath-aarch64-support.patch \
%D%/packages/patches/classpath-miscompilation.patch \
%D%/packages/patches/clucene-pkgconfig.patch \
%D%/packages/patches/cmake-curl-certificates.patch \
%D%/packages/patches/coda-use-system-libs.patch \
@ -930,6 +942,7 @@ dist_patch_DATA = \
%D%/packages/patches/coreutils-gnulib-tests.patch \
%D%/packages/patches/coreutils-ls.patch \
%D%/packages/patches/cpufrequtils-fix-aclocal.patch \
%D%/packages/patches/cpuinfo-system-libraries.patch \
%D%/packages/patches/crawl-upgrade-saves.patch \
%D%/packages/patches/crda-optional-gcrypt.patch \
%D%/packages/patches/clucene-contribs-lib.patch \
@ -941,6 +954,7 @@ dist_patch_DATA = \
%D%/packages/patches/cyrus-sasl-ac-try-run-fix.patch \
%D%/packages/patches/cyrus-sasl-CVE-2019-19906.patch \
%D%/packages/patches/c++-gsl-find-system-gtest.patch \
%D%/packages/patches/c++-gsl-move-array-bounds-tests.patch \
%D%/packages/patches/date-output-pkg-config-files.patch \
%D%/packages/patches/datefudge-gettimeofday.patch \
%D%/packages/patches/dbacl-include-locale.h.patch \
@ -994,11 +1008,14 @@ dist_patch_DATA = \
%D%/packages/patches/enjarify-setup-py.patch \
%D%/packages/patches/enlightenment-fix-setuid-path.patch \
%D%/packages/patches/erlang-man-path.patch \
%D%/packages/patches/esmtp-add-lesmtp.patch \
%D%/packages/patches/eudev-rules-directory.patch \
%D%/packages/patches/evilwm-lost-focus-bug.patch \
%D%/packages/patches/evolution-CVE-2020-11879.patch \
%D%/packages/patches/evolution-printableoptions.patch \
%D%/packages/patches/evolution-data-server-CVE-2020-14928.patch \
%D%/packages/patches/evolution-data-server-CVE-2020-16117.patch \
%D%/packages/patches/evolution-data-server-printableoptions.patch \
%D%/packages/patches/evolution-data-server-locales.patch \
%D%/packages/patches/evolution-data-server-libical-compat.patch \
%D%/packages/patches/exercism-disable-self-update.patch \
@ -1022,12 +1039,14 @@ dist_patch_DATA = \
%D%/packages/patches/foobillard++-pkg-config.patch \
%D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \
%D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \
%D%/packages/patches/fp16-system-libraries.patch \
%D%/packages/patches/fpc-reproducibility.patch \
%D%/packages/patches/fplll-std-fenv.patch \
%D%/packages/patches/freedink-engine-fix-sdl-hints.patch \
%D%/packages/patches/freeglut-gcc-compat.patch \
%D%/packages/patches/freeimage-unbundle.patch \
%D%/packages/patches/fuse-overlapping-headers.patch \
%D%/packages/patches/fxdiv-system-libraries.patch \
%D%/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch \
%D%/packages/patches/ganeti-deterministic-manual.patch \
%D%/packages/patches/ganeti-disable-version-symlinks.patch \
@ -1096,7 +1115,10 @@ dist_patch_DATA = \
%D%/packages/patches/ghostscript-no-header-uuid.patch \
%D%/packages/patches/ghostscript-no-header-creationdate.patch \
%D%/packages/patches/giara-fix-login.patch \
%D%/packages/patches/glade-gls-set-script-name.patch \
%D%/packages/patches/glade-test-widget-null-icon.patch \
%D%/packages/patches/glib-appinfo-watch.patch \
%D%/packages/patches/glib-networking-gnutls-binding.patch \
%D%/packages/patches/glib-skip-failing-test.patch \
%D%/packages/patches/glibc-CVE-2018-11236.patch \
%D%/packages/patches/glibc-CVE-2018-11237.patch \
@ -1125,9 +1147,11 @@ dist_patch_DATA = \
%D%/packages/patches/glibc-locales.patch \
%D%/packages/patches/glibc-locales-2.28.patch \
%D%/packages/patches/glibc-reinstate-prlimit64-fallback.patch \
%D%/packages/patches/glibc-skip-c++.patch \
%D%/packages/patches/glibc-versioned-locpath.patch \
%D%/packages/patches/glibc-2.29-git-updates.patch \
%D%/packages/patches/glibc-2.29-supported-locales.patch \
%D%/packages/patches/glibc-static-nss.patch \
%D%/packages/patches/glibc-supported-locales.patch \
%D%/packages/patches/gmp-arm-asm-nothumb.patch \
%D%/packages/patches/gmp-faulty-test.patch \
@ -1139,12 +1163,16 @@ dist_patch_DATA = \
%D%/packages/patches/gnome-todo-delete-esource-duplicate.patch \
%D%/packages/patches/gnome-tweaks-search-paths.patch \
%D%/packages/patches/gnupg-default-pinentry.patch \
%D%/packages/patches/gnupg-1-build-with-gcc10.patch \
%D%/packages/patches/gnutls-skip-trust-store-test.patch \
%D%/packages/patches/gnutls-cross.patch \
%D%/packages/patches/gnutls-guile-eintr-eagain.patch \
%D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
%D%/packages/patches/gobject-introspection-cc.patch \
%D%/packages/patches/gobject-introspection-girepository.patch \
%D%/packages/patches/go-fix-script-tests.patch \
%D%/packages/patches/go-github-com-urfave-cli-fix-tests.patch \
%D%/packages/patches/go-github-com-urfave-cli-v2-fix-tests.patch \
%D%/packages/patches/go-skip-gc-test.patch \
%D%/packages/patches/gpm-glibc-2.26.patch \
%D%/packages/patches/gpodder-disable-updater.patch \
@ -1185,6 +1213,7 @@ dist_patch_DATA = \
%D%/packages/patches/gtk2-theme-paths.patch \
%D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \
%D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \
%D%/packages/patches/gtk-doc-respect-xml-catalog.patch \
%D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
%D%/packages/patches/gtksourceview-2-add-default-directory.patch \
%D%/packages/patches/gvfs-add-support-for-libplist-2.2.patch \
@ -1223,6 +1252,7 @@ dist_patch_DATA = \
%D%/packages/patches/imagemagick-ReadDCMPixels-fix.patch \
%D%/packages/patches/imagemagick-WriteTHUMBNAILImage-fix.patch \
%D%/packages/patches/inkscape-poppler-0.76.patch \
%D%/packages/patches/instead-use-games-path.patch \
%D%/packages/patches/inkscape-1.1-fix-build-witch-gcc7.5.patch \
%D%/packages/patches/intel-xed-fix-nondeterminism.patch \
%D%/packages/patches/intltool-perl-compatibility.patch \
@ -1257,10 +1287,12 @@ dist_patch_DATA = \
%D%/packages/patches/jfsutils-gcc-compat.patch \
%D%/packages/patches/jfsutils-include-systypes.patch \
%D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch \
%D%/packages/patches/julia-tracker-16-compat.patch \
%D%/packages/patches/kdbusaddons-kinit-file-name.patch \
%D%/packages/patches/libblockdev-glib-compat.patch \
%D%/packages/patches/libffi-3.3-powerpc-fixes.patch \
%D%/packages/patches/libffi-float128-powerpc64le.patch \
%D%/packages/patches/librime-fix-build-with-gcc10.patch \
%D%/packages/patches/libvirt-add-install-prefix.patch \
%D%/packages/patches/libziparchive-add-includes.patch \
%D%/packages/patches/localed-xorg-keyboard.patch \
@ -1331,6 +1363,7 @@ dist_patch_DATA = \
%D%/packages/patches/libmad-length-check.patch \
%D%/packages/patches/libmad-md_size.patch \
%D%/packages/patches/libmad-mips-newgcc.patch \
%D%/packages/patches/libmicrohttpd-0.9.73-test-ssl3.patch \
%D%/packages/patches/libmp4v2-c++11.patch \
%D%/packages/patches/libmpeg2-arm-private-symbols.patch \
%D%/packages/patches/libmpeg2-global-symbol-test.patch \
@ -1375,6 +1408,9 @@ dist_patch_DATA = \
%D%/packages/patches/llvm-9-fix-bitcast-miscompilation.patch \
%D%/packages/patches/llvm-9-fix-lpad-miscompilation.patch \
%D%/packages/patches/llvm-9-fix-scev-miscompilation.patch \
%D%/packages/patches/llvm-roc-3.0.0-add_libraries.patch \
%D%/packages/patches/llvm-roc-4.0.0-remove-isystem-usr-include.patch \
%D%/packages/patches/llvm-roc-4.2.0-add_Object.patch \
%D%/packages/patches/lm-sensors-hwmon-attrs.patch \
%D%/packages/patches/lrcalc-includes.patch \
%D%/packages/patches/lsh-fix-x11-forwarding.patch \
@ -1387,8 +1423,9 @@ dist_patch_DATA = \
%D%/packages/patches/luajit-no_ldconfig.patch \
%D%/packages/patches/luit-posix.patch \
%D%/packages/patches/lvm2-static-link.patch \
%D%/packages/patches/mailutils-fix-uninitialized-variable.patch \
%D%/packages/patches/mailutils-variable-lookup.patch \
%D%/packages/patches/make-impure-dirs.patch \
%D%/packages/patches/marble-qt-add-qt-headers.patch \
%D%/packages/patches/mariadb-CVE-2021-27928.patch \
%D%/packages/patches/mariadb-cmake-compat.patch \
%D%/packages/patches/mars-install.patch \
@ -1403,10 +1440,12 @@ dist_patch_DATA = \
%D%/packages/patches/libmemcached-build-with-gcc7.patch \
%D%/packages/patches/libmhash-hmac-fix-uaf.patch \
%D%/packages/patches/mercurial-hg-extension-path.patch \
%D%/packages/patches/mesa-opencl-all-targets.patch \
%D%/packages/patches/mesa-skip-tests.patch \
%D%/packages/patches/mescc-tools-boot.patch \
%D%/packages/patches/metabat-fix-compilation.patch \
%D%/packages/patches/mhash-keygen-test-segfault.patch \
%D%/packages/patches/minetest-add-MINETEST_MOD_PATH.patch \
%D%/packages/patches/mingw-w64-6.0.0-gcc.patch \
%D%/packages/patches/mingw-w64-dlltool-temp-prefix.patch \
%D%/packages/patches/mingw-w64-reproducible-gendef.patch \
@ -1415,6 +1454,7 @@ dist_patch_DATA = \
%D%/packages/patches/mit-krb5-hurd.patch \
%D%/packages/patches/mpc123-initialize-ao.patch \
%D%/packages/patches/mpg321-CVE-2019-14247.patch \
%D%/packages/patches/mpg321-gcc-10.patch \
%D%/packages/patches/module-init-tools-moduledir.patch \
%D%/packages/patches/monero-use-system-miniupnpc.patch \
%D%/packages/patches/mono-mdoc-timestamping.patch \
@ -1473,8 +1513,15 @@ dist_patch_DATA = \
%D%/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch \
%D%/packages/patches/ocaml-dose3-dont-make-printconf.patch \
%D%/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch \
%D%/packages/patches/ocaml-multiple-definitions.patch \
%D%/packages/patches/ocaml-4.09-multiple-definitions.patch \
%D%/packages/patches/ocaml-ppx-variants-ppxlib-api-change.patch \
%D%/packages/patches/omake-fix-non-determinism.patch \
%D%/packages/patches/oneko-remove-nonfree-characters.patch \
%D%/packages/patches/onnx-optimizer-system-library.patch \
%D%/packages/patches/onnx-use-system-googletest.patch \
%D%/packages/patches/onnx-shared-libraries.patch \
%D%/packages/patches/onnx-skip-model-downloads.patch \
%D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \
%D%/packages/patches/opencascade-oce-glibc-2.26.patch \
%D%/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch \
@ -1503,7 +1550,9 @@ dist_patch_DATA = \
%D%/packages/patches/pciutils-hurd-fix.patch \
%D%/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch \
%D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \
%D%/packages/patches/samba-fix-fcntl-hint-detection.patch \
%D%/packages/patches/pthreadpool-system-libraries.patch \
%D%/packages/patches/python-chai-drop-python2.patch \
%D%/packages/patches/python-random2-getrandbits-test.patch \
%D%/packages/patches/sdcc-disable-non-free-code.patch \
%D%/packages/patches/sdl-pango-api_additions.patch \
%D%/packages/patches/sdl-pango-blit_overflow.patch \
@ -1533,6 +1582,7 @@ dist_patch_DATA = \
%D%/packages/patches/pinball-system-ltdl.patch \
%D%/packages/patches/pingus-boost-headers.patch \
%D%/packages/patches/pingus-sdl-libs-config.patch \
%D%/packages/patches/pipewire-0.2.7-fno-common.patch \
%D%/packages/patches/pixman-CVE-2016-5296.patch \
%D%/packages/patches/pjproject-correct-the-cflags-field.patch \
%D%/packages/patches/pjproject-fix-pkg-config-ldflags.patch \
@ -1581,6 +1631,9 @@ dist_patch_DATA = \
%D%/packages/patches/python-cross-compile.patch \
%D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
%D%/packages/patches/python-configobj-setuptools.patch \
%D%/packages/patches/python-docopt-pytest6-compat.patch \
%D%/packages/patches/python-execnet-read-only-fix.patch \
%D%/packages/patches/python-fixtures-remove-monkeypatch-test.patch \
%D%/packages/patches/python-flask-restful-werkzeug-compat.patch \
%D%/packages/patches/python-keras-integration-test.patch \
%D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \
@ -1588,27 +1641,28 @@ dist_patch_DATA = \
%D%/packages/patches/python-flint-includes.patch \
%D%/packages/patches/python-libxml2-utf8.patch \
%D%/packages/patches/python-matplotlib-run-under-wayland-gtk3.patch \
%D%/packages/patches/python-mediafile-wavpack.patch \
%D%/packages/patches/python-memcached-syntax-warnings.patch \
%D%/packages/patches/python-mox3-python3.6-compat.patch \
%D%/packages/patches/python-testtools.patch \
%D%/packages/patches/python-typing-inspect-fix.patch \
%D%/packages/patches/python-onnx-use-system-googletest.patch \
%D%/packages/patches/python-packaging-test-arch.patch \
%D%/packages/patches/python2-parameterized-docstring-test.patch \
%D%/packages/patches/python-paste-remove-timing-test.patch \
%D%/packages/patches/python-pycrypto-CVE-2013-7459.patch \
%D%/packages/patches/python-pycrypto-time-clock.patch \
%D%/packages/patches/python-pyan3-fix-absolute-path-bug.patch \
%D%/packages/patches/python-pyan3-fix-positional-arguments.patch \
%D%/packages/patches/python-pydot-regression-test.patch \
%D%/packages/patches/python2-pygobject-2-deprecation.patch \
%D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \
%D%/packages/patches/python-pytest-asyncio-python-3.8.patch \
%D%/packages/patches/python-pytorch-runpath.patch \
%D%/packages/patches/python-pytorch-system-libraries.patch \
%D%/packages/patches/python-robotframework-source-date-epoch.patch \
%D%/packages/patches/python-seaborn-kde-test.patch \
%D%/packages/patches/python2-subprocess32-disable-input-test.patch \
%D%/packages/patches/python-unittest2-python3-compat.patch \
%D%/packages/patches/python-unittest2-remove-argparse.patch \
%D%/packages/patches/python-waitress-fix-tests.patch \
%D%/packages/patches/pypy3-7.3.1-fix-tests.patch \
%D%/packages/patches/qemu-build-info-manual.patch \
%D%/packages/patches/qemu-CVE-2021-20203.patch \
%D%/packages/patches/qemu-meson-compat.patch \
@ -1626,6 +1680,10 @@ dist_patch_DATA = \
%D%/packages/patches/quassel-qt-514-compat.patch \
%D%/packages/patches/quickswitch-fix-dmenu-check.patch \
%D%/packages/patches/qtwebkit-pbutils-include.patch \
%D%/packages/patches/qtwebkit-fix-building-with-bison-3.7.patch \
%D%/packages/patches/qtwebkit-fix-building-with-python-3.9.patch \
%D%/packages/patches/qtwebkit-fix-building-with-icu-68.patch \
%D%/packages/patches/qtwebkit-fix-building-with-glib-2.68.patch \
%D%/packages/patches/randomjungle-disable-static-build.patch \
%D%/packages/patches/rapicorn-isnan.patch \
%D%/packages/patches/rapidjson-gcc-compat.patch \
@ -1643,12 +1701,19 @@ dist_patch_DATA = \
%D%/packages/patches/ripperx-missing-file.patch \
%D%/packages/patches/rpcbind-CVE-2017-8779.patch \
%D%/packages/patches/rtags-separate-rct.patch \
%D%/packages/patches/racket-sh-via-rktio.patch \
%D%/packages/patches/racket-minimal-backport-1629887.patch \
%D%/packages/patches/racket-minimal-sh-via-rktio.patch \
%D%/packages/patches/remake-impure-dirs.patch \
%D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch \
%D%/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch \
%D%/packages/patches/rnp-add-version.cmake.patch \
%D%/packages/patches/rnp-disable-ruby-rnp-tests.patch \
%D%/packages/patches/rnp-unbundle-googletest.patch \
%D%/packages/patches/rocm-comgr-3.1.0-dependencies.patch \
%D%/packages/patches/rocm-opencl-runtime-3.10.0-includes.patch \
%D%/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch \
%D%/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch \
%D%/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch \
%D%/packages/patches/ruby-sanitize-system-libxml.patch \
%D%/packages/patches/rust-coresimd-doctest.patch \
%D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch \
@ -1729,7 +1794,9 @@ dist_patch_DATA = \
%D%/packages/patches/tup-unbundle-dependencies.patch \
%D%/packages/patches/tuxpaint-stamps-path.patch \
%D%/packages/patches/twinkle-bcg729.patch \
%D%/packages/patches/u-boot-nintendo-nes-serial.patch \
%D%/packages/patches/u-boot-rockchip-inno-usb.patch \
%D%/packages/patches/u-boot-sifive-prevent-reloc-initrd-fdt.patch \
%D%/packages/patches/u-boot-riscv64-fix-extlinux.patch \
%D%/packages/patches/ucx-tcp-iface-ioctl.patch \
%D%/packages/patches/udiskie-no-appindicator.patch \
@ -1777,7 +1844,6 @@ dist_patch_DATA = \
%D%/packages/patches/vboot-utils-fix-format-load-address.patch \
%D%/packages/patches/vboot-utils-fix-tests-show-contents.patch \
%D%/packages/patches/vboot-utils-skip-test-workbuf.patch \
%D%/packages/patches/vigra-python-compat.patch \
%D%/packages/patches/vinagre-newer-freerdp.patch \
%D%/packages/patches/vinagre-newer-rdp-parameters.patch \
%D%/packages/patches/virglrenderer-CVE-2017-6386.patch \
@ -1812,6 +1878,7 @@ dist_patch_DATA = \
%D%/packages/patches/xfce4-panel-plugins.patch \
%D%/packages/patches/xfce4-settings-defaults.patch \
%D%/packages/patches/xmonad-dynamic-linking.patch \
%D%/packages/patches/xnnpack-system-libraries.patch \
%D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch \
%D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch \
%D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch \
@ -1822,6 +1889,7 @@ dist_patch_DATA = \
%D%/packages/patches/xsane-fix-snprintf-buffer-length.patch \
%D%/packages/patches/xsane-support-ipv6.patch \
%D%/packages/patches/xsane-tighten-default-umask.patch \
%D%/packages/patches/xygrib-fix-finding-data.patch \
%D%/packages/patches/yggdrasil-extra-config.patch \
%D%/packages/patches/ytfzf-programs.patch \
%D%/packages/patches/ytfzf-updates.patch \

View file

@ -235,7 +235,7 @@ cat > /etc/bootstrap-config.scm << EOF
(timezone \"Etc/UTC\")
(bootloader (bootloader-configuration
(bootloader grub-bootloader)
(target \"/dev/vda\")
(targets '(\"/dev/vda\"))
(terminal-outputs '(console))))
(file-systems (cons (file-system
(mount-point \"/\")

View file

@ -17,7 +17,7 @@
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au>
;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com>
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2017 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
@ -29,7 +29,7 @@
;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2019, 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019, 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
@ -43,6 +43,8 @@
;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz>
;;; Copyright © 2021 WinterHound <winterhound@yandex.com>
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;;
;;; This file is part of GNU Guix.
;;;
@ -135,11 +137,14 @@
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
#:use-module (gnu packages ruby)
#:use-module (gnu packages selinux)
#:use-module (gnu packages serialization)
#:use-module (gnu packages ssh)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages tcl)
#:use-module (gnu packages terminals)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (gnu packages web)
@ -834,6 +839,17 @@ hostname.")
#:phases
(modify-phases %standard-phases
,@(if (%current-target-system)
'((add-before 'configure 'set-runtime-shell
(lambda* (#:key inputs #:allow-other-keys)
(let ((shell (string-append
(assoc-ref inputs "bash")
"/bin/bash")))
(setenv "RUNTIME_SHELL" shell)
(substitute* "configure.ac"
(("\\$SHELL")
"$RUNTIME_SHELL"))))))
'())
(add-before 'build 'set-nscd-file-name
(lambda* (#:key inputs #:allow-other-keys)
;; Use the right file name for nscd.
@ -858,7 +874,10 @@ hostname.")
(inputs
`(,@(if (hurd-target?)
'()
`(("linux-pam" ,linux-pam)))))
`(("linux-pam" ,linux-pam)))
,@(if (%current-target-system)
`(("bash" ,bash-minimal))
'())))
(home-page "https://github.com/shadow-maint/shadow")
(synopsis "Authentication-related tools such as passwd, su, and login")
(description
@ -1248,7 +1267,11 @@ connection alive.")
"--owner=root:0"
"--group=root:0")))))
(add-after 'install 'post-install
(lambda* (#:key inputs outputs #:allow-other-keys)
;; TODO(core-updates): native-inputs isn't required anymore.
(lambda* (#:key ,@(if (%current-target-system)
'(native-inputs)
'())
inputs outputs #:allow-other-keys)
;; Install the dhclient script for GNU/Linux and make sure
;; if finds all the programs it needs.
(let* ((out (assoc-ref outputs "out"))
@ -1272,6 +1295,19 @@ connection alive.")
(string-append dir "/bin:"
dir "/sbin"))
(list inetutils net-tools coreutils sed))))
;; TODO(core-updates): should not be required anymore,
;; once <https://issues.guix.gnu.org/49290> has been merged.
,@(if (%current-target-system)
'((for-each
(lambda (file)
(substitute* file
(((assoc-ref native-inputs "bash"))
(assoc-ref inputs "bash"))))
(list (string-append libexec
"/dhclient-script")
(string-append libexec
"/.dhclient-script-real"))))
'())
#t))))))
(native-inputs
@ -1279,6 +1315,11 @@ connection alive.")
("file" ,file)))
(inputs `(("inetutils" ,inetutils)
;; TODO(core-updates): simply make this unconditional
,@(if (%current-target-system)
;; for wrap-program
`(("bash" ,(canonical-package bash-minimal)))
'())
,@(if (hurd-target?) '()
`(("net-tools" ,net-tools)
("iproute" ,iproute)))
@ -1307,6 +1348,38 @@ tools: server, client, and relay agent.")
(license license:mpl2.0)
(properties '((cpe-name . "dhcp"))))))
(define-public radvd
(package
(name "radvd")
(version "2.19")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/radvd-project/radvd")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1df827m3vkjq2bcs5y9wg2cygvpdwl8ppl446qqhyym584gz54nl"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("bison" ,bison)
("check" ,check)
("flex" ,flex)
("pkg-config" ,pkg-config)))
(arguments
`(#:configure-flags '("--with-check")))
(home-page "https://radvd.litech.org/")
(synopsis "IPv6 Router Advertisement Daemon")
(description
"The Router Advertisement Daemon (radvd) is run on systems acting as IPv6
routers. It sends Router Advertisement messages specified by RFC 2461
periodically and when requested by a node sending a Router Solicitation
message. These messages are required for IPv6 stateless autoconfiguration.")
(license (license:non-copyleft "file://COPYRIGHT"))))
(define-public libpcap
(package
(name "libpcap")
@ -1614,7 +1687,7 @@ system administrator.")
(define-public sudo
(package
(name "sudo")
(version "1.9.7p1")
(version "1.9.8")
(source (origin
(method url-fetch)
(uri
@ -1624,7 +1697,7 @@ system administrator.")
version ".tar.gz")))
(sha256
(base32
"1kyqj45nmykwj38sc5kx7mi0vf6x637hzvbd1jv22lg5aks3251r"))
"1rlln9nb3lvg4qlkp0c9qxjflx36rf16mflg0sps2kl0k7lmswzi"))
(modules '((guix build utils)))
(snippet
'(begin
@ -2088,15 +2161,15 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
(define-public acpica
(package
(name "acpica")
(version "20210604")
(version "20210730")
(source (origin
(method url-fetch)
(uri (string-append
"https://acpica.org/sites/acpica/files/acpica-unix2-"
version ".tar_0.gz"))
"https://acpica.org/sites/acpica/files/acpica-unix-"
version ".tar.gz"))
(sha256
(base32
"1wsgg6fx7bhbpfzhbpbq2r7jpmv4c4n7v0zidbh25swrz7kfgpwz"))))
"1pmm977nyl3bs71ipzcl4dh30qm8x9wm2p2ml0m62rl62kai832a"))))
(build-system gnu-build-system)
(native-inputs `(("flex" ,flex)
("bison" ,bison)))
@ -2445,40 +2518,29 @@ Statsd, Librato and InfluxDB. Graphios can emit Nagios metrics to any number
of supported upstream metrics systems simultaneously.")
(license license:gpl2+)))
(define-public ansible
(define-public ansible-core
(package
(name "ansible")
(version "2.9.18")
(name "ansible-core")
(version "2.11.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ansible" version))
(uri (pypi-uri "ansible-core" version))
(sha256
(base32 "0g6rsnh02zq5nizamgakl2wvgz7hk1lpnjn9akldrcpa55vygzjm"))))
(base32
"0jgahcv2pyc5ky0wir55a1h9q9d6rgqj60rqmvlpbj76vz1agsi2"))))
(build-system python-build-system)
(native-inputs
`(("python-bcrypt" ,python-bcrypt)
("python-pynacl" ,python-pynacl)
("python-httplib2" ,python-httplib2)
("python-passlib" ,python-passlib)
("python-nose" ,python-nose)
("python-mock" ,python-mock)
("python-jinja2" ,python-jinja2)
("python-pyyaml" ,python-pyyaml)
("python-paramiko" ,python-paramiko)))
(inputs
`(("python-cryptography" ,python-cryptography)
("python-jinja2" ,python-jinja2)
("python-pyyaml" ,python-pyyaml)
("python-paramiko" ,python-paramiko)))
(arguments
`(#:phases
`(#:modules ((guix build python-build-system)
(guix build utils)
(ice-9 ftw))
#:phases
(modify-phases %standard-phases
;; Several ansible commands (ansible-config, ansible-console, etc.)
;; are just symlinks to a single ansible executable. The ansible
;; executable behaves differently based on the value of
;; sys.argv[0]. This does not work well with our wrap phase, and
;; therefore the following two phases are required as a workaround.
;; executable behaves differently based on the value of sys.argv[0].
;; This does not work well with our wrap phase, and therefore the
;; following two phases are required as a workaround.
(add-after 'unpack 'hide-wrapping
(lambda _
;; Overwrite sys.argv[0] to hide the wrapper script from it.
@ -2487,27 +2549,138 @@ of supported upstream metrics systems simultaneously.")
(string-append all "
import re
sys.argv[0] = re.sub(r'\\.([^/]*)-real$', r'\\1', sys.argv[0])
")))
#t))
")))))
(add-after 'install 'replace-symlinks
(lambda* (#:key outputs #:allow-other-keys)
;; Replace symlinks with duplicate copies of the ansible
;; executable.
(let ((out (assoc-ref outputs "out")))
;; executable so that sys.argv[0] has the correct value.
(define bin (string-append (assoc-ref outputs "out") "/bin"))
(with-directory-excursion bin
(for-each
(lambda (subprogram)
(delete-file (string-append out "/bin/ansible-" subprogram))
(copy-file (string-append out "/bin/ansible")
(string-append out "/bin/ansible-" subprogram)))
(list "config" "console" "doc" "galaxy"
"inventory" "playbook" "pull" "vault")))
#t)))))
(lambda (ansible-symlink)
(delete-file ansible-symlink)
(copy-file "ansible" ansible-symlink))
(scandir "." (lambda (x)
(and (eq? 'symlink (stat:type (lstat x)))
(string-prefix? "ansible-" x)
(string=? "ansible" (readlink x)))))))))
(add-after 'unpack 'preserve-pythonpath
(lambda _
(substitute* "test/lib/ansible_test/_internal/ansible_util.py"
(("PYTHONPATH=get_ansible_python_path\\(args\\)" all)
(string-append all "+ ':' + os.environ['PYTHONPATH']")))))
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
(substitute* "lib/ansible/module_utils/compat/selinux.py"
(("libselinux.so.1" name)
(string-append (assoc-ref inputs "libselinux")
"/lib/" name)))
(substitute* "test/units/modules/test_async_wrapper.py"
(("/usr/bin/python")
(which "python")))))
(replace 'check
;; The environment for the test suite can be tricky to get right.
;; The environment used for Ansible's CI defined in the following
;; Dockerfile can be used as a reference:
;; https://raw.githubusercontent.com/ansible/
;; default-test-container/master/Dockerfile.
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
;; Otherwise Ansible fails to create its config directory.
(setenv "HOME" "/tmp")
(setenv "PATH" (string-append (getenv "PATH") ":"
(assoc-ref outputs "out") "/bin"))
(add-installed-pythonpath inputs outputs)
;; This test module messes up with sys.path and causes many
;; test failures.
(delete-file "test/units/_vendor/test_vendor.py")
;; The test fails when run in the container, for reasons
;; unknown.
(delete-file "test/units/utils/test_display.py")
;; This test fail for reasons unknown.
(delete-file "test/units/cli/test_adhoc.py")
;; The test suite needs to be run with 'ansible-test', which
;; does some extra environment setup. Taken from
;; https://raw.githubusercontent.com/ansible/ansible/\
;; devel/test/utils/shippable/shippable.sh.
(invoke "ansible-test" "units" "-v")))))))
(native-inputs
`(("openssh" ,openssh)
("openssl" ,openssl)
("python-mock" ,python-mock)
("python-pycrypto" ,python-pycrypto)
("python-pytest" ,python-pytest)
("python-pytest-forked" ,python-pytest-forked)
("python-pytest-mock" ,python-pytest-mock)
("python-pytest-xdist" ,python-pytest-xdist)
("python-pytz" ,python-pytz)))
(inputs ;optional dependencies captured in wrap scripts
`(("libselinux" ,libselinux)
("python-paramiko" ,python-paramiko)
("python-passlib" ,python-passlib)
("python-pexpect" ,python-pexpect)
("sshpass" ,sshpass)))
(propagated-inputs ;core dependencies listed in egg-info/requires.txt
`(("python-cryptography" ,python-cryptography)
("python-jinja2" ,python-jinja2)
("python-pyyaml" ,python-pyyaml)
("python-packaging" ,python-packaging) ;for version number parsing
("python-resolvelib" ,python-resolvelib-0.5)))
(home-page "https://www.ansible.com/")
(synopsis "Radically simple IT automation")
(description "Ansible is a radically simple IT automation system. It
handles configuration management, application deployment, cloud provisioning,
ad hoc task execution, and multinode orchestration---including trivializing
things like zero-downtime rolling updates with load balancers.")
(description "Ansible aims to be a radically simple IT automation system.
It handles configuration management, application deployment, cloud
provisioning, ad-hoc task execution, network automation, and multi-node
orchestration. Ansible facilitates complex changes like zero-downtime rolling
updates with load balancers. This package is the core of Ansible, which
provides the following commands:
@itemize
@item ansible
@item ansible-config
@item ansible-connection
@item ansible-console
@item ansible-doc
@item ansible-galaxy
@item ansible-inventory
@item ansible-playbook
@item ansible-pull
@item ansible-test
@item ansible-vault
@end itemize")
(license license:gpl3+)))
(define-public ansible
(package
(name "ansible")
(version "4.4.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ansible" version))
(sha256
(base32 "031n22j0lsmh69x6i6gkva81j68b4yzh1pbg3q2h4bknl85q46ag"))))
(build-system python-build-system)
(propagated-inputs
`(("ansible-core" ,ansible-core)))
;; The Ansible collections are found by ansible-core via PYTHONPATH; the
;; following search path ensures that they are found even when Python is
;; not present in the profile.
(native-search-paths
;; XXX: Attempting to use (package-native-search-paths python)
;; here would cause an error about python being an unbound
;; variable in the tests/cpan.scm test.
(list (search-path-specification
(variable "PYTHONPATH")
(files (list "lib/python3.8/site-packages")))))
(home-page "https://www.ansible.com/")
(synopsis "Radically simple IT automation")
(description "Ansible aims to be a radically simple IT automation system.
It handles configuration management, application deployment, cloud
provisioning, ad-hoc task execution, network automation, and multi-node
orchestration. Ansible facilitates complex changes like zero-downtime rolling
updates with load balancers. This package provides a curated set of
community-maintained Ansible collections, which contain playbooks, roles,
modules and plugins that extend Ansible.")
(license license:gpl3+)))
(define-public debops
@ -2839,13 +3012,13 @@ platform-specific methods.")
(package
(name "audit")
(home-page "https://people.redhat.com/sgrubb/audit/")
(version "2.8.5")
(version "3.0.4")
(source (origin
(method url-fetch)
(uri (string-append home-page "audit-" version ".tar.gz"))
(sha256
(base32
"1dzcwb2q78q7x41shcachn7f4aksxbxd470yk38zh03fch1l2p8f"))))
"1xlcvc2g7qrbnin5pw0bacalva5ldjw97yi6nr17g0yjp4jyhnlc"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list "--with-python=no"
@ -3369,7 +3542,7 @@ buffers.")
(define-public igt-gpu-tools
(package
(name "igt-gpu-tools")
(version "1.25")
(version "1.26")
(source
(origin
(method git-fetch)
@ -3378,7 +3551,7 @@ buffers.")
(commit (string-append "igt-gpu-tools-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1lvhkdhilw0fn4nzkpfwvrhiv8d92h811qs2v6ac3p5w7v86a9zm"))))
(base32 "0m124pqv7zna25jnvk566c4kk628jr0w8mgnp8mr5xqz9cprgczm"))))
(build-system meson-build-system)
(arguments
`(#:tests? #f)) ; many of the tests try to load kernel modules
@ -3408,52 +3581,6 @@ Intel DRM Driver.")
(supported-systems '("i686-linux" "x86_64-linux"))
(license license:expat)))
(define-public fabric
(package
(name "fabric")
(version "1.14.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Fabric" version))
(sha256
(base32
"1a3ndlpdw6bhn8fcw1jgznl117a8pnr84az9rb5fwnrypf1ph2b6"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2 ; Python 2 only
#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(invoke
"nosetests" "-v" "tests/"
;; This test hangs indefinitely when run on a single core VM
;; (see GNU bug #26647 and Debian bug #850230).
"--exclude=test_nested_execution_with_explicit_ports"
;; This test randomly fails in certain environments causing too
;; much noise to be useful (see Debian bug #854686).
"--exclude=test_should_use_sentinel_for_tasks_that_errored"))))))
(native-inputs
`(("python2-fudge" ,python2-fudge) ; Requires < 1.0
("python2-jinja2" ,python2-jinja2) ; Requires < 3.0
("python2-nose" ,python2-nose) ; Requires < 2.0
("python2-pynacl" ,python2-pynacl)
("python2-bcrypt" ,python2-bcrypt)))
(propagated-inputs
`(("python2-paramiko" ,python2-paramiko)))
(home-page "https://www.fabfile.org/")
(synopsis "Simple Pythonic remote execution and deployment tool")
(description
"Fabric is designed to upload files and run shell commands on a number of
servers in parallel or serially. These commands are grouped in tasks (which
are regular Python functions) and specified in a @dfn{fabfile}.
It is similar to Capistrano, except it's implemented in Python and doesn't
expect you to be deploying Rails applications. Fabric is a simple, Pythonic
tool for remote execution and deployment.")
(license license:bsd-2)))
(define-public neofetch
(package
(name "neofetch")
@ -3860,7 +3987,7 @@ Python loading in HPC environments.")
(let ((real-name "inxi"))
(package
(name "inxi-minimal")
(version "3.3.04-1")
(version "3.3.06-1")
(source
(origin
(method git-fetch)
@ -3869,7 +3996,7 @@ Python loading in HPC environments.")
(commit version)))
(file-name (git-file-name real-name version))
(sha256
(base32 "1rrhycp8i43yf9wi80n4pq2hkfhvb2rg1srz8if28bh6fhhasjzw"))))
(base32 "1qk40iyrdp52vmbiqwxicvlcycm2v2bf1gg4lzq0b4619sd6d1m7"))))
(build-system trivial-build-system)
(inputs
`(("bash" ,bash-minimal)
@ -4441,14 +4568,14 @@ Netgear devices.")
(define-public atop
(package
(name "atop")
(version "2.5.0")
(version "2.6.0")
(source (origin
(method url-fetch)
(uri (string-append "https://www.atoptool.nl/download/atop-"
version ".tar.gz"))
(sha256
(base32
"0crzz4i2nabyh7d6xg7fvl65qls87nbca5ihidp3nijhrrbi14ab"))))
"0wlg0n0h9vwpjp2dcb623jvvqck422jrjpq9mbpzg4hnawxcmhly"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no test suite
@ -4640,3 +4767,49 @@ the XMODEM/YMODEM/ZMODEM file transfer protocols.")
setup, maintenance, supervision, or any long-running processes.")
(home-page "https://github.com/leahneukirchen/nq")
(license license:public-domain)))
(define-public lsofgraph
(let ((commit "1d414bdc727c00a8c6cbfffc3c43128c60d6f0de")
(revision "1"))
(package
(name "lsofgraph")
(version (git-version "0.0.1" revision commit)) ;no upstream release
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/zevv/lsofgraph")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"058x04yp6bc77hbl3qchqm7pa8f9vqfl9jryr88m8pzl7kvpif54"))))
(build-system trivial-build-system)
(inputs
`(("lua" ,lua)))
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
;; copy source
(copy-recursively (assoc-ref %build-inputs "source") ".")
;; patch-shebang phase
(setenv "PATH"
(string-append (assoc-ref %build-inputs "lua") "/bin"
":" (getenv "PATH")))
(substitute* "lsofgraph"
(("#!/usr/bin/env lua")
(string-append "#!" (which "lua"))))
;; install phase
(install-file "lsofgraph" (string-append %output "/bin"))
(let ((doc (string-append
%output "/share/doc/" ,name "-" ,version)))
(mkdir-p doc)
(install-file "LICENSE" doc)
(install-file "README.md" doc))
#t)))
(home-page "https://github.com/zevv/lsofgraph")
(synopsis "Convert @code{lsof} output to @code{graphviz}")
(description "Utility to convert @code{lsof} output to a graph showing
FIFO and UNIX interprocess communication.")
(license license:bsd-2))))

View file

@ -3,7 +3,7 @@
;;; Copyright © 2013, 2015, 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 20172021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
@ -78,7 +78,7 @@
(define-public mpfrcx
(package
(name "mpfrcx")
(version "0.6.2")
(version "0.6.3")
(source (origin
(method url-fetch)
(uri (string-append
@ -86,7 +86,7 @@
version ".tar.gz"))
(sha256
(base32
"165syd6kihwp6bry9hvr3v0908cgadsz5w5h5ry4mjnchrklnb7w"))))
"1545vgizpypqi2rrriad0ybqv0qwbn9zr0ibxpk00gha9ihv7acx"))))
(build-system gnu-build-system)
(propagated-inputs
`(("gmp" ,gmp)
@ -237,7 +237,7 @@ the real span of the lattice.")
(define-public pari-gp
(package
(name "pari-gp")
(version "2.13.1")
(version "2.13.2")
(source (origin
(method url-fetch)
(uri (string-append
@ -245,7 +245,7 @@ the real span of the lattice.")
version ".tar.gz"))
(sha256
(base32
"1cgwdpw8b797883z9y92ixxjkv72kiy65zsw2qqf5and1kbzgv41"))))
"095s7vdlsxmxa0n0l1a082m6gjaypqfqkaj99z8j7dx0ji89hy8n"))))
(build-system gnu-build-system)
(native-inputs
`(("texlive" ,(texlive-updmap.cfg
@ -343,7 +343,7 @@ precision.")
(define-public giac
(package
(name "giac")
(version "1.7.0-17")
(version "1.7.0-31")
(source
(origin
(method url-fetch)
@ -355,7 +355,7 @@ precision.")
"~parisse/debian/dists/stable/main/source/"
"giac_" version ".tar.gz"))
(sha256
(base32 "0yh556wlgs9hfyp5j2xz4nlrd2dma63cicrc3dhahyl96y1aw6mr"))))
(base32 "19vjyijlm3hb758h6nk70k41zw9wrbg6vwfx4r4rgvrb1myy5kpl"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((ice-9 ftw)
@ -368,14 +368,12 @@ precision.")
(lambda _
(substitute* (cons "micropython-1.12/xcas/Makefile"
(find-files "doc" "^Makefile"))
(("/bin/cp") (which "cp")))
#t))
(("/bin/cp") (which "cp")))))
(add-after 'unpack 'disable-failing-test
;; FIXME: Test failing. Not sure why.
(lambda _
(substitute* "check/Makefile.in"
(("chk_fhan11") ""))
#t))
(("chk_fhan11") ""))))
(add-after 'install 'fix-doc
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
@ -388,13 +386,11 @@ precision.")
;; Remove duplicate documentation in
;; "%out/share/doc/giac/", where Xcas does not expect
;; to find it.
(delete-file-recursively (string-append out "/share/doc/giac"))
#t)))
(delete-file-recursively (string-append out "/share/doc/giac")))))
(add-after 'install 'remove-unnecessary-executable
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(delete-file (string-append out "/bin/xcasnew"))
#t))))))
(delete-file (string-append out "/bin/xcasnew"))))))))
(inputs
;; TODO: Add libnauty, unbundle "libmicropython.a".
`(("fltk" ,fltk)
@ -1075,6 +1071,33 @@ features, and more.")
"# Do not build the tests for unsupported features.\n"))
#t)))))))
(define-public eigen-for-tensorflow-lite
;; This commit was taken from
;; tensorflow/lite/tools/cmake/modules/eigen.cmake
(let ((commit "d10b27fe37736d2944630ecd7557cefa95cf87c9")
(revision "1"))
(package (inherit eigen)
(name "eigen-for-tensorflow-lite")
(version (git-version "3.3.7" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/libeigen/eigen")
(commit commit)))
(sha256
(base32
"0v8a20cwvwmp3hw4275b37frw33v92z0mr8f4dn6y8k0rz92hrrf"))
(file-name (git-file-name name version))
(modules '((guix build utils)))
(snippet
;; Ther are test failures in the "unsupported" directory, but
;; maintainers say it's unsupported anyway, so just skip
;; them.
'(begin
(substitute* "unsupported/CMakeLists.txt"
(("add_subdirectory\\(test.*")
"# Do not build the tests for unsupported features.\n")))))))))
(define-public xtensor
(package
(name "xtensor")

View file

@ -11,6 +11,7 @@
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Sergey Trofimov <sarg@sarg.org.ru>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -30,6 +31,7 @@
(define-module (gnu packages android)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix build-system android-ndk)
#:use-module (guix build-system gnu)
@ -148,6 +150,7 @@ use their packages mostly unmodified in our Android NDK build system.")
"libutils-remove-damaging-includes.patch"
"libutils-add-includes.patch"
"adb-add-libraries.patch"
"adb-libssl_11-compatibility.patch"
"libziparchive-add-includes.patch"))))
(define (android-platform-system-extras version)
@ -360,10 +363,12 @@ various Android core host applications.")
(arguments
`(#:tests? #f ; Test failure: sysdeps_poll.fd_count
#:make-flags
(list "CFLAGS=-Wno-error"
,#~(list
"CFLAGS=-Wno-error"
"CXXFLAGS=-fpermissive -Wno-error -std=gnu++14 -D_Nonnull= -D_Nullable= -I ."
(string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib "
"-Wl,-rpath=" (assoc-ref %build-inputs "openssl") "/lib -L ."))
(string-append
"LDFLAGS=-Wl,-rpath=" #$output "/lib "
"-Wl,-rpath=" #$(this-package-input "openssl") "/lib -L ."))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-source
@ -388,7 +393,7 @@ various Android core host applications.")
`(("android-libbase" ,android-libbase)
("android-libcutils" ,android-libcutils)
("android-liblog" ,android-liblog)
("openssl" ,openssl-1.0)))
("openssl" ,openssl)))
(home-page "https://developer.android.com/studio/command-line/adb.html")
(synopsis "Android Debug Bridge")
(description
@ -530,29 +535,25 @@ the core SELinux management utilities.")
(build-system android-ndk-build-system)
(arguments
`(#:make-flags
(list (string-append "CPPFLAGS="
,#~(list
(string-append
"CPPFLAGS="
;"-Wno-error "
"-I "
(assoc-ref %build-inputs "android-libselinux")
"/include "
"-I " (assoc-ref %build-inputs "android-libsparse")
"/include "
"-I " (assoc-ref %build-inputs "android-libcutils")
"/include "
"-I " (assoc-ref %build-inputs "android-liblog") "/include "
"-I " #$(this-package-input "android-libselinux") "/include "
"-I " #$(this-package-input "android-libsparse") "/include "
"-I " #$(this-package-input "android-libcutils") "/include "
"-I " #$(this-package-input "android-liblog") "/include "
"-I ../core/include")
"CFLAGS=-Wno-error"
"install-libext4_utils_host.a"
(string-append "prefix=" (assoc-ref %outputs "out")))
(string-append "prefix=" #$output))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'unpack-core
(lambda* (#:key inputs #:allow-other-keys)
(mkdir-p "core")
(with-directory-excursion "core"
(invoke "tar" "axf" (assoc-ref inputs "android-core")
"--strip-components=1"))
#t))
(copy-recursively (assoc-ref inputs "android-core")
"core")))
(add-after 'unpack-core 'enter-source
(lambda _ (chdir "ext4_utils") #t))
(replace 'install
@ -585,6 +586,9 @@ Android core.")
(modify-phases %standard-phases
(add-after 'unpack 'enter-source
(lambda _ (chdir "f2fs_utils") #t))
(add-before 'build 'set-compilation-flags
(lambda _
(setenv "CFLAGS" "-fcommon")))
(add-after 'install 'install-headers
(lambda* (#:key inputs outputs #:allow-other-keys)
(copy-recursively "." (string-append (assoc-ref outputs "out")

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 L p R n d n <guix@lprndn.info>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -65,7 +66,8 @@
(base32 "1pd0avlzc2rig1hd37zbhc7r2s6fjzdhshfg9l9cfzibl7caclyw"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DVIDEO_PLATFORM=egl-dri" "-DBUILTIN_LUA=off"
`(#:configure-flags '("-DCMAKE_C_FLAGS=-fcommon"
"-DVIDEO_PLATFORM=egl-dri" "-DBUILTIN_LUA=off"
"-DSTATIC_OPENAL=off""-DENABLE_LWA=on"
"-DSTATIC_SQLITE3=off" "-DSTATIC_FREETYPE=off"
"-DSHMIF_TUI_ACCEL=on")
@ -176,7 +178,8 @@ engine programmable using Lua.")
`(,@(ensure-keyword-arguments
(package-arguments arcan)
'(#:configure-flags
'("-DVIDEO_PLATFORM=sdl" "-DBUILTIN_LUA=off"
'("-DCMAKE_C_FLAGS=-fcommon"
"-DVIDEO_PLATFORM=sdl" "-DBUILTIN_LUA=off"
"-DSTATIC_OPENAL=off" "-DDISABLE_JIT=off"
"-DENABLE_LWA=on" "-DSTATIC_SQLITE3=off"
"-DSTATIC_FREETYPE=off" "-DSHMIF_TUI_ACCEL=on")))))

View file

@ -7,9 +7,10 @@
;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com>
;;; Copyright © 2019 Andy Tai <atai@atai.org>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Christopher Lemmer Webber <cwebber@dustycloud.org>
;;; Copyright © 2020 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -140,6 +141,9 @@ debugging information in STABS, DWARF 2, and CodeView 8 formats.")
"1jgxbq2cm51dzi3zhz38mmgwdcgs328mfl8iviw8dxn6dn36p1gd"))))
(build-system gnu-build-system)
(native-inputs `(("zlib" ,zlib)))
(arguments
;; Some tests fail when run in parallel.
`(#:parallel-tests? #f))
(synopsis "Library for generating assembly code at runtime")
(description
"GNU Lightning is a library that generates assembly language code at

View file

@ -773,7 +773,8 @@ Mercator, Mollweide, Peters, polyconic, orthographic and rectangular.")
("goocanvas" ,goocanvas)
("gtk+" ,gtk+)))
(arguments
`(#:phases
`(#:configure-flags '("CFLAGS=-fcommon")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-tests
(lambda _

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2012, 2013, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012, 2013, 2016, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
;;;
@ -23,6 +23,7 @@
#:use-module (guix licenses)
#:use-module (gnu packages perl)
#:use-module (gnu packages gettext)
#:use-module (gnu packages hurd)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu))
@ -42,6 +43,17 @@
(arguments
`(#:phases
(modify-phases %standard-phases
,@(if (hurd-target?)
`((add-before 'configure 'skip-linux-syscalls
(lambda _
;; Starting from 2.5.1, libattr includes Linux-specific
;; calls to syscall(2). Comment them out for GNU/Hurd
;; and instead use the glibc-provided wrappers.
(substitute* "Makefile.in"
(("libattr/syscalls\\.c") "")
(("\tlibattr/la-syscalls\\.lo") "")
(("-Wl,[[:graph:]]+/libattr\\.lds") "")))))
'())
(replace 'check
(lambda* (#:key target #:allow-other-keys)
;; Use the right shell.

View file

@ -24,7 +24,7 @@
;;; Copyright © 2019, 2021 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019, 2020 Alexandros Theodotou <alex@zrythm.org>
;;; Copyright © 2019 Christopher Lemmer Webber <cwebber@dustycloud.org>
;;; Copyright © 2019 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
;;; Copyright © 2019 Hartmt Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2019, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
@ -571,7 +571,7 @@ streams from live audio.")
(define-public ardour
(package
(name "ardour")
(version "6.6")
(version "6.8")
(source (origin
(method git-fetch)
(uri (git-reference
@ -589,7 +589,7 @@ namespace ARDOUR { const char* revision = \"" version "\" ; const char* date = \
#t)))
(sha256
(base32
"0k5rxh8b3d8si3lj01gfqj0pmd448d8sj4asnb205mwhwbfgn0cp"))
"16x7bkzbrk0rgywq5vrkhf2z3jj08jw1bvaq9vwlf2b4h4sd7i4s"))
(file-name (string-append name "-" version))))
(build-system waf-build-system)
(arguments
@ -2829,14 +2829,14 @@ different audio devices such as ALSA or PulseAudio.")
(define-public qjackctl
(package
(name "qjackctl")
(version "0.9.3")
(version "0.9.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
version "/qjackctl-" version ".tar.gz"))
(sha256
(base32
"065x66rr1mb2bkqr88l50rcn5c8rsiq4hp5hrlyqqg46371gzhp9"))))
"186rg3j67rac9ds1r7gnrib2d0smgv15cmr5gwb7v83mywcp1gzy"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f)) ; no check target
@ -4914,7 +4914,7 @@ in the package.")
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.zrythm.org/git/libaudec")
(url "https://git.zrythm.org/zrythm/libaudec")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@ -4934,7 +4934,7 @@ in the package.")
(description "libaudec is a wrapper library over ffmpeg, sndfile and
libsamplerate for reading and resampling audio files, based on Robin Gareus'
@code{audio_decoder} code.")
(home-page "https://git.zrythm.org/cgit/libaudec")
(home-page "https://git.zrythm.org/zrythm/libaudec")
(license license:agpl3+)))
(define-public lv2lint
@ -5013,7 +5013,7 @@ with the provided metadata and adhere to well-known best practices.")
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.zrythm.org/git/ztoolkit")
(url "https://git.zrythm.org/zrythm/ztoolkit")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@ -5034,7 +5034,7 @@ the user and provides a high-level API for managing the UI and custom
widgets. ZToolkit is written in C and was created to be used for building
audio plugin UIs, where the dependencies often need to be kept to a
minimum.")
(home-page "https://git.zrythm.org/cgit/ztoolkit/")
(home-page "https://git.zrythm.org/zrythm/ztoolkit")
(license license:agpl3+)))
(define-public libinstpatch
@ -5277,14 +5277,14 @@ while still staying in time.")
(define-public butt
(package
(name "butt")
(version "0.1.30")
(version "0.1.31")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/butt/butt/butt-"
version "/butt-" version ".tar.gz"))
(sha256
(base32
"1dfspdh3f18lpp7asxpj63b9zfpvazi7shgrdacg17gd42ycayq5"))
"19zvdi5vr6vqnrpc60jir7550nz9a5x1c61lh13355cdny2zp28z"))
(modules '((guix build utils)))
(snippet
'(substitute* "src/butt.cpp"
@ -5325,7 +5325,7 @@ while still staying in time.")
version "_manual.pdf"))
(sha256
(base32
"1w3krh7f2v5vdz18hqycnpn0qv1x6xl6pa1najgp4jbfisjc1mn8"))))))
"0a0kgd069whfp1v8xgw6qm67w02n8b7b4h5ay5665wgq947hxanp"))))))
(home-page "https://danielnoethen.de/butt/")
(synopsis "Audio streaming tool")
(description "Butt is a tool to stream audio to a ShoutCast or

View file

@ -132,7 +132,18 @@ know anything about Autoconf or M4.")
(find-files "bin"
(lambda (file stat)
(executable-file? file)))))
#t))))))))
#t))
(add-after 'install 'unpatch-shebangs
(lambda* (#:key outputs #:allow-other-keys)
;; Scripts that "autoconf -i" installs (config.guess,
;; config.sub, and install-sh) must use a regular shebang
;; rather than a reference to the store. Restore it.
;; TODO: Move this phase to 'autoconf-2.69'.
(let* ((out (assoc-ref outputs "out"))
(build-aux (string-append
out "/share/autoconf/build-aux")))
(substitute* (find-files build-aux)
(("^#!.*/bin/sh") "#!/bin/sh")))))))))))
(define-public autoconf autoconf-2.69)

View file

@ -10612,7 +10612,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
# CONFIG_UPROBE_EVENTS is not set
CONFIG_UPROBE_EVENTS=y
CONFIG_BPF_EVENTS=y
CONFIG_DYNAMIC_EVENTS=y
CONFIG_PROBE_EVENTS=y

View file

@ -10620,7 +10620,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
# CONFIG_UPROBE_EVENTS is not set
CONFIG_UPROBE_EVENTS=y
CONFIG_BPF_EVENTS=y
CONFIG_DYNAMIC_EVENTS=y
CONFIG_PROBE_EVENTS=y

View file

@ -10765,7 +10765,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
# CONFIG_UPROBE_EVENTS is not set
CONFIG_UPROBE_EVENTS=y
CONFIG_BPF_EVENTS=y
CONFIG_DYNAMIC_EVENTS=y
CONFIG_PROBE_EVENTS=y

View file

@ -10831,7 +10831,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
# CONFIG_UPROBE_EVENTS is not set
CONFIG_UPROBE_EVENTS=y
CONFIG_BPF_EVENTS=y
CONFIG_DYNAMIC_EVENTS=y
CONFIG_PROBE_EVENTS=y

View file

@ -10214,7 +10214,7 @@ CONFIG_STACK_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
# CONFIG_UPROBE_EVENTS is not set
CONFIG_UPROBE_EVENTS=y
CONFIG_BPF_EVENTS=y
CONFIG_DYNAMIC_EVENTS=y
CONFIG_PROBE_EVENTS=y

View file

@ -10164,7 +10164,7 @@ CONFIG_STACK_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
# CONFIG_UPROBE_EVENTS is not set
CONFIG_UPROBE_EVENTS=y
CONFIG_BPF_EVENTS=y
CONFIG_DYNAMIC_EVENTS=y
CONFIG_PROBE_EVENTS=y

View file

@ -51,7 +51,7 @@ for dist in ws:
# Try to load top level modules. This should not have any side-effects.
try:
metalines = dist.get_metadata_lines('top_level.txt')
except (KeyError, FileNotFoundError):
except (KeyError, EnvironmentError):
# distutils (i.e. #:use-setuptools? #f) will not install any metadata.
# This file is also missing for packages built using a PEP 517 builder
# such as poetry.

View file

@ -3,6 +3,7 @@
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;;
;;; This file is part of GNU Guix.
;;;
@ -22,9 +23,11 @@
(define-module (gnu packages avahi)
#:use-module ((guix licenses) #:select (lgpl2.1+))
#:use-module (guix packages)
#:use-module (guix gexp)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages bash)
#:use-module (gnu packages dbm)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
@ -58,7 +61,7 @@
#t))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--with-distro=none"
`(#:configure-flags '("--with-distro=none"
"--disable-static"
"--localstatedir=/var" ; for the DBus socket
"--disable-python"
@ -68,9 +71,31 @@
"--enable-tests"
"--disable-qt4" "--disable-qt5"
"--disable-gtk" "--disable-gtk3"
"--enable-compat-libdns_sd")))
"--enable-compat-libdns_sd"
,@(if (%current-target-system)
'("ac_cv_prog_have_pkg_config=yes")
'()))
;; TODO(core-updates): Make this unconditional.
,@(if (%current-target-system)
`(#:modules ((srfi srfi-26)
(guix build utils)
(guix build gnu-build-system))
#:phases
,#~(modify-phases %standard-phases
(add-after 'patch-shebangs 'patch-more-shebangs
(lambda* (#:key inputs #:allow-other-keys)
(define path
`(,(dirname (search-input-file inputs "bin/sh"))))
(for-each
(cut patch-shebang <> path)
(find-files (string-append #$output "/etc/avahi")))))))
'())))
(inputs
`(("dbus" ,dbus)
;; TODO(core-updates): Make this input unconditional.
`(,@(if (%current-target-system)
`(("bash-minimal" ,bash-minimal))
'())
("dbus" ,dbus)
("expat" ,expat)
("gdbm" ,gdbm)
("glib" ,glib)

View file

@ -6,8 +6,8 @@
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
@ -20,6 +20,7 @@
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2021 Timothy Sample <samplet@ngyro.com>
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;;
;;; This file is part of GNU Guix.
;;;
@ -104,6 +105,7 @@
("par2cmdline" ,par2cmdline)
("python-fasteners" ,python-fasteners)
("python-future" ,python-future) ; for tests
("python-paramiko" ,python-paramiko)
("python-pexpect" ,python-pexpect)
("python-pytest" ,python-pytest)
("python-pytest-runner" ,python-pytest-runner)
@ -576,24 +578,23 @@ rsnapshot uses hard links to deduplicate identical files.")
(substitute* "configure"
(("GUILE=(.*)--variable bindir`" _ middle)
(string-append "GUILE=" middle
"--variable bindir`/guile")))
#t))
"--variable bindir`/guile")))))
(add-before 'build 'set-libtirpc-include-path
(lambda* (#:key inputs #:allow-other-keys)
;; Allow <rpc/rpc.h> & co. to be found.
(let ((libtirpc (assoc-ref inputs "libtirpc")))
(let ((tirpc (string-append (assoc-ref inputs "libtirpc")
"/include/tirpc")))
(if (getenv "CPATH")
(setenv "CPATH"
(string-append (getenv "CPATH")
":" libtirpc
"/include/tirpc"))
#t)))
":" tirpc))
(setenv "CPATH" tirpc)))))
(add-before 'check 'skip-test
(lambda _
;; XXX: This test fails (1) because current GnuTLS no
;; longer supports OpenPGP authentication, and (2) for
;; some obscure reason. Better skip it.
(setenv "XFAIL_TESTS" "utils/block-server")
#t)))))
(setenv "XFAIL_TESTS" "utils/block-server"))))))
(native-inputs
`(("guile" ,guile-2.0)
("gperf" ,gperf-3.0) ;see <https://bugs.gnu.org/32382>
@ -657,12 +658,7 @@ detection, and lossless compression.")
;; Remove bundled shared libraries.
(with-directory-excursion "src/borg/algorithms"
(for-each delete-file-recursively
(list "blake2" "lz4" "msgpack" "zstd")))
;; Purge some msgpack references from setup.py or the resulting
;; sources will be unbuildable.
(substitute* "setup.py"
((".*Extension\\('borg\\.algorithms\\.msgpack\\..*") "")
(("msgpack_packer_source, msgpack_unpacker_source") ""))
(list "blake2" "lz4" "zstd")))
#t))))
(build-system python-build-system)
(arguments
@ -686,12 +682,6 @@ detection, and lossless compression.")
;; HOME=/homeless-shelter.
(setenv "HOME" "/tmp")
#t)))
(add-after 'unpack 'use-system-msgpack
(lambda _
(substitute* "src/borg/helpers.py"
(("prefer_system_msgpack = False")
"prefer_system_msgpack = True"))
#t))
;; The tests need to be run after Borg is installed.
(delete 'check)
(add-after 'install 'check
@ -755,10 +745,6 @@ detection, and lossless compression.")
("lz4" ,lz4)
("openssl" ,openssl)
("python-llfuse" ,python-llfuse)
;; The Python msgpack library changed its name so Borg requires this
;; transitional package for now:
;; <https://bugs.gnu.org/30662>
("python-msgpack" ,python-msgpack-transitional)
("zstd" ,zstd "lib")))
(synopsis "Deduplicated, encrypted, authenticated and compressed backups")
(description "Borg is a deduplicating backup program. Optionally, it
@ -927,7 +913,9 @@ is like a time machine for your data. ")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1zmh42aah32ah8w5n6ilz9bci0y2xrf8p7qshy3yf1lzm5gnbj0w"))))
"1zmh42aah32ah8w5n6ilz9bci0y2xrf8p7qshy3yf1lzm5gnbj0w"))
(patches
(search-patches "restic-0.9.6-fix-tests-for-go1.15.patch"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/restic/restic"
@ -944,11 +932,12 @@ is like a time machine for your data. ")
(invoke "go" "run" "build.go"))))
(replace 'check
(lambda _
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(with-directory-excursion "src/github.com/restic/restic"
;; Disable FUSE tests.
(setenv "RESTIC_TEST_FUSE" "0")
(invoke "go" "run" "build.go" "--test"))))
(invoke "go" "run" "build.go" "--test")))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)

View file

@ -18,6 +18,7 @@
;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -494,7 +495,7 @@ change. GNU make offers many powerful extensions over the standard utility.")
(base32
"12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn"))))
(arguments
`(#:configure-flags '("CFLAGS=-D__alloca=alloca")
`(#:configure-flags '("CFLAGS=-D__alloca=alloca -D__stat=stat")
#:phases
(modify-phases %standard-phases
(add-before 'build 'set-default-shell
@ -510,14 +511,15 @@ change. GNU make offers many powerful extensions over the standard utility.")
(package
(name "binutils")
(version "2.37")
(source (origin
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/binutils/binutils-"
version ".tar.bz2"))
(sha256
(base32
"1m3b2rdfv1dmdpd0bzg1hy7i8a2qng53szc6livyi3nh6101mz37"))
(patches (search-patches "binutils-loongson-workaround.patch"))))
(base32 "1m3b2rdfv1dmdpd0bzg1hy7i8a2qng53szc6livyi3nh6101mz37"))
(patches (search-patches "binutils-loongson-workaround.patch"
"binutils-2.37-file-descriptor-leak.patch"))))
(build-system gnu-build-system)
;; TODO: Add dependency on zlib + those for Gold.
@ -944,6 +946,7 @@ with the Linux kernel.")
(base32
"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj"))
(patches (search-patches
"glibc-skip-c++.patch"
"glibc-ldd-powerpc.patch"
"glibc-ldd-x86_64.patch"
"glibc-dl-cache.patch"
@ -962,13 +965,19 @@ with the Linux kernel.")
(package
(inherit glibc)
(version "2.30")
(native-inputs
;; This fails with a build error in libc-tls.c when using GCC 10. Use an
;; older compiler.
(modify-inputs (package-native-inputs glibc)
(prepend gcc-8)))
(source (origin
(inherit (package-source glibc))
(uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
(sha256
(base32
"1bxqpg91d02qnaz837a5kamm0f43pr1il4r9pknygywsar713i72"))
(patches (search-patches "glibc-ldd-x86_64.patch"
(patches (search-patches "glibc-skip-c++.patch"
"glibc-ldd-x86_64.patch"
"glibc-CVE-2019-19126.patch"
"glibc-hidden-visibility-ldconfig.patch"
"glibc-versioned-locpath.patch"
@ -978,7 +987,7 @@ with the Linux kernel.")
(define-public glibc-2.29
(package
(inherit glibc)
(inherit glibc-2.30)
(version "2.29")
(source (origin
(inherit (package-source glibc))
@ -986,7 +995,8 @@ with the Linux kernel.")
(sha256
(base32
"0jzh58728flfh939a8k9pi1zdyalfzlxmwra7k0rzji5gvavivpk"))
(patches (search-patches "glibc-ldd-x86_64.patch"
(patches (search-patches "glibc-skip-c++.patch"
"glibc-ldd-x86_64.patch"
"glibc-CVE-2019-7309.patch"
"glibc-CVE-2019-9169.patch"
"glibc-2.29-git-updates.patch"

View file

@ -41,6 +41,7 @@
#:use-module (gnu packages linux)
#:use-module (gnu packages maths)
#:use-module (gnu packages mpi)
#:use-module (gnu packages opencl)
#:use-module (gnu packages perl)
#:use-module (gnu packages python)
#:use-module (gnu packages python-science)
@ -220,7 +221,7 @@ This can give a much better understanding of the command's performance.")
(define-public benchmark
(package
(name "benchmark")
(version "1.5.5")
(version "1.5.6")
(source (origin
(method git-fetch)
(uri (git-reference
@ -229,7 +230,7 @@ This can give a much better understanding of the command's performance.")
(file-name (git-file-name name version))
(sha256
(base32
"1ijv4idcjsyy61dab59ywbx0xdbws44kxgqjr1ylaxzwknh745qf"))))
"030g4d8vpn2442dsap0qw86lsw7xfl36k0x0x9bn0vvm11qvjn8c"))))
(build-system cmake-build-system)
(native-inputs
`(("googletest-source" ,(package-source googletest))
@ -240,8 +241,7 @@ This can give a much better understanding of the command's performance.")
(add-after 'unpack 'unpack-googletest
(lambda* (#:key inputs #:allow-other-keys)
(copy-recursively (assoc-ref inputs "googletest-source")
"googletest")
#t)))))
"googletest"))))))
(home-page "https://github.com/google/benchmark")
(synopsis "Microbenchmark support library")
(description
@ -384,3 +384,31 @@ It is designed to measure the effect of changes in Linux kernel design or
system configuration changes such as CPU, I/O scheduler and filesystem changes
and options. With careful benchmarking, different hardware can be compared.")
(license license:gpl2+)))
(define-public clpeak
;; Release 1.1.0 is too old for our opencl-clhpp. This commit supports
;; cl2.hpp.
(let ((commit "6d59cb64997a53c35207b77a63d2e9f0e84de5fd"))
(package
(name "clpeak")
(version (git-version "1.1.0" "0" commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/krrishnarraj/clpeak.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0qmhdjyhwl7gfgyqxsddqn6zpp3b57503m16h7jv6illy3lfvji1"))))
(build-system cmake-build-system)
(home-page "https://github.com/krrishnarraj/clpeak")
(inputs
`(("opencl-clhpp" ,opencl-clhpp)
("opencl-icd-loader" ,opencl-icd-loader)))
(synopsis "OpenCL benchmark tool")
(description
"A synthetic benchmarking tool to measure peak capabilities of OpenCL
devices. It only measures the peak metrics that can be achieved using
vector operations and does not represent a real-world use case.")
(license license:unlicense))))

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -90,6 +90,10 @@
(list (string-append "--localedir="
(assoc-ref %outputs "gui")
"/share/locale"))
;; Some tests segfault when using libevent 2.12 without internet
;; connection. This has been reported mainstream but not fixed yet:
;; https://github.com/transmission/transmission/issues/1437.
#:tests? #f
#:glib-or-gtk-wrap-excluded-outputs '("out")
#:phases
(modify-phases %standard-phases

View file

@ -12,7 +12,7 @@
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2018, 2019, 2020 Vagrant Cascadian <vagrant@debian.org>
;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
;;;
@ -56,14 +56,15 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
#:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
#:use-module (gnu packages swig)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages virtualization)
#:use-module (gnu packages xorg)
#:use-module (gnu packages web)
#:use-module (guix build-system gnu)
#:use-module (guix download)
#:use-module (guix git-download)
@ -113,6 +114,8 @@
;; calling the true binary instead. Python is only needed during
;; bootstrapping (for genptl.py), not when building from a release.
(list "PYTHON=true")
;; Grub fails to load modules stripped with --strip-unneeded.
#:strip-flags '("--strip-debug" "--enable-deterministic-archives")
#:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-stuff
(lambda* (#:key native-inputs inputs #:allow-other-keys)
@ -492,20 +495,26 @@ tree binary files. These are board description files used by Linux and BSD.")
;; and https://patchwork.ozlabs.org/project/uboot/patch/20210406151059.1187379-1-icenowy@aosc.io
(search-patch "u-boot-rockchip-inno-usb.patch"))
(define %u-boot-sifive-prevent-relocating-initrd-fdt
;; Fix boot in 2021.07 on Hifive unmatched, see
;; https://bugs.launchpad.net/ubuntu/+source/u-boot/+bug/1937246
(search-patch "u-boot-sifive-prevent-reloc-initrd-fdt.patch"))
(define u-boot
(package
(name "u-boot")
(version "2021.04")
(version "2021.07")
(source (origin
(patches
(list %u-boot-rockchip-inno-usb-patch))
(list %u-boot-rockchip-inno-usb-patch
%u-boot-sifive-prevent-relocating-initrd-fdt))
(method url-fetch)
(uri (string-append
"https://ftp.denx.de/pub/u-boot/"
"u-boot-" version ".tar.bz2"))
(sha256
(base32
"06p1vymf0dl6jc2xy5w7p42mpgppa46lmpm2ishmgsycnldqnhqd"))))
"0zm7igkdnz0w4ir8rfl2dislfrl0ip104grs5hvd30a5wkm7wari"))))
(native-inputs
`(("bc" ,bc)
("bison" ,bison)
@ -515,6 +524,7 @@ tree binary files. These are board description files used by Linux and BSD.")
("perl" ,perl)
("python" ,python)
("python-coverage" ,python-coverage)
("python-pycryptodomex" ,python-pycryptodomex)
("python-pytest" ,python-pytest)
("swig" ,swig)))
(build-system gnu-build-system)
@ -524,21 +534,6 @@ tree binary files. These are board description files used by Linux and BSD.")
also initializes the boards (RAM etc).")
(license license:gpl2+)))
(define-public u-boot-2021.07
(package
(inherit u-boot)
(version "2021.07-rc4")
(source (origin
(patches
(list %u-boot-rockchip-inno-usb-patch))
(method url-fetch)
(uri (string-append
"https://ftp.denx.de/pub/u-boot/"
"u-boot-" version ".tar.bz2"))
(sha256
(base32
"0bnsywgy2b0jxim5h9dc807lqk5kq8hvgf4lcsmffnc0hf4isv8p"))))))
(define-public u-boot-tools
(package
(inherit u-boot)
@ -567,9 +562,13 @@ also initializes the boards (RAM etc).")
;; This test would require git.
(("\\./tools/patman/patman") (which "true"))
;; FIXME: test fails, needs further investiation
(("run_test \"binman\"") ": run_test \"binman\"")
(("run_test \"binman\"") "# run_test \"binman\"")
;; FIXME: test_spl fails, needs further investiation
(("test_ofplatdata or test_handoff or test_spl")
"test_ofplatdata or test_handoff")
;; FIXME: code coverage not working
(("run_test \"binman code coverage\"") ": run_test \"binman code coverage\"")
(("run_test \"binman code coverage\"")
"# run_test \"binman code coverage\"")
;; This test would require internet access.
(("\\./tools/buildman/buildman") (which "true")))
(substitute* "test/py/tests/test_sandbox_exit.py"
@ -715,9 +714,6 @@ board-independent tools.")))
uboot-files)
#t)))))))))
(define-public u-boot-vexpress
(make-u-boot-package "vexpress_ca9x4" "arm-linux-gnueabihf"))
(define-public u-boot-malta
(make-u-boot-package "malta" "mips64el-linux-gnuabi64"))
@ -807,7 +803,34 @@ it fits within common partitioning schemes.")
(make-u-boot-package "A20-OLinuXino_MICRO" "arm-linux-gnueabihf"))
(define-public u-boot-nintendo-nes-classic-edition
(make-u-boot-package "Nintendo_NES_Classic_Edition" "arm-linux-gnueabihf"))
(let ((base (make-u-boot-package "Nintendo_NES_Classic_Edition"
"arm-linux-gnueabihf")))
(package
(inherit base)
;; Starting with 2019.01, FEL doesn't work anymore on A33.
(version "2018.11")
(source (origin
(method url-fetch)
(uri (string-append
"https://ftp.denx.de/pub/u-boot/"
"u-boot-" version ".tar.bz2"))
(sha256
(base32
"0znkwljfwwn4y7j20pzz4ilqw8znphrfxns0x1lwdzh3xbr96z3k"))
(patches (search-patches
"u-boot-nintendo-nes-serial.patch"))))
(description "U-Boot is a bootloader used mostly for ARM boards. It
also initializes the boards (RAM etc).
This version is for the Nintendo NES Classic Edition. It is assumed that
you have added a serial port to pins PB0 and PB1 as described on
@url{https://linux-sunxi.org/Nintendo_NES_Classic_Edition}.
In order to use FEL mode on the device, hold the Reset button on the
device while it's being turned on (and a while longer).")
(native-inputs
`(("python" ,python-2)
,@(package-native-inputs base))))))
(define-public u-boot-wandboard
(make-u-boot-package "wandboard" "arm-linux-gnueabihf"))
@ -873,15 +896,11 @@ to Novena upstream, does not load u-boot.img from the first partition.")
(patches
(search-patches "u-boot-riscv64-fix-extlinux.patch")))))))
(define-public u-boot-sifive-fu540
(make-u-boot-package "sifive_fu540" "riscv64-linux-gnu"))
(define-public u-boot-sifive-unleashed
(make-u-boot-package "sifive_unleashed" "riscv64-linux-gnu"))
(define-public u-boot-sifive-unmatched
(let ((base (make-u-boot-package "sifive_unmatched" "riscv64-linux-gnu")))
(package
(inherit base)
(version (package-version u-boot-2021.07))
(source (package-source u-boot-2021.07)))))
(make-u-boot-package "sifive_unmatched" "riscv64-linux-gnu"))
(define-public u-boot-rock64-rk3328
(let ((base (make-u-boot-package "rock64-rk3328" "aarch64-linux-gnu")))
@ -925,7 +944,7 @@ to Novena upstream, does not load u-boot.img from the first partition.")
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
`(modify-phases ,phases
(add-after 'patch-rockpro64-config 'set-environment
(add-after 'unpack 'set-environment
(lambda* (#:key inputs #:allow-other-keys)
(setenv "BL31"
(search-input-file inputs "/bl31.elf"))))
@ -940,8 +959,6 @@ to Novena upstream, does not load u-boot.img from the first partition.")
(let ((base (make-u-boot-package "pinebook-pro-rk3399" "aarch64-linux-gnu")))
(package
(inherit base)
(version (package-version u-boot-2021.07))
(source (package-source u-boot-2021.07))
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)

View file

@ -49,7 +49,7 @@ supported content to the Kodi media center.")
(make-chromium-extension play-to-kodi))
(define uassets
(let ((commit "20d21ad7e92539660c7cde4c5884b3e234854264"))
(let ((commit "54e217d9051831d0d8856286a877962e0f592d45"))
(origin
(method git-fetch)
(uri (git-reference
@ -58,12 +58,12 @@ supported content to the Kodi media center.")
(file-name (git-file-name "uAssets" (string-take commit 9)))
(sha256
(base32
"1xcl4qnvjb4pv3fajpmycg1i0xqsah2qakhq2figvyrq991pldy1")))))
"1xhxadm6qyph6kkq3gxg1rar1psb586mniwp7bkyj5zpzzj31wmj")))))
(define ublock-origin
(package
(name "ublock-origin")
(version "1.36.0")
(version "1.37.2")
(home-page "https://github.com/gorhill/uBlock")
(source (origin
(method git-fetch)
@ -71,7 +71,7 @@ supported content to the Kodi media center.")
(file-name (git-file-name name version))
(sha256
(base32
"1r3aic18zkz8s3v1a2kffidp4swzbxnq0h8444bif9myjffnpxpj"))))
"1c1dh9kkimvahs9yw1hv67290h8xvmbl10film7g1wamdxydj97y"))))
(build-system gnu-build-system)
(outputs '("xpi" "firefox" "chromium"))
(arguments

View file

@ -264,7 +264,7 @@ files and generates build instructions for the Ninja build system.")
(define-public meson
(package
(name "meson")
(version "0.59.0")
(version "0.59.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/mesonbuild/meson/"
@ -272,7 +272,7 @@ files and generates build instructions for the Ninja build system.")
version ".tar.gz"))
(sha256
(base32
"0xp45ihjkl90s4crzh9qmaajxq7invbv5k0yw3gl7dk4vycc4xp3"))))
"0v9m0bazhj48kwc8x3gkxg5c3kcvknvqfjlq22z6pm2h2r2nln6v"))))
(build-system python-build-system)
(arguments
`(;; FIXME: Tests require many additional inputs and patching many

View file

@ -180,13 +180,13 @@ data units.")
(define-public khal
(package
(name "khal")
(version "0.10.3")
(version "0.10.4")
(source (origin
(method url-fetch)
(uri (pypi-uri "khal" version))
(sha256
(base32
"0cm4xn871w3i99l3qmhv0bnv8q6rd1w3rip9sskyb5z59z0qzp9g"))))
"17qj1n2l39pnzk4vjrmql90z7908nivnzcc2g9nj1h31k859inrz"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; The test suite is unreliable. See <https://bugs.gnu.org/44197>

View file

@ -31,21 +31,26 @@
(define-public ccache
(package
(name "ccache")
(version "4.3")
(version "4.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/ccache/ccache/releases/download/v"
version "/ccache-" version ".tar.xz"))
(sha256
(base32 "1d4995lkmqshzfxlmbyn101m1rxs02yb8dgh4rl30p26hhhhyjjh"))))
(base32 "0qbmcs6c3m071vsd1ppa31r8s0dzpaw5y38z8ga1bz48rwpfl2xl"))))
(build-system cmake-build-system)
(native-inputs `(("perl" ,perl) ; for test/run
("which" ,(@ (gnu packages base) which))))
(inputs `(("zlib" ,zlib)
("zstd" ,zstd "lib")))
(arguments
'(#:phases
'(;; Disable redis backend explicitly. Build system insists on present dependency
;; or on explicit flag.
#:configure-flags
'("-DREDIS_STORAGE_BACKEND=OFF")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'setup-tests
(lambda _

View file

@ -3,7 +3,7 @@
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 John Darrington <jmd@gnu.org>
@ -925,7 +925,14 @@ Supported extensions to ISO 9660 are Rock Ridge, Joliet, AAIP, zisofs.")
version ".tar.gz"))
(sha256
(base32
"0g2zyzb56czh429qy87lvaddzjnlcq8c616ddxsmsshz3clhyzrh"))))
"0g2zyzb56czh429qy87lvaddzjnlcq8c616ddxsmsshz3clhyzrh"))
(modules '((guix build utils)))
(snippet
#~(begin
;; Fix building with gcc-10.
(substitute* "genisoimage/genisoimage.h"
(("char\t\t\\*outfile")
"extern char\t*outfile"))))))
(build-system cmake-build-system)
(inputs
`(("bzip2" ,bzip2)

View file

@ -104,6 +104,11 @@ port forwarding to your local machine.")
(arguments
`(#:phases (modify-phases %standard-phases
(delete 'configure)
(add-before 'build 'fix-extension
(lambda _
(substitute* "certdata2pem.c"
(("\\.crt")
".pem"))))
(replace 'build
(lambda _
(invoke ,(cc-for-target) "certdata2pem.c"
@ -159,9 +164,9 @@ that was originally contributed to Debian.")
(call-with-output-file "blacklist.txt" (const #t)))
;; Extract selected single certificates from blob.
(invoke "certdata2pem")
;; Copy .crt files into the output.
;; Copy .pem files into the output.
(for-each (cut install-file <> certsdir)
(find-files "." ".*\\.crt$")))
(find-files "." ".*\\.pem$")))
(invoke "openssl" "rehash" certsdir)))))))
(synopsis "CA certificates from Mozilla")
(description

View file

@ -9,7 +9,7 @@
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
@ -26,7 +26,7 @@
;;; Copyright © 2017 Nikita <nikita@n0.is>
;;; Copyright © 2015, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2019, 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
@ -733,10 +733,37 @@ generation.")
(base32
"0270msj6n7mggh4xqqjp54kswbl7mkcc8px1p5dqdpmw5ngh9fzk"))))))
(define-public googlebenchmark
(package
(name "googlebenchmark")
(version "1.5.3")
(home-page "https://github.com/google/benchmark")
(source (origin
(method git-fetch)
(uri (git-reference (url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name "google-benchmark" version))
(sha256
(base32
"1hls0aqqj5cfldn9jfpvzjhpxkhrydrz9crp477rwllwjsybdxw7"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON"
(string-append
"-DGOOGLETEST_PATH="
(assoc-ref %build-inputs "googletest")))))
(inputs
`(("googletest" ,(package-source googletest))))
(synopsis "C++ library to support the benchmarking of functions")
(description
"The googlebenchmark C++ library support the benchmarking of functions,
similar to unit tests.")
(license license:asl2.0)))
(define-public cpputest
(package
(name "cpputest")
(version "3.8")
(version "4.0")
(source
(origin
(method url-fetch)
@ -744,7 +771,7 @@ generation.")
version "/cpputest-" version ".tar.gz"))
(sha256
(base32
"0mk48xd3klyqi7wf3f4wn4zqxxzmvrhhl32r25jzrixzl72wq7f8"))))
"1xslavlb1974y5xvs8n1j9zkk05dlw8imy4saasrjlmibl895ii1"))))
(build-system gnu-build-system)
(native-inputs
`(("googletest" ,googletest)))
@ -839,7 +866,8 @@ doctest.")
(description
"Mock is a library for testing in Python. It allows you to replace parts
of your system under test with mock objects and make assertions about how they
have been used.")
have been used. This library is now part of Python (since Python 3.3),
available via the @code{unittest.mock} module.")
(properties `((python2-variant . ,(delay python2-mock))))
(license license:expat)))
@ -995,6 +1023,8 @@ and many external plugins.")
(license license:expat)
(properties `((python2-variant . ,(delay python2-pytest))))))
(define-public python-pytest-6 python-pytest)
;; Pytest 4.x are the last versions that support Python 2.
(define-public python2-pytest
(package
@ -1210,19 +1240,33 @@ contacting the real http server.")
(define-public python-pytest-mock
(package
(name "python-pytest-mock")
(version "1.10.1")
(version "3.6.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytest-mock" version))
(sha256
(base32
"1i5mg3ff1qk0wqfcxfz60hwy3q5dskdp36i10ckigkzffg8hc3ad"))))
(sha256 (base32
"0qhfmd05z3g88bnwq6644jl6p5wy01i4yy7h8883z9jjih2pl8a0"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
;; Skip the assertion rewriting tests, which don't work in the
;; presence of read-only Python modules (a limitation of
;; Pytest). Also skip the "test_standalone_mock" test, which
;; can only work when 'python-mock' is not available
;; (currently propagated by Pytest 5).
(invoke "pytest" "--assert=plain"
"-k" "not test_standalone_mock")))))))
(native-inputs
`(("python-setuptools-scm" ,python-setuptools-scm)))
(propagated-inputs
`(("python-pytest" ,python-pytest)))
`(("python-pytest" ,python-pytest)
("python-pytest-asyncio" ,python-pytest-asyncio)))
(home-page "https://github.com/pytest-dev/pytest-mock/")
(synopsis "Thin-wrapper around the mock package for easier use with py.test")
(description
@ -1272,9 +1316,11 @@ same arguments.")
(substitute* "setup.py"
(("pytest>=6\\.0\\.0") "pytest"))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(invoke "py.test" "-v")))))))
(add-installed-pythonpath inputs outputs)
(invoke "pytest" "-vv"
"-n" (number->string (parallel-job-count)))))))))
(native-inputs
`(("python-setuptools-scm" ,python-setuptools-scm)))
(propagated-inputs
@ -1298,17 +1344,33 @@ result back.")
(define-public python2-pytest-xdist
(package-with-python2 python-pytest-xdist))
(define-public python-pytest-xdist-next
(package/inherit python-pytest-xdist
(name "python-pytest-xdist")
(version "2.3.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytest-xdist" version))
(sha256
(base32
"19cy57jrf3pwi7x6fnbxryjvqagsl0yv736jnynvr3yqhlpxxv78"))))
(propagated-inputs
`(("python-execnet" ,python-execnet)
("python-pytest" ,python-pytest-6)
("python-pytest-forked" ,python-pytest-forked)))))
(define-public python-pytest-timeout
(package
(name "python-pytest-timeout")
(version "1.3.4")
(version "1.4.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytest-timeout" version))
(sha256
(base32
"13n42azbvs5slvy2n1a9nw17r4qdq10dd68nln3jp925safa3yl0"))))
"0xnsigs0kmpq1za0d4i522sp3f71x5bgpdh3ski0rs74yqy13cr0"))))
(build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
@ -1318,7 +1380,8 @@ result back.")
(add-installed-pythonpath inputs outputs)
(invoke "pytest" "-vv"))))))
(propagated-inputs
`(("python-pytest" ,python-pytest)))
`(("python-pytest" ,python-pytest)
("python-pytest-cov" ,python-pytest-cov)))
(native-inputs
`(("python-pexpect" ,python-pexpect)))
(home-page "https://github.com/pytest-dev/pytest-timeout")
@ -1334,22 +1397,42 @@ timeout has been exceeded.")
(version "1.3.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytest-forked" version))
(method git-fetch) ;for tests
(uri (git-reference
(url "https://github.com/pytest-dev/pytest-forked")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1jip9qh115zcg1rn7irqx5qycb9k248d5imy86f566md01zaraba"))))
"1aip4kx50ynvykl7kq2mlbsi82vx701dvb8mm64lhp69bbv105rc"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'disable-setuptools-scm
(lambda _
(substitute* "setup.py"
(("use_scm_version=True")
(format #f "version=~s" ,version))
(("setup_requires=\\['setuptools_scm'\\],.*")
""))))
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(invoke "pytest" "-vv")))))))
(native-inputs
`(("python-pytest" ,python-pytest)
("python-setuptools-scm" ,python-setuptools-scm)))
(home-page
"https://github.com/pytest-dev/pytest-forked")
(synopsis
"Run tests in isolated forked subprocesses")
(description
"Pytest plugin which will run each test in a subprocess and will report if
a test crashed the process.")
;; XXX: The bootstrap variant of Pytest is used to ensure the
;; 'hypothesis' plugin is not in the environment (due to
;; <http://issues.guix.gnu.org/25235>), which would cause the test suite
;; to fail (see: https://github.com/pytest-dev/pytest-forked/issues/54).
`(("python-pytest" ,python-pytest-bootstrap)))
(home-page "https://github.com/pytest-dev/pytest-forked")
(synopsis "Pytest plugin to run tests in isolated forked subprocesses")
(description "This package provides a Pytest plugin which enables running
each test in a subprocess and will report if a test crashed the process. It
can be useful to isolate tests against undesirable global environment
side-effects (such as setting environment variables).")
(license license:expat)))
(define-public python-scripttest
@ -1377,25 +1460,20 @@ subprocess and see the output as well as any file modifications.")
(define-public python-testtools-bootstrap
(package
(name "python-testtools-bootstrap")
(version "2.3.0")
(version "2.5.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "testtools" version))
(sha256
(base32
"0n8519lk8aaa91vymz842831181wf7fss98hyllhygi3z1nfq9sq"))
(patches (search-patches "python-testtools.patch"))))
"0gxjbjk93jjqi491k4s9rh3ia37v21yifd35pvizv7sgv4rk9hap"))))
(build-system python-build-system)
(arguments '(#:tests? #f))
(propagated-inputs
`(("python-extras" ,python-extras)
("python-fixtures" ,python-fixtures-bootstrap)
("python-mimeparse" ,python-mimeparse)
("python-pbr" ,python-pbr-minimal)
("python-six" ,python-six)
("python-traceback2" ,python-traceback2)
("python-unittest2" ,python-unittest2)))
("python-pbr" ,python-pbr-minimal)))
(home-page "https://github.com/testing-cabal/testtools")
(synopsis
"Extensions to the Python standard library unit testing framework")
@ -1408,19 +1486,17 @@ subprocess and see the output as well as any file modifications.")
(inherit python-testtools-bootstrap)
(name "python-testtools")
(arguments
`(#:phases (modify-phases %standard-phases
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "python" "-m" "testtools.run"
"testtools.tests.test_suite"))))))
"testtools.tests.test_suite")))))))
(propagated-inputs
`(("python-extras" ,python-extras)
("python-fixtures" ,python-fixtures)
("python-mimeparse" ,python-mimeparse)
("python-pbr" ,python-pbr)
("python-six" ,python-six)
("python-traceback2" ,python-traceback2)
("python-unittest2" ,python-unittest2)))
("python-pbr" ,python-pbr)))
(native-inputs
`(("python-testscenarios" ,python-testscenarios-bootstrap)))
(description
@ -1551,12 +1627,14 @@ protocol.")))
(package
(name "python-fixtures-bootstrap")
(version "3.0.0")
(source (origin
(source
(origin
(method url-fetch)
(uri (pypi-uri "fixtures" version))
(sha256
(base32
"1vxj29bzz3rd4pcy51d05wng9q9dh4jq6wx92yklsm7i6h1ddw7w"))))
"1vxj29bzz3rd4pcy51d05wng9q9dh4jq6wx92yklsm7i6h1ddw7w"))
(patches (search-patches "python-fixtures-remove-monkeypatch-test.patch"))))
(build-system python-build-system)
(arguments
`(#:tests? #f
@ -1582,9 +1660,10 @@ python-fixtures package instead.")
'(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "python" "-m" "testtools.run"
"fixtures.test_suite"))))))
"fixtures.test_suite")))))))
(propagated-inputs
;; Fixtures uses pbr at runtime to check versions, etc.
`(("python-pbr" ,python-pbr)
@ -1671,10 +1750,13 @@ executed.")
(version "0.15.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytest-asyncio" version))
(method git-fetch) ;for tests
(uri (git-reference
(url "https://github.com/pytest-dev/pytest-asyncio")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0vrzsrg3j1cfd57m0b3r5xf87rslgcs42jya346mdg9bc6wwwr15"))))
(base32 "03drs4myv1ik79148xyhli37q6mp931jb14cz65n8qvls2zvvwgx"))))
(build-system python-build-system)
(native-inputs
`(("python-coverage" ,python-coverage)
@ -1866,22 +1948,23 @@ framework which enables you to test server connections locally.")
(define-public python-pytest-xprocess
(package
(name "python-pytest-xprocess")
(version "0.9.1")
(version "0.18.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "pytest-xprocess" version))
(sha256
(base32
"17zlql1xqw3ywcgwwbqmw633aly99lab12hm02asr8awvg5603pp"))))
"0rm2rchrr63imn44xk5slwydxf8gvy579524qcxq7dc42pnk17zx"))))
(build-system python-build-system)
(native-inputs
`(("python-setuptools-scm" ,python-setuptools-scm)))
(propagated-inputs
`(("python-pytest" ,python-pytest)
("python-pytest-cache" ,python-pytest-cache)
("python-psutil" ,python-psutil)))
(synopsis "Pytest plugin to manage external processes across test runs")
(description "Pytest-xprocess is an experimental py.test plugin for managing
processes across test runs.")
(home-page "https://bitbucket.org/pytest-dev/pytest-xprocess")
(home-page "https://github.com/pytest-dev/pytest-xprocess/")
(license license:expat)))
(define-public python-pytest-subtesthack
@ -2135,42 +2218,25 @@ statements in the module it tests.")
(define-public python-pylint
(package
(name "python-pylint")
(version "2.6.0")
(version "2.9.6")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/PyCQA/pylint")
(commit (string-append "pylint-" version))))
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0ws3dz3wm49brnhhfm7v75zq202pwlwfbi3njdd69aqxq912x15z"))))
(base32 "15yw69v1cj6zkndk60c2g0dgl0khh8bfm1lrwhjffpdjfc7nkc9a"))))
(build-system python-build-system)
(arguments
`(#:tests? #t
#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; The following failing tests are skipped (see:
;; https://github.com/PyCQA/pylint/issues/4068).
(invoke "pytest" "-k"
(string-append
"not unused_typing_imports "
"and not star_needs_assignment_target_py35 "
"and not regression_property_no_member_2641 "
"and not missing_kwoa_py3"))))))))
(native-inputs
`(("python-pytest" ,python-pytest)
("python-pytest-benchmark" ,python-pytest-benchmark)
("python-pytest-runner" ,python-pytest-runner)
("python-tox" ,python-tox)))
("python-pytest-runner" ,python-pytest-runner)))
(propagated-inputs
`(("python-astroid" ,python-astroid)
("python-isort" ,python-isort)
("python-mccabe" ,python-mccabe)
("python-six" ,python-six)
("python-toml" ,python-toml)))
(home-page "https://github.com/PyCQA/pylint")
(synopsis "Python source code analyzer which looks for coding standard
@ -2687,7 +2753,13 @@ portable to just about any platform.")
;; XXX: Without this flag, the CLOCK_REALTIME test hangs
;; indefinitely. See README.packagers for more information.
(setenv "FAKETIME_COMPILE_CFLAGS" "-DFORCE_MONOTONIC_FIX"))))
;; There are specific instructions to not enable more flags
;; than absolutely needed.
,(if (target-ppc64le?)
`(setenv "FAKETIME_COMPILE_CFLAGS"
"-DFORCE_MONOTONIC_FIX -DFORCE_PTHREAD_NONVER")
`(setenv "FAKETIME_COMPILE_CFLAGS"
"-DFORCE_MONOTONIC_FIX")))))
(add-before 'check 'pre-check
(lambda _
(substitute* "test/functests/test_exclude_mono.sh"

View file

@ -114,8 +114,8 @@
;; for docs
("stex" ,stex)
("xorg-rgb" ,xorg-rgb)
("texlive" ,(texlive-updmap.cfg (list texlive-latex-oberdiek
texlive-generic-epsf)))
("texlive" ,(texlive-updmap.cfg (list texlive-oberdiek
texlive-epsf)))
("ghostscript" ,ghostscript)
("netpbm" ,netpbm)))
(native-search-paths
@ -316,10 +316,10 @@ and 32-bit PowerPC architectures.")
(native-inputs
`(("chez-scheme" ,chez-scheme)
("ghostscript" ,ghostscript)
("texlive" ,(texlive-updmap.cfg (list texlive-latex-oberdiek
texlive-generic-epsf
("texlive" ,(texlive-updmap.cfg (list texlive-oberdiek
texlive-epsf
texlive-metapost
texlive-fonts-charter
texlive-charter
texlive-pdftex
texlive-context
texlive-cm

View file

@ -58,8 +58,6 @@
#:use-module (gnu packages protobuf)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages regex)
#:use-module (gnu packages serialization)
#:use-module (gnu packages speech)
@ -111,7 +109,10 @@
"third_party/catapult" ;BSD-3
"third_party/catapult/common/py_vulcanize/third_party/rcssmin" ;ASL2.0
"third_party/catapult/common/py_vulcanize/third_party/rjsmin" ;ASL2.0
"third_party/catapult/third_party/beautifulsoup4" ;Expat
"third_party/catapult/third_party/html5lib-python" ;Expat
"third_party/catapult/third_party/polymer" ;BSD-3
"third_party/catapult/third_party/six" ;Expat
;; XXX: This is a minified version of <https://d3js.org/>.
"third_party/catapult/tracing/third_party/d3" ;BSD-3
"third_party/catapult/tracing/third_party/gl-matrix" ;Expat
@ -138,7 +139,7 @@
"third_party/devtools-frontend/src/front_end/third_party/axe-core" ;MPL2.0
"third_party/devtools-frontend/src/front_end/third_party/chromium" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/codemirror" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/fabricjs" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/diff" ;ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/i18n" ;ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/intl-messageformat" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/lighthouse" ;ASL2.0
@ -299,6 +300,7 @@
"third_party/zlib/google" ;BSD-3
"third_party/zxcvbn-cpp" ;Expat
"tools/grit/third_party/six" ;Expat
"url/third_party/mozilla" ;BSD-3, MPL1.1/GPL2+/LGPL2.1+
"v8/src/third_party/siphash" ;Public domain
"v8/src/third_party/utf8-decoder" ;Expat
@ -322,11 +324,11 @@
(string-append "ungoogled-chromium-" category "-" name))))
(sha256 (base32 hash))))
(define %chromium-version "91.0.4472.164")
(define %chromium-version "92.0.4515.159")
(define %debian-revision "debian/90.0.4430.85-1")
;; Note: use 'git describe --long' even for exact tags to placate the
;; custom version format for ungoogled-chromium.
(define %ungoogled-revision "91.0.4472.114-1-0-ga9eb6fd")
(define %ungoogled-revision "92.0.4515.159-1-8-g8164c91")
(define %debian-patches
(list (debian-patch "fixes/nomerge.patch"
@ -346,7 +348,7 @@
(file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
(sha256
(base32
"1xb5g3hybaiwn3y1zw1fxd3g0zwmvplrs06sdqnxzsr1qm8b874h"))))
"0wbcbjzh5ak4nciahqw4yvxc4x8ik4x0iz9h4kfy0m011sxzy174"))))
(define %guix-patches
(list (local-file
@ -401,11 +403,6 @@
(format #t "Replacing GN files...~%")
(force-output)
;; XXX: Chromium no longer relies on overriding ICU's UCHAR_TYPE,
;; but the unbundling code was not updated. Remove for M92.
(substitute* "build/linux/unbundle/icu.gn"
(("\"UCHAR_TYPE=uint16_t\",")
""))
(substitute* "tools/generate_shim_headers/generate_shim_headers.py"
;; The "is_official_build" configure option enables certain
;; release optimizations like those used in the commercial
@ -417,8 +414,7 @@
"--system-libraries" "ffmpeg" "flac" "fontconfig"
"freetype" "harfbuzz-ng" "icu" "libdrm" "libevent"
"libjpeg" "libpng" "libwebp" "libxml" "libxslt"
"openh264" "opus" "snappy" "zlib")
#t))))
"openh264" "opus" "snappy" "zlib")))))
(define opus+custom
(package/inherit opus
@ -488,7 +484,7 @@
%chromium-version ".tar.xz"))
(sha256
(base32
"1g96hk72ds2b0aymgw7yjr0akgx7mkp17i99nk511ncnmni6zrc4"))
"04gxgimg5ygzx6nvfws5y9dppdfjg1fhyl8zbykmksbh1myk6zfr"))
(modules '((guix build utils)))
(snippet (force ungoogled-chromium-snippet))))
(build-system gnu-build-system)
@ -654,9 +650,7 @@
(("third_party/vulkan_headers/include/") ""))
(substitute* "third_party/skia/include/gpu/vk/GrVkVulkan.h"
(("include/third_party/vulkan/") ""))
#t))
(("include/third_party/vulkan/") ""))))
(add-after 'patch-stuff 'add-absolute-references
(lambda* (#:key inputs #:allow-other-keys)
(let ((cups (assoc-ref inputs "cups"))
@ -684,8 +678,7 @@
(("libEGL\\.so\\.1")
(string-append mesa "/lib/libEGL.so.1"))
(("libGLESv2\\.so\\.2")
(string-append mesa "/lib/libGLESv2.so.2")))
#t)))
(string-append mesa "/lib/libGLESv2.so.2"))))))
(add-before 'configure 'prepare-build-environment
(lambda* (#:key inputs #:allow-other-keys)
@ -722,9 +715,7 @@
;; XXX: How portable is this.
(mkdir-p "third_party/node/linux/node-linux-x64")
(symlink (string-append (assoc-ref inputs "node") "/bin")
"third_party/node/linux/node-linux-x64/bin")
#t))
"third_party/node/linux/node-linux-x64/bin")))
(replace 'configure
(lambda* (#:key configure-flags #:allow-other-keys)
(let ((args (string-join configure-flags " ")))
@ -752,8 +743,7 @@
(setrlimit 'nofile 2048 #f))
(format #t
"increased maximum number of open files from ~d to ~d~%"
soft (if hard (min hard 2048) 2048)))))
#t))
soft (if hard (min hard 2048) 2048)))))))
(replace 'build
(lambda* (#:key (parallel-build? #t) #:allow-other-keys)
(invoke "ninja" "-C" "out/Release"
@ -830,8 +820,7 @@
(mkdir-p icons)
(copy-file (string-append "product_logo_" size ".png")
(string-append icons "/chromium.png"))))
'("24" "48" "64" "128" "256")))
#t))))))
'("24" "48" "64" "128" "256")))))))))
(native-inputs
`(("bison" ,bison)
("clang" ,clang-11)
@ -842,13 +831,14 @@
("node" ,node)
("pkg-config" ,pkg-config)
("which" ,which)
;; This file contains defaults for new user profiles.
("master-preferences" ,(local-file "aux-files/chromium/master-preferences.json"))
("python-beautifulsoup4" ,python2-beautifulsoup4)
("python-html5lib" ,python2-html5lib)
("python" ,python-2)
;; Try unbundling these when upstream has completed its Python 3 transition.
;; ("python-beautifulsoup4" ,python-beautifulsoup4)
;; ("python-html5lib" ,python-html5lib)
("python2" ,python-2)
("python" ,python-wrapper)
("wayland-scanner" ,wayland)))
(inputs
`(("alsa-lib" ,alsa-lib)
@ -865,7 +855,7 @@
("glib" ,glib)
("gtk+" ,gtk+)
("harfbuzz" ,harfbuzz)
("icu4c" ,icu4c-69)
("icu4c" ,icu4c)
("lcms" ,lcms)
("libevent" ,libevent)
("libffi" ,libffi)
@ -888,6 +878,9 @@
("libxscrnsaver" ,libxscrnsaver)
("libxslt" ,libxslt)
("libxtst" ,libxtst)
;; Newer kernel headers are required for userfaultfd support; remove
;; after 'core-updates' merge.
("linux-libre-headers" ,linux-libre-headers-5.10)
("mesa" ,mesa)
("minizip" ,minizip)
("mit-krb5" ,mit-krb5)

View file

@ -73,8 +73,8 @@
(file-name (string-append name "-" version "-checkout")))))))
(define-public cuirass
(let ((commit "f9a5dbd54eaa7fa8ac173fd5e68209f937840d90")
(revision "1"))
(let ((commit "60190401ce4ccc890629ec3cb22a84a8ab8c2645")
(revision "4"))
(package
(name "cuirass")
(version (git-version "1.1.0" revision commit))
@ -87,7 +87,7 @@
(file-name (git-file-name name version))
(sha256
(base32
"0wrx2bf1gdnbkfgmmqr46s1fhvv3568yi7hxb24plf4xx5jq5yg8"))))
"0b0bs32lzk5ck7lw8ac9dj2h70sqc5y430vhi7rcnwj48mdrchma"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build utils)

View file

@ -11,6 +11,7 @@
;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -91,7 +92,7 @@ using the CMake build system.")
;;; Build phases shared between 'cmake-bootstrap' and the later variants
;;; that use cmake-build-system.
(define %common-build-phases
(define (%common-build-phases)
`((add-after 'unpack 'split-package
;; Remove files that have been packaged in other package recipes.
(lambda _
@ -99,6 +100,17 @@ using the CMake build system.")
(substitute* "Auxiliary/CMakeLists.txt"
((".*cmake-mode.el.*") ""))
#t))
,@(if (target-x86-32?)
'((add-after 'unpack 'skip-cpack-txz-test
(lambda _
;; In 'RunCMake.CPack_TXZ', the 'TXZ/THREADED_ALL' test
;; would occasionally fail on i686 with "Internal error
;; initializing compression library: Cannot allocate
;; memory": <https://issues.guix.gnu.org/50617>. Skip it.
(substitute* "Tests/RunCMake/CPack/RunCMakeTest.cmake"
(("THREADED_ALL \"TXZ;DEB\"")
"THREADED_ALL \"DEB\"")))))
'())
(add-before 'configure 'patch-bin-sh
(lambda _
;; Replace "/bin/sh" by the right path in... a lot of
@ -187,7 +199,7 @@ using the CMake build system.")
" --exclude-regex ^\\(" (string-join skipped-tests "\\|") "\\)$")))
#:phases
(modify-phases %standard-phases
,@%common-build-phases
,@(%common-build-phases)
(add-before 'configure 'set-paths
(lambda _
;; Help cmake's bootstrap process to find system libraries
@ -294,7 +306,7 @@ and workspaces that can be used in the compiler environment of your choice.")
#:build-type "Release"
#:phases
(modify-phases %standard-phases
,@%common-build-phases
,@(%common-build-phases)
(add-after 'install 'delete-help-documentation
(lambda* (#:key outputs #:allow-other-keys)
(delete-file-recursively
@ -327,6 +339,15 @@ and workspaces that can be used in the compiler environment of your choice.")
(package
(inherit cmake-minimal)
(name "cmake")
(version "3.21.1")
(source (origin
(inherit (package-source cmake-bootstrap))
(uri (string-append "https://cmake.org/files/v"
(version-major+minor version)
"/cmake-" version ".tar.gz"))
(sha256
(base32
"1m7y9j5lafkrfswsg2vkpx2fz6p6fqpp2pcp2dcz5pylf58r3hzs"))))
(arguments
(substitute-keyword-arguments (package-arguments cmake-minimal)
;; Use cmake-minimal this time.

View file

@ -2,7 +2,7 @@
;;; Copyright © 2013, 2015, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
@ -64,6 +64,8 @@
#:use-module (gnu packages perl-compression)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages web)
@ -127,26 +129,35 @@ highlighting your own code that seemed comprehensible when you wrote it.")
(define-public global ; a global variable
(package
(name "global")
(version "6.6.6")
(version "6.6.7")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/global/global-"
version ".tar.gz"))
(sha256
(base32
"0pad5p31rdspyrzqky3ppgx7f6gdlfnwg1c7qm8w1m4qzyppi03m"))))
"0g4aslm2zajq605py11s4rs1wdnzcqhkh7bc2xl5az42adzzg839"))))
(build-system gnu-build-system)
(inputs `(("coreutils" ,coreutils)
("ncurses" ,ncurses)
(inputs
`(("bash" ,bash-minimal) ; for wrap-program
("coreutils" ,coreutils)
("ctags" ,universal-ctags)
("libltdl" ,libltdl)
("sqlite" ,sqlite)
("python-wrapper" ,python-wrapper)))
("ncurses" ,ncurses)
("python-pygments" ,python-pygments)
("python-wrapper" ,python-wrapper)
("sqlite" ,sqlite)))
(arguments
`(#:configure-flags
(list (string-append "--with-ncurses="
(assoc-ref %build-inputs "ncurses"))
(string-append "--with-sqlite3="
(assoc-ref %build-inputs "sqlite"))
(string-append "--with-universal-ctags="
(assoc-ref %build-inputs "ctags") "/bin/ctags")
(string-append "--sysconfdir="
(assoc-ref %outputs "out") "/share/gtags")
"--localstatedir=/var" ; This needs to be a writable location.
"--disable-static")
#:phases
@ -157,13 +168,29 @@ highlighting your own code that seemed comprehensible when you wrote it.")
(assoc-ref inputs "coreutils") "/bin/echo")))
(substitute* "globash/globash.in"
(("/bin/echo") echo)))))
(add-after 'post-install 'install-plugins
(lambda _
(with-directory-excursion "plugin-factory"
(invoke "make" "install"))))
(add-before 'install 'dont-install-to-/var
(lambda _
(substitute* "gozilla/Makefile"
(("DESTDIR\\)\\$\\{localstatedir\\}") "TMPDIR)"))))
(add-after 'install-plugins 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
(wrap-program
(string-append (assoc-ref outputs "out")
"/share/gtags/script/pygments_parser.py")
`("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))))))
(add-after 'install 'post-install
(lambda* (#:key outputs #:allow-other-keys)
;; Install the plugin files in the right place.
(let* ((out (assoc-ref outputs "out"))
(data (string-append out "/share/gtags"))
(vim (string-append out "/share/vim/vimfiles/plugin"))
(lisp (string-append out "/share/emacs/site-lisp")))
(lisp (string-append out "/share/emacs/site-lisp/"
,(package-name this-package) "-"
,(package-version this-package))))
(mkdir-p lisp)
(mkdir-p vim)
(rename-file (string-append data "/gtags.el")
@ -307,6 +334,10 @@ cloc can handle a greater variety of programming languages.")
(base32
"0w1icjqd8hd45rn1y6nbfznk1a6ip54whwbfbhxp7ws2hn3ilqnr"))))
(build-system gnu-build-system)
(arguments
;; Required since GCC 10, see:
;; https://gcc.gnu.org/gcc-10/porting_to.html.
`(#:configure-flags (list "CFLAGS=-fcommon")))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs

View file

@ -1733,38 +1733,28 @@ ac_cv_c_float_format='IEEE (little-endian)'
"gawk" "grep" "guile" "make" "sed" "tar"))))
(define gmp-boot
(package
(inherit gmp)
(version "4.3.2")
(source (origin
(let ((version "4.3.2"))
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/gmp/gmp-" version
".tar.gz"))
(sha256 (base32
"15rwq54fi3s11izas6g985y9jklm3xprfsmym3v1g6xr84bavqvv"))))))
(uri (string-append "mirror://gnu/gmp/gmp-" version ".tar.gz"))
(sha256
(base32 "15rwq54fi3s11izas6g985y9jklm3xprfsmym3v1g6xr84bavqvv")))))
(define mpfr-boot
(package
(inherit mpfr)
(version "2.4.2")
(source (origin
(let ((version "2.4.2"))
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/mpfr/mpfr-" version
".tar.gz"))
(sha256 (base32
"0dxn4904dra50xa22hi047lj8kkpr41d6vb9sd4grca880c7wv94"))))))
(uri (string-append "mirror://gnu/mpfr/mpfr-" version ".tar.gz"))
(sha256
(base32 "0dxn4904dra50xa22hi047lj8kkpr41d6vb9sd4grca880c7wv94")))))
(define mpc-boot
(package
(inherit mpc)
(version "1.0.3")
(source (origin
(let ((version "1.0.3"))
(origin
(method url-fetch)
(uri (string-append
"mirror://gnu/mpc/mpc-" version ".tar.gz"))
(uri (string-append "mirror://gnu/mpc/mpc-" version ".tar.gz"))
(sha256
(base32
"1hzci2zrrd7v3g1jk35qindq05hbl0bhjcyyisq9z209xb3fqzb1"))))))
(base32 "1hzci2zrrd7v3g1jk35qindq05hbl0bhjcyyisq9z209xb3fqzb1")))))
(define gcc-core-mesboot1
;; GCC 4.6.4 is the latest modular distribution. This package is not
@ -1782,9 +1772,9 @@ ac_cv_c_float_format='IEEE (little-endian)'
(sha256
(base32
"173kdb188qg79pcz073cj9967rs2vzanyjdjyxy9v0xb0p5sad75"))))
(inputs `(("gmp-source" ,(package-source gmp-boot))
("mpfr-source" ,(package-source mpfr-boot))
("mpc-source" ,(package-source mpc-boot))))
(inputs `(("gmp-source" ,gmp-boot)
("mpfr-source" ,mpfr-boot)
("mpc-source" ,mpc-boot)))
(native-inputs (%boot-mesboot1-inputs))
(arguments
(list #:implicit-inputs? #f
@ -1857,14 +1847,17 @@ ac_cv_c_float_format='IEEE (little-endian)'
(list gmp mpfr mpc))
;; Create symlinks like `gmp' -> `gmp-x.y.z'.
#$@(map (lambda (lib)
#$@(map (lambda (lib package)
;; Drop trailing letters, as gmp-6.0.0a unpacks
;; into gmp-6.0.0.
#~(symlink #$(string-trim-right
(package-full-name lib "-")
(basename
(origin-actual-file-name lib)
".tar.gz")
char-set:letter)
#$(package-name lib)))
(list gmp-boot mpfr-boot mpc-boot)))))
#$package))
(list gmp-boot mpfr-boot mpc-boot)
'("gmp" "mpfr" "mpc")))))
(add-before 'configure 'setenv
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))

View file

@ -33,6 +33,7 @@
;;; Copyright © 2021 Antoine Côté <antoine.cote@posteo.net>
;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -1319,7 +1320,10 @@ for most inputs, but the resulting compressed files are anywhere from 20% to
(find-files "Utils/file_Codecs_Rar_so.py")))
(delete-file-recursively "CPP/7zip/Archive/Rar")
(delete-file-recursively "CPP/7zip/Compress/Rar")
#t))
;; Fix FTBFS with gcc-10.
(substitute* "CPP/Windows/ErrorMsg.cpp"
(("switch\\(errorCode\\) \\{")
"switch(static_cast<HRESULT>(errorCode)) {"))))
(patches (search-patches "p7zip-CVE-2016-9296.patch"
"p7zip-CVE-2017-17969.patch"
"p7zip-remove-unused-code.patch"))))
@ -1330,31 +1334,27 @@ for most inputs, but the resulting compressed files are anywhere from 20% to
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key system outputs #:allow-other-keys)
(invoke "cp"
(let ((system ,(or (%current-target-system)
(%current-system))))
(cond
((string-prefix? "x86_64" system)
(lambda _
(copy-file
,(cond ((target-x86-64?)
"makefile.linux_amd64_asm")
((string-prefix? "i686" system)
((target-x86-32?)
"makefile.linux_x86_asm_gcc_4.X")
(else
"makefile.linux_any_cpu_gcc_4.X")))
"makefile.linux_any_cpu_gcc_4.X"))
"makefile.machine")))
(replace 'check
(lambda _
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "make" "test")
(invoke "make" "test_7z")
(invoke "make" "test_7zr"))))))
(invoke "make" "test_7zr")))))))
(native-inputs
(let ((system (or (%current-target-system)
(%current-system))))
`(,@(cond ((string-prefix? "x86_64" system)
`(("yasm" ,yasm)))
((string-prefix? "i686" system)
`(("nasm" ,nasm)))
(else '())))))
(cond ((target-x86-64?)
(list yasm))
((target-x86-32?)
(list nasm))
(else '())))
(home-page "http://p7zip.sourceforge.net/")
(synopsis "Command-line file archiver with high compression ratio")
(description "p7zip is a command-line port of 7-Zip, a file archiver that
@ -2277,6 +2277,58 @@ reading from and writing to ZIP archives. ")
;; distributed under zlib terms.
(license (list license:lgpl2.1+ license:zlib))))
(define-public zchunk
(package
(name "zchunk")
(version "1.1.16")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/zchunk/zchunk")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0nlzwnv6wh2yjyyv27f81jnvmk7psgpbnw7dsdp7frfkya569hgv"))))
(build-system meson-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/zck_gen_zdict.c"
(("/usr/bin/zstd")
(string-append (assoc-ref inputs "zstd")
"/bin/zstd"))))))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("curl" ,curl)
("zstd" ,zstd)))
(propagated-inputs
`(("zstd:lib" ,zstd "lib"))) ;in Requires.private of zck.pc
(home-page "https://github.com/zchunk/zchunk")
(synopsis "Compressed file format for efficient deltas")
(description "The zchunk compressed file format allows splitting a file
into independent chunks. This makes it possible to retrieve only changed
chunks when downloading a new version of the file, and also makes zchunk files
efficient over rsync. Along with the library, this package provides the
following utilities:
@table @command
@item unzck
To decompress a zchunk file.
@item zck
To compress a new zchunk file, or re-compress an existing one.
@item zck_delta_size
To calculate the difference between two zchunk files.
@item zck_gen_zdict
To create a dictionary for a zchunk file.
@item zck_read_header
To read a zchunk header.
@item zckdl
To download a zchunk file.
@end table")
(license license:bsd-2)))
(define-public zutils
(package
(name "zutils")
@ -2529,6 +2581,42 @@ with their error correction data losslessly rearranged for better compression,
to their original, binary CD format.")
(license license:gpl3+)))
(define-public libdeflate
(package
(name "libdeflate")
(version "1.8")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ebiggers/libdeflate")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0nw1zhr2s6ffcc3s0n5wsshvjb6pmybwapagli135zzn2fx1pdiz"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
(list (string-append "CC=" ,(cc-for-target))
(string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(delete 'configure))))
(inputs
`(("zlib" ,zlib)))
(home-page "https://github.com/ebiggers/libdeflate")
(synopsis "Library for DEFLATE/zlib/gzip compression and decompression")
(description "Libdeflate is a library for fast, whole-buffer DEFLATE-based
compression and decompression. The supported formats are:
@enumerate
@item DEFLATE (raw)
@item zlib (a.k.a. DEFLATE with a zlib wrapper)
@item gzip (a.k.a. DEFLATE with a gzip wrapper)
@end enumerate
")
(license license:expat)))
(define-public tarlz
(package
(name "tarlz")

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018-2021 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl>
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
@ -38,6 +38,7 @@
#:use-module (gnu packages python)
#:use-module (gnu packages rsync)
#:use-module (gnu packages texinfo)
#:use-module (guix build-system dune)
#:use-module (guix build-system gnu)
#:use-module (guix build-system ocaml)
#:use-module (guix download)
@ -50,7 +51,7 @@
(define-public coq
(package
(name "coq")
(version "8.11.2")
(version "8.13.2")
(source
(origin
(method git-fetch)
@ -60,78 +61,24 @@
(file-name (git-file-name name version))
(sha256
(base32
"1gia82dkmzqspw2w3s4gjyh39ghbmw4i41i4hyzc91g7mza17nbz"))))
"15r0cm3p9dlsxbg0lf05njjp1xi1y74vxvq6drxjykax67x95l8a"))))
(native-search-paths
(list (search-path-specification
(variable "COQPATH")
(files (list "lib/coq/user-contrib")))))
(build-system ocaml-build-system)
(outputs '("out" "ide"))
(files (list "lib/coq/user-contrib")))
(search-path-specification
(variable "COQLIB")
(files (list "lib/ocaml/site-lib/coq"))
(separator #f))))
(build-system dune-build-system)
(inputs
`(("lablgtk" ,lablgtk3)
("python" ,python-2)
("camlp5" ,camlp5)
("ocaml-num" ,ocaml-num)))
`(("gmp" ,gmp)
("ocaml-zarith" ,ocaml-zarith)))
(native-inputs
`(("ocaml-ounit" ,ocaml-ounit)
("rsync" ,rsync)
("which" ,which)))
`(("which" ,which)))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-git-checkout-writable
(lambda _
(for-each make-file-writable (find-files "."))
#t))
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(mandir (string-append out "/share/man"))
(browser "icecat -remote \"OpenURL(%s,new-tab)\""))
(invoke "./configure"
"-prefix" out
"-mandir" mandir
"-browser" browser
"-coqide" "opt"))))
(replace 'build
(lambda _
(invoke "make"
"-j" (number->string (parallel-job-count))
"world")))
(delete 'check)
(add-after 'install 'remove-duplicate
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(coqtop (string-append bin "/coqtop"))
(coqidetop (string-append bin "/coqidetop"))
(coqtop.opt (string-append coqtop ".opt"))
(coqidetop.opt (string-append coqidetop ".opt")))
;; These files are exact copies without `.opt` extension.
;; Removing these saves 35 MiB in the resulting package.
;; Unfortunately, completely deleting them breaks coqide.
(delete-file coqtop.opt)
(delete-file coqidetop.opt)
(symlink coqtop coqtop.opt)
(symlink coqidetop coqidetop.opt))
#t))
(add-after 'install 'install-ide
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(ide (assoc-ref outputs "ide")))
(mkdir-p (string-append ide "/bin"))
(rename-file (string-append out "/bin/coqide")
(string-append ide "/bin/coqide")))
#t))
(add-after 'install 'check
(lambda _
(with-directory-excursion "test-suite"
;; These two tests fail.
;; Fails because the output is not formatted as expected.
(delete-file-recursively "coq-makefile/timing")
;; Fails because we didn't build coqtop.byte.
(delete-file "misc/printers.sh")
(invoke "make")))))))
`(#:package "coq"
#:test-target "test-suite"))
(home-page "https://coq.inria.fr")
(synopsis "Proof assistant for higher-order logic")
(description
@ -142,6 +89,31 @@ It is developed using Objective Caml and Camlp5.")
;; Some of the documentation is distributed under opl1.0+.
(license (list license:lgpl2.1 license:opl1.0+))))
(define-public coq-ide-server
(package
(inherit coq)
(name "coq-ide-server")
(arguments
`(#:tests? #f
#:package "coqide-server"))
(inputs
`(("coq" ,coq)
("gmp" ,gmp)
("ocaml-zarith" ,ocaml-zarith)))))
(define-public coq-ide
(package
(inherit coq)
(name "coq-ide")
(arguments
`(#:tests? #f
#:package "coqide"))
(propagated-inputs
`(("coq" ,coq)
("coq-ide-server" ,coq-ide-server)))
(inputs
`(("lablgtk3" ,lablgtk3)))))
(define-public proof-general
;; The latest release is from 2016 and there has been more than 450 commits
;; since then.
@ -274,7 +246,7 @@ inside Coq.")
(define-public coq-gappa
(package
(name "coq-gappa")
(version "1.4.4")
(version "1.4.6")
(source
(origin
(method git-fetch)
@ -284,7 +256,7 @@ inside Coq.")
(file-name (git-file-name name version))
(sha256
(base32
"0f3g3wjkvfkm961l4jpckhsqd43jnvm7f5qqk78qc32zh1fg339n"))))
"0492i0ksrz6dnc1d57jzsbmdlb9fp9hrh9ib5v8j0yqxpyi0x8f4"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
@ -298,13 +270,14 @@ inside Coq.")
(inputs
`(("gmp" ,gmp)
("mpfr" ,mpfr)
("ocaml-zarith" ,ocaml-zarith)
("boost" ,boost)))
(propagated-inputs
`(("coq-flocq" ,coq-flocq)))
(arguments
`(#:configure-flags
(list (string-append "--libdir=" (assoc-ref %outputs "out")
"/lib/coq/user-contrib/Gappa"))
(list (string-append "COQUSERCONTRIB=" (assoc-ref %outputs "out")
"/lib/coq/user-contrib"))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'fix-remake
@ -334,7 +307,7 @@ assistant.")
(define-public coq-mathcomp
(package
(name "coq-mathcomp")
(version "1.11.0")
(version "1.12.0")
(source
(origin
(method git-fetch)
@ -343,7 +316,7 @@ assistant.")
(commit (string-append "mathcomp-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1axywpa1jcpnidd86irpd1gdbbg2sfbwc652675xisq5wnmfmf6f"))))
(base32 "12cgrmzlcjnp9kv9zxsk34fgf0qfa35jdb23cbf13kmg8dyfi3h5"))))
(build-system gnu-build-system)
(native-inputs
`(("ocaml" ,ocaml)
@ -429,7 +402,7 @@ theorems between the two libraries.")
(define-public coq-bignums
(package
(name "coq-bignums")
(version "8.11.0")
(version "8.13.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -438,13 +411,14 @@ theorems between the two libraries.")
(file-name (git-file-name name version))
(sha256
(base32
"1xcd7c7qlvs0narfba6px34zq0mz8rffnhxw0kzhhg6i4iw115dp"))))
"1n66i7hd9222b2ks606mak7m4f0dgy02xgygjskmmav6h7g2sx7y"))))
(build-system gnu-build-system)
(native-inputs
`(("ocaml" ,ocaml)
("coq" ,coq)))
(inputs
`(("camlp5" ,camlp5)))
`(("camlp5" ,camlp5)
("ocaml-zarith" ,ocaml-zarith)))
(arguments
`(#:tests? #f ; No test target.
#:make-flags
@ -462,7 +436,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
(define-public coq-interval
(package
(name "coq-interval")
(version "4.0.0")
(version "4.3.0")
(source
(origin
(method git-fetch)
@ -472,7 +446,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
(file-name (git-file-name name version))
(sha256
(base32
"01iz6qmnsm6b9s1vmdjs79vjx9xgwzn5rwyjp6bvs8hg3zlmhpip"))))
"1jqvd17czhliscf40idhnxgrha620039ilrdyfahn71dg2jmzqnm"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
@ -484,11 +458,12 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
`(("flocq" ,coq-flocq)
("bignums" ,coq-bignums)
("coquelicot" ,coq-coquelicot)
("mathcomp" ,coq-mathcomp)))
("mathcomp" ,coq-mathcomp)
("ocaml-zarith" ,ocaml-zarith)))
(arguments
`(#:configure-flags
(list (string-append "--libdir=" (assoc-ref %outputs "out")
"/lib/coq/user-contrib/Gappa"))
(list (string-append "COQUSERCONTRIB=" (assoc-ref %outputs "out")
"/lib/coq/user-contrib"))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'fix-remake
@ -558,21 +533,23 @@ uses Ltac to synthesize the substitution operation.")
(define-public coq-equations
(package
(name "coq-equations")
(version "1.2.3")
(version "1.2.4")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mattam82/Coq-Equations")
(commit (string-append "v" version "-8.11"))))
(commit (string-append "v" version "-8.13"))))
(file-name (git-file-name name version))
(sha256
(base32
"1srxz1rws8jsh7402g2x2vcqgjbbsr64dxxj5d2zs48pmhb20csf"))))
"0i014lshsdflzw6h0qxra9d2f0q82vffxv2f29awbb9ad0p4rq4q"))))
(build-system gnu-build-system)
(native-inputs
`(("ocaml" ,ocaml)
("coq" ,coq)
("camlp5" ,camlp5)))
(inputs
`(("ocaml-zarith" ,ocaml-zarith)))
(arguments
`(#:test-target "test-suite"
#:phases
@ -598,7 +575,7 @@ kernel.")
(define-public coq-stdpp
(package
(name "coq-stdpp")
(version "1.4.0")
(version "1.5.0")
(synopsis "Alternative Coq standard library std++")
(source (origin
(method git-fetch)
@ -608,7 +585,7 @@ kernel.")
(file-name (git-file-name name version))
(sha256
(base32
"1m6c7ibwc99jd4cv14v3r327spnfvdf3x2mnq51f9rz99rffk68r"))))
"1ym0fy620imah89p8b6rii8clx2vmnwcrbwxl3630h24k42092nf"))))
(build-system gnu-build-system)
(inputs
`(("coq" ,coq)))

View file

@ -2,7 +2,7 @@
;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com>
;;; Copyright © 20182021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
@ -18,7 +18,9 @@
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Milkey Mouse <milkeymouse@meme.institute>
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -45,6 +47,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix modules)
#:use-module (guix gexp)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages boost)
@ -65,6 +68,7 @@
#:use-module (gnu packages maths)
#:use-module (gnu packages onc-rpc)
#:use-module (gnu packages perl)
#:use-module (gnu packages python)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt)
#:use-module (gnu packages pretty-print)
@ -127,7 +131,8 @@ range-v3 ranges are an abstraction layer on top of iterators.")
(git-file-name name version))
(patches
(search-patches
"c++-gsl-find-system-gtest.patch"))
"c++-gsl-find-system-gtest.patch"
"c++-gsl-move-array-bounds-tests.patch"))
(sha256
(base32 "0gbvr48f03830g3154bjhw92b8ggmg6wwh5xyb8nppk9v6w752l0"))))
(build-system cmake-build-system)
@ -364,10 +369,8 @@ functions, class methods, and stl containers.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(inc (string-append out "/include/fifo_map")))
(with-directory-excursion
(string-append "../" ,name "-" ,version "-checkout")
(install-file "src/fifo_map.hpp" inc)
#t)))))))
(with-directory-excursion "../source"
(install-file "src/fifo_map.hpp" inc))))))))
(synopsis "FIFO-ordered associative container for C++")
(description "Fifo_map is a C++ header only library for associative
container which uses the order in which keys were inserted to the container
@ -555,6 +558,66 @@ tools:
@end itemize\n")
(license license:bsd-3)))
(define-public cpp-httplib
;; this package is not graftable, as everything is implemented in a single
;; header
(package
(name "cpp-httplib")
(version "0.8.8")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/yhirose/cpp-httplib")
(commit (string-append "v" version))))
(sha256
(base32 "0c0gyfbvm34bgrqy9fhfxw1f8nb9zhf063j7xq91k892flb7qm1c"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
'("-DBUILD_SHARED_LIBS=ON"
"-DHTTPLIB_COMPILE=ON"
"-DHTTPLIB_REQUIRE_BROTLI=ON"
"-DHTTPLIB_REQUIRE_OPENSSL=ON"
"-DHTTPLIB_REQUIRE_ZLIB=ON")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'disable-network-tests
(lambda _
(for-each
(lambda (test)
(substitute* "test/test.cc"
(((string-append "\\(" test))
(string-append "(DISABLED_" test))))
;; There are tests requiring network access, disable them
'("AbsoluteRedirectTest" "BaseAuthTest" "CancelTest"
"ChunkedEncodingTest" "ChunkedEncodingTest"
"DecodeWithChunkedEncoding" "DefaultHeadersTest"
"DigestAuthTest" "HttpsToHttpRedirectTest"
"RangeTest" "RedirectTest" "RelativeRedirectTest"
"SSLClientTest" "SendAPI" "TooManyRedirectTest" "UrlWithSpace"
"YahooRedirectTest" "YahooRedirectTest"))))
(replace 'check
(lambda* (#:key source tests? #:allow-other-keys)
;; openssl genrsa wants to write a file in the git checkout
(when tests?
(with-directory-excursion "../source/test"
(invoke "make"))))))))
(native-inputs
;; required to build shared lib
`(("python" ,python)))
(inputs
`(("brotli" ,brotli)
("openssl" ,openssl)
("zlib" ,zlib)))
(home-page "https://github.com/yhirose/cpp-httplib")
(synopsis "C++ HTTP/HTTPS server and client library")
(description "cpp-httplib is a C++11 single-file cross platform blocking
HTTP/HTTPS library, easy to setup. It can also be used as a single-header
library.")
(license license:expat)))
(define-public cpplint
(package
(name "cpplint")
@ -1211,3 +1274,41 @@ of reading and writing XML.")
;; incompatible with the GPL v2. Refer to the file named FLOSSE for the
;; details.
(license license:gpl2+)))
(define-public jsonnet
(package
(name "jsonnet")
(version "0.17.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/google/jsonnet")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1ddz14699v5lqx3dh0mb7hfffr6fk5zhmzn3z8yxkqqvriqnciim"))
(modules '((guix build utils)))
(snippet
#~(begin
(rename-file "third_party/md5" ".md5")
(delete-file-recursively "third_party")
(delete-file-recursively "doc/third_party")
(substitute* '("core/vm.cpp")
(("#include \"json.hpp\"") "#include <nlohmann/json.hpp>"))
(mkdir "third_party")
(rename-file ".md5" "third_party/md5")))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DUSE_SYSTEM_GTEST=ON" "-DUSE_SYSTEM_JSON=ON"
"-DBUILD_STATIC_LIBS=OFF")))
(native-inputs
`(("googletest" ,googletest)
("pkg-config" ,pkg-config)))
(inputs
`(("json-modern-cxx" ,json-modern-cxx)))
(home-page "https://jsonnet.org/")
(synopsis "Data templating language")
(description "Jsonnet is a templating language extending JSON
syntax with variables, conditions, functions and more.")
(license license:asl2.0)))

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -21,6 +21,7 @@
;;; Copyright © 2020 pukkamustard <pukkamustard@posteo.net>
;;; Copyright © 2021 Ellis Kenyő <me@elken.dev>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;;
;;; This file is part of GNU Guix.
;;;
@ -46,8 +47,10 @@
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages cryptsetup)
#:use-module (gnu packages curl)
#:use-module (gnu packages documentation)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gnupg)
@ -58,6 +61,7 @@
#:use-module (gnu packages libbsd)
#:use-module (gnu packages libffi)
#:use-module (gnu packages linux)
#:use-module (gnu packages logging)
#:use-module (gnu packages lsof)
#:use-module (gnu packages man)
#:use-module (gnu packages multiprecision)
@ -399,63 +403,6 @@ secure operations. ")
(license (list license:lgpl2.1+ ; the files keyutils.*
license:gpl2+)))) ; the rest
;; There is no release candidate but commits point out a version number,
;; furthermore no tarball exists.
(define-public eschalot
(let ((commit "0bf31d88a11898c19b1ed25ddd2aff7b35dbac44")
(revision "1"))
(package
(name "eschalot")
(version (string-append "1.2.0-" revision "." (string-take commit 7)))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/schnabear/eschalot")
(commit commit)))
(file-name (string-append name "-" version))
(sha256
(base32
"0lj38ldh8vzi11wp4ghw4k0fkwp0s04zv8k8d473p1snmbh7mx98"))))
(inputs
`(("openssl" ,openssl-1.0))) ; for openssl/{bn,pem,rsa,sha}.h
(build-system gnu-build-system)
(arguments
`(#:make-flags (list (string-append "CC=" ,(cc-for-target))
(string-append "PREFIX=" (assoc-ref %outputs "out"))
(string-append "INSTALL=" "install"))
;; XXX: make test would run a !VERY! long hashing of names with the use
;; of a wordlist, the amount of computing time this would waste on build
;; servers is in no relation to the size or importance of this small
;; application, therefore we run our own tests on eschalot and worgen.
#:phases
(modify-phases %standard-phases
(delete 'configure)
(replace 'check
(lambda _
(invoke "./worgen" "8-12" "top1000.txt" "3-10" "top400nouns.txt"
"3-6" "top150adjectives.txt" "3-6")
(invoke "./eschalot" "-r" "^guix|^GuixSystem")
(invoke "./eschalot" "-r" "^gnu|^free")
(invoke "./eschalot" "-r" "^cyber|^hack")
(invoke "./eschalot" "-r" "^troll")))
;; Make install can not create the bin dir, create it.
(add-before 'install 'create-bin-dir
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(mkdir-p bin)
#t))))))
(home-page "https://github.com/schnabear/eschalot")
(synopsis "Tor hidden service name generator")
(description
"Eschalot is a tor hidden service name generator, it allows one to
produce customized vanity .onion addresses using a brute-force method. Searches
for valid names can be run with regular expressions and wordlists. For the
generation of wordlists the included tool @code{worgen} can be used. There is
no man page, refer to the home page for usage details.")
(license (list license:isc license:expat)))))
(define-public ssss
(package
(name "ssss")
@ -1119,7 +1066,7 @@ trivial to build for local use. Portability is emphasized over performance.")
("automake" ,automake)
("libtool" ,libtool)))
;; WARNING: This package might need additional configure flags to run properly.
;; See https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/libsecp256k1.
;; See https://github.com/archlinux/svntogit-community/blob/packages/libsecp256k1/trunk/PKGBUILD.
(synopsis "C library for EC operations on curve secp256k1")
(description
"Optimized C library for EC operations on curve secp256k1.
@ -1443,3 +1390,76 @@ them out. The process will degrade gracefully, so even people without your
encryption password can safely commit changes to the repository's
non-encrypted files.")
(license license:expat)))
(define-public cryfs
(package
(name "cryfs")
(version "0.11.0")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/cryfs/cryfs/releases/download/"
version "/cryfs-" version ".tar.xz"))
(sha256
(base32 "0dxphbj5sssm82rkkdb71algrcki16qlpzlvrjyvvm6b7x7zi0sm"))))
(build-system cmake-build-system)
(arguments
'(#:modules ((guix build cmake-build-system)
(guix build utils)
(srfi srfi-1))
#:configure-flags
;; Note: This also disables checking for security issues.
`("-DCRYFS_UPDATE_CHECKS=OFF"
;; This helps us use some dependencies from Guix instead of conan.
;; crypto++ is still bundled: https://github.com/cryfs/cryfs/issues/369
;; Googletest is also since I wasn't sure how to unbundle that.
,(string-append "-DDEPENDENCY_CONFIG=" (getcwd)
"/cmake-utils/DependenciesFromLocalSystem.cmake"))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'fix-configure
(lambda* (#:key tests? #:allow-other-keys)
;; Remove junk directory that breaks the build
(chdir "..") (delete-file-recursively ".circleci")
;; Install documentation with Guix defaults.
(substitute* "doc/CMakeLists.txt"
(("CONFIGURATIONS Release")
"CONFIGURATIONS Release RelWithDebInfo"))
(when tests?
(substitute* "CMakeLists.txt"
(("option.BUILD_TESTING .build test cases. OFF.")
"option(BUILD_TESTING \"build test cases\" ON)")))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(let ((tests (find-files "." "-test$")))
;; XXX: Disable failing tests. Unfortunately there are a
;; few. Some only fail in the build environment due to
;; FUSE not being available.
(for-each invoke
(lset-difference string-contains
tests
'("cpp-utils-test"
"cryfs-cli-test"
"blobstore-test"
"fspp-test")))))
#t)))))
(native-inputs
`(("python" ,python-wrapper)
("pkg-config" ,pkg-config)))
(inputs
`(("boost" ,boost)
("curl" ,curl)
("fuse" ,fuse)
("range-v3" ,range-v3)
("spdlog" ,spdlog)))
(home-page "https://www.cryfs.org/")
(synopsis "Encrypted FUSE filesystem for the cloud")
(description "CryFS encrypts your files, so you can safely store them anywhere.
It works well together with cloud services like Dropbox, iCloud, OneDrive and
others. CryFS creates an encrypted userspace filesystem that can be mounted
via FUSE without root permissions. It is similar to EncFS, but provides
additional security and privacy measures such as hiding file sizes and directory
structure. However CryFS is not considered stable yet by the developers.")
(license license:lgpl3+)))

View file

@ -502,14 +502,14 @@ should only be used as part of the Guix cups-pk-helper service.")
(define-public hplip
(package
(name "hplip")
(version "3.21.4")
(version "3.21.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/hplip/hplip/" version
"/hplip-" version ".tar.gz"))
(sha256
(base32
"1lsa0g8lafnmfyia0vy9x1j9q2l80xjjm7clkrawrbg53y3x7ixx"))
"1jkvbq64pxn5rg25pk13xwn5xr2bn0sa95yvh2q4ys0kv79n0cyc"))
(modules '((guix build utils)))
(snippet
'(begin
@ -871,7 +871,7 @@ HP@tie{}LaserJet, and possibly other printers. See @file{README} for details.")
(define-public epson-inkjet-printer-escpr
(package
(name "epson-inkjet-printer-escpr")
(version "1.7.12")
(version "1.7.17")
;; XXX: This currently works. But it will break as soon as a newer
;; version is available since the URLs for older versions are not
;; preserved. An alternative source will be added as soon as
@ -879,11 +879,11 @@ HP@tie{}LaserJet, and possibly other printers. See @file{README} for details.")
(source
(origin
(method url-fetch)
(uri (string-append "https://download3.ebz.epson.net/dsc/f/03/00/12/87/"
"86/a97f36f9db998e7d0d25fc963568f207073b85ad/"
"epson-inkjet-printer-escpr-1.7.12-1lsb3.2.tar.gz"))
(uri (string-append "https://download3.ebz.epson.net/dsc/f/03/00/12/99/"
"78/73605b3f8aac63694fdabee6bd43389731696cd9/"
"epson-inkjet-printer-escpr-1.7.17-1lsb3.2.tar.gz"))
(sha256
(base32 "11di33dhi8s0qf8dc3gai478ji4jszy4jmi5z5gfdkxmpljdlrq2"))))
(base32 "1d7ckrl5kya98h27mx4pgnaz5sbrsd5vhwc8kva9nfah9wsga4wg"))))
(build-system gnu-build-system)
(arguments
`(#:modules

View file

@ -12,6 +12,8 @@
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Dale Mellor <guix-devel-0brg6b@rdmp.org>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -35,6 +37,7 @@
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (gnu packages)
@ -46,6 +49,7 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages ssh)
#:use-module (gnu packages tls)
#:use-module (gnu packages web)
#:use-module (srfi srfi-1))
@ -146,6 +150,17 @@ tunneling, and so on.")
(define-public curl-minimal
(deprecated-package "curl-minimal" curl))
(define-public curl-ssh
(package/inherit curl
(arguments
(substitute-keyword-arguments (package-arguments curl)
((#:configure-flags flags)
`(cons "--with-libssh2" ,flags))))
(inputs
`(("libssh2" ,libssh2)
,@(package-inputs curl)))
(properties `((hidden? . #t)))))
(define-public kurly
(package
(name "kurly")
@ -300,3 +315,30 @@ user+password authentication, file transfer resume, http proxy tunneling and
more!")
(home-page "http://www.curlpp.org")
(license license:expat)))
(define-public h2c
(package
(name "h2c")
(version "1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/curl/h2c")
(commit version)))
(sha256
(base32
"1n8z6avzhg3yb330di2y9zymsps1qp1235p29kidcp4fkmn7fgb2"))
(file-name (git-file-name name version))))
(build-system copy-build-system)
(arguments
'(#:install-plan
'(("./h2c" "bin/"))))
(inputs
`(("perl" ,perl)))
(home-page "https://curl.se/h2c/")
(synopsis "Convert HTTP headers to a curl command line")
(description
"Provided a set of HTTP request headers, h2c outputs how to invoke
curl to obtain exactly that HTTP request.")
(license license:expat)))

View file

@ -9,7 +9,7 @@
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
;;; Copyright © 2016, 2017, 2018 Roel Janssen <roel@gnu.org>
@ -39,7 +39,7 @@
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019, 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org>
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
@ -52,6 +52,7 @@
;;; Copyright © 2021 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
;;; Copyright © 2021 Simon Streit <simon@netpanic.org>
;;; Copyright © 2021 Alexandre Hannud Abdo <abdo@member.fsf.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -88,11 +89,14 @@
#:use-module (gnu packages dbm)
#:use-module (gnu packages emacs)
#:use-module (gnu packages flex)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages jemalloc)
@ -109,6 +113,7 @@
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages onc-rpc)
#:use-module (gnu packages pantheon)
#:use-module (gnu packages parallel)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
@ -130,6 +135,7 @@
#:use-module (gnu packages ruby)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages ssh)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tcl)
#:use-module (gnu packages terminals)
@ -148,6 +154,7 @@
#:use-module (guix build-system emacs)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
#:use-module (guix build-system ruby)
@ -1032,14 +1039,14 @@ and high-availability (HA).")
(define-public postgresql-13
(package
(name "postgresql")
(version "13.3")
(version "13.4")
(source (origin
(method url-fetch)
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
"18dliq7h2l8irffhyyhdmfwx3si515q6gds3cxdjb9n7m17lbn9w"))
"1kf0gcsrl5n25rjlvkh87aywmn28kbwvakm5c7j1qpr4j01y34za"))
(patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))
(build-system gnu-build-system)
(arguments
@ -1090,38 +1097,38 @@ pictures, sounds, or video.")
(package
(inherit postgresql-13)
(name "postgresql")
(version "11.12")
(version "11.13")
(source (origin
(inherit (package-source postgresql-13))
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
"016bacpmqxc676ipzc1l8zv1jj44mjz7dv7jhqazg3ibdfqxiyc7"))))))
"0j5wnscnxa3sx8d39s55654df8aikmvkihfb0a02hrgmyygnihx0"))))))
(define-public postgresql-10
(package
(inherit postgresql-11)
(version "10.17")
(version "10.18")
(source (origin
(inherit (package-source postgresql-11))
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
"0v5jahkqm6gkq67s4bac3h7297bscn2ab6y128idi73cc1qq1wjs"))))))
"009qpb02bq0rx0aaw5ck70gk07xwparhfxvlfimgihw2vhp7qisp"))))))
(define-public postgresql-9.6
(package
(inherit postgresql-10)
(version "9.6.22")
(version "9.6.23")
(source (origin
(inherit (package-source postgresql-10))
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
"0c19kzrj5ib5ygmavf5d6qvxdwrxzzz6jz1r2dl5b815208cscix"))))))
"1fa735lrmv2vrfiixg73nh024gxlagcbrssklvgwdf0s82cgfjd8"))))))
(define-public postgresql postgresql-13)
@ -1374,6 +1381,15 @@ including field and record folding.")))
(delete 'configure)
;; The default target is only needed for tests and built on demand.
(delete 'build)
(add-before 'check 'mount-tmp
;; Use the provided workspace directory for test files.
;; Otherwise, /tmp is used which is a mount namespace on /gnu/store.
;; This speeds up the build when the host /tmp is a proper tmpfs or
;; other fast filesystem, as opposed to /gnu which may be a HDD.
(lambda _
(let ((test-dir (string-append (getcwd) "/../test")))
(mkdir test-dir)
(setenv "TEST_TMPDIR" (canonicalize-path test-dir)))))
(add-before 'check 'disable-optimizations
(lambda _
;; Prevent the build from passing '-march=native' to the compiler.
@ -1605,14 +1621,14 @@ changes.")
(define-public tdb
(package
(name "tdb")
(version "1.4.3")
(version "1.4.5")
(source (origin
(method url-fetch)
(uri (string-append "https://www.samba.org/ftp/tdb/tdb-"
version ".tar.gz"))
(sha256
(base32
"06waz0k50c7v3chd08mzp2rv7w4k4q9isbxx3vhlfpx1vy9q61f8"))))
"0h8fkblws3d4vf37yhbrbw2nfxg5vk2v3i5mk04hhcbh9y4fvz5w"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@ -2466,16 +2482,16 @@ virtual address space — not physical RAM.")
(define-public lmdbxx
(package
(name "lmdbxx")
(version "0.9.14.0")
(version "1.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/drycpp/lmdbxx")
(url "https://github.com/hoytech/lmdbxx")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1jmb9wg2iqag6ps3z71bh72ymbcjrb6clwlkgrqf1sy80qwvlsn6"))))
(base32 "12k5rz74d1l0skcks9apry1svkl96g9lf5dcgylgjmh7v1jm0b7c"))))
(arguments
`(#:make-flags
(list (string-append "PREFIX=" (assoc-ref %outputs "out")))
@ -2484,7 +2500,7 @@ virtual address space — not physical RAM.")
(delete 'configure))))
(build-system gnu-build-system)
(inputs `(("lmdb" ,lmdb)))
(home-page "http://lmdbxx.sourceforge.net")
(home-page "https://github.com/hoytech/lmdbxx")
(synopsis "C++11 wrapper for the LMDB embedded B+ tree database library")
(description "@code{lmdbxx} is a comprehensive @code{C++} wrapper for the
@code{LMDB} embedded database library, offering both an error-checked
@ -2920,18 +2936,20 @@ Database API 2.0T.")
(define-public python-sqlalchemy
(package
(name "python-sqlalchemy")
(version "1.3.20")
(version "1.4.23")
(source
(origin
(method url-fetch)
(uri (pypi-uri "SQLAlchemy" version))
(sha256
(base32 "18b9am7bsqc4nj3d2h5r93i002apczxfvpfpcqbd6f0385zmrwnj"))))
(base32 "10vm8hm8w4yfsab076ak8r4vp5v1jqdi71cky6dhha7mh5l29zvn"))))
(build-system python-build-system)
(native-inputs
`(("python-cython" ,python-cython) ; for C extensions
("python-pytest" ,python-pytest)
("python-mock" ,python-mock))) ; for tests
(propagated-inputs
`(("python-greenlet" ,python-greenlet)))
(arguments
`(#:phases
(modify-phases %standard-phases
@ -3066,13 +3084,13 @@ this library provides functions to facilitate such comparisons.")
(define-public python-alembic
(package
(name "python-alembic")
(version "1.4.3")
(version "1.7.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "alembic" version))
(sha256
(base32 "0if2dgb088clk738p26bwk50735h6jpd2kacdgc5capv2hiz6d2k"))))
(base32 "1ys0a44gh544xpbzz6r5xvz3msim74f9qklyfnw0bhn9vk9n9adf"))))
(build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
@ -3084,6 +3102,7 @@ this library provides functions to facilitate such comparisons.")
("python-pytest-cov" ,python-pytest-cov)))
(propagated-inputs
`(("python-dateutil" ,python-dateutil)
("python-importlib-resources" ,python-importlib-resources) ;Python < 3.9
("python-sqlalchemy" ,python-sqlalchemy)
("python-mako" ,python-mako)
("python-editor" ,python-editor)))
@ -3094,9 +3113,6 @@ this library provides functions to facilitate such comparisons.")
SQLAlchemy Database Toolkit for Python.")
(license license:expat)))
(define-public python2-alembic
(package-with-python2 python-alembic))
(define-public python-pickleshare
(package
(name "python-pickleshare")
@ -3138,7 +3154,7 @@ PickleShare.")
(define-public python-apsw
(package
(name "python-apsw")
(version "3.31.1-r1")
(version "3.36.0-r1")
(source
(origin
(method url-fetch)
@ -3146,7 +3162,7 @@ PickleShare.")
"/download/" version "/apsw-" version ".zip"))
(sha256
(base32
"1gap5lr6c7bp134nzvfwr693i6d0fqyaysg3ms2cayjldv616yfx"))))
"0w8q73147hv77dlpqrx6h1gx03acc8xqhvdpfp6vkffdm0wmqd8p"))))
(build-system python-build-system)
(native-inputs
`(("unzip" ,unzip)))
@ -3285,20 +3301,31 @@ designed to be easy and intuitive to use.")
(define-public python-sadisplay
(package
(name "python-sadisplay")
(version "0.4.8")
(version "0.4.9")
(source
(origin
(method url-fetch)
(uri (pypi-uri "sadisplay" version))
(sha256
(base32
"01d9lxhmgpb68gy8rd6zj6fcwp84n2qq210n1qsk3qbsir79bzh4"))))
"15jxwgla3q4xsp6rw8inqaiy1kdzc8l2cixj8amqcf0ji47icrxg"))))
(build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(if tests?
(begin
(setenv "PYTHONPATH"
(string-append ".:" (or (getenv "PYTHONPATH")
"")))
(invoke "pytest" "-vv"))
(format #t "test suite not run~%")))))))
(propagated-inputs
`(("python-sqlalchemy" ,python-sqlalchemy)))
(native-inputs
;; For tests.
`(("python-nose" ,python-nose)))
`(("python-pytest" ,python-pytest)))
(home-page "https://bitbucket.org/estin/sadisplay")
(synopsis "SQLAlchemy schema displayer")
(description "This package provides a program to build Entity
@ -3593,13 +3620,13 @@ provides support for parsing, splitting and formatting SQL statements.")
(define-public python-sql
(package
(name "python-sql")
(version "1.0.0")
(version "1.3.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-sql" version))
(sha256
(base32 "05ni936y0ia9xmryl7mlhbj9i80nnvq1bi4zxhb96rv7yvpb3fqb"))))
(base32 "0xnimfzlxj1ddrb5xj3s4gaii278a0gpxrvwmdmrdxgjfdi3lq4x"))))
(build-system python-build-system)
(home-page "https://python-sql.tryton.org/")
(synopsis "Library to write SQL queries in a pythonic way")
@ -3638,7 +3665,7 @@ the SQL language using a syntax that reflects the resulting query.")
(define-public apache-arrow
(package
(name "apache-arrow")
(version "4.0.1")
(version "5.0.0")
(source
(origin
(method git-fetch)
@ -3648,7 +3675,7 @@ the SQL language using a syntax that reflects the resulting query.")
(file-name (git-file-name name version))
(sha256
(base32
"1lcd9gdpwlrr92rm812a5p4l6zx0arwd0zj72a4ga699s1psz8yv"))))
"0275aayzy78nbxzbj93w5152sv5q2c7020ijxnf8b58v9qwfxzz0"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f
@ -3770,13 +3797,34 @@ algorithm implementations.")
(modify-phases %standard-phases
(delete 'build) ; XXX the build is performed again during the install phase
(add-after 'unpack 'enter-source-directory
(lambda _ (chdir "python") #t))
(lambda _ (chdir "python")))
(add-after 'unpack 'make-git-checkout-writable
(lambda _
(for-each make-file-writable (find-files "."))
#t)))))
(for-each make-file-writable (find-files "."))))
(add-before 'install 'patch-cmake-variables
(lambda* (#:key inputs #:allow-other-keys)
;; Replace cmake locations with hardcoded guix links for the
;; underlying C++ library and headers. This is a pretty awful
;; hack.
(substitute* "cmake_modules/FindParquet.cmake"
(("# Licensed to the Apache Software Foundation" m)
(string-append "set(PARQUET_INCLUDE_DIR \""
(assoc-ref inputs "apache-arrow:include")
"/share/include\")\n" m))
(("find_package_handle_standard_args" m)
(string-append "set(PARQUET_LIB_DIR \""
(assoc-ref inputs "apache-arrow:lib")
"/lib\")\n" m)))))
(add-before 'install 'patch-parquet-library
(lambda _
(substitute* "CMakeLists.txt"
(("parquet_shared") "parquet"))))
(add-before 'install 'set-PYARROW_WITH_PARQUET
(lambda _
(setenv "PYARROW_WITH_PARQUET" "1"))))))
(propagated-inputs
`(("apache-arrow" ,apache-arrow "lib")
`(("apache-arrow:lib" ,apache-arrow "lib")
("apache-arrow:include" ,apache-arrow "include")
("python-numpy" ,python-numpy)
("python-pandas" ,python-pandas)
("python-six" ,python-six)))
@ -3968,3 +4016,54 @@ PostreSQL, SQLite, ODBC and MySQL.")
"FreeTDS is an implementation of the Tabular DataStream protocol, used for
connecting to MS SQL and Sybase servers over TCP/IP.")
(license license:lgpl2.0+)))
(define-public sequeler
(package
(name "sequeler")
(version "0.8.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Alecaddd/sequeler")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1q1vzc3likpiwfh6blkyiz0wr0aarj9xrm8gbi7m3p1wslkpah7c"))))
(build-system meson-build-system)
(arguments
'(#:glib-or-gtk? #t
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'skip-gtk-update-icon-cache
;; Don't create 'icon-theme.cache'.
(lambda _
(substitute* "build-aux/meson_post_install.py"
(("gtk-update-icon-cache") "true")
(("update-desktop-database") "true"))
#t)))))
(native-inputs
`(;("appstream-glib" ,appstream-glib) ; validation fails for lack of network
("gettext-minimal" ,gettext-minimal)
("glib:bin" ,glib "bin") ; for glib-compile-resources
("gtk+" ,gtk+ "bin")
("pkg-config" ,pkg-config)
("vala" ,vala)))
(inputs
`(("glib" ,glib)
("granite" ,granite)
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("gtk+" ,gtk+)
("gtksourceview-3" ,gtksourceview-3)
("libgda" ,libgda)
("libgee" ,libgee)
("libsecret" ,libsecret)
("libssh2" ,libssh2)
("libxml2" ,libxml2)))
(synopsis "Friendly SQL Client")
(description "Sequeler is a native Linux SQL client built in Vala and
Gtk. It allows you to connect to your local and remote databases, write SQL in
a handy text editor with language recognition, and visualize SELECT results in
a Gtk.Grid Widget.")
(home-page "https://github.com/Alecaddd/sequeler")
(license license:gpl2+)))

View file

@ -6,6 +6,7 @@
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;;
;;; This file is part of GNU Guix.
;;;
@ -24,6 +25,7 @@
(define-module (gnu packages dbm)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
@ -57,6 +59,19 @@
#:disallowed-references ("doc")
#:phases
(modify-phases %standard-phases
;; The configure script is too old to recognise aarch64 and
;; powerpc64le as valid architectures. The trick below works
;; for "--build", but not for "--host", so update config.sub.
,@(if (and (%current-target-system)
(or (target-ppc64le? (%current-target-system))
(target-aarch64? (%current-target-system))))
`((add-after 'unpack 'update-config.sub
(lambda* (#:key native-inputs #:allow-other-keys)
(delete-file "dist/config.sub")
(symlink
(search-input-file native-inputs "/bin/config.sub")
"dist/config.sub"))))
'())
(replace 'configure
(lambda* (#:key target outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
@ -97,6 +112,12 @@
;; of db_cxx.h into C++ files works; it leads to
;; HAVE_CXX_STDHEADERS being defined in db_cxx.h.
"--enable-cxx")))))))
(native-inputs
(if (and (%current-target-system)
(or (target-ppc64le? (%current-target-system))
(target-aarch64? (%current-target-system))))
`(("config" ,config)) ; for config.sub
'()))
(synopsis "Berkeley database")
(description
"Berkeley DB is an embeddable database allowing developers the choice of

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2020 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2020, 2021 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2016, 2017, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
@ -7,6 +7,7 @@
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -38,6 +39,7 @@
#:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages c)
#:use-module (gnu packages check)
#:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages flex)
@ -55,6 +57,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages python)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages readline)
#:use-module (gnu packages serialization)
@ -171,6 +174,58 @@ intended for use by people who discover and report bugs in compilers and other
tools that process C/C++ code.")
(license license:ncsa)))
(define-public c-vise
(package
(name "c-vise")
(version "2.3.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/marxin/cvise")
(commit (string-append "v" version))))
(sha256
(base32 "0f6m58rak87gvcvxxcgp1bzbsv1q618h0iipmv0dx9jv1bn0qv43"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(native-inputs
`(("flex" ,flex)
("python-pytest" ,python-pytest)
("python-pytest-flake8" ,python-pytest-flake8)))
(inputs
`(("bash" ,bash-minimal) ; For wrap-program
("clang" ,clang)
("llvm" ,llvm)
("python" ,python)
("python-pebble" ,python-pebble)
("python-psutil" ,python-psutil)
("unifdef" ,unifdef)))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'build 'hardcode-paths
(lambda _
(substitute* "cvise.py"
(("/bin/bash") (which "bash"))
(("(.*)# Special case for clang-format" & >)
(string-append > "# Special case for unifdef\n"
> "programs['unifdef'] = '" (which "unifdef") "'\n"
&)))))
(add-after 'install 'wrap
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(python-path (getenv "GUIX_PYTHONPATH")))
(wrap-program (string-append out "/bin/cvise")
`("PYTHONPATH" ":" prefix (,python-path)))
#t))))))
(home-page "https://github.com/marxin/cvise")
(synopsis "Reducer for interesting code")
(description
"C-Vise is a Python port of the C-Reduce tool that is fully compatible
and uses the same efficient LLVM-based C/C++ @code{clang_delta} reduction
tool.")
(license license:ncsa)))
(define-public american-fuzzy-lop
(let ((machine (match (or (%current-target-system)
(%current-system))

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Ryan Prior <rprior@protonmail.com>
;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -20,8 +21,10 @@
(define-module (gnu packages digest)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (guix utils)
#:use-module (ice-9 match))
@ -96,3 +99,21 @@ The code is highly portable, and hashes of the same length are identical on all
platforms (both big and little endian).")
(license (list license:bsd-2 ; xxhash library (xxhash.[ch])
license:gpl2+)))) ; xxhsum.c
(define-public python-xxhash
(package
(name "python-xxhash")
(version "2.0.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "xxhash" version))
(sha256
(base32
"0jbvz19acznq00544gcsjg05fkvrmwbnwdfgrvwss3i1ys6avgmp"))))
(build-system python-build-system)
(home-page "https://github.com/ifduyue/python-xxhash")
(synopsis "Python binding for xxHash")
(description "This package provides Python bindings for the xxHash hash
algorithm.")
(license license:bsd-3)))

View file

@ -71,6 +71,7 @@
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages readline)
#:use-module (gnu packages samba)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages swig)
@ -554,14 +555,14 @@ and can dramatically shorten the lifespan of the drive if left unchecked.")
(define-public gparted
(package
(name "gparted")
(version "1.3.0")
(version "1.3.1")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gparted/gparted/gparted-"
version "/gparted-" version ".tar.gz"))
(sha256
(base32 "0amx3hb4rc504nl9i73rgyz0hzhq5x8nkg7lwbk4bsnrblj81hcd"))))
(base32 "02g1s6hrhnias7kj241l0f72kllfhq6338mk2dmzjpmifinjxvjy"))))
(build-system glib-or-gtk-build-system)
(arguments
;; Tests require access to paths outside the build container, such
@ -687,7 +688,7 @@ a card with a smaller capacity than stated.")
(define-public duperemove
(package
(name "duperemove")
(version "0.11.2")
(version "0.11.3")
(source
(origin
(method git-fetch)
@ -695,7 +696,7 @@ a card with a smaller capacity than stated.")
(url "https://github.com/markfasheh/duperemove")
(commit (string-append "v" version))))
(sha256
(base32 "1a87mka2sfzhbch2jip6wlvvs0glxq9lqwmyrp359d1rmwwmqiw9"))
(base32 "0jwxmhadv2f1mx7gan4gk0xwrjr5g2xa71z1rp0knc1acbkhqdas"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(native-inputs

View file

@ -10,6 +10,7 @@
;;; Copyright © 2020 Fredrik Salomonsson <plattfot@gmail.com>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -37,6 +38,7 @@
#:use-module (guix build-system trivial)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix gexp)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages fontutils)
@ -95,7 +97,7 @@
("wayland" ,wayland)))
(arguments
`(#:configure-flags
(list
,#~(list
;; This option currently does nothing, but will presumably be enabled
;; if/when <https://github.com/sddm/sddm/pull/616> is merged.
"-DENABLE_WAYLAND=ON"
@ -106,12 +108,12 @@
;; Set path to /etc/login.defs.
;; An alternative would be to use -DUID_MIN and -DUID_MAX.
(string-append "-DLOGIN_DEFS_PATH="
(assoc-ref %build-inputs "shadow")
#$(this-package-input "shadow")
"/etc/login.defs")
(string-append "-DQT_IMPORTS_DIR="
(assoc-ref %outputs "out") "/lib/qt5/qml")
#$output "/lib/qt5/qml")
(string-append "-DCMAKE_INSTALL_SYSCONFDIR="
(assoc-ref %outputs "out") "/etc"))
#$output "/etc"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'embed-loginctl-reference

View file

@ -34,6 +34,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages databases)
#:use-module (gnu packages check)
#:use-module (gnu packages finance)
#:use-module (gnu packages geo)
#:use-module (gnu packages openldap)
#:use-module (gnu packages python)
@ -48,13 +49,13 @@
(define-public python-django
(package
(name "python-django")
(version "3.2.4")
(version "3.2.6")
(source (origin
(method url-fetch)
(uri (pypi-uri "Django" version))
(sha256
(base32
"15pjwyvrx4n8gi8n51b14wp54bg4jqapr25p52597zn6ikdxijb6"))))
"08p0gf1n548fjba76wspcj1jb3li6lr7xi87w2xq7hylr528azzj"))))
(build-system python-build-system)
(arguments
'(#:phases
@ -79,6 +80,8 @@
(lambda* (#:key tests? #:allow-other-keys)
(if tests?
(with-directory-excursion "tests"
;; Tests expect PYTHONPATH to contain the root directory.
(setenv "PYTHONPATH" "..")
(invoke "python" "runtests.py"
;; By default tests run in parallel, which may cause
;; various race conditions. Run sequentially for
@ -181,6 +184,42 @@ to the @dfn{don't repeat yourself} (DRY) principle.")
commands, additional database fields and admin extensions.")
(license license:expat)))
(define-public python-django-localflavor
(package
(name "python-django-localflavor")
(version "3.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "django-localflavor" version))
(sha256
(base32 "0i1s0ijfd9rv2cp5x174jcyjpwn7fyg7s1wpbvlwm96bpdvs6bxc"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(setenv "PYTHONPATH"
(string-append ".:"
(getenv "PYTHONPATH")))
(invoke "invoke" "test")))))))
(native-inputs
`(("python-coverage" ,python-coverage)
("python-invoke" ,python-invoke)
("python-pytest-django" ,python-pytest-django)
("which" ,which)))
(propagated-inputs
`(("python-django" ,python-django)
("python-stdnum" ,python-stdnum)))
(home-page "https://django-localflavor.readthedocs.io/en/latest/")
(synopsis "Country-specific Django helpers")
(description "Django-LocalFlavor is a collection of assorted pieces of code
that are useful for particular countries or cultures.")
(license license:bsd-3)))
(define-public python-django-simple-math-captcha
(package
(name "python-django-simple-math-captcha")
@ -305,16 +344,19 @@ size and quality.")
(define-public python-pytest-django
(package
(name "python-pytest-django")
(version "3.10.0")
(version "4.4.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "pytest-django" version))
(sha256
(base32
"19nvqsb7b9kz3ikpb50m8ppf7mfhzrapdxsqd5hhd1pdfz8dprjd"))))
"0mglnz0w6k7dgw1jn6giv56pmdjd6a3zwwkhxb2kyzmzk0viw5xm"))))
(build-system python-build-system)
(arguments
`(#:phases
;; The test suite is disabled because there are many test failures (see:
;; https://github.com/pytest-dev/pytest-django/issues/943).
`(#:tests? #f
#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? inputs outputs #:allow-other-keys)
@ -334,9 +376,8 @@ size and quality.")
(native-inputs
`(("python-django" ,python-django)
("python-setuptools-scm" ,python-setuptools-scm)
;; For tests.
("python-pytest-xdist" ,python-pytest-xdist)))
("python-pytest-xdist" ,python-pytest-xdist-next)))
(propagated-inputs
`(("python-pytest" ,python-pytest)))
(home-page "https://pytest-django.readthedocs.org/")

View file

@ -2,7 +2,7 @@
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -151,7 +151,7 @@ a continuous layout.")
(define-public pdf2djvu
(package
(name "pdf2djvu")
(version "0.9.17.1")
(version "0.9.18")
(source
(origin
(method url-fetch)
@ -159,7 +159,7 @@ a continuous layout.")
"https://github.com/jwilk/pdf2djvu/releases/download/" version
"/pdf2djvu-" version ".tar.xz"))
(sha256
(base32 "18r648kna6ccw0m0nfxxnsmz541k69d0w9zzqvm1x2l5qyyvgfsv"))))
(base32 "0vxa0b3g7zhflc5m6ln4f0hi0shsqyqc3344y7azlllibxc5ba22"))))
(build-system gnu-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
@ -174,7 +174,12 @@ a continuous layout.")
("poppler-data" ,poppler-data)
("util-linux-lib" ,util-linux "lib"))) ; for libuuid
(arguments
`(#:test-target "test"))
`(#:test-target "test"
#:phases
(modify-phases %standard-phases
(add-before 'check 'set-home-for-tests
(lambda _
(setenv "HOME" "/tmp"))))))
(synopsis "PDF to DjVu converter")
(description
"@code{pdf2djvu} creates DjVu files from PDF files.

View file

@ -539,14 +539,14 @@ asynchronous fashion.")
(define-public nsd
(package
(name "nsd")
(version "4.3.6")
(version "4.3.7")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.nlnetlabs.nl/downloads/nsd/nsd-"
version ".tar.gz"))
(sha256
(base32 "062zwx4k5rgpg2c0b4721ldj36aj8clrxv79mlfw9b15ap7w1rmy"))))
(base32 "1bg87g0i66hw16fm7gbqmzyi2rcn1hadzz0bg9b8s5mx7g2rwfzx"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@ -609,14 +609,14 @@ to result in system-wide compromise.")
(define-public unbound
(package
(name "unbound")
(version "1.13.1")
(version "1.13.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.unbound.net/downloads/unbound-"
version ".tar.gz"))
(sha256
(base32 "1f2hky62f4xxnjr0lncrzz4gipg01rp12pf98mrqkgf5ixxxj145"))))
(base32 "10qs1q26lzw18ljggnbz0cc5f7lr9ksj615xbrmh4amryd3va4qa"))))
(build-system gnu-build-system)
(outputs '("out" "python"))
(native-inputs
@ -947,14 +947,14 @@ synthesis, and on-the-fly re-configuration.")
(define-public knot-resolver
(package
(name "knot-resolver")
(version "5.3.2")
(version "5.4.1")
(source (origin
(method url-fetch)
(uri (string-append "https://secure.nic.cz/files/knot-resolver/"
"knot-resolver-" version ".tar.xz"))
(sha256
(base32
"0dhlq25lig8wmn72ambfmb1njwwp980d98i9q7a24d79bxyl8vwb"))))
"0rixiqfj53rfabrz8qpnq4whx8y29d2m5w64a4jlwx7gv4nrd2zv"))))
(build-system meson-build-system)
(outputs '("out" "doc"))
(arguments

View file

@ -6,6 +6,8 @@
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Andrew Whatson <whatson@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -24,16 +26,18 @@
(define-module (gnu packages docbook)
#:use-module (gnu packages)
#:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages inkscape)
#:use-module (gnu packages tex)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages perl)
#:use-module (gnu packages python)
#:use-module (gnu packages base)
#:use-module (gnu packages web-browsers)
#:use-module (gnu packages xml)
#:use-module (guix licenses)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module ((guix build utils) #:select (alist-replace))
@ -80,7 +84,7 @@
"DocBook is general purpose XML and SGML document type particularly well
suited to books and papers about computer hardware and software (though it is
by no means limited to these applications.) This package provides XML DTDs.")
(license (x11-style "" "See file headers."))))
(license (license:x11-style "" "See file headers."))))
(define-public docbook-xml
(package
@ -223,7 +227,7 @@ by no means limited to these applications.) This package provides XML DTDs.")
(synopsis "DocBook XSL style sheets for document authoring")
(description
"This package provides XSL style sheets for DocBook.")
(license (x11-style "" "See 'COPYING' file."))))
(license (license:x11-style "" "See 'COPYING' file."))))
(define-public docbook-dsssl
(package
@ -264,7 +268,7 @@ by no means limited to these applications.) This package provides XML DTDs.")
(home-page "https://docbook.org/")
(synopsis "DSSSL style sheets for DocBook")
(description "This package provides DSSSL style sheets for DocBook.")
(license (non-copyleft "file://README"))))
(license (license:non-copyleft "file://README"))))
;;; Private variable, used as the 'doc' output of the docbook-dsssl package.
(define docbook-dsssl-doc
@ -302,7 +306,7 @@ by no means limited to these applications.) This package provides XML DTDs.")
(home-page "https://docbook.org/")
(synopsis "DocBook DSSSL style sheets documentation")
(description "Documentation for the DocBook DSSSL style sheets.")
(license (non-copyleft "file://doc/LEGALNOTICE.htm"))))
(license (license:non-copyleft "file://doc/LEGALNOTICE.htm"))))
(define-public docbook-sgml
(package
@ -344,7 +348,7 @@ by no means limited to these applications.) This package provides XML DTDs.")
(home-page "https://docbook.org")
(synopsis "DocBook SGML style sheets for document authoring")
(description "This package provides SGML style sheets for DocBook.")
(license (x11-style "" "See file headers."))))
(license (license:x11-style "" "See file headers."))))
(define-public docbook-sgml-3.1
(package
@ -385,7 +389,7 @@ by no means limited to these applications.) This package provides XML DTDs.")
(synopsis "ISO 8879 character entities")
(description "ISO 8879 character entities that are typically used in
the in DocBook SGML DTDs.")
(license (x11-style "" "See file headers."))))
(license (license:x11-style "" "See file headers."))))
(define-public dblatex
(package
@ -413,7 +417,7 @@ the in DocBook SGML DTDs.")
texlive-latex-fancyvrb
texlive-latex-float
texlive-latex-footmisc
texlive-latex-hyperref
texlive-hyperref
texlive-latex-jknapltx
texlive-latex-listings
texlive-latex-multirow
@ -422,10 +426,10 @@ the in DocBook SGML DTDs.")
texlive-latex-refcount
texlive-latex-subfigure
texlive-latex-titlesec
texlive-latex-wasysym
texlive-wasysym
texlive-fonts-rsfs
texlive-fonts-stmaryrd
texlive-stmaryrd
texlive-generic-iftex)))
("imagemagick" ,imagemagick) ;for convert
@ -465,7 +469,7 @@ to DVI, PostScript or PDF by translating them in pure LaTeX as a first
process. MathML 2.0 markups are supported too. It started as a clone of
DB2LaTeX.")
;; lib/contrib/which is under an X11 license
(license gpl2+)))
(license license:gpl2+)))
;; This is a variant of the 'dblatex' package that is not updated often. It
;; is intended to be used as a native-input at build-time only, e.g. by
@ -561,4 +565,93 @@ more conveniently via the following wrappers:
@item sgmldiff
Detect the differences in markup between two SGML files.
@end table")
(license gpl2+)))
(license license:gpl2+)))
(define-public docbook2x
(package
(name "docbook2x")
(version "0.8.8")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/docbook2x/docbook2x/"
version "/docbook2X-" version ".tar.gz"))
(sha256
(base32
"0ifwzk99rzjws0ixzimbvs83x6cxqk1xzmg84wa1p7bs6rypaxs0"))))
(build-system gnu-build-system)
(inputs
`(("bash-minimal" ,bash-minimal)
("docbook-xml" ,docbook-xml)
("perl" ,perl)
("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
("perl-xml-parser" ,perl-xml-parser)
("perl-xml-sax" ,perl-xml-sax)
("perl-xml-sax-base" ,perl-xml-sax-base)
("texinfo" ,texinfo)
("xsltproc" ,libxslt)))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'configure 'patch-sources
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Fix failed substitution in config.pl
(substitute* "perl/config.pl"
(("\\$\\{prefix\\}")
(assoc-ref outputs "out")))
;; Fix a failing test (maybe it worked with old texinfo?)
(substitute* "test/complete-manuals/at1.xml"
(("<bridgehead>")
"<bridgehead renderas=\"sect2\">"))
;; Patch all the tests use DocBook 4.5
(substitute* (find-files "test" "\\.xml$")
(("\"-//OASIS//DTD DocBook XML V4\\..+//EN\"")
"\"-//OASIS//DTD DocBook XML V4.5//EN\"")
(("\"http://www\\.oasis-open\\.org/docbook/xml/4\\..+/docbookx.dtd\"")
"\"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd\""))
;; Set XML catalogs for tests to pass
(setenv "XML_CATALOG_FILES"
(string-append (assoc-ref inputs "docbook-xml")
"/xml/dtd/docbook/catalog.xml"))))
(add-after 'install 'wrap-programs
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(programs
(map (lambda (p)
(string-append out "/bin/" p))
'("db2x_manxml" "db2x_texixml" "db2x_xsltproc"
"docbook2man" "docbook2texi")))
(perl5lib
(map (lambda (i)
(string-append (assoc-ref inputs i)
"/lib/perl5/site_perl"))
'("perl-xml-namespacesupport"
"perl-xml-parser"
"perl-xml-sax"
"perl-xml-sax-base")))
(xml-catalog-files
(list (string-append (assoc-ref inputs "docbook-xml")
"/xml/dtd/docbook/catalog.xml"))))
(map (lambda (program)
(wrap-program program
`("PERL5LIB" ":" prefix
,perl5lib)
`("XML_CATALOG_FILES" " " prefix
,xml-catalog-files)))
programs))))
(add-after 'install 'create-symlinks
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
;; Create db2x_* symlinks to satisfy some configure scripts
;; which use these names to differentiate from an older
;; docbook2man script provided by docbook-utils.
(map (lambda (prog)
(symlink prog (string-append out "/bin/db2x_" prog)))
'("docbook2man" "docbook2texi"))))))))
(home-page "http://docbook2x.sourceforge.net")
(synopsis "Convert DocBook to man page and Texinfo format")
(description
"docbook2X is a software package that converts DocBook documents into the
traditional Unix man page format and the GNU Texinfo format. Notable features
include table support for man pages, internationalization support, and easy
customization of the output using XSLT.")
(license license:expat)))

View file

@ -1,199 +0,0 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages drones)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (gnu packages cross-base)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages xml)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix git-download)
#:use-module (guix build-system gnu))
(define (ardupilot-type->tag type)
(case type
((copter) "Copter")
((plane) "ArduPlane")
((rover) "Rover")
(else #f)))
(define (ardupilot-type->waf-cmd type)
(symbol->string type))
(define* (make-ardupilot-firmware #:key name version base32 type board target)
(package
(name (string-append name "-" board))
(version version)
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ArduPilot/ardupilot")
(commit (string-append
(ardupilot-type->tag type) "-" version))
;; XXX: Ardupilot includes several git submodules. They should be
;; avoided but as this is not supported upstream, and not trivial
;; to fix, keep it this way for now.
(recursive? #t)))
(file-name (git-file-name name version))
(sha256 base32)))
;; Could also be waf-build-system but every phase has to be rewritten
;; anyway.
(build-system gnu-build-system)
(arguments
`(#:imported-modules ((gnu build cross-toolchain)
,@%gnu-build-system-modules)
#:phases
(modify-phases %standard-phases
(delete 'bootstrap)
;; Remove the root waf script that relies on waf git submodule.
(add-before 'configure 'setup-waf
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(let ((waf (assoc-ref (or native-inputs inputs) "waf")))
(delete-file "waf")
(copy-file (string-append waf "/bin/waf") "waf"))
#t))
;; When cross-compiling, we do not want to use the default gnu
;; cross-compiler, so set CROSS_CPATH and CROSS_LIBRARY_PATH
;; variables ourselves instead.
(delete 'set-cross-path)
(add-before 'configure 'set-custom-cross-cpath
(lambda* (#:key native-inputs inputs #:allow-other-keys)
((@@ (gnu build cross-toolchain) set-cross-path)
#:inputs
`(("libc" . ,(assoc-ref (or native-inputs inputs)
"ardupilot-cross-libc"))
("xkernel-headers" .
,(assoc-ref (or native-inputs inputs)
"ardupilot-cross-kernel-headers"))))
;; We need to produce a static binary, so that it can works on
;; other systems than Guix System. Add a static version of the
;; cross libc to CROSS_LIBRARY_PATH variable.
(setenv "CROSS_LIBRARY_PATH"
(string-append
(getenv "CROSS_LIBRARY_PATH") ":"
(assoc-ref (or native-inputs inputs)
"ardupilot-cross-libc-static") "/lib"))
#t))
;; Remove dependencies to 'git'.
(add-before 'configure 'remove-git
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "wscript"
(("^.*cfg\\.load\\('git_submodule.*$")
""))
(substitute* "Tools/ardupilotwaf/boards.py"
(("^.*GIT_VERSION.*$")
""))
#t))
;; Configure for the given BOARD, and force a static build for
;; reasons exposed above.
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(invoke "./waf" "configure" "--board" ,board "--static")
#t))
(replace 'build
(lambda* (#:key outputs #:allow-other-keys)
(invoke "./waf" ,(ardupilot-type->waf-cmd type))
#t))
;; Do not run tests as we are always cross-compiling.
(delete 'check)
;; Install the produced firmware.
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(mkdir-p bin)
(copy-recursively
(string-append "build/" ,board "/bin") bin))
#t)))))
(native-inputs
`(("waf" ,python-waf)
("python" ,python)
("python-future" ,python-future)
("python-lxml" ,python-lxml)
;; Packages needed for cross-compiling the firmware.
("ardupilot-cross-gcc" ,(cross-gcc target
#:xbinutils
(cross-binutils target)
#:libc
(cross-libc target)))
("ardupilot-cross-libc" ,(cross-libc target))
("ardupilot-cross-libc-static" ,(cross-libc target) "static")
("ardupilot-cross-kernel-headers"
,@(assoc-ref (package-propagated-inputs
(cross-libc target))
"kernel-headers"))
("ardupilot-cross-binutils" ,(cross-binutils target))
("ardupilot-cross-pkg-config" ,(parameterize ((%current-target-system
target))
pkg-config))))
(home-page "https://ardupilot.org/")
(synopsis "Unmanned vehicle autopilot software suite")
(description "@code{ardupilot} is an unmanned vehicle autopilot software
suite capable of controlling autonomous:
@itemize
@item multirotor drones
@item fixed-wing and vtol aircraft
@item helicopters
@item ground rovers
@item boats
@item submarines
@item antenna trackers
@end itemize")
(license gpl3+)))
(define (make-arducopter-firmware board target)
(make-ardupilot-firmware
#:name "arducopter"
#:version "3.6.11"
#:base32 (base32 "1zkr2nhkksmrriirs2dnp8a0gcf9rfqw1x86pzhh6w4ciqwpidqn")
#:type 'copter
#:board board
#:target target))
(define (make-arduplane-firmware board target)
(make-ardupilot-firmware
#:name "arduplane"
#:version "4.0.1"
#:base32 (base32 "0awafvrppg4ilwpbhw88r5xkbgqrmqypsn6lbzyi6bz0zy5cfhb5")
#:type 'plane
#:board board
#:target target))
(define-public arducopter-bbbmini
(make-arducopter-firmware "bbbmini" "arm-linux-gnueabihf"))
(define-public arduplane-bbbmini
(make-arduplane-firmware "bbbmini" "arm-linux-gnueabihf"))
;; Firmware for Bebop and Bebop2 drones.
(define-public arducopter-bebop
(make-arducopter-firmware "bebop" "arm-linux-gnueabihf"))

View file

@ -8,6 +8,7 @@
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2021 la snesne <lasnesne@lagunposprasihopre.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -35,6 +36,7 @@
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
@ -116,7 +118,7 @@ with Microsoft Compiled HTML (CHM) files")
(define-public calibre
(package
(name "calibre")
(version "5.14.0")
(version "5.21.0")
(source
(origin
(method url-fetch)
@ -125,7 +127,7 @@ with Microsoft Compiled HTML (CHM) files")
version ".tar.xz"))
(sha256
(base32
"0w8j9r9qa56r8gm9b10dwh8zrzqlv79s2br82jqg02lrnrbwwv0q"))
"0mq2w8blq6ykaml812axakwkqcw85qcpfwijdikn7kvbrhnnp2s5"))
(modules '((guix build utils)))
(snippet
'(begin
@ -475,7 +477,7 @@ following formats:
(define-public cozy
(package
(name "cozy")
(version "1.0.3")
(version "1.1.2")
(source
(origin
(method git-fetch)
@ -484,7 +486,7 @@ following formats:
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0m0xiqpb87pwr3fhy0a4qxg67yjhwchcxj3x2anyy0li4inryxag"))))
(base32 "0hifzzhhf0ww6iar9gswjfndy3i54s6jc41zaazlx4scc7r6fhs0"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
@ -493,14 +495,12 @@ following formats:
(add-after 'unpack 'patch-desktop-file
(lambda _
(substitute* "data/com.github.geigi.cozy.desktop"
(("Exec=com.github.geigi.cozy") "Exec=cozy"))
#t))
(("Exec=com.github.geigi.cozy") "Exec=cozy"))))
(add-after 'install 'patch-executable-name
(lambda* (#:key outputs #:allow-other-keys)
(with-directory-excursion
(string-append (assoc-ref outputs "out") "/bin")
(rename-file "com.github.geigi.cozy" "cozy"))
#t))
(rename-file "com.github.geigi.cozy" "cozy"))))
(add-after 'wrap 'wrap-libs
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@ -519,8 +519,7 @@ following formats:
`("LD_LIBRARY_PATH" ":" prefix (,libmagic-path))
`("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
`("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
`("GUIX_PYTHONPATH" ":" prefix (,python-path ,pylib))))
#t)))))
`("GUIX_PYTHONPATH" ":" prefix (,python-path ,pylib)))))))))
(native-inputs
`(("desktop-file-utils" ,desktop-file-utils)
("gettext" ,gettext-minimal)
@ -538,6 +537,7 @@ following formats:
("gst-plugins-good" ,gst-plugins-good)
("gst-plugins-ugly" ,gst-plugins-ugly)
("gtk+" ,gtk+)
("libdazzle" ,libdazzle)
("libgee" ,libgee)
("libhandy" ,libhandy)
("python-distro" ,python-distro)
@ -596,3 +596,47 @@ Some of the current features:
(description "xCHM is a graphical CHM file viewer. It is a frontend to
the CHM library CHMLIB.")
(license license:gpl2+)))
(define-public libmobi
(package
(name "libmobi")
(version "0.6")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/bfabiszewski/libmobi/")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0yps72cm609xn2k7alflkdhp9kgr1w7zzyxjygz0n1kqrdcplihh"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)))
(inputs
`(("zlib" ,zlib)
("libxml2" ,libxml2)))
(home-page "https://github.com/bfabiszewski/libmobi/")
(synopsis "C library for handling MOBI formats")
(description "Libmobi is a C library for handling MOBI ebook
format documents, with the following features:
@itemize
@item reading and parsing:
@itemize
@item some older text Palmdoc formats (pdb),
@item Mobipocket files (prc, mobi),
@item newer MOBI files including KF8 format (azw, azw3),
@item Replica Print files (azw4)
@end itemize
@item recreating source files using indices
@item reconstructing references (links and embedded) in html files
@item reconstructing source structure that can be fed back to kindlegen
@item reconstructing dictionary markup (orth, infl tags)
@item writing back loaded documents
@item metadata editing
@item handling encrypted documents
@end itemize\n")
(license license:lgpl3+)))

View file

@ -140,7 +140,7 @@ of categories with some of the activities available in that category.
(define-public gcompris-qt
(package
(name "gcompris-qt")
(version "1.0")
(version "1.1")
(source
(origin
(method url-fetch)
@ -148,8 +148,8 @@ of categories with some of the activities available in that category.
"https://gcompris.net/download/qt/src/gcompris-qt-"
version ".tar.xz"))
(sha256
(base32 "08dw1q0h4qz2q0ksa5pbmb9v60hr1zv9skx6z8dlq9b1i7harnds"))))
(build-system cmake-build-system)
(base32 "1bpjwrv83rhikbycpyfpf6dbqr0xfq6amgdpqfgfph6nzr3zka7h"))))
(build-system qt-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
@ -160,23 +160,7 @@ of categories with some of the activities available in that category.
(setenv "DISPLAY" ":1")
;; The test suite wants to write to /homeless-shelter
(setenv "HOME" (getcwd))
#t))
(add-after 'install 'wrap-executable
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(wrap-program (string-append out "/bin/gcompris-qt")
`("QT_PLUGIN_PATH" ":" prefix
,(map (lambda (label)
(string-append (assoc-ref inputs label)
"/lib/qt5/plugins"))
'("qtbase" "qtdeclarative" "qtmultimedia" "qtsvg")))
`("QML2_IMPORT_PATH" ":" prefix
,(map (lambda (label)
(string-append (assoc-ref inputs label)
"/lib/qt5/qml"))
'("qtdeclarative" "qtgraphicaleffects"
"qtmultimedia" "qtquickcontrols"))))
#t))))
#t)))
#:configure-flags (list "-DQML_BOX2D_MODULE=disabled"
"-DBUILD_TESTING=TRUE")))
(native-inputs
@ -330,7 +314,7 @@ easy.")
(define-public snap
(package
(name "snap")
(version "6.6.0")
(version "6.9.0")
(source
(origin
(method git-fetch)
@ -339,7 +323,7 @@ easy.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1k0j0sp6zz2hnh7zc7f086zc3sld01h7sk277j6fak914yv6slzy"))))
(base32 "1wppz57lrrribrfnaiv6jrrf703w7i6ja0dnz8yx8naxhbsglwyf"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
@ -368,8 +352,7 @@ easy.")
(call-with-output-file script
(lambda (port)
(format port "#!~a\n~a '~a'" bash xdg-open snap)))
(chmod script #o555)))
#t)))
(chmod script #o555))))))
(inputs
`(("bash" ,bash-minimal)
("js-filesaver" ,js-filesaver)
@ -1034,6 +1017,66 @@ factoring numbers and simplifying fractions, as well as zapping rocks
floating through space.")
(license license:gpl3+)))
(define-public libeb
(package
(name "libeb")
(version "4.4.3")
(source
(origin
(method url-fetch)
(uri
(string-append "ftp://ftp.sra.co.jp/pub/misc/eb/eb-" version ".tar.bz2"))
(sha256
(base32
"0psbdzirazfnn02hp3gsx7xxss9f1brv4ywp6a15ihvggjki1rxb"))))
(build-system gnu-build-system)
(native-inputs ; Required for building docs
`(("perl" ,perl)))
(inputs
`(("zlib" ,zlib)))
(synopsis "C library for accessing Japanese CD-ROM books")
(description "The EB library is a library for accessing CD-ROM
books, which are a common way to distribute electronic dictionaries in
Japan. It supports the EB, EBG, EBXA, EBXA-C, S-EBXA and EPWING
formats.")
;; FIXME: I cannot find a real home page
(home-page "https://sra.co.jp/")
(license license:bsd-3)))
(define-public qolibri
(package
(name "qolibri")
(version "2.1.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url"https://github.com/ludios/qolibri")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "066y7jcq9vg6hnvn7qxckzhd1qkgfzpzhw69nw5psm43qbaca8lg"))))
(build-system qt-build-system)
(arguments
'(#:tests? #f)) ; no test target
(native-inputs
`(("qttools", qttools)))
(inputs
`(("libeb" ,libeb)
("qtbase" ,qtbase-5)
("qtmultimedia" ,qtmultimedia)
("qtquickcontrols2" ,qtquickcontrols2)
("qtdeclarative" ,qtdeclarative)
("qtwebchannel" ,qtwebchannel)
("qtwebengine" ,qtwebengine)
("zlib" ,zlib)))
(synopsis "EPWING dictionary reader")
(description "qolibri is a dictionary viewer for the EPWING dictionary
format. Most monolingual Japanese dictionaries can only be found in the
EPWING format.")
(home-page "https://github.com/ludios/qolibri")
(license license:gpl2)))
(define-public mdk
(package
(name "mdk")

File diff suppressed because it is too large Load diff

View file

@ -16,6 +16,7 @@
;;; Copyright © 2021 Felipe Balbi <balbi@kernel.org>
;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -183,7 +184,10 @@ SuperCPU.")
(add-after 'unpack 'fix-source
(lambda _
(substitute* (find-files "." ".*\\.[ch]")
(("\"zlib/zlib.h\"") "<zlib.h>"))))
(("\"zlib/zlib.h\"") "<zlib.h>"))
(substitute* "Makefile"
(("CFLAGS:=-std=gnu99" all)
(string-append all " -fcommon")))))
(delete 'configure)
(replace 'install
(lambda* args
@ -722,7 +726,7 @@ The following systems are supported:
(define-public mgba
(package
(name "mgba")
(version "0.9.1")
(version "0.9.2")
(source
(origin
(method git-fetch)
@ -731,7 +735,7 @@ The following systems are supported:
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "163azad5y4zxwzxyrb481rwfc2p86v99pf7nvdr6bavzq98x2z8h"))
(base32 "16kngkzf08jflqxwbgafb47091vqqb9pbhazg9cd94cy81ahz3q3"))
(modules '((guix build utils)))
(snippet
;; Make sure we don't use the bundled software.
@ -740,17 +744,18 @@ The following systems are supported:
(lambda (subdir)
(let ((lib-subdir (string-append "src/third-party/" subdir)))
(delete-file-recursively lib-subdir)))
'("libpng" "lzma" "sqlite3" "zlib"))
#t))))
'("libpng" "lzma" "sqlite3" "zlib"))))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no "test" target
#:configure-flags
(list "-DUSE_LZMA=OFF" ;do not use bundled LZMA
"-DUSE_LIBZIP=OFF"))) ;use "zlib" instead
(native-inputs `(("pkg-config" ,pkg-config)
(native-inputs
`(("pkg-config" ,pkg-config)
("qttools" ,qttools)))
(inputs `(("ffmpeg" ,ffmpeg)
(inputs
`(("ffmpeg" ,ffmpeg)
("libedit" ,libedit)
("libelf" ,libelf)
("libepoxy" ,libepoxy)
@ -777,7 +782,7 @@ and Game Boy Color games.")
(define-public sameboy
(package
(name "sameboy")
(version "0.14.3")
(version "0.14.4")
(source
(origin
(method git-fetch)
@ -786,7 +791,7 @@ and Game Boy Color games.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1dipidx12ai62hnzf0pvnsk1cgjcmw1h5x2r7ilxq0k0pkia5b7a"))))
(base32 "0zp11qm8b3cmx70pzczyh4vv4jyhlh4jnci8kn6b30c8lzl43g83"))))
(build-system gnu-build-system)
(native-inputs
`(("rgbds" ,rgbds)
@ -1769,7 +1774,7 @@ This is a part of the TiLP project.")
(define-public mame
(package
(name "mame")
(version "0.233")
(version "0.235")
(source
(origin
(method git-fetch)
@ -1778,7 +1783,7 @@ This is a part of the TiLP project.")
(commit (apply string-append "mame" (string-split version #\.)))))
(file-name (git-file-name name version))
(sha256
(base32 "1zq7hvss004mwczk3jvyalkj9c5v6npswhkc2wj7dxyxz770clb3"))
(base32 "1iz5p51am7gh19i0zx96vfpfpza8xvrz9f2pd908jsc4xpr36agd"))
(modules '((guix build utils)))
(snippet
;; Remove bundled libraries.
@ -1787,8 +1792,7 @@ This is a part of the TiLP project.")
(for-each delete-file-recursively
'("asio" "expat" "glm" "libflac" "libjpeg" "lua"
"portaudio" "portmidi" "pugixml" "rapidjson" "SDL2"
"SDL2-override" "sqlite3" "utf8proc" "zlib")))
#t))))
"SDL2-override" "sqlite3" "utf8proc" "zlib")))))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
@ -1826,16 +1830,14 @@ This is a part of the TiLP project.")
(install-file "uismall.bdf" fonts))
(when (file-exists? "mame64")
(rename-file "mame64" "mame"))
(install-file "mame" (string-append out "/bin")))
#t))
(install-file "mame" (string-append out "/bin")))))
(add-after 'install 'install-documentation
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(man (string-append out "/share/man/man1"))
(info (string-append out "/share/info")))
(install-file "docs/build/man/MAME.1" man)
(install-file "docs/build/texinfo/MAME.info" info))
#t))
(install-file "docs/build/texinfo/MAME.info" info))))
(add-after 'install 'install-ini-file
;; Generate an ini file so as to set some directories (e.g., roms)
;; to a writable location, i.e., "$HOME/.mame/" and "$HOME/mame/".
@ -1894,8 +1896,7 @@ This is a part of the TiLP project.")
select_directory $HOME/mame/select~@
icons_directory $HOME/mame/icons~@
covers_directory $HOME/mame/covers~@
ui_path $HOME/.mame/ui~%")))
#t)))
ui_path $HOME/.mame/ui~%"))))))
(add-after 'install 'install-desktop-file
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@ -1914,8 +1915,7 @@ This is a part of the TiLP project.")
Type=Application~@
Categories=Game;Emulator;~@
Keywords=Game;Emulator;Arcade;~%"
executable)))
#t))))))
executable)))))))))
(native-inputs
`(("pkg-config" ,pkg-config)
("sphinx" ,python-sphinx)

View file

@ -524,7 +524,7 @@ featuring various improvements and bug fixes.")))
;; FIXME: with texlive-tiny citation references are rendered as question
;; marks. During the build warnings like these are printed:
;; LaTeX Warning: Citation `nabors91' on page 2 undefined on input line 3.
`(("texlive" ,(texlive-updmap.cfg (list texlive-fonts-amsfonts)))
`(("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts)))
("ghostscript" ,ghostscript)))
(arguments
`(#:make-flags '("CC=gcc" "RM=rm" "SHELL=sh" "all")
@ -929,6 +929,16 @@ Emacs).")
(string-append "NGSPICE_DLL_FILE=\""
(assoc-ref inputs "libngspice")
"/lib/libngspice.so\"")))))
(add-after 'unpack 'fix-python-detection
(lambda _
(substitute* "CMakeModules/FindPythonLibs.cmake"
(("_PYTHON3_VERSIONS 3\\.8 3\\.7")
"_PYTHON3_VERSIONS 3.9 3.8 3.7"))))
(add-after 'unpack 'add-missing-include
(lambda _
(substitute* "common/lib_tree_model.cpp"
(("#include <eda_pattern_match.h>" all)
(string-append "#include <algorithm>\n" all)))))
(add-after 'install 'install-translations
(lambda* (#:key inputs outputs #:allow-other-keys)
(copy-recursively (assoc-ref inputs "kicad-i18n")
@ -1947,11 +1957,12 @@ parallel computing platforms. It also supports serial execution.")
(patches
(list (origin
;; Fix build with GCC 7. Patch taken from Arch Linux:
;; https://git.archlinux.org/svntogit/community.git/tree/trunk?h=packages/freehdl
;; https://github.com/archlinux/svntogit-community/tree/packages/freehdl/trunk
(method url-fetch)
(uri "https://git.archlinux.org/svntogit/community.git\
/plain/trunk/build-fix.patch?h=packages/freehdl\
&id=3bb90d64dfe6883e26083cd1fa96226d0d59175a")
(uri (string-append "https://raw.githubusercontent.com"
"/archlinux/svntogit-community"
"/3bb90d64dfe6883e26083cd1fa96226d0d59175a"
"/trunk/build-fix.patch"))
(file-name "freehdl-c++-namespace.patch")
(sha256
(base32
@ -2406,7 +2417,7 @@ comments.")))
("libtheora" ,libtheora)
("libtiff" ,libtiff)
("libxi" ,libxi)
("libxmlplusplus" ,libxmlplusplus)
("libxml++" ,libxml++)
("libxmu" ,libxmu)
("lz4" ,lz4)
("netcdf" ,netcdf)

View file

@ -571,17 +571,22 @@ directories.
(define-public evisum
(package
(name "evisum")
(version "0.5.11")
(version "0.5.13")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.enlightenment.org/rel/apps/"
"evisum/evisum-" version ".tar.xz"))
(sha256
(base32 "0cbfg393nlf0k91a2hdlyakns3dpzvs3isd95dm3zizydyf9h8wc"))))
(base32 "1rjqvida4anh7gqjp6xrpk6kmhqb66r733yyr2ixphgxn33p3iac"))))
(build-system meson-build-system)
(arguments
'(#:tests? #f)) ; no tests
'(#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'set-homedir
(lambda _
(setenv "HOME" (getcwd)))))))
(native-inputs
`(("gettext" ,gettext-minimal)
("pkg-config" ,pkg-config)))

View file

@ -415,8 +415,8 @@ from a mounted file system.")
(license license:gpl2+)))
(define-public bcachefs-tools
(let ((commit "fe1bb39aa52d9140981ba1e96f3c95ddf14006ce")
(revision "8"))
(let ((commit "6c42566c6204bb5dcd6af3b97257e548b9d2db67")
(revision "9"))
(package
(name "bcachefs-tools")
(version (git-version "0.1" revision commit))
@ -428,7 +428,7 @@ from a mounted file system.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1ks6w2v76pfpp70cv1d6znxaw1g5alz1v6hf8z9gvj15r94vgpwz"))))
(base32 "0xagz0k3li10ydma55mnld0nb2pyfx90vsdvgjflgnx6jw3cq4dq"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
@ -464,7 +464,11 @@ from a mounted file system.")
;; For tests.
("python-pytest" ,python-pytest)
("valgrind" ,valgrind)))
("valgrind" ,valgrind)
;; For generating documentation with rst2man.
("python" ,python)
("python-docutils" ,python-docutils)))
(inputs
`(("eudev" ,eudev)
("keyutils" ,keyutils)
@ -1169,16 +1173,16 @@ with the included @command{xfstests-check} helper.")
(define-public zfs
(package
(name "zfs")
(version "2.0.5")
(version "2.1.0")
(outputs '("out" "module" "src"))
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/zfsonlinux/zfs/releases"
(uri (string-append "https://github.com/openzfs/zfs/releases"
"/download/zfs-" version
"/zfs-" version ".tar.gz"))
(sha256
(base32 "1jbfm18hh9x4a9s5d7si8lapmq2aniphyriif9flrgsff26lj5rs"))))
(base32 "0kzkggwznp4m3503f2m4lcinbl99jg50j4asrwfpfk1862vdrgb0"))))
(build-system linux-module-build-system)
(arguments
`(;; The ZFS kernel module should not be downloaded since the license
@ -1209,6 +1213,25 @@ with the included @command{xfstests-check} helper.")
(util-linux (assoc-ref inputs "util-linux"))
(nfs-utils (assoc-ref inputs "nfs-utils"))
(kmod (assoc-ref inputs "kmod-runtime")))
;; New feature "compatibility=" in 2.1.0.
;; This feature looks up in two locations:
;; /etc/zfs/compatibility.d/
;; /usr/share/zfs/compatibility.d/
;; The first is intended for system-specific compatibility
;; sets, while the second is what is installed with the
;; OpenZFS package, so use the absolute path for the first
;; (which requires patching in the file) and the store path
;; for the second (which it gets by default).
(substitute* "include/sys/fs/zfs.h"
(("#define\tZPOOL_SYSCONF_COMPAT_D.*$")
; Use absolute path.
"#define\tZPOOL_SYSCONF_COMPAT_D\t\"/etc/zfs/compatibility.d\"\n"))
;; Also update the manual, which uses absolute paths, so that
;; /usr/share/zfs/compatibility.d/ is referred via the store.
(substitute* '("man/man7/zpoolprops.7"
"man/man7/zpool-features.7")
(("/usr/share/zfs/compatibility.d")
(string-append out "/share/zfs/compatibility.d")))
(substitute* "etc/Makefile.in"
;; This just contains an example configuration file for
;; configuring ZFS on traditional init systems, skip it

View file

@ -16,7 +16,7 @@
;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2019 Sebastian Schott <sschott@mailbox.org>
;;; Copyright © 2020 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2020 Christopher Lemmer Webber <cwebber@dustycloud.org>
;;; Copyright © 2020 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2020 Tom Zander <tomz@freedommail.ch>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
@ -55,6 +55,7 @@
#:use-module (guix build-system go)
#:use-module (guix build-system qt)
#:use-module (guix deprecation)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages aidc)
@ -268,14 +269,14 @@ Accounting.")
(define-public homebank
(package
(name "homebank")
(version "5.5.2")
(version "5.5.3")
(source (origin
(method url-fetch)
(uri (string-append "http://homebank.free.fr/public/homebank-"
version ".tar.gz"))
(sha256
(base32
"1lhyql94zx51vcw9hlc9r26wkm2bn6jdd4xvc95j7y69wiwg77lq"))))
"14qhv79a2waqzmf6l571wklgwq8j1pkmjvzkj5vhh44nia8hfdh7"))))
(build-system glib-or-gtk-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@ -501,7 +502,7 @@ do so.")
(define-public electrum
(package
(name "electrum")
(version "4.0.9")
(version "4.1.5")
(source
(origin
(method url-fetch)
@ -509,7 +510,7 @@ do so.")
version "/Electrum-"
version ".tar.gz"))
(sha256
(base32 "1fvjiagi78f32nxgr2rx8jas8hxfvpp1c8fpfcalvykmlhdc2gva"))
(base32 "188r4zji985z8pm9b942xhmvv174yndk6jxagxl7ljk03wl2wiwi"))
(modules '((guix build utils)))
(snippet
'(begin
@ -523,13 +524,16 @@ do so.")
("python-protobuf" ,python-protobuf)
("python-aiohttp" ,python-aiohttp)
("python-aiohttp-socks" ,python-aiohttp-socks)
("python-aiorpcx" ,python-aiorpcx)
("python-aiorpcx" ,python-aiorpcx-0.18)
("python-certifi" ,python-certifi)
("python-bitstring" ,python-bitstring)
("python-attrs" ,python-attrs)
("python-cryptography" ,python-cryptography)
("python-qdarkstyle" ,python-qdarkstyle)
("python-dnspython" ,python-dnspython)
("python-hidapi" ,python-hidapi)
("python-ledgerblue" ,python-ledgerblue)
("python-btchip-python" ,python-btchip-python)
("libsecp256k1" ,libsecp256k1)))
(arguments
`(#:tests? #f ; no tests
@ -564,7 +568,7 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
(define-public electron-cash
(package
(name "electron-cash")
(version "4.2.4")
(version "4.2.5")
(source
(origin
(method git-fetch)
@ -573,7 +577,7 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1a4jqsfadv6xr7ydj79my71jyrp0sjlznsbxdxjsjgnsqk8r48w6"))))
(base32 "1fj797hbinxsqjwhh4l1vjsx1vzmgzf2apq7fnqqwpv9g0v2pch0"))))
(build-system python-build-system)
(inputs
`(("libevent" ,libevent)
@ -591,6 +595,7 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
("python-pyaes" ,python-pyaes)
("python-pyqt" ,python-pyqt)
("python-pysocks" ,python-pysocks)
("python-qdarkstyle" ,python-qdarkstyle)
("python-qrcode" ,python-qrcode)
("python-requests" ,python-requests)
("python-stem" ,python-stem)
@ -617,6 +622,11 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
(string-append "library_paths = ('"
(assoc-ref inputs "libsecp256k1")
"/lib/libsecp256k1.so.0'")))))
(add-after 'unpack 'relax-requirements
(lambda _
(substitute* "contrib/requirements/requirements.txt"
(("qdarkstyle==2\\.6\\.8")
"qdarkstyle"))))
(add-after 'install 'wrap-qt
(lambda* (#:key outputs inputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
@ -639,7 +649,7 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
;; the system's dynamically linked library.
(package
(name "monero")
(version "0.17.2.0")
(version "0.17.2.3")
(source
(origin
(method git-fetch)
@ -657,9 +667,14 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
delete-file-recursively
'("external/miniupnp" "external/rapidjson"
"external/unbound"))
;; TODO: Remove the following when upgrading to a newer tagged
;; version as it will already contain the fix for Boost 1.76.
(substitute* "contrib/epee/include/storages/portable_storage.h"
(("#include \"int-util.h\"" all)
(string-append all "\n#include <boost/mpl/contains.hpp>")))
#t))
(sha256
(base32 "0jwlmrpzisvw1c06cvd5b3s3hd4w0pa1qmrypfwah67qj3x6hnb6"))))
(base32 "0nax991fshfh51grhh2ryfrwwws35k16gzl1l3niva28zff2xmq6"))))
(build-system cmake-build-system)
(native-inputs
`(("doxygen" ,doxygen)
@ -749,7 +764,7 @@ the Monero command line client and daemon.")
(define-public monero-gui
(package
(name "monero-gui")
(version "0.17.2.2")
(version "0.17.2.3")
(source
(origin
(method git-fetch)
@ -766,7 +781,7 @@ the Monero command line client and daemon.")
(delete-file-recursively "monero")
#t))
(sha256
(base32 "0n7gfhm13y18ffqsqdajl4knd4h8m772fz6lh1lpkh198pwmw8f9"))))
(base32 "0qb746z1sxqrja7q9lqhhbm64v83sn67az4k7gs5q90iaw584qfc"))))
(build-system qt-build-system)
(native-inputs
`(,@(package-native-inputs monero)
@ -785,10 +800,10 @@ the Monero command line client and daemon.")
(arguments
`(#:tests? #f ; No tests
#:configure-flags
(list "-DARCH=default"
,#~(list "-DARCH=default"
"-DENABLE_PASS_STRENGTH_METER=ON"
(string-append "-DReadline_ROOT_DIR="
(assoc-ref %build-inputs "readline")))
#$(this-package-input "readline")))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'extract-monero-sources
@ -796,24 +811,18 @@ the Monero command line client and daemon.")
;; to build the GUI.
(lambda* (#:key inputs #:allow-other-keys)
(mkdir-p "monero")
(invoke "tar" "-xv" "--strip-components=1"
"-C" "monero"
"-f" (assoc-ref inputs "monero-source"))))
(copy-recursively (assoc-ref inputs "monero-source")
"monero")))
(add-after 'extract-monero-sources 'fix-build
(lambda _
(substitute* "src/version.js.in"
(("@VERSION_TAG_GUI@")
,version))
(substitute* "src/zxcvbn-c/makefile"
(("\\?=") "="))
(substitute* "external/CMakeLists.txt"
(("add_library\\(quirc" all)
(string-append
"set(CMAKE_C_FLAGS \"${CMAKE_C_FLAGS} -fPIC\")\n"
all)))))
(add-before 'configure 'generate-zxcvbn-c-header
(lambda _
(invoke "make" "-C" "src/zxcvbn-c" "dict-src.h")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out") "/bin")))
@ -935,6 +944,30 @@ Ledger Blue/Nano S.")
(define-public python2-ledgerblue
(package-with-python2 python-ledgerblue))
(define-public python-btchip-python
(package
(name "python-btchip-python")
(version "0.1.32")
(source
(origin
(method url-fetch)
(uri (pypi-uri "btchip-python" version))
(sha256
(base32
"0mcg3gfd0qk8lhral3vy9cfd4pii9kzs42q71pf6b3y0c70y1x9l"))))
(build-system python-build-system)
(arguments
`(#:tests? #f)) ; those require PyQt4
(propagated-inputs
`(("python-ecdsa" ,python-ecdsa)
("python-hidapi" ,python-hidapi)))
(home-page "https://github.com/LedgerHQ/btchip-python")
(synopsis "Python library to communicate with Ledger Nano dongle")
(description
"This package provides a Python library to communicate with Ledger
Nano dongle.")
(license license:asl2.0)))
(define-public python-trezor
(package
(name "python-trezor")
@ -1020,12 +1053,7 @@ the KeepKey Hardware Wallet.")
("python-trezor-agent" ,python-trezor-agent)))
(home-page "https://github.com/romanz/trezor-agent")
(synopsis "Ledger as hardware SSH/GPG agent")
(description "This package allows using Ledger as hardware SSH/GPG agent.
Usage for SSH: trezor-agent foo@@example.com --connect
Usage for GPG: Initialize using trezor-gpg init \"Foo <foo@@example.com>\"
Then set the environment variable GNUPGHOME to
\"${HOME}/.gnupg/trezor\".")
(description "This package allows using Ledger as hardware SSH/GPG agent.")
(license license:lgpl3)))
(define-public trezor-agent
@ -1121,13 +1149,13 @@ Luhn and family of ISO/IEC 7064 check digit algorithms. ")
(define-public python-duniterpy
(package
(name "python-duniterpy")
(version "0.62.0")
(version "1.0.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "duniterpy" version))
(sha256
(base32 "1ldiw5j2g92cib9v06kgv4z8dw2zi0x1dmpisf8w78h4kg6712w1"))))
(base32 "13kp2ph7fb1cdkx1y6j2h8q33fj2akc104l77ng52cy4v8jic9nz"))))
(build-system python-build-system)
(arguments
;; FIXME: Tests fail with: "TypeError: block_uid() missing 1 required

View file

@ -6,7 +6,7 @@
;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 20182021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
@ -29,6 +29,7 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
@ -97,7 +98,7 @@ programmer devices.")
(define-public 0xffff
(package
(name "0xffff")
(version "0.8")
(version "0.9")
(source
(origin
(method git-fetch)
@ -106,16 +107,19 @@ programmer devices.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1a5b7k96vzirb0m8lqp7ldn77ppz4ngf56wslhsj2c6flcyvns4v"))))
(base32 "0rl1xzbxl991pm2is98zbryac1lgjrc3zphmbd8agv07av0r6r6n"))))
(build-system gnu-build-system)
(inputs
`(("libusb" ,libusb-0.1))) ; doesn't work with libusb-compat
;; Building with libusb-compat will succeed but the result will be broken.
;; See <https://github.com/pali/0xFFFF/issues/3>.
`(("libusb" ,libusb-0.1)))
(arguments
'(#:phases
`(#:phases
(modify-phases %standard-phases
(delete 'configure)) ; no configure
#:make-flags
(list "CC=gcc"
(list (string-append "CC=" ,(cc-for-target))
"HOST_CC=gcc"
"BUILD_DATE=GNU Guix"
(string-append "PREFIX=" %output))
#:tests? #f)) ; no 'check' target

View file

@ -432,7 +432,7 @@ a hardware description and verification language. ")
(define-public nvc
(package
(name "nvc")
(version "1.5.1")
(version "1.5.2")
(source (origin
(method git-fetch)
(uri (git-reference
@ -441,7 +441,7 @@ a hardware description and verification language. ")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"0m1zhcqhgz5fajz98ky5zdv8g8gvk9caghqfpbv8q3mzdzahcsx5"))))
"1hjshyliaqi4vrw4q760rwmq6hvbpsvr2h4zl34k5j457004dy9l"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@ -450,8 +450,7 @@ a hardware description and verification language. ")
(modify-phases %standard-phases
(add-after 'unpack 'clean-up
(lambda _
(delete-file "autogen.sh")
#t)))))
(delete-file "autogen.sh"))))))
(native-inputs
`(("automake" ,automake)
("autoconf" ,autoconf)

View file

@ -24,6 +24,9 @@
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2021 pineapples <guixuser6392@protonmail.com>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2021 Robby Zambito <contact@robbyzambito.me>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;;
;;; This file is part of GNU Guix.
;;;
@ -45,6 +48,7 @@
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
@ -75,6 +79,7 @@
#:use-module (gnu packages glib) ;intltool
#:use-module (gnu packages gnome)
#:use-module (gnu packages gperf)
#:use-module (gnu packages graph)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
@ -96,7 +101,10 @@
#:use-module (gnu packages python)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages rdesktop)
#:use-module (gnu packages rsync)
#:use-module (gnu packages samba)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages video)
@ -575,12 +583,20 @@ the freedesktop.org XDG Base Directory specification.")
(build-system meson-build-system)
(arguments
`(#:configure-flags
(let* ((out (assoc-ref %outputs "out"))
;; TODO(core-updates): Use #$output unconditionally.
,#~(let* ((out #$(if (%current-target-system)
#~#$output
#~(assoc-ref %outputs "out")))
(sysconf (string-append out "/etc"))
(libexec (string-append out "/libexec/elogind"))
(dbuspolicy (string-append out "/etc/dbus-1/system.d"))
(shadow (assoc-ref %build-inputs "shadow"))
(shepherd (assoc-ref %build-inputs "shepherd"))
;; TODO(core-updates): use this-package-input unconditionally.
(shadow #$(if (%current-target-system)
(this-package-input "shadow")
#~(assoc-ref %build-inputs "shadow")))
(shepherd #$(if (%current-target-system)
(this-package-input "shepherd")
#~(assoc-ref %build-inputs "shepherd")))
(halt-path (string-append shepherd "/sbin/halt"))
(kexec-path "") ;not available in Guix yet
(nologin-path (string-append shadow "/sbin/nologin"))
@ -815,7 +831,8 @@ of a the system to know what users are logged in, and where.")
(install-file map data))
(find-files ".." "^(kbd-model-map|language-fallback-map)$"))
#t)))))))
(native-inputs (package-native-inputs elogind))
(native-inputs `(,@(package-native-inputs elogind)
("rsync" ,rsync)))
(inputs `(("libmount" ,util-linux "lib")
("xkeyboard-config" ,xkeyboard-config)
("kbd" ,kbd)
@ -966,14 +983,22 @@ Python.")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-docbook-xml
(lambda* (#:key inputs #:allow-other-keys)
;; TODO(core-updates): Use 'native-inputs' unconditionally
(lambda* (#:key ,@(if (%current-target-system)
'(native-inputs)
'())
inputs #:allow-other-keys)
(with-directory-excursion "doc"
(substitute* (find-files "." "\\.xml$")
(("http://www.oasis-open.org/docbook/xml/4\\.5/")
(string-append (assoc-ref inputs "docbook-xml")
(string-append (assoc-ref ,(if (%current-target-system)
'(or native-inputs inputs)
'inputs) "docbook-xml")
"/xml/dtd/docbook/"))
(("http://www.oasis-open.org/docbook/xml/4\\.2/")
(string-append (assoc-ref inputs "docbook-xml-4.2")
(string-append (assoc-ref ,(if (%current-target-system)
'(or native-inputs inputs)
'inputs) "docbook-xml-4.2")
"/xml/dtd/docbook/"))))
#t))
(add-after 'install 'move-doc
@ -993,7 +1018,11 @@ Python.")
("doxygen" ,doxygen)
("pkg-config" ,pkg-config)
("xmlto" ,xmlto)
("xsltproc" ,libxslt)))
("xsltproc" ,libxslt)
,@(if (%current-target-system)
`(("pkg-config-for-build" ,pkg-config-for-build)
("wayland" ,this-package)) ; for wayland-scanner
'())))
(inputs
`(("expat" ,expat)
("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
@ -1065,7 +1094,7 @@ protocol either in Wayland core, or some other protocol in wayland-protocols.")
(define-public weston
(package
(name "weston")
(version "6.0.1")
(version "9.0.0")
(source (origin
(method url-fetch)
(uri (string-append
@ -1073,38 +1102,55 @@ protocol either in Wayland core, or some other protocol in wayland-protocols.")
"weston-" version ".tar.xz"))
(sha256
(base32
"1d2m658ll8x7prlsfk71qgw89c7dz6y7d6nndfxwl49fmrd6sbxz"))))
"1zlql0xgiqc3pvgbpnnvj4xvpd91pwva8qf83xfb23if377ddxaw"))))
(build-system meson-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
`(("mscgen" ,mscgen)
("pkg-config" ,pkg-config)
("xorg-server" ,xorg-server)))
(inputs
`(("cairo" ,cairo-xcb)
("colord" ,colord)
("dbus" ,dbus)
("elogind" ,elogind)
("freerdp" ,freerdp)
("glib" ,glib)
("gstreamer" ,gstreamer)
("gst-plugins-base" ,gst-plugins-base)
("lcms" ,lcms)
("libdrm" ,libdrm)
("libevdev" ,libevdev)
("libinput" ,libinput-minimal)
("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)
("libunwind" ,libunwind)
("libva" ,libva)
("libwebp" ,libwebp)
("libx11" ,libx11)
("libxcb" ,libxcb)
("libxcursor" ,libxcursor)
("libxkbcommon" ,libxkbcommon)
("libxml2" ,libxml2)
("mesa" ,mesa)
("mtdev" ,mtdev)
("linux-pam" ,linux-pam)
("pango" ,pango)
("wayland" ,wayland)
("pipewire" ,pipewire)
("wayland-protocols" ,wayland-protocols)
("xorg-server-xwayland" ,xorg-server-xwayland)))
(propagated-inputs
`(("libxkbcommon" ,libxkbcommon)
("pixman" ,pixman)
("wayland" ,wayland)))
(arguments
`(#:configure-flags
(list "-Dbackend-rdp=false" ; TODO: Enable.
"-Dremoting=false" ; TODO: Enable.
"-Dsimple-dmabuf-drm=auto"
(list
;; Otherwise, the RUNPATH will lack the final path component.
(string-append "-Dc_link_args=-Wl,-rpath="
(assoc-ref %outputs "out") "/lib:"
(assoc-ref %outputs "out") "/lib/weston:"
(assoc-ref %outputs "out") "/lib/libweston-"
,(version-major (package-version this-package)))
"-Dbackend-default=auto"
"-Dsystemd=false"
(string-append "-Dxwayland-path="
(assoc-ref %build-inputs "xorg-server-xwayland")
@ -2190,6 +2236,13 @@ useful with system integration.")
"https://launchpad.net/libappindicator/"
(version-major+minor version) "/" version
"/+download/libappindicator-" version ".tar.gz"))
(modules '((guix build utils)))
(snippet
'(begin
;; Fix 'multiple definitions' error from GCC 10
(substitute* "bindings/python/appindicatormodule.c"
(("^#include <pygobject.h>" all)
(string-append "#define NO_IMPORT_PYGOBJECT\n" all)))))
(sha256
(base32
"17xlqd60v0zllrxp8bgq3k5a1jkj0svkqn8rzllcyjh8k0gpr46m"))))
@ -2441,3 +2494,38 @@ seeks to add support for the screenshot, screencast, and possibly
remote-desktop @code{xdg-desktop-portal} interfaces for wlroots based
compositors.")
(license license:expat)))
(define-public waypipe
(package
(name "waypipe")
(version "0.8.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.freedesktop.org/mstoeckl/waypipe")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1qa47ljfvb1vv3h647xwn1j5j8gfmcmdfaz4j8ygnkvj36y87vnz"))))
(build-system meson-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-sleep-path
(lambda* (#:key inputs #:allow-other-keys)
(let ((coreutils (assoc-ref inputs "coreutils")))
(substitute* "./test/startup_failure.py"
(("sleep") (string-append coreutils "/bin/sleep")))))))))
(native-inputs
`(("pkg-config" ,pkg-config)
("scdoc" ,scdoc)
;; For tests
("python" ,python)
("coreutils" ,coreutils)))
(home-page "https://gitlab.freedesktop.org/mstoeckl/waypipe")
(synopsis "Proxy for Wayland protocol applications")
(description
"Waypipe is a proxy for Wayland clients, with the aim of
supporting behavior like @samp{ssh -X}.")
(license license:expat)))

View file

@ -176,14 +176,14 @@ as required.")
(define-public libfilezilla
(package
(name "libfilezilla")
(version "0.30.0")
(version "0.31.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.filezilla-project.org/"
"libfilezilla/libfilezilla-" version ".tar.bz2"))
(sha256
(base32 "0h6wa1dfd14z9ai00a85pahsb4fs3rlb8haiw3vd9pmjrpdgcvf1"))))
(base32 "0vqn6gkwyin9hml39d74vcjcnbwlnk2cpc3msdlkhpq1ns3mhzcr"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@ -220,14 +220,14 @@ output.
(define-public filezilla
(package
(name "filezilla")
(version "3.55.0")
(version "3.55.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.filezilla-project.org/client/"
"FileZilla_" version "_src.tar.bz2"))
(sha256
(base32 "10lwmf6cvryw2gja6vj1zh2y55z4i38wsvxdpclvwdnih10ynw5f"))))
(base32 "19bnyx89jg0ll8a8mr4y8gp26gizs11ckgrwglh27zak3zhx1y37"))))
(build-system gnu-build-system)
(arguments
;; Don't let filezilla phone home to check for updates.
@ -260,14 +260,14 @@ directory comparison and more.")
(define-public vsftpd
(package
(name "vsftpd")
(version "3.0.4")
(version "3.0.5")
(source
(origin
(method url-fetch)
(uri (string-append "https://security.appspot.com/downloads/"
"vsftpd-" version ".tar.gz"))
(sha256
(base32 "09kap2qsd80m0x80jv5224x002x2jkr584dksppcv9p84yyj353b"))))
(base32 "1lwipiq8q9qzvwv6f418fbvagpz0p6v0jjplkvcsc2sb8np05di6"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags

View file

@ -21,6 +21,7 @@
;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro>
;;; Copyright © 2021 Dmitry Polyakov <polyakov@liltechdude.xyz>
;;;
;;; This file is part of GNU Guix.
;;;
@ -1108,7 +1109,7 @@ to create fully featured games and multimedia programs in the python language.")
(define-public python-pygame-sdl2
(let ((real-version "2.1.0")
(renpy-version "7.4.6"))
(renpy-version "7.4.8"))
(package
(inherit python-pygame)
(name "python-pygame-sdl2")
@ -1118,7 +1119,7 @@ to create fully featured games and multimedia programs in the python language.")
(method url-fetch)
(uri (string-append "https://www.renpy.org/dl/" renpy-version
"/pygame_sdl2-" version ".tar.gz"))
(sha256 (base32 "1cay8mb5ww72mkhjp8y467i5alnjinwai2z0xypp78kjapbma9nb"))
(sha256 (base32 "1yyqcg7khac17jif86vi2d4j9l8x2vfg4h5pasrwwsy0g8386zsm"))
(modules '((guix build utils)))
(snippet
'(begin
@ -1164,13 +1165,13 @@ developed mainly for Ren'py.")
(define-public python2-renpy
(package
(name "python2-renpy")
(version "7.4.6")
(version "7.4.8")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.renpy.org/dl/" version
"/renpy-" version "-source.tar.bz2"))
(sha256 (base32 "1nnidghwi725n6kizd18fk3fdyh1fx4d48jngg8cnwgnz7i66bd6"))
(sha256 (base32 "1ml3gs87xxk1iflrg5ivffr4q8fi7d65l1cx462bvvpm1rs2sa8d"))
(modules '((guix build utils)))
(patches
(search-patches
@ -1479,6 +1480,57 @@ visual novels, while its Python scripting is enough for complex simulation
games.")
(license license:expat)))
(define-public python-pyxel
(package
(name "python-pyxel")
(version "1.4.3")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/kitao/pyxel")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0bwsgb5yq5s479cnf046v379zsn5ybp5195kbfvzr9l11qbaicm9"))
(modules '((guix build utils)))
(snippet
'(begin
(delete-file-recursively "pyxel/core/bin")))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; "Tests" are actually example programs that never halt.
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-build-files
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "setup.py"
(("\"pyxel\\.core\\.bin\\.(.*)\"," all arch)
(if (string=? arch "linux")
all
"")))
(substitute* "pyxel/core/Makefile"
(("`sdl2-config")
(string-append "`sdl2-config --prefix="
(assoc-ref inputs "sdl2"))))))
(add-before 'build 'prebuild
(lambda _
(invoke "make" "-C" "pyxel/core"))))))
(inputs
`(("gifsicle" ,gifsicle)
("sdl2" ,(sdl-union (list sdl2 sdl2-image)))))
(native-inputs
`(("gcc" ,gcc-10))) ; for std::filesystem
(home-page "https://github.com/kitao/pyxel")
(synopsis "Retro game engine for Python")
(description "Pyxel is a game engine inspired by retro gaming consoles.
It has a fixed 16-color palette, can hold up to 3 image banks and 8 tilemaps
(256x256 pixels each) and 4 sound channels with 64 definable sounds. It
also comes with a built-in image and sound editor.")
(license license:expat)))
(define-public grafx2
(package
(name "grafx2")
@ -2111,6 +2163,56 @@ upon which people base their games, ports to new platforms, and other
projects.")
(license license:gpl2))))
(define-public instead
(package
(name "instead")
(version "3.3.5")
(build-system cmake-build-system)
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/instead-hub/instead")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "02j8cw623j51qmr4991i5hsbrzmnp0qfzds8m6nwwr15sjv3hv1g"))
(patches
(search-patches
"instead-use-games-path.patch"))
(modules '((guix build utils)))
(snippet
'(begin
(delete-file-recursively "src/zlib")))))
(arguments
'(#:configure-flags
(list (string-append
"-DLUA_INCLUDE_DIR="
(assoc-ref %build-inputs "luajit") "/include/luajit-2.1/")
"-DWITH_LUAJIT=1"
"-DWITH_GTK3=1")
#:tests? #f))
(inputs
`(("gtk+",gtk+)
("lua" ,lua)
("luajit" ,luajit)
("pkg-config" ,pkg-config)
("sdl2-images" ,sdl2-image)
("sdl2-ttf" ,sdl2-ttf)
("sdl2-mixer" ,sdl2-mixer)
("zlib" ,zlib)))
(home-page "https://instead3.syscall.ru/")
(synopsis "Text adventure interpreter")
(description "The STEAD (Simple TExt ADventures) interpreter provides
functionality to play games that mix elements of visual novels, interactive
fiction and classic point-and-click adventures.")
(native-search-paths
(list (search-path-specification
(variable "INSTEAD_GAMES_PATH")
(separator #f) ;single entry
(files '("share/instead/games")))))
(license license:expat)))
(define-public openvr
(package
(name "openvr")

View file

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 John Darrington <jmd@gnu.org>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2016 David Thompson <dthompson2@worcester.edu>
;;; Copyright © 2014, 2015 David Thompson <dthompson2@worcester.edu>
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net>
@ -42,7 +42,7 @@
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2019, 2020 Jesse Gibbons <jgibbons2357+guix@gmail.com>
;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl>
;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2019, 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2019, 2020 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2019 Josh Holland <josh@inv.alid.pw>
;;; Copyright © 2017, 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
@ -52,7 +52,7 @@
;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020, 2021 Trevor Hass <thass@okstate.edu>
;;; Copyright © 2020 Trevor Hass <thass@okstate.edu>
;;; Copyright © 2020, 2021 Leo Prikler <leo.prikler@student.tugraz.at>
;;; Copyright © 2020 Lu hux <luhux@outlook.com>
;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org>
@ -62,6 +62,8 @@
;;; Copyright © 2021 David Pflug <david@pflug.io>
;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
;;; Copyright © 2021 Noisytoot <noisytoot@disroot.org>
;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -129,6 +131,7 @@
#:use-module (gnu packages gnu-doc)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gnuzilla)
#:use-module (gnu packages golang)
#:use-module (gnu packages gperf)
#:use-module (gnu packages graphics)
#:use-module (gnu packages gsasl)
@ -551,6 +554,47 @@ Playing bastet can be a painful experience, especially if you usually make
canyons and wait for the long I-shaped block to clear four rows at a time.")
(license license:gpl3+)))
(define-public tetrinet
(package
(name "tetrinet")
(version "0.11")
(source
(origin
(method url-fetch)
(uri (string-append
"http://tetrinet.or.cz/download/tetrinet-" version
".tar.bz2"))
(sha256
(base32
"0b4pddqz6is1771qmvcj8qqlr4in2djdbkk13agvp9yhfah2v8x7"))))
(build-system gnu-build-system)
(inputs
`(("ncurses" ,ncurses)))
(arguments
`(#:tests? #f ;no tests
#:make-flags '("CC=gcc")
#:phases
(modify-phases %standard-phases
(delete 'configure) ;no configure script
(add-after 'unpack 'fix-install-dir
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(mkdir-p (string-append out "/bin"))
(substitute* "Makefile"
(("/usr/games") (string-append out "/bin"))))))
(add-after 'install 'install-documentation
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/doc/" ,name "-" ,version)))
(for-each (lambda (file)
(install-file file doc))
(list "README" "tetrinet.txt"))))))))
(home-page "http://tetrinet.or.cz")
(synopsis "Terminal-based multiplayer Tetris clone")
(description "Tetrinet is a multiplayer Tetris-like game with powerups and
attacks you can use on opponents.")
(license license:public-domain)))
(define-public vitetris
(package
(name "vitetris")
@ -835,7 +879,7 @@ high a score as possible.")
(define-public cataclysm-dda
(package
(name "cataclysm-dda")
(version "0.F")
(version "0.F-2")
(source
(origin
(method git-fetch)
@ -843,7 +887,7 @@ high a score as possible.")
(url "https://github.com/CleverRaven/Cataclysm-DDA")
(commit version)))
(sha256
(base32 "1jid8lcl04y768b3psj1ifhx96lmd6fn1j2wzxhl4ic7ra66p2z3"))
(base32 "1wzsri6rh2fm7078hw0y4x7lqjs6ak4a66d05szfiinnxyn4w1ph"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
@ -3344,7 +3388,8 @@ exec ~a/bin/freedink -refdir ~a/share/dink\n"
"1mkh36xnnacnz9r00b5f9ld9309k32jv6mcavklbdnca8bl56bib"))))
(build-system gnu-build-system)
(arguments
`(#:phases
`(#:configure-flags '("CFLAGS=-fcommon")
#:phases
(modify-phases %standard-phases
;; Fixes https://issues.guix.gnu.org/47195.
(add-after 'unpack 'patch-aplay-path
@ -3535,158 +3580,6 @@ enemies in different game modes such as space ball, death match, team death
match, cannon keep, and grave-itation pit.")
(license license:gpl3+))))
(define-public minetest
(package
(name "minetest")
(version "5.4.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/minetest/minetest")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"062ilb7s377q3hwfhl8q06vvcw2raydz5ljzlzwy2dmyzmdcndb8"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete bundled libraries.
(delete-file-recursively "lib")
#t))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
(list "-DRUN_IN_PLACE=0"
"-DENABLE_FREETYPE=1"
"-DENABLE_GETTEXT=1"
"-DENABLE_SYSTEM_JSONCPP=TRUE"
(string-append "-DIRRLICHT_INCLUDE_DIR="
(assoc-ref %build-inputs "irrlicht")
"/include/irrlicht")
(string-append "-DCURL_INCLUDE_DIR="
(assoc-ref %build-inputs "curl")
"/include/curl"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-sources
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/filesys.cpp"
;; Use store-path for "rm" instead of non-existing FHS path.
(("\"/bin/rm\"")
(string-append "\"" (assoc-ref inputs "coreutils") "/bin/rm\"")))
(substitute* "src/CMakeLists.txt"
;; Let minetest binary remain in build directory.
(("set\\(EXECUTABLE_OUTPUT_PATH .*\\)") ""))
(substitute* "src/unittest/test_servermodmanager.cpp"
;; do no override MINETEST_SUBGAME_PATH
(("(un)?setenv\\(\"MINETEST_SUBGAME_PATH\".*\\);")
"(void)0;"))
(setenv "MINETEST_SUBGAME_PATH"
(string-append (getcwd) "/games")) ; for check
#t))
(replace 'check
(lambda _
;; Thanks to our substitutions, the tests should also run
;; when invoked on the target outside of `guix build'.
(unless ,(%current-target-system)
(setenv "HOME" "/tmp")
(invoke "src/minetest" "--run-unittests"))
#t)))))
(native-search-paths
(list (search-path-specification
(variable "MINETEST_SUBGAME_PATH")
(files '("share/minetest/games")))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("coreutils" ,coreutils)
("curl" ,curl)
("freetype" ,freetype)
("gettext" ,gettext-minimal)
("gmp" ,gmp)
("irrlicht" ,irrlicht)
("jsoncpp" ,jsoncpp)
("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)
("libogg" ,libogg)
("libvorbis" ,libvorbis)
("libxxf86vm" ,libxxf86vm)
("luajit" ,luajit)
("mesa" ,mesa)
("ncurses" ,ncurses)
("openal" ,openal)
("sqlite" ,sqlite)))
(propagated-inputs
`(("minetest-data" ,minetest-data)))
(synopsis "Infinite-world block sandbox game")
(description
"Minetest is a sandbox construction game. Players can create and destroy
various types of blocks in a three-dimensional open world. This allows
forming structures in every possible creation, on multiplayer servers or as a
single player. Mods and texture packs allow players to personalize the game
in different ways.")
(home-page "https://www.minetest.net/")
(license license:lgpl2.1+)))
(define minetest-data
(package
(name "minetest-data")
(version (package-version minetest))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/minetest/minetest_game")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0i45lbnikvgj9kxdp0yphpjjwjcgp4ibn49xkj78j5ic1s9n8jd4"))))
(build-system trivial-build-system)
(native-inputs
`(("source" ,source)))
(arguments
`(#:modules ((guix build utils))
#:builder (begin
(use-modules (guix build utils))
(let ((install-dir (string-append
%output
"/share/minetest/games/minetest_game")))
(mkdir-p install-dir)
(copy-recursively
(assoc-ref %build-inputs "source")
install-dir)
#t))))
(synopsis "Main game data for the Minetest game engine")
(description
"Game data for the Minetest infinite-world block sandbox game.")
(home-page "https://www.minetest.net/")
(license license:lgpl2.1+)))
(define-public minetest-mineclone
(package
(name "minetest-mineclone")
(version "0.71.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.minetest.land/Wuzzy/MineClone2")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0qm809dqvxc7pa1cr9skmglq9vrbq5hhm4c4m5yi46ldh1v96dgf"))))
(build-system copy-build-system)
(arguments
`(#:install-plan
'(("." "share/minetest/games/mineclone"))))
(synopsis "Minecraft clone based on Minetest engine")
(description
"MineClone is a Minetest subgame, that aims to recreate Minecraft as
closely as the engine allows.")
(home-page "https://content.minetest.net/packages/Wuzzy/mineclone2/")
(license license:gpl3+)))
(define glkterm
(package
(name "glkterm")
@ -4348,7 +4241,7 @@ engine. When you start it you will be prompted to download a graphics set.")
(define openttd-opengfx
(package
(name "openttd-opengfx")
(version "0.6.0")
(version "0.6.1")
(source
(origin
(method url-fetch)
@ -4356,7 +4249,7 @@ engine. When you start it you will be prompted to download a graphics set.")
version "/opengfx-" version "-source.tar.xz"))
(sha256
(base32
"0qxc6gl2gxcrn1np88dnjgbaaakkkx96b13rcmy1spryc8c09hyr"))))
"0jgy8xv7r72m127qn09vr3rxhnbakl2990f7lldsk0d5d8n993vd"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags (list "CC=gcc"
@ -4407,24 +4300,28 @@ OpenGFX provides you with...
(define openttd-opensfx
(package
(name "openttd-opensfx")
(version "0.2.3")
(version "1.0.1")
(source
(origin
(method url-fetch)
(uri (string-append
"https://binaries.openttd.org/extra/opensfx/"
version "/opensfx-" version "-source.tar.gz"))
"https://cdn.openttd.org/opensfx-releases/"
version "/opensfx-" version "-source.tar.xz"))
(sha256
(base32
"03jxgp02ks31hmsdh4xh0xcpkb70ds8jakc9pfc1y9vdrdavh4p5"))))
"06vycppqcxbfdqlxzna5xr303zgcmpcvj6ylw5b2ws0ssph2f1s0"))))
(build-system gnu-build-system)
(native-inputs
`(("catcodec" ,catcodec)
("python" ,python-2)))
("python" ,python-2)
("tar" ,tar)))
(arguments
`(#:make-flags
(list (string-append "INSTALL_DIR=" %output
"/share/games/openttd/baseset/opensfx"))
(list (string-append "DIR_NAME=opensfx")
(string-append "TAR=" (assoc-ref %build-inputs "tar")
"/bin/tar"))
;; The check phase only verifies md5sums, see openttd-opengfx.
#:tests? #f
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-reproducible
@ -4434,45 +4331,56 @@ OpenGFX provides you with...
(substitute* "scripts/Makefile.def"
(("-cf") " --mtime=@0 -cf"))
#t))
(delete 'configure))))
(delete 'configure)
(add-before 'build 'prebuild
(lambda _ (invoke "make" "opensfx.cat")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(copy-recursively "opensfx"
(string-append (assoc-ref outputs "out")
"/share/games/openttd/baseset"
"/opensfx")))))))
(home-page "http://dev.openttdcoop.org/projects/opensfx")
(synopsis "Base sounds for OpenTTD")
(description "OpenSFX is a set of free base sounds for OpenTTD which make
it possible to play OpenTTD without requiring the proprietary sound files from
the original Transport Tycoon Deluxe.")
(license license:cc-sampling-plus-1.0)))
(license license:cc-by-sa3.0)))
(define openttd-openmsx
(package
(name "openttd-openmsx")
(version "0.3.1")
(version "0.4.0")
(source
(origin
(method url-fetch)
(uri (string-append
"https://binaries.openttd.org/extra/openmsx/"
version "/openmsx-" version "-source.tar.gz"))
"https://cdn.openttd.org/openmsx-releases/"
version "/openmsx-" version "-source.tar.xz"))
(sha256
(base32
"0nskq97a6fsv1v6d62zf3yb8whzhqnlh3lap3va3nzvj7csjgf7c"))))
"0prjljsdgdxqdhhcriqskqha004ybs575xcjq80zha3pqnmrdk0k"))))
(build-system gnu-build-system)
(native-inputs
`(("python" ,python-2)))
`(("grfcodec" ,grfcodec)
("python" ,python-2)
("tar" ,tar)))
(arguments
`(#:make-flags
(list (string-append "INSTALL_DIR=" %output
"/share/games/openttd/baseset"))
(list (string-append "DIR_NAME=openmsx")
(string-append "TAR=" (assoc-ref %build-inputs "tar")
"/bin/tar"))
;; The check phase only verifies md5sums, see openttd-opengfx.
#:tests? #f
#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-after 'install 'post-install
;; Rename openmsx-version to openmsx
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((install-directory (string-append (assoc-ref outputs "out")
"/share/games/openttd/baseset")))
(rename-file (string-append install-directory "/openmsx-" ,version)
(string-append install-directory "/openmsx"))
#t))))))
(copy-recursively "openmsx"
(string-append (assoc-ref outputs "out")
"/share/games/openttd/baseset"
"/openmsx")))))))
(home-page "http://dev.openttdcoop.org/projects/openmsx")
(synopsis "Music set for OpenTTD")
(description "OpenMSX is a music set for OpenTTD which makes it possible
@ -6307,7 +6215,7 @@ small robot living in the nano world, repair its maker.")
#t))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no tests included
`(#:test-target "run_tests"
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
@ -6319,9 +6227,17 @@ small robot living in the nano world, repair its maker.")
(assoc-ref outputs "out")
"/share/teeworlds/data"
"\"")))
#t))
(add-after 'unpack 'replace-font
(lambda* (#:key inputs #:allow-other-keys)
(delete-file "datasrc/fonts/DejaVuSans.ttf")
(symlink (string-append (assoc-ref inputs "font-dejavu")
"/share/fonts/truetype/DejaVuSans.ttf")
"datasrc/fonts/DejaVuSans.ttf")
#t)))))
(inputs
`(("freetype" ,freetype)
("font-dejavu" ,font-dejavu)
("glu" ,glu)
("json-parser" ,json-parser)
("mesa" ,mesa)
@ -6333,7 +6249,8 @@ small robot living in the nano world, repair its maker.")
("openssl" ,openssl)
("zlib" ,zlib)))
(native-inputs
`(("python" ,python-wrapper)
`(("googletest" ,googletest)
("python" ,python-wrapper)
("pkg-config" ,pkg-config)))
(home-page "https://www.teeworlds.com")
(synopsis "2D retro multiplayer shooter game")
@ -6514,14 +6431,14 @@ fish. The whole game is accompanied by quiet, comforting music.")
(define-public crawl
(package
(name "crawl")
(version "0.26.1")
(version "0.27.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/crawl/crawl/releases/download/"
version "/stone_soup-" version "-nodeps.tar.xz"))
(sha256
(base32 "1d8p2np2q5951wqphq2f4dyvv976m2lh82b0qp7w9pp1h8zzi1ff"))
(base32 "0hzkzpqmydxm1zjkdm7k4w3hldsqin3pwkj7jmfj4jijkr0zg9nq"))
(patches (search-patches "crawl-upgrade-saves.patch"))))
(build-system gnu-build-system)
(inputs
@ -6901,7 +6818,7 @@ Crowther & Woods, its original authors, in 1995. It has been known as
(define-public tome4
(package
(name "tome4")
(version "1.7.3")
(version "1.7.4")
(synopsis "Single-player, RPG roguelike game set in the world of Eyal")
(source
(origin
@ -6909,7 +6826,7 @@ Crowther & Woods, its original authors, in 1995. It has been known as
(uri (string-append "https://te4.org/dl/t-engine/t-engine4-src-"
version ".tar.bz2"))
(sha256
(base32 "1rik17r01glq3944sdb06xjf0xppgqkjk564wrh22slm4mi3fifz"))
(base32 "197jmd99l3w3sig32pvdlq9fcgdjjx7g9csy08kz174cyhrlyly3"))
(modules '((guix build utils)))
(snippet
'(begin
@ -6918,8 +6835,7 @@ Crowther & Woods, its original authors, in 1995. It has been known as
(string-append
line " || defined(__GNUC__)")))
(substitute* '("src/tgl.h")
(("#include <GL/glext.h>") ""))
#t))))
(("#include <GL/glext.h>") ""))))))
(build-system gnu-build-system)
(native-inputs
`(("unzip" ,unzip)))
@ -6942,8 +6858,7 @@ Crowther & Woods, its original authors, in 1995. It has been known as
(delete 'bootstrap)
(replace 'configure
(lambda _
(invoke "premake4" "gmake")
#t))
(invoke "premake4" "gmake")))
(add-after 'set-paths 'set-sdl-paths
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CPATH"
@ -7008,8 +6923,7 @@ Crowther & Woods, its original authors, in 1995. It has been known as
#:comment ,synopsis
#:exec ,name
#:icon icon
#:categories '("Game" "RolePlaying")))
#t)))))
#:categories '("Game" "RolePlaying"))))))))
(home-page "https://te4.org")
(description "Tales of MajEyal (ToME) RPG, featuring tactical turn-based
combat and advanced character building. Play as one of many unique races and
@ -7136,15 +7050,26 @@ some graphical niceities, and numerous bug-fixes and other improvements.")
`(#:tests? #f
#:make-flags
(list "CC=gcc"
;; link openAL instead of using dlopen at runtime
"DLOPEN_OPENAL=\"no\""
;; an optional directory where it will look for quake2 data files
;; in addition to the current working directory
;; An optional directory where it will look for quake2 data files
;; in addition to the current working directory.
"WITH_SYSTEMWIDE=yes"
"WITH_SYSTEMDIR=\"/opt/quake2\"")
#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-before 'build 'patch-libraries
(lambda* (#:key inputs #:allow-other-keys)
;; The game writes paths to openal.so and curl.so to ~/.yq2/...
;; Workaround: hard-code the compiled paths where it loads them;
;; this prevents loading old or garbage collected libraries.
(substitute* "src/client/sound/qal.c"
(("al_driver->string")
(string-append "\"" (assoc-ref inputs "openal")
"/lib/libopenal.so\"")))
(substitute* "src/client/curl/qcurl.c"
(("cl_libcurl->string")
(string-append "\"" (assoc-ref inputs "curl")
"/lib/libcurl.so\"")))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
@ -7264,7 +7189,7 @@ elements to achieve a simple goal in the most complex way possible.")
(define-public pioneer
(package
(name "pioneer")
(version "20210203")
(version "20210723")
(source (origin
(method git-fetch)
(uri (git-reference
@ -7273,7 +7198,7 @@ elements to achieve a simple goal in the most complex way possible.")
(file-name (git-file-name name version))
(sha256
(base32
"1zyi1xyghj99hz8fa6dywpscj6flp04fspnlgxbivf3rgmnxflg7"))))
"1hj99jxb9n3r0bkq87p1c24862xa1xyzjyfdyyx88ckszxb05qf3"))))
(build-system cmake-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@ -7336,7 +7261,7 @@ Github or Gitlab.")
(define-public colobot
(package
(name "colobot")
(version "0.1.12-alpha")
(version "0.2.0-alpha")
(source
(origin
(method git-fetch)
@ -7346,8 +7271,7 @@ Github or Gitlab.")
(recursive? #t))) ;for "data/" subdir
(file-name (git-file-name name version))
(sha256
(base32
"1c181cclkrnspgs07lvndg2c81cjq3smkv7qim8c470cj88rcrp2"))))
(base32 "02z21pw47j2afjsikn5b162gacwgiahdrlhmfxhq4xqlzsvz58z6"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no test
@ -7553,6 +7477,8 @@ online.")
(base32
"1iy8rx7kjvi1zjiw4zh77szzmd1sgpqajvbhprh1sj93fhbxcdfl"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list "CFLAGS=-fcommon")))
(inputs `(("sdl2-net" ,sdl2-net)
("sdl2-mixer" , sdl2-mixer)
("sdl2" ,sdl2)))
@ -7592,7 +7518,8 @@ affect gameplay).")
`(("automake" ,automake)
("autoreconf" ,autoconf))))
(arguments
`(#:phases
`(#:configure-flags '("CFLAGS=-fcommon")
#:phases
(modify-phases %standard-phases
(replace 'bootstrap
;; The bundled autogen.sh script unconditionally runs ./configure.
@ -8316,7 +8243,7 @@ your score gets higher, you level up and the blocks fall faster.")
(define-public endless-sky
(package
(name "endless-sky")
(version "0.9.12")
(version "0.9.14")
(source
(origin
(method git-fetch)
@ -8325,29 +8252,24 @@ your score gets higher, you level up and the blocks fall faster.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "18nkl4s3r5sy3sd9lhbdg9160c7fggklklprx0d5azifc8g6k0wj"))))
(base32 "12iganf8dxiyrjznnabsarxjsr0h717j3k4mz15p0k67wxyahhmf"))))
(build-system scons-build-system)
(arguments
`(#:scons ,scons-python2
#:scons-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-resource-locations
(add-after 'unpack 'fix-paths
(lambda* (#:key outputs #:allow-other-keys)
;; Look for resources in the store directory.
(substitute* "source/Files.cpp"
(("/usr/local/")
(string-append (assoc-ref outputs "out") "/")))
#t))
(add-after 'unpack 'patch-scons
(lambda _
(("/usr/local") (assoc-ref outputs "out")))
;; Install game binary into %out/bin.
(substitute* "SConstruct"
;; Keep environmental variables
(("Environment\\(\\)")
"Environment(ENV = os.environ)")
;; Install into %out/bin
(("games\"") "bin\""))
#t)))))
(("games\"") "bin\""))))
(add-before 'build 'use-gcc-ar
;; Use gcc-ar to support LTO.
(lambda _ (setenv "AR" "gcc-ar"))))))
(inputs
`(("glew" ,glew)
("libjpeg" ,libjpeg-turbo)
@ -8717,7 +8639,8 @@ affected by the gravity of the planets.")
"1nfkhcm0l89jyw8yr65na97g4l385zhjf7whkyg47c3v5sdqq2g7"))))
(build-system gnu-build-system)
(arguments
`(#:phases
`(#:configure-flags '("CFLAGS=-fcommon")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-install-directories
(lambda* (#:key outputs #:allow-other-keys)
@ -8734,7 +8657,7 @@ affected by the gravity of the planets.")
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CPATH"
(string-append
(search-input-file inputs "/include/SDL")
(search-input-directory inputs "/include/SDL")
":" (or (getenv "CPATH") ""))))))))
(inputs
`(("fontconfig" ,fontconfig)
@ -8979,7 +8902,7 @@ fight each other on an arena-like map.")
(define-public flare-engine
(package
(name "flare-engine")
(version "1.11")
(version "1.12")
(source (origin
(method git-fetch)
(uri (git-reference
@ -8988,7 +8911,7 @@ fight each other on an arena-like map.")
(file-name (git-file-name name version))
(sha256
(base32
"1mqr1s72p5bdh4kq2a8hg72dk8lwnddicjnd2cdp1sbfa9lmjym8"))))
"0h4xxj6r194pw68m3ngrnzkh6xgiblyrsc54z8abwba8m0mqbvmk"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no test
@ -9007,7 +8930,7 @@ action RPGs.")
(define-public flare-game
(package
(name "flare-game")
(version "1.11")
(version "1.12")
(source (origin
(method git-fetch)
(uri (git-reference
@ -9016,7 +8939,7 @@ action RPGs.")
(file-name (git-file-name name version))
(sha256
(base32
"0bd5g7sd89a9176ilr408hdqzdfv4j7wj0idd685c1n6s01c3h6p"))))
"0h9i128kq6disppbrplkf13zdmsg4cq23nim53mgwpawc4mqz7ga"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no test
@ -9442,10 +9365,65 @@ and bring the war to your enemy.")
license:expat license:fdl1.3+ license:public-domain
license:zlib))))
(define-public go-github-com-anaseto-gruid
(package
(name "go-github-com-anaseto-gruid")
(version "0.21.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/anaseto/gruid")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0rvsavkvg2hziwdh8sjk3n5v92m5mfjb8v9m7ch22maxfwq5kv6y"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/anaseto/gruid"))
(propagated-inputs
`(("go-golang-org-x-image" ,go-golang-org-x-image)))
(home-page "https://github.com/anaseto/gruid")
(synopsis "Cross-platform grid-based UI and game framework")
(description "The gruid module provides packages for easily building
grid-based applications in Go. The library abstracts rendering and input for
different platforms. There are drivers available for terminal apps, native
graphical apps and browser apps. The original application for the library was
creating grid-based games, but it's also well suited for any grid-based
application.")
(license license:isc)))
(define-public go-github-com-anaseto-gruid-tcell
(package
(name "go-github-com-anaseto-gruid-tcell")
(version "0.1.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/anaseto/gruid-tcell")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"09ajr9mbldjfc44qprplbf8dr8yhlbn2nfnas2z62m9wmklc0qiv"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/anaseto/gruid-tcell"))
(propagated-inputs
`(("go-github-com-gdamore-tcell-v2" ,go-github-com-gdamore-tcell-v2)
("go-github-com-anaseto-gruid" ,go-github-com-anaseto-gruid)))
(home-page "https://github.com/anaseto/gruid-tcell")
(synopsis "Gruid driver using the tcell library")
(description "The gruid-tcell module provides a Gruid driver for building
terminal full-window applications.")
(license license:isc)))
(define-public harmonist
(package
(name "harmonist")
(version "0.3.0")
(version "0.4.1")
(source (origin
(method git-fetch)
(uri (git-reference
@ -9454,12 +9432,15 @@ and bring the war to your enemy.")
(file-name (git-file-name name version))
(sha256
(base32
"146wiyanag0zqj6fhyll2sw6sydnnll8mgxhhqf9sjqsl2rx4s5r"))))
"17ai39pw9xq4asfvhs0whx07hljlivygazbwrxjrnxwrn06483hr"))))
(build-system go-build-system)
(arguments
'(#:import-path "git.tuxfamily.org/harmonist/harmonist"))
(inputs
`(("go-github.com-nsf-termbox-go" ,go-github.com-nsf-termbox-go)))
`(("go-github-com-gdamore-tcell-v2" ,go-github-com-gdamore-tcell-v2)
("go-github.com-nsf-termbox-go" ,go-github.com-nsf-termbox-go)
("go-github-com-anaseto-gruid" ,go-github-com-anaseto-gruid)
("go-github-com-anaseto-gruid-tcell" ,go-github-com-anaseto-gruid-tcell)))
(home-page "https://harmonist.tuxfamily.org/")
(synopsis "Stealth coffee-break roguelike game")
(description "Harmonist: Dayoriah Clan Infiltration is a stealth
@ -9470,26 +9451,6 @@ the game avoids complex inventory management and character building, relying
on items and player adaptability for character progression.")
(license license:isc)))
(define-public harmonist-tk
(package
(inherit harmonist)
(name "harmonist-tk")
(arguments
(append
(package-arguments harmonist)
`(#:phases
(modify-phases %standard-phases
(replace 'build
(lambda _
(invoke "go" "install" "-v" "-x" "--tags" "tk"
"git.tuxfamily.org/harmonist/harmonist")))
(replace 'check
(lambda _
(invoke "go" "test" "--tags" "tk"
"git.tuxfamily.org/harmonist/harmonist")))))))
(inputs
`(("go-github.com-nsf-gothic" ,go-github.com-nsf-gothic)))))
(define-public drascula
(package
(name "drascula")
@ -10100,7 +10061,7 @@ remake of that series or any other game.")
`(("googletest" ,googletest)))
(inputs
`(("boost" ,boost)
("ocl-icd" ,ocl-icd)
("opencl-icd-loader" ,opencl-icd-loader)
("openblas" ,openblas)
("opencl-headers" ,opencl-headers)
("qtbase" ,qtbase-5)
@ -10161,6 +10122,11 @@ can be downloaded from @url{https://zero.sjeng.org/best-network}.")
(("qtchooser -run-tool=(.*) -qt=qt5" _ command)
command))
#t))
(add-after 'unpack 'fix-header
(lambda _
(substitute* "src/bitarray.h"
(("#include <cstring>" all)
(string-append all "\n#include <stdexcept>")))))
(add-after 'unpack 'fix-paths
(lambda _
(substitute* '("src/pics/Makefile.in"
@ -11980,7 +11946,7 @@ etc. You can also play games on FICS or against an engine.")
,(match (%current-system)
("x86_64-linux" "x86-64")
("i686-linux" "x86-32")
("aarch64-linux" "general-64")
("aarch64-linux" "armv8")
("armhf-linux" "armv7")
("mips64el-linux" "general-64")
(_ "general-32"))))
@ -12498,3 +12464,35 @@ wreckage. You're stranded on a desert island and have to survive. In order to
do so you need to explore the island, find food, build a shelter and try to
get attention, so you get found.")
(license license:cc-by4.0))))
(define-public fheroes2
(package
(name "fheroes2")
(version "0.9.7")
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no tests
#:make-flags '("FHEROES2_STRICT_COMPILATION=1"
"RELEASE=1")))
(native-inputs
`(("gettext" ,gettext-minimal)))
(inputs
`(("libpng" ,libpng)
("sdl" ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))
("zlib" ,zlib)))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ihhub/fheroes2")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0v3zh8a8yxfikcr5vkmy36c57l4nmwisz13mjavn5f7yrirf86fn"))))
(home-page "https://ihhub.github.io/fheroes2/")
(synopsis "Turn-based strategy game engine")
(description "@code{fheroes2} is an implementation of Heroes of Might and
Magic II (aka HOMM2) game engine. It requires assets and game resources to
play; it will look for them at @file{~/.local/share/fheroes2} folder.")
(license license:gpl2)))

View file

@ -600,14 +600,14 @@ It also includes runtime support libraries for these languages.")))
(define-public gcc-11
(package
(inherit gcc-8)
(version "11.1.0")
(version "11.2.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gcc/gcc-"
version "/gcc-" version ".tar.xz"))
(sha256
(base32
"1pwxrjhsymv90xzh0x42cxfnmhjinf2lnrrf3hj5jq1rm2w6yjjc"))
"12zs6vd2rapp42x154m479hg3h3lsafn3xhg06hp5hsldd9xr3nh"))
(patches (search-patches "gcc-9-strmov-store-file-names.patch"
"gcc-5.0-libvtv-runpath.patch"))
(modules '((guix build utils)))

View file

@ -9,13 +9,14 @@
;;; Copyright © 2018, 2019, 2020 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2019, 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
;;; Copyright © 2019, 2021 Wiktor Żelazny <wzelazny@vurv.cz>
;;; Copyright © 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2020, 2021 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -210,7 +211,7 @@ topology functions.")
(define-public gnome-maps
(package
(name "gnome-maps")
(version "3.36.7")
(version "3.38.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -218,7 +219,7 @@ topology functions.")
name "-" version ".tar.xz"))
(sha256
(base32
"09rgw8hq3ligap1zzjhx25q354ficpbiw1z9ramghhcqbpylsxdh"))))
"1llgzm2ni3iy31dznqkc81vadv0fpqgpz2l9zzrj5jshvyq0akgh"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
@ -478,14 +479,12 @@ coverages using a SpatiaLite DBMS.")
'("--enable-rttopo=yes")
#:phases
(modify-phases %standard-phases
;; 3 tests are failing, ignore them:
;; 1 test is failing, ignore it:
(add-after 'unpack 'ignore-broken-tests
(lambda _
(substitute* '("test/Makefile.in")
(("\tcheck_sql_stmt.* (check_sql_.*)" all tiny) (string-append "\t" tiny))
(("(\tch.*) check_v.*ble2.*$" all vt1) (string-append vt1 " \\\n"))
(("\tch.* (check_v.*ble4.*)$" all vt4) (string-append "\t" vt4)))
#t)))))
(("check_wms\\$\\(EXEEXT\\) check_drop_rename\\$\\(EXEEXT\\) ")
"check_wms$(EXEEXT) ")))))))
(synopsis "Extend SQLite to support Spatial SQL capabilities")
(description
"SpatiaLite is a library intended to extend the SQLite core to support
@ -1218,6 +1217,7 @@ map display. Downloads map data from a number of websites, including
(url "https://github.com/opengribs/XyGrib")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(patches (search-patches "xygrib-fix-finding-data.patch"))
(sha256
(base32
"0xzsm8pr0zjk3f8j880fg5n82jyxn8xf1330qmmq1fqv7rsrg9ia"))
@ -1232,18 +1232,15 @@ map display. Downloads map data from a number of websites, including
#t))))
(build-system cmake-build-system)
(arguments
`(#:phases
`(#:configure-flags (list "-DGNU_PACKAGE=ON")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-directories
(lambda* (#:key inputs #:allow-other-keys)
(let ((jpeg (assoc-ref inputs "openjpeg"))
(font (assoc-ref inputs "font-liberation")))
(substitute* "CMakeLists.txt"
;; Find libjpeg.
(("/usr") jpeg)
;; Fix install locations.
(("set\\(PREFIX_BIN.*") "set(PREFIX_BIN \"bin\")\n")
(("set\\(PREFIX_PKGDATA.*") "set(PREFIX_PKGDATA \"share/${PROJECT_NAME}\")\n")
;; Skip looking for the static library.
(("\"libnova.a\"") ""))
;; Don't use the bundled font-liberation.
@ -1252,8 +1249,7 @@ map display. Downloads map data from a number of websites, including
(string-append "\"" font "/share/fonts/truetype/\"")))
(substitute* "src/util/Util.h"
(("pathData\\(\\)\\+\"data/fonts/\"")
(string-append "\"" font "/share/fonts/\""))))
#t)))
(string-append "\"" font "/share/fonts/\"")))))))
#:tests? #f)) ; no tests
(native-inputs
`(("qttools" ,qttools)))
@ -1266,6 +1262,10 @@ map display. Downloads map data from a number of websites, including
("proj.4" ,proj.4)
("qtbase" ,qtbase-5)
("zlib" ,zlib)))
(native-search-paths
(list (search-path-specification
(variable "XDG_DATA_DIRS")
(files '("share")))))
(synopsis "Weather Forecast Visualization")
(description
"XyGrib is a Grib file reader and visualizes meteorological data providing
@ -1352,7 +1352,7 @@ an independent project by the JOSM team.")
(define-public java-opening-hours-parser
(package
(name "java-opening-hours-parser")
(version "0.21.4")
(version "0.23.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1361,7 +1361,7 @@ an independent project by the JOSM team.")
(file-name (git-file-name name version))
(sha256
(base32
"1m8sp0jbjyv1nq3ddj8rk6rf3sva3mkacc6vw7rsj0c2n57k3i50"))))
"0yhbd2ix6h506aljh0jkrnp28m4xcqdcdpnqm30fn08kawdgxgsh"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "java-opening-hours-parser.jar"
@ -1397,7 +1397,7 @@ to the OSM opening hours specification.")
(define-public josm
(package
(name "josm")
(version "17329")
(version "18193")
(source (origin
(method svn-fetch)
(uri (svn-reference
@ -1406,7 +1406,7 @@ to the OSM opening hours specification.")
(recursive? #f)))
(sha256
(base32
"0bq6mirdsi0kmhjfzfp3innxi5a4395d7mas7ikxaz0cziljrz1i"))
"162hdck29bkag1d97nisx8v7395pdw00bl7nf0p02hr30fc1fcrh"))
(file-name (string-append name "-" version "-checkout"))
(modules '((guix build utils)))
(snippet
@ -1422,6 +1422,7 @@ to the OSM opening hours specification.")
("java-jmapviewer" ,java-jmapviewer)
("java-jsonp-api" ,java-jsonp-api)
("java-jsonp-impl" ,java-jsonp-impl); runtime dependency
("java-jsr305" ,java-jsr305)
("java-metadata-extractor" ,java-metadata-extractor)
("java-opening-hours-parser" ,java-opening-hours-parser)
("java-openjfx-media" ,java-openjfx-media)
@ -1451,7 +1452,8 @@ to the OSM opening hours specification.")
;; which has renamed its classes to another namespace. Rename them
;; back so they can be used with our version of jcs.
(substitute* (find-files "." ".*.java$")
(("jcs3") "jcs"))
(("jcs3") "jcs")
(("ICache.NAME_COMPONENT_DELIMITER") "\":\""))
#t))
(add-before 'build 'fix-classpath
(lambda* (#:key inputs #:allow-other-keys)
@ -1705,22 +1707,7 @@ using the dataset of topographical information collected by
;; of QMapShack, but they are not applied by default, for
;; some reason...
(invoke "patch" "-p1" "-i" "FindPROJ4.patch")
(invoke "patch" "-p1" "-i" "FindQuaZip5.patch")
#t))
(add-after 'install 'wrap
;; The program fails to find the QtWebEngineProcess program,
;; so we set QTWEBENGINEPROCESS_PATH to help it.
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out") "/bin"))
(qtwebengineprocess (string-append
(assoc-ref inputs "qtwebengine")
"/lib/qt5/libexec/QtWebEngineProcess")))
(for-each (lambda (program)
(wrap-program program
`("QTWEBENGINEPROCESS_PATH" =
(,qtwebengineprocess))))
(find-files bin ".*")))
#t)))))
(invoke "patch" "-p1" "-i" "FindQuaZip5.patch"))))))
(synopsis "GPS mapping application")
(description
"QMapShack can be used to plan your next outdoor trip or to visualize and
@ -1878,7 +1865,8 @@ exchanged form one Spatial DBMS and the other.")
`(#:configure-flags '("-DENABLE_PORTAUDIO=ON"
"-DENABLE_SNDFILE=ON"
"-DBUNDLE_TCDATA=ON"
"-DBUNDLE_GSHHS=CRUDE")
"-DBUNDLE_GSHHS=CRUDE"
"-DCMAKE_C_FLAGS=-fcommon")
#:tests? #f ; No tests defined
#:phases
(modify-phases %standard-phases
@ -2159,6 +2147,7 @@ growing set of geoscientific methods.")
"PyCoreAdittions"
"PyQgsAnnotation"
"PyQgsAppStartup"
"PyQgsAuthBasicMethod"
"PyQgsAuthenticationSystem"
"PyQgsAuxiliaryStorage"
"PyQgsDBManagerGpkg"
@ -2412,3 +2401,43 @@ web services. @code{geopy} makes it easy for Python developers to locate the
coordinates of addresses, cities, countries, and landmarks across the globe
using third-party geocoders and other data sources.")
(license license:expat)))
(define-public marble-qt
(let ((release "17.08")
(commit "fc7166eeef784732033c999ba605364f9c82d21c")
(revision "1"))
(package
(name "marble-qt")
(version (git-version release revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://invent.kde.org/education/marble.git/")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0m0sf3sddaib7vc5lhbmh7ziw07p1hahg02f65sgfylyl5f5kj92"))
(patches (search-patches
"marble-qt-add-qt-headers.patch"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; libmarblewidget-qt5.so.28 not found
#:configure-flags
'("-DCMAKE_BUILD_TYPE=Release"
"-DWITH_KF5=FALSE")))
(native-inputs
`(("qttools" ,qttools)))
(inputs
`(("qtbase" ,qtbase-5)
("qtsvg" ,qtsvg)
("qtdeclarative" ,qtdeclarative)
("qtwebkit" ,qtwebkit)
("qtlocation" ,qtlocation)))
(home-page "https://marble.kde.org/")
(synopsis "Virtual globe and world atlas")
(description "Marble is similar to a desktop globe. At closer scale it
becomes a world atlas, while OpenStreetMap takes the user to street level. It
supports searching for places of interest, viewing Wikipedia articles,
creating routes by drag and drop and more.")
(license license:gpl3))))

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