Merge branch 'master' into emacs-team

This commit is contained in:
Liliana Marie Prikler 2024-03-02 08:07:11 +01:00
commit 3d4fc910f7
No known key found for this signature in database
GPG key ID: 442A84B8C70E2F87
312 changed files with 156029 additions and 142193 deletions

View file

@ -140,6 +140,7 @@ MODULES = \
guix/platforms/arm.scm \
guix/platforms/avr.scm \
guix/platforms/mips.scm \
guix/platforms/or1k.scm \
guix/platforms/powerpc.scm \
guix/platforms/riscv.scm \
guix/platforms/x86.scm \
@ -453,9 +454,6 @@ AUX_FILES = \
gnu/packages/aux-files/linux-libre/4.19-arm64.conf \
gnu/packages/aux-files/linux-libre/4.19-i686.conf \
gnu/packages/aux-files/linux-libre/4.19-x86_64.conf \
gnu/packages/aux-files/linux-libre/4.14-arm.conf \
gnu/packages/aux-files/linux-libre/4.14-i686.conf \
gnu/packages/aux-files/linux-libre/4.14-x86_64.conf \
gnu/packages/aux-files/pack-audit.c \
gnu/packages/aux-files/python/sanity-check.py \
gnu/packages/aux-files/python/sitecustomize.py \

View file

@ -2111,9 +2111,15 @@ they are ready to become a committer. Commit access should not be
thought of as a ``badge of honor'' but rather as a responsibility a
contributor is willing to take to help the project. It is expected from
all contributors, and even more so from committers, to help build
consensus and make decisions based on consensus. To learn what
consensus decision making means and understand its finer details, you
are encouraged to read
consensus and make decisions based on consensus. By using consensus, we
are committed to finding solutions that everyone can live with. It
implies that no decision is made against significant concerns and these
concerns are actively resolved with proposals that work for everyone. A
contributor (which may or may not have commit access) wishing to block a
proposal bears a special responsibility for finding alternatives,
proposing ideas/code or explain the rationale for the status quo to
resolve the deadlock. To learn what consensus decision making means and
understand its finer details, you are encouraged to read
@url{https://www.seedsforchange.org.uk/consensus}.
The following sections explain how to get commit access, how to be ready
@ -2328,7 +2334,7 @@ Perhaps the biggest action you can do to help GNU Guix grow as a project
is to review the work contributed by others. You do not need to be a
committer to do so; applying, reading the source, building, linting and
running other people's series and sharing your comments about your
experience will give some confidence to committers. Basically, you gmust
experience will give some confidence to committers. Basically, you must
ensure the check list found in the @ref{Submitting Patches} section has
been correctly followed. A reviewed patch series should give the best
chances for the proposed change to be merged faster, so if a change you

View file

@ -22,7 +22,7 @@
@set SUBSTITUTE-URLS https://@value{SUBSTITUTE-SERVER-1} https://@value{SUBSTITUTE-SERVER-2}
@copying
Copyright @copyright{} 2012-2023 Ludovic Courtès@*
Copyright @copyright{} 2012-2024 Ludovic Courtès@*
Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@*
Copyright @copyright{} 2013 Nikita Karetnikov@*
Copyright @copyright{} 2014, 2015, 2016 Alex Kost@*
@ -43,7 +43,7 @@ Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021 Christopher Baines@*
Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@*
Copyright @copyright{} 2017, 2018, 2020, 2021, 2022 Mathieu Othacehe@*
Copyright @copyright{} 2017 Federico Beffa@*
Copyright @copyright{} 2017, 2018 Carlo Zancanaro@*
Copyright @copyright{} 2017, 2018, 2024 Carlo Zancanaro@*
Copyright @copyright{} 2017 Thomas Danckaert@*
Copyright @copyright{} 2017 humanitiesNerd@*
Copyright @copyright{} 2017, 2021 Christine Lemmer-Webber@*
@ -124,6 +124,7 @@ Copyright @copyright{} 2023 Thomas Ieong@*
Copyright @copyright{} 2023 Saku Laesvuori@*
Copyright @copyright{} 2023 Graham James Addis@*
Copyright @copyright{} 2023 Tomas Volf@*
Copyright @copyright{} 2024 Herman Rimm@*
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@ -732,14 +733,17 @@ ready to use it.
@cindex installing Guix from binaries
@cindex installer script
This section describes how to install Guix on an arbitrary system from a
self-contained tarball providing binaries for Guix and for all its
dependencies. This is often quicker than installing from source, which
is described in the next sections. The only requirement is to have
GNU@tie{}tar and Xz.
This section describes how to install Guix from a self-contained tarball
providing binaries for Guix and for all its dependencies. This is often
quicker than installing from source, which is described in the next
sections. Binary installation requires a system using a Hurd or Linux
kernel; the GNU@tie{}tar and Xz commands must also be available.
@quotation Important
This section only applies to systems without Guix. Following it for
existing Guix installations will overwrite important system files.
@c Note duplicated from the ``Installation'' node.
@quotation Note
We recommend the use of this
@uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh,
shell installer script}. The script automates the download, installation, and
@ -1297,6 +1301,11 @@ environment variable is set to the non-existent
@file{/homeless-shelter}. This helps to highlight inappropriate uses of
@env{HOME} in the build scripts of packages.
All this usually enough to ensure details of the environment do not
influence build processes. In some exceptional cases where more control
is needed---typically over the date, kernel, or CPU---you can resort to
a virtual build machine (@pxref{build-vm, virtual build machines}).
You can influence the directory where the daemon stores build trees
@i{via} the @env{TMPDIR} environment variable. However, the build tree
within the chroot is always called @file{/tmp/guix-build-@var{name}.drv-0},
@ -9850,7 +9859,7 @@ MbedTLS package:
(("generate_wrapper_header.*")
(string-append
"generate_wrapper_header(\"MbedTLS\", \""
(assoc-ref inputs "mbedtls-apache") "\")\n"))))
(assoc-ref inputs "mbedtls") "\")\n"))))
;; There's a Julia file for each platform, override them all.
(find-files "src/wrappers/" "\\.jl$"))))
@end lisp
@ -14021,6 +14030,9 @@ the certificates of X.509 authorities from the directory pointed to by
the @env{SSL_CERT_DIR} environment variable (@pxref{X.509
Certificates}), unless @option{--no-check-certificate} is used.
Alternatively, @command{guix download} can also retrieve a Git
repository, possibly a specific commit, tag, or branch.
The following options are available:
@table @code
@ -14045,6 +14057,26 @@ URL, which makes you vulnerable to ``man-in-the-middle'' attacks.
@itemx -o @var{file}
Save the downloaded file to @var{file} instead of adding it to the
store.
@item --git
@itemx -g
Checkout the Git repository at the latest commit on the default branch.
@item --commit=@var{commit-or-tag}
Checkout the Git repository at @var{commit-or-tag}.
@var{commit-or-tag} can be either a tag or a commit defined in the Git
repository.
@item --branch=@var{branch}
Checkout the Git repository at @var{branch}.
The repository will be checked out at the latest commit of @var{branch},
which must be a valid branch of the Git repository.
@item --recursive
@itemx -r
Recursively clone the Git repository.
@end table
@node Invoking guix hash
@ -14155,12 +14187,21 @@ is a package definition, or a template thereof, in the format we know
The general syntax is:
@example
guix import @var{importer} @var{options}@dots{}
guix import [@var{global-options}@dots{}] @var{importer} @var{package} [@var{options}@dots{}]
@end example
@var{importer} specifies the source from which to import package
metadata, and @var{options} specifies a package identifier and other
options specific to @var{importer}.
options specific to @var{importer}. @command{guix import} itself has the
following @var{global-options}:
@table @code
@item --insert=@var{file}
@itemx -i @var{file}
Insert the package definition(s) that the @var{importer} generated into the
specified @var{file}, either in alphabetical order among existing package
definitions, or at the end of the file otherwise.
@end table
Some of the importers rely on the ability to run the @command{gpgv} command.
For these, GnuPG must be installed and in @code{$PATH}; run @code{guix install
@ -14311,7 +14352,7 @@ statistical and graphical environment}.
Information is extracted from the @file{DESCRIPTION} file of the package.
The command command below imports metadata for the Cairo R package:
The command below imports metadata for the Cairo R package:
@example
guix import cran Cairo
@ -14371,10 +14412,10 @@ Information about the package is obtained from the TeX Live package
database, a plain text file that is included in the
@code{texlive-scripts} package. The source code is downloaded from
possibly multiple locations in the SVN repository of the Tex Live
project.
project. Note that therefore SVN must be installed and in @code{$PATH};
run @code{guix install subversion} if needed.
The command command below imports metadata for the @code{fontspec}
TeX package:
The command below imports metadata for the @code{fontspec} TeX package:
@example
guix import texlive fontspec
@ -16721,6 +16762,20 @@ guix package}).
This option can be repeated several times, in which case the manifests
are concatenated.
@item --expression=@var{expr}
@itemx -e @var{expr}
Consider the package @var{expr} evaluates to.
A typical use case for this option is specifying a package that is
hidden and thus cannot be referred to in the usual way, as in this
example:
@example
guix weather -e '(@@@@ (gnu packages rust) rust-bootstrap)'
@end example
This option can be repeated.
@item --coverage[=@var{count}]
@itemx -c [@var{count}]
Report on substitute coverage for packages: list packages with at least
@ -16903,6 +16958,7 @@ The available targets are:
- i686-linux-gnu
- i686-w64-mingw32
- mips64el-linux-gnu
- or1k-elf
- powerpc-linux-gnu
- powerpc64le-linux-gnu
- riscv64-linux-gnu
@ -20948,9 +21004,214 @@ networks.
@item @code{disable-vpn?} (default: @code{#f})
When true, disable connman's vpn plugin.
@item @code{general-configuration} (default: @code{(connman-general-configuration)})
Configuration serialized to @file{main.conf} and passed as @option{--config}
to @command{connmand}.
@end table
@end deftp
@c %start of fragment
@deftp {Data Type} connman-general-configuration
Available @code{connman-general-configuration} fields are:
@table @asis
@item @code{input-request-timeout} (type: maybe-number)
Set input request timeout. Default is 120 seconds. The request for
inputs like passphrase will timeout after certain amount of time. Use
this setting to increase the value in case of different user interface
designs.
@item @code{browser-launch-timeout} (type: maybe-number)
Set browser launch timeout. Default is 300 seconds. The request for
launching a browser for portal pages will timeout after certain amount
of time. Use this setting to increase the value in case of different
user interface designs.
@item @code{background-scanning?} (type: maybe-boolean)
Enable background scanning. Default is true. If wifi is disconnected,
the background scanning will follow a simple back off mechanism from 3s
up to 5 minutes. Then, it will stay in 5 minutes unless user
specifically asks for scanning through a D-Bus call. If so, the
mechanism will start again from 3s. This feature activates also the
background scanning while being connected, which is required for roaming
on wifi. When @code{background-scanning?} is false, ConnMan will not
perform any scan regardless of wifi is connected or not, unless it is
requested by the user through a D-Bus call.
@item @code{use-gateways-as-timeservers?} (type: maybe-boolean)
Assume that service gateways also function as timeservers. Default is
false.
@item @code{fallback-timeservers} (type: maybe-list)
List of Fallback timeservers. These timeservers are used for NTP sync
when there are no timeservers set by the user or by the service, and
when @code{use-gateways-as-timeservers?} is @code{#f}. These can
contain a mixed combination of fully qualified domain names, IPv4 and
IPv6 addresses.
@item @code{fallback-nameservers} (type: maybe-list)
List of fallback nameservers appended to the list of nameservers given
by the service. The nameserver entries must be in numeric format, host
names are ignored.
@item @code{default-auto-connect-technologies} (type: maybe-list)
List of technologies that are marked autoconnectable by default. The
default value for this entry when empty is @code{"ethernet"},
@code{"wifi"}, @code{"cellular"}. Services that are automatically
connected must have been set up and saved to storage beforehand.
@item @code{default-favourite-technologies} (type: maybe-list)
List of technologies that are marked favorite by default. The default
value for this entry when empty is @code{"ethernet"}. Connects to
services from this technology even if not setup and saved to storage.
@item @code{always-connected-technologies} (type: maybe-list)
List of technologies which are always connected regardless of
preferred-technologies setting (@code{auto-connect?} @code{#t}). The
default value is empty and this feature is disabled unless explicitly
enabled.
@item @code{preferred-technologies} (type: maybe-list)
List of preferred technologies from the most preferred one to the least
preferred one. Services of the listed technology type will be tried one
by one in the order given, until one of them gets connected or they are
all tried. A service of a preferred technology type in state 'ready'
will get the default route when compared to another preferred type
further down the list with state 'ready' or with a non-preferred type; a
service of a preferred technology type in state 'online' will get the
default route when compared to either a non-preferred type or a
preferred type further down in the list.
@item @code{network-interface-blacklist} (type: maybe-list)
List of blacklisted network interfaces. Found interfaces will be
compared to the list and will not be handled by ConnMan, if their first
characters match any of the list entries. Default value is
@code{"vmnet"}, @code{"vboxnet"}, @code{"virbr"}, @code{"ifb"}.
@item @code{allow-hostname-updates?} (type: maybe-boolean)
Allow ConnMan to change the system hostname. This can happen for
example if we receive DHCP hostname option. Default value is @code{#t}.
@item @code{allow-domainname-updates?} (type: maybe-boolean)
Allow connman to change the system domainname. This can happen for
example if we receive DHCP domainname option. Default value is
@code{#t}.
@item @code{single-connected-technology?} (type: maybe-boolean)
Keep only a single connected technology at any time. When a new service
is connected by the user or a better one is found according to
preferred-technologies, the new service is kept connected and all the
other previously connected services are disconnected. With this setting
it does not matter whether the previously connected services are in
'online' or 'ready' states, the newly connected service is the only one
that will be kept connected. A service connected by the user will be
used until going out of network coverage. With this setting enabled
applications will notice more network breaks than normal. Note this
options can't be used with VPNs. Default value is @code{#f}.
@item @code{tethering-technologies} (type: maybe-list)
List of technologies that are allowed to enable tethering. The default
value is @code{"wifi"}, @code{"bluetooth"}, @code{"gadget"}. Only those
technologies listed here are used for tethering. If one wants to tether
ethernet, then add @code{"ethernet"} in the list. Note that if ethernet
tethering is enabled, then a DHCP server is started on all ethernet
interfaces. Tethered ethernet should never be connected to corporate or
home network as it will disrupt normal operation of these networks. Due
to this ethernet is not tethered by default. Do not activate ethernet
tethering unless you really know what you are doing.
@item @code{persistent-tethering-mode?} (type: maybe-boolean)
Restore earlier tethering status when returning from offline mode,
re-enabling a technology, and after restarts and reboots. Default value
is @code{#f}.
@item @code{enable-6to4?} (type: maybe-boolean)
Automatically enable anycast 6to4 if possible. This is not recommended,
as the use of 6to4 will generally lead to a severe degradation of
connection quality. See RFC6343. Default value is @code{#f} (as
recommended by RFC6343 section 4.1).
@item @code{vendor-class-id} (type: maybe-string)
Set DHCP option 60 (Vendor Class ID) to the given string. This option
can be used by DHCP servers to identify specific clients without having
to rely on MAC address ranges, etc.
@item @code{enable-online-check?} (type: maybe-boolean)
Enable or disable use of HTTP GET as an online status check. When a
service is in a READY state, and is selected as default, ConnMan will
issue an HTTP GET request to verify that end-to-end connectivity is
successful. Only then the service will be transitioned to ONLINE state.
If this setting is false, the default service will remain in READY
state. Default value is @code{#t}.
@item @code{online-check-ipv4-url} (type: maybe-string)
IPv4 URL used during the online status check. Please refer to the
README for more detailed information. Default value is
@uref{http://ipv4.connman.net/online/status.html}.
@item @code{online-check-ipv6-url} (type: maybe-string)
IPv6 URL used during the online status check. Please refer to the
README for more detailed information. Default value is
@uref{http://ipv6.connman.net/online/status.html}.
@item @code{online-check-initial-interval} (type: maybe-number)
Range of intervals between two online check requests. Please refer to
the README for more detailed information. Default value is @samp{1}.
@item @code{online-check-max-interval} (type: maybe-number)
Range of intervals between two online check requests. Please refer to
the README for more detailed information. Default value is @samp{1}.
@item @code{enable-online-to-ready-transition?} (type: maybe-boolean)
WARNING: This is an experimental feature. In addition to
@code{enable-online-check} setting, enable or disable use of HTTP GET to
detect the loss of end-to-end connectivity. If this setting is
@code{#f}, when the default service transitions to ONLINE state, the
HTTP GET request is no more called until next cycle, initiated by a
transition of the default service to DISCONNECT state. If this setting
is @code{#t}, the HTTP GET request keeps being called to guarantee that
end-to-end connectivity is still successful. If not, the default
service will transition to READY state, enabling another service to
become the default one, in replacement. Default value is @code{#f}.
@item @code{auto-connect-roaming-services?} (type: maybe-boolean)
Automatically connect roaming services. This is not recommended unless
you know you won't have any billing problem. Default value is
@code{#f}.
@item @code{address-conflict-detection?} (type: maybe-boolean)
Enable or disable the implementation of IPv4 address conflict detection
according to RFC5227. ConnMan will send probe ARP packets to see if an
IPv4 address is already in use before assigning the address to an
interface. If an address conflict occurs for a statically configured
address, an IPv4LL address will be chosen instead (according to
RFC3927). If an address conflict occurs for an address offered via
DHCP, ConnMan sends a DHCP DECLINE once and for the second conflict
resorts to finding an IPv4LL address. Default value is @code{#f}.
@item @code{localtime} (type: maybe-string)
Path to localtime file. Defaults to @file{/etc/localtime}.
@item @code{regulatory-domain-follows-timezone?} (type: maybe-boolean)
Enable regulatory domain to be changed along timezone changes. With
this option set to true each time the timezone changes the first present
ISO3166 country code is read from
@file{/usr/share/zoneinfo/zone1970.tab} and set as regulatory domain
value. Default value is @code{#f}.
@item @code{resolv-conf} (type: maybe-string)
Path to resolv.conf file. If the file does not exist, but intermediate
directories exist, it will be created. If this option is not set, it
tries to write into @file{/var/run/connman/resolv.conf} if it fails
(@file{/var/run/connman} does not exist or is not writeable). If you do
not want to update resolv.conf, you can set @file{/dev/null}.
@end table
@end deftp
@cindex WPA Supplicant
@defvar wpa-supplicant-service-type
This is the service type to run @url{https://w1.fi/wpa_supplicant/,WPA
@ -25555,6 +25816,9 @@ The @code{(gnu services databases)} module provides the following services.
@subsubheading PostgreSQL
@defvar postgresql-service-type
The service type for the PostgreSQL database server. Its value should
be a valid @code{postgresql-configuration} object, documented below.
The following example describes a PostgreSQL service with the default
configuration.
@ -25581,6 +25845,7 @@ sudo -u postgres -s /bin/sh
createuser --interactive
createdb $MY_USER_LOGIN # Replace appropriately.
@end example
@end defvar
@deftp {Data Type} postgresql-configuration
Data type representing the configuration for the
@ -27888,7 +28153,7 @@ Prosodyctl will also help you to import certificates from the
them. See @url{https://prosody.im/doc/letsencrypt}.
@example
prosodyctl --root cert import /etc/letsencrypt/live
prosodyctl --root cert import /etc/certs
@end example
The available configuration parameters follow. Each parameter
@ -28354,10 +28619,11 @@ 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
@defvar jami-service-type
The service type for running Jami as a service. It takes a
@code{jami-configuration} object as a value, documented below. 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:
@ -28485,6 +28751,7 @@ Account_username: f3345f2775ddfe07a4b0d95daea111d15fbc1199
The remaining actions should be self-explanatory.
The complete set of available configuration options is detailed below.
@end defvar
@c TODO: Ideally, the following fragments would be auto-generated at
@c build time, so that they needn't be manually duplicated.
@ -28581,6 +28848,12 @@ account fingerprint for a registered username.
This section describes how to set up and run a
@uref{https://mumble.info, Mumble} server (formerly known as Murmur).
@defvar mumble-server-service-type
This is the service to run a Mumble server. It takes a
@code{mumble-server-configuration} object as its value, defined below.
@end defvar
@deftp {Data Type} mumble-server-configuration
The service type for the Mumble server. An example configuration can
look like this:
@ -28591,8 +28864,8 @@ look like this:
(welcome-text
"Welcome to this Mumble server running on Guix!")
(cert-required? #t) ;disallow text password logins
(ssl-cert "/etc/letsencrypt/live/mumble.example.com/fullchain.pem")
(ssl-key "/etc/letsencrypt/live/mumble.example.com/privkey.pem")))
(ssl-cert "/etc/certs/mumble.example.com/fullchain.pem")
(ssl-key "/etc/certs/mumble.example.com/privkey.pem")))
@end lisp
After reconfiguring your system, you can manually set the mumble-server
@ -28710,12 +28983,12 @@ Should logged ips be obfuscated to protect the privacy of users.
File name of the SSL/TLS certificate used for encrypted connections.
@lisp
(ssl-cert "/etc/letsencrypt/live/example.com/fullchain.pem")
(ssl-cert "/etc/certs/example.com/fullchain.pem")
@end lisp
@item @code{ssl-key} (default: @code{#f})
Filepath to the ssl private key used for encrypted connections.
@lisp
(ssl-key "/etc/letsencrypt/live/example.com/privkey.pem")
(ssl-key "/etc/certs/example.com/privkey.pem")
@end lisp
@item @code{ssl-dh-params} (default: @code{#f})
@ -31603,6 +31876,50 @@ Additional arguments to pass to the @command{varnishd} process.
@end table
@end deftp
@subheading Whoogle Search
@cindex Whoogle Search
@uref{https://github.com/benbusby/whoogle-search, Whoogle Search} is a
self-hosted, ad-free, privacy-respecting meta search engine that collects
and displays Google search results. By default, you can configure it by
adding this line to the @code{services} field of your operating system
declaration:
@lisp
(service whoogle-service-type)
@end lisp
As a result, Whoogle Search runs as local Web server, which you can
access by opening @indicateurl{http://localhost:5000} in your browser.
The configuration reference is given below.
@defvar whoogle-service-type
Service type for Whoogle Search. Its value must be a
@code{whoogle-configuration} record---see below.
@end defvar
@deftp {Data Type} whoogle-configuration
Data type representing Whoogle Search service configuration.
@table @asis
@item @code{package} (default: @code{whoogle-search})
The Whoogle Search package to use.
@item @code{host} (default: @code{"127.0.0.1"})
The host address to run Whoogle on.
@item @code{port} (default: @code{5000})
The port where Whoogle will be exposed.
@item @code{environment-variables} (default: @code{'()})
A list of strings with the environment variables to configure Whoogle.
You can consult
@uref{https://github.com/benbusby/whoogle-search/blob/main/whoogle.template.env,
its environment variables template} for the list of available options.
@end table
@end deftp
@subsubheading Patchwork
@cindex Patchwork
Patchwork is a patch tracking system. It can collect patches sent to a
@ -32307,21 +32624,13 @@ A service type for the @code{certbot} Let's Encrypt client. Its value
must be a @code{certbot-configuration} record as in this example:
@lisp
(define %certbot-deploy-hook
(program-file "certbot-deploy-hook.scm"
(with-imported-modules '((gnu services herd))
#~(begin
(use-modules (gnu services herd))
(with-shepherd-action 'nginx ('reload) result result)))))
(service certbot-service-type
(certbot-configuration
(email "foo@@example.net")
(certificates
(list
(certificate-configuration
(domains '("example.net" "www.example.net"))
(deploy-hook %certbot-deploy-hook))
(domains '("example.net" "www.example.net")))
(certificate-configuration
(domains '("bar.example.net")))))))
@end lisp
@ -32435,12 +32744,18 @@ certificates and keys; the shell variable @code{$RENEWED_DOMAINS} will
contain a space-delimited list of renewed certificate domains (for
example, @samp{"example.com www.example.com"}.
@item @code{start-self-signed?} (default: @code{#t})
Whether to generate an initial self-signed certificate during system
activation. This option is particularly useful to allow @code{nginx} to
start before @code{certbot} has run, because @code{certbot} relies on
@code{nginx} running to perform HTTP challenges.
@end table
@end deftp
For each @code{certificate-configuration}, the certificate is saved to
@code{/etc/letsencrypt/live/@var{name}/fullchain.pem} and the key is
saved to @code{/etc/letsencrypt/live/@var{name}/privkey.pem}.
@code{/etc/certs/@var{name}/fullchain.pem} and the key is
saved to @code{/etc/certs/@var{name}/privkey.pem}.
@node DNS Services
@subsection DNS Services
@cindex DNS (domain name system)
@ -36081,6 +36396,142 @@ host. If empty, QEMU uses a default file name.
@end deftp
@anchor{build-vm}
@subsubheading Virtual Build Machines
@cindex virtual build machines
@cindex build VMs
@cindex VMs, for offloading
@dfn{Virtual build machines} or ``build VMs'' let you offload builds to
a fully controlled environment. ``How can it be more controlled than
regular builds? And why would it be useful?'', you ask. Good
questions.
Builds spawned by @code{guix-daemon} indeed run in a controlled
environment; specifically the daemon spawns build processes in separate
namespaces and in a chroot, such as that build processes only see their
declared dependencies and a well-defined subset of the file system tree
(@pxref{Build Environment Setup}, for details). A few aspects of the
environments are not controlled though: the operating system kernel, the
CPU model, and the date. Most of the time, these aspects have no impact
on the build process: the level of isolation @code{guix-daemon} provides
is ``good enough''.
@cindex time traps
However, there are occasionally cases where those aspects @emph{do}
influence the build process. A typical example is @dfn{time traps}:
build processes that stop working after a certain date@footnote{The most
widespread example of time traps is test suites that involve checking
the expiration date of a certificate. Such tests exists in TLS
implementations such as OpenSSL and GnuTLS, but also in high-level
software such as Python.}. Another one is software that optimizes for
the CPU microarchitecture it is built on or, worse, bugs that manifest
only on specific CPUs.
To address that, @code{virtual-build-machine-service-type} lets you add
a virtual build machine on your system, as in this example:
@lisp
(use-modules (gnu services virtualization))
(operating-system
;; @dots{}
(services (append (list (service virtual-build-machine-service-type))
%base-services)))
@end lisp
By default, you have to explicitly start the build machine when you need
it, at which point builds may be offloaded to it (@pxref{Daemon Offload
Setup}):
@example
herd start build-vm
@end example
With the default setting shown above, the build VM runs with its clock
set to a date several years in the past, and on a CPU model that
corresponds to that date---a model possibly older than that of your
machine. This lets you rebuild today software from the past that would
otherwise fail to build due to a time trap or other issues in its build
process. You can view the VM's config like this:
@example
herd configuration build-vm
@end example
You can configure the build VM, as in this example:
@lisp
(service virtual-build-machine-service-type
(virtual-build-machine
(cpu "Westmere")
(cpu-count 8)
(memory-size (* 1 1024))
(auto-start? #t)))
@end lisp
The available options are shown below.
@defvar virtual-build-machine-service-type
This is the service type to run @dfn{virtual build machines}. Virtual
build machines are configured so that builds are offloaded to them when
they are running.
@end defvar
@deftp {Data Type} virtual-build-machine
This is the data type specifying the configuration of a build machine.
It contains the fields below:
@table @asis
@item @code{name} (default: @code{'build-vm})
The name of this build VM. It is used to construct the name of its
Shepherd service.
@item @code{image}
The image of the virtual machine (@pxref{System Images}). This notably
specifies the virtual disk size and the operating system running into it
(@pxref{operating-system Reference}). The default value is a minimal
operating system image.
@item @code{qemu} (default: @code{qemu-minimal})
The QEMU package to run the image.
@item @code{cpu}
The CPU model being emulated as a string denoting a model known to QEMU.
The default value is a model that matches @code{date} (see below). To
see what CPU models are available, run, for example:
@example
qemu-system-x86_64 -cpu help
@end example
@item @code{cpu-count} (default: @code{4})
The number of CPUs emulated by the virtual machine.
@item @code{memory-size} (default: @code{2048})
Size in mebibytes (MiB) of the virtual machine's main memory (RAM).
@item @code{date} (default: a few years ago)
Date inside the virtual machine when it starts; this must be a SRFI-19
date object (@pxref{SRFI-19 Date,,, guile, GNU Guile Reference Manual}).
@item @code{port-forwardings} (default: 11022 and 11004)
TCP ports of the virtual machine forwarded to the host. By default, the
SSH and secrets ports are forwarded into the host.
@item @code{systems} (default: @code{(list (%current-system))})
List of system types supported by the build VM---e.g.,
@code{"x86_64-linux"}.
@item @code{auto-start?} (default: @code{#f})
Whether to start the virtual machine when the system boots.
@end table
@end deftp
In the next section, you'll find a variant on this theme: GNU/Hurd
virtual machines!
@anchor{hurd-vm}
@subsubheading The Hurd in a Virtual Machine
@ -37126,9 +37577,9 @@ serve the default @file{/srv/git} over HTTPS might be:
(listen '("443 ssl"))
(server-name "git.my-host.org")
(ssl-certificate
"/etc/letsencrypt/live/git.my-host.org/fullchain.pem")
"/etc/certs/git.my-host.org/fullchain.pem")
(ssl-certificate-key
"/etc/letsencrypt/live/git.my-host.org/privkey.pem")
"/etc/certs/git.my-host.org/privkey.pem")
(locations
(list
(git-http-nginx-location-configuration
@ -38253,9 +38704,9 @@ footers.
(nginx-server-block
(nginx-server-configuration
(ssl-certificate
"/etc/letsencrypt/live/myweb.site/fullchain.pem")
"/etc/certs/myweb.site/fullchain.pem")
(ssl-certificate-key
"/etc/letsencrypt/live/myweb.site/privkey.pem")
"/etc/certs/myweb.site/privkey.pem")
(listen '("443 ssl http2" "[::]:443 ssl http2"))
(locations
(list
@ -40060,16 +40511,31 @@ After @command{guix system reconfigure} configure Nix for your user:
@itemize
@item Add a Nix channel and update it. See
@url{https://nixos.org/nix/manual/, Nix Package Manager Guide}.
@url{https://nixos.wiki/wiki/Nix_channels, Nix channels} for more
information about the available channels. If you would like to use the
unstable Nix channel you can do this by running:
@example
$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable
$ nix-channel --update
@end example
@item Create your Nix profile directory:
@example
$ sudo mkdir -p /nix/var/nix/profiles/per-user/$USER
$ sudo chown $USER:root /nix/var/nix/profiles/per-user/$USER
@end example
@item Create a symlink to your profile and activate Nix profile:
@end itemize
@example
$ ln -s "/nix/var/nix/profiles/per-user/$USER/profile" ~/.nix-profile
$ source /run/current-system/profile/etc/profile.d/nix.sh
@end example
@end itemize
@end defvar
@deftp {Data Type} nix-configuration
@ -42888,6 +43354,15 @@ shepherd, The GNU Shepherd Manual}, for more info.
Whether to restart the service when it stops, for instance when the
underlying process dies.
@item @code{respawn-limit} (default: @code{#f})
Set a limit on how many times and how frequently a service may be
restarted by Shepherd before it is disabled. @xref{Defining
Services,,, shepherd, The GNU Shepherd Manual}, for details.
@item @code{respawn-delay} (default: @code{#f})
When true, this is the delay in seconds before restarting a failed
service.
@item @code{start}
@itemx @code{stop} (default: @code{#~(const #f)})
The @code{start} and @code{stop} fields refer to the Shepherd's
@ -43120,7 +43595,7 @@ A clause has the following form:
the generated record.
@var{type-decl} is either @code{@var{type}} for fields that require a
value to be set or @code{(@var{type} @var{default})} otherwise.
value to be set or @code{(@var{type} @var{default-value})} otherwise.
@var{type} is the type of the value corresponding to @var{field-name};
since Guile is untyped, a predicate
@ -43961,6 +44436,116 @@ to use alternative services to implement more advanced use cases like
read-only home. Feel free to experiment and share your results.
@end defvar
@cindex dot files in Guix Home
It is often the case that Guix Home users already have a setup for versioning
their user configuration files (also known as @emph{dot files}) in a single
directory, and some way of automatically deploy changes to their user home.
@cindex Stow-like dot file management
The @code{home-dotfiles-service-type} from @code{(gnu home services dotfiles)}
is designed to ease the way into using Guix Home for this kind of users,
allowing them to point the service to their dotfiles directory, which must
follow the layout suggested by
@uref{https://www.gnu.org/software/stow/, GNU Stow},
and have their dotfiles automatically deployed to their user home, without
migrating them to Guix native configurations.
The dotfiles directory layout is expected to be structured as follows. Please
keep in mind that it is advisable to keep your dotfiles directories under
version control, for example in the same repository where you'd track your
Guix Home configuration.
@example
~$ tree -a ./dotfiles/
dotfiles/
├── git
│ └── .gitconfig
├── gpg
│ └── .gnupg
│ ├── gpg-agent.conf
│ └── gpg.conf
├── guile
│ └── .guile
├── guix
│ └── .config
│ └── guix
│ └── channels.scm
├── nix
│ ├── .config
│ │ └── nixpkgs
│ │ └── config.nix
│ └── .nix-channels
├── tmux
│ └── .tmux.conf
└── vim
└── .vimrc
13 directories, 10 files
@end example
For an informal specification please refer to the Stow manual
(@pxref{Top,,, stow, Introduction}). A suitable configuration would then
be:
@lisp
(home-environment
;; @dots{}
(services
(service home-dotfiles-service-type
(home-dotfiles-configuration
(directories (list "./dotfiles"))))))
@end lisp
The expected home directory state would then be:
@example
.
├── .config
│ ├── guix
│ │ └── channels.scm
│ └── nixpkgs
│ └── config.nix
├── .gitconfig
├── .gnupg
│ ├── gpg-agent.conf
│ └── gpg.conf
├── .guile
├── .nix-channels
├── .tmux.conf
└── .vimrc
@end example
@defvar home-dotfiles-service-type
Return a service which is very similiar to @code{home-files-service-type}
(and actually extends it), but designed to ease the way into using Guix
Home for users that already track their dotfiles under some kind of version
control. This service allows users to point Guix Home to their dotfiles
directory and have their files automatically deployed to their home directory
just like Stow would, without migrating all of their dotfiles to Guix native
configurations.
@end defvar
@deftp {Data Type} home-dotfiles-configuration
Available @code{home-dotfiles-configuration} fields are:
@table @asis
@item @code{source-directory} (default: @code{(current-source-directory)})
The path where dotfile directories are resolved. By default dotfile directories
are resolved relative the source location where
@code{home-dotfiles-configuration} appears.
@item @code{directories} (type: list-of-strings)
The list of dotfiles directories where @code{home-dotfiles-service-type} will
look for application dotfiles.
@item @code{exclude} (default: @code{'(".*~" ".*\\.swp" "\\.git" "\\.gitignore")})
The list of file patterns @code{home-dotfiles-service-type} will exclude while
visiting each one of the @code{directories}.
@end table
@end deftp
@defvar home-xdg-configuration-files-service-type
The service is very similar to @code{home-files-service-type} (and
actually extends it), but used for defining files, which will go to
@ -46167,6 +46752,11 @@ Platform targeting AVR CPUs without an operating system, with run-time support
from AVR Libc.
@end defvar
@defvar or1k-elf
Platform targeting OpenRISC 1000 CPU without an operating system and without a
C standard library.
@end defvar
@node System Images
@chapter Creating System Images

View file

@ -6,7 +6,7 @@
"build-system": "gnu",
"arguments": {
"tests?": false
}
},
"home-page": "https://www.gnu.org/software/hello/",
"synopsis": "Hello, GNU world: An example GNU package",
"description": "GNU Hello prints a greeting.",
@ -16,11 +16,11 @@
{
"name": "greeter",
"version": "1.0",
"source": "https://example.com/greeter-1.0.tar.gz",
"source": "mirror://gnu/hello/hello-2.10.tar.gz",
"build-system": "gnu",
"arguments": {
"test-target": "foo",
"parallel-build?": false,
"parallel-build?": false
},
"home-page": "https://example.com/",
"synopsis": "Greeter using GNU Hello",

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021-2024 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -35,6 +35,8 @@ (define (tarball-origin? origin)
(and (origin-hash origin)
(or (string-suffix? ".tar.gz" file)
(string-suffix? ".tgz" file)
(string-suffix? ".tar.bz2" file)
(string-suffix? ".tbz2" file)
(string-suffix? ".tar.xz" file)
(string-suffix? ".tar" file))))))

View file

@ -20,6 +20,7 @@
[b4]
attestation-check-dkim = off
attestation-policy = off
shazam-am-flags = --signoff --3way
linkmask = https://yhetil.org/guix/%s
linktrailermask = https://yhetil.org/guix/%s
midmask = https://yhetil.org/guix/%s

View file

@ -19,6 +19,7 @@
;; Copyright © 2021, 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;; Copyright © 2022 Thiago Jung Bauermann <bauermann@kolabnow.com>
;; Copyright © 2024 Oleg Pykhalov <go.wigust@gmail.com>
;; Copyright © 2024 Wilko Meyer <w@wmeyer.eu>
;;
;; Copying and distribution of this file, with or without modification, are
;; permitted in any medium without royalty provided the copyright notice and
@ -27,6 +28,18 @@
(channel-news
(version 0)
(entry (commit "10a193596368443f441077525ebbddf787d91e4b")
(title
(en "Linux-libre 4.14 removed due to end of upstream support")
(de "Linux-libre 4.14 wurde entfernt"))
(body
(en "The linux-libre 4.14 kernel series has reached the end of
its life, and is no longer supported upstream. For this
reason, it has been removed from GNU Guix.")
(de "Die @code{linux-libre} 4.14-Versionsreihe hat ihr
Supportende erreicht und wird nicht mehr unterstützt (end of life). Daher ist die
Versionsreihe aus GNU Guix entfernt worden.")))
(entry (commit "519e1e3eb88ec532fc83ebb742d9919269b57c87")
(title
(de "Neue Option @samp{--max-layers=N} für den Befehl @command{guix pack}")

View file

@ -8,7 +8,7 @@
!#
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2022-2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org>
;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Simon Tournier <zimon.toutoune@gmail.com>
@ -176,6 +176,13 @@ (define-team r
"guix/scripts/import/cran.scm"
"tests/cran.scm")))
(define-team sugar
(team 'sugar
#:name "Sugar team"
#:description
"Everything related to the Sugar Desktop and learning environment."
#:scope (list "gnu/packages/sugar.scm")))
(define-team telephony
(team 'telephony
#:name "Telephony team"
@ -299,10 +306,12 @@ (define-team ruby
(define-team go
(team 'go
#:name "Go team"
#:scope (list "gnu/packages/golang.scm"
"gnu/packages/golang-check.scm"
"guix/build/go-build-system.scm"
#:scope (list "gnu/packages/configuration-management.scm"
"gnu/packages/golang(-.+|)\\.scm$"
"gnu/packages/syncthing.scm"
"gnu/packages/terraform.scm"
"guix/build-system/go.scm"
"guix/build/go-build-system.scm"
"guix/import/go.scm"
"guix/scripts/import/go.scm"
"tests/go.scm")))
@ -495,7 +504,8 @@ (define-team mozilla
and Thunderbird."
#:scope (list "gnu/build/icecat-extension.scm"
"gnu/packages/browser-extensions.scm"
"gnu/packages/gnuzilla.scm")))
"gnu/packages/gnuzilla.scm"
"gnu/packages/tor-browsers.scm")))
(define-team racket
(team 'racket
@ -592,7 +602,7 @@ (define-member (person "Leo Famulari"
(define-member (person "Efraim Flashner"
"efraim@flashner.co.il")
embedded bootstrap julia rust science)
embedded bootstrap julia rust)
(define-member (person "jgart"
"jgart@dismail.de")
@ -624,7 +634,7 @@ (define-member (person "Liliana Marie Prikler"
(define-member (person "Ricardo Wurmus"
"rekado@elephly.net")
r core mentors tex)
core mentors r sugar tex)
(define-member (person "Christopher Baines"
"guix@cbaines.net")
@ -710,6 +720,10 @@ (define-member (person "Wilko Meyer"
"w@wmeyer.eu")
kernel)
(define-member (person "Mark H Weaver"
"mhw@netris.org")
mozilla)
(define (find-team name)
(or (hash-ref %teams (string->symbol name))

View file

@ -8,6 +8,7 @@
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2020 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -408,6 +409,7 @@ (define* (activate-current-system
(format #t "making '~a' the current system...~%" system)
(mkdir-p "/run")
;; Atomically make SYSTEM current.
(let ((new (string-append %current-system ".new")))
(symlink system new)

View file

@ -7,6 +7,7 @@
;;; Copyright © 2019 David C. Trudgian <dave@trudgian.net>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -1021,8 +1022,8 @@ (define find-partition-by-luks-uuid
(define (canonicalize-device-spec spec)
"Return the device name corresponding to SPEC, which can be a <uuid>, a
<file-system-label>, or a string (typically a /dev file name or an nfs-root
containing ':/')."
<file-system-label>, the string 'none' or another string (typically a /dev
file name or an nfs-root containing ':/')."
(define max-trials
;; Number of times we retry partition label resolution, 1 second per
;; trial. Note: somebody reported a delay of 16 seconds (!) before their
@ -1046,8 +1047,8 @@ (define (resolve find-partition spec fmt)
(match spec
((? string?)
(if (string-contains spec ":/")
spec ; do not resolve NFS devices
(if (or (string-contains spec ":/") (string=? spec "none"))
spec ; do not resolve NFS / tmpfs devices
;; Nothing to do, but wait until SPEC shows up.
(resolve identity spec identity)))
((? file-system-label?)

View file

@ -2,6 +2,7 @@
;;; Copyright © 2013-2020, 2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -134,8 +135,6 @@ (define (directives store)
(directory "/var/guix/gcroots")
(directory "/var/empty") ; for no-login accounts
(directory "/var/db") ; for dhclient, etc.
(directory "/var/run")
(directory "/run")
(directory "/mnt")
(directory "/var/guix/profiles/per-user/root" 0 0)

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016-2022, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
@ -223,29 +223,49 @@ (define* (wait-for-file file marionette
(define* (wait-for-tcp-port port marionette
#:key
(timeout 20)
(peek? #f)
(address `(make-socket-address AF_INET
INADDR_LOOPBACK
,port)))
"Wait for up to TIMEOUT seconds for PORT to accept connections in
MARIONETTE. ADDRESS must be an expression that returns a socket address,
typically a call to 'make-socket-address'. Raise an error on failure."
typically a call to 'make-socket-address'. When PEEK? is true, attempt to
read a byte from the socket upon connection; retry if that gives the
end-of-file object.
Raise an error on failure."
;; Note: The 'connect' loop has to run within the guest because, when we
;; forward ports to the host, connecting to the host never raises
;; ECONNREFUSED.
(match (marionette-eval
`(let* ((address ,address)
(sock (socket (sockaddr:fam address) SOCK_STREAM 0)))
(let loop ((i 0))
`(let* ((address ,address))
(define (open-socket)
(socket (sockaddr:fam address) SOCK_STREAM 0))
(let loop ((sock (open-socket))
(i 0))
(catch 'system-error
(lambda ()
(connect sock address)
(when ,peek?
(let ((byte ((@ (ice-9 binary-ports) lookahead-u8)
sock)))
(when (eof-object? byte)
(close-port sock)
(throw 'system-error
"wait-for-tcp-port" "~A"
(list (strerror ECONNRESET))
(list ECONNRESET)))))
(close-port sock)
'success)
(lambda args
(if (< i ,timeout)
(begin
(sleep 1)
(loop (+ 1 i)))
(loop (if (port-closed? sock)
(open-socket)
sock)
(+ 1 i)))
(list 'failure address))))))
marionette)
('success #t)

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
@ -93,13 +93,28 @@ (define (wait-for-readable-fd port timeout)
('readable #t)
('timeout #f)))))))
(define* (secret-service-send-secrets port secret-root
(define (socket-address->string address)
"Return a human-readable representation of ADDRESS, an object as returned by
'make-socket-address'."
(let ((family (sockaddr:fam address)))
(cond ((= AF_INET family)
(string-append (inet-ntop AF_INET (sockaddr:addr address))
":" (number->string (sockaddr:port address))))
((= AF_INET6 family)
(string-append "[" (inet-ntop AF_INET6 (sockaddr:addr address)) "]"
":" (number->string (sockaddr:port address))))
((= AF_UNIX family)
(sockaddr:path address))
(else
(object->string address)))))
(define* (secret-service-send-secrets address secret-root
#:key (retry 60)
(handshake-timeout 180))
"Copy all files under SECRET-ROOT using TCP to secret-service listening at
local PORT. If connect fails, sleep 1s and retry RETRY times; once connected,
wait for at most HANDSHAKE-TIMEOUT seconds for handshake to complete. Return
#f on failure."
"Copy all files under SECRET-ROOT by connecting to secret-service listening
at ADDRESS, an address as returned by 'make-socket-address'. If connection
fails, sleep 1s and retry RETRY times; once connected, wait for at most
HANDSHAKE-TIMEOUT seconds for handshake to complete. Return #f on failure."
(define (file->file+size+mode file-name)
(let ((stat (stat file-name))
(target (substring file-name (string-length secret-root))))
@ -118,9 +133,9 @@ (define (send-files sock)
(dump-port input sock))))
files)))
(log "sending secrets to ~a~%" port)
(log "sending secrets to ~a~%" (socket-address->string address))
(let ((sock (socket AF_INET (logior SOCK_CLOEXEC SOCK_STREAM) 0))
(addr (make-socket-address AF_INET INADDR_LOOPBACK port))
(sleep (if (resolve-module '(fibers) #f)
(module-ref (resolve-interface '(fibers)) 'sleep)
sleep)))
@ -129,7 +144,7 @@ (define (send-files sock)
;; forward port inside the guest.
(let loop ((retry retry))
(catch 'system-error
(cute connect sock addr)
(cute connect sock address)
(lambda (key . args)
(when (zero? retry)
(apply throw key args))
@ -147,7 +162,8 @@ (define (send-files sock)
(('secret-service-server ('version version ...))
(log "sending files from ~s...~%" secret-root)
(send-files sock)
(log "done sending files to port ~a~%" port)
(log "done sending files to ~a~%"
(socket-address->string address))
(close-port sock)
secret-root)
(x
@ -155,7 +171,8 @@ (define (send-files sock)
(close-port sock)
#f))
(begin ;timeout
(log "timeout while sending files to ~a~%" port)
(log "timeout while sending files to ~a~%"
(socket-address->string address))
(close-port sock)
#f))))
@ -168,19 +185,20 @@ (define (delete-file* file)
(unless (= ENOENT (system-error-errno args))
(apply throw args)))))
(define (secret-service-receive-secrets port)
"Listen to local PORT and wait for a secret service client to send secrets.
Write them to the file system. Return the list of files installed on success,
and #f otherwise."
(define (secret-service-receive-secrets address)
"Listen to ADDRESS, an address returned by 'make-socket-address', and wait
for a secret service client to send secrets. Write them to the file system.
Return the list of files installed on success, and #f otherwise."
(define (wait-for-client port)
;; Wait for a TCP connection on PORT. Note: We cannot use the
;; virtio-serial ports, which would be safer, because they are
;; (presumably) unsupported on GNU/Hurd.
(define (wait-for-client address)
;; Wait for a connection on ADDRESS. Note: virtio-serial ports are safer
;; than TCP connections but they are (presumably) unsupported on GNU/Hurd.
(let ((sock (socket AF_INET (logior SOCK_CLOEXEC SOCK_STREAM) 0)))
(bind sock AF_INET INADDR_ANY port)
(bind sock address)
(listen sock 1)
(log "waiting for secrets on port ~a...~%" port)
(log "waiting for secrets on ~a...~%"
(socket-address->string address))
(match (select (list sock) '() '() 60)
(((_) () ())
(match (accept sock)
@ -244,7 +262,7 @@ (define (read-secrets port)
(log "invalid secrets received~%")
#f)))
(let* ((port (wait-for-client port))
(let* ((port (wait-for-client address))
(result (and=> port read-secrets)))
(when port
(close-port port))

View file

@ -191,6 +191,7 @@ (define (same? target)
(define (pointless? target)
;; Return #t if it makes no sense to cross-build to TARGET from SYSTEM.
(or (string=? target "avr") ; Nothing for AVR at this time.
(string=? target "or1k-elf") ;; Nothing for or1k-elf at this time.
(match system
((or "x86_64-linux" "i686-linux")
(if (string-contains target "mingw")

View file

@ -37,6 +37,7 @@ (define-module (gnu home services)
#:use-module (guix memoization)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-34)
#:use-module (ice-9 match)
#:use-module (ice-9 vlist)

View file

@ -0,0 +1,117 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2024 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu home services dotfiles)
#:use-module (gnu home services)
#:use-module (gnu services)
#:autoload (guix build utils) (find-files)
#:use-module (guix gexp)
#:use-module (guix records)
#:use-module ((guix utils) #:select (current-source-directory))
#:use-module (srfi srfi-1)
#:use-module (ice-9 ftw)
#:use-module (ice-9 regex)
#:export (home-dotfiles-service-type
home-dotfiles-configuration
home-dotfiles-configuration?
home-dotfiles-configuration-source-directory
home-dotfiles-configuration-directories
home-dotfiles-configuration-excluded))
(define %home-dotfiles-excluded
'(".*~"
".*\\.swp"
"\\.git"
"\\.gitignore"))
(define-record-type* <home-dotfiles-configuration>
home-dotfiles-configuration make-home-dotfiles-configuration
home-dotfiles-configuration?
(source-directory home-dotfiles-configuration-source-directory
(default (current-source-directory))
(innate))
(directories home-dotfiles-configuration-directories ;list of strings
(default '()))
(excluded home-dotfiles-configuration-excluded ;list of strings
(default %home-dotfiles-excluded)))
(define (import-dotfiles directory files)
"Return a list of objects compatible with @code{home-files-service-type}'s
value. Each object is a pair where the first element is the relative path
of a file and the second is a gexp representing the file content. Objects are
generated by recursively visiting DIRECTORY and mapping its contents to the
user's home directory, excluding files that match any of the patterns in EXCLUDED."
(define (strip file)
(string-drop file (+ 1 (string-length directory))))
(define (format file)
;; Remove from FILE characters that cannot be used in the store.
(string-append
"home-dotfiles-"
(string-map (lambda (chr)
(if (and (char-set-contains? char-set:ascii chr)
(char-set-contains? char-set:graphic chr)
(not (memv chr '(#\. #\/ #\space))))
chr
#\-))
file)))
(map (lambda (file)
(let ((stripped (strip file)))
(list stripped
(local-file file (format stripped)
#:recursive? #t))))
files))
(define (home-dotfiles-configuration->files config)
"Return a list of objects compatible with @code{home-files-service-type}'s
value, generated following GNU Stow's algorithm for each of the
directories in CONFIG, excluding files that match any of the patterns configured."
(define excluded
(home-dotfiles-configuration-excluded config))
(define exclusion-rx
(make-regexp (string-append "^.*(" (string-join excluded "|") ")$")))
(define (directory-contents directory)
(find-files directory
(lambda (file stat)
(not (regexp-exec exclusion-rx
(basename file))))))
(define (resolve directory)
;; Resolve DIRECTORY relative to the 'source-directory' field of CONFIG.
(if (string-prefix? "/" directory)
directory
(in-vicinity (home-dotfiles-configuration-source-directory config)
directory)))
(append-map (lambda (directory)
(let* ((directory (resolve directory))
(contents (directory-contents directory)))
(import-dotfiles directory contents)))
(home-dotfiles-configuration-directories config)))
(define-public home-dotfiles-service-type
(service-type (name 'home-dotfiles)
(extensions
(list (service-extension home-files-service-type
home-dotfiles-configuration->files)))
(default-value (home-dotfiles-configuration))
(description "Files that will be put in the user's home directory
following GNU Stow's algorithm, and further processed during activation.")))

View file

@ -2,6 +2,7 @@
;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -157,6 +158,12 @@ (define (strip file)
#t
(G_ "Skipping ~a (not an empty directory)... done\n")
directory))
;; This happens when the directory is a mounted device.
((= EBUSY errno)
(format
#t
(G_ "Skipping ~a (underlying device is busy)... done\n")
directory))
((= ENOENT errno) #t)
((= ENOTDIR errno) #t)
(else

View file

@ -1,6 +1,6 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2012-2024 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2022, 2023 Andreas Enge <andreas@enge.fr>
# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2022, 2023, 2024 Andreas Enge <andreas@enge.fr>
# Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Mark H Weaver <mhw@netris.org>
# Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
@ -13,7 +13,7 @@
# Copyright © 2016-2023 Efraim Flashner <efraim@flashner.co.il>
# Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
# Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
# Copyright © 2017, 2018, 2023 Clément Lassieur <clement@lassieur.org>
# Copyright © 2017, 2018, 2023, 2024 Clément Lassieur <clement@lassieur.org>
# Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
# Copyright © 2017, 2018, 2019 Gábor Boskovits <boskovits@gmail.com>
# Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
@ -56,13 +56,14 @@
# Copyright © 2022 Alex Griffin <a@ajgrf.com>
# Copyright © 2022 ( <paren@disroot.org>
# Copyright © 2022 jgart <jgart@dismail.de>
# Copyright © 2023 Zheng Junjie <873216071@qq.com>
# Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com>
# Copyright © 2023 Ivana Drazovic <iv.dra@hotmail.com>
# Copyright © 2023 Andy Tai <atai@atai.org>
# Copyright © 2023 B. Wilson <elaexuotee@wilsonb.com>
# Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
# Copyright © 2023 Herman Rimm <herman@rimm.ee>
# Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
# Copyright © 2024 David Elsing <david.elsing@posteo.net>
#
# This file is part of GNU Guix.
#
@ -96,6 +97,7 @@ GNU_SYSTEM_MODULES = \
%D%/home/services.scm \
%D%/home/services/desktop.scm \
%D%/home/services/dict.scm \
%D%/home/services/dotfiles.scm \
%D%/home/services/symlink-manager.scm \
%D%/home/services/fontutils.scm \
%D%/home/services/gnupg.scm \
@ -199,9 +201,15 @@ GNU_SYSTEM_MODULES = \
%D%/packages/cpp.scm \
%D%/packages/cppi.scm \
%D%/packages/cran.scm \
%D%/packages/crates-apple.scm \
%D%/packages/crates-crypto.scm \
%D%/packages/crates-io.scm \
%D%/packages/crates-graphics.scm \
%D%/packages/crates-gtk.scm \
%D%/packages/crates-tls.scm \
%D%/packages/crates-vcs.scm \
%D%/packages/crates-web.scm \
%D%/packages/crates-windows.scm \
%D%/packages/cross-base.scm \
%D%/packages/cross-toolchain.scm \
%D%/packages/crypto.scm \
@ -306,8 +314,12 @@ GNU_SYSTEM_MODULES = \
%D%/packages/gnu-pw-mgr.scm \
%D%/packages/gobby.scm \
%D%/packages/golang.scm \
%D%/packages/golang-build.scm \
%D%/packages/golang-check.scm \
%D%/packages/golang-compression.scm \
%D%/packages/golang-crypto.scm \
%D%/packages/golang-web.scm \
%D%/packages/golang-xyz.scm \
%D%/packages/gperf.scm \
%D%/packages/gpodder.scm \
%D%/packages/gps.scm \
@ -543,6 +555,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/toys.scm \
%D%/packages/tryton.scm \
%D%/packages/qt.scm \
%D%/packages/quantum.scm \
%D%/packages/racket.scm \
%D%/packages/radio.scm \
%D%/packages/ragel.scm \
@ -629,6 +642,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/tls.scm \
%D%/packages/tmux.scm \
%D%/packages/toolkits.scm \
%D%/packages/tor-browsers.scm \
%D%/packages/tor.scm \
%D%/packages/tree-sitter.scm \
%D%/packages/tv.scm \
@ -927,7 +941,6 @@ dist_patch_DATA = \
%D%/packages/patches/apr-skip-getservbyname-test.patch \
%D%/packages/patches/aria2-unbundle-wslay.patch \
%D%/packages/patches/ark-skip-xar-test.patch \
%D%/packages/patches/arpack-ng-propagate-rng-state.patch \
%D%/packages/patches/asli-use-system-libs.patch \
%D%/packages/patches/aspell-CVE-2019-25051.patch \
%D%/packages/patches/aspell-default-dict-dir.patch \
@ -952,6 +965,7 @@ dist_patch_DATA = \
%D%/packages/patches/audiofile-function-signature.patch \
%D%/packages/patches/automake-skip-amhello-tests.patch \
%D%/packages/patches/avahi-localstatedir.patch \
%D%/packages/patches/avalon-toolkit-rdkit-fixes.patch \
%D%/packages/patches/avidemux-install-to-lib.patch \
%D%/packages/patches/awesome-reproducible-png.patch \
%D%/packages/patches/awesome-4.3-fno-common.patch \
@ -965,7 +979,6 @@ dist_patch_DATA = \
%D%/packages/patches/bazaar-CVE-2017-14176.patch \
%D%/packages/patches/bc-fix-cross-compilation.patch \
%D%/packages/patches/bdb-5.3-atomics-on-gcc-9.patch \
%D%/packages/patches/bind-re-add-attr-constructor-priority.patch \
%D%/packages/patches/brightnessctl-elogind-support.patch \
%D%/packages/patches/bsd-games-2.17-64bit.patch \
%D%/packages/patches/bsd-games-add-configure-config.patch \
@ -1051,7 +1064,6 @@ dist_patch_DATA = \
%D%/packages/patches/converseen-hide-non-free-pointers.patch \
%D%/packages/patches/cool-retro-term-wctype.patch \
%D%/packages/patches/coreutils-gnulib-tests.patch \
%D%/packages/patches/coq-fix-envvars.patch \
%D%/packages/patches/cppcheck-disable-char-signedness-test.patch \
%D%/packages/patches/cpuinfo-system-libraries.patch \
%D%/packages/patches/cpulimit-with-glib-2.32.patch \
@ -1134,7 +1146,6 @@ dist_patch_DATA = \
%D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch \
%D%/packages/patches/emacs-xelb-ignore-length-element.patch \
%D%/packages/patches/emacs-yasnippet-fix-empty-snippet-next.patch \
%D%/packages/patches/emacs-yasnippet-fix-tests.patch \
%D%/packages/patches/enblend-enfuse-reproducible.patch \
%D%/packages/patches/enjarify-setup-py.patch \
%D%/packages/patches/enlightenment-fix-setuid-path.patch \
@ -1301,6 +1312,7 @@ dist_patch_DATA = \
%D%/packages/patches/ghostscript-no-header-id.patch \
%D%/packages/patches/ghostscript-no-header-uuid.patch \
%D%/packages/patches/ghostscript-no-header-creationdate.patch \
%D%/packages/patches/git-filter-repo-generate-doc.patch \
%D%/packages/patches/gitg-fix-positional-argument.patch \
%D%/packages/patches/gklib-suitesparse.patch \
%D%/packages/patches/glib-appinfo-watch.patch \
@ -1399,7 +1411,6 @@ dist_patch_DATA = \
%D%/packages/patches/guile-fibers-libevent-timeout.patch \
%D%/packages/patches/guile-fix-invalid-unicode-handling.patch \
%D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch \
%D%/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch \
%D%/packages/patches/guile-hurd-posix-spawn.patch \
%D%/packages/patches/guile-present-coding.patch \
%D%/packages/patches/guile-rsvg-pkgconfig.patch \
@ -1505,8 +1516,10 @@ dist_patch_DATA = \
%D%/packages/patches/julia-Use-MPFR-4.2.patch \
%D%/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch \
%D%/packages/patches/libgeotiff-fix-tests-with-proj-9.1.1.patch \
%D%/packages/patches/libgeotiff-fix-tests-with-proj-9.3.0.patch \
%D%/packages/patches/libgeotiff-fix-tests-with-proj-9.3.1.patch \
%D%/packages/patches/libgeotiff-fix-tests-on-i386.patch \
%D%/packages/patches/libobjc2-unbundle-robin-map.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/lightdm-arguments-ordering.patch \
@ -1646,6 +1659,7 @@ dist_patch_DATA = \
%D%/packages/patches/lua-liblua-so.patch \
%D%/packages/patches/lua-5.4-pkgconfig.patch \
%D%/packages/patches/lua-5.4-liblua-so.patch \
%D%/packages/patches/lugaru-fix-sound.patch \
%D%/packages/patches/luit-posix.patch \
%D%/packages/patches/mactelnet-remove-init.patch \
%D%/packages/patches/mailutils-variable-lookup.patch \
@ -1715,7 +1729,6 @@ dist_patch_DATA = \
%D%/packages/patches/network-manager-meson.patch \
%D%/packages/patches/nginx-socket-cloexec.patch \
%D%/packages/patches/nnpack-system-libraries.patch \
%D%/packages/patches/notmuch-emacs-test-output.patch \
%D%/packages/patches/nsis-env-passthru.patch \
%D%/packages/patches/nss-getcwd-nonnull.patch \
%D%/packages/patches/nss-increase-test-timeout.patch \
@ -1725,10 +1738,6 @@ dist_patch_DATA = \
%D%/packages/patches/nvi-db4.patch \
%D%/packages/patches/nyacc-binary-literals.patch \
%D%/packages/patches/obs-modules-location.patch \
%D%/packages/patches/ocaml-dose3-add-unix-dependency.patch \
%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.07-dynamically-allocate-signal-stack.patch \
%D%/packages/patches/ocaml-4.09-dynamically-allocate-signal-stack.patch \
@ -1805,7 +1814,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-sip-include-dirs.patch \
%D%/packages/patches/python-sgmllib3k-assertions.patch \
%D%/packages/patches/python-sphinx-prompt-docutils-0.19.patch \
%D%/packages/patches/python-telingo-fix-comparison.patch \
%D%/packages/patches/python-typeguard-python3.10.patch \
%D%/packages/patches/python-uqbar-python3.10.patch \
%D%/packages/patches/python-wxwidgets-type-errors.patch \
@ -1914,7 +1922,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-piexif-fix-tests-with-pillow-7.2.patch \
%D%/packages/patches/python-pillow-CVE-2022-45199.patch \
%D%/packages/patches/python-pyfakefs-remove-bad-test.patch \
%D%/packages/patches/python-flint-includes.patch \
%D%/packages/patches/python-libxml2-utf8.patch \
%D%/packages/patches/python-memcached-syntax-warnings.patch \
%D%/packages/patches/python-mox3-python3.6-compat.patch \
@ -1961,7 +1968,6 @@ dist_patch_DATA = \
%D%/packages/patches/qtwayland-cleanup-callbacks.patch \
%D%/packages/patches/ragel-char-signedness.patch \
%D%/packages/patches/randomjungle-disable-static-build.patch \
%D%/packages/patches/range-v3-build-with-gcc10.patch \
%D%/packages/patches/raptor2-heap-overflow.patch \
%D%/packages/patches/ratpoints-sturm_and_rp_private.patch \
%D%/packages/patches/ratpoison-shell.patch \
@ -1971,6 +1977,8 @@ dist_patch_DATA = \
%D%/packages/patches/renpy-use-system-fribidi.patch \
%D%/packages/patches/reposurgeon-add-missing-docbook-files.patch \
%D%/packages/patches/r-httpuv-1.6.6-unvendor-libuv.patch \
%D%/packages/patches/r-sapa-lapack.patch \
%D%/packages/patches/r-sgloptim.patch \
%D%/packages/patches/ri-li-modernize_cpp.patch \
%D%/packages/patches/ripperx-missing-file.patch \
%D%/packages/patches/rpcbind-CVE-2017-8779.patch \
@ -1980,6 +1988,7 @@ dist_patch_DATA = \
%D%/packages/patches/racket-rktio-bin-sh.patch \
%D%/packages/patches/racket-zuo-bin-sh.patch \
%D%/packages/patches/remake-impure-dirs.patch \
%D%/packages/patches/restartd-update-robust.patch \
%D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch \
%D%/packages/patches/rng-tools-revert-build-randstat.patch \
%D%/packages/patches/rocclr-5.6.0-enable-gfx800.patch \
@ -1997,17 +2006,20 @@ dist_patch_DATA = \
%D%/packages/patches/rustc-1.54.0-src.patch \
%D%/packages/patches/rust-1.64-fix-riscv64-bootstrap.patch \
%D%/packages/patches/rust-1.70-fix-rustix-build.patch \
%D%/packages/patches/rust-ring-0.16-missing-files.patch \
%D%/packages/patches/rust-ring-0.16-test-files.patch \
%D%/packages/patches/i3status-rust-enable-unstable-features.patch \
%D%/packages/patches/rust-cargo-edit-remove-ureq.patch \
%D%/packages/patches/rust-ring-0.17-ring-core.patch \
%D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch \
%D%/packages/patches/rust-ndarray-0.13-remove-blas-src.patch \
%D%/packages/patches/rust-ndarray-0.14-remove-blas-src.patch \
%D%/packages/patches/rust-nettle-disable-vendor.patch \
%D%/packages/patches/rust-rspec-1-remove-clippy.patch \
%D%/packages/patches/rust-trash-2-update-windows.patch \
%D%/packages/patches/rust-webbrowser-remove-unsupported-os.patch \
%D%/packages/patches/rust-wl-clipboard-rs-newer-wl.patch \
%D%/packages/patches/rw-igraph-0.10.patch \
%D%/packages/patches/rxvt-unicode-fix-cursor-position.patch \
%D%/packages/patches/s7-flint-3.patch \
%D%/packages/patches/sajson-for-gemmi-numbers-as-strings.patch \
%D%/packages/patches/sbc-fix-build-non-x86.patch \
%D%/packages/patches/sbcl-aserve-add-HTML-5-elements.patch \
%D%/packages/patches/sbcl-aserve-fix-rfe12668.patch \
@ -2043,7 +2055,6 @@ dist_patch_DATA = \
%D%/packages/patches/source-highlight-gcc-compat.patch \
%D%/packages/patches/softhsm-fix-openssl3-tests.patch \
%D%/packages/patches/spectre-meltdown-checker-externalize-fwdb.patch \
%D%/packages/patches/spdlog-fix-tests.patch \
%D%/packages/patches/sphinxbase-fix-doxygen.patch \
%D%/packages/patches/sssd-system-directories.patch \
%D%/packages/patches/steghide-fixes.patch \
@ -2171,6 +2182,7 @@ dist_patch_DATA = \
%D%/packages/patches/webrtc-audio-processing-big-endian.patch \
%D%/packages/patches/webrtc-for-telegram-desktop-unbundle-libsrtp.patch \
%D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \
%D%/packages/patches/wlroots-hwdata-fallback.patch \
%D%/packages/patches/wmctrl-64-fix.patch \
%D%/packages/patches/wmfire-update-for-new-gdk-versions.patch \
%D%/packages/patches/wordnet-CVE-2008-2149.patch \

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org>
;;; Copyright © 2020-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2024 Ricardo <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -537,22 +538,24 @@ (define-syntax-rule (eval/error-handling condition handler ...)
host
(inferior-exception-arguments c))))
os))
(with-roll-back #t
(mbegin %store-monad
(upgrade-shepherd-services (eval/error-handling c
(warning (G_ "\
(parameterize ((%current-system system)
(%current-target-system #f))
(with-roll-back #t
(mbegin %store-monad
(upgrade-shepherd-services (eval/error-handling c
(warning (G_ "\
an error occurred while upgrading services on '~a':~%~{~s ~}~%")
host
(inferior-exception-arguments
c)))
os)
(install-bootloader (eval/error-handling c
(raise (formatted-message
(G_ "\
host
(inferior-exception-arguments
c)))
os)
(install-bootloader (eval/error-handling c
(raise (formatted-message
(G_ "\
failed to install bootloader on '~a':~%~{~s ~}~%")
host
(inferior-exception-arguments c))))
bootloader-configuration bootcfg))))))))
host
(inferior-exception-arguments c))))
bootloader-configuration bootcfg)))))))))
;;;

View file

@ -62,6 +62,8 @@
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
;;; Copyright © 2023 Tobias Kortkamp <tobias.kortkamp@gmail.com>
;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com>
;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2023 Tomás Ortín Fernández <tomasortin@mailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -112,6 +114,7 @@ (define-module (gnu packages admin)
#:use-module (gnu packages compression)
#:use-module (gnu packages crates-graphics)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-windows)
#:use-module (gnu packages crypto)
#:use-module (gnu packages cryptsetup)
#:use-module (gnu packages curl)
@ -130,6 +133,8 @@ (define-module (gnu packages admin)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-compression)
#:use-module (gnu packages groff)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
@ -149,6 +154,7 @@ (define-module (gnu packages admin)
#:use-module (gnu packages mcrypt)
#:use-module (gnu packages mpi)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages nettle)
#:use-module (gnu packages networking)
#:use-module (gnu packages openldap)
#:use-module (gnu packages package-management)
@ -4907,6 +4913,33 @@ (define-public pam-mount
LUKS volumes encrypted with the user's log-in password.")
(license (list license:gpl2+ license:lgpl2.1+))))
(define-public pam-uaccess
(let ((commit "54fbf043c63cc500b4850b0b4a12ea14078f2b53")
(revision "0"))
(package
(name "pam-uaccess")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.sr.ht/~kennylevinsen/pam_uaccess")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"08068cw4nvcanym8b5dyccnnb3qc3f09pbvi6fcfiz227yx73npc"))))
(build-system meson-build-system)
(native-inputs (list pkg-config))
(inputs (list acl eudev linux-pam))
(home-page "https://git.sr.ht/~kennylevinsen/pam_uaccess")
(synopsis
"PAM module that grants access to devices tagged @code{uaccess} in udev")
(description
"@code{pam_uaccess} is a PAM module that grants access to devices tagged
@code{uaccess} in udev for the duration of the users' session, replacing
elogind's uaccess feature.")
(license license:expat))))
(define-public jc
(package
(name "jc")
@ -5814,6 +5847,57 @@ (define-public fail2ban
mechanisms if you really want to protect services.")
(license license:gpl2+)))
(define-public restartd
(let* ((commit "7044125ac55056f2663536f7137170edf92ebd75")
;; Version is 0.2.4 in the version file in the repo
;; but not in github tags.
;; It is released as 0.2.3-1.1 for other distributions.
;; Probably because of the lack of activity upstream.
(revision "1"))
(package
(name "restartd")
(version (git-version "0.2.3" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ajraymond/restartd")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1m1np00b4zvvwx63gzysbi38i5vj1jsjvh2s0p9czl6dzyz582z0"))
(patches (search-patches "restartd-update-robust.patch"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ; no tests
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target)))
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(replace 'install
(lambda _
(install-file "restartd.conf" (string-append #$output "/etc"))
(install-file "restartd" (string-append #$output "/sbin"))
(install-file "restartd.8"
(string-append #$output "/share/man/man8"))
(mkdir-p (string-append #$output "/share/man/fr/man8"))
(copy-file
"restartd.fr.8"
(string-append #$output "/share/man/fr/man8/restartd.8")))))))
(home-page "https://launchpad.net/debian/+source/restartd")
(synopsis "Daemon for restarting processes")
(description "This package provides a daemon for checking running and
not running processes. It reads the @file{/proc} directory every @var{n}
seconds and does a POSIX regexp on the process names. The daemon runs a
user-provided script when it detects a program in the running processes, or an
alternate script if it doesn't detect the program. The daemon can only be
called by the root user, but can use @command{sudo -u user} in the process
called if needed.")
(license license:gpl2+))))
(define-public rex
(package
(name "rex")
@ -6038,3 +6122,34 @@ (define-public bfs
versions of @command{find}, including POSIX, GNU, and *BSD find.")
(home-page "https://tavianator.com/projects/bfs.html")
(license license:bsd-0)))
(define-public rdfind
(package
(name "rdfind")
(version "1.6.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://rdfind.pauldreik.se/" name "-" version
".tar.gz"))
(sha256
(base32 "0y9j1w3nbgjks0k4kgm6qq92yrwgv66n212ncmlmhsl8y676wh3s"))))
(build-system gnu-build-system)
(native-inputs (list which))
(inputs (list nettle))
(arguments
(list
#:phases #~(modify-phases %standard-phases
(add-before 'check 'patch-tests
(lambda _
(display (which "echo"))
(substitute* "testcases/common_funcs.sh"
(("/bin/echo")
(which "echo"))))))))
(home-page "https://rdfind.pauldreik.se")
(synopsis "Find duplicate files")
(description
"Rdfind is a command line tool that finds duplicate files based on
their content instead of their file names. It is useful for compressing
backup directories or just finding duplicate files.")
(license license:gpl2+)))

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2022 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2022, 2023, 2024 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013, 2015, 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
@ -133,25 +133,26 @@ (define-public gf2x
(define-public cm
(package
(name "cm")
(version "0.4.2")
(version "0.4.3")
(source (origin
(method url-fetch)
(uri (string-append
"http://www.multiprecision.org/downloads/cm-"
"https://www.multiprecision.org/downloads/cm-"
version ".tar.gz"))
(sha256
(base32
"1c6m00wiw3rs5f0lq6c80rdr3dzklsvh69l8w3s7bj2r6yha6qbw"))))
"01dha0hl0daappjiydpk4ngl9nxkxli6a48jp6d7v85yjjykac5j"))))
(build-system gnu-build-system)
(propagated-inputs
(list mpfrcx zlib)) ; Header files included from cm_common.h.
(list mpfrcx zlib)) ; Header files included from lib/cm.h.
(inputs
(list pari-gp))
(list flint pari-gp))
(synopsis "CM constructions for elliptic curves")
(description
"The CM software implements the construction of ring class fields of
imaginary quadratic number fields and of elliptic curves with complex
multiplication via floating point approximations. It consists of libraries
multiplication via floating point approximations, and the elliptic curve
primality proving algorithm (ECPP). It consists of libraries
that can be called from within a C program and of executable command
line applications.")
(license license:gpl3+)
@ -295,6 +296,34 @@ (define-public gp2c
(license license:gpl2)
(home-page "https://pari.math.u-bordeaux.fr/")))
(define-public paritwine
(package
(name "paritwine")
(version "0.2.0")
(source (origin
(method url-fetch)
(uri (string-append
"https://www.multiprecision.org/downloads/" name
"-" version
".tar.gz"))
(sha256
(base32
"15m5jxmhx5zivk1k9wxpmzs8kqva3kvgxizdrkrmmp1qycn85n23"))))
(build-system gnu-build-system)
(propagated-inputs (list pari-gp
gmp
mpfr
mpc
cmh
flint)) ; referenced in src/paritwine.h
(synopsis "Glue library between PARI/GP and other mathematics libraries")
(description
"PariTwine is a glue library between the system for computer algebra
and number theory PARI/GP and a number of other mathematics libraries,
currently GMP, GNU MPFR, GNU MPC, FLINT and CMH.")
(license license:gpl2+)
(home-page "https://www.multiprecision.org/paritwine/index.html")))
(define-public cmh
(package
(name "cmh")
@ -417,41 +446,20 @@ (define-public giac
(define-public flint
(package
(name "flint")
(version "2.9.0")
(version "3.0.1")
(source
(origin
(method url-fetch)
(uri (string-append "http://flintlib.org/flint-" version ".tar.gz"))
(uri (string-append "https://flintlib.org/flint-" version ".tar.gz"))
(sha256
(base32 "0sp79ixaawjzna79afrlwlx9hg55jxil03f1wq435j9k23ar1h1g"))))
(base32 "1d4lawfvmjd4n7rp4z9xkwwjjbrjhkmxnxw1xf0ki1isa001lcbv"))))
(build-system gnu-build-system)
(inputs
(list ntl))
(propagated-inputs
(list gmp mpfr)) ; header files from both are included by flint/arith.h
(arguments
`(#:parallel-tests? #f ; seems to be necessary on arm
#:phases
(modify-phases %standard-phases
(add-before 'configure 'newer-c++
(lambda _
(substitute* "configure"
(("-ansi") ""))
#t))
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(gmp (assoc-ref inputs "gmp"))
(mpfr (assoc-ref inputs "mpfr"))
(ntl (assoc-ref inputs "ntl")))
;; Do not pass "--enable-fast-install", which makes the
;; homebrew configure process fail.
(invoke "./configure"
(string-append "--prefix=" out)
(string-append "--with-gmp=" gmp)
(string-append "--with-mpfr=" mpfr)
(string-append "--with-ntl=" ntl))
#t))))))
`(#:parallel-tests? #f)) ; seems to be necessary on arm
(synopsis "Fast library for number theory")
(description
"FLINT is a C library for number theory. It supports arithmetic
@ -470,52 +478,12 @@ (define-public flint
'((release-monitoring-url . "http://flintlib.org/downloads.html")))))
(define-public arb
(package
(name "arb")
(version "2.23.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/fredrik-johansson/arb")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1m9vskyf857gbm0cbh3z8c8m6cqkqa765wb9hqmsv7yzfmklzpvn"))))
(build-system gnu-build-system)
(propagated-inputs
(list flint)) ; flint.h is included by arf.h
(inputs
(list gmp mpfr))
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(flint (assoc-ref inputs "flint"))
(gmp (assoc-ref inputs "gmp"))
(mpfr (assoc-ref inputs "mpfr")))
;; Do not pass "--enable-fast-install", which makes the
;; homebrew configure process fail.
(invoke "./configure"
(string-append "--prefix=" out)
(string-append "--with-flint=" flint)
(string-append "--with-gmp=" gmp)
(string-append "--with-mpfr=" mpfr))))))))
(home-page "https://arblib.org")
(synopsis "Arbitrary precision floating-point ball arithmetic")
(description
"Arb is a C library for arbitrary-precision floating-point ball
arithmetic. It supports efficient high-precision computation with
polynomials, power series, matrices and special functions over the
real and complex numbers, with automatic, rigorous error control.")
(license license:lgpl2.1+)))
(deprecated-package "arb" flint))
(define-public python-flint
(package
(name "python-flint")
(version "0.3.0")
(version "0.5.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -524,15 +492,14 @@ (define-public python-flint
(file-name (git-file-name name version))
(sha256
(base32
"1v0anazbj1cfi68nl2j6dbd31kgkc1563xmr0zk5xk3xj78569pw"))
(patches (search-patches "python-flint-includes.patch"))))
"10370kqik6q6vdqrqv3gbznsyaxbgqb3rbrff4alpw0sqr5s07c7"))))
(build-system python-build-system)
(native-inputs
(list python-cython))
(list python-cython-3))
(propagated-inputs
(list python-numpy))
(inputs
(list arb flint))
(list flint))
(synopsis "Python module wrapping ARB and FLINT")
(description
"Python-flint is a Python extension module wrapping FLINT
@ -592,12 +559,12 @@ (define-public ntl
(define-public singular
(package
(name "singular")
(version "4.2.1")
(version "4.3.2p10")
(source
(origin
(method url-fetch)
(uri
(string-append "http://www.mathematik.uni-kl.de/ftp/pub/Math/"
(string-append "https://www.singular.uni-kl.de/ftp/pub/Math/"
"Singular/SOURCES/"
(string-join
(string-split
@ -607,7 +574,7 @@ (define-public singular
#\.) "-")
"/singular-" version ".tar.gz"))
(sha256 (base32
"13gy1gdng8zijwlr1fn5sixw53z0zf9czzlg0vh1dcc59zw6v998"))))
"1a2j2pkp73rb1xdd5623gkk1snwd85yimssnz86y0m79zvyckhi8"))))
(build-system gnu-build-system)
(native-inputs
(list doxygen graphviz perl))

View file

@ -36,6 +36,7 @@ (define-module (gnu packages android)
#:use-module (guix git-download)
#:use-module (guix build-system android-ndk)
#:use-module (guix build-system cmake)
#:use-module (guix build-system emacs)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system python)
@ -1224,6 +1225,36 @@ (define-public fdroidcl
(home-page "https://github.com/mvdan/fdroidcl")
(license license:bsd-3)))
(define-public emacs-fdroid
(package
(name "emacs-fdroid")
(version "0.1.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/migalmoreno/fdroid.el")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1gv4kfir12bbi17cm5hpx197m8dbw1xwqp0z6qb3vc0fdnyis35j"))))
(build-system emacs-build-system)
(arguments
(list
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'patch-file-name
(lambda* (#:key inputs #:allow-other-keys)
(emacs-substitute-variables "fdroid.el"
("fdroid-program"
(search-input-file inputs "/bin/fdroidcl"))))))))
(inputs (list fdroidcl))
(home-page "https://github.com/migalmoreno/fdroid.el")
(synopsis "Manage F-Droid packages from Emacs")
(description "This package is an Emacs interface to F-Droid. Its purpose
is to aid in the management of F-Droid packages for an Android device or an
emulator inside the comfort of Emacs.")
(license license:gpl3+)))
(define-public enjarify
(package
(name "enjarify")
@ -1277,7 +1308,7 @@ (define-public enjarify
(define-public android-file-transfer
(package
(name "android-file-transfer")
(version "4.2")
(version "4.3")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1287,7 +1318,7 @@ (define-public android-file-transfer
(file-name (git-file-name name version))
(sha256
(base32
"125rq8ji83nw6chfw43i0h9c38hjqh1qjibb0gnf9wrigar9zc8b"))))
"1ianph8ivj0fxg1l7llid7gv4pbfb5j23b33j9gan6x7scr13q2h"))))
(build-system cmake-build-system)
(arguments
(list #:tests? #f)) ;there are no tests

View file

@ -45,14 +45,14 @@ (define-module (gnu packages antivirus)
(define-public clamav
(package
(name "clamav")
(version "0.103.8")
(version "0.103.11")
(source (origin
(method url-fetch)
(uri (string-append "https://www.clamav.net/downloads/production/"
"clamav-" version ".tar.gz"))
(sha256
(base32
"0gwcikzfdswrdh5vhh3x4lx8w92476fmb7im7phnv4r7x5pdljbg"))
"04by1g3p6awhi3j1y6zpwzmasdnvjgi6lwm34l2gadlwgkdfpmv1"))
(modules '((guix build utils)))
(snippet
'(begin

File diff suppressed because it is too large Load diff

View file

@ -1424,6 +1424,35 @@ (define-public infamous-plugins
envelope follower, distortion effects, tape effects and more.")
(license license:gpl2+)))
(define-public omins-lv2
(let ((commit "058f341053067b69a84d4081107fda5058290ff9")
(revision "1"))
(package
(name "omins-lv2")
;; No release despite being perfectly usable. 0.0.0 seems to be the only
;; version the author ever specified:
(version (git-version "0.0.0" revision commit))
(source
(origin (method git-fetch)
(uri
(git-reference
(url "https://git.drobilla.net/cgit.cgi/omins.lv2.git/")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"01hnx4hhbz3ap3bw15s42q4q1mw1mhdjwygq4550wvjfg6k4ga8w"))))
(build-system waf-build-system)
(arguments (list #:tests? #false)) ;There are no tests.
(inputs (list lv2))
(native-inputs (list pkg-config))
(home-page "https://git.drobilla.net/cgit.cgi/omins.lv2.git/")
(synopsis "LV2 audio plugins for modular synthesis")
(description
"Omins-lv2 is a small collection of LV2 audio plugins for modular
synthesis.")
(license license:gpl2+))))
(define-public snapcast
(package
(name "snapcast")
@ -6311,7 +6340,7 @@ (define-public odio-sacd
(define-public qpwgraph
(package
(name "qpwgraph")
(version "0.6.0")
(version "0.6.2")
(source (origin
(method git-fetch)
(uri (git-reference
@ -6320,7 +6349,7 @@ (define-public qpwgraph
(file-name (git-file-name name version))
(sha256
(base32
"17jl347rwagdyx6pgnp83l1ffhlyfl0s4jf7ii2i1j3s1m9sz7y0"))))
"0185hxbwqxhjiyym0s7bmrm50f3p4bnvx92qqmgvg3zd7r1x8m8s"))))
(build-system cmake-build-system)
(arguments
(list #:tests? #f)) ; no tests

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -37,7 +37,27 @@ def path_to_saves(gamedir, save_directory=None):
if not save_directory:
return gamedir + "/saves"
return os.path.join(os.path.expanduser("~/.renpy"), save_directory)
prefix = os.environ.get("RENPY_PATH_TO_SAVES",
os.path.expanduser("~/.renpy"))
return os.path.join(prefix, save_directory)
def path_to_logdir(basedir):
return basedir
def predefined_searchpath(commondir):
import renpy
# The default gamedir, in private.
searchpath = [ renpy.config.gamedir ]
if env_searchpath := os.environ.get("RENPY_SEARCHPATH"):
searchpath.extend(env_searchpath.split("::"))
if commondir and os.path.isdir(commondir):
searchpath.append(commondir)
return searchpath
def main():
try:

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2019, 2020, 2021, 2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
@ -18,6 +18,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages axoloti)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix download)
@ -218,8 +219,9 @@ (define-public axoloti-patcher
(name "axoloti-patcher")
(version (package-version axoloti-runtime))
(arguments
`(#:tests? #f ; no check target
#:modules ((guix build gnu-build-system)
(list
#:tests? #f ; no check target
#:modules '((guix build gnu-build-system)
((guix build ant-build-system) #:prefix ant:)
(guix build utils)
(srfi srfi-1)
@ -229,113 +231,109 @@ (define-public axoloti-patcher
(sxml simple)
(sxml xpath)
(sxml transform))
#:imported-modules ((guix build ant-build-system)
#:imported-modules `((guix build ant-build-system)
,@%gnu-build-system-modules)
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-git-checkout-writable
(lambda _
(for-each make-file-writable (find-files "."))
#t))
(delete 'configure)
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(setenv "JAVA_HOME" (assoc-ref inputs "icedtea"))
;; We want to use our own jar files instead of the pre-built
;; stuff in lib. So we replace the zipfileset tags in the
;; build.xml with new ones that reference our jars.
(let* ((build.xml (with-input-from-file "build.xml"
(lambda _
(xml->sxml #:trim-whitespace? #t))))
(jars (append-map (match-lambda
(((? (cut string-prefix? "java-" <>)
label) . directory)
(find-files directory "\\.jar$"))
(_ '()))
inputs))
(classpath (string-join jars ":"))
(fileset (map (lambda (jar)
`(zipfileset (@ (excludes "META-INF/*.SF")
(src ,jar))))
jars)))
(call-with-output-file "build.xml"
(lambda (port)
(sxml->xml
(pre-post-order
build.xml
`(;; Remove all zipfileset tags from the "jar" tree and
;; inject our own tags.
(jar . ,(lambda (tag . kids)
`(jar ,@(append-map
(filter (lambda (e)
(not (eq? 'zipfileset (car e)))))
kids)
,@fileset)))
;; Skip the "bundle" target (and the "-post-jar" target
;; that depends on it), because we don't need it and it
;; confuses sxml->xml.
(target . ,(lambda (tag . kids)
(let ((name ((sxpath '(name *text*))
(car kids))))
(if (or (member "bundle" name)
(member "-post-jar" name))
'() ; skip
`(,tag ,@kids)))))
(*default* . ,(lambda (tag . kids) `(,tag ,@kids)))
(*text* . ,(lambda (_ txt)
(match txt
;; Remove timestamp.
("${TODAY}" "(unknown)")
(_ txt))))))
port)))
#~(modify-phases %standard-phases
(delete 'configure)
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(setenv "JAVA_HOME" (assoc-ref inputs "icedtea"))
;; We want to use our own jar files instead of the pre-built
;; stuff in lib. So we replace the zipfileset tags in the
;; build.xml with new ones that reference our jars.
(let* ((build.xml (with-input-from-file "build.xml"
(lambda _
(xml->sxml #:trim-whitespace? #t))))
(jars (append-map (match-lambda
(((? (cut string-prefix? "java-" <>)
label) . directory)
(find-files directory "\\.jar$"))
(_ '()))
inputs))
(classpath (string-join jars ":"))
(fileset (map (lambda (jar)
`(zipfileset (@ (excludes "META-INF/*.SF")
(src ,jar))))
jars)))
(call-with-output-file "build.xml"
(lambda (port)
(sxml->xml
(pre-post-order
build.xml
`( ;; Remove all zipfileset tags from the "jar" tree and
;; inject our own tags.
(jar . ,(lambda (tag . kids)
`(jar ,@(append-map
(filter (lambda (e)
(not (eq? 'zipfileset (car e)))))
kids)
,@fileset)))
;; Skip the "bundle" target (and the "-post-jar" target
;; that depends on it), because we don't need it and it
;; confuses sxml->xml.
(target . ,(lambda (tag . kids)
(let ((name ((sxpath '(name *text*))
(car kids))))
(if (or (member "bundle" name)
(member "-post-jar" name))
'() ; skip
`(,tag ,@kids)))))
(*default* . ,(lambda (tag . kids) `(,tag ,@kids)))
(*text* . ,(lambda (_ txt)
(match txt
;; Remove timestamp.
("${TODAY}" "(unknown)")
(_ txt))))))
port)))
;; Build it!
(invoke "ant"
(string-append "-Djavac.classpath=" classpath)
"-Dbuild.runtime=true"
"-Dbuild.time=01/01/1970 00:00:00"
"-Djavac.source=1.7"
"-Djavac.target=1.7"
(string-append "-Dtag.short.version="
,version)))))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(share (string-append out "/share/axoloti/")))
(install-file "dist/Axoloti.jar" share)
;; Build it!
(invoke "ant"
(string-append "-Djavac.classpath=" classpath)
"-Dbuild.runtime=true"
"-Dbuild.time=01/01/1970 00:00:00"
"-Djavac.source=1.7"
"-Djavac.target=1.7"
(string-append "-Dtag.short.version="
#$version)))))
(replace 'install
(lambda* (#:key inputs #:allow-other-keys)
(let ((share (string-append #$output "/share/axoloti/")))
(install-file "dist/Axoloti.jar" share)
;; We do this to ensure that this package retains references to
;; other Java packages' jar files.
(install-file "build.xml" share)
;; We do this to ensure that this package retains references to
;; other Java packages' jar files.
(install-file "build.xml" share)
;; Create a launcher script
(mkdir (string-append out "/bin"))
(let ((target (string-append out "/bin/Axoloti")))
(with-output-to-file target
(lambda ()
(let* ((dir (string-append (assoc-ref outputs "out")
"/share/axoloti"))
(runtime (search-input-directory inputs
"share/axoloti"))
(toolchain (assoc-ref inputs "cross-toolchain"))
(includes (string-append
toolchain
"/arm-none-eabi/include/c++:"
toolchain
"/arm-none-eabi/include/c++/arm-none-eabi/armv7e-m")))
(display
(string-append "#!" (which "sh") "\n"
"export CROSS_CPATH=" includes "\n"
"export CROSS_CPLUS_INCLUDE_PATH=" includes "\n"
"export CROSS_LIBRARY_PATH="
toolchain "/arm-none-eabi/lib" "\n"
(which "java")
" -Daxoloti_release=" runtime
" -Daxoloti_runtime=" runtime
" -jar " dir "/Axoloti.jar")))))
(chmod target #o555)))))
(add-after 'install 'strip-jar-timestamps
(assoc-ref ant:%standard-phases 'strip-jar-timestamps)))))
;; Create a launcher script
(mkdir (string-append #$output "/bin"))
(let ((target (string-append #$output "/bin/Axoloti")))
(with-output-to-file target
(lambda ()
(let* ((dir (string-append #$output "/share/axoloti"))
(runtime (search-input-directory inputs
"share/axoloti"))
(toolchain (assoc-ref inputs "cross-toolchain"))
(includes (string-append
toolchain
"/arm-none-eabi/include/:"
toolchain
"/arm-none-eabi/include/c++:"
toolchain
"/arm-none-eabi/include/c++/arm-none-eabi/armv7e-m")))
(display
(string-append "#!" (which "sh") "\n"
"export CROSS_CPATH=" includes "\n"
"export CROSS_CPLUS_INCLUDE_PATH=" includes "\n"
"export CROSS_LIBRARY_PATH="
toolchain "/arm-none-eabi/lib" "\n"
(which "java")
" -Daxoloti_release=" runtime
" -Daxoloti_runtime=" runtime
" -jar " dir "/Axoloti.jar")))))
(chmod target #o555)))))
(add-after 'install 'strip-jar-timestamps
(assoc-ref ant:%standard-phases 'strip-jar-timestamps)))))
(inputs
`(("icedtea" ,icedtea "jdk")
("cross-toolchain" ,(make-arm-none-eabi-nano-toolchain-4.9))

View file

@ -71,7 +71,10 @@ (define-module (gnu packages backup)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-crypto)
#:use-module (gnu packages golang-web)
#:use-module (gnu packages golang-xyz)
#:use-module (gnu packages gperf)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
@ -1270,27 +1273,28 @@ (define-public burp
(define-public disarchive
(package
(name "disarchive")
(version "0.5.0")
(version "0.6.0")
(source (origin
(method url-fetch)
(uri (string-append "https://files.ngyro.com/disarchive/"
"disarchive-" version ".tar.gz"))
(sha256
(base32
"16sjplkn9nr7zhfrqll7l1m2b2j4hg8k29p6bqjap9fkj6zpn2q2"))))
"1s4lyhhh1zsaxgn11hy2b1kdvnvpipii68wba0hwr471rd43m08k"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf
automake
pkg-config
guile-3.0 ;for cross-compilation
guile-bzip2
guile-gcrypt
guile-lzma
guile-quickcheck))
(inputs
(list guile-3.0 zlib))
(propagated-inputs
(list guile-gcrypt guile-lzma))
(list guile-bzip2 guile-gcrypt guile-lzma))
(home-page "https://ngyro.com/software/disarchive.html")
(synopsis "Software archive disassembler")
(description "Disarchive can disassemble software archives into data
@ -1337,7 +1341,7 @@ (define-public borgmatic
(invoke "pytest")))))))
(inputs
(list borg python-colorama python-jsonschema python-requests
python-ruamel.yaml))
python-ruamel.yaml-0.16))
(native-inputs
(list python-flexmock python-pytest python-pytest-cov))
(home-page "https://torsion.org/borgmatic/")

View file

@ -1551,8 +1551,8 @@ (define* (libc-utf8-locales-for-target #:optional
(define-public tzdata
(package
(name "tzdata")
;; This package should be kept in sync with python-pytz in (gnu packages
;; time).
;; This package should be kept in sync with python-pytz and python-tzdata
;; in (gnu packages time).
(version "2022a")
(source (origin
(method url-fetch)

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -529,7 +529,7 @@ (define-public libtorrent-rasterbar-1.2
(define-public qbittorrent
(package
(name "qbittorrent")
(version "4.6.2")
(version "4.6.3")
(source
(origin
(method git-fetch)
@ -538,7 +538,7 @@ (define-public qbittorrent
(commit (string-append "release-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1wps17iv4gj7y751fibvcxk51v09wyniv6xm2yx429dj7z8rfmzs"))))
(base32 "01d393v0v4c9rp909l3ddif984pp1z6sym74yc0kgxqq2kplj5g1"))))
(build-system qt-build-system)
(arguments
(list #:configure-flags #~(list "-DTESTING=ON")
@ -547,7 +547,7 @@ (define-public qbittorrent
(list qttools-5))
(inputs
(list boost
libtorrent-rasterbar-1.2
libtorrent-rasterbar
openssl
python-wrapper
qtsvg-5

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2023, 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2023 Adam Faiz <adam.faiz@disroot.org>
;;;
;;; This file is part of GNU Guix.
@ -19,30 +19,30 @@
(define-module (gnu packages books)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix gexp)
#:use-module (guix build-system gnu)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (guix build-system gnu)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages music)
#:use-module (gnu packages fonts)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages inkscape)
#:use-module (gnu packages music)
#:use-module (gnu packages perl)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages tex)
#:use-module (gnu packages texlive)
#:use-module (gnu packages version-control)
#:use-module (gnu packages fonts)
#:use-module (gnu packages fontutils))
#:use-module (gnu packages version-control))
(define-public book-sparc
(package
(name "book-sparc")
(version "1.1.0")
(version "2.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -50,7 +50,7 @@ (define-public book-sparc
(commit (string-append "v" version))))
(sha256
(base32
"0k1miyrnh5362qy50jzp5j3ww0c8hr7wk3y5kg6xlqgk9f8msvag"))
"0bn3a3m0kcjybyaz1a7pj8n48jh1cg4szwi9px3zjhhm5818wi7z"))
(file-name (git-file-name name version))
(modules '((guix build utils)))
(snippet
@ -81,6 +81,7 @@ (define-public book-sparc
texlive-bibtex
texlive-bibtexperllibs
texlive-bigfoot
texlive-chngcntr
texlive-circuitikz
texlive-collection-langcyrillic
texlive-fontspec

View file

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2023 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2023, 2024 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -58,8 +58,8 @@ (define ublock-main-assets
;; Arbitrary commit of branch master,
;; Update when updating uBlockOrigin.
(let* ((name "ublock-main-assets")
(commit "76bd7cb53036a36f7e7df5ee9173f588ba8aa966")
(revision "1")
(commit "b15998fae22b2b9593794b6b46647385b9c101d4")
(revision "2")
(version (git-version "0" revision commit)))
(origin
(method git-fetch)
@ -68,14 +68,14 @@ (define ublock-main-assets
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1kdzvflr1yxykyva5vsjqr0p2ik1200xbhxwpl3cx2jsiv8l95sk")))))
(base32 "1jnj3qhsqd7k28f6l2cibkpipnf7y7j97fsrwwfz4zqd8p69c3fx")))))
(define ublock-prod-assets
;; Arbitrary commit of branch gh-pages,
;; Update when updating uBlockOrigin.
(let* ((name "ublock-prod-assets")
(commit "a379a168fc149ffbd6d10cd0700d4ab4801e57f2")
(revision "1")
(commit "60fa7b4b33d5d257d9d0f1ee8db65c1e663f2d31")
(revision "2")
(version (git-version "0" revision commit)))
(origin
(method git-fetch)
@ -84,12 +84,12 @@ (define ublock-prod-assets
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0syf3kbhvsbn5xka5knpclxby2kp92my1w7ixvf5fs9n08ylcip1")))))
(base32 "092llpcv24xn8p3h73r0q582vwxia9rh9ss6xxbra2xmy70hg24k")))))
(define ublock-origin
(package
(name "ublock-origin")
(version "1.54.0")
(version "1.56.0")
(home-page "https://github.com/gorhill/uBlock")
(source (origin
(method git-fetch)
@ -99,7 +99,7 @@ (define ublock-origin
(file-name (git-file-name name version))
(sha256
(base32
"1yacqpf9z8lprwsj194bhlp2ba9ywzbagd6lwxj3h6g405s7zp2k"))))
"150n3g42wx8bp1dgmf360gd87g8pk6zzgkyd8k698mj6r5anfwpa"))))
(build-system gnu-build-system)
(outputs '("xpi" "firefox" "chromium"))
(properties '((addon-id . "uBlock0@raymondhill.net")))

View file

@ -20,7 +20,7 @@
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
;;; Copyright © 2023 zamfofex <zamfofex@twdb.moe>
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
;;; Copyright © 2023 David Elsing <david.elsing@posteo.net>
;;; Copyright © 2023, 2024 David Elsing <david.elsing@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -1349,7 +1349,7 @@ (define target-machine #$(and=> (%current-target-system)
(define-public tinydir
(package
(name "tinydir")
(version "1.2.5")
(version "1.2.6")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1358,7 +1358,7 @@ (define-public tinydir
(file-name (git-file-name name version))
(sha256
(base32
"1nprgdfx4i8wzc1idw6chan4fjfa75b5ll8kghdc0q2278pny259"))
"143n6yabznxk032gv5g2k8glf0kzicarg9cx0714zsbfmzj8lr07"))
(patches (search-patches "tinydir-fix-cbehave-test.patch"))
(modules '((guix build utils)))
(snippet '(delete-file-recursively "tests/cbehave"))))
@ -1390,7 +1390,7 @@ (define-public tinydir
(define-public libdispatch
(package
(name "libdispatch")
(version "5.7")
(version "5.9.2")
(source
(origin
(method git-fetch)
@ -1400,7 +1400,7 @@ (define-public libdispatch
(file-name (git-file-name name version))
(sha256
(base32
"0skg1azbhbg7y0ql2a5sx6lmfip8l1rajqm95zzf9xv45n4dg9nn"))))
"02k90asz0yxrcmy67mmqqc68n8f16jf445l0n7jryb7nk30bgmm6"))))
(build-system cmake-build-system)
(arguments
(list #:phases

View file

@ -2,7 +2,7 @@
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016, 2017, 2020, 2022, 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2020, 2022-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
;;; Copyright © 2016, 2021 Stefan Reichoer <stefan@xsteve.at>
;;; Copyright © 2018, 2019, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
@ -292,7 +292,11 @@ (define-public libhdate
version "/" name "-" version ".tar.bz2"))
(sha256
(base32
"0qkpq412p78znw8gckwcx3l0wcss9s0dgw1pvjb1ih2pxf6hm4rw"))))
"0qkpq412p78znw8gckwcx3l0wcss9s0dgw1pvjb1ih2pxf6hm4rw"))
(snippet
#~(begin (use-modules (guix build utils))
(substitute* "libhdate.pc.in"
(("prefix=/usr") "prefix=@prefix@"))))))
(build-system gnu-build-system)
(home-page "http://libhdate.sourceforge.net/")
(synopsis "Library to use Hebrew dates")

View file

@ -48,6 +48,7 @@
;;; Copyright © 2023 Reza Housseini <reza@housseini.me>
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
;;; Copyright © 2024 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -77,6 +78,7 @@ (define-module (gnu packages check)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages guile-xyz)
@ -898,94 +900,6 @@ (define-public python-gixy
command.")
(license license:mpl2.0))))
(define-public go-github.com-smartystreets-gunit
(package
(name "go-github.com-smartystreets-gunit")
(version "1.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/smartystreets/gunit")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"00m4zg0kdj49mnpmf9klb44ba71p966xsk6zknrzqgfc8119f35z"))))
(build-system go-build-system)
(arguments
'(;; TODO: This package depends on go-github.com-smartystreets-assertions
;; for running the tests, but go-github.com-smartystreets-assertions
;; depends on this package, so break this loop by not running the tests
;; for this package.
#:tests? #f
#:import-path "github.com/smartystreets/gunit"))
(synopsis "Testing tool for Go, in the style of xUnit")
(description
"@code{gunit} allows the test author to use a struct as the scope for a
group of related test cases, in the style of xUnit fixtures. This makes
extraction of setup/teardown behavior (as well as invoking the system under
test) much simpler.")
(home-page "https://github.com/smartystreets/gunit")
(license license:expat)))
(define-public go-github.com-smartystreets-assertions
(package
(name "go-github.com-smartystreets-assertions")
(version "1.13.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/smartystreets/assertions")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0flf3fb6fsw3bk1viva0fzrzw87djaj1mqvrx2gzg1ssn7xzfrzr"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/smartystreets/assertions"
#:phases
#~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs #:allow-other-keys #:rest args)
(unless
;; The tests fail when run with gccgo.
(false-if-exception (search-input-file inputs "/bin/gccgo"))
(apply (assoc-ref %standard-phases 'check) args)))))))
(native-inputs
(list go-github.com-smartystreets-gunit))
(synopsis "Assertions for testing with Go")
(description
"The @code{assertions} package provides convenient assertion functions
for writing tests in Go.")
(home-page "https://github.com/smartystreets/assertions")
(license license:expat)))
(define-public go-github.com-smartystreets-goconvey
(package
(name "go-github.com-smartystreets-goconvey")
(version "1.6.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/smartystreets/goconvey")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1ph18rkl3ns3fgin5i4j54w5a69grrmf3apcsmnpdn1wlrbs3dxh"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/smartystreets/goconvey"))
(propagated-inputs
(list go-github.com-jtolds-gls go-github.com-smartystreets-assertions))
(synopsis "Go testing tool with both a web and terminal user interface")
(description
"GoConvey is a testing tool for Go. It integrates with go test, can show
test coverage and has a web user interface that will refresh automatically.")
(home-page "https://github.com/smartystreets/goconvey")
(license license:expat)))
(define-public googletest
(package
(name "googletest")
@ -1028,7 +942,7 @@ (define-public googletest-1.8
(define-public googlebenchmark
(package
(name "googlebenchmark")
(version "1.8.2")
(version "1.8.3")
(home-page "https://github.com/google/benchmark")
(source (origin
(method git-fetch)
@ -1037,7 +951,7 @@ (define-public googlebenchmark
(file-name (git-file-name "google-benchmark" version))
(sha256
(base32
"1p72bw7xcd88d8268fmmzji59408f552fbiv37jmsixml5dmq9wv"))))
"1hf8xrdd9k57kw3mpdi68a78fd96vzdqv3179v2yy5dxx336ffw3"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON"
@ -1052,6 +966,29 @@ (define-public googlebenchmark
similar to unit tests.")
(license license:asl2.0)))
(define-public greatest
(package
(name "greatest")
(version "1.5.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/silentbicycle/greatest")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"11rajkb5m7mlzi3i3v0i27k6rrjw3x8a7bl6fkc29igzpwfbxndy"))))
(build-system copy-build-system)
(arguments (list #:install-plan
#~'(("greatest.h" "include/"))))
(home-page "https://github.com/silentbicycle/greatest")
(synopsis "Single-header test system")
(description "Greatest is a single-header test system for C, including
macros for defining tests, grouping them into suites, and providing a test
runner. It is quite unopinionated with most of its features being optional.")
(license license:isc)))
(define-public cpputest
(package
(name "cpputest")
@ -1227,14 +1164,14 @@ (define-public python-nose
(define-public python-nose2
(package
(name "python-nose2")
(version "0.11.0")
(version "0.14.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "nose2" version))
(sha256
(base32
"1scxwvwbgfdj41acma41xzdhcfdwjj9irj6sfifdbyf9dryqs83d"))))
"1936fkrxg672bhp9i32ivna7jbydl9dpbhyn5f3059xrl1qdfa2w"))))
(build-system python-build-system)
(arguments
(list #:phases
@ -1245,10 +1182,6 @@ (define-public python-nose2
;; Tests require nose2 itself.
(setenv "PYTHONPATH" (getcwd))
(invoke (string-append #$output "/bin/nose2") "-v")))))))
(native-inputs
(list python-coverage))
(propagated-inputs
(list python-six))
(home-page "https://github.com/nose-devs/nose2")
(synopsis "Next generation of nicer testing for Python")
(description
@ -3194,6 +3127,36 @@ (define-public python-pyhamcrest
allowing you to declaratively define \"match\" rules.")
(license license:bsd-3)))
(define-public theft
(package
(name "theft")
(version "0.4.5")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/silentbicycle/theft")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1n2mkawfl2bpd4pwy3mdzxwlqjjvb5bdrr2x2gldlyqdwbk7qjhd"))
(snippet #~(begin
(delete-file "vendor/greatest.h")))))
(build-system gnu-build-system)
(arguments (list #:make-flags #~(list "VENDOR="
(string-append "CC=" #$(cc-for-target))
(string-append "PREFIX=" #$output))
#:test-target "test"
#:phases
#~(modify-phases %standard-phases
(delete 'bootstrap)
(delete 'configure))))
(native-inputs (list greatest))
(home-page "https://github.com/silentbicycle/theft")
(synopsis "Property-based testing for C")
(description "Theft is a library for property-based testing.")
(license license:isc)))
(define-public unittest-cpp
(package
(name "unittest-cpp")
@ -3594,6 +3557,29 @@ (define-public python-pytest-regressions
that can be used to verify that future runs produce the same data.")
(license license:expat)))
(define-public python-pytest-tornado5
(package
(name "python-pytest-tornado5")
(version "2.0.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "pytest-tornado5" version))
(sha256
(base32
"0qb62jw2w0xr6y942yp0qxiy755bismjfpnxaxjjm05gy2pymr8d"))))
(build-system pyproject-build-system)
(arguments
;; Tests require pytest < 6
(list #:tests? #f))
(propagated-inputs (list python-pytest python-tornado))
(home-page "https://github.com/vidartf/pytest-tornado")
(synopsis
"Fixtures and markers to simplify testing of Tornado applications")
(description
"This package provides a @code{py.test} plugin supplying fixtures and
markers to simplify testing of asynchronous tornado applications.")
(license license:asl2.0)))
(define-public guile-proba
(package
(name "guile-proba")

View file

@ -6,7 +6,7 @@
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2022, 2023 David Elsing <david.elsing@posteo.net>
;;; Copyright © 2022, 2023, 2024 David Elsing <david.elsing@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -589,7 +589,7 @@ (define-public python-pymol
(define-public gemmi
(package
(name "gemmi")
(version "0.5.7")
(version "0.6.4")
(source (origin
(method git-fetch)
(uri (git-reference
@ -598,7 +598,7 @@ (define-public gemmi
(file-name (git-file-name name version))
(sha256
(base32
"00km5q726bslrw7xbfwb3f3mrsk19qbimfnl3hvr4wi1y3z8i18a"))
"0wciqqswc4p4v4kglfv36gnvyyimqn4lnywdzd0pgrjn443i860y"))
(patches
(search-patches "gemmi-fix-sajson-types.patch"
"gemmi-fix-pegtl-usage.patch"))
@ -625,7 +625,7 @@ (define-public gemmi
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-includes
(lambda _
(substitute* (list "include/gemmi/sprintf.hpp"
(substitute* (list "src/sprintf.cpp"
"include/gemmi/dirwalk.hpp"
"include/gemmi/cif.hpp"
"include/gemmi/json.hpp"
@ -708,7 +708,12 @@ (define-public freesasa
#~(list "--enable-check"
"--enable-parser-generator"
"CXXFLAGS=-std=c++17"
"--enable-doxygen")
"--enable-doxygen"
;; Some tests rely on replacing malloc with a wrapper which
;; fails in a controlled way, but this does not work if the call
;; is replaced. This was fixed upstream, remove once there is a
;; new release.
"CFLAGS=-fno-builtin-malloc")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'remove-libc++-linking
@ -722,7 +727,7 @@ (define-public freesasa
(("libfreesasa\\.a") "libfreesasa.la")
(("freesasa_LDADD \\+= libfreesasa\\.la" prev)
(string-append prev "\nlibfreesasa_la_LIBADD"
" = -ljson-c ${libxml2_LIBS}\n"))
" = -ljson-c -lgemmi_cpp ${libxml2_LIBS}\n"))
(("_a_SOURCES") "_la_SOURCES"))
(substitute* "configure.ac"
(("AC_PROG_INSTALL" inst)
@ -765,7 +770,7 @@ (define-public freesasa
(define-public maeparser
(package
(name "maeparser")
(version "1.3.0")
(version "1.3.1")
(source (origin
(method git-fetch)
(uri (git-reference
@ -774,7 +779,7 @@ (define-public maeparser
(file-name (git-file-name name version))
(sha256
(base32
"1yv4y5hn49fhylziigsg922bb244lb57p69r7vg9q899zd3l5b7l"))))
"0mr5glg4br04ql5grby8yqni9fqq1l1cc75wyc159a1b9lwr7q7r"))))
(build-system cmake-build-system)
(inputs (list boost zlib))
(home-page "https://github.com/schrodinger/maeparser")
@ -785,7 +790,7 @@ (define-public maeparser
(define-public coordgenlibs
(package
(name "coordgenlibs")
(version "3.0.1")
(version "3.0.2")
(source (origin
(method git-fetch)
(uri (git-reference
@ -794,7 +799,7 @@ (define-public coordgenlibs
(file-name (git-file-name name version))
(sha256
(base32
"0d09x3v38i9y184bml020bq7xizdrdwng38qmdxlplzfhqkjdidv"))))
"1wjaxwaihjy9xm5ys23f5abl50zcar1h9pww5ajdkgygsqy0bavi"))))
(build-system cmake-build-system)
(arguments
(list
@ -812,7 +817,7 @@ (define-public coordgenlibs
(define-public yaehmop
(package
(name "yaehmop")
(version "2022.09.1")
(version "2023.03.1")
(source (origin
(method git-fetch)
(uri (git-reference
@ -821,7 +826,7 @@ (define-public yaehmop
(file-name (git-file-name name version))
(sha256
(base32
"1x0d75m1hgdb411fiv7c5bwq1n4y0swrll0gigh8v5c73kjxrja0"))
"18xnxqn8i7vswy3iffapfh9q2iimpnd23ps45hn4xxbs6dqgzprb"))
(modules '((guix build utils)))
(snippet
'(begin
@ -917,90 +922,67 @@ (define-public yaehmop
(define-public avalon-toolkit
(package
(name "avalon-toolkit")
(version "1.2.0")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://sourceforge/avalontoolkit/"
"AvalonToolkit_" (substring version 0 3) "/AvalonToolkit_"
version ".source.tar"))
(sha256
(base32
"0rnnyy6axs2da7aa4q6l30ldavbk49v6l22llj1adn74h1i67bpv"))
(modules '((guix build utils) (ice-9 ftw)))
(snippet
#~(begin
(delete-file-recursively "../SourceDistribution/java")))))
(version "2.0.5a")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/rohdebe1/ava-formake")
(commit (string-append "AvalonToolkit_" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1mfg40y5xc17sm59zdfc5sk22n9zm5zk0z1aw47chvl6hp465szk"))
(patches
(search-patches "avalon-toolkit-rdkit-fixes.patch"))
(modules '((guix build utils) (ice-9 ftw)))
(snippet
#~(begin
(delete-file-recursively "src/main/java")
(delete-file-recursively "src/test/target")))))
(build-system gnu-build-system)
(arguments
(list
;; There are no intended tests
;; There is only one test, which is missing a file
#:tests? #f
#:phases
#~(let ((programs '("canonizer" "matchtest" "sketch" "smi2mol" "struchk")))
(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _ (chdir "common")))
(delete 'configure)
(add-before 'build 'dont-free-static-memory
(lambda _
(substitute* "reaccsio.c"
(("MyFree\\(.*tempdir\\)" m)
(string-append "/* freeing memory from getenv is bad */"
"// " m)))))
;; The makefile has incorrect compiler flags and is missing some
;; object files, so we build it ourselves.
(replace 'build
(lambda _
(for-each
(lambda (part)
(format #t "Compiling ~a.c ~~> ~a.o~%" part part)
(invoke #$(cc-for-target) "-c" "-fPIC" "-O2"
(string-append part ".c")
"-o" (string-append part ".o")))
(list "aacheck" "casutils" "denormal" "depictutil"
"didepict" "fixcharges" "forio" "geometry"
"graph" "hashcode" "layout" "local" "pattern"
"perceive" "reaccsio" "rtutils" "set" "shortcut"
"sketch" "ssmatch" "stereo" "symbol_lists"
"symboltable" "utilities"))
(display "Building libavalontoolkit.so\n")
(apply invoke "gcc" "-fPIC" "-shared" "-lm"
"-o" "libavalontoolkit.so" "canonizer.c" "smi2mol.c"
"struchk.c" "patclean.c" (find-files "." "\\.o$"))
;; patclean is not built here as there is an undeclared
;; variable in main().
#~(modify-phases %standard-phases
(delete 'configure)
(replace 'build
(lambda* (#:key parallel-build? #:allow-other-keys)
(mkdir "build")
(mkdir-p "target/executables")
(mkdir-p "target/libraries")
(invoke "make" "programs" "-j"
(if parallel-build?
(number->string (parallel-job-count))
"1"))))
(replace 'install
(lambda _
;; Executables
(let ((programs '("canonizer" "matchtest" "smi2mol" "struchk")))
(for-each
(lambda (program)
(display (string-append "Building " program "\n"))
(invoke "gcc" "-L." "-lavalontoolkit" "-lm" "-O2"
(string-append "-Wl,-rpath=" #$output "/lib")
"-DMAIN" (string-append program ".c") "-o" program))
programs)))
(replace 'install
(lambda _
;; Executables
(for-each
(lambda (program)
(install-file program (string-append #$output "/bin")))
programs)
(for-each
(lambda (name)
(symlink (string-append #$output "/bin/smi2mol")
(string-append #$output "/bin/" name)))
'("mol2smi" "rdf2smi" "mol2tbl" "mol2sma" "smi2rdf"))
;; Library
(install-file "libavalontoolkit.so"
(string-append #$output "/lib"))
(for-each
(lambda (file)
(install-file file (string-append #$output
"/include/avalontoolkit")))
(find-files "." "\\.h$"))
(install-file "../license.txt"
(string-append #$output "/share/doc/"
#$name "-" #$version "/"))))))))
(install-file (string-append "target/executables/" program)
(string-append #$output "/bin")))
programs))
(for-each
(lambda (name)
(symlink (string-append #$output "/bin/smi2mol")
(string-append #$output "/bin/" name)))
'("mol2smi" "rdf2smi" "mol2tbl" "mol2sma" "smi2rdf"))
;; Library
(install-file "target/libraries/libavalon_tools.a"
(string-append #$output "/lib"))
(install-file "target/libraries/libavalon4rdkit.a"
(string-append #$output "/lib"))
(for-each
(lambda (file)
(install-file file (string-append #$output
"/include/avalontoolkit")))
(find-files "src/main/C/include" "\\.h$"))
(install-file "license.txt"
(string-append #$output "/share/doc/"
#$name "-" #$version "/")))))))
(home-page "https://sourceforge.net/projects/avalontoolkit/")
(synopsis "Tools for SMILES and MOL files and for structure fingerprinting")
(description "This package contains a library and programs for
@ -1091,7 +1073,7 @@ (define-public ringdecomposerlib
(define-public rdkit
(package
(name "rdkit")
(version "2022.03.5")
(version "2023.09.4")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1102,7 +1084,7 @@ (define-public rdkit
(file-name (git-file-name name version))
(sha256
(base32
"19idgilabh04cbr1qj6zgrgsfjm248mmfz6fsr0smrd68d0xnml9"))
"1lgcgijlzzwpfxndsdlx13npdfk7hcii11zg25cvpmzhbpn6vyn8"))
(patches
(search-patches "rdkit-unbundle-external-dependencies.patch"))
(modules '((guix build utils)))
@ -1201,7 +1183,10 @@ (define-public rdkit
"substructLibraryTest" "pyFeatures"
"pythonTestDirML" "pythonTestDirChem"
;; Catching Python exception fails
"pyRanker") "|")
"pyRanker"
;; Flaky test depending on floating point rounding
"testConrec"
) "|")
")")))))))))
(inputs
(list avalon-toolkit
@ -1218,7 +1203,7 @@ (define-public rdkit
(native-inputs
(list bison
boost
catch2
catch2-3
eigen
flex
freesasa
@ -1232,4 +1217,8 @@ (define-public rdkit
(description "RDKit is a C++ and Python library for cheminformatics, which
includes (among other things) the analysis and modification of molecules in 2D
and 3D and descriptor generation for machine learning.")
;; For 32 bit systems, there is a bug in Boost.Python:
;; https://github.com/boostorg/python/issues/312. Additionally, several
;; other test fail.
(supported-systems %64bit-supported-systems)
(license license:bsd-3)))

View file

@ -5,7 +5,7 @@
;;; Copyright © 2017, 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2022, 2024 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2023 David Pflug <david@pflug.io>
;;;
;;; This file is part of GNU Guix.
@ -209,14 +209,15 @@ (define-public laminar
(use-modules (ice-9 popen))
(mkdir-p "../build/js")
(for-each (lambda (name)
(let* ((file
(assoc-ref inputs (string-append name ".js")))
(port
(invoke "tar" "-xf" (assoc-ref inputs "chart.js.tgz")
"--strip-components" "2"
"package/dist/chart.js")
(for-each (lambda (file minified-file)
(let* ((port
(open-pipe* OPEN_READ "uglifyjs" file))
(destination
(string-append
"../build/js/" name ".min.js")))
"../build/js/" minified-file)))
(call-with-output-file destination
(lambda (output-port)
@ -226,9 +227,12 @@ (define-public laminar
(unless (zero? exit)
(error "uglifyjs failed" exit)))))
'("vue"
"vue-router"
"Chart"))
(list (assoc-ref inputs "vue.js")
(assoc-ref inputs "vue-router.js")
"chart.js")
(list "vue.min.js"
"vue-router.min.js"
"Chart.min.js"))
;; ansi_up.js isn't minified
(copy-file (assoc-ref inputs "ansi_up.js")
@ -260,13 +264,13 @@ (define-public laminar
(sha256
(base32
"1dx8wn38ds8d01kkih26fx1yrisg3kpz61qynjr4zil03ap0hrlr"))))
("Chart.js"
("chart.js.tgz"
,(origin (method url-fetch)
(uri (string-append "https://github.com/chartjs/Chart.js/"
"releases/download/v2.7.2/Chart.js"))
"releases/download/v3.9.1/chart.js-3.9.1.tgz"))
(sha256
(base32
"05m3gk6hqjx92j20drnk7q075qpjraywqaf25lnglmsgsgpiqsr7"))))))
"1ikjgspaknqlhpjad17563yph4pvrh8dkzjdx58pl23gg58hf7hi"))))))
(synopsis "Lightweight continuous integration service")
(description
"Laminar is a lightweight and modular continuous integration service. It

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023 Rodion Goritskov <rodion.goritskov@gmail.com>
;;; Copyright © 2023, 2024 Rodion Goritskov <rodion.goritskov@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -30,7 +30,7 @@ (define-module (gnu packages clifm)
(define-public clifm
(package
(name "clifm")
(version "1.15")
(version "1.17")
(source
(origin
(method git-fetch)
@ -39,7 +39,7 @@ (define-public clifm
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1r9pxlyn8jg0wmzbmbc71l42098lz5k32k6yid09yz6d0gaax7g1"))))
(base32 "00f5x0352dsf8f9ixkcwma7wr5pg78maavmd950nni38m647clm6"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list (string-append "CC="
@ -53,8 +53,8 @@ (define-public clifm
(inputs (list readline acl libcap))
(home-page "https://github.com/leo-arch/clifm")
(synopsis "Command-line file manager")
(description "Clifm a shell-like, text-based terminal file manager that
sits on the command line.
(description "Clifm is a shell-like, text-based terminal file manager
that sits on the command line.
It is built with command line principles in mind: instead of navigating
through a big menu of files, it lets you type, exactly as you do in your

View file

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

View file

@ -4,7 +4,7 @@
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018, 2020, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
@ -380,6 +380,8 @@ (define-public cmake
(string-append "-DCMAKE_DOC_DIR=share/doc/cmake-"
#$(version-major+minor (package-version
cmake-minimal)))
(string-append "-DCMake_INSTALL_VIMFILES_DIR=" #$output
"/share/vim/vimfiles/pack/guix/start/cmake")
"-DCMAKE_INFO_DIR=share/info"
"-DCMAKE_MAN_DIR=share/man")
#$flags))

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018, 2021-2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018, 2021-2024 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -23,7 +23,9 @@ (define-module (gnu packages cobol)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (gnu packages bison)
#:use-module (gnu packages dbm)
#:use-module (gnu packages flex)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
@ -42,7 +44,17 @@ (define-public gnucobol
version ".tar.xz"))
(sha256
(base32
"1qifkkrmscc5csri1l4rm9pbik74c3pc5za1rzx7jizddks8md1v"))))
"1qifkkrmscc5csri1l4rm9pbik74c3pc5za1rzx7jizddks8md1v"))
(snippet
#~(begin (use-modules (guix build utils))
;; Remove some files generated by bison and flex.
(for-each delete-file
'("cobc/parser.c"
"cobc/parser.h"
"cobc/ppparse.c"
"cobc/ppparse.h"
"cobc/pplex.c"
"cobc/scanner.c"))))))
(arguments
(list
#:configure-flags
@ -62,7 +74,9 @@ (define-public gnucobol
(lambda _ (setenv "TERM" "xterm-256color"))))
#:test-target "checkall"))
(native-inputs
`(("perl" ,perl)
`(("bison" ,bison)
("flex" ,flex)
("perl" ,perl)
("newcob" ,(origin
(method url-fetch)
(uri "https://www.itl.nist.gov/div897/ctg/suites/newcob.val.Z")

View file

@ -2,7 +2,7 @@
;;; Copyright © 2013, 2015, 2018, 2020, 2021, 2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2019-2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2019-2024 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>
@ -436,7 +436,7 @@ (define-public trio
(define-public universal-ctags
(package
(name "universal-ctags")
(version "6.0.20231001.0")
(version "6.1.20240218.0")
(source
(origin
(method git-fetch)
@ -446,7 +446,7 @@ (define-public universal-ctags
(file-name (git-file-name name version))
(sha256
(base32
"0qik6rsai254prydfx8k2bq7wpim3a272jiw1y37r734k4s9xbrb"))
"09cjlj7mq3s98x9zsg4slq86h1myixjxxqfnc0kglf2hnr9nrkf5"))
(modules '((guix build utils)))
(snippet
'(begin

View file

@ -998,14 +998,14 @@ (define-public squashfs-tools-ng
(define-public pigz
(package
(name "pigz")
(version "2.7")
(version "2.8")
(source (origin
(method url-fetch)
(uri (string-append "http://zlib.net/pigz/"
name "-" version ".tar.gz"))
(sha256
(base32
"01y7n7lafp6maqnp4jrmasawnv67najh1bd7gjrmv3d08h1ydjdl"))))
"1l0g2zaz05pl3pijsjd8lqxqj122di88rggpr5cvw3hz1r7jp1zb"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags

View file

@ -4,7 +4,7 @@
;;; Copyright © 2019 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2023, 2024 John Kehayias <john.kehayias@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -113,7 +113,7 @@ (define-public compton
(define-public picom
(package
(name "picom")
(version "10.2")
(version "11.2")
(source
(origin
(method git-fetch)
@ -122,23 +122,25 @@ (define-public picom
(commit (string-append "v" version))))
(sha256
(base32
"1vd4nhvfykwdhpyhb0jmcj333zxhm6dyikafd76fa4z4fhjrrs0b"))
"0swmpw6lj0aiwypdfkzsy38jwsm9wfcn7i5klrqfn2klrwinv27f"))
(file-name (string-append "picom-" version))))
(build-system meson-build-system)
(inputs
(list dbus
libconfig
libepoxy
libev
libx11
libxext
libev
libxdg-basedir
mesa
xprop
xcb-util-renderutil
xcb-util-image
pcre2
pixman
uthash
libxdg-basedir
pcre))
xcb-util
xcb-util-renderutil
xcb-util-image
xprop))
(native-inputs
(list asciidoc pkg-config xorgproto))
(arguments

View file

@ -21,7 +21,9 @@ (define-module (gnu packages configuration-management)
#:use-module (guix build-system go)
#:use-module (guix git-download)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-web)
#:use-module (gnu packages golang-xyz)
#:use-module (gnu packages version-control)
#:use-module (gnu packages textutils)
#:use-module ((guix licenses) #:prefix license:)
@ -31,9 +33,7 @@ (define-module (gnu packages configuration-management)
(define-public chezmoi
(package
(name "chezmoi")
;; XXX: Make sure 7f238faa61e46d79b54d4d0ea8f0b5fc27db84b2 applied before
;; version update, which should fix @code{password-store} integration.
(version "1.8.1")
(version "1.8.10")
(source (origin
(method git-fetch)
(uri (git-reference
@ -42,47 +42,78 @@ (define-public chezmoi
(file-name (git-file-name name version))
(sha256
(base32
"1b8y0wq3myhvjdnwl0i4x85iil7i7kmsjajvbw1a47afm83jkbaw"))))
"0ildvlq7v8vnw74y4fgnv3hpq49bpl6zh1wmakfh46crwg7ffmjb"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/twpayne/chezmoi"
;; We don't need to install the source code for end-user applications.
#:install-source? #f))
#:install-source? #f
#:phases
(modify-phases %standard-phases
;; Remove test script which expect additional user's programs available
;; in the PATH. The testdata directory is removed in the latest version
;; (2.46.1) of the program.
(add-after 'unpack 'remove-failing-test-scripts
(lambda* (#:key import-path #:allow-other-keys)
(for-each (lambda (f)
(delete-file (string-append "src/" import-path "/testdata/scripts/" f)))
'("bitwarden.txt"
"cd.txt"
"cd_unix.txt"
"completion.txt"
"diff.txt"
"edit.txt"
"editconfig.txt"
"git.txt"
"gopass.txt"
"keepassxc.txt"
"lastpass.txt"
"onepassword.txt"
"pass.txt"
"runscriptdir_unix.txt"
"script_unix.txt"
"secretgeneric.txt"
"secretgopass.txt"
"secretkeepassxc.txt"
"secretlastpass.txt"
"secretonepassword.txt"
"secretpass.txt")))))))
(native-inputs
(list go-github-com-masterminds-sprig
go-github-com-masterminds-goutils
go-github-com-masterminds-semver
go-github-com-google-uuid
go-github-com-huandu-xstrings
go-github-com-imdario-mergo
go-github-com-mitchellh-reflectwalk
go-github-com-mitchellh-copystructure
go-github-com-bmatcuk-doublestar
go-github-com-charmbracelet-glamour
(list go-etcd-io-bbolt
go-github-com-alecthomas-chroma
go-github-com-aymerick-douceur
go-github-com-bmatcuk-doublestar-v2
go-github-com-charmbracelet-glamour
go-github-com-chris-ramon-douceur
go-github-com-coreos-go-semver
go-github-com-danwakefield-fnmatch
go-github-com-dlclark-regexp2
go-github-go-git
go-github-com-google-go-github
go-github-com-godbus-dbus
go-github-com-google-go-github-v33
go-github-com-google-go-querystring
go-github-com-google-renameio
go-github-com-microcosm-cc-bluemonday
go-github-com-aymerick-douceur
go-github-com-chris-ramon-douceur
go-github-com-gorilla-css
go-github-com-muesli-reflow-ansi
go-github-com-muesli-reflow-wordwrap
go-github-com-muesli-reflow-indent
go-github-com-muesli-reflow-padding
go-github-com-muesli-termenv
go-github-com-google-goterm
go-github-com-google-renameio
go-github-com-google-uuid
go-github-com-gorilla-css
go-github-com-huandu-xstrings
go-github-com-imdario-mergo
go-github-com-lucasb-eyer-go-colorful
go-github-com-masterminds-goutils
go-github-com-masterminds-semver
go-github-com-masterminds-sprig
go-github-com-mattn-go-isatty
go-github-com-mattn-go-runewidth
go-github-com-microcosm-cc-bluemonday
go-github-com-mitchellh-copystructure
go-github-com-mitchellh-reflectwalk
go-github-com-muesli-reflow-ansi
go-github-com-muesli-reflow-indent
go-github-com-muesli-reflow-padding
go-github-com-muesli-reflow-wordwrap
go-github-com-muesli-termenv
go-github-com-olekukonko-tablewriter
go-github-com-pelletier-go-toml
go-github-com-pkg-diff
go-github-com-rogpeppe-go-internal
go-github-com-sergi-go-diff
go-github-com-spf13-cobra
go-github-com-spf13-viper
@ -92,12 +123,11 @@ (define-public chezmoi
go-github-com-twpayne-go-xdg
go-github-com-yuin-goldmark
go-github-com-zalando-go-keyring
go-github-com-godbus-dbus
go-etcd-io-bbolt
go-github-go-git
go-golang-org-x-crypto
go-golang-org-x-net
go-golang-org-x-oauth2
go-github-com-rogpeppe-go-internal
go-golang-org-x-term
go-gopkg-in-errgo-fmt-errors))
(home-page "https://www.chezmoi.io/")
(synopsis "Personal configuration files manager")

View file

@ -5,6 +5,7 @@
;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2023 Zongyuan Li <zongyuan.li@c0x0o.me>
;;; Copyright © 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2024 Tomas Volf <~@wolfsden.cz>
;;;
;;; This file is part of GNU Guix.
;;;
@ -53,62 +54,50 @@ (define-module (gnu packages containers)
#:use-module (gnu packages wget))
(define-public crun
(let ((commit "c381048530aa750495cf502ddb7181f2ded5b400"))
(package
(name "crun")
(version "1.4.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/containers/crun")
(commit commit)
(recursive? #t)))
(sha256
(base32 "0x2xmr5sv9ivvcv5fl5jjk4kq9b3n97s5hsqiqfwl4rz8qcz4xk1"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--disable-systemd")
#:tests? #f ; XXX: needs /sys/fs/cgroup mounted
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'do-not-depend-on-git
(lambda _
(substitute* "autogen.sh"
(("^git submodule update.*")
""))
(with-output-to-file "git-version.h"
(lambda ()
(display (string-append
"/* autogenerated. */\n#ifndef GIT_VERSION\n# define GIT_VERSION \""
,commit
"\"\n#endif\n"))))))
(add-after 'unpack 'fix-tests
(lambda _
(substitute* (find-files "tests" "\\.(c|py)")
(("/bin/true") (which "true"))
(("/bin/false") (which "false"))
; relies on sd_notify which requires systemd?
(("\"sd-notify\" : test_sd_notify,") "")
(("\"sd-notify-file\" : test_sd_notify_file,") "")))))))
(inputs
(list libcap
libseccomp
yajl))
(native-inputs
(list automake
autoconf
git
libtool
pkg-config
python-3))
(home-page "https://github.com/containers/crun")
(synopsis "Open Container Initiative (OCI) Container runtime")
(description
"crun is a fast and low-memory footprint Open Container Initiative (OCI)
(package
(name "crun")
(version "1.14.1")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/containers/crun/releases/download/"
version
"/crun-" version ".tar.gz"))
(sha256
(base32
"02lplc2asyllb58mvy7l8b9gsk7fxs95g928xk28yzmf592ay33x"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--disable-systemd")
#:tests? #f ; XXX: needs /sys/fs/cgroup mounted
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-tests
(lambda _
(substitute* (find-files "tests" "\\.(c|py)")
(("/bin/true") (which "true"))
(("/bin/false") (which "false"))
; relies on sd_notify which requires systemd?
(("\"sd-notify\" : test_sd_notify,") "")
(("\"sd-notify-file\" : test_sd_notify_file,") "")))))))
(inputs
(list libcap
libseccomp
yajl))
(native-inputs
(list automake
autoconf
git
libtool
pkg-config
python-3))
(home-page "https://github.com/containers/crun")
(synopsis "Open Container Initiative (OCI) Container runtime")
(description
"crun is a fast and low-memory footprint Open Container Initiative (OCI)
Container Runtime fully written in C.")
(license license:gpl2+))))
(license license:gpl2+)))
(define-public conmon
(package
@ -221,7 +210,7 @@ (define-public libslirp
(define-public slirp4netns
(package
(name "slirp4netns")
(version "1.2.0")
(version "1.2.3")
(source
(origin
(method git-fetch)
@ -229,7 +218,7 @@ (define-public slirp4netns
(url "https://github.com/rootless-containers/slirp4netns")
(commit (string-append "v" version))))
(sha256
(base32 "1rlzwp5fx1x3q179j9s2jp02imjag5pgj333z110nrvi7azl22l8"))
(base32 "0czvdsdv821fz4jd9rgrlkdhhjna6frawr8klvx3k2cfh444fbii"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments

View file

@ -31,6 +31,7 @@ (define-module (gnu packages coq)
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages compression)
#:use-module (gnu packages emacs)
#:use-module (gnu packages flex)
#:use-module (gnu packages gawk)
@ -51,10 +52,10 @@ (define-module (gnu packages coq)
#:use-module (guix utils)
#:use-module ((srfi srfi-1) #:hide (zip)))
(define-public coq-core
(define-public coq
(package
(name "coq-core")
(version "8.16.1")
(name "coq")
(version "8.17.1")
(source
(origin
(method git-fetch)
@ -64,28 +65,35 @@ (define-public coq-core
(file-name (git-file-name name version))
(sha256
(base32
"0ljpqhh5lfsim29fcfp2xfcvm3j84pf1mb0gnpdr8vcqqw7mqwpf"))
(patches (search-patches "coq-fix-envvars.patch"))))
"0gg6hizq0i08lk741b579cbswhy6qvkh6inc3d3i5a2af98psq63"))))
(native-search-paths
(list (search-path-specification
(variable "COQPATH")
(files (list "lib/ocaml/site-lib/coq/user-contrib"
"lib/coq/user-contrib")))
(search-path-specification
(variable "COQLIBPATH")
(files (list "lib/ocaml/site-lib/coq")))
(search-path-specification
(variable "COQCORELIB")
(files (list "lib/ocaml/site-lib/coq-core"))
(separator #f))))
(files (list "lib/coq/user-contrib")))))
(build-system dune-build-system)
(arguments
(list
#:package "coq-core,coq-stdlib,coq"
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(coqlib (string-append out "/lib/ocaml/site-lib/coq/")))
(invoke "./configure" "-prefix" out
"-libdir" coqlib))))
(add-before 'build 'make-dunestrap
(lambda _ (invoke "make" "dunestrap")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(libdir (string-append out "/lib/ocaml/site-lib")))
(invoke "dune" "install" "--prefix" out
"--libdir" libdir "coq" "coq-core" "coq-stdlib")))))))
(inputs
(list gmp ocaml-zarith))
(native-inputs
(list ocaml-ounit2 which))
(arguments
`(#:package "coq-core"
#:test-target "."))
(properties '((upstream-name . "coq"))) ; also for inherited packages
(home-page "https://coq.inria.fr")
(synopsis "Proof assistant for higher-order logic")
@ -97,39 +105,6 @@ (define-public coq-core
;; Some of the documentation is distributed under opl1.0+.
(license (list license:lgpl2.1 license:opl1.0+))))
(define-public coq-stdlib
(package
(inherit coq-core)
(name "coq-stdlib")
(arguments
`(#:package "coq-stdlib"
#:test-target "."
#:phases
(modify-phases %standard-phases
(add-before 'build 'fix-dune
(lambda _
(substitute* "user-contrib/Ltac2/dune"
(("coq-core.plugins.ltac2")
(string-join
(map (lambda (plugin) (string-append "coq-core.plugins." plugin))
'("ltac2" "number_string_notation" "tauto" "cc"
"firstorder"))
" "))))))))
(inputs
(list coq-core gmp ocaml-zarith))
(native-inputs '())))
(define-public coq
(package
(inherit coq-core)
(name "coq")
(arguments
`(#:package "coq"
#:test-target "."))
(propagated-inputs
(list coq-core coq-stdlib))
(native-inputs '())))
(define-public coq-ide-server
(package
(inherit coq)
@ -148,7 +123,7 @@ (define-public coq-ide
`(#:tests? #f
#:package "coqide"))
(propagated-inputs
(list coq coq-ide-server))
(list coq coq-ide-server zlib))
(inputs
(list lablgtk3 ocaml-lablgtk3-sourceview3))))
@ -242,7 +217,7 @@ (define-public proof-general
(define-public coq-flocq
(package
(name "coq-flocq")
(version "4.1.0")
(version "4.1.1")
(source
(origin
(method git-fetch)
@ -252,7 +227,7 @@ (define-public coq-flocq
(file-name (git-file-name name version))
(sha256
(base32
"1yscj1120wch6myakaia03j11qji416v78ylx842d23hrbaqwmw5"))))
"01x38w58j95ba9679vpb5wv4bvfnrapd5dzjqlyz8k7i8a9sfqn0"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake ocaml which coq))
@ -315,7 +290,7 @@ (define-public coq-for-coqtail
(define-public coq-gappa
(package
(name "coq-gappa")
(version "1.5.2")
(version "1.5.3")
(source
(origin
(method git-fetch)
@ -325,7 +300,7 @@ (define-public coq-gappa
(file-name (git-file-name name version))
(sha256
(base32
"0l65ah81yj9vabgkwqh47c02qvscvl8nl60gqn1qrs47dx1pi80q"))))
"1dzkb2sfglhik2ymw8p65khl163xxjsaqji9agnnkvlk5r6589v6"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf
@ -375,7 +350,7 @@ (define-public coq-gappa
(define-public coq-mathcomp
(package
(name "coq-mathcomp")
(version "1.15.0")
(version "1.17.0")
(source
(origin
(method git-fetch)
@ -384,7 +359,7 @@ (define-public coq-mathcomp
(commit (string-append "mathcomp-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "158zl36zbvi5qx2nqbfnrg00jpgp6hjr5hmls7d8d0421ar6b67i"))))
(base32 "06i6kw5p2024n6h9mf8bvwn54il1a4z2h4qrgc8y0iq8hkvx4fnd"))))
(build-system gnu-build-system)
(native-inputs
(list ocaml which coq))
@ -412,7 +387,7 @@ (define-public coq-mathcomp
(define-public coq-coquelicot
(package
(name "coq-coquelicot")
(version "3.2.0")
(version "3.4.0")
(source
(origin
(method git-fetch)
@ -422,7 +397,7 @@ (define-public coq-coquelicot
(file-name (git-file-name name version))
(sha256
(base32
"146s5y2xsc7wb43m1pq1n4p14hw99gqbzx0ic3a4naxq16v7cv4w"))))
"1f6zim6hnm6zrij964vas6rfbxh5p147qsxxmmbxm7gyb85hhy45"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake ocaml which coq))
@ -495,7 +470,7 @@ (define-public coq-bignums
(define-public coq-interval
(package
(name "coq-interval")
(version "4.5.2")
(version "4.8.0")
(source
(origin
(method git-fetch)
@ -505,7 +480,7 @@ (define-public coq-interval
(file-name (git-file-name name version))
(sha256
(base32
"138vgb0bq6wkygrhkahjgb9spwpzc6x6kkycj2qnf5naxx1z412w"))))
"0m3icx77p99ld9qfl3xjq62q572pyi4m77i1kc3whvipvg7834rh"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake ocaml which coq))
@ -542,35 +517,31 @@ (define-public coq-interval
(license license:cecill-c)))
(define-public coq-autosubst
;; Latest commit on that branch, where work on supporting coq 8.6 and
;; more recent versions of coq happen.
(let ((branch "coq86-devel")
(commit "fa6ef30664511ffa659cbcf3c962715cbee03572"))
(package
(name "coq-autosubst")
(version (git-version "1" branch commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "git://github.com/uds-psl/autosubst")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1cl0bp96bk6lplbl7n5c703vd3gvbs5mvf2qrf8q333kkqd7jqq4"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
(package
(name "coq-autosubst")
(version "1.8")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/coq-community/autosubst")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0qk72r6cqxwhqqkl2kmryhw365w3l2016qii1q1sk3md7zq46jcz"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
#:make-flags (list (string-append "COQLIBINSTALL="
(assoc-ref %outputs "out")
"/lib/coq/user-contrib"))
#:phases
(modify-phases %standard-phases
(delete 'configure))))
(native-inputs
(list coq))
(home-page "https://www.ps.uni-saarland.de/autosubst/")
(synopsis "Coq library for parallel de Bruijn substitutions")
(description "Formalizing syntactic theories with variable binders is
#:phases
(modify-phases %standard-phases
(delete 'configure))))
(native-inputs
(list coq))
(home-page "https://www.ps.uni-saarland.de/autosubst/")
(synopsis "Coq library for parallel de Bruijn substitutions")
(description "Formalizing syntactic theories with variable binders is
not easy. Autosubst is a library for the Coq proof assistant to
automate this process. Given an inductive definition of syntactic objects in
de Bruijn representation augmented with binding annotations, Autosubst
@ -581,21 +552,21 @@ (define-public coq-autosubst
work on a decision procedure for the equational theory of an extension of the
sigma-calculus by Abadi et al. The library is completely written in Coq and
uses Ltac to synthesize the substitution operation.")
(license license:bsd-3))))
(license license:bsd-3)))
(define-public coq-equations
(package
(name "coq-equations")
(version "1.3")
(version "1.3-8.17")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mattam82/Coq-Equations")
(commit (string-append "v" version "-8.16"))))
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"08f756vgdd1wklkarg0b93j4n5mhkqm5ixxrhyb23dcv2dwhc8yg"))))
"0g68h4c1ijpphixvl9wkd7sibds38v4236dpvvh194j5ii42vnn8"))))
(build-system gnu-build-system)
(native-inputs
(list ocaml coq camlp5))
@ -673,7 +644,7 @@ (define-public coq-semantics
(define-public coq-stdpp
(package
(name "coq-stdpp")
(version "1.7.0")
(version "1.8.0")
(synopsis "Alternative Coq standard library std++")
(source (origin
(method git-fetch)
@ -683,7 +654,7 @@ (define-public coq-stdpp
(file-name (git-file-name name version))
(sha256
(base32
"0447wbzm23f9rl8byqf6vglasfn6c1wy6cxrrwagqjwsh3i5lx8y"))))
"0xawh3xkh76yhs689zw52k55cbzga2gyzl4g1a3pgg6yy420chjn"))))
(build-system gnu-build-system)
(inputs
(list coq))
@ -747,7 +718,7 @@ (define-public coq-mathcomp-finmap
"/lib/coq/user-contrib"))
#:phases (modify-phases %standard-phases
(delete 'configure))))
(inputs (list coq coq-stdlib coq-mathcomp which))
(inputs (list coq coq coq-mathcomp which))
(synopsis "Finite sets and finite types for coq-mathcomp")
(description
"This library is an extension of coq-mathcomp which supports finite sets
@ -778,7 +749,7 @@ (define-public coq-mathcomp-bigenough
;; by the packaged project in the future.
#:tests? #f
#:make-flags ,#~(list (string-append "COQBIN="
#$(this-package-input "coq-core")
#$(this-package-input "coq")
"/bin/")
(string-append "COQMF_COQLIB="
(assoc-ref %outputs "out")
@ -788,7 +759,7 @@ (define-public coq-mathcomp-bigenough
"/lib/coq/user-contrib"))
#:phases (modify-phases %standard-phases
(delete 'configure))))
(propagated-inputs (list coq coq-core coq-mathcomp which))
(propagated-inputs (list coq coq-mathcomp which))
(home-page "https://math-comp.github.io/")
(synopsis "Small library to do epsilon - N reasoning")
(description

View file

@ -8,7 +8,7 @@
;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
;;; Copyright © 2020, 2021, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020, 2021, 2023, 2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020, 2021, 2022 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
@ -25,11 +25,11 @@
;;; Copyright © 2021 jgart <jgart@dismail.de>
;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2021 Disseminate Dissent <disseminatedissent@protonmail.com>
;;; Copyright © 2022, 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2022-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2022 muradm <mail@muradm.net>
;;; Copyright © 2022 Attila Lendvai <attila@lendvai.name>
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2022, 2023 David Elsing <david.elsing@posteo.net>
;;; Copyright © 2022, 2023, 2024 David Elsing <david.elsing@posteo.net>
;;; Copyright © 2022, 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
@ -187,45 +187,39 @@ (define-public asmjit
(define-public range-v3
(package
(name "range-v3")
(version "0.11.0")
(version "0.12.0")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/ericniebler/range-v3.git")
(commit version)))
(file-name
(git-file-name name version))
(patches (search-patches "range-v3-build-with-gcc10.patch"))
(uri (git-reference
(url "https://github.com/ericniebler/range-v3.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "18230bg4rq9pmm5f8f65j444jpq56rld4fhmpham8q3vr1c1bdjh"))))
(base32 "0r85s5rmp5ixmik2y5y4w760pa38j1sg9hbr1fss2flibzvrf53d"))))
(build-system cmake-build-system)
(arguments
(list
#:configure-flags
#~(list "-DRANGES_NATIVE=OFF")))
(native-inputs
(list doxygen gcc-9 perl))
(inputs
(list boost))
#:configure-flags #~(list "-DRANGES_NATIVE=OFF")))
(native-inputs (list doxygen perl))
(inputs (list boost))
(synopsis "Range library for C++14/17/20")
(description "Range-v3 is an extension of the Standard Template Library that
(description
"Range-v3 is an extension of the Standard Template Library that
makes its iterators and algorithms more powerful by making them composable.
Unlike other range-like solutions which, seek to do away with iterators, in
range-v3 ranges are an abstraction layer on top of iterators.")
(home-page "https://github.com/ericniebler/range-v3/")
(license
(list
;; Elements of Programming
(license:x11-style "file:///LICENSE.txt")
;; SGI STL
license:sgifreeb2.0
;;; LibC++ (dual-licensed)
license:expat
license:ncsa
;; Others
license:boost1.0))))
(license (list
;; Elements of Programming
(license:x11-style "file:///LICENSE.txt")
;; SGI STL
license:sgifreeb2.0
;; LibC++ (dual-licensed)
license:expat
license:ncsa
;; Others
license:boost1.0))))
(define-public robin-hood-hashing
(package
@ -285,16 +279,18 @@ (define-public c2ffi
(name "c2ffi")
;; As per the c2ffi README: the first three elements are encoding the
;; required Clang/LLVM version, and the last one is the c2ffi revision.
(version "12.0.0.0")
(version "16.0.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/rpav/c2ffi")
(commit (string-append "v" version))))
;; Upstream is not tagging releases consistently.
;; (commit (string-append "v" version))
(commit "097cbe61ca02dc79ea60859aa056975131a9d985")))
(file-name (git-file-name name version))
(sha256
(base32 "1qq8dfismd20d9kfxpfvwz07v9mfvd0y7p5r3c92mk2pm4xnmzfy"))
(base32 "1mqhw4838chl495gaj9z0731ahkmqb4f3wlc1qalk82fdsaniyd5"))
(modules '((guix build utils)))
(snippet
'(substitute* "CMakeLists.txt"
@ -315,9 +311,9 @@ (define-public c2ffi
(when tests?
(invoke "./bin/c2ffi" "--help")))))))
(native-inputs
(list clang-12)) ; CMakeLists.txt invokes `clang -print-resource-dir`
(list clang-16)) ; CMakeLists.txt invokes `clang -print-resource-dir`
(inputs
(list clang-12)) ; Compiled with gcc, but links against libclang-cpp.so
(list clang-16)) ; Compiled with gcc, but links against libclang-cpp.so
(home-page "https://github.com/rpav/c2ffi")
(synopsis "Clang-based FFI wrapper generator")
(description
@ -519,7 +515,17 @@ (define-public google-highway
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DHWY_SYSTEM_GTEST=on"
"-DBUILD_SHARED_LIBS=ON")))
"-DBUILD_SHARED_LIBS=ON")
,@(if (string-prefix? "i686-linux" (or (%current-system)
(%current-target-system)))
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'really-skip-precision-tests
(lambda _
(substitute* "hwy/contrib/math/math_test.cc"
(("Skipping math_test due to GCC issue with excess precision.*" m)
(string-append m "return;\n")))))))
'())))
(native-inputs
(list googletest))
(home-page "https://github.com/google/highway")
@ -1061,10 +1067,9 @@ (define-public reproc
(base32 "09xnf8hmld1fk8j33zwlz1qcxnjdx1ncbg62csic9va4m1wc2v1d"))))
(build-system cmake-build-system)
(arguments
;; No tests.
`(#:tests? #f
;; Build the shared library instead of a static one.
#:configure-flags `("-DBUILD_SHARED_LIBS=1")))
(list #:tests? #f ; No tests.
#:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON"
"-DREPROC++=ON")))
(native-inputs
(list pkg-config))
(synopsis "Process IO library")
@ -1628,7 +1633,7 @@ (define-public libexpected
(define-public immer
(package
(name "immer")
(version "0.8.0")
(version "0.8.1")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1636,19 +1641,12 @@ (define-public immer
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "11km3l5h3rgsbj8yfyzk3fnx9na55l6zs2sxpx922yvlvs2blh27"))
(modules '((guix build utils)))
(snippet #~(begin
(delete-file "tools/include/doctest.h")
(delete-file "tools/include/catch.hpp")
(substitute* (find-files "test" "\\.[cih]pp")
(("<catch.hpp>") "<catch2/catch.hpp>")
(("<doctest.h>") "<doctest/doctest.h>"))
(substitute* (find-files "test/oss-fuzz" "\\.cpp")
;; someone used the wrong header :)
(("<fmt/printf.h>") "<fmt/ostream.h>"))))))
(base32 "03qkr42h0g6rivj3kq207gzgnv7hq88y69q16l2vg1lbvjcgca2g"))))
(build-system cmake-build-system)
(arguments (list #:test-target "check"))
(arguments (list #:test-target "check"
;; -Werror appears to report false positives.
;; See <https://github.com/arximboldi/immer/issues/223>.
#:configure-flags #~(list "-DDISABLE_WERROR=ON")))
(inputs (list boost libgc c-rrb))
(native-inputs (list catch2 doctest fmt pkg-config))
(home-page "https://sinusoid.es/immer")
@ -2455,7 +2453,7 @@ (define fast-float-test-files
(define-public fast-float
(package
(name "fast-float")
(version "3.5.1")
(version "6.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -2464,7 +2462,7 @@ (define-public fast-float
(file-name (git-file-name name version))
(sha256
(base32
"0z3rxxd0pwvw70dbnv63rm67biw829vdqf50y16isxm6g3sbrz8g"))))
"1xf4gbllha760cr0ri53zsja46dypj45lj070ijb5f78xavfd8f8"))))
(build-system cmake-build-system)
(arguments
(list
@ -2480,9 +2478,7 @@ (define-public fast-float
(("if\\(NOT supplemental_test_files_POPULATED.*")
(string-append
"set(supplemental_test_files_BINARY_DIR "
(search-input-directory (or native-inputs inputs)
"data")
")\nif(0)\n"))))))))
#$fast-float-test-files ")\nif(0)\n"))))))))
(native-inputs (list doctest fast-float-test-files))
(home-page "https://github.com/fastfloat/fast_float")
(synopsis "Floating point number parser for C++")
@ -2708,6 +2704,37 @@ (define-public safeint
64-bit integers.")
(license license:expat)))
(define-public wide-integer
(let ((commit "22b8428746248e682d5276f8e8b7fb52af73ea47")
(revision "1314")) ; commit count
(package
(name "wide-integer")
(version (git-version "0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ckormanyos/wide-integer")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0bhjnbdcphv5kddddh8kpwjpjix23m12vmfsz0r6wjc5d27md33z"))
(modules '((guix build utils)))
(snippet #~(substitute* "CMakeLists.txt"
(("WideIntegerTargets") "wide-integer-targets")
(("WideIntegerConfig") "wide-integer-config")
(("WideInteger") "wide-integer")))))
(build-system cmake-build-system)
(native-inputs (list boost))
(home-page "https://github.com/ckormanyos/wide-integer")
(synopsis "C++ template for arbitrary-precision integers")
(description "This package implements a generic template for extended
width signed and unsigned integral types. Up to 63 limbs of any built-in
integer type are supported, and can be used to build powers of two like
int128_t, uint256_t, but also somewhat esoteric types such as int24_t,
uint80_t, or uint1536_t. The provided types can be used in much the same
way as basic integer types.")
(license license:boost1.0))))
(define-public wdl
;; No tag is available.
(let ((commit "da86a62d11e46e4ecd8b16f9775cb5188340a0e2")

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

1714
gnu/packages/crates-tls.scm Normal file

File diff suppressed because it is too large Load diff

4163
gnu/packages/crates-vcs.scm Normal file

File diff suppressed because it is too large Load diff

5654
gnu/packages/crates-web.scm Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -745,7 +745,9 @@ (define* (cross-gcc-toolchain/implementation target
"Returns PACKAGE that contains a cross-compilation tool chain for TARGET
with XBINUTILS, XGCC and LIBC (if exists for TARGET)."
(package
(name (string-append (package-name xgcc) "-toolchain"))
;; Using PACKAGE-NAME of XGCC is avoided here as there are platforms that
;; still need a toolchain but don't have a libc (e.g. or1k-elf).
(name (string-append "gcc-cross-" target "-toolchain"))
(version (package-version xgcc))
(source #f)
(build-system trivial-build-system)

View file

@ -38,5 +38,8 @@ (define-public gcc-cross-avr-toolchain
(define-public gcc-cross-i686-w64-mingw32-toolchain
(cross-gcc-toolchain "i686-w64-mingw32"))
(define-public gcc-cross-or1k-elf-toolchain
(cross-gcc-toolchain "or1k-elf"))
(define-public gcc-cross-x86_64-w64-mingw32-toolchain
(cross-gcc-toolchain "x86_64-w64-mingw32"))

View file

@ -53,6 +53,7 @@ (define-module (gnu packages crypto)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages crates-crypto)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages cryptsetup)
#:use-module (gnu packages curl)
@ -60,6 +61,7 @@ (define-module (gnu packages crypto)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages image)
#:use-module (gnu packages kerberos)

View file

@ -49,6 +49,7 @@ (define-module (gnu packages curl)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages guile)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages logging)
@ -421,7 +422,7 @@ (define-public curlie
(define-public trurl
(package
(name "trurl")
(version "0.8")
(version "0.9")
(source
(origin
(method git-fetch)
@ -430,7 +431,7 @@ (define-public trurl
(commit (string-append name "-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "19zdpjp01n7s7zgixq3irqfnx66dmqf8zyp0dlb6y7ga673lqwi8"))))
(base32 "10gsl0fdpybfcffmgf3qww7cpw3ifczl601042a2mqmwwrlx5zj7"))))
(build-system gnu-build-system)
(arguments
(list

View file

@ -46,7 +46,7 @@
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021, 2024 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz>
;;; Copyright © 2021 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
@ -107,6 +107,7 @@ (define-module (gnu packages databases)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages golang-web)
#:use-module (gnu packages gperf)
@ -189,6 +190,39 @@ (define-module (gnu packages databases)
#:use-module (srfi srfi-26)
#:use-module (ice-9 match))
(define-public duckdb
(package
(name "duckdb")
(version "0.9.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/duckdb/duckdb")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0dbsxyiz7c8sxflbfj87qv0b2s69zk802vsk5h00ra8w8fcbqlj0"))
(modules '((guix build utils)))
(snippet
#~(begin
;; There is no git checkout from which to read the version tag.
(substitute* "CMakeLists.txt"
(("set\\(DUCKDB_VERSION \"[^\"]*\"")
(string-append "set(DUCKDB_VERSION \"v" #$version "-dev0\"")))))))
(build-system cmake-build-system)
(home-page "https://duckdb.org")
(synopsis "In-process SQL OLAP database management system")
(description "CLI and C/C++ source libraries for DuckDB, a relational
(table-oriented) @acronym{DBMS, Database Management System} that supports
@acronym{SQL, Structured Query Language}, contains a columnar-vectorized query
execution engine, and provides transactional @acronym{ACID, Atomicity
Consistency Isolation and Durability} guarantees via bulk-optimized
@acronym{MVCC, Multi-Version Concurrency Control}. Data can be stored in
persistent, single-file databases with support for secondary indexes.")
(license license:expat)))
(define-public ephemeralpg
(package
(name "ephemeralpg")
@ -1446,6 +1480,56 @@ (define-public timescaledb
(partitioning key), as well as full SQL support.")
(license license:asl2.0)))
(define-public pgvector
(package
(name "pgvector")
(version "0.6.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pgvector/pgvector")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"19zcjrlmyj7gfbn8prh014yq50iy4dg97pirsm7idxsr829vwyc5"))))
(build-system gnu-build-system)
(arguments
(list
;; Do not use -march=native
#:make-flags
'(list "OPTFLAGS=")
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(replace 'install
(lambda _
(let ((extension (string-append #$output "/share/extension"))
(lib (string-append #$output "/lib"))
(headers (string-append #$output "/include/server/extension/vector")))
(for-each mkdir-p (list extension lib headers))
(install-file "vector.so" lib)
(chmod (string-append lib "/vector.so") #o755)
(install-file "vector.control" extension)
(for-each (lambda (file)
(install-file file extension))
(find-files "sql" "\\.sql$"))
(install-file "src/vector.h" headers)))))))
(inputs (list postgresql))
(home-page "https://github.com/pgvector/pgvector")
(synopsis "Vector similarity search for Postgres")
(description
"This package provides a vector similarity search extension for Postgres.
Store your vectors with the rest of your data. It supports:
@itemize
@item exact and approximate nearest neighbor search;
@item L2 distance, inner product, and cosine distance;
@item any language with a Postgres client.
@end itemize
")
(license (license:x11-style "file://COPYRIGHT"))))
(define-public pgloader
(package
(name "pgloader")
@ -3348,6 +3432,10 @@ (define-public go-gopkg-in-mgo-v2
(arguments
'(#:tests? #f ; Tests try to use a running mongodb server.
#:import-path "gopkg.in/mgo.v2"))
(propagated-inputs
(list go-gopkg.in-tomb.v2))
(inputs
(list cyrus-sasl))
(native-inputs
(list go-gopkg-in-check-v1))
(home-page "https://gopkg.in/mgo.v2")
@ -3792,7 +3880,7 @@ (define-public python-pickleshare
(define-public python-apsw
(package
(name "python-apsw")
(version "3.42.0.1")
(version "3.45.1.0")
;; The compressed release has fetching functionality disabled.
(source
(origin
@ -3802,11 +3890,11 @@ (define-public python-apsw
version "/apsw-" version ".zip"))
(sha256
(base32
"0dr7zymn45x2793cilr709rnwn9g1c4n4vzln57y2lhj7420ykic"))))
"1vfrzb414pbh5k0cgcqkp039jvla2galapn4a551zgh8xi70bnrp"))))
(build-system pyproject-build-system)
(native-inputs
(list python-cython unzip))
(inputs (list sqlite-next)) ;SQLite 3.42 required.
(list unzip))
(inputs (list sqlite-next)) ;SQLite 3.45.1 required.
(arguments
(list
#:phases
@ -4423,7 +4511,7 @@ (define-public python-pypika
(define-public apache-arrow
(package
(name "apache-arrow")
(version "14.0.0")
(version "14.0.2")
(source
(origin
(method git-fetch)
@ -4433,7 +4521,7 @@ (define-public apache-arrow
(file-name (git-file-name name version))
(sha256
(base32
"08x01jcibmx03g9p0sjikp3dyynw6is6gyn0m3cy1gwkpkwk2ad2"))))
"1idw58vs8r6g6xy2qkhccgc79hwx4r5rr4bhd6ilxx56fwq9hkn2"))))
(build-system cmake-build-system)
(arguments
(list

View file

@ -2,6 +2,7 @@
;;; Copyright © 2018, 2020-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -24,6 +25,7 @@ (define-module (gnu packages debian)
#:use-module (guix git-download)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (gnu packages autotools)
@ -146,6 +148,29 @@ (define-public debian-ports-archive-keyring
;; "The keys in the keyrings don't fall under any copyright."
(license license:public-domain)))
(define-public trisquel-keyring
(package
(name "trisquel-keyring")
(version "2022.10.19")
(source (origin
(method url-fetch)
(uri (string-append
"http://archive.trisquel.info/trisquel/"
"pool/main/t/trisquel-keyring/trisquel-keyring_"
version ".tar.gz"))
(sha256
(base32
"1qkqm3wb945i2izm47xni21hi3ad807bvl106r2mnwdxnjs4ij08"))))
(build-system copy-build-system)
(arguments
'(#:install-plan '(("keyrings/trisquel-archive-keyring.gpg"
"share/keyrings/"))))
(home-page "http://archive.trisquel.info/trisquel/pool/main/t/trisquel-keyring")
(synopsis "GnuPG archive keys of the Trisquel archive")
(description "The Trisquel distribution signs its packages. This package
contains the archive keys used for that.")
(license license:gpl2+))) ;; see debian/copyright
(define-public ubuntu-keyring
(package
(name "ubuntu-keyring")
@ -208,6 +233,7 @@ (define-public debootstrap
(add-after 'unpack 'patch-source
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((debian #$(this-package-input "debian-archive-keyring"))
(trisquel #$(this-package-input "trisquel-keyring"))
(ubuntu #$(this-package-input "ubuntu-keyring")))
(substitute* "Makefile"
(("/usr") ""))
@ -220,6 +246,11 @@ (define-public debootstrap
(("/usr") debian))
(substitute* "scripts/gutsy"
(("/usr") ubuntu))
(substitute* "scripts/robur"
(("/usr/share/keyrings/trisquel-archive-keyring.gpg")
(string-append
trisquel
"/share/keyrings/trisquel-archive-keyring.gpg")))
(substitute* "debootstrap"
(("=/usr") (string-append "=" #$output))
(("/usr/bin/dpkg") (search-input-file inputs "/bin/dpkg")))
@ -227,6 +258,8 @@ (define-public debootstrap
(substitute* (find-files "scripts")
(("keyring.*(debian-archive-keyring.gpg)"_ keyring)
(string-append "keyring " debian "/share/keyrings/" keyring))
(("keyring.*(trisquel-archive-keyring.gpg)" _ keyring)
(string-append "keyring " trisquel "/share/keyrings/" keyring))
(("keyring.*(ubuntu-archive-keyring.gpg)" _ keyring)
(string-append "keyring " ubuntu "/share/keyrings/" keyring)))
;; Ensure PATH works both in guix and within the debian chroot
@ -251,11 +284,14 @@ (define-public debootstrap
#:tests? #f)) ; no tests
(inputs
(list debian-archive-keyring
trisquel-keyring
ubuntu-keyring
bash-minimal
dpkg
tzdata
;; Needed by dpkg-deb in extract_dpkg_deb_data for at least
;; Trisquel 11 (aramo).
zstd
;; Called at run-time from various places, needs to be in PATH.
gnupg
wget))

View file

@ -50,6 +50,7 @@ (define-module (gnu packages debug)
#:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages flex)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gdb)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
@ -59,6 +60,7 @@ (define-module (gnu packages debug)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages ninja)
#:use-module (gnu packages perl)
@ -459,6 +461,59 @@ (define-public qemu-for-american-fuzzy-lop
;; Several tests fail on MIPS.
(supported-systems (delete "mips64el-linux" %supported-systems))))))
(define-public aflplusplus
(package
(inherit american-fuzzy-lop)
(name "aflplusplus")
(version "4.09c")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/AFLplusplus/AFLplusplus")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"12bplpd8cifla6m9l130fd22ggzkhd1w5s1aifw1idpy3njhj129"))))
(arguments
(substitute-keyword-arguments (package-arguments american-fuzzy-lop)
((#:make-flags _ ''())
#~(list (string-append "PREFIX=" #$output)
(string-append "DOC_PATH=" #$output "/share/doc/"
#$(package-name this-package) "-"
#$(package-version this-package))
(string-append "CC=" #$(cc-for-target))))
((#:phases phases '%standard-phases)
#~(modify-phases #$phases
;; For GCC plugins.
(add-after 'unpack 'patch-gcc-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/afl-cc.c"
(("alt_cc = \"gcc\";")
(format #f "alt_cc = \"~a\";"
(search-input-file inputs "bin/gcc")))
(("alt_cxx = \"g\\+\\+\";")
(format #f "alt_cxx = \"~a\";"
(search-input-file inputs "bin/g++"))))))))))
;; According to the Dockerfile, GCC 12 is producing compile errors for some
;; targets, so explicitly use GCC 11 here.
(inputs (list gcc-11 gmp python qemu))
(native-inputs (list gcc-11))
(home-page "https://aflplus.plus/")
(description
"AFLplusplus is a security-oriented fuzzer that employs a novel type of
compile-time instrumentation and genetic algorithms to automatically discover
clean, interesting test cases that trigger new internal states in the targeted
binary. This substantially improves the functional coverage for the fuzzed
code. The compact synthesized corpora produced by the tool are also useful for
seeding other, more labor- or resource-intensive testing regimes down the road.
It is a fork of American Fuzzy Lop fuzzer and features:
@itemize
@item A more recent qemu version.
@item More algorithms like collision-free coverage, enhanced laf-intel &
redqueen, AFLfast++ power schedules, MOpt mutators, unicorn_mode, etc.
@end itemize")))
(define-public stress-make
(let ((commit "97815bed8060de33952475b3498767c91f59ffd9")
(revision "2")) ;No official source distribution

View file

@ -74,7 +74,7 @@ (define-module (gnu packages diffoscope)
(define-public diffoscope
(package
(name "diffoscope")
(version "253")
(version "258")
(source
(origin
(method git-fetch)
@ -83,7 +83,7 @@ (define-public diffoscope
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1nvq0lv246rah0ryb2qd20yf3gfy0iwfi3335rg9c3gpz0ha4wnb"))))
(base32 "1wppshi18lyrgxxi8j06ij0qi31zdgqwjj6bycsyvipkc1cj6xhp"))))
(build-system python-build-system)
(arguments
(list
@ -305,7 +305,7 @@ (define-public reprotest
(define-public trydiffoscope
(package
(name "trydiffoscope")
(version "67.0.1")
(version "67.0.6")
(source
(origin
(method git-fetch)
@ -315,7 +315,7 @@ (define-public trydiffoscope
(file-name (git-file-name name version))
(sha256
(base32
"03b66cjii7l2yiwffj6ym6mycd5drx7prfp4j2550281pias6mjh"))))
"0jzxgqraf727fvjcc9bgwz8zymjiix07x54xzqpvm52cv681nd9j"))))
(arguments
`(#:phases
(modify-phases %standard-phases

View file

@ -69,6 +69,7 @@ (define-module (gnu packages disk)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages graphics)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)

View file

@ -5,8 +5,8 @@
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2019, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
;;; Copyright © 2021-2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 ( <paren@disroot.org>
;;; Copyright © 2022 Esther Flashner <esther@flashner.co.il>
;;;
@ -136,8 +136,7 @@ (define-public gdmd
(string-append "my $gdc_dir = \""
(dirname (search-input-file inputs "/bin/gdc"))
"\";\n"))))))))
(inputs
(list gdc-11 perl))
(inputs (list gdc perl))
(home-page "https://github.com/D-Programming-GDC/gdmd")
(synopsis "DMD-like wrapper for GDC")
(description "This package provides a DMD-like wrapper for the
@ -192,8 +191,8 @@ (define ldc-bootstrap
("libedit" ,libedit)
("zlib" ,zlib)))
(native-inputs
`(("lld-wrapper" ,(make-lld-wrapper lld-14 #:lld-as-ld? #t))
("llvm" ,llvm-14)
`(("lld-wrapper" ,(make-lld-wrapper lld-15 #:lld-as-ld? #t))
("llvm" ,llvm-15)
("ldc" ,gdmd)
("ninja" ,ninja)
("python-wrapper" ,python-wrapper)
@ -356,9 +355,177 @@ (define (gnu-triplet->clang-arch system)
(append (delete "llvm"
(alist-replace "ldc" (list ldc-bootstrap)
(package-native-inputs ldc-bootstrap)))
`(("clang" ,clang-14) ;propagates llvm and clang-runtime
`(("clang" ,clang-15) ;propagates llvm and clang-runtime
("python-lit" ,python-lit))))))
;;; Bootstrap version of phobos that is built with GDC, using GDC's standard
;;; library.
(define dmd-bootstrap
(package
;; This package is purposefully named just "dmd" and not "dmd-bootstrap",
;; as the final dmd package rewrites references from this one to itself,
;; and their names must have the same length to avoid corrupting the
;; binary.
(name "dmd")
(version "2.106.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dlang/dmd")
(commit (string-append "v" version))))
(file-name (git-file-name "dmd" version))
(sha256
(base32
"1bq4jws1vns2jjzfz7biyngrx9y5pvvgklymhrvb5kvbzky1ldmy"))))
(build-system gnu-build-system)
(arguments
(list
#:disallowed-references (list (gexp-input (canonical-package gcc)
"lib"))
;; Disable tests, as gdmd cannot cope with some arguments used such as
;; '-conf'.
#:tests? #f
#:test-target "test"
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
;; XXX: Proceed despite conflicts from symbols provided by both
;; the source built and GDC.
"DFLAGS=-L--allow-multiple-definition"
"ENABLE_RELEASE=1"
(string-append "HOST_CXX=" #$(cxx-for-target))
"HOST_DMD=gdmd"
(string-append "INSTALL_DIR=" #$output)
;; Do not build the shared libphobos2.so library, to avoid
;; retaining a reference to gcc:lib.
"SHARED=0"
(string-append "SYSCONFDIR=" #$output "/etc")
"VERBOSE=1"
"-f" "posix.mak")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'copy-phobos-source-and-chdir
;; Start with building phobos, which in turns will automatically
;; build druntime and dmd. A minimal dmd command is still
;; required to do so, which is why we need dmd-bootstrap-0.
(lambda _
(symlink "." "dmd") ;to please the build system expected layout
(copy-recursively
#$(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dlang/phobos")
(commit (string-append "v" version))))
(file-name (git-file-name "phobos" version))
(sha256
(base32
"1yw7nb5d78cx9m7sfibv7rfc7wj3w0dw9mfk3d269qpfpnwzs4n9")))
"phobos")
(chdir "phobos")))
(add-after 'copy-phobos-source-and-chdir 'adjust-phobos-install-dirs
(lambda _
(substitute* "posix.mak"
;; Install to lib directory, not to e.g. 'linux/lib64'.
(("\\$\\(INSTALL_DIR)/\\$\\(OS)/\\$\\(lib_dir)")
(string-append #$output "/lib"))
;; Do not install license file, already done by the gnu build
;; system.
((".*\\$\\(INSTALL_DIR)/phobos-LICENSE.txt.*") ""))))
(delete 'configure)
(add-after 'install 'install-druntime
(lambda args
(chdir "../druntime")
(apply (assoc-ref %standard-phases 'install) args)
(chdir "..")))
(add-after 'install-druntime 'install-includes
(lambda _
;; Normalize the include files prefix to include/dmd.
(let ((include-dir (string-append #$output "/include/dmd")))
(mkdir-p include-dir)
(rename-file (string-append #$output "/src/phobos")
(string-append include-dir))
(copy-recursively "druntime/import" include-dir))
(delete-file-recursively (string-append #$output "/src"))))
(add-after 'install-druntime 'install-dmd
(assoc-ref %standard-phases 'install))
(add-after 'install-license-files 'refine-install-layout
(lambda _
(let* ((docdir (string-append #$output "/share/doc/"
(strip-store-file-name #$output)))
;; The dmd binary gets installed to
;; e.g. /linux/bin64/dmd.
(dmd (car (find-files #$output "^dmd$")))
(dmd.conf (car (find-files #$output "^dmd.conf$")))
(os-dir (dirname (dirname dmd))))
;; Move samples from root to the doc directory.
(rename-file (string-append #$output "/samples")
(string-append docdir "/samples"))
;; Remove duplicate license file.
(delete-file (string-append #$output
"/dmd-boostlicense.txt"))
;; Move dmd binary and dmd.conf.
(install-file dmd (string-append #$output "/bin"))
(install-file dmd.conf (string-append #$output "/etc"))
(delete-file-recursively os-dir))))
(add-after 'refine-install-layout 'patch-dmd.conf
(lambda* (#:key outputs #:allow-other-keys)
(substitute* (search-input-file outputs "etc/dmd.conf")
(("lib(32|64)")
"lib")
(("\\.\\./src/(phobos|druntime/import)")
"include/dmd")))))))
(native-inputs (list gdmd which))
(home-page "https://github.com/dlang/dmd")
(synopsis "Reference D Programming Language compiler")
(description "@acronym{DMD, Digital Mars D compiler} is the reference
compiler for the D programming language.")
;; As reported by upstream:
;; https://wiki.dlang.org/Compilers#Comparison
(supported-systems '("i686-linux" "x86_64-linux"))
(license license:boost1.0)))
;;; Second bootstrap of DMD, built using dmd-bootstrap, with its shared
;;; libraries preserved.
(define-public dmd
(package
(inherit dmd-bootstrap)
(arguments
(substitute-keyword-arguments
(strip-keyword-arguments
'(#:tests?) ;reinstate tests
(package-arguments dmd-bootstrap))
((#:disallowed-references _ ''())
(list dmd-bootstrap))
((#:modules _ ''())
'((guix build gnu-build-system)
(guix build utils)
(srfi srfi-1))) ;for fold
((#:make-flags flags ''())
#~(fold delete #$flags '("DFLAGS=-L--allow-multiple-definition"
"HOST_DMD=gdmd"
"SHARED=0")))
((#:phases phases '%standard-phases)
#~(modify-phases #$phases
(add-after 'patch-dmd.conf 'rewrite-references-to-bootstrap
;; DMD keeps references to include files used to build a
;; binary. Rewrite those of dmd-bootstrap to itself, to reduce
;; its closure size.
(lambda* (#:key native-inputs inputs outputs
#:allow-other-keys)
(let ((dmd (search-input-file outputs "bin/dmd"))
(dmd-bootstrap (dirname
(dirname
(search-input-file
(or native-inputs inputs)
"bin/dmd")))))
;; XXX: Use sed, as replace-store-references wouldn't
;; replace the references, while substitute* throws an
;; error.
(invoke "sed" "-i"
(format #f "s,~a,~a,g" dmd-bootstrap #$output)
dmd))))))))
(native-inputs (modify-inputs (package-native-inputs dmd-bootstrap)
(replace "gdmd" dmd-bootstrap)))))
(define-public dub
(package
(name "dub")
@ -453,3 +620,35 @@ (define-public gtkd
(synopsis "D binding and OO wrapper of GTK+")
(description "This package provides bindings to GTK+ for D.")
(license license:lgpl2.1)))
(define-public d-demangler
(package
(name "d-demangler")
(version "0.0.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/lievenhey/d_demangler")
(commit (string-append "version-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"13lbbxlaa1mffjs57xchl1g6kyr5lxi0z5x7snyvym0knslxwx2g"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ;no test suite
#:make-flags #~(list (string-append "CC=" #$(cc-for-target))
"d_demangle")
#:phases #~(modify-phases %standard-phases
(delete 'configure)
(replace 'install
(lambda _
(install-file "libd_demangle.so"
(string-append #$output "/lib")))))))
(native-inputs (list dmd))
(home-page "https://github.com/lievenhey/d_demangler")
(synopsis "Utility to demangle D symbols")
(description "@command{d_demangle} is a small utility that can be used to
demangle D symbols. A shared library is also provided.")
(license license:gpl3+)))

View file

@ -21,6 +21,7 @@
;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2024 John Kehayias <john.kehayias@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -293,7 +294,7 @@ (define-public dnssec-trigger
(define-public dnsmasq
(package
(name "dnsmasq")
(version "2.89")
(version "2.90")
(source (origin
(method url-fetch)
(uri (string-append
@ -301,7 +302,7 @@ (define-public dnsmasq
version ".tar.xz"))
(sha256
(base32
"02dnxfnman38armn3sw56w80f9wb2vgm3qgm15crs2yg8q1j7g82"))))
"1r09l537vi867hlpv6vl7nvqhscvq1kf04m896bfrgrpv2dk0l4f"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config))
@ -336,23 +337,23 @@ (define-public isc-bind
;; When updating, check whether isc-dhcp's bundled copy should be as well.
;; The BIND release notes are available here:
;; https://www.isc.org/bind/
(version "9.16.38")
(version "9.19.21")
(source
(origin
(method url-fetch)
(uri (string-append "https://ftp.isc.org/isc/bind9/" version
"/bind-" version ".tar.xz"))
(sha256
(base32 "03y52iyc2g63lkk9x2vaizpr0jv27g1z6mcxnjw8m8l4kaflrx4d"))
(patches
(search-patches "bind-re-add-attr-constructor-priority.patch"))))
(base32 "133f1aq8acaz9z03cl0gcrj4pq0hqm6c3sm4hz67d37phndsjs1b"))))
(build-system gnu-build-system)
(outputs `("out" "utils"))
(inputs
;; It would be nice to add GeoIP and gssapi once there are packages.
(list libcap
liburcu
libuv
libxml2
`(,nghttp2 "lib")
openssl
p11-kit
python
@ -635,14 +636,14 @@ (define-public rbldnsd
(define-public unbound
(package
(name "unbound")
(version "1.17.1")
(version "1.19.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.unbound.net/downloads/unbound-"
version ".tar.gz"))
(sha256
(base32 "1x55f5aqlzynpy24ryf1rsmdy8m8iyi19n7k03k889g1rk78ah7f"))))
(base32 "1ad34jxprygjp7g84q1bgmvcc114f2mgyhfwk9rs0inq7mpmf7dw"))))
(build-system gnu-build-system)
(outputs '("out" "python"))
(native-inputs
@ -844,7 +845,7 @@ (define-public yadifa
(define-public knot
(package
(name "knot")
(version "3.3.2")
(version "3.3.4")
(source
(origin
(method git-fetch)
@ -853,7 +854,7 @@ (define-public knot
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "17zdpk6wf0cf90dp4cls35si8ywjsqjrmgssw2gmb1y0zfyp19vq"))
(base32 "0w7drq0pj94d43qn9wmzxab34mjhxj9x84rixbswc270ywh6d9pr"))
(modules '((guix build utils)))
(snippet
'(begin
@ -983,14 +984,14 @@ (define (move source target file)
(define-public knot-resolver
(package
(name "knot-resolver")
(version "5.5.3")
(version "5.7.1")
(source (origin
(method url-fetch)
(uri (string-append "https://secure.nic.cz/files/knot-resolver/"
"knot-resolver-" version ".tar.xz"))
(sha256
(base32
"0bgdbx66dsfik3sdqi4g2imddalqc1p41n444xk7s8vxig35g3x3"))))
"18n3jh17d22xmzpg8syw2dm85vv7jchdc4hzk5x78lqxqqav856s"))))
(build-system meson-build-system)
(outputs '("out" "doc"))
(arguments

View file

@ -42,6 +42,7 @@ (define-module (gnu packages docker)
#:use-module (gnu packages compression)
#:use-module (gnu packages glib)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages linux)
#:use-module (gnu packages networking)
#:use-module (gnu packages pkg-config)

View file

@ -47,7 +47,9 @@ (define-module (gnu packages education)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages golang-xyz)
#:use-module (gnu packages gtk)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages image)
@ -1161,3 +1163,37 @@ (define-public mazo
(description "Mazo is a learning application that helps you memorize
simple concepts using multimedia flash cards and spaced reviews.")
(license license:public-domain)))
(define-public tagainijisho
(package
(name "tagainijisho")
(version "1.2.2")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/Gnurou/tagainijisho/releases/download/"
version
"/tagainijisho-" version ".tar.gz"))
(sha256
(base32
"00whfcnpn42asxmafcfbcmpwfwyv40qaqdk28psa1vp0lainmyhh"))))
(build-system qt-build-system)
(arguments
(list #:tests? #f)) ;no test target
(native-inputs
(list qttools-5))
(synopsis "Japanese dictionary and learning assistant")
(description
"Tagaini Jisho is a Japanese dictionary and kanji lookup tool. It aims
at becoming your Japanese study assistant. It allows you to quickly search
for entries and mark those that you wish to study, along with tags and
personal notes. It also let you train entries you are studying and follows
your progression in remembering them. Finally, it makes it easy to review
entries you did not remember by listing them on screen or printing them on
a small booklet.
Tagaini Jisho also features complete stroke order animations for more than
6000 kanji.")
(home-page "https://www.tagaini.net")
(license license:gpl3+)))

View file

@ -7,6 +7,8 @@
;;; Copyright © 2018 Nikita <nikita@n0.is>
;;; Copyright © 2021 Oskar Köök <oskar@maatriks.ee>
;;; Copyright © 2021 Cees de Groot <cg@evrl.com>
;;; Copyright © 2024 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2024 Ivan Sokolov <ivan-p-sokolov@ya.ru>
;;;
;;; This file is part of GNU Guix.
;;;
@ -101,12 +103,26 @@ (define-public elixir
(add-after 'install 'wrap-programs
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(programs '("elixir" "elixirc" "iex" "mix")))
(programs '("elixir" "elixirc" "iex")))
;; mix can be sourced as an elixir script by other elixir
;; program, for example `iex -S mix`, so we should not wrap
;; mix into shell script.
(substitute* (string-append out "/bin/mix")
(("Mix.start\\(\\)")
(format #f "\
~~w[GUIX_ELIXIR_LIBS ERL_LIBS]
|> Enum.map(&System.get_env/1)
|> Enum.reject(&is_nil/1)
|> Enum.join(\":\")
|> case do \"\" -> :ok; erl_libs -> System.put_env(\"ERL_LIBS\", erl_libs) end
System.put_env(\"MIX_REBAR3\", System.get_env(\"MIX_REBAR3\", \"~a\"))
Mix.start()"
(search-input-file inputs "/bin/rebar3"))))
(for-each (lambda (program)
(wrap-program (string-append out "/bin/" program)
'("ERL_LIBS" prefix ("${GUIX_ELIXIR_LIBS}"))))
programs)))))))
(inputs (list erlang git))
(inputs (list erlang rebar3 git))
(native-search-paths
(list (search-path-specification
(variable "GUIX_ELIXIR_LIBS")

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017, 2018, 2019, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2018, 2019, 2023, 2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
@ -983,14 +983,16 @@ (define-public propeller-load
"0w0dff3s7wv2d9m78a4jhckiik58q38wx6wpbba5hzbs4yxz35ck"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests
#:make-flags
(list "OS=linux"
(string-append "TARGET=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(list
#:tests? #false ;no tests
#:parallel-build? #false ;not supported
#:make-flags
#~(list "OS=linux"
(string-append "TARGET=" #$output))
#:phases
'(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _ (chdir "loader") #t))
(lambda _ (chdir "loader")))
(delete 'configure))))
(native-inputs
(list openspin (make-propeller-toolchain)))
@ -1637,7 +1639,7 @@ (define-public ucsim
(define-public sdcc
(package
(name "sdcc")
(version "4.3.0")
(version "4.4.0")
(source (origin
(method url-fetch)
(uri (string-append
@ -1645,7 +1647,7 @@ (define-public sdcc
"/" version "/sdcc-src-" version ".tar.bz2"))
(sha256
(base32
"1kckr20jqa4rp4qcw38lwagmw3yfm3z0xb4kygd0608847qc0vra"))
"0xbaj3vx5cp3na1kmyhy4jvhcqwrg648scjbykgq0xmibqb1535f"))
(modules '((guix build utils)))
(snippet
#~(begin

View file

@ -14,7 +14,7 @@
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Christopher Howard <christopher@librehacker.com>
;;; Copyright © 2021 Felipe Balbi <balbi@kernel.org>
;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2021, 2024 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2023 c4droid <c4droid@foxmail.com>
@ -351,7 +351,7 @@ (define-public dolphin-emu
libxi
libxrandr
lzo
mbedtls-apache
mbedtls-lts
mesa
miniupnpc
openal
@ -791,7 +791,7 @@ (define-public mgba
(define-public sameboy
(package
(name "sameboy")
(version "0.15.8")
(version "0.16.2")
(source
(origin
(method git-fetch)
@ -800,7 +800,7 @@ (define-public sameboy
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "11qz5lamwxgvlh4dc95xd4m8hrypjj3bvha51zg9l454hxlvw4j8"))))
(base32 "1ckx5dm57h7ncvfqqqb2mdl5dcmhkardcn78zv965h6w1yxg0ii8"))))
(build-system gnu-build-system)
(native-inputs
(list rgbds pkg-config))
@ -1433,7 +1433,7 @@ (define-public libretro-lowresnx
(define-public retroarch
(package
(name "retroarch")
(version "1.16.0.3")
(version "1.17.0")
(source
(origin
(method git-fetch)
@ -1442,7 +1442,7 @@ (define-public retroarch
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1nvvd78hx1s73nif7g02pqms29b9v072mxnld0vmsh78236qngq5"))))
(base32 "1mf511wh7kpj29vv7rgngamvmfs151n8j4dls7jbqasdj5hik3zi"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests
@ -1490,7 +1490,7 @@ (define-public retroarch
libxml2
libxrandr
libxv
mbedtls-apache
mbedtls-lts
mesa
openal
openssl

View file

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015-2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2016, 2018, 2020-2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2018, 2020-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2016-2019, 2021, 2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018 Theodoros Foradis <theodoros@foradis.org>
@ -1098,7 +1098,7 @@ (define-public inspekt3d
(define-public kicad
(package
(name "kicad")
(version "7.0.10")
(version "7.0.11")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1106,7 +1106,7 @@ (define-public kicad
(commit version)))
(sha256
(base32
"0rmlkgzgvpd70jzspyrrb2f618fimw52qrhpsp777flmpyh91wly"))
"1qn7w6pb1n5gx73z1zqbv140chh4307y8764z7xkdvric9i48qj4"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
@ -1206,7 +1206,7 @@ (define-public kicad-doc
(file-name (git-file-name name version))
(sha256
(base32
"0lc7d6hn8ya8m51kjnf59v41pbp03l5ncxir75s21pb92l26xgnv"))))
"10iwp35xywdz15a83vialzfd46rjw6mlz174dxawm2rw4ws2n7j4"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DBUILD_FORMATS=html")
@ -1240,7 +1240,7 @@ (define-public kicad-symbols
(file-name (git-file-name name version))
(sha256
(base32
"0nlgmxf9z1vf4g350dfkxql1dawgmw275wqxkgszsfxmhdfpmi9v"))))
"057zmhf4h3p3p4y6jqxch9cj1wqf129k6kmvx2gshb9lgda0kjr8"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; no tests exist
@ -1269,7 +1269,7 @@ (define-public kicad-footprints
(file-name (git-file-name name version))
(sha256
(base32
"1az6fzh1lma71mj12bc4bblnmzjayrxhkb8w9rjvlhvvgv33cdmy"))))
"1r9v8v41n0yrgwsqaksskmdgb9vyw1sb92xh81bwrv2ag3p5vdg7"))))
(synopsis "Official KiCad footprint libraries")
(description "This package contains the official KiCad footprint libraries.")))
@ -1286,7 +1286,7 @@ (define-public kicad-packages3d
(file-name (git-file-name name version))
(sha256
(base32
"0xzyi4mgyifwc6dppdzh6jq294mkj0a71cwkqw2ymz1kfbksw626"))))
"0lcy1av7ixg1f7arflk50jllpc1749sfvf3h62hkxsz97wkr97xj"))))
(synopsis "Official KiCad 3D model libraries")
(description "This package contains the official KiCad 3D model libraries.")))
@ -2681,7 +2681,7 @@ (define-public python-pyvisa
(define-public python-scikit-rf
(package
(name "python-scikit-rf")
(version "0.30.0")
(version "0.31.0")
(source (origin
(method git-fetch) ;PyPI misses some files required for tests
(uri (git-reference
@ -2689,7 +2689,7 @@ (define-public python-scikit-rf
(commit (string-append "v" version))))
(sha256
(base32
"1fbws80glrakd08xzhifna831yk0bd8b0cizhfcjkg4km2nyx65c"))
"1cidv2373lwxy26kbzg4slaqvn2gpq67mvijgp0rydfx6mm6a89i"))
(file-name (git-file-name name version))))
(build-system pyproject-build-system)
(propagated-inputs (list python-matplotlib
@ -3272,6 +3272,8 @@ (define-public poke
(guix build utils))
#:configure-flags
#~(list "--disable-static"
(string-append "--with-vimdir=" #$output
"/share/vim/vimfiles/pack/guix/start/poke")
(string-append "--with-lispdir="
(emacs:elpa-directory #$output)))))
(home-page "https://www.gnu.org/software/poke/#documentation")

View file

@ -12,7 +12,8 @@
;;; Copyright © 2021, 2023 Kaelyn Takata <kaelyn.alexi@protonmail.com>
;;; Copyright © 2022 Brian Cully <bjc@spork.org>
;;; Copyright © 2023 Aaron Covrig <aaron.covrig.us@ieee.org>
;;;
;;; Copyright © 2024 Ahmad Draidi <a.r.draidi@redscript.org>
;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
@ -67,11 +68,14 @@ (define-module (gnu packages file-systems)
#:use-module (gnu packages flex)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gawk)
#: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 golang-build)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages golang-crypto)
#:use-module (gnu packages guile)
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages kerberos)
@ -81,6 +85,8 @@ (define-module (gnu packages file-systems)
#:use-module (gnu packages linux)
#:use-module (gnu packages maths)
#:use-module (gnu packages man)
#:use-module (gnu packages m4)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages nfs)
#:use-module (gnu packages onc-rpc)
#:use-module (gnu packages openldap)
@ -105,6 +111,7 @@ (define-module (gnu packages file-systems)
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages version-control)
#:use-module (gnu packages web)
#:use-module (gnu packages xml))
(define-public autofs
@ -581,98 +588,98 @@ (define-public gphotofs
(license license:gpl2+)))
(define-public bcachefs-tools
(let ((commit "1e358401ecdf1963e5799de19ab69111e82e5ebc")
(revision "0"))
(package
(name "bcachefs-tools")
(version (git-version "1.2" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://evilpiepirate.org/git/bcachefs-tools.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0bflgqb3q9jikyyrv6hywv6m1fapzzn874hlhf86pn6abxrlf5fa"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags
#~(list (string-append "VERSION=" #$version) ; v…-nogit otherwise
(string-append "PREFIX=" #$output)
"INITRAMFS_DIR=$(PREFIX)/share/initramfs-tools"
(string-append "CC=" #$(cc-for-target))
(string-append "PKG_CONFIG=" #$(pkg-config-for-target))
;; This will be less of an option in the future, as more
;; code gets rewritten in Rust.
"NO_RUST=better")
#:phases
#~(modify-phases %standard-phases
(delete 'configure) ; no configure script
(replace 'check
;; The test suite is moribund upstream (never been useful),
;; but let's keep running it as a sanity check until then.
(lambda* (#:key tests? make-flags #:allow-other-keys)
(when tests?
;; We must manually build the test_helper first.
(apply invoke "make" "tests" make-flags)
(invoke (string-append
#$(this-package-native-input "python-pytest")
"/bin/pytest") "-k"
;; These fail (invalid argument) on kernels
;; with a previous bcachefs version.
(string-append "not test_format and "
"not test_fsck and "
"not test_list and "
"not test_list_inodes and "
"not test_list_dirent")))))
(add-after 'install 'promote-mount.bcachefs.sh
;; The (optional) mount.bcachefs requires rust:cargo.
;; This shell alternative does the job well enough for now.
(lambda* (#:key inputs #:allow-other-keys)
(define (whence file)
(dirname (search-input-file inputs file)))
(let ((mount (string-append #$output
"/sbin/mount.bcachefs")))
(delete-file mount) ; symlink to bcachefs
(copy-file "mount.bcachefs.sh" mount)
;; WRAP-SCRIPT causes bogus Insufficient arguments errors.
(wrap-program mount
`("PATH" ":" prefix
,(list (getcwd)
(whence "bin/tail")
(whence "bin/awk")
(whence "bin/mount"))))))))))
(native-inputs
(cons* pkg-config
;; For generating documentation with rst2man.
python
python-docutils
;; For tests.
python-pytest
(if (member (%current-system) (package-supported-systems valgrind))
(list valgrind)
'())))
(inputs
(list eudev
keyutils
libaio
libscrypt
libsodium
liburcu
`(,util-linux "lib")
lz4
zlib
`(,zstd "lib")
(package
(name "bcachefs-tools")
(version "1.4.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://evilpiepirate.org/git/bcachefs-tools.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0axwbckqrw1v3v50nzhpkvpyjbjwy3rq5bv23db84x3xia497apq"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags
#~(list (string-append "VERSION=" #$version) ; v…-nogit otherwise
(string-append "PREFIX=" #$output)
"INITRAMFS_DIR=$(PREFIX)/share/initramfs-tools"
"PKGCONFIG_UDEVRULESDIR=$(PREFIX)/lib/udev/rules.d"
(string-append "CC=" #$(cc-for-target))
(string-append "PKG_CONFIG=" #$(pkg-config-for-target))
;; This will be less of an option in the future, as more
;; code gets rewritten in Rust.
"NO_RUST=better")
#:phases
#~(modify-phases %standard-phases
(delete 'configure) ; no configure script
(replace 'check
;; The test suite is moribund upstream (never been useful),
;; but let's keep running it as a sanity check until then.
(lambda* (#:key tests? make-flags #:allow-other-keys)
(when tests?
;; We must manually build the test_helper first.
(apply invoke "make" "tests" make-flags)
(invoke (string-append
#$(this-package-native-input "python-pytest")
"/bin/pytest") "-k"
;; These fail (invalid argument) on kernels
;; with a previous bcachefs version.
(string-append "not test_format and "
"not test_fsck and "
"not test_list and "
"not test_list_inodes and "
"not test_list_dirent")))))
(add-after 'install 'promote-mount.bcachefs.sh
;; The (optional) mount.bcachefs requires rust:cargo.
;; This shell alternative does the job well enough for now.
(lambda* (#:key inputs #:allow-other-keys)
(define (whence file)
(dirname (search-input-file inputs file)))
(let ((mount (string-append #$output
"/sbin/mount.bcachefs")))
(delete-file mount) ; symlink to bcachefs
(copy-file "mount.bcachefs.sh" mount)
;; WRAP-SCRIPT causes bogus Insufficient arguments errors.
(wrap-program mount
`("PATH" ":" prefix
,(list (getcwd)
(whence "bin/tail")
(whence "bin/awk")
(whence "bin/mount"))))))))))
(native-inputs
(cons* pkg-config
;; For generating documentation with rst2man.
python
python-docutils
;; For tests.
python-pytest
(if (member (%current-system) (package-supported-systems valgrind))
(list valgrind)
'())))
(inputs
(list eudev
keyutils
libaio
libscrypt
libsodium
liburcu
`(,util-linux "lib")
lz4
zlib
`(,zstd "lib")
;; Only for mount.bcachefs.sh.
coreutils-minimal
gawk
util-linux))
(home-page "https://bcachefs.org/")
(synopsis "Tools to create and manage bcachefs file systems")
(description
"The bcachefs-tools are command-line utilities for creating, checking,
;; Only for mount.bcachefs.sh.
bash-minimal
coreutils-minimal
gawk
util-linux))
(home-page "https://bcachefs.org/")
(synopsis "Tools to create and manage bcachefs file systems")
(description
"The bcachefs-tools are command-line utilities for creating, checking,
and otherwise managing bcachefs file systems.
Bcachefs is a @acronym{CoW, copy-on-write} file system supporting native
@ -682,7 +689,7 @@ (define (whence file)
In addition, bcachefs provides all the functionality of bcache, a block-layer
caching system, and lets you assign different roles to each device based on its
performance and other characteristics.")
(license license:gpl2+))))
(license license:gpl2+)))
(define-public bcachefs-tools/static
(package
@ -1218,6 +1225,70 @@ (define-public apfs-fuse
(home-page "https://github.com/sgan81/apfs-fuse")
(license license:gpl2+))))
(define-public snapper
(package
(name "snapper")
(version "0.10.7")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/openSUSE/snapper")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0nwmyzjwid1lf29dsr6w72dr781c81xyrjpk5y3scn4r55b5df0h"))
(modules '((guix build utils)))
(snippet
'(begin
(delete-file-recursively "dists")
(delete-file-recursively "zypp-plugin")
(substitute* '("configure.ac" "doc/Makefile.am")
((".*dists.*") "")
((".*zypp-plugin.*") ""))
(substitute* "Makefile.am"
(("zypp-plugin") ""))))))
(build-system gnu-build-system)
(arguments
(list #:phases #~(modify-phases %standard-phases
(add-after 'unpack 'relative-file-locations
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")))
(substitute* (list "scripts/Makefile.am"
"data/Makefile.am")
(("/usr/share")
(string-append out "/share"))
(("/usr/lib")
(string-append out "/lib"))
(("/etc/")
(string-append out "/etc/"))))
(substitute* "client/Makefile.am"
(("/usr/lib")
"@libdir@")))))))
(home-page "https://snapper.io")
(native-inputs
(list glibc-locales autoconf automake libtool pkg-config))
(inputs
(list btrfs-progs
e2fsprogs
`(,util-linux "lib")
linux-pam
dbus
libxml2
json-c
acl
boost
ncurses/tinfo
libxslt
docbook-xsl
gettext-minimal))
(synopsis "Manage Btrfs file system snapshots and allow roll-backs")
(description "This package provides Snapper, a tool that helps with
managing snapshots of Btrfs subvolumes and thin-provisioned LVM volumes. It
can create and compare snapshots, revert differences between them, and
supports automatic snapshots timelines.")
(license license:gpl2)))
(define-public xfstests
;; The last release (1.1.0) is from 2011.
(let ((revision "3")

View file

@ -36,6 +36,7 @@
;;; Copyright © 2023 Skylar Hill <stellarskylark@posteo.net>
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
;;; Copyright © 2023 Attila Lendvai <attila@lendvai.name>
;;; Copyright © 2024 Saku Laesvuori <saku@laesvuori.fi>
;;;
;;; This file is part of GNU Guix.
;;;
@ -1308,7 +1309,7 @@ (define-public keepkey-agent
(define-public kitsas
(package
(name "kitsas")
(version "4.0.3")
(version "5.4.1")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1317,17 +1318,24 @@ (define-public kitsas
(file-name (git-file-name name version))
(sha256
(base32
"0hrbsqqm6v2pmjq17s7i4akjgclz3d051mg02vcykq80xgxvbkgf"))))
"16zkfpl5d9ia202fqg5vrhjqdw0g6wp044ih6n7nz2hbxj9y3m1z"))))
(build-system qt-build-system)
(inputs (list qtbase-5 libzip poppler-qt5 qtsvg-5))
(inputs (list libzip qtsvg qtwebengine qt5compat))
(arguments
(list #:tests? #f ;XXX: some tests fail and others segfault
(list #:tests? #f ; tests do not even build with Qt6 anymore
#:test-target "check"
#:qtbase qtbase ; use Qt6
#:phases
#~(modify-phases %standard-phases
(replace 'configure
(lambda* _
(invoke "qmake" "kitsasproject.pro" "CONFIG+=release")))
;; The tests are not maintained and some don't even build
(add-before 'configure 'disable-broken-tests
(lambda _
(substitute* "kitsasproject.pro"
((" *(unittest|testit).*") "")
(("\\\\") ""))))
(replace 'install
(lambda* _
(install-file "kitsas/kitsas"
@ -2243,7 +2251,7 @@ (define-public python-mt-940
(define-public xmrig
(package
(name "xmrig")
(version "6.20.0")
(version "6.21.0")
(source
(origin
(method git-fetch)
@ -2251,7 +2259,7 @@ (define-public xmrig
(url "https://github.com/xmrig/xmrig")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (base32 "02clipcixn0g4sm3b5r1cxx56ddhjkm8sqnq40jy1zm66ad5zhkj"))
(sha256 (base32 "1nmzgwd2r7ra7g4p0s5b77bgh099hf1kisbv4d946c9yiwbdzqgc"))
(modules '((guix build utils)))
(snippet
;; TODO: Try to use system libraries instead of bundled ones in

View file

@ -1197,81 +1197,51 @@ (define-public arm-trusted-firmware-imx8mq
;; Adding debug symbols causes the size to exceed limits.
#~(delete "DEBUG=1" #$flags)))))))
(define (make-crust-package platform)
(package
(name (string-append "crust-"
(string-replace-substring platform "_" "-")))
(version "0.5")
(source
(origin
(method git-fetch)
(uri (git-reference
;; There are only GitHub generated release snapshots.
(url "https://github.com/crust-firmware/crust")
(commit (string-append "v" version))))
(file-name (git-file-name "crust" version))
(sha256
(base32
"0xgbbhifg3miwd3yp6jq9kp7nqgz5gzy00w95vba45j8jk5vjvvz"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ;no test suite
#:make-flags
(let ((triplet-without-vendor
(and (%current-target-system)
;; TODO: Is there a use case for allowing this?
(not (target-avr?))
(match (string-split (nix-system->gnu-triplet
(%current-target-system)) #\-)
((arch vendor os ..1)
(string-join `(,arch ,@os) "-"))))))
#~(list "CROSS_COMPILE=or1k-elf-"
"V=1"
#$@(if triplet-without-vendor
;; We are cross-compiling the tools, intended to be
;; executable for the target system.
(list (string-append "HOSTAR=" triplet-without-vendor
"-ar")
(string-append "HOSTCC=" triplet-without-vendor
"-gcc"))
;; Not cross-compiling.
(list "HOSTAR=ar"
"HOSTCC=gcc"))
"LEX=flex"))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'do-not-build-tests
(lambda _
;; Attempting to build the tools test binary on a non-aarch64
;; architecture fails with: "No cache cleaning implementation
;; available for this architecture". Avoid building it (see:
;; https://github.com/crust-firmware/crust/issues/182).
(substitute* "tools/Makefile"
(("tools-y \\+= test") ""))))
(delete 'configure)
(add-before 'build 'defconfig
(lambda* (#:key make-flags #:allow-other-keys)
(let ((config-name (string-append #$platform "_defconfig")))
(apply invoke "make" (cons config-name make-flags)))))
(replace 'install
(lambda _
(for-each (lambda (file)
(install-file file (string-append #$output
"/libexec")))
(find-files "." "(scp\\.bin|\\.config)$"))
(install-file "build/tools/load"
(string-append #$output "/bin")))))))
;; The firmware is cross-compiled using a "bare bones" compiler (no libc).
;; Use our own tool chain for that.
(native-inputs
(list bison
(cross-gcc "or1k-elf")
(cross-binutils "or1k-elf")
flex))
(home-page "https://github.com/crust-firmware/crust")
(synopsis "System control processor firmware for Allwinner sunxi boards")
(description "Crust improves battery life and thermal performance by
(define make-crust-firmware
(mlambda (platform)
(package
(name (string-append "crust-"
(string-replace-substring platform "_" "-")
"-firmware"))
(version "0.6")
(source
(origin
(method git-fetch)
(uri (git-reference
;; There are only GitHub generated release snapshots.
(url "https://github.com/crust-firmware/crust")
(commit (string-append "v" version))))
(file-name (git-file-name "crust" version))
(sha256
(base32
"1blq6bi2rmg4qqwwr07pamv28b50mwcsybhpn9bws8vbzxa43afd"))))
(build-system gnu-build-system)
(arguments
(list
#:target "or1k-elf"
#:tests? #f ;no test suite
#:make-flags #~'("CROSS_COMPILE=or1k-elf-"
"V=1"
"HOSTAR=ar"
"HOSTCC=gcc"
"LEX=flex")
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(add-before 'build 'defconfig
(lambda* (#:key make-flags #:allow-other-keys)
(let ((config-name (string-append #$platform "_defconfig")))
(apply invoke "make" (cons config-name make-flags)))))
(replace 'install
(lambda _
(for-each (lambda (file)
(install-file file (string-append #$output
"/libexec")))
(find-files "." "(scp\\.bin|\\.config)$")))))))
(native-inputs (list bison flex))
(home-page "https://github.com/crust-firmware/crust")
(synopsis "Firmware for Allwinner sunxi SoCs")
(description "Crust improves battery life and thermal performance by
implementing a deep sleep state. During deep sleep, the CPU cores, the DRAM
controller, and most onboard peripherals are powered down, reducing power
consumption by 80% or more compared to an idle device. On boards without a
@ -1280,8 +1250,75 @@ (define (make-crust-package platform)
dedicated always-on microprocessor called a System Control Processor (SCP).
Crust is designed to run on a specific SCP implementation, Allwinner's
AR100.")
;; Most files are dual-licensed "BSD-3 OR GPL2", a few are GPL2 only.
(license (list license:bsd-3 license:gpl2))))
;; Most files are dual-licensed "BSD-3 OR GPL2", a few are GPL2 only.
(license (list license:bsd-3 license:gpl2)))))
(define make-crust-tools
(mlambda (platform firmware)
(package
(inherit firmware)
(name (string-append "crust-"
(string-replace-substring platform "_" "-")
"-tools"))
(arguments
(list #:make-flags
#~(list "V=1"
"LEX=flex"
(string-append "HOSTAR=" #$(ar-for-target))
(string-append "HOSTCC=" #$(cc-for-target)))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'do-not-build-tests
(lambda _
;; Attempting to build the tools test binary on a
;; non-aarch64 architecture fails with: "No cache
;; cleaning implementation available for this
;; architecture". Avoid building it (see:
;; https://github.com/crust-firmware/crust/issues/182).
(substitute* "tools/Makefile"
(("tools-y \\+= test") ""))))
(replace 'configure
(lambda* (#:key inputs native-inputs #:allow-other-keys)
(copy-file (search-input-file inputs "/libexec/.config")
".config")))
(replace 'build
(lambda* (#:key make-flags parallel-build?
#:allow-other-keys)
(apply invoke "make" "tools"
`(,@(if parallel-build?
`("-j"
,(number->string (parallel-job-count)))
'())
,@make-flags))))
(replace 'install
(lambda _
(install-file "build/tools/load"
(string-append #$output "/bin")))))))
(synopsis "Firmware for Allwinner sunxi SoCs (tools)")
(inputs (list firmware)))))
(define make-crust-package
(mlambda (platform)
(let* ((firmware (make-crust-firmware platform))
(tools (make-crust-tools platform firmware)))
(package
(inherit firmware)
(name (string-append "crust-"
(string-replace-substring platform "_" "-")))
(source #f)
(build-system trivial-build-system)
(arguments
(list #:modules '((guix build union))
#:builder
#~(begin
(use-modules (ice-9 match)
(guix build union))
(match %build-inputs
(((names . directory) ...)
(union-build #$output directory))))))
(native-inputs '())
(inputs (list firmware tools))))))
(define-public crust-pinebook
(make-crust-package "pinebook"))

View file

@ -58,7 +58,8 @@
;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
;;; Copyright © 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2023 chris <chris@bumblehead.com>
;;; Copyright © 2023 Luis Felipe López Acevedo <sirgazil@zoho.com>
;;; Copyright © 2023, 2024 Luis Felipe López Acevedo <sirgazil@zoho.com>
;;; Copyright © 2024 Christina O'Donnell <cdo@mutix.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -216,7 +217,7 @@ (define-public font-inconsolata
(define-public font-intel-one-mono
(package
(name "font-intel-one-mono")
(version "1.2.1")
(version "1.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -225,8 +226,26 @@ (define-public font-intel-one-mono
(file-name (git-file-name name version))
(sha256
(base32
"1md57997nzkz75ambsahawzy1x71qvkp6f87zcqibksm66yvcjdc"))))
"0w9isn8az1k3a3q4m2llwnryy79i5v30dx1hfaf90x0zkj98ky5h"))))
(outputs '("out" "ttf" "woff"))
(build-system font-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'install 'split-outputs
(lambda* (#:key outputs #:allow-other-keys)
(let ((out-fonts (string-append (assoc-ref outputs "out")
"/share/fonts"))
(ttf-fonts (string-append (assoc-ref outputs "ttf")
"/share/fonts"))
(woff-fonts (string-append (assoc-ref outputs "woff")
"/share/fonts")))
(mkdir-p ttf-fonts)
(mkdir-p woff-fonts)
(rename-file (string-append out-fonts "/truetype")
(string-append ttf-fonts "/truetype"))
(rename-file (string-append out-fonts "/web")
(string-append woff-fonts "/web"))))))))
(home-page "https://github.com/intel/intel-one-mono")
(synopsis "Expressive monospaced font family")
(description
@ -587,6 +606,30 @@ (define-public font-libertinus
@end enumerate\n")
(license license:silofl1.1)))
(define-public font-libre-franklin
(let ((commit "bfc61d6e403771c2e90aa6e0bd54975633974fb2")
(revision "0"))
(package
(name "font-libre-franklin")
(version (git-version "1.015" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/impallari/Libre-Franklin")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"07rm9fkhm8ckxpaj0zixl4vgzmj6bj4xzbaqm5hngdjds1bjv1ls"))))
(build-system font-build-system)
(home-page "https://fonts.google.com/specimen/Libre+Franklin")
(synopsis "Font family based on Franklin Gothic")
(description
"The Libre Franklin font family is an open source interpretation and
expansion of Franklin Gothic, a classic font. It covers 105 Latin Languages.")
(license license:silofl1.1))))
(define-public font-terminus
(package
(name "font-terminus")
@ -1975,7 +2018,7 @@ (define-public font-junicode
(define-public font-sarasa-gothic
(package
(name "font-sarasa-gothic")
(version "1.0.3")
(version "1.0.5")
(source
(origin
(method url-fetch)
@ -1983,7 +2026,7 @@ (define-public font-sarasa-gothic
"/releases/download/v" version
"/Sarasa-TTC-" version ".7z"))
(sha256
(base32 "1cgqf15fhg567s2bwjpal3xfcdnbgyy0iav5181zkn6b4k56dgl4"))))
(base32 "0sfmqrjfzjy2zxd26kjrdbp59ahxj7p2qr1z5qy512j2cgl1gyiq"))))
(build-system font-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@ -2638,6 +2681,61 @@ (define-public font-victor-mono
(home-page "https://rubjo.github.io/victor-mono/")
(license license:expat)))
(define-public font-dongle
(let ((commit "f7127c4d2450e1cad20254ec692591347e2fc260")
(revision "1"))
(package
(name "font-dongle")
(version (git-version "0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/yangheeryu/Dongle")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1gwrjv468bqfa3nxh01vprk7rp24cnhk3zlkrv5mzqcbcdf96nqp"))))
(build-system font-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'install 'build
(lambda _
(begin
(chdir "sources")
(invoke "unzip" "Dongle.zip")
(chdir "..")
(invoke "python3" "build.py")))))))
(native-inputs
(list python
python-glyphslib
python-fonttools
python-ufolib2
python-ufo2ft
zip))
(synopsis
"Rounded sans-serif typeface, supporting Hangeul and Latin glyphs")
(description
"Dongle(동글) is a rounded sans-serif typeface for display. It is a
modular Hangeul with the de-square frame, creating a playful and rhythmic
movement. The name, Dongle comes from a Korean onomatopoeia, meaning 'rounded
or curved shape (with adorable impression).
Dongle was originally designed as a 'Jamo (consonant and vowel in Hangeul)
typing module' for the author's student project. Later it revised into
syllabic module to be released to the public. As the character size varies
according to the syllable structure, Dongle typeface is much smaller compared
to other square frame Korean typefaces. Therefore, it is better to adjust the
font size visually to your liking, rather than relying on the point size of
the editing program.
It is designed especially for Hangeul typography, but it also includes Latin
alphabet as a part of KS X 1001. This typeface has a light, regular, and bold
weight.")
(home-page "https://github.com/yangheeryu/Dongle")
(license license:silofl1.1))))
(define-public font-meera-inimai
(package
(name "font-meera-inimai")
@ -3521,3 +3619,31 @@ (define-public font-orbitron
and black), a stylistic alternative, small caps, and many alternate
glyphs.")
(license license:silofl1.1))))
(define-public font-oswald
(let ((version "0")
(commit "6e65651c229e897dc55fb8d17097ee7f75b2769b")
(revision "0"))
(package
(name "font-oswald")
(version (git-version version revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/googlefonts/OswaldFont")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0m5c98crw6df6hbhxv4smh6ldzk5fx434fyri8xgnsjjcrkqxy0h"))))
(build-system font-build-system)
(home-page "https://github.com/googlefonts/OswaldFont")
(synopsis "Gothic typeface")
(description "Oswald is a reworking of the classic gothic typeface
style historically represented by designs such as 'Alternate Gothic'.
The characters of Oswald have been re-drawn and reformed to better fit
the pixel grid of standard digital screens. Oswald is designed to be
used freely across the internet by web browsers on desktop computers,
laptops and mobile devices.")
(license license:silofl1.1))))

View file

@ -19,6 +19,7 @@
;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com>
;;; Copyright © 2024 Sören Tempel <soeren@soeren-tempel.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -73,6 +74,7 @@ (define-module (gnu packages fontutils)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (gnu packages tex)
#:use-module (gnu packages textutils)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix packages)
@ -1911,6 +1913,7 @@ (define-public fcft
(list check pkg-config scdoc))
(propagated-inputs
(list ;; Required by fcft.pc.
utf8proc
fontconfig
freetype
harfbuzz

View file

@ -425,7 +425,7 @@ (define-public python-myhdl
(define-public nvc
(package
(name "nvc")
(version "1.9.2")
(version "1.11.3")
(source (origin
(method git-fetch)
(uri (git-reference
@ -434,7 +434,7 @@ (define-public nvc
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"0zifyn7fr4k73ga6iwvsbsl6gi5106vlv5mkmqs0svi0sqx847f4"))))
"0rh6xwzr1drgwa04gx6w4r968yxlvfkvzg92950akf7wyxf331k7"))))
(build-system gnu-build-system)
(arguments
`(#:out-of-source? #t
@ -457,7 +457,8 @@ (define-public nvc
(inputs
(list elfutils
llvm-9
libffi))
libffi
`(,zstd "lib")))
(synopsis "VHDL compiler and simulator")
(description "This package provides a VHDL compiler and simulator.")
(home-page "https://www.nickg.me.uk/nvc/")

View file

@ -5,7 +5,7 @@
;;; Copyright © 2015-2017, 2019, 2021-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2017, 2018, 2019, 2021, 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
;;; Copyright © 2016, 2017, 2019, 2021-2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2019, 2021-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Nikita <nikita@n0.is>
;;; Copyright © 2017, 2018 Mark H Weaver <mhw@netris.org>
@ -3002,7 +3002,7 @@ (define-public xdg-desktop-portal-wlr
(string-append (assoc-ref outputs "out")
"/share/doc/" ,name)))))))
(native-inputs
(list cmake pkg-config))
(list cmake-minimal pkg-config))
(inputs (list elogind
bash-minimal
grim

View file

@ -6,7 +6,7 @@
;;; Copyright © 2015, 2016, 2017 David Thompson <davet@gnu.org>
;;; Copyright © 2016-2021, 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2020 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2018, 2019, 2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2018 Julian Graham <joolean@gmail.com>
;;; Copyright © 20172021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
@ -58,6 +58,7 @@ (define-module (gnu packages game-development)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system scons)
#:use-module (gnu packages)
@ -115,6 +116,7 @@ (define-module (gnu packages game-development)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages stb)
#:use-module (gnu packages swig)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
@ -453,6 +455,40 @@ (define-public nml
files) into @file{.grf} and/or @file{.nfo} files.")
(license license:gpl2+)))
(define-public python-pybox2d
(package
(name "python-pybox2d")
(version "2.3.10")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pybox2d/pybox2d")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0dha28yscr1lpyzy9ygqc01a8pyf7n9vavyxikqh469wr2zcacna"))))
(build-system pyproject-build-system)
(arguments
(list
;; It is not clear how to run the tests
#:tests? #false
#:phases
'(modify-phases %standard-phases
(add-before 'build 'build-ext
(lambda _
(invoke "python" "setup.py" "build_ext" "--inplace"))))))
(native-inputs (list swig))
(home-page "https://github.com/pybox2d/pybox2d")
(synopsis "2D game physics for Python")
(description
"Pybox2d is a 2D physics library for your games and simple simulations.
It's based on the Box2D library, written in C++. It supports several shape
types (circle, polygon, thin line segments), and quite a few joint
types (revolute, prismatic, wheel, etc.).")
(license license:zlib)))
(define-public python-sge
(package
(name "python-sge")
@ -1275,13 +1311,13 @@ (define-public quesoglc
(define-public python-pygame
(package
(name "python-pygame")
(version "2.1.2")
(version "2.5.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "pygame" version))
(sha256
(base32
"0g6j79naab7583kymf1bgxc5l5c9h5laq887rmvh8vw8iyifrl6n"))))
"0jn2n70hmgr33yc6xzdi33cs5w7jnmgi44smyxfarrrrsnsrxf61"))))
(build-system python-build-system)
(arguments
(list
@ -1344,7 +1380,7 @@ (define-public python-pygame
(define-public python-pygame-sdl2
(let ((real-version "2.1.0")
(renpy-version "8.1.3"))
(renpy-version "8.2.0"))
(package
(inherit python-pygame)
(name "python-pygame-sdl2")
@ -1354,7 +1390,7 @@ (define-public python-pygame-sdl2
(method url-fetch)
(uri (string-append "https://www.renpy.org/dl/" renpy-version
"/pygame_sdl2-" version ".tar.gz"))
(sha256 (base32 "0qlprs9n3w254ilizqzvr6s01zx72gh7an0bgwxsq4hm22qypdws"))
(sha256 (base32 "17mc39c7ha83kzv2wmq61a15mn6p8wh2y33ixhf5sb4bvyr48mhy"))
(modules '((guix build utils)))
(snippet
'(begin
@ -1395,7 +1431,7 @@ (define-public python-pygame-sdl2
(define-public python-renpy
(package
(name "python-renpy")
(version "8.1.3")
(version "8.2.0")
(source
(origin
(method url-fetch)
@ -1403,7 +1439,7 @@ (define-public python-renpy
"/renpy-" version "-source.tar.bz2"))
(sha256
(base32
"1g6fz5dxp7yxhgv6q4brzf5hpfqq3l1g3dfv3fsiwwn6mj0b01z2"))
"02v54qqjjigfqhdr50kzhkdvplk56bvprq65jl57kcs1qhvlf5s9"))
(modules '((guix build utils)))
(snippet
#~(begin
@ -2038,7 +2074,7 @@ (define-public godot-lts
libxi
libxinerama
libxrandr
mbedtls-apache
mbedtls-lts
mesa
opusfile
pcre2
@ -2280,7 +2316,7 @@ (define-public godot
libxinerama
libxkbcommon
libxrandr
mbedtls-apache
mbedtls-lts
mesa
openxr
opusfile
@ -3228,7 +3264,7 @@ (define-public recastnavigation
(define-public raylib
(package
(name "raylib")
(version "4.5.0")
(version "5.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -3238,7 +3274,7 @@ (define-public raylib
;; TODO: Unbundle src/external
(sha256
(base32
"00y8fsa4g9fk93s3wihbxl929m84hw3fflr0h409s3i1kfmv7ajj"))))
"0327licmylwlh5iyzw35pq7ci2d15rp3jms5i9p0vfg1rlv2sjw0"))))
(build-system cmake-build-system)
(arguments
(list #:tests? #f ;no test

View file

@ -37,7 +37,7 @@
;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2019, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019, 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2019, 2020, 2024 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2019, 2020 Jesse Gibbons <jgibbons2357+guix@gmail.com>
@ -60,7 +60,7 @@
;;; Copyright © 2021 Olivier Rojon <o.rojon@posteo.net>
;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2021, 2022 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021 David Pflug <david@pflug.io>
;;; Copyright © 2021, 2024 David Pflug <david@pflug.io>
;;; Copyright © 2021, 2022 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
;;; Copyright © 2021, 2022 Noisytoot <ron@noisytoot.org>
@ -72,7 +72,7 @@
;;; Copyright © 2022 Roman Riabenko <roman@riabenko.com>
;;; Copyright © 2022, 2023 zamfofex <zamfofex@twdb.moe>
;;; Copyright © 2022 Gabriel Arazas <foo.dogsquared@gmail.com>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Hendursaga <hendursaga@aol.com>
;;; Copyright © 2022 Parnikkapore <poomklao@yahoo.com>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
@ -80,6 +80,7 @@
;;; Copyright © 2023 Ivana Drazovic <iv.dra@hotmail.com>
;;; Copyright © 2023, 2024 gemmaro <gemmaro.dev@gmail.com>
;;; Copyright © 2023 Wilko Meyer <w@wmeyer.eu>
;;; Copyright © 2024 Vagrant Cascadian <vagrant@debian.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -149,6 +150,7 @@ (define-module (gnu packages games)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gnuzilla)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages gperf)
#:use-module (gnu packages graphics)
#:use-module (gnu packages graphviz)
@ -6230,6 +6232,106 @@ (define-public bambam
colors, pictures, and sounds.")
(license license:gpl3+)))
(define-public moonlight-qt
(package
(name "moonlight-qt")
(version "5.0.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/moonlight-stream/moonlight-qt")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1g1y736vw36lmh2bjymsf4b4ypr76x9lqz7frzpj7sn0vb9y5315"))))
(build-system qt-build-system)
(arguments
(list
#:tests? #f ;no test suite
#:phases
#~(modify-phases %standard-phases
(replace 'configure
(lambda* _
(symlink (string-append
#$(this-package-input "sdl2-gamecontrollerdb")
"/share/sdl2/gamecontrollerdb.txt")
"app/SDL_GameControllerDB/gamecontrollerdb.txt")
;; Unbundle libraries.
(substitute* "moonlight-qt.pro"
((" moonlight-common-c.*\n") "")
((" qmdnsengine.*\n") "")
((" h264bitstream.*\n") "")
((" app \\\\") " app")
(("app.depends") "INCLUDEPATH +="))
(invoke "qmake" (string-append "PREFIX=" #$output)))))))
(native-inputs (list pkg-config qttools-5))
(inputs (list ffmpeg
h264bitstream
libva
libvdpau
moonlight-common
openssl
opus
qmdnsengine
qtbase-5
qtdeclarative-5
qtquickcontrols2-5
qtsvg-5
sdl2
sdl2-ttf
sdl2-gamecontrollerdb))
(synopsis "GameStream client")
(description
"Moonlight is an implementation of NVIDIA's GameStream, as used by the
NVIDIA Shield.")
(home-page "https://moonlight-stream.org")
(license license:gpl3+)))
(define-public moonlight-common
;; Used as submodule in https://github.com/moonlight-stream/moonlight
(let ((commit "5de4a5b85a28d8d639482a1a105c3a06eb67a2fd")
(revision "1"))
(package
(name "moonlight-common")
(version (git-version "5.0.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/moonlight-stream/moonlight-common-c")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"05jm0vhyb6pizd8yj89rp6ak7bf5j9w06rrmbxh8jccxwqjgll92"))))
(build-system cmake-build-system)
(arguments
(list #:tests? #f
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'use-system-enet-package
(lambda _
(substitute* "CMakeLists.txt"
(("add_subdirectory\\(enet\\)")
""))))
(replace 'install
(lambda* (#:key outputs source #:allow-other-keys)
(let* ((include (string-append #$output
"/include"))
(lib (string-append #$output "/lib")))
(mkdir-p include)
(mkdir-p lib)
(install-file (string-append source
"/src/Limelight.h") include)
(install-file "libmoonlight-common-c.so" lib)))))))
(native-inputs (list pkg-config))
(inputs (list enet-moonlight openssl qtbase-5))
(synopsis "GameStream protocol core implementation")
(description
"This package provides the GameStream core code for the protocol.")
(home-page "https://github.com/moonlight-stream/moonlight-common-c")
(license license:gpl3+))))
(define-public mrrescue
(package
(name "mrrescue")
@ -7099,27 +7201,26 @@ (define-public lugaru
(version "1.2")
(source (origin
(method url-fetch)
(uri (string-append "https://bitbucket.org/osslugaru/lugaru/downloads/"
"lugaru-" version ".tar.xz"))
(uri (string-append "https://github.com/osslugaru/lugaru/releases"
"/download/" version
"/lugaru-" version ".tar.xz"))
(sha256
(base32
"15zgcshy22q51rm72zi6y9z7qlgnz5iw3gczjdlir4bqmxy4gspk"))))
(base32 "15zgcshy22q51rm72zi6y9z7qlgnz5iw3gczjdlir4bqmxy4gspk"))
(patches
(search-patches "lugaru-fix-sound.patch"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
(list "-DSYSTEM_INSTALL=ON")
;; no test target
#:tests? #f))
(native-inputs
(list pkg-config))
(list #:configure-flags #~(list "-DSYSTEM_INSTALL=ON")
#:tests? #f)) ;no test suite
(native-inputs (list pkg-config))
(inputs
`(("sdl2" ,sdl2)
("glu" ,glu)
("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)
("openal" ,openal)
("vorbis" ,libvorbis)
("zlib" ,zlib)))
(list glu
libjpeg-turbo
libpng
libvorbis
openal
sdl2
zlib))
(home-page "https://osslugaru.gitlab.io")
(synopsis "Cross-platform third-person action game")
(description "Lugaru is a third-person action game. The main character,
@ -7128,7 +7229,7 @@ (define-public lugaru
a far-reaching conspiracy involving the corrupt leaders of the rabbit republic
and the starving wolves from a nearby den. Turner takes it upon himself to
fight against their plot and save his fellow rabbits from slavery.")
(license (list license:gpl2+ ; code
(license (list license:gpl2+ ; code
;; assets:
license:cc-by-sa3.0
license:cc-by-sa4.0))))
@ -7169,6 +7270,7 @@ (define-public 0ad-data
(synopsis "Data files for 0ad")
(description "0ad-data provides the data files required by the game 0ad.")
(home-page "https://play0ad.com")
(properties '((hidden? . #t)))
(license (list (license:fsdg-compatible
"http://tavmjong.free.fr/FONTS/ArevCopyright.txt"
"Similar to the license of the Bitstream Vera fonts.")
@ -7996,26 +8098,49 @@ (define-public gzdoom
(define-public odamex
(package
(name "odamex")
(version "0.9.5")
(version "10.4.0")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://sourceforge/odamex/Odamex/" version "/"
"odamex-src-" version ".tar.bz2"))
"odamex-src-" version ".tar.xz"))
(sha256
(base32 "1x0c9vnwn336inkfamh4na8xjyfjmzfxfn49j4snqymkypjqw6jq"))))
(base32 "1isrmki18471yry48mmm7lxzp1kiqma9cc7fx38cvpm2mpgfyvzk"))
(modules '((guix build utils)))
(snippet
'(begin
;; XXX: Unbundle more, they are not replaced by the ones provided
;; in inputs: fltk, jsoncpp, miniupnp, protobuf.
;;
;; Remove some bundled libraries.
(with-directory-excursion "libraries"
(for-each delete-file-recursively
'("curl" "libpng" "portmidi" "zlib")))))))
(build-system cmake-build-system)
(arguments `(#:tests? #f)) ; no tests
(arguments
(list
#:tests? #f ; no tests
#:configure-flags
#~(list "-DBUILD_CLIENT=1"
"-DBUILD_MASTER=1"
"-DBUILD_SERVER=1"
"-DUSE_INTERNAL_LIBS=0"
"-DUSE_INTERNAL_MINIUPNP=0")))
(native-inputs
(list deutex))
(list deutex pkg-config))
(inputs
`(("sdl" ,sdl2)
("sdl-mixer" ,sdl2-mixer)
("zlib" ,zlib)
("libpng" ,libpng)
("curl" ,curl)
("alsa-lib" ,alsa-lib)))
(list alsa-lib
curl
fltk
jsoncpp
libpng
miniupnpc
portmidi
protobuf
sdl2
sdl2-mixer
zlib))
(home-page "https://odamex.net/")
(synopsis "Multiplayer Doom port")
(description "Odamex is a modification of the Doom engine that
@ -11223,7 +11348,7 @@ (define-public sdlpop
(define-public fheroes2
(package
(name "fheroes2")
(version "1.0.5")
(version "1.0.11")
(source
(origin
(method git-fetch)
@ -11232,7 +11357,7 @@ (define-public fheroes2
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0v7dxzb5cfjb55jydd8f61zzlvxq9mrgdy51hq19b06dmrx1dnc7"))))
(base32 "1i1a4dynlb5kl55rmfmib2jha1b2igw5jyiiyla1fxgkbkjnbf27"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no tests
@ -11254,7 +11379,7 @@ (define-public fheroes2
(define-public vcmi
(package
(name "vcmi")
(version "1.3.2")
(version "1.4.2")
(source (origin
(method git-fetch)
(uri (git-reference
@ -11263,7 +11388,7 @@ (define-public vcmi
(file-name (git-file-name name version))
(sha256
(base32
"1x1bzd89h0j4xci91d2v5aj5vgkx6vm12iml805wkia4hy1jp4ff"))
"039d9dvb2i4y1fj6q5py34r17fwb5jqxkjcg7j57asjk4w9b7i8b"))
(patches (search-patches "vcmi-disable-privacy-breach.patch"))))
(build-system cmake-build-system)
(arguments

View file

@ -192,13 +192,16 @@ (define-public gcc-4.7
`(#:out-of-source? #t
#:configure-flags ,(let ((flags (configure-flags))
(version (package-version this-package)))
;; GCC 4.9 and 5.0 requires C++11 but GCC
;; 11.3.0 defaults to C++17, which is partly
;; incompatible. Force C++11.
(if (or (version-prefix? "4.9" version)
(version-prefix? "5" version))
`(cons "CXX=g++ -std=c++11" ,flags)
flags))
;; GCC 11.3.0 defaults to C++17 which is partly
;; incompatible with some earlier versions.
;; Force an earlier C++ standard while building.
(cond
((version-prefix? "4.8" version)
`(cons "CXX=g++ -std=c++03" ,flags))
((or (version-prefix? "4.9" version)
(version-prefix? "5" version))
`(cons "CXX=g++ -std=c++11" ,flags))
(else flags)))
#:make-flags
;; None of the flags below are needed when doing a Canadian cross.
@ -419,6 +422,37 @@ (define-public gcc-4.8
(("struct ucontext") "ucontext_t")))
'("aarch64" "alpha" "bfin" "i386" "m68k"
"pa" "sh" "tilepro" "xtensa")))))
(arguments
;; Since 'arguments' is a function of the package's version, define
;; 'parent' such that the 'arguments' thunk gets to see the right
;; version.
(let ((parent (package
(inherit gcc-4.7)
(version (package-version this-package)))))
(if (%current-target-system)
(package-arguments parent)
;; For native builds of some GCC versions the C++ include path needs to
;; be adjusted so it does not interfere with GCC's own build processes.
(substitute-keyword-arguments (package-arguments parent)
((#:modules modules %gnu-build-system-modules)
`((srfi srfi-1)
,@modules))
((#:phases phases)
`(modify-phases ,phases
(add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
(lambda* (#:key inputs #:allow-other-keys)
(let ((libc (assoc-ref inputs "libc"))
(gcc (assoc-ref inputs "gcc")))
(setenv "CPLUS_INCLUDE_PATH"
(string-join (fold delete
(string-split (getenv "CPLUS_INCLUDE_PATH")
#\:)
(list (string-append libc "/include")
(string-append gcc "/include/c++")))
":"))
(format #t
"environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH")))))))))))
(supported-systems %supported-systems)
(inputs
(modify-inputs (package-inputs gcc-4.7)
@ -454,38 +488,7 @@ (define-public gcc-4.9
"pa" "sh" "tilepro" "xtensa")))))
;; Override inherited texinfo-5 with latest version.
(native-inputs (list perl ;for manpages
texinfo))
(arguments
;; Since 'arguments' is a function of the package's version, define
;; 'parent' such that the 'arguments' thunk gets to see the right
;; version.
(let ((parent (package
(inherit gcc-4.8)
(version (package-version this-package)))))
(if (%current-target-system)
(package-arguments parent)
;; For native builds of GCC 4.9 and GCC 5, the C++ include path needs
;; to be adjusted so it does not interfere with GCC's own build processes.
(substitute-keyword-arguments (package-arguments parent)
((#:modules modules %gnu-build-system-modules)
`((srfi srfi-1)
,@modules))
((#:phases phases)
`(modify-phases ,phases
(add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
(lambda* (#:key inputs #:allow-other-keys)
(let ((libc (assoc-ref inputs "libc"))
(gcc (assoc-ref inputs "gcc")))
(setenv "CPLUS_INCLUDE_PATH"
(string-join (fold delete
(string-split (getenv "CPLUS_INCLUDE_PATH")
#\:)
(list (string-append libc "/include")
(string-append gcc "/include/c++")))
":"))
(format #t
"environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH")))))))))))))
texinfo))))
(define gcc-canadian-cross-objdump-snippet
;; Fix 'libcc1/configure' error when cross-compiling GCC. Without that,
@ -546,7 +549,7 @@ (define-public gcc-6
"gcc-5.0-libvtv-runpath.patch"))))
;; GCC 4.9 and 5 has a workaround that is not needed for GCC 6 and later.
(arguments (package-arguments gcc-4.8))
(arguments (package-arguments gcc-4.7))
(inputs
`(("isl" ,isl)
@ -1124,6 +1127,12 @@ (define-public gdc-11
(custom-gcc gcc-11 "gdc" '("d")
%generic-search-paths)))
;;; Alias tracking the latest GDC version.
(define-public gdc
(hidden-package
(custom-gcc gcc "gdc" '("d")
%generic-search-paths)))
(define-public (make-libgccjit gcc)
(package
(inherit gcc)

View file

@ -145,25 +145,25 @@ (define-public gdb/pinned
(properties `((hidden? . #t)))
(license gpl3+)))
(define-public gdb-12
(define-public gdb-14
(package
(inherit gdb/pinned)
(version "12.1")
(version "14.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gdb/gdb-"
version ".tar.xz"))
(sha256
(base32
"1vczsqcbh5y0gx7qrclpna0qzx26sk7lra6y8qzxam1biyzr65qf"))))
"106v7rj72km56mb2ssjsyjfix3yn4f3wqr7lpzy52d0lfq9gavfn"))))
(properties '())))
(define-public gdb
;; The "default" version.
gdb-12)
gdb-14)
(define-public gdb-multiarch
(package/inherit gdb-12
(package/inherit gdb-14
(name "gdb-multiarch")
(arguments
`(#:configure-flags
@ -172,17 +172,17 @@ (define-public gdb-multiarch
"--enable-interwork"
"--enable-languages=c,c++"
"--disable-nls")
,@(package-arguments gdb-12)))
,@(package-arguments gdb-14)))
(synopsis "The GNU debugger (with all architectures enabled)")))
(define-public gdb-minimal
(package/inherit gdb-12
(package/inherit gdb-14
(name "gdb-minimal")
(inputs (fold alist-delete (package-inputs gdb)
'("libxml2" "ncurses" "python-wrapper" "source-highlight")))))
(define-public avr-gdb
(package/inherit gdb-12
(package/inherit gdb-14
(name "avr-gdb")
(arguments
`(#:configure-flags
@ -191,7 +191,7 @@ (define-public avr-gdb
"--enable-languages=c,c++"
"--with-system-readline"
"--enable-source-highlight")
,@(package-arguments gdb-12)))
,@(package-arguments gdb-14)))
(synopsis "The GNU Debugger for AVR")
(description
"GDB is the GNU debugger. With it, you can monitor what a program is

View file

@ -13,11 +13,12 @@
;;; Copyright © 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2020, 2021, 2022, 2023 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2021, 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 20202024 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2021, 2023, 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2021, 2023, 2024 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2021, 2022 Nikolay Korotkiy <sikmir@disroot.org>
;;; Copyright © 2022 Patrick Noll <patrick@patricknoll.com>
;;; Copyright © 2022 Roman Scherer <roman.scherer@burningswell.com>
;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
@ -61,6 +62,7 @@ (define-module (gnu packages geo)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
@ -432,7 +434,7 @@ (define-public memphis
(define-public geos
(package
(name "geos")
(version "3.11.2")
(version "3.12.1")
(source (origin
(method url-fetch)
(uri (string-append "http://download.osgeo.org/geos/geos-"
@ -440,7 +442,7 @@ (define-public geos
".tar.bz2"))
(sha256
(base32
"1k744nwfa5sj4amzsdjxgac83wh6xfb9xi7z5bka7ic1jik7gw5i"))))
"00qdk9a4048pzfj2rhzkfw3lvm642znf6kr4x29i3d94494pxsnn"))))
(build-system cmake-build-system)
(arguments `(#:phases
(modify-phases %standard-phases
@ -448,7 +450,7 @@ (define-public geos
'unpack 'patch-test-shebangs
(lambda _
(substitute* '("tests/xmltester/testrunner.sh"
"tests/geostest/testrunner.sh")
"tests/xmltester/safe_to_xml.sh")
(("/bin/sh") (which "sh"))))))))
(inputs
(list glib))
@ -546,7 +548,11 @@ (define-public libgeotiff
(method url-fetch)
(uri (string-append "http://download.osgeo.org/geotiff/libgeotiff/libgeotiff-"
version ".tar.gz"))
(patches (search-patches "libgeotiff-fix-tests-with-proj-9.1.1.patch"))
(patches
(search-patches "libgeotiff-fix-tests-with-proj-9.1.1.patch"
"libgeotiff-fix-tests-with-proj-9.3.0.patch"
"libgeotiff-fix-tests-with-proj-9.3.1.patch"
"libgeotiff-fix-tests-on-i386.patch"))
(sha256
(base32 "1mjmgv48x51ppax5dnb6lq7z600czxll53bx6jbzqwd4m93i7aq5"))
(modules '((guix build utils)))
@ -738,7 +744,7 @@ (define-public libspatialite
(define-public proj
(package
(name "proj")
(version "9.2.0")
(version "9.3.1")
(source
(origin
(method url-fetch)
@ -746,7 +752,7 @@ (define-public proj
version ".tar.gz"))
(sha256
(base32
"03nm1sgvh237my7ss6kayn6887cbnayvjxrrxsrfcakkmbsida6y"))))
"1g0hkpiablvhsmw0kn5frwgdir3q7avc45p6lc1zhhhzkv5ikydh"))))
(build-system cmake-build-system)
(native-inputs (list googletest pkg-config))
(propagated-inputs (list curl libtiff sqlite)) ;required by proj.pc
@ -842,31 +848,36 @@ (define-public proj.4
(define-public python-pyproj
(package
(name "python-pyproj")
(version "3.5.0")
(version "3.6.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyproj" version))
(sha256
(base32
"1xhvr0n5gb7v6x0wd7cqmc0zrky2fag7bq2shx6l2qqq3icx2ncq"))))
"1gq1spm5zdq9k8kl9cb31b9m08ybyrdggfw3sjrqyz9b9iq7raj4"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'set-proj-path
(lambda* (#:key inputs #:allow-other-keys)
(let ((proj (assoc-ref inputs "proj")))
(setenv "PROJ_DIR" proj)
(substitute* "pyproj/datadir.py"
(("(internal_datadir = ).*$" all var)
(string-append var "Path(\"" proj "/share/proj\")\n")))))))))
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'set-proj-path
(lambda* (#:key #:allow-other-keys)
(let ((proj #$(this-package-input "proj")))
(setenv "PROJ_DIR" proj)
(substitute* "pyproj/datadir.py"
(("(internal_datadir = ).*$" all var)
(string-append var "Path(\"" proj
"/share/proj\")\n")))))))))
(inputs
(list proj))
(propagated-inputs
(list python-certifi))
(native-inputs
(list python-cython python-numpy python-pandas python-pytest
(list python-cython
python-numpy
python-pandas
python-pytest
python-xarray))
(home-page "https://github.com/pyproj4/pyproj")
(synopsis
@ -974,56 +985,106 @@ (define-public python-geopandas
require a spatial database such as PostGIS.")
(license license:bsd-3)))
(define-public python-ogr2osm
(package
(name "python-ogr2osm")
(version "1.2.0")
(source
(origin
(method git-fetch) ; no tests data in PyPi package
(uri
(git-reference
(url "https://github.com/roelderickx/ogr2osm/")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0hwqnx3cdqxmniydpj1v31kglq1xjsx41d8p10c9j4hg8kb43j80"))))
(build-system pyproject-build-system)
(arguments
(list
;; There are tests in git checkout but non of the examples taken from
;; GitHub Actions worked for me. Disabling them to be checked later
;; <https://github.com/roelderickx/ogr2osm/blob/main/.github/workflows/test.yml>.
#:phases
#~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; TODO: Fix provided tests.
;; (invoke "cram" "test/basic_usage.t")
;; (invoke "cram" "test/osm_output.t")
;; (invoke "cram" "test/pbf_output.t")
;; Run simple tests to ensure that the command is working.
(invoke "ogr2osm" "--help")
(invoke
"ogr2osm" "-f" "test/shapefiles/basic_geometries.kml")))))))
(inputs
(list gdal))
(native-inputs
(list coreutils
diffutils
libxml2
python-cram
which))
(propagated-inputs
(list python-lxml
python-protobuf))
(home-page "https://github.com/roelderickx/ogr2osm")
(synopsis "Convert ogr-readable files like shapefiles into OSM or PDF formats")
(description
"@code{ogr2osm} is a tool for converting ogr-readable files into
@acronym{OSM, OpenStreetMap} format. It supports reading from OGR files like
shapefiles or PostgresSQL database and converts data into @code{osm} or
@code{osm.pbf} formats. A translation file can be used to manipulate the data
during conversion.")
(license license:expat)))
(define-public python-osmnx
(package
(name "python-osmnx")
(version "1.1.2")
(version "1.8.1")
(source
(origin
; Fetch from github as the pypi package is missing the tests dir.
;; Fetch from github as the pypi package is missing the tests dir.
(method git-fetch)
(uri (git-reference
(url "https://github.com/gboeing/osmnx")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1n8qjn184p5a2s3j6x6iyc1i7p3l3xnbqqxm6ajwgwv6j5fw1d5a"))))
(base32 "0n238n07pp5jw9cg8nqw9qhpkw8plzb5imz1gxbliw2l1idqyjcl"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
'(list "-k"
(string-append
;; The following tests require network access.
"not test_geocode_to_gdf"
" and not test_stats"
" and not test_osm_xml"
" and not test_elevation"
" and not test_routing"
" and not test_plots"
" and not test_find_nearest"
" and not test_api_endpoints"
" and not test_graph_save_load"
" and not test_graph_from_functions"
" and not test_geometries"))))
(propagated-inputs
(list python-folium
python-geopandas
python-matplotlib
python-networkx
python-numpy
python-pandas
python-pyproj
python-requests
python-rtree
python-shapely))
(native-inputs
(list python-numpy python-pytest))
#:test-flags '(list "-k"
(string-append
;; The following tests require network access.
"not test_stats"
" and not test_geocoder"
" and not test_osm_xml"
" and not test_elevation"
" and not test_routing"
" and not test_plots"
" and not test_find_nearest"
" and not test_api_endpoints"
" and not test_graph_save_load"
" and not test_graph_from_functions"
" and not test_features"))))
(propagated-inputs (list python-folium
python-geopandas
python-matplotlib
python-networkx
python-numpy
python-pandas
python-requests
python-shapely))
(native-inputs (list python-hatchling python-pytest))
(home-page "https://github.com/gboeing/osmnx")
(synopsis
"Retrieve, model, analyze, and visualize OpenStreetMap street networks")
"Retrieve, model, analyze, and visualize OpenStreetMap street networks")
(description
"OSMnx is a Python library that lets you download geospatial data
"OSMnx is a Python library that lets you download geospatial data
from OpenStreetMap and model, project, visualize, and analyze real-world
street networks and any other geospatial geometries. You can download
and model walkable, drivable, or bikeable urban networks with a single
@ -1262,7 +1323,7 @@ (define-public gdal
(define-public python-pyshp
(package
(name "python-pyshp")
(version "2.1.3")
(version "2.3.1")
(source
(origin
(method git-fetch)
@ -1271,16 +1332,13 @@ (define-public python-pyshp
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0jsraqzq82pw19wvx84x7w5cs8agr44a9b5y0jjw540wim4xa73r"))))
(build-system python-build-system)
(base32 "02pbr091p8v4kfv1p6p2aa4asgm9r74dc12r35lvgmhs9y163z69"))))
(build-system pyproject-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; This is the only test file.
(invoke "python" "-m" "pytest" "test_shapefile.py")))))))
(list
#:test-flags
;; This test requires internet access.
'(list "--deselect" "test_shapefile.py::test_reader_url")))
(native-inputs
(list python-pytest python-pytest-runner))
(home-page "https://github.com/GeospatialPython/pyshp")
@ -1619,7 +1677,7 @@ (define-public osmium-tool
(define-public osm2pgsql
(package
(name "osm2pgsql")
(version "1.9.2")
(version "1.11.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1628,7 +1686,7 @@ (define-public osm2pgsql
(file-name (git-file-name name version))
(sha256
(base32
"198qcgl42pb8lk1bn41ncp8hc9gcg9k2p0ny42vak019w5l6jcj7"))
"135vqahlcrhwa3b9hfgbiqkzbbsjd4i79fp41cd0rp4zarcpi47p"))
(modules '((guix build utils)))
(snippet
;; Remove bundled libraries.
@ -1636,20 +1694,21 @@ (define-public osm2pgsql
(build-system cmake-build-system)
(arguments
(list #:tests? #f ;tests fail because we need to setup a database
#:configure-flags #~(list "-DUSE_PROJ_LIB=4" ;use API version 4
#:configure-flags #~(list "-DUSE_PROJ_LIB=6" ;use API version 6
"-DWITH_LUAJIT=ON"
"-DEXTERNAL_LIBOSMIUM=ON"
"-DEXTERNAL_PROTOZERO=ON"
"-DEXTERNAL_FMT=ON")))
(inputs (list boost
bzip2
cli11
expat
fmt-8
libosmium
luajit
nlohmann-json
postgresql
proj-7
proj
protozero
zlib))
(native-inputs (list pandoc python python-argparse-manpage))
@ -2508,19 +2567,19 @@ (define-public openorienteering-mapper
"-DLICENSING_PROVIDER:BOOL=OFF"
"-DMapper_MANUAL_QTHELP:BOOL=OFF")))
(inputs
`(("clipper" ,clipper)
("cups" ,cups)
("curl" ,curl)
("gdal" ,gdal)
("proj" ,proj)
("qtbase" ,qtbase-5)
("qtimageformats" ,qtimageformats-5)
("qtlocation" ,qtlocation)
("qtsensors" ,qtsensors)
("zlib" ,zlib)))
(list clipper
cups
curl
gdal
proj
qtbase-5
qtimageformats-5
qtlocation
qtsensors
zlib))
(native-inputs
`(("doxygen" ,doxygen)
("qttools-5" ,qttools-5)))
(list doxygen
qttools-5))
(home-page "https://www.openorienteering.org/apps/mapper/")
(synopsis "OpenOrienteering Mapper (OOM)")
(description
@ -2529,7 +2588,7 @@ (define-public openorienteering-mapper
(license license:gpl3+)))
(define-public grass
(let* ((version "7.8.7")
(let* ((version "7.8.8")
(majorminor (string-join (list-head (string-split version #\.) 2) ""))
(grassxx (string-append "grass" majorminor)))
(package
@ -2541,7 +2600,7 @@ (define-public grass
(uri (string-append "https://grass.osgeo.org/" grassxx
"/source/grass-" version ".tar.gz"))
(sha256
(base32 "0sbz0ba9p963phvd0gmvfqq1fg4ixpipzcjbf20ys86qavjppzsg"))))
(base32 "1gpfbppfajc8d6b9alw9fdzgaa83w26kl6fff1395bc9gal215ms"))))
(build-system gnu-build-system)
(inputs
`(("bzip2" ,bzip2)
@ -2815,6 +2874,7 @@ (define-public qgis
"test_core_pointcloudlayerexporter"
"test_core_projectstorage"
"test_core_coordinatereferencesystem"
"test_core_overlayexpression"
"test_gui_queryresultwidget"
"test_provider_copcprovider"
"test_provider_eptprovider"
@ -2838,6 +2898,7 @@ (define-public qgis
"PyQgsOGRProviderGpkg"
"PyQgsProcessExecutablePt1"
"PyQgsProcessExecutablePt2"
"PyQgsProjectionSelectionWidgets"
"PyQgsProviderConnectionGpkg"
"PyQgsProviderConnectionSpatialite"
"PyQgsOGRProvider"
@ -3046,6 +3107,30 @@ (define-public python-geographiclib
"This is a python implementation of the geodesic routines in GeographicLib.")
(license license:expat)))
(define-public python-geoip2fast
(package
(name "python-geoip2fast")
(version "1.2.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "geoip2fast" version))
(sha256
(base32 "1cmdjlwjd4pg3qvsb8d4vghqj1im58npxb6dmrd5q90wjga4rfvm"))))
(build-system pyproject-build-system)
;; The tests are speed tests or development tests to compare results with
;; a different library.
(arguments (list #:tests? #false))
(home-page "https://github.com/rabuchaim/geoip2fast")
(synopsis
"Fast GeoIP2 country/city/asn lookup library")
(description
"@code{GeoIP2Fast} is a fast @code{GeoIP2} country/city/asn lookup
library that supports IPv4 and IPv6. A search takes less than 0.00003
seconds. It has its own data file updated twice a week with
Maxmind-Geolite2-CSV, supports IPv4/IPv6 and is pure Python.")
(license license:expat)))
(define-public python-geopy
(package
(name "python-geopy")
@ -3091,15 +3176,8 @@ (define-public python-haversine
(sha256
(base32
"0inxyj5n4jzgg5xiadqx9sk83gdx5ff989l9s04smdzbd3b8c0c8"))))
(build-system python-build-system)
(build-system pyproject-build-system)
(native-inputs (list python-pytest python-numpy))
(arguments
(list #:phases
#~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? inputs #:allow-other-keys)
(when tests?
(invoke "pytest")))))))
(home-page "https://github.com/mapado/haversine")
(synopsis "Calculate the distance between 2 points on Earth")
(description "This package provides functions to calculate the

View file

@ -19,6 +19,7 @@
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2023 Kaelyn Takata <kaelyn.alexi@protonmail.com>
;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2024 Liliana Marie Prikler <liliana.prikler@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -39,6 +40,7 @@ (define-module (gnu packages gl)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bison)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages documentation)
#:use-module (gnu packages elf)
@ -1217,3 +1219,84 @@ (define-public glmark2
"glmark2 is an OpenGL 2.0 and OpenGL ES 2.0 benchmark based on the
original glmark benchmark by Ben Smith.")
(license license:gpl3+)))
(define-public waffle
(package
(name "waffle")
(version "1.8.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.freedesktop.org/mesa/waffle")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1mrw0arlrpm83cwaz7rnimkkjv3a134rcmi1h512y2g4yjzhnm8r"))
(modules '((ice-9 ftw)
(guix build utils)))
(snippet #~(with-directory-excursion "third_party"
(let ((keep '("." ".." "meson.build" "threads")))
(for-each (lambda (f)
(unless (member f keep)
(delete-file-recursively f)))
(scandir ".")))))))
(build-system meson-build-system)
(propagated-inputs (list mesa wayland))
(native-inputs (list cmocka pkg-config))
(home-page "https://waffle.freedesktop.org/")
(synopsis "Choose OpenGL API at runtime")
(description "Waffle is a library that allows one to defer selection of an
OpenGL API and a window system until runtime.")
(license license:bsd-2)))
(define-public piglit
(let ((revision "1")
(commit "814046fe6942eac660ee4a6cc5fcc54011a49945"))
(package
(name "piglit")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.freedesktop.org/mesa/piglit")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1bzaalcxskckfnwprw77sbbmfqi59by2j8imaq8ghnlzhlxv7mk7"))))
(build-system cmake-build-system)
(arguments
(list #:configure-flags #~(list "-DPIGLIT_SSE2=OFF")
;; Tests are not invoked through cmake. Instead, there are
;; pytest/tox-based tests for the framework, but they require
;; unpackaged plugins.
#:tests? #f
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-source
(lambda* (#:key inputs #:allow-other-keys)
(substitute* (find-files "framework/" "\\.py$")
(("'wflinfo'")
(string-append "'"
(search-input-file inputs "/bin/wflinfo")
"'")))))
(add-after 'install 'wrap
(lambda* (#:key outputs #:allow-other-keys)
(wrap-script (string-append (assoc-ref outputs "out")
"/bin/piglit")
`("GUIX_PYTHONPATH" prefix
(,(getenv "GUIX_PYTHONPATH")))))))))
(inputs (list guile-3.0 ; for wrap-script
libxkbcommon
python python-lxml python-mako python-numpy
glslang vulkan-headers vulkan-loader
waffle))
(native-inputs (list pkg-config))
(home-page "https://piglit.freedesktop.org/")
(synopsis "Test OpenGL implementations")
(description "Piglit is a collection of automated tests for OpenGL and
OpenCL implementations.")
;; A mix of licenses for various tests
(license (list license:expat
license:bsd-3
license:gpl2+
license:gpl3+)))))

View file

@ -13,7 +13,7 @@
;;; Copyright © 2021, 2022 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Songlin Jiang <hollowman@hollowman.ml>
;;; Copyright © 2021, 2022 Justin Veilleux <terramorpha@cock.li>
;;; Copyright © 2021, 2022, 2024 Justin Veilleux <terramorpha@cock.li>
;;; Copyright © 2021 Attila Lendvai <attila@lendvai.name>
;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
;;; Copyright © 2022 Eric Bavier <bavier@posteo.net>
@ -1016,33 +1016,33 @@ (define-public gnome-shell-extension-noannoyance
(define-public gnome-shell-extension-paperwm
(package
(name "gnome-shell-extension-paperwm")
(version "36.0")
(version "44.17.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/paperwm/PaperWM")
(commit version)))
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1ssnabwxrns36c61ppspjkr9i3qifv08pf2jpwl7cjv3pvyn4kly"))
"1d91k9qih81wckqf6554kf8grv6q61rkk4g776g0ijpmf35ljdin"))
(snippet
'(begin (delete-file "schemas/gschemas.compiled")))))
(build-system copy-build-system)
(arguments
'(#:install-plan
'(("." "share/gnome-shell/extensions/paperwm@hedning:matrix.org"
#:include-regexp ("\\.js(on)?$" "\\.css$" "\\.ui$" "\\.png$"
"\\.xml$" "\\.compiled$")))
#:phases
(modify-phases %standard-phases
(add-before 'install 'compile-schemas
(lambda _
(with-directory-excursion "schemas"
(invoke "make"))
#t)))))
(list
#:install-plan
#~'(("." "share/gnome-shell/extensions/paperwm@paperwm.github.com"
#:include-regexp ("\\.js(on)?$" "\\.css$" "\\.ui$" "\\.png$"
"\\.xml$" "\\.compiled$" "\\.svg$")))
#:phases
#~(modify-phases %standard-phases
(add-before 'install 'compile-schemas
(lambda _
(with-directory-excursion "schemas"
(invoke "make")))))))
(native-inputs
`(("glib:bin" ,glib "bin"))) ; for glib-compile-schemas
(list `(,glib "bin"))) ; for glib-compile-schemas
(home-page "https://github.com/paperwm/PaperWM")
(synopsis "Tiled scrollable window management for GNOME Shell")
(description "PaperWM is an experimental GNOME Shell extension providing

View file

@ -8,7 +8,7 @@
;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015-2020, 2023, 2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017, 2018, 2021 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015-2024 Efraim Flashner <efraim@flashner.co.il>
@ -238,6 +238,7 @@ (define-module (gnu packages gnome)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix platform)
#:use-module (guix utils)
#:use-module (guix gexp)
#:use-module (ice-9 match)
@ -3397,7 +3398,7 @@ (define-public cambalache
python-pycairo
python-pygobject
python-lxml
webkitgtk
webkitgtk-for-gtk3
webkitgtk))
(native-inputs
(list `(,glib "bin")
@ -3593,12 +3594,12 @@ (define-public librsvg
;; In lieu of #:make-flags
(setenv "CC" #$(cc-for-target))
(setenv "PKG_CONFIG" #$(pkg-config-for-target))
(when #$(%current-target-system)
(setenv "RUST_TARGET"
(string-replace
#$(%current-target-system)
"-unknown-linux-gnu"
(string-index #$(%current-target-system) #\-))))
#$@(if (%current-target-system)
#~((setenv "RUST_TARGET"
#$(platform-rust-target
(lookup-platform-by-target
(%current-target-system)))))
#~())
;; Something about the build environment resists building
;; successfully with the '--locked' flag.
(substitute* '("Makefile.am" "Makefile.in")
@ -7911,7 +7912,17 @@ (define-public mutter
;; let's disable them as well.
;; See <https://gitlab.gnome.org/GNOME/mutter/-/issues/2125>
(substitute* "src/tests/clutter/conform/meson.build"
(("'timeline.*',") ""))))
(("'timeline.*',") ""))
;; On i686-linux this test fails with a dbus error. This seems
;; to be fine in later versions, so this workaround can probably
;; be removed soon.
#$@(if (string=? "i686-linux" (or (%current-target-system)
(%current-system)))
#~((substitute* "src/tests/wayland-unit-tests.c"
(("g_test_add_func \\(\"/wayland/toplevel/activation\",") "")
(("^ toplevel_activation\\);") "")))
#~())))
(replace 'check
(lambda* (#:key tests? test-options parallel-tests?
#:allow-other-keys)

View file

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@ -66,14 +66,14 @@ (define-public gnucash
;; directory.
(package
(name "gnucash")
(version "5.3")
(version "5.5")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gnucash/gnucash%20%28stable%29/"
version "/gnucash-" version ".tar.bz2"))
(sha256
(base32 "0npilq0spalpg1ma956j7vlbn0yc5f0z5imy4kbyksl5ql4cnn0l"))))
(base32 "0fzds1yq298c3rvi07if1bfxff904jbzmsb27wr0ddwjp1xzdnml"))))
(outputs '("out" "doc" "debug" "python"))
(build-system cmake-build-system)
(arguments
@ -214,13 +214,11 @@ (define gnucash-docs
(source
(origin
(method url-fetch)
;; The filename for version 5.3 is gnucash-docs-5.2.tar.gz, not
;; gnucash-docs-5.3.tar.gz.
(uri (string-append
"mirror://sourceforge/gnucash/gnucash%20%28stable%29/"
version "/gnucash-docs-5.2" revision ".tar.gz"))
version "/gnucash-docs-" version revision ".tar.gz"))
(sha256
(base32 "16xlxwdgc0w4cg9kxg4w2f1y974cb16wq2c9icq5qrh3nj0nbsxr"))))
(base32 "1ay8jzxrsb9qmbx0v12kqdjk6l3j7cafgxswa92yynihv5ahymlk"))))
(build-system cmake-build-system)
;; These are native-inputs because they are only required for building the
;; documentation.

View file

@ -71,6 +71,7 @@ (define-module (gnu packages gnupg)
#:use-module (gnu packages swig)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
#:use-module (gnu packages tor)
#:use-module (gnu packages web)
#:use-module (gnu packages xorg)
#:use-module (gnu packages xdisorg)
@ -345,11 +346,33 @@ (define-public gnupg
zlib))
(arguments
(list
#:configure-flags #~'(;; Otherwise, the test suite looks for the `gpg`
;; executable in its installation directory in
;; /gnu/store before it has been installed.
"--enable-gnupg-builddir-envvar"
"--enable-all-tests")
#:configure-flags
;; Always use quasiquote on the next core-updates cycle.
#~(#$(if (%current-target-system)
#~quasiquote
#~quote)
(#$@(if (%current-target-system)
#~(,(string-append
"--with-libgpg-error-prefix="
#$(this-package-input "libgpg-error"))
,(string-append
"--with-libgcrypt-prefix="
#$(this-package-input "libgcrypt"))
,(string-append
"--with-libassuan-prefix="
#$(this-package-input "libassuan"))
,(string-append
"--with-ksba-prefix="
#$(this-package-input "libksba"))
,(string-append
"--with-npth-prefix="
#$(this-package-input "npth")))
#~())
;; Otherwise, the test suite looks for the `gpg`
;; executable in its installation directory in
;; /gnu/store before it has been installed.
"--enable-gnupg-builddir-envvar"
"--enable-all-tests"))
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'patch-paths
@ -1129,7 +1152,7 @@ (define-public parcimonie
perl-try-tiny
perl-type-tiny
perl-types-path-tiny
(@ (gnu packages tor) torsocks))) ;avoid dependency loop
torsocks))
(native-inputs
(list perl-file-which
perl-gnupg-interface

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