Archived
1
0
Fork 0

Merge branch 'master' into staging

This commit is contained in:
Marius Bakke 2022-02-13 14:24:53 +01:00
commit 76b6bbdf23
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA
309 changed files with 283341 additions and 206827 deletions

View file

@ -60,8 +60,6 @@
;; 'modify-inputs' and its keywords.
(eval . (put 'modify-inputs 'scheme-indent-function 1))
(eval . (put 'replace 'scheme-indent-function 1))
(eval . (put 'prepend 'scheme-indent-function 2))
(eval . (put 'append 'scheme-indent-function 2))
;; 'modify-phases' and its keywords.
(eval . (put 'modify-phases 'scheme-indent-function 1))

View file

@ -379,6 +379,10 @@ AUX_FILES = \
gnu/packages/aux-files/chromium/master-preferences.json \
gnu/packages/aux-files/emacs/guix-emacs.el \
gnu/packages/aux-files/guix.vim \
gnu/packages/aux-files/linux-libre/5.16-arm.conf \
gnu/packages/aux-files/linux-libre/5.16-arm64.conf \
gnu/packages/aux-files/linux-libre/5.16-i686.conf \
gnu/packages/aux-files/linux-libre/5.16-x86_64.conf \
gnu/packages/aux-files/linux-libre/5.15-arm.conf \
gnu/packages/aux-files/linux-libre/5.15-arm64.conf \
gnu/packages/aux-files/linux-libre/5.15-i686.conf \

View file

@ -157,6 +157,18 @@ You are advised to run @command{make authenticate} after every
changes to the repository.
@end quotation
After updating the repository, @command{make} might fail with an error
similar to the following example:
@example
error: failed to load 'gnu/packages/dunst.scm':
ice-9/eval.scm:293:34: In procedure abi-check: #<record-type <origin>>: record ABI mismatch; recompilation needed
@end example
This means that one of the record types that Guix defines (in this
example, the @code{origin} record) has changed, and all of guix needs
to be recompiled to take that change into account. To do so, run
@command{make clean-go} followed by @command{make}.
@node Running Guix Before It Is Installed
@section Running Guix Before It Is Installed
@ -231,6 +243,24 @@ local source tree; it simply updates the @file{~/.config/guix/current}
symlink (@pxref{Invoking guix pull}). Run @command{git pull} instead if
you want to upgrade your local source tree.
Sometimes, especially if you have recently updated your repository,
running @command{./pre-inst-env} will print a message similar to the
following example:
@example
;;; note: source file /home/user/projects/guix/guix/progress.scm
;;; newer than compiled /home/user/projects/guix/guix/progress.go
@end example
This is only a note and you can safely ignore it. You can get rid of
the message by running @command{make -j4}. Until you do, Guile will run
slightly slower because it will interpret the code instead of using
prepared Guile object (@file{.go}) files.
You can run @command{make} automatically as you work using
@command{watchexec} from the @code{watchexec} package. For example,
to build again each time you update a package file, you can run
@samp{watchexec -w gnu/packages make -j4}.
@node The Perfect Setup
@section The Perfect Setup
@ -1386,9 +1416,14 @@ what your usertag means.
@cindex commit access, for developers
Everyone can contribute to Guix without having commit access
(@pxref{Submitting Patches}). However, for frequent contributors,
having write access to the repository can be convenient. 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.
having write access to the repository can be convenient. As a rule of
thumb, a contributor should have accumulated fifty (50) reviewed commits
to be considered as a committer and have sustained their activity in the
project for at least 6 months. This ensures enough interactions with
the contributor, which is essential for mentoring and assessing whether
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.
The following sections explain how to get commit access, how to be ready
to push commits, and the policies and community expectations for commits

View file

@ -47,7 +47,7 @@ Copyright @copyright{} 2017, 2018 Carlo Zancanaro@*
Copyright @copyright{} 2017 Thomas Danckaert@*
Copyright @copyright{} 2017 humanitiesNerd@*
Copyright @copyright{} 2017, 2021 Christine Lemmer-Webber@*
Copyright @copyright{} 2017, 2018, 2019, 2020, 2021 Marius Bakke@*
Copyright @copyright{} 2017, 2018, 2019, 2020, 2021, 2022 Marius Bakke@*
Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@*
Copyright @copyright{} 2017, 2019, 2020, 2021 Maxim Cournoyer@*
Copyright @copyright{} 20172022 Tobias Geerinckx-Rice@*
@ -5824,6 +5824,12 @@ This is similar to the same-named option in @command{guix package}
(@pxref{profile-manifest, @option{--manifest}}) and uses the same
manifest files.
@item --profile=@var{profile}
@itemx -p @var{profile}
Create an environment containing the packages installed in @var{profile}.
Use @command{guix package} (@pxref{Invoking guix package}) to create
and manage profiles.
@item --pure
Unset existing environment variables when building the new environment, except
those specified with @option{--preserve} (see below). This has the effect of
@ -6231,6 +6237,12 @@ interpreted as packages whose dependencies will be added to the
environment, the default behavior. Packages appearing after are
interpreted as packages that will be added to the environment directly.
@item --profile=@var{profile}
@itemx -p @var{profile}
Create an environment containing the packages installed in @var{profile}.
Use @command{guix package} (@pxref{Invoking guix package}) to create
and manage profiles.
@item --pure
Unset existing environment variables when building the new environment, except
those specified with @option{--preserve} (see below). This has the effect of
@ -21382,7 +21394,7 @@ Data type representing the configuration for @code{pulseaudio-service}.
@table @asis
@item @code{client-conf} (default: @code{'()})
List of settings to set in @file{client.conf}.
Accepts a list of strings or a symbol-value pairs. A string will be
Accepts a list of strings or symbol-value pairs. A string will be
inserted as-is with a newline added. A pair will be formatted as
``key = value'', again with a newline added.
@ -25495,9 +25507,10 @@ Specify the path of the base URL@. This can be useful if
@end table
@end deftp
@anchor{prometheus-node-exporter}
@subsubheading Prometheus Node Exporter Service
@cindex prometheus-node-exporter
The Prometheus ``node exporter'' makes hardware and operating system statistics
provided by the Linux kernel available for the Prometheus monitoring system.
This service should be deployed on all physical nodes and virtual machines,
@ -25536,320 +25549,229 @@ Extra options to pass to the Prometheus node exporter.
@subsubheading Zabbix server
@cindex zabbix zabbix-server
Zabbix provides monitoring metrics, among others network utilization, CPU load
and disk space consumption:
Zabbix is a high performance monitoring system that can collect data from a
variety of sources and provide the results in a web-based interface. Alerting
and reporting is built-in, as well as @dfn{templates} for common operating
system metrics such as network utilization, CPU load, and disk space consumption.
@itemize
@item High performance, high capacity (able to monitor hundreds of thousands of devices).
@item Auto-discovery of servers and network devices and interfaces.
@item Low-level discovery, allows to automatically start monitoring new items, file systems or network interfaces among others.
@item Distributed monitoring with centralized web administration.
@item Native high performance agents.
@item SLA, and ITIL KPI metrics on reporting.
@item High-level (business) view of monitored resources through user-defined visual console screens and dashboards.
@item Remote command execution through Zabbix proxies.
@end itemize
This service provides the central Zabbix monitoring service; you also need
@ref{zabbix-front-end,@code{zabbix-front-end-service-type}} to configure Zabbix
and display results, and optionally @ref{zabbix-agent,
@code{zabbix-agent-service-type}} on machines that should be monitored (other
data sources are supported, such as @ref{prometheus-node-exporter,
Prometheus Node Exporter}).
@defvar {Scheme variable} zabbix-server-service-type
This is the service type for the Zabbix server service. Its value must be a
@code{zabbix-server-configuration} record, shown below.
@end defvar
@c %start of fragment
@deftp {Data Type} zabbix-server-configuration
Available @code{zabbix-server-configuration} fields are:
@deftypevr {@code{zabbix-server-configuration} parameter} package zabbix-server
@table @asis
@item @code{zabbix-server} (default: @code{zabbix-server}) (type: file-like)
The zabbix-server package.
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} string user
@item @code{user} (default: @code{"zabbix"}) (type: string)
User who will run the Zabbix server.
Defaults to @samp{"zabbix"}.
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} group group
@item @code{group} (default: @code{"zabbix"}) (type: group)
Group who will run the Zabbix server.
Defaults to @samp{"zabbix"}.
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} string db-host
@item @code{db-host} (default: @code{"127.0.0.1"}) (type: string)
Database host name.
Defaults to @samp{"127.0.0.1"}.
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} string db-name
@item @code{db-name} (default: @code{"zabbix"}) (type: string)
Database name.
Defaults to @samp{"zabbix"}.
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} string db-user
@item @code{db-user} (default: @code{"zabbix"}) (type: string)
Database user.
Defaults to @samp{"zabbix"}.
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} string db-password
@item @code{db-password} (default: @code{""}) (type: string)
Database password. Please, use @code{include-files} with
@code{DBPassword=SECRET} inside a specified file instead.
Defaults to @samp{""}.
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} number db-port
@item @code{db-port} (default: @code{5432}) (type: number)
Database port.
Defaults to @samp{5432}.
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} string log-type
@item @code{log-type} (default: @code{""}) (type: string)
Specifies where log messages are written to:
@itemize @bullet
@item
@code{system} - syslog.
@item
@code{file} - file specified with @code{log-file} parameter.
@item @code{system} - syslog.
@item
@code{console} - standard output.
@item @code{file} - file specified with @code{log-file} parameter.
@item @code{console} - standard output.
@end itemize
Defaults to @samp{""}.
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} string log-file
@item @code{log-file} (default: @code{"/var/log/zabbix/server.log"}) (type: string)
Log file name for @code{log-type} @code{file} parameter.
Defaults to @samp{"/var/log/zabbix/server.log"}.
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} string pid-file
@item @code{pid-file} (default: @code{"/var/run/zabbix/zabbix_server.pid"}) (type: string)
Name of PID file.
Defaults to @samp{"/var/run/zabbix/zabbix_server.pid"}.
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} string ssl-ca-location
@item @code{ssl-ca-location} (default: @code{"/etc/ssl/certs/ca-certificates.crt"}) (type: string)
The location of certificate authority (CA) files for SSL server
certificate verification.
Defaults to @samp{"/etc/ssl/certs/ca-certificates.crt"}.
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} string ssl-cert-location
@item @code{ssl-cert-location} (default: @code{"/etc/ssl/certs"}) (type: string)
Location of SSL client certificates.
Defaults to @samp{"/etc/ssl/certs"}.
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} string extra-options
@item @code{extra-options} (default: @code{""}) (type: extra-options)
Extra options will be appended to Zabbix server configuration file.
Defaults to @samp{""}.
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} include-files include-files
@item @code{include-files} (default: @code{()}) (type: include-files)
You may include individual files or all files in a directory in the
configuration file.
Defaults to @samp{()}.
@end table
@end deftp
@end deftypevr
@c %end of fragment
@anchor{zabbix-agent}
@subsubheading Zabbix agent
@cindex zabbix zabbix-agent
Zabbix agent gathers information for Zabbix server.
The Zabbix agent gathers information about the running system for the Zabbix
monitoring server. It has a variety of built-in checks, and can be extended
with custom
@uref{https://www.zabbix.com/documentation/current/en/manual/config/items/userparameters,
@dfn{user parameters}}.
@defvar {Scheme variable} zabbix-agent-service-type
This is the service type for the Zabbix agent service. Its value must be a
@code{zabbix-agent-configuration} record, shown below.
@end defvar
@c %start of fragment
@deftp {Data Type} zabbix-agent-configuration
Available @code{zabbix-agent-configuration} fields are:
@deftypevr {@code{zabbix-agent-configuration} parameter} package zabbix-agent
@table @asis
@item @code{zabbix-agent} (default: @code{zabbix-agentd}) (type: file-like)
The zabbix-agent package.
@end deftypevr
@deftypevr {@code{zabbix-agent-configuration} parameter} string user
@item @code{user} (default: @code{"zabbix"}) (type: string)
User who will run the Zabbix agent.
Defaults to @samp{"zabbix"}.
@end deftypevr
@deftypevr {@code{zabbix-agent-configuration} parameter} group group
@item @code{group} (default: @code{"zabbix"}) (type: group)
Group who will run the Zabbix agent.
Defaults to @samp{"zabbix"}.
@end deftypevr
@deftypevr {@code{zabbix-agent-configuration} parameter} string hostname
@item @code{hostname} (default: @code{""}) (type: string)
Unique, case sensitive hostname which is required for active checks and
must match hostname as configured on the server.
Defaults to @samp{""}.
@end deftypevr
@deftypevr {@code{zabbix-agent-configuration} parameter} string log-type
@item @code{log-type} (default: @code{""}) (type: string)
Specifies where log messages are written to:
@itemize @bullet
@item
@code{system} - syslog.
@item
@code{file} - file specified with @code{log-file} parameter.
@item @code{file} - file specified with
@code{log-file} parameter.
@item
@code{console} - standard output.
@item @code{console} - standard output.
@end itemize
Defaults to @samp{""}.
@end deftypevr
@deftypevr {@code{zabbix-agent-configuration} parameter} string log-file
@item @code{log-file} (default: @code{"/var/log/zabbix/agent.log"}) (type: string)
Log file name for @code{log-type} @code{file} parameter.
Defaults to @samp{"/var/log/zabbix/agent.log"}.
@end deftypevr
@deftypevr {@code{zabbix-agent-configuration} parameter} string pid-file
@item @code{pid-file} (default: @code{"/var/run/zabbix/zabbix_agent.pid"}) (type: string)
Name of PID file.
Defaults to @samp{"/var/run/zabbix/zabbix_agent.pid"}.
@end deftypevr
@deftypevr {@code{zabbix-agent-configuration} parameter} list server
@item @code{server} (default: @code{("127.0.0.1")}) (type: list)
List of IP addresses, optionally in CIDR notation, or hostnames of
Zabbix servers and Zabbix proxies. Incoming connections will be
accepted only from the hosts listed here.
Defaults to @samp{("127.0.0.1")}.
@end deftypevr
@deftypevr {@code{zabbix-agent-configuration} parameter} list server-active
@item @code{server-active} (default: @code{("127.0.0.1")}) (type: list)
List of IP:port (or hostname:port) pairs of Zabbix servers and Zabbix
proxies for active checks. If port is not specified, default port is
used. If this parameter is not specified, active checks are disabled.
Defaults to @samp{("127.0.0.1")}.
@end deftypevr
@deftypevr {@code{zabbix-agent-configuration} parameter} string extra-options
@item @code{extra-options} (default: @code{""}) (type: extra-options)
Extra options will be appended to Zabbix server configuration file.
Defaults to @samp{""}.
@end deftypevr
@deftypevr {@code{zabbix-agent-configuration} parameter} include-files include-files
@item @code{include-files} (default: @code{()}) (type: include-files)
You may include individual files or all files in a directory in the
configuration file.
Defaults to @samp{()}.
@end table
@end deftp
@end deftypevr
@c %end of fragment
@anchor{zabbix-front-end}
@subsubheading Zabbix front-end
@cindex zabbix zabbix-front-end
This service provides a WEB interface to Zabbix server.
The Zabbix front-end provides a web interface to Zabbix. It does not need
to run on the same machine as the Zabbix server. This service works by
extending the @ref{PHP-FPM} and @ref{NGINX} services with the configuration
necessary for loading the Zabbix user interface.
@defvar {Scheme variable} zabbix-front-end-service-type
This is the service type for the Zabbix web frontend. Its value must be a
@code{zabbix-front-end-configuration} record, shown below.
@end defvar
@c %start of fragment
@deftp {Data Type} zabbix-front-end-configuration
Available @code{zabbix-front-end-configuration} fields are:
@deftypevr {@code{zabbix-front-end-configuration} parameter} nginx-server-configuration-list nginx
NGINX configuration.
@table @asis
@item @code{zabbix-server} (default: @code{zabbix-server}) (type: file-like)
The Zabbix server package to use.
@end deftypevr
@item @code{nginx} (default: @code{()}) (type: list)
List of @ref{nginx-server-configuration,@code{nginx-server-configuration}}
blocks for the Zabbix front-end. When empty, a default that listens on
port 80 is used.
@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-host
@item @code{db-host} (default: @code{"localhost"}) (type: string)
Database host name.
Defaults to @samp{"localhost"}.
@end deftypevr
@deftypevr {@code{zabbix-front-end-configuration} parameter} number db-port
@item @code{db-port} (default: @code{5432}) (type: number)
Database port.
Defaults to @samp{5432}.
@end deftypevr
@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-name
@item @code{db-name} (default: @code{"zabbix"}) (type: string)
Database name.
Defaults to @samp{"zabbix"}.
@end deftypevr
@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-user
@item @code{db-user} (default: @code{"zabbix"}) (type: string)
Database user.
Defaults to @samp{"zabbix"}.
@end deftypevr
@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-password
@item @code{db-password} (default: @code{""}) (type: string)
Database password. Please, use @code{db-secret-file} instead.
Defaults to @samp{""}.
@item @code{db-secret-file} (default: @code{""}) (type: string)
Secret file which will be appended to @file{zabbix.conf.php} file. This
file contains credentials for use by Zabbix front-end. You are expected
to create it manually.
@end deftypevr
@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-secret-file
Secret file containing the credentials for the Zabbix front-end. The value
must be a local file name, not a G-expression. You are expected to create
this file manually. Its contents will be copied into @file{zabbix.conf.php}
as the value of @code{$DB['PASSWORD']}.
Defaults to @samp{""}.
@end deftypevr
@deftypevr {@code{zabbix-front-end-configuration} parameter} string zabbix-host
@item @code{zabbix-host} (default: @code{"localhost"}) (type: string)
Zabbix server hostname.
Defaults to @samp{"localhost"}.
@end deftypevr
@deftypevr {@code{zabbix-front-end-configuration} parameter} number zabbix-port
@item @code{zabbix-port} (default: @code{10051}) (type: number)
Zabbix server port.
Defaults to @samp{10051}.
@end table
@end deftypevr
@end deftp
@c %end of fragment
@ -26823,6 +26745,7 @@ valued G-expression.
@end table
@end deffn
@anchor{nginx-server-configuration}
@deftp {Data Type} nginx-server-configuration
Data type representing the configuration of an nginx server block.
This type has the following parameters:
@ -27273,6 +27196,8 @@ capability also has to be configured on the front-end as well.
@end table
@end deftp
@anchor{PHP-FPM}
@subsubheading PHP-FPM
@cindex php-fpm
PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation
with some additional features useful for sites of any size.
@ -29911,6 +29836,34 @@ Defaults to @samp{"powersave"}.
@end deftypevr
@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer start-charge-thresh-bat0
Percentage when battery 0 should begin charging. Only supported on some laptops.
Defaults to @samp{disabled}.
@end deftypevr
@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer stop-charge-thresh-bat0
Percentage when battery 0 should stop charging. Only supported on some laptops.
Defaults to @samp{disabled}.
@end deftypevr
@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer start-charge-thresh-bat1
Percentage when battery 1 should begin charging. Only supported on some laptops.
Defaults to @samp{disabled}.
@end deftypevr
@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer stop-charge-thresh-bat1
Percentage when battery 1 should stop charging. Only supported on some laptops.
Defaults to @samp{disabled}.
@end deftypevr
@deftypevr {@code{tlp-configuration} parameter} string radeon-power-profile-on-ac
Radeon graphics clock speed level. Alternatives are low, mid, high,
auto, default.
@ -33637,6 +33590,92 @@ Extra command line options for @code{guix-data-service-process-jobs}.
@end table
@end deftp
@subsubheading Nar Herder
The @uref{https://git.cbaines.net/guix/nar-herder/about/,Nar Herder} is
a utility for managing a collection of nars.
@defvar {Scheme Variable} nar-herder-type
Service type for the Guix Data Service. Its value must be a
@code{nar-herder-configuration} object. The service optionally
extends the getmail service, as the guix-commits mailing list is used to
find out about changes in the Guix git repository.
@end defvar
@deftp {Data Type} nar-herder-configuration
Data type representing the configuration of the Guix Data Service.
@table @asis
@item @code{package} (default: @code{nar-herder})
The Nar Herder package to use.
@item @code{user} (default: @code{"nar-herder"})
The system user to run the service as.
@item @code{group} (default: @code{"nar-herder"})
The system group to run the service as.
@item @code{port} (default: @code{8734})
The port to bind the server to.
@item @code{host} (default: @code{"127.0.0.1"})
The host to bind the server to.
@item @code{mirror} (default: @code{#f})
Optional URL of the other Nar Herder instance which should be mirrored.
This means that this Nar Herder instance will download it's database,
and keep it up to date.
@item @code{database} (default: @code{"/var/lib/nar-herder/nar_herder.db"})
Location for the database. If this Nar Herder instance is mirroring
another, the database will be downloaded if it doesn't exist. If this
Nar Herder instance isn't mirroring another, an empty database will be
created.
@item @code{database-dump} (default: @code{"/var/lib/nar-herder/nar_herder_dump.db"})
Location of the database dump. This is created and regularly updated by
taking a copy of the database. This is the version of the database that
is available to download.
@item @code{storage} (default: @code{#f})
Optional location in which to store nars.
@item @code{storage-limit} (default: @code{"none"})
Limit in bytes for the nars stored in the storage location. This can
also be set to ``none'' so that there is no limit.
When the storage location exceeds this size, nars are removed according
to the nar removal criteria.
@item @code{storage-nar-removal-criteria} (default: @code{'()})
Criteria used to remove nars from the storage location. These are used
in conjunction with the storage limit.
When the storage location exceeds the storage limit size, nars will be
checked against the nar removal criteria and if any of the criteria
match, they will be removed. This will continue until the storage
location is below the storage limit size.
Each criteria is specified by a string, then an equals sign, then
another string. Currently, only one criteria is supported, checking if a
nar is stored on another Nar Herder instance.
@item @code{ttl} (default: @code{#f})
Produce @code{Cache-Control} HTTP headers that advertise a time-to-live
(TTL) of @var{ttl}. @var{ttl} must denote a duration: @code{5d} means 5
days, @code{1m} means 1 month, and so on.
This allows the user's Guix to keep substitute information in cache for
@var{ttl}.
@item @code{negative-ttl} (default: @code{#f})
Similarly produce @code{Cache-Control} HTTP headers to advertise the
time-to-live (TTL) of @emph{negative} lookups---missing store items, for
which the HTTP 404 code is returned. By default, no negative TTL is
advertised.
@end table
@end deftp
@node Linux Services
@subsection Linux Services
@ -35724,9 +35763,21 @@ bootloader boot menu:
@table @code
@item describe
Describe the current system generation: its file name, the kernel and
Describe the running system generation: its file name, the kernel and
bootloader used, etc., as well as provenance information when available.
@quotation Note
The @emph{running} system generation---referred to by
@file{/run/current-system}---is not necessarily the @emph{current}
system generation---referred to by @file{/var/guix/profiles/system}: it
differs when, for instance, you chose from the bootloader menu to boot
an older generation.
It can also differ from the @emph{booted} system generation---referred
to by @file{/run/booted-system}---for instance because you reconfigured
the system in the meantime.
@end quotation
@item list-generations
List a summary of each generation of the operating system available on
disk, in a human-readable way. This is similar to the
@ -35902,6 +35953,30 @@ be accomplished with the following operating system configuration snippet:
For more information regarding the format of the @file{sudoers} file,
consult @command{man sudoers}.
Once you've deployed a system on a set of machines, you may find it
useful to run a command on all of them. The @option{--execute} or
@option{-x} option lets you do that; the example below runs
@command{uname -a} on all the machines listed in the deployment file:
@example
guix deploy @var{file} -x -- uname -a
@end example
One thing you may often need to do after deployment is restart specific
services on all the machines, which you can do like so:
@example
guix deploy @var{file} -x -- herd restart @var{service}
@end example
The @command{guix deploy -x} command returns zero if and only if the
command succeeded on all the machines.
@c FIXME/TODO: Separate the API doc from the CLI doc.
Below are the data types you need to know about when writing a
deployment file.
@deftp {Data Type} machine
This is the data type representing a single machine in a heterogeneous Guix
deployment.
@ -37461,6 +37536,7 @@ services)}.
* Shells: Shells Home Services. POSIX shells, Bash, Zsh.
* Mcron: Mcron Home Service. Scheduled User's Job Execution.
* Shepherd: Shepherd Home Service. Managing User's Daemons.
* Desktop: Desktop Home Services. Services for graphical environments.
@end menu
@c In addition to that Home Services can provide
@ -37848,6 +37924,85 @@ mechanism instead (@pxref{Shepherd Services}).
@end table
@end deftp
@node Desktop Home Services
@subsection Desktop Home Services
The @code{(gnu home services desktop)} module provides services that you
may find useful on ``desktop'' systems running a graphical user
environment such as Xorg.
@defvr {Scheme Variable} home-redshift-service-type
This is the service type for @uref{https://github.com/jonls/redshift,
Redshift}, a program that adjusts the display color temperature
according to the time of day. Its associated value must be a
@code{home-redshift-configuration} record, as shown below.
A typical configuration, where we manually specify the latitude and
longitude, might look like this:
@lisp
(service home-redshift-service-type
(home-redshift-configuration
(location-provider 'manual)
(latitude 35.81) ;northern hemisphere
(longitude -0.80))) ;west of Greenwich
@end lisp
@end defvr
@deftp {Data Type} home-redshift-configuration
Available @code{home-redshift-configuration} fields are:
@table @asis
@item @code{redshift} (default: @code{redshift}) (type: file-like)
Redshift package to use.
@item @code{location-provider} (default: @code{geoclue2}) (type: symbol)
Geolocation provider---@code{'manual} or @code{'geoclue2}. In the
former case, you must also specify the @code{latitude} and
@code{longitude} fields so Redshift can determine daytime at your place.
In the latter case, the Geoclue system service must be running; it will
be queried for location information.
@item @code{adjustment-method} (default: @code{randr}) (type: symbol)
Color adjustment method.
@item @code{daytime-temperature} (default: @code{6500}) (type: integer)
Daytime color temperature (kelvins).
@item @code{nighttime-temperature} (default: @code{4500}) (type: integer)
Nighttime color temperature (kelvins).
@item @code{daytime-brightness} (default: @code{disabled}) (type: maybe-inexact-number)
Daytime screen brightness, between 0.1 and 1.0.
@item @code{nighttime-brightness} (default: @code{disabled}) (type: maybe-inexact-number)
Nighttime screen brightness, between 0.1 and 1.0.
@item @code{latitude} (default: @code{disabled}) (type: maybe-inexact-number)
Latitude, when @code{location-provider} is @code{'manual}.
@item @code{longitude} (default: @code{disabled}) (type: maybe-inexact-number)
Longitude, when @code{location-provider} is @code{'manual}.
@item @code{dawn-time} (default: @code{disabled}) (type: maybe-string)
Custom time for the transition from night to day in the
morning---@code{"HH:MM"} format. When specified, solar elevation is not
used to determine the daytime/nighttime period.
@item @code{dusk-time} (default: @code{disabled}) (type: maybe-string)
Likewise, custom time for the transition from day to night in the
evening.
@item @code{extra-content} (default: @code{""}) (type: raw-configuration-string)
Extra content appended as-is to the Redshift configuration file. Run
@command{man redshift} for more information about the configuration file
format.
@end table
@end deftp
@node Invoking guix home
@section Invoking @code{guix home}
@ -38072,6 +38227,16 @@ Consider the home-environment @var{expr} evaluates to.
This is an alternative to specifying a file which evaluates to a home
environment.
@item --allow-downgrades
Instruct @command{guix home reconfigure} to allow system downgrades.
Just like @command{guix system}, @command{guix home reconfigure}, by
default, prevents you from downgrading your home to older or unrelated
revisions compared to the channel revisions that were used to deploy
it---those shown by @command{guix home describe}. Using
@option{--allow-downgrades} allows you to bypass that check, at the risk
of downgrading your home---be careful!
@end table
@node Documentation

View file

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

View file

@ -302,9 +302,6 @@
(allow guix_daemon_t
guix_daemon_conf_t
(lnk_file (create getattr rename unlink read)))
(allow guix_daemon_t
guix_daemon_conf_t
(sock_file (write)))
(allow guix_daemon_t net_conf_t
(file (getattr open read)))
(allow guix_daemon_t net_conf_t
@ -358,7 +355,7 @@
(unix_stream_socket (listen)))
(allow guix_daemon_t
guix_daemon_conf_t
(sock_file (create unlink)))
(sock_file (create unlink write)))
(allow guix_daemon_t
self
(unix_stream_socket (create

View file

@ -9,7 +9,7 @@
;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;; Copyright © 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com>
;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;; Copyright © 2021 Leo Famulari <leo@famulari.name>
;; Copyright © 2021 Zhu Zihao <all_but_last@163.com>
;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
@ -25,6 +25,64 @@
(channel-news
(version 0)
(entry (commit "96d7535b030c65b2d8cb0bea52c4bd96cbdefaf0")
(title
(en "ci.guix.gnu.org to stop offering Gzip substitutes")
(de "ci.guix.gnu.org wird keine Substitute mit Gzip mehr anbieten"))
(body
(en "This is a notice to let you know that starting next
month (2022/03/01), Gzip-compressed substitutes will no longer be available,
which means that Guix daemons from a revision older than commit
@samp{3092f1b835d79655eecb2f8a79dda20ad9ba6bd6} (2019/06/02) will loose the
ability to download binary substitutes. Starting next month, only lzip and
zstd substitutes will be offered. Dropping Gzip substitutes will free about
6.5 TiB of storage space from the build farm.")
(de "Hiermit weisen wir Sie darauf hin, dass ab nächstem
Monat (2022/03/01) keine Gzip-komprimierten Substitute mehr zur Verfügung
stehen. Dadurch können Guix-Daemons, deren Version älter ist als Commit
@samp{3092f1b835d79655eecb2f8a79dda20ad9ba6bd6} (2019/06/02), keine binären
Substitute mehr beziehen. Ab kommendem Monat werden nur Substitute mit lzip
und zstd angeboten. Indem wir auf Gzip-Substitute verzichten, sparen wir 6.5
TiB Speicherplatz auf der Erstellungsfarm.")))
(entry (commit "5c13484646069064c834bbd3cd02c3bc80d94cb6")
(title
(en "New @option{--execute} option to @command{guix deploy}")
(de "Neue Option @option{--execute} für @command{guix deploy}")
(fr "Nouvelle option @option{--execute} pour @command{guix deploy}"))
(body
(en "The @command{guix deploy} command has a new @option{--execute}
or @option{-x} option, which allows you to execute a command on all the
machines that your configuration file specifies, as in this example:
@example
guix deploy deploy.scm -x -- herd restart guix-daemon
@end example
This is no substitute for full-featured tools such as pdsh but it is a useful
helper.")
(de "Der Befehl @command{guix deploy} verfügt über eine neue Option
@option{--execute} oder @option{-x}, mit der Sie einen Befehl auf allen in der
Konfigurationsdatei angegebenen Maschinen ausführen können. Zum Beispiel:
@example
guix deploy deploy.scm -x -- herd restart guix-daemon
@end example
Dies ist kein Ersatz für vollumfängliche Werkzeuge wie pdsh, aber es kann doch
von Nutzen sein.")
(fr "La commande @command{guix deploy} a une nouvelle option
@option{--execute} ou @option{-x} qui permet d'exécuter une commande sur
toutes les machines spécifiées dans son fichier de configuration, comme dans
cet exemple :
@example
guix deploy deploy.scm -x -- herd restart guix-daemon
@end example
Ça ne remplace pas les outils sophistiqués comme pdsh mais c'est bien
pratique.")))
(entry (commit "c4fe13c294cc1e31dd8a49ce3981f603fb169e0a")
(title
(en "@command{guix style} can format package definitions")

View file

@ -3,7 +3,7 @@
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
@ -62,8 +62,10 @@
(define (estimate-partition-size root)
"Given the ROOT directory, evaluate and return its size. As this doesn't
take the partition metadata size into account, take a 25% margin."
(* 1.25 (file-size root)))
take the partition metadata size into account, take a 25% margin. As this in
turn doesn't take any constant overhead into account, force a 1-MiB minimum."
(max (ash 1 20)
(* 1.25 (file-size root))))
(define* (make-ext-image partition target root
#:key

View file

@ -30,6 +30,7 @@
#:use-module (guix discovery)
#:use-module (guix diagnostics)
#:use-module (guix i18n)
#:use-module (guix modules)
#:use-module (srfi srfi-1)
#:use-module (ice-9 match)
@ -43,6 +44,7 @@
home-provenance-service-type
fold-home-service-types
home-provenance
%initialize-gettext)
@ -281,12 +283,12 @@ will be put in @file{~/.guix-home/files}.")))
#~(begin
(bindtextdomain %gettext-domain
(string-append #$guix "/share/locale"))
(textdomain %gettext-domain)
(setlocale LC_ALL "")))
(textdomain %gettext-domain)))
(define (compute-on-first-login-script _ gexps)
(program-file
"on-first-login"
(with-imported-modules (source-module-closure '((guix i18n)))
#~(begin
(use-modules (guix i18n))
#$%initialize-gettext
@ -308,7 +310,7 @@ will be put in @file{~/.guix-home/files}.")))
(display (G_ "XDG_RUNTIME_DIR doesn't exists, on-first-login script
won't execute anything. You can check if xdg runtime directory exists,
XDG_RUNTIME_DIR variable is set to appropriate value and manually execute the
script by running '$HOME/.guix-home/on-first-login'")))))))
script by running '$HOME/.guix-home/on-first-login'"))))))))
(define (on-first-login-script-entry on-first-login)
"Return, as a monadic value, an entry for the on-first-login script
@ -400,6 +402,7 @@ with one gexp, but many times, and all gexps must be idempotent.")))
;;;
(define (compute-on-change-gexp eval-gexps? pattern-gexp-tuples)
(with-imported-modules (source-module-closure '((guix i18n)))
#~(begin
(use-modules (guix i18n))
@ -485,7 +488,7 @@ with one gexp, but many times, and all gexps must be idempotent.")))
(display (G_ "On-change gexps evaluation finished.\n\n")))
(display "\
On-change gexps won't be evaluated; evaluation has been disabled in the
service configuration"))))
service configuration")))))
(define home-run-on-change-service-type
(service-type (name 'home-run-on-change)

View file

@ -0,0 +1,174 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu home services desktop)
#:use-module (gnu home services)
#:use-module (gnu home services shepherd)
#:use-module (gnu services configuration)
#:autoload (gnu packages xdisorg) (redshift)
#:use-module (guix records)
#:use-module (guix gexp)
#:use-module (srfi srfi-1)
#:use-module (ice-9 match)
#:export (home-redshift-configuration
home-redshift-configuration?
home-redshift-service-type))
;;;
;;; Redshift.
;;;
(define (serialize-integer field value)
(string-append (match field
('daytime-temperature "temp-day")
('nighttime-temperature "temp-night")
('daytime-brightness "brightness-day")
('nighttime-brightness "brightness-night")
('latitude "lat")
('longitude "lon")
(_ (symbol->string field)))
"=" (number->string value) "\n"))
(define (serialize-symbol field value)
(string-append (symbol->string field)
"=" (symbol->string value) "\n"))
(define (serialize-string field value)
(string-append (symbol->string field)
"=" value "\n"))
(define serialize-inexact-number serialize-integer)
(define (inexact-number? n)
(and (number? n) (inexact? n)))
(define-maybe inexact-number)
(define-maybe string)
(define (serialize-raw-configuration-string field value)
value)
(define raw-configuration-string? string?)
(define-configuration home-redshift-configuration
(redshift
(file-like redshift)
"Redshift package to use.")
(location-provider
(symbol 'geoclue2)
"Geolocation provider---@code{'manual} or @code{'geoclue2}.
In the former case, you must also specify the @code{latitude} and
@code{longitude} fields so Redshift can determine daytime at your place. In
the latter case, the Geoclue system service must be running; it will be
queried for location information.")
(adjustment-method
(symbol 'randr)
"Color adjustment method.")
;; Default values from redshift(1).
(daytime-temperature
(integer 6500)
"Daytime color temperature (kelvins).")
(nighttime-temperature
(integer 4500)
"Nighttime color temperature (kelvins).")
(daytime-brightness
(maybe-inexact-number 'disabled)
"Daytime screen brightness, between 0.1 and 1.0.")
(nighttime-brightness
(maybe-inexact-number 'disabled)
"Nighttime screen brightness, between 0.1 and 1.0.")
(latitude
(maybe-inexact-number 'disabled)
"Latitude, when @code{location-provider} is @code{'manual}.")
(longitude
(maybe-inexact-number 'disabled)
"Longitude, when @code{location-provider} is @code{'manual}.")
(dawn-time
(maybe-string 'disabled)
"Custom time for the transition from night to day in the
morning---@code{\"HH:MM\"} format. When specified, solar elevation is not
used to determine the daytime/nighttime period.")
(dusk-time
(maybe-string 'disabled)
"Likewise, custom time for the transition from day to night in the
evening.")
(extra-content
(raw-configuration-string "")
"Extra content appended as-is to the Redshift configuration file. Run
@command{man redshift} for more information about the configuration file
format."))
(define (serialize-redshift-configuration config)
(define location-fields
'(latitude longitude))
(define (location-field? field)
(memq (configuration-field-name field) location-fields))
(define (secondary-field? field)
(or (location-field? field)
(memq (configuration-field-name field)
'(redshift extra-content))))
#~(string-append
"[redshift]\n"
#$(serialize-configuration config
(remove secondary-field?
home-redshift-configuration-fields))
#$(home-redshift-configuration-extra-content config)
"\n[manual]\n"
#$(serialize-configuration config
(filter location-field?
home-redshift-configuration-fields))))
(define (redshift-shepherd-service config)
(define config-file
(computed-file "redshift.conf"
#~(call-with-output-file #$output
(lambda (port)
(display #$(serialize-redshift-configuration config)
port)))))
(list (shepherd-service
(documentation "Redshift program.")
(provision '(redshift))
;; FIXME: This fails to start if Home is first activated from a
;; non-X11 session.
(start #~(make-forkexec-constructor
(list #$(file-append redshift "/bin/redshift")
"-c" #$config-file)))
(stop #~(make-kill-destructor)))))
(define home-redshift-service-type
(service-type
(name 'home-redshift)
(extensions (list (service-extension home-shepherd-service-type
redshift-shepherd-service)))
(default-value (home-redshift-configuration))
(description
"Run Redshift, a program that adjusts the color temperature of display
according to time of day.")))

View file

@ -33,6 +33,7 @@
#:use-module (gnu packages admin)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages connman)
#:use-module (gnu packages cryptsetup)
#:use-module (gnu packages disk)
@ -42,6 +43,7 @@
#:autoload (gnu packages gnupg) (guile-gcrypt)
#:use-module (gnu packages iso-codes)
#:use-module (gnu packages linux)
#:use-module (gnu packages nano)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages package-management)
#:use-module (gnu packages tls)
@ -333,9 +335,11 @@ selected keymap."
ntfs-3g ;mkfs.ntfs
xfsprogs ;mkfs.xfs
kbd ;chvt
guix ;guix system init call
util-linux ;mkwap
nano
shadow
tar ;dump
gzip ;dump
coreutils)))
(with-output-to-port (%make-void-port "w")
(lambda ()
@ -352,7 +356,8 @@ selected keymap."
;; packages …), etc. modules.
(with-extensions (list guile-gcrypt guile-newt
guile-parted guile-bytestructures
guile-json-3 guile-git guix gnutls)
guile-json-3 guile-git guile-webutils
guix gnutls)
(with-imported-modules `(,@(source-module-closure
`(,@modules
(gnu services herd)
@ -363,6 +368,7 @@ selected keymap."
(use-modules (gnu installer record)
(gnu installer keymap)
(gnu installer steps)
(gnu installer dump)
(gnu installer final)
(gnu installer hostname)
(gnu installer locale)
@ -379,7 +385,8 @@ selected keymap."
(guix build utils)
((system repl debug)
#:select (terminal-width))
(ice-9 match))
(ice-9 match)
(ice-9 textual-ports))
;; Initialize gettext support so that installers can use
;; (guix i18n) module.
@ -407,10 +414,15 @@ selected keymap."
;; verbose.
(terminal-width 200)
(let* ((current-installer newt-installer)
(steps (#$steps current-installer)))
((installer-init current-installer))
(define current-installer newt-installer)
(define steps (#$steps current-installer))
(dynamic-wind
(installer-init current-installer)
(lambda ()
(parameterize
((run-command-in-installer
(installer-run-command current-installer)))
(catch #t
(lambda ()
(define results
@ -425,25 +437,33 @@ selected keymap."
(sync)
(stop-service 'root))
(_
;; The installation failed, exit so that it is restarted
;; by login.
;; The installation failed, exit so that it is
;; restarted by login.
#f)))
(const #f)
(lambda (key . args)
(syslog "crashing due to uncaught exception: ~s ~s~%"
(installer-log-line "crashing due to uncaught exception: ~s ~s"
key args)
(let ((error-file "/tmp/last-installer-error"))
(call-with-output-file error-file
(lambda (port)
(display-backtrace (make-stack #t) port)
(print-exception port
(stack-ref (make-stack #t) 1)
key args)))
(define dump-dir
(prepare-dump key args #:result %current-result))
(define action
((installer-exit-error current-installer)
error-file key args))
(primitive-exit 1)))
(get-string-all
(open-input-file
(string-append dump-dir "/installer-backtrace")))))
(match action
('dump
(let* ((dump-files
((installer-dump-page current-installer)
dump-dir))
(dump-archive
(make-dump dump-dir dump-files)))
((installer-report-page current-installer)
dump-archive)))
(_ #f))
(exit 1)))))
((installer-exit current-installer)))))))
(installer-exit current-installer))))))
(program-file
"installer"

118
gnu/installer/dump.scm Normal file
View file

@ -0,0 +1,118 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu installer dump)
#:use-module (gnu installer utils)
#:use-module (guix build utils)
#:use-module (srfi srfi-11)
#:use-module (ice-9 iconv)
#:use-module (ice-9 match)
#:use-module (ice-9 popen)
#:use-module (ice-9 textual-ports)
#:use-module (web client)
#:use-module (web http)
#:use-module (web response)
#:use-module (webutils multipart)
#:export (prepare-dump
make-dump
send-dump-report))
;; The installer crash dump type.
(define %dump-type "installer-dump")
(define (result->list result)
"Return the alist for the given RESULT."
(hash-map->list (lambda (k v)
(cons k v))
result))
(define* (prepare-dump key args #:key result)
"Create a crash dump directory. KEY and ARGS represent the thrown error.
RESULT is the installer result hash table. Returns the created directory path."
(define now (localtime (current-time)))
(define dump-dir
(format #f "/tmp/dump.~a"
(strftime "%F.%H.%M.%S" now)))
(mkdir-p dump-dir)
(with-directory-excursion dump-dir
;; backtrace
(call-with-output-file "installer-backtrace"
(lambda (port)
(display-backtrace (make-stack #t) port)
(print-exception port
(stack-ref (make-stack #t) 1)
key args)))
;; installer result
(call-with-output-file "installer-result"
(lambda (port)
(write (result->list result) port)))
;; syslog
(copy-file "/var/log/messages" "syslog")
;; dmesg
(let ((pipe (open-pipe* OPEN_READ "dmesg")))
(call-with-output-file "dmesg"
(lambda (port)
(dump-port pipe port)
(close-pipe pipe)))))
dump-dir)
(define* (make-dump dump-dir file-choices)
"Create a crash dump archive from DUMP-DIR containing FILE-CHOICES.
Returns the archive path."
(define output (string-append (basename dump-dir) ".tar.gz"))
(with-directory-excursion (dirname dump-dir)
(apply system* "tar" "-zcf" output
(map (lambda (f)
(string-append (basename dump-dir) "/" f))
file-choices)))
(canonicalize-path (string-append (dirname dump-dir) "/" output)))
(define* (send-dump-report dump
#:key
(url "https://dump.guix.gnu.org"))
"Turn the DUMP archive into a multipart body and send it to the Guix crash
dump server at URL."
(define (match-boundary kont)
(match-lambda
(('boundary . (? string? b))
(kont b))
(x #f)))
(define (response->string response)
(bytevector->string
(read-response-body response)
"UTF-8"))
(let-values (((body boundary)
(call-with-input-file dump
(lambda (port)
(format-multipart-body
`((,%dump-type . ,port)))))))
(false-if-exception
(response->string
(http-post
(string-append url "/upload")
#:keep-alive? #t
#:streaming? #t
#:headers `((content-type
. (multipart/form-data
(boundary . ,boundary))))
#:body body)))))

View file

@ -85,7 +85,8 @@ USERS."
(uid (if root? 0 #f))
(home-directory
(user-home-directory user))
(password (crypt (user-password user)
(password (crypt
(secret-content (user-password user))
(salt)))
;; We need a string here, not a file-like, hence
@ -125,15 +126,15 @@ it can interact with the rest of the system."
(setlocale LC_ALL locale))))
(if supported?
(begin
(syslog "install supported locale ~a~%." locale)
(installer-log-line "install supported locale ~a." locale)
(setenv "LC_ALL" locale))
(begin
;; If the selected locale is not supported, install a default UTF-8
;; locale. This is required to copy some files with UTF-8
;; characters, in the nss-certs package notably. Set LANGUAGE
;; anyways, to have translated messages if possible.
(syslog "~a locale is not supported, installating en_US.utf8 \
locale instead.~%" locale)
(installer-log-line "~a locale is not supported, installing \
en_US.utf8 locale instead." locale)
(setlocale LC_ALL "en_US.utf8")
(setenv "LC_ALL" "en_US.utf8")
(setenv "LANGUAGE"
@ -208,17 +209,9 @@ or #f. Return #t on success and #f on failure."
(setvbuf (current-output-port) 'none)
(setvbuf (current-error-port) 'none)
;; If there are any connected clients, assume that we are running
;; installation tests. In that case, dump the standard and error
;; outputs to syslog.
(set! ret
(if (not (null? (current-clients)))
(with-output-to-file "/dev/console"
(lambda ()
(with-error-to-file "/dev/console"
(lambda ()
(run-command install-command)))))
(run-command install-command))))
(setenv "PATH" "/run/current-system/profile/bin/")
(set! ret (run-command install-command)))
(lambda ()
;; Restart guix-daemon so that it does no keep the MNT namespace
;; alive.

View file

@ -19,6 +19,7 @@
(define-module (gnu installer newt)
#:use-module (gnu installer record)
#:use-module (gnu installer utils)
#:use-module (gnu installer dump)
#:use-module (gnu installer newt ethernet)
#:use-module (gnu installer newt final)
#:use-module (gnu installer newt parameters)
@ -39,7 +40,12 @@
#:use-module (guix config)
#:use-module (guix discovery)
#:use-module (guix i18n)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (ice-9 ftw)
#:use-module (ice-9 match)
#:use-module (newt)
#:export (newt-installer))
@ -47,7 +53,7 @@
(newt-init)
(clear-screen)
(set-screen-size!)
(syslog "Display is ~ax~a.~%" (screen-columns) (screen-rows))
(installer-log-line "Display is ~ax~a." (screen-columns) (screen-rows))
(push-help-line
(format #f (G_ "Press <F1> for installation parameters."))))
@ -55,25 +61,102 @@
(newt-finish)
(clear-screen))
(define (exit-error file key args)
(define (exit-error error)
(newt-set-color COLORSET-ROOT "white" "red")
(let ((width (nearest-exact-integer
(* (screen-columns) 0.8)))
(height (nearest-exact-integer
(* (screen-rows) 0.7))))
(run-file-textbox-page
#:info-text (format #f (G_ "The installer has encountered an unexpected \
problem. The backtrace is displayed below. Please report it by email to \
<~a>.") %guix-bug-report-address)
(define action
(run-textbox-page
#:info-text (G_ "The installer has encountered an unexpected problem. \
The backtrace is displayed below. You may choose to exit or create a dump \
archive.")
#:title (G_ "Unexpected problem")
#:file file
#:exit-button? #f
#:info-textbox-width width
#:file-textbox-width width
#:file-textbox-height height))
#:content error
#:buttons-spec
(list
(cons (G_ "Dump") (const 'dump))
(cons (G_ "Exit") (const 'exit)))))
(newt-set-color COLORSET-ROOT "white" "blue")
(newt-finish)
(clear-screen))
action)
(define (report-page dump-archive)
(define text
(format #f (G_ "The dump archive was created as ~a. Would you like to \
send this archive to the Guix servers?") dump-archive))
(define title (G_ "Dump archive created"))
(when (run-confirmation-page text title)
(let* ((uploaded-name (send-dump-report dump-archive))
(text (if uploaded-name
(format #f (G_ "The dump was uploaded as ~a. Please \
report it by email to ~a.") uploaded-name %guix-bug-report-address)
(G_ "The dump could not be uploaded."))))
(run-error-page
text
(G_ "Dump upload result")))))
(define (dump-page dump-dir)
(define files
(scandir dump-dir (lambda (x)
(not (or (string=? x ".")
(string=? x ".."))))))
(fold (match-lambda*
(((file . enable?) acc)
(if enable?
(cons file acc)
acc)))
'()
(run-dump-page
dump-dir
(map (lambda (x)
(cons x #f))
files))))
(define (newt-run-command . args)
(define command-output "")
(define (line-accumulator line)
(set! command-output
(string-append/shared command-output line "\n")))
(define displayed-command
(string-join
(map (lambda (s) (string-append "\"" s "\"")) args)
" "))
(define result (run-external-command-with-line-hooks (list line-accumulator)
args))
(define exit-val (status:exit-val result))
(define term-sig (status:term-sig result))
(define stop-sig (status:stop-sig result))
(if (and exit-val (zero? exit-val))
#t
(let ((info-text
(cond
(exit-val
(format #f (G_ "External command ~s exited with code ~a")
args exit-val))
(term-sig
(format #f (G_ "External command ~s terminated by signal ~a")
args term-sig))
(stop-sig
(format #f (G_ "External command ~s stopped by signal ~a")
args stop-sig)))))
(run-textbox-page #:title (G_ "External command error")
#:info-text info-text
#:content command-output
#:buttons-spec
(list
(cons "Ignore" (const #t))
(cons "Abort"
(lambda ()
(abort-to-prompt 'installer-step 'abort)))
(cons "Report"
(lambda ()
(raise
(condition
((@@ (guix build utils)
&invoke-error)
(program (car args))
(arguments (cdr args))
(exit-status exit-val)
(term-signal term-sig)
(stop-signal stop-sig)))))))))))
(define (final-page result prev-steps)
(run-final-page result prev-steps))
@ -142,4 +225,7 @@ problem. The backtrace is displayed below. Please report it by email to \
(services-page services-page)
(welcome-page welcome-page)
(parameters-menu parameters-menu)
(parameters-page parameters-page)))
(parameters-page parameters-page)
(dump-page dump-page)
(run-command newt-run-command)
(report-page report-page)))

View file

@ -65,9 +65,7 @@ connection is pending."
(run-error-page
(G_ "No ethernet service available, please try again.")
(G_ "No service"))
(raise
(condition
(&installer-step-abort))))
(abort-to-prompt 'installer-step 'abort))
((service)
;; Only one service is available so return it directly.
service)
@ -81,7 +79,5 @@ connection is pending."
#:button-text (G_ "Exit")
#:button-callback-procedure
(lambda _
(raise
(condition
(&installer-step-abort))))
(abort-to-prompt 'installer-step 'abort))
#:listbox-callback-procedure connect-ethernet-service))))

View file

@ -59,9 +59,7 @@ This will take a few minutes.")
#:file-textbox-height height
#:exit-button-callback-procedure
(lambda ()
(raise
(condition
(&installer-step-abort)))))))
(abort-to-prompt 'installer-step 'abort)))))
(define (run-install-success-page)
(match (current-clients)
@ -88,9 +86,7 @@ press the button to reboot.")))
(G_ "Restart the installer")
(G_ "The final system installation step failed. You can resume from \
a specific step, or restart the installer."))
(1 (raise
(condition
(&installer-step-abort))))
(1 (abort-to-prompt 'installer-step 'abort))
(2
;; Keep going, the installer will be restarted later on.
#t)))
@ -109,7 +105,7 @@ a specific step, or restart the installer."))
(define (run-final-page result prev-steps)
(define (wait-for-clients)
(unless (null? (current-clients))
(syslog "waiting with clients before starting final step~%")
(installer-log-line "waiting with clients before starting final step")
(send-to-clients '(starting-final-step))
(match (select (current-clients) '() '())
(((port _ ...) _ _)
@ -119,7 +115,7 @@ a specific step, or restart the installer."))
;; things such as changing the swap partition label.
(wait-for-clients)
(syslog "proceeding with final step~%")
(installer-log-line "proceeding with final step")
(let* ((configuration (format-configuration prev-steps result))
(user-partitions (result-step result 'partition))
(locale (result-step result 'locale))

View file

@ -59,9 +59,7 @@ different layout at any time from the parameters menu.")))
((param) (const #f))
(else
(lambda _
(raise
(condition
(&installer-step-abort)))))))))
(abort-to-prompt 'installer-step 'abort)))))))
(define (run-variant-page variants variant->text)
(let ((title (G_ "Variant")))
@ -74,9 +72,7 @@ different layout at any time from the parameters menu.")))
#:button-text (G_ "Back")
#:button-callback-procedure
(lambda _
(raise
(condition
(&installer-step-abort)))))))
(abort-to-prompt 'installer-step 'abort)))))
(define (sort-layouts layouts)
"Sort LAYOUTS list by putting the US layout ahead and return it."

View file

@ -43,9 +43,7 @@ installation process and for the installed system.")
#:button-text (G_ "Exit")
#:button-callback-procedure
(lambda _
(raise
(condition
(&installer-step-abort))))))
(abort-to-prompt 'installer-step 'abort))))
;; Immediately install the chosen language so that the territory page that
;; comes after (optionally) is displayed in the chosen language.
@ -63,9 +61,7 @@ installation process and for the installed system.")
#:button-text (G_ "Back")
#:button-callback-procedure
(lambda _
(raise
(condition
(&installer-step-abort)))))))
(abort-to-prompt 'installer-step 'abort)))))
(define (run-codeset-page codesets)
(let ((title (G_ "Locale codeset")))
@ -78,9 +74,7 @@ installation process and for the installed system.")
#:button-text (G_ "Back")
#:button-callback-procedure
(lambda _
(raise
(condition
(&installer-step-abort)))))))
(abort-to-prompt 'installer-step 'abort)))))
(define (run-modifier-page modifiers modifier->text)
(let ((title (G_ "Locale modifier")))
@ -94,9 +88,7 @@ symbol.")
#:button-text (G_ "Back")
#:button-callback-procedure
(lambda _
(raise
(condition
(&installer-step-abort)))))))
(abort-to-prompt 'installer-step 'abort)))))
(define* (run-locale-page #:key
supported-locales
@ -110,11 +102,10 @@ associating a territory code with a territory name. The formatted locale, under
glibc format is returned."
(define (break-on-locale-found locales)
"Raise the &installer-step-break condition if LOCALES contains exactly one
"Break to the installer step if LOCALES contains exactly one
element."
(and (= (length locales) 1)
(raise
(condition (&installer-step-break)))))
(abort-to-prompt 'installer-step 'break)))
(define (filter-locales locales result)
"Filter the list of locale records LOCALES using the RESULT returned by
@ -218,8 +209,8 @@ glibc locale string and return it."
;; If run-installer-steps returns locally, it means that the user had to go
;; through all steps (language, territory, codeset and modifier) to select a
;; locale. In that case, like if we exited by raising &installer-step-break
;; condition, turn the result into a glibc locale string and return it.
;; locale. In that case, like if we exited by breaking to the installer
;; step, turn the result into a glibc locale string and return it.
(result->locale-string
supported-locales
(run-installer-steps #:steps locale-steps)))

View file

@ -65,12 +65,8 @@ Internet and return the selected technology. For now, only technologies with
(G_ "Exit")
(G_ "The install process requires Internet access but no \
network devices were found. Do you want to continue anyway?"))
((1) (raise
(condition
(&installer-step-break))))
((2) (raise
(condition
(&installer-step-abort))))))
((1) (abort-to-prompt 'installer-step 'break))
((2) (abort-to-prompt 'installer-step 'abort))))
((technology)
;; Since there's only one technology available, skip the selection
;; screen.
@ -86,9 +82,7 @@ network devices were found. Do you want to continue anyway?"))
#:button-text (G_ "Exit")
#:button-callback-procedure
(lambda _
(raise
(condition
(&installer-step-abort))))))))
(abort-to-prompt 'installer-step 'abort))))))
(define (find-technology-by-type technologies type)
"Find and return a technology with the given TYPE in TECHNOLOGIES list."
@ -156,9 +150,7 @@ FULL-VALUE tentatives, spaced by 1 second."
(G_ "The selected network does not provide access to the \
Internet and the Guix substitute server, please try again.")
(G_ "Connection error"))
(raise
(condition
(&installer-step-abort))))))
(abort-to-prompt 'installer-step 'abort))))
(define (run-network-page)
"Run a page to allow the user to configure connman so that it can access the

View file

@ -22,6 +22,7 @@
#:use-module (gnu installer steps)
#:use-module (gnu installer utils)
#:use-module (gnu installer newt utils)
#:use-module (guix build utils)
#:use-module (guix i18n)
#:use-module (ice-9 i18n)
#:use-module (ice-9 match)
@ -43,6 +44,10 @@
run-scale-page
run-checkbox-tree-page
run-file-textbox-page
%ok-button
%exit-button
run-textbox-page
run-dump-page
run-form-with-clients))
@ -93,9 +98,9 @@ disconnect.
Like 'run-form', return two values: the exit reason, and an \"argument\"."
(define* (discard-client! port #:optional errno)
(if errno
(syslog "removing client ~d due to ~s~%"
(installer-log-line "removing client ~d due to ~s"
(fileno port) (strerror errno))
(syslog "removing client ~d due to EOF~%"
(installer-log-line "removing client ~d due to EOF"
(fileno port)))
;; XXX: Watch out! There's no 'form-unwatch-fd' procedure in Newt so we
@ -124,7 +129,7 @@ Like 'run-form', return two values: the exit reason, and an \"argument\"."
(send-to-clients exp)
(let loop ()
(syslog "running form ~s (~s) with ~d clients~%"
(installer-log-line "running form ~s (~s) with ~d clients"
form title (length (current-clients)))
;; Call 'watch-clients!' within the loop because there might be new
@ -146,7 +151,7 @@ Like 'run-form', return two values: the exit reason, and an \"argument\"."
(discard-client! port)
(loop))
(obj
(syslog "form ~s (~s): client ~d replied ~s~%"
(installer-log-line "form ~s (~s): client ~d replied ~s"
form title (fileno port) obj)
(values 'exit-fd-ready obj))))
(lambda args
@ -156,7 +161,8 @@ Like 'run-form', return two values: the exit reason, and an \"argument\"."
;; Accept a new client and send it EXP.
(match (accept port)
((client . _)
(syslog "accepting new client ~d while on form ~s~%"
(installer-log-line
"accepting new client ~d while on form ~s"
(fileno client) form)
(catch 'system-error
(lambda ()
@ -486,7 +492,7 @@ the current listbox item has to be selected by key."
(string=? str (listbox-item->text item))))
keys)
((key . item) item)
(#f (raise (condition (&installer-step-abort))))))
(#f (abort-to-prompt 'installer-step 'abort))))
;; On every listbox element change, check if we need to skip it. If yes,
;; depending on the 'last-listbox-key', jump forward or backward. If no,
@ -688,7 +694,7 @@ ITEMS when 'Ok' is pressed."
(string=? str (item->text item))))
keys)
((key . item) item)
(#f (raise (condition (&installer-step-abort))))))
(#f (abort-to-prompt 'installer-step 'abort))))
(add-form-to-grid grid form #t)
(make-wrapped-grid-window grid title)
@ -726,8 +732,7 @@ ITEMS when 'Ok' is pressed."
(newt-suspend)
;; Use Nano because it syntax-highlights Scheme by default.
;; TODO: Add a menu to choose an editor?
(run-command (list "/run/current-system/profile/bin/nano" file)
#:locale locale)
(invoke "nano" file)
(newt-resume))
(define* (run-file-textbox-page #:key
@ -811,6 +816,151 @@ ITEMS when 'Ok' is pressed."
(destroy-form-and-pop form))))
(if (and (eq? exit-reason 'exit-component)
edit-button
(components=? argument edit-button))
(loop) ;recurse in tail position
result)))))
(define %ok-button
(cons (G_ "Ok") (lambda () #t)))
(define %exit-button
(cons (G_ "Exit") (lambda () (abort-to-prompt 'installer-step 'abort))))
(define %default-buttons
(list %ok-button %exit-button))
(define (make-newt-buttons buttons-spec)
(map
(match-lambda ((title . proc)
(cons (make-button -1 -1 title) proc)))
buttons-spec))
(define* (run-textbox-page #:key
title
info-text
content
(buttons-spec %default-buttons))
"Run a page to display INFO-TEXT followed by CONTENT to the user, who has to
choose an action among the buttons specified by BUTTONS-SPEC.
BUTTONS-SPEC is an association list with button labels as keys, and callback
procedures as values.
This procedure returns the result of the callback procedure of the button
chosen by the user."
(define info-textbox
(make-reflowed-textbox -1 -1 info-text
50
#:flags FLAG-BORDER))
(define content-textbox
(make-textbox -1 -1
50
30
(logior FLAG-SCROLL FLAG-BORDER)))
(define buttons
(make-newt-buttons buttons-spec))
(define grid
(vertically-stacked-grid
GRID-ELEMENT-COMPONENT info-textbox
GRID-ELEMENT-COMPONENT content-textbox
GRID-ELEMENT-SUBGRID
(apply
horizontal-stacked-grid
(append-map (match-lambda ((button . proc)
(list GRID-ELEMENT-COMPONENT button)))
buttons))))
(define form (make-form #:flags FLAG-NOF12))
(add-form-to-grid grid form #t)
(make-wrapped-grid-window grid title)
(set-textbox-text content-textbox
(receive (_w _h text)
(reflow-text content
50
0 0)
text))
(receive (exit-reason argument)
(run-form-with-clients form
`(contents-dialog (title ,title)
(text ,info-text)
(content ,content)))
(destroy-form-and-pop form)
(match exit-reason
('exit-component
(let ((proc (assq-ref buttons argument)))
(if proc
(proc)
(raise
(condition
(&serious)
(&message
(message (format #f "Unable to find corresponding PROC for \
component ~a." argument))))))))
;; TODO
('exit-fd-ready
(raise (condition (&serious)))))))
(define* (run-dump-page base-dir file-choices)
(define info-textbox
(make-reflowed-textbox -1 -1 "Please select files you wish to include in \
the dump."
50
#:flags FLAG-BORDER))
(define components
(map (match-lambda ((file . enabled)
(list
(make-compact-button -1 -1 "Edit")
(make-checkbox -1 -1 file (if enabled #\x #\ ) " x")
file)))
file-choices))
(define sub-grid (make-grid 2 (length components)))
(for-each
(match-lambda* (((button checkbox _) index)
(set-grid-field sub-grid 0 index
GRID-ELEMENT-COMPONENT checkbox
#:anchor ANCHOR-LEFT)
(set-grid-field sub-grid 1 index
GRID-ELEMENT-COMPONENT button
#:anchor ANCHOR-LEFT)))
components (iota (length components)))
(define grid
(vertically-stacked-grid
GRID-ELEMENT-COMPONENT info-textbox
GRID-ELEMENT-SUBGRID sub-grid
GRID-ELEMENT-COMPONENT (make-button -1 -1 "Create")))
(define form (make-form #:flags FLAG-NOF12))
(add-form-to-grid grid form #t)
(make-wrapped-grid-window grid "Installer dump")
(define prompt-tag (make-prompt-tag))
(let loop ()
(call-with-prompt prompt-tag
(lambda ()
(receive (exit-reason argument)
(run-form-with-clients form
`(dump-page))
(match exit-reason
('exit-component
(let ((result
(map (match-lambda
((edit checkbox filename)
(if (components=? edit argument)
(abort-to-prompt prompt-tag filename)
(cons filename (eq? #\x
(checkbox-value checkbox))))))
components)))
(destroy-form-and-pop form)
result))
;; TODO
('exit-fd-ready
(raise (condition (&serious)))))))
(lambda (k file)
(edit-file (string-append base-dir "/" file))
(loop)))))

View file

@ -36,10 +36,8 @@
#:export (run-partitioning-page))
(define (button-exit-action)
"Raise the &installer-step-abort condition."
(raise
(condition
(&installer-step-abort))))
"Abort the installer step."
(abort-to-prompt 'installer-step 'abort))
(define (run-scheme-page)
"Run a page asking the user for a partitioning scheme."
@ -801,9 +799,9 @@ by pressing the Exit button.~%~%")))
;; Make sure the disks are not in use before proceeding to formatting.
(free-parted eligible-devices)
(format-user-partitions user-partitions-with-pass)
(syslog "formatted ~a user partitions~%"
(installer-log-line "formatted ~a user partitions"
(length user-partitions-with-pass))
(syslog "user-partitions: ~a~%" user-partitions)
(installer-log-line "user-partitions: ~a" user-partitions)
(destroy-form-and-pop form)
user-partitions))

View file

@ -46,9 +46,7 @@ to choose from them later when you log in.")
#:checkbox-tree-height 9
#:exit-button-callback-procedure
(lambda ()
(raise
(condition
(&installer-step-abort)))))))
(abort-to-prompt 'installer-step 'abort)))))
(define (run-networking-cbt-page)
"Run a page allowing the user to select networking services."
@ -65,9 +63,7 @@ system.")
#:checkbox-tree-height 5
#:exit-button-callback-procedure
(lambda ()
(raise
(condition
(&installer-step-abort)))))))
(abort-to-prompt 'installer-step 'abort)))))
(define (run-printing-services-cbt-page)
"Run a page allowing the user to select document services such as CUPS."
@ -85,9 +81,7 @@ system.")
#:checkbox-tree-height 9
#:exit-button-callback-procedure
(lambda ()
(raise
(condition
(&installer-step-abort)))))))
(abort-to-prompt 'installer-step 'abort)))))
(define (run-console-services-cbt-page)
"Run a page to select various system adminstration services for non-graphical
@ -130,9 +124,7 @@ client may be enough for a server.")
#:button-text (G_ "Exit")
#:button-callback-procedure
(lambda _
(raise
(condition
(&installer-step-abort)))))))
(abort-to-prompt 'installer-step 'abort)))))
(define (run-services-page)
(let ((desktop (run-desktop-environments-cbt-page)))

View file

@ -65,9 +65,7 @@ returned."
#:button-callback-procedure
(if (null? path)
(lambda _
(raise
(condition
(&installer-step-abort))))
(abort-to-prompt 'installer-step 'abort))
(lambda _
(loop (all-but-last path))))
#:listbox-callback-procedure

View file

@ -20,7 +20,6 @@
(define-module (gnu installer newt user)
#:use-module (gnu installer user)
#:use-module ((gnu installer steps) #:select (&installer-step-abort))
#:use-module (gnu installer newt page)
#:use-module (gnu installer newt utils)
#:use-module (gnu installer utils)
@ -144,7 +143,7 @@ REAL-NAME, and HOME-DIRECTORY as the initial values in the form."
(name name)
(real-name real-name)
(home-directory home-directory)
(password password))
(password (make-secret password)))
(run-user-add-page #:name name
#:real-name real-name
#:home-directory
@ -257,9 +256,7 @@ administrator (\"root\").")
(run users))
(reverse users))
((components=? argument exit-button)
(raise
(condition
(&installer-step-abort))))))
(abort-to-prompt 'installer-step 'abort))))
('exit-fd-ready
;; Read the complete user list at once.
(match argument
@ -269,7 +266,7 @@ administrator (\"root\").")
(map (lambda (name real-name home password)
(user (name name) (real-name real-name)
(home-directory home)
(password password)))
(password (make-secret password))))
names real-names homes passwords))))))
(lambda ()
(destroy-form-and-pop form))))))
@ -277,5 +274,5 @@ administrator (\"root\").")
;; Add a "root" user simply to convey the root password.
(cons (user (name "root")
(home-directory "/root")
(password (run-root-password-page)))
(password (make-secret (run-root-password-page))))
(run '())))

View file

@ -84,7 +84,7 @@ we want this page to occupy all the screen space available."
(string=? str (listbox-item->text item))))
keys)
((key . item) item)
(#f (raise (condition (&installer-step-abort))))))
(#f (abort-to-prompt 'installer-step 'abort))))
(set-textbox-text logo-textbox (read-all logo))

View file

@ -237,9 +237,7 @@ force a wifi scan."
(run-wifi-scan-page)
(run-wifi-page))
((components=? argument exit-button)
(raise
(condition
(&installer-step-abort))))
(abort-to-prompt 'installer-step 'abort))
((components=? argument listbox)
(let ((result (connect-wifi-service listbox service-items)))
(unless result

View file

@ -343,8 +343,7 @@ fail. See rereadpt function in wipefs.c of util-linux for an explanation."
(define (remove-logical-devices)
"Remove all active logical devices."
(with-null-output-ports
(invoke "dmsetup" "remove_all")))
((run-command-in-installer) "dmsetup" "remove_all"))
(define (installer-root-partition-path)
"Return the root partition path, or #f if it could not be detected."
@ -371,7 +370,8 @@ which are smaller than %MIN-DEVICE-SIZE."
(let ((length (device-length device))
(sector-size (device-sector-size device)))
(and (< (* length sector-size) %min-device-size)
(syslog "~a is not eligible because it is smaller than ~a.~%"
(installer-log-line "~a is not eligible because it is smaller than \
~a."
(device-path device)
(unit-format-custom-byte device
%min-device-size
@ -391,7 +391,8 @@ which are smaller than %MIN-DEVICE-SIZE."
(string=? the-installer-root-partition-path
(partition-get-path partition)))
(disk-partitions disk)))))
(syslog "~a is not eligible because it is the installation device.~%"
(installer-log-line "~a is not eligible because it is the \
installation device."
(device-path device))))
(remove
@ -634,8 +635,14 @@ determined by MAX-LENGTH-COLUMN procedure."
(define (mklabel device type-name)
"Create a partition table on DEVICE. TYPE-NAME is the type of the partition
table, \"msdos\" or \"gpt\"."
(let ((type (disk-type-get type-name)))
(disk-new-fresh device type)))
(let* ((type (disk-type-get type-name))
(disk (disk-new-fresh device type)))
(or disk
(raise
(condition
(&error)
(&message (message (format #f "Cannot create partition table of type
~a on device ~a." type-name (device-path device)))))))))
;;
@ -817,23 +824,21 @@ cause them to cross."
(disk-add-partition disk partition no-constraint)))
(partition-ok?
(or partition-constraint-ok? partition-no-contraint-ok?)))
(syslog "Creating partition:
~/type: ~a
~/filesystem-type: ~a
~/start: ~a
~/end: ~a
~/start-range: [~a, ~a]
~/end-range: [~a, ~a]
~/constraint: ~a
~/no-constraint: ~a
"
partition-type
(filesystem-type-name filesystem-type)
start-sector*
end-sector
(geometry-start start-range) (geometry-end start-range)
(geometry-start end-range) (geometry-end end-range)
partition-constraint-ok?
(installer-log-line "Creating partition:")
(installer-log-line "~/type: ~a" partition-type)
(installer-log-line "~/filesystem-type: ~a"
(filesystem-type-name filesystem-type))
(installer-log-line "~/start: ~a" start-sector*)
(installer-log-line "~/end: ~a" end-sector)
(installer-log-line "~/start-range: [~a, ~a]"
(geometry-start start-range)
(geometry-end start-range))
(installer-log-line "~/end-range: [~a, ~a]"
(geometry-start end-range)
(geometry-end end-range))
(installer-log-line "~/constraint: ~a"
partition-constraint-ok?)
(installer-log-line "~/no-constraint: ~a"
partition-no-contraint-ok?)
;; Set the partition name if supported.
(when (and partition-ok? has-name? name)
@ -1115,53 +1120,37 @@ list and return the updated list."
(file-name file-name))))
user-partitions))
(define-syntax-rule (with-null-output-ports exp ...)
"Evaluate EXP with both the output port and the error port pointing to the
bit bucket."
(with-output-to-port (%make-void-port "w")
(lambda ()
(with-error-to-port (%make-void-port "w")
(lambda () exp ...)))))
(define (create-btrfs-file-system partition)
"Create a btrfs file-system for PARTITION file-name."
(with-null-output-ports
(invoke "mkfs.btrfs" "-f" partition)))
((run-command-in-installer) "mkfs.btrfs" "-f" partition))
(define (create-ext4-file-system partition)
"Create an ext4 file-system for PARTITION file-name."
(with-null-output-ports
(invoke "mkfs.ext4" "-F" partition)))
((run-command-in-installer) "mkfs.ext4" "-F" partition))
(define (create-fat16-file-system partition)
"Create a fat16 file-system for PARTITION file-name."
(with-null-output-ports
(invoke "mkfs.fat" "-F16" partition)))
((run-command-in-installer) "mkfs.fat" "-F16" partition))
(define (create-fat32-file-system partition)
"Create a fat32 file-system for PARTITION file-name."
(with-null-output-ports
(invoke "mkfs.fat" "-F32" partition)))
((run-command-in-installer) "mkfs.fat" "-F32" partition))
(define (create-jfs-file-system partition)
"Create a JFS file-system for PARTITION file-name."
(with-null-output-ports
(invoke "jfs_mkfs" "-f" partition)))
((run-command-in-installer) "jfs_mkfs" "-f" partition))
(define (create-ntfs-file-system partition)
"Create a JFS file-system for PARTITION file-name."
(with-null-output-ports
(invoke "mkfs.ntfs" "-F" "-f" partition)))
((run-command-in-installer) "mkfs.ntfs" "-F" "-f" partition))
(define (create-xfs-file-system partition)
"Create an XFS file-system for PARTITION file-name."
(with-null-output-ports
(invoke "mkfs.xfs" "-f" partition)))
((run-command-in-installer) "mkfs.xfs" "-f" partition))
(define (create-swap-partition partition)
"Set up swap area on PARTITION file-name."
(with-null-output-ports
(invoke "mkswap" "-f" partition)))
((run-command-in-installer) "mkswap" "-f" partition))
(define (call-with-luks-key-file password proc)
"Write PASSWORD in a temporary file and pass it to PROC as argument."
@ -1188,17 +1177,18 @@ USER-PARTITION if it is encrypted, or the plain file-name otherwise."
(call-with-luks-key-file
password
(lambda (key-file)
(syslog "formatting and opening LUKS entry ~s at ~s~%"
(installer-log-line "formatting and opening LUKS entry ~s at ~s"
label file-name)
(system* "cryptsetup" "-q" "luksFormat" file-name key-file)
(system* "cryptsetup" "open" "--type" "luks"
((run-command-in-installer) "cryptsetup" "-q" "luksFormat"
file-name key-file)
((run-command-in-installer) "cryptsetup" "open" "--type" "luks"
"--key-file" key-file file-name label)))))
(define (luks-close user-partition)
"Close the encrypted partition pointed by USER-PARTITION."
(let ((label (user-partition-crypt-label user-partition)))
(syslog "closing LUKS entry ~s~%" label)
(system* "cryptsetup" "close" label)))
(installer-log-line "closing LUKS entry ~s" label)
((run-command-in-installer) "cryptsetup" "close" label)))
(define (format-user-partitions user-partitions)
"Format the <user-partition> records in USER-PARTITIONS list with
@ -1279,7 +1269,7 @@ respective mount-points."
(file-name
(user-partition-upper-file-name user-partition)))
(mkdir-p target)
(syslog "mounting ~s on ~s~%" file-name target)
(installer-log-line "mounting ~s on ~s" file-name target)
(mount file-name target mount-type)))
sorted-partitions)))
@ -1295,7 +1285,7 @@ respective mount-points."
(target
(string-append (%installer-target-dir)
mount-point)))
(syslog "unmounting ~s~%" target)
(installer-log-line "unmounting ~s" target)
(umount target)
(when crypt-label
(luks-close user-partition))))
@ -1486,6 +1476,6 @@ the devices not to be used before returning."
(error
(format #f (G_ "Device ~a is still in use.")
file-name))
(syslog "Syncing ~a took ~a seconds.~%"
(installer-log-line "Syncing ~a took ~a seconds."
file-name (time-second time)))))
device-file-names)))

View file

@ -41,7 +41,10 @@
installer-services-page
installer-welcome-page
installer-parameters-menu
installer-parameters-page))
installer-parameters-page
installer-dump-page
installer-run-command
installer-report-page))
;;;
@ -61,7 +64,7 @@
(init installer-init)
;; procedure: void -> void
(exit installer-exit)
;; procedure (key arguments) -> void
;; procedure (key arguments) -> (action)
(exit-error installer-exit-error)
;; procedure void -> void
(final-page installer-final-page)
@ -91,4 +94,10 @@
;; procedure (menu-proc) -> void
(parameters-menu installer-parameters-menu)
;; procedure (keyboard-layout-selection) -> void
(parameters-page installer-parameters-page))
(parameters-page installer-parameters-page)
;; procedure (dump) -> void
(dump-page installer-dump-page)
;; procedure command -> bool
(run-command installer-run-command)
;; procedure (report) -> void
(report-page installer-report-page))

View file

@ -28,13 +28,7 @@
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (rnrs io ports)
#:export (&installer-step-abort
installer-step-abort?
&installer-step-break
installer-step-break?
<installer-step>
#:export (<installer-step>
installer-step
make-installer-step
installer-step?
@ -52,15 +46,13 @@
%installer-configuration-file
%installer-target-dir
format-configuration
configuration->file))
configuration->file
;; This condition may be raised to abort the current step.
(define-condition-type &installer-step-abort &condition
installer-step-abort?)
%current-result))
;; This condition may be raised to break out from the steps execution.
(define-condition-type &installer-step-break &condition
installer-step-break?)
;; Hash table storing the step results. Use it only for logging and debug
;; purposes.
(define %current-result (make-hash-table))
;; An installer-step record is basically an id associated to a compute
;; procedure. The COMPUTE procedure takes exactly one argument, an association
@ -88,8 +80,10 @@
(rewind-strategy 'previous)
(menu-proc (const #f)))
"Run the COMPUTE procedure of all <installer-step> records in STEPS
sequentially. If the &installer-step-abort condition is raised, fallback to a
previous install-step, accordingly to the specified REWIND-STRATEGY.
sequentially, inside a the 'installer-step prompt. When aborted to with a
parameter of 'abort, fallback to a previous install-step, accordingly to the
specified REWIND-STRATEGY. When aborted to with a parameter of 'break, stop
the computation and return the accumalated result so far.
REWIND-STRATEGY possible values are 'previous, 'menu and 'start. If 'previous
is selected, the execution will resume at the previous installer-step. If
@ -106,10 +100,7 @@ the form:
where STEP-ID is the ID field of the installer-step and COMPUTE-RESULT the
result of the associated COMPUTE procedure. This result association list is
passed as argument of every COMPUTE procedure. It is finally returned when the
computation is over.
If the &installer-step-break condition is raised, stop the computation and
return the accumalated result so far."
computation is over."
(define (pop-result list)
(cdr list))
@ -143,17 +134,27 @@ return the accumalated result so far."
(match todo-steps
(() (reverse result))
((step . rest-steps)
(guard (c ((installer-step-abort? c)
(call-with-prompt 'installer-step
(lambda ()
(installer-log-line "running step '~a'" (installer-step-id step))
(let* ((id (installer-step-id step))
(compute (installer-step-compute step))
(res (compute result done-steps)))
(hash-set! %current-result id res)
(run (alist-cons id res result)
#:todo-steps rest-steps
#:done-steps (append done-steps (list step)))))
(lambda (k action)
(match action
('abort
(case rewind-strategy
((previous)
(match done-steps
(()
;; We cannot go previous the first step. So re-raise
;; the exception. It might be useful in the case of
;; nested run-installer-steps. Abort to 'raise-above
;; prompt to prevent the condition from being catched
;; by one of the previously installed guard.
(abort-to-prompt 'raise-above c))
;; We cannot go previous the first step. Abort again to
;; 'installer-step prompt. It might be useful in the case
;; of nested run-installer-steps.
(abort-to-prompt 'installer-step action))
((prev-done ... last-done)
(run (pop-result result)
#:todo-steps (cons last-done todo-steps)
@ -172,33 +173,22 @@ return the accumalated result so far."
(if (null? done-steps)
;; Same as above, it makes no sense to jump to start
;; when we are at the first installer-step. Abort to
;; 'raise-above prompt to re-raise the condition.
(abort-to-prompt 'raise-above c)
;; 'installer-step prompt again.
(abort-to-prompt 'installer-step action)
(run '()
#:todo-steps steps
#:done-steps '())))))
((installer-step-break? c)
(reverse result)))
(syslog "running step '~a'~%" (installer-step-id step))
(let* ((id (installer-step-id step))
(compute (installer-step-compute step))
(res (compute result done-steps)))
(run (alist-cons id res result)
#:todo-steps rest-steps
#:done-steps (append done-steps (list step))))))))
('break
(reverse result))))))))
;; Ignore SIGPIPE so that we don't die if a client closes the connection
;; prematurely.
(sigaction SIGPIPE SIG_IGN)
(with-server-socket
(call-with-prompt 'raise-above
(lambda ()
(run '()
#:todo-steps steps
#:done-steps '()))
(lambda (k condition)
(raise condition)))))
#:done-steps '())))
(define (find-step-by-id steps id)
"Find and return the step in STEPS whose id is equal to ID."

View file

@ -19,7 +19,14 @@
(define-module (gnu installer user)
#:use-module (guix records)
#:use-module (srfi srfi-1)
#:export (<user>
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-9 gnu)
#:export (<secret>
secret?
make-secret
secret-content
<user>
user
make-user
user-name
@ -30,6 +37,16 @@
users->configuration))
(define-record-type <secret>
(make-secret content)
secret?
(content secret-content))
(set-record-type-printer!
<secret>
(lambda (secret port)
(format port "<secret>")))
(define-record-type* <user>
user make-user
user?

View file

@ -25,7 +25,10 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-19)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (ice-9 control)
#:use-module (ice-9 match)
#:use-module (ice-9 popen)
#:use-module (ice-9 rdelim)
#:use-module (ice-9 regex)
#:use-module (ice-9 format)
@ -34,10 +37,17 @@
read-all
nearest-exact-integer
read-percentage
run-external-command-with-handler
run-external-command-with-line-hooks
run-command
run-command-in-installer
syslog-port
syslog
%syslog-line-hook
installer-log-port
%installer-log-line-hook
%default-installer-line-hooks
installer-log-line
call-with-time
let/time
@ -74,37 +84,99 @@ number. If no percentage is found, return #f"
(and result
(string->number (match:substring result 1)))))
(define* (run-external-command-with-handler handler command)
"Run command specified by the list COMMAND in a child with output handler
HANDLER. HANDLER is a procedure taking an input port, to which the command
will write its standard output and error. Returns the integer status value of
the child process as returned by waitpid."
(match-let (((input . output) (pipe)))
;; Hack to work around Guile bug 52835
(define dup-output (duplicate-port output "w"))
;; Void pipe, but holds the pid for close-pipe.
(define dummy-pipe
(with-input-from-file "/dev/null"
(lambda ()
(with-output-to-port output
(lambda ()
(with-error-to-port dup-output
(lambda ()
(apply open-pipe* (cons "" command)))))))))
(close-port output)
(close-port dup-output)
(handler input)
(close-port input)
(close-pipe dummy-pipe)))
(define (run-external-command-with-line-hooks line-hooks command)
"Run command specified by the list COMMAND in a child, processing each
output line with the procedures in LINE-HOOKS. Returns the integer status
value of the child process as returned by waitpid."
(define (handler input)
(and
(and=> (get-line input)
(lambda (line)
(if (eof-object? line)
#f
(begin (for-each (lambda (f) (f line))
(append line-hooks
%default-installer-line-hooks))
#t))))
(handler input)))
(run-external-command-with-handler handler command))
(define* (run-command command)
"Run COMMAND, a list of strings. Return true if COMMAND exited
successfully, #f otherwise."
(define env (environ))
(define (pause)
(format #t (G_ "Press Enter to continue.~%"))
(send-to-clients '(pause))
(environ env) ;restore environment variables
(match (select (cons (current-input-port) (current-clients))
'() '())
(((port _ ...) _ _)
(read-line port))))
(setenv "PATH" "/run/current-system/profile/bin")
(installer-log-line "running command ~s" command)
(define result (run-external-command-with-line-hooks
(list %display-line-hook)
command))
(define exit-val (status:exit-val result))
(define term-sig (status:term-sig result))
(define stop-sig (status:stop-sig result))
(define succeeded?
(cond
((and exit-val (not (zero? exit-val)))
(installer-log-line "command ~s exited with value ~a"
command exit-val)
(format #t (G_ "Command ~s exited with value ~a")
command exit-val)
#f)
(term-sig
(installer-log-line "command ~s killed by signal ~a"
command term-sig)
(format #t (G_ "Command ~s killed by signal ~a")
command term-sig)
#f)
(stop-sig
(installer-log-line "command ~s stopped by signal ~a"
command stop-sig)
(format #t (G_ "Command ~s stopped by signal ~a")
command stop-sig)
#f)
(else
(installer-log-line "command ~s succeeded" command)
(format #t (G_ "Command ~s succeeded") command)
#t)))
(newline)
(pause)
succeeded?)
(guard (c ((invoke-error? c)
(newline)
(format (current-error-port)
(G_ "Command failed with exit code ~a.~%")
(invoke-error-exit-status c))
(syslog "command ~s failed with exit code ~a"
command (invoke-error-exit-status c))
(pause)
#f))
(syslog "running command ~s~%" command)
(apply invoke command)
(syslog "command ~s succeeded~%" command)
(newline)
(pause)
#t))
(define run-command-in-installer
(make-parameter
(lambda (. args)
(raise
(condition
(&serious)
(&message (message "run-command-in-installer not set")))))))
;;;
@ -142,6 +214,9 @@ values."
(set! port (open-syslog-port)))
(or port (%make-void-port "w")))))
(define (%syslog-line-hook line)
(format (syslog-port) "installer[~d]: ~a~%" (getpid) line))
(define-syntax syslog
(lambda (s)
"Like 'format', but write to syslog."
@ -152,6 +227,43 @@ values."
(syntax->datum #'fmt))))
#'(format (syslog-port) fmt (getpid) args ...))))))
(define (open-new-log-port)
(define now (localtime (time-second (current-time))))
(define filename
(format #f "/tmp/installer.~a.log"
(strftime "%F.%T" now)))
(open filename (logior O_RDWR
O_CREAT)))
(define installer-log-port
(let ((port #f))
(lambda ()
"Return an input and output port to the installer log."
(unless port
(set! port (open-new-log-port)))
port)))
(define (%installer-log-line-hook line)
(format (installer-log-port) "~a~%" line))
(define (%display-line-hook line)
(display line)
(newline))
(define %default-installer-line-hooks
(list %syslog-line-hook
%installer-log-line-hook))
(define-syntax installer-log-line
(lambda (s)
"Like 'format', but uses the default line hooks, and only formats one line."
(syntax-case s ()
((_ fmt args ...)
(string? (syntax->datum #'fmt))
#'(let ((formatted (format #f fmt args ...)))
(for-each (lambda (f) (f formatted))
%default-installer-line-hooks))))))
;;;
;;; Client protocol.
@ -214,7 +326,8 @@ accepting socket."
(let ((errno (system-error-errno args)))
(if (memv errno (list EPIPE ECONNRESET ECONNABORTED))
(begin
(syslog "removing client ~s due to ~s while replying~%"
(installer-log-line
"removing client ~s due to ~s while replying"
(fileno client) (strerror errno))
(false-if-exception (close-port client))
remainder)

View file

@ -7,7 +7,7 @@
# Copyright © 2016, 2017, 2018 Kei Kebreau <kkebreau@posteo.net>
# Copyright © 2016, 2017 Rene Saavedra <rennes@openmailbox.org>
# Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
# Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
# Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
# Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
# Copyright © 2016, 2017, 2018, 2019 Alex Vong <alexvong1995@gmail.com>
# Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
@ -79,6 +79,7 @@ GNU_SYSTEM_MODULES = \
%D%/ci.scm \
%D%/home.scm \
%D%/home/services.scm \
%D%/home/services/desktop.scm \
%D%/home/services/symlink-manager.scm \
%D%/home/services/fontutils.scm \
%D%/home/services/shells.scm \
@ -581,6 +582,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/time.scm \
%D%/packages/tls.scm \
%D%/packages/tmux.scm \
%D%/packages/toolkits.scm \
%D%/packages/tor.scm \
%D%/packages/tv.scm \
%D%/packages/uglifyjs.scm \
@ -758,6 +760,7 @@ GNU_SYSTEM_MODULES = \
INSTALLER_MODULES = \
%D%/installer.scm \
%D%/installer/connman.scm \
%D%/installer/dump.scm \
%D%/installer/final.scm \
%D%/installer/hostname.scm \
%D%/installer/keymap.scm \
@ -859,6 +862,7 @@ dist_patch_DATA = \
%D%/packages/patches/ath9k-htc-firmware-gcc-compat.patch \
%D%/packages/patches/ath9k-htc-firmware-objcopy.patch \
%D%/packages/patches/atlas-gfortran-compat.patch \
%D%/packages/patches/audacity-ffmpeg-fallback.patch \
%D%/packages/patches/audiofile-fix-datatypes-in-tests.patch \
%D%/packages/patches/audiofile-fix-sign-conversion.patch \
%D%/packages/patches/audiofile-CVE-2015-7747.patch \
@ -909,6 +913,8 @@ dist_patch_DATA = \
%D%/packages/patches/binutils-mingw-w64-timestamp.patch \
%D%/packages/patches/binutils-mingw-w64-deterministic.patch \
%D%/packages/patches/binutils-CVE-2021-45078.patch \
%D%/packages/patches/bloomberg-bde-cmake-module-path.patch \
%D%/packages/patches/bloomberg-bde-tools-fix-install-path.patch \
%D%/packages/patches/bpftrace-disable-bfd-disasm.patch \
%D%/packages/patches/byobu-writable-status.patch \
%D%/packages/patches/bubblewrap-fix-locale-in-tests.patch \
@ -965,6 +971,7 @@ dist_patch_DATA = \
%D%/packages/patches/coq-fix-envvars.patch \
%D%/packages/patches/coreutils-ls.patch \
%D%/packages/patches/cpuinfo-system-libraries.patch \
%D%/packages/patches/cpulimit-with-glib-2.32.patch \
%D%/packages/patches/crawl-upgrade-saves.patch \
%D%/packages/patches/crda-optional-gcrypt.patch \
%D%/packages/patches/clucene-contribs-lib.patch \
@ -1002,6 +1009,7 @@ dist_patch_DATA = \
%D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \
%D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \
%D%/packages/patches/dstat-skip-devices-without-io.patch \
%D%/packages/patches/dunst-1.7.3-fix-crash.patch \
%D%/packages/patches/dvd+rw-tools-add-include.patch \
%D%/packages/patches/dynaconf-unvendor-deps.patch \
%D%/packages/patches/ecl-16-format-directive-limit.patch \
@ -1049,6 +1057,10 @@ dist_patch_DATA = \
%D%/packages/patches/fasthenry-spSolve.patch \
%D%/packages/patches/fasthenry-spFactor.patch \
%D%/packages/patches/fbreader-curl-7.62.patch \
%D%/packages/patches/fenics-dolfin-algorithm.patch \
%D%/packages/patches/fenics-dolfin-demo-init.patch \
%D%/packages/patches/fenics-dolfin-boost.patch \
%D%/packages/patches/fenics-dolfin-config-slepc.patch \
%D%/packages/patches/fifengine-boost-compat.patch \
%D%/packages/patches/fifengine-swig-compat.patch \
%D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \
@ -1131,6 +1143,7 @@ dist_patch_DATA = \
%D%/packages/patches/geeqie-clutter.patch \
%D%/packages/patches/genimage-mke2fs-test.patch \
%D%/packages/patches/geoclue-config.patch \
%D%/packages/patches/ghc-4.patch \
%D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \
%D%/packages/patches/ghc-testsuite-dlopen-pie.patch \
%D%/packages/patches/ghc-language-haskell-extract-ghc-8.10.patch \
@ -1227,6 +1240,7 @@ dist_patch_DATA = \
%D%/packages/patches/guile-linux-syscalls.patch \
%D%/packages/patches/guile-3.0-linux-syscalls.patch \
%D%/packages/patches/guile-fibers-destroy-peer-schedulers.patch \
%D%/packages/patches/guile-fibers-wait-for-io-readiness.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-present-coding.patch \
@ -1299,6 +1313,9 @@ dist_patch_DATA = \
%D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \
%D%/packages/patches/jsoncpp-pkg-config-version.patch \
%D%/packages/patches/jami-fix-crash-on-quit.patch \
%D%/packages/patches/jami-images-loading.patch \
%D%/packages/patches/jami-memory-usage.patch \
%D%/packages/patches/jami-libclient-audio-managers.patch \
%D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \
%D%/packages/patches/jamvm-1.5.1-armv7-support.patch \
%D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \
@ -1402,6 +1419,7 @@ dist_patch_DATA = \
%D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \
%D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch \
%D%/packages/patches/libquicktime-ffmpeg.patch \
%D%/packages/patches/librecad-support-for-boost-1.76.patch \
%D%/packages/patches/libssh2-CVE-2019-17498.patch \
%D%/packages/patches/libtar-CVE-2013-4420.patch \
%D%/packages/patches/libtgvoip-disable-sse2.patch \
@ -1504,6 +1522,7 @@ dist_patch_DATA = \
%D%/packages/patches/mozjs38-shell-version.patch \
%D%/packages/patches/mozjs38-tracelogger.patch \
%D%/packages/patches/mozjs38-version-detection.patch \
%D%/packages/patches/mozjs60-riscv64-support.patch \
%D%/packages/patches/mrrescue-support-love-11.patch \
%D%/packages/patches/mtools-mformat-uninitialized.patch \
%D%/packages/patches/mumps-build-parallelism.patch \
@ -1555,7 +1574,6 @@ dist_patch_DATA = \
%D%/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch \
%D%/packages/patches/ocaml-multiple-definitions.patch \
%D%/packages/patches/ocaml-4.09-multiple-definitions.patch \
%D%/packages/patches/ocaml-qcheck-fix-test-whitespace.patch \
%D%/packages/patches/omake-fix-non-determinism.patch \
%D%/packages/patches/oneko-remove-nonfree-characters.patch \
%D%/packages/patches/onnx-optimizer-system-library.patch \
@ -1563,6 +1581,7 @@ dist_patch_DATA = \
%D%/packages/patches/onnx-shared-libraries.patch \
%D%/packages/patches/onnx-skip-model-downloads.patch \
%D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \
%D%/packages/patches/openboardview-use-system-utf8.patch \
%D%/packages/patches/opencascade-oce-glibc-2.26.patch \
%D%/packages/patches/openfoam-4.1-cleanup.patch \
%D%/packages/patches/openjdk-10-idlj-reproducibility.patch \
@ -1574,8 +1593,8 @@ dist_patch_DATA = \
%D%/packages/patches/opensles-add-license-file.patch \
%D%/packages/patches/openssl-runpath.patch \
%D%/packages/patches/openssl-1.1-c-rehash-in.patch \
%D%/packages/patches/openssl-3.0-c-rehash-in.patch \
%D%/packages/patches/openssl-c-rehash-in.patch \
%D%/packages/patches/openssl-CVE-2019-1559.patch \
%D%/packages/patches/open-zwave-hidapi.patch \
%D%/packages/patches/orpheus-cast-errors-and-includes.patch \
%D%/packages/patches/osip-CVE-2017-7853.patch \
@ -1614,6 +1633,9 @@ dist_patch_DATA = \
%D%/packages/patches/p11-kit-hurd.patch \
%D%/packages/patches/patchutils-test-perms.patch \
%D%/packages/patches/patch-hurd-path-max.patch \
%D%/packages/patches/perl-5.14-autosplit-default-time.patch \
%D%/packages/patches/perl-5.14-module-pluggable-search.patch \
%D%/packages/patches/perl-5.14-no-sys-dirs.patch \
%D%/packages/patches/perl-autosplit-default-time.patch \
%D%/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \
%D%/packages/patches/perl-image-exiftool-CVE-2021-22204.patch \
@ -1645,6 +1667,7 @@ dist_patch_DATA = \
%D%/packages/patches/plib-CVE-2011-4620.patch \
%D%/packages/patches/plib-CVE-2012-4552.patch \
%D%/packages/patches/plotutils-spline-test.patch \
%D%/packages/patches/polkit-CVE-2021-4034.patch \
%D%/packages/patches/polkit-configure-elogind.patch \
%D%/packages/patches/polkit-use-duktape.patch \
%D%/packages/patches/portaudio-audacity-compat.patch \
@ -1717,8 +1740,10 @@ dist_patch_DATA = \
%D%/packages/patches/python-pytest-asyncio-python-3.8.patch \
%D%/packages/patches/python-pytorch-runpath.patch \
%D%/packages/patches/python-pytorch-system-libraries.patch \
%D%/packages/patches/python-pytorch-1.9.0-system-libraries.patch \
%D%/packages/patches/python-robotframework-source-date-epoch.patch \
%D%/packages/patches/python-seaborn-kde-test.patch \
%D%/packages/patches/python-seaborn-2690.patch \
%D%/packages/patches/python2-subprocess32-disable-input-test.patch \
%D%/packages/patches/python-unittest2-python3-compat.patch \
%D%/packages/patches/python-unittest2-remove-argparse.patch \
@ -1751,7 +1776,6 @@ dist_patch_DATA = \
%D%/packages/patches/raptor2-heap-overflow.patch \
%D%/packages/patches/ratpoints-sturm_and_rp_private.patch \
%D%/packages/patches/ratpoison-shell.patch \
%D%/packages/patches/rcs-5.10.0-no-stdin.patch \
%D%/packages/patches/rct-add-missing-headers.patch \
%D%/packages/patches/readline-link-ncurses.patch \
%D%/packages/patches/readline-6.2-CVE-2014-2524.patch \
@ -1774,6 +1798,7 @@ dist_patch_DATA = \
%D%/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch \
%D%/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch \
%D%/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch \
%D%/packages/patches/ruby-mustache-1.1.1-fix-race-condition-tests.patch \
%D%/packages/patches/ruby-sanitize-system-libxml.patch \
%D%/packages/patches/rustc-1.39.0-src.patch \
%D%/packages/patches/rust-adblock-ignore-live-tests.patch \
@ -1843,6 +1868,7 @@ dist_patch_DATA = \
%D%/packages/patches/tao-fix-parser-types.patch \
%D%/packages/patches/tar-remove-wholesparse-check.patch \
%D%/packages/patches/tar-skip-unreliable-tests.patch \
%D%/packages/patches/tbb-fix-test-on-aarch64.patch \
%D%/packages/patches/tcc-boot-0.9.27.patch \
%D%/packages/patches/tclxml-3.2-install.patch \
%D%/packages/patches/tcsh-fix-autotest.patch \
@ -1881,7 +1907,6 @@ dist_patch_DATA = \
%D%/packages/patches/u-boot-riscv64-fix-extlinux.patch \
%D%/packages/patches/u-boot-rk3399-enable-emmc-phy.patch \
%D%/packages/patches/ucx-tcp-iface-ioctl.patch \
%D%/packages/patches/ungoogled-chromium-accelerated-video-decode.patch \
%D%/packages/patches/ungoogled-chromium-extension-search-path.patch \
%D%/packages/patches/ungoogled-chromium-ffmpeg-compat.patch \
%D%/packages/patches/ungoogled-chromium-RUNPATH.patch \
@ -1925,6 +1950,8 @@ dist_patch_DATA = \
%D%/packages/patches/upx-CVE-2021-20285.patch \
%D%/packages/patches/ustr-fix-build-with-gcc-5.patch \
%D%/packages/patches/util-linux-tests.patch \
%D%/packages/patches/util-linux-CVE-2021-3995.patch \
%D%/packages/patches/util-linux-CVE-2021-3996.patch \
%D%/packages/patches/upower-builddir.patch \
%D%/packages/patches/valgrind-enable-arm.patch \
%D%/packages/patches/vboot-utils-fix-format-load-address.patch \
@ -1941,6 +1968,7 @@ dist_patch_DATA = \
%D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \
%D%/packages/patches/webkitgtk-share-store.patch \
%D%/packages/patches/webkitgtk-bind-all-fonts.patch \
%D%/packages/patches/webrtc-audio-processing-big-endian.patch \
%D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \
%D%/packages/patches/wicd-bitrate-none-fix.patch \
%D%/packages/patches/wicd-get-selected-profile-fix.patch \

View file

@ -51,7 +51,7 @@
;;; Commentary:
;;;
;;; This module provides the types used to declare individual machines in a
;;; heterogeneous Guix deployment. The interface allows users of specify system
;;; heterogeneous Guix deployment. The interface allows users to specify system
;;; configurations and the means by which resources should be provisioned on a
;;; per-host basis.
;;;

View file

@ -2,7 +2,7 @@
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014, 2015, 2016, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2020, 2021 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2020, 2021, 2022 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2015, 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Alex Sassmannshausen <alex.sassmannshausen@gmail.com>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
@ -1220,6 +1220,21 @@ connection alive.")
;; build system uses the built 'gen' executable.
(setenv "BUILD_CC" "gcc"))))
'())
(add-before 'build 'update-config-scripts
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(for-each (lambda (file)
(install-file
(search-input-file
(or native-inputs inputs)
(string-append "/bin/" file)) "."))
'("config.guess" "config.sub"))
(for-each (lambda (file)
(install-file
(search-input-file
(or native-inputs inputs)
(string-append "/bin/" file))
(string-append "bind/bind-" ,bind-version)))
'("config.guess" "config.sub"))))
(add-after 'configure 'post-configure
(lambda* (#:key outputs #:allow-other-keys)
;; Point to the right client script, which will be
@ -1302,6 +1317,7 @@ connection alive.")
(base32
"108nh7hha4r0lb5hf1fn7lqaascvhsrghpz6afm5lf9vf2vgqly9"))))
("config" ,config)
("coreutils*" ,coreutils)
("sed*" ,sed)))
@ -2858,7 +2874,8 @@ lookup to YAML Mode. You could enable the mode with @code{(add-hook
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1dz045yhcsw1rdamzpz4bk8mw888in7fyqk1q1b3m1yk4pd1ahkh"))))
(base32 "1dz045yhcsw1rdamzpz4bk8mw888in7fyqk1q1b3m1yk4pd1ahkh"))
(patches (search-patches "cpulimit-with-glib-2.32.patch"))))
(build-system gnu-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@ -4753,7 +4770,7 @@ disk utilization, priority, username, state, and exit code.")
(install-file "novena-eeprom" out-bin)
(install-file "novena-eeprom.8" out-share-man)))))))
(inputs
(list i2c-tools))
(list i2c-tools-3))
(synopsis "Novena EEPROM editor")
(description "This package provides an editor for the Novena EEPROM.
Novena boards contain a device-dependent descriptive EEPROM that defines

View file

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013, 2015, 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 20162022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016-2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
@ -328,7 +328,7 @@ precision.")
(define-public giac
(package
(name "giac")
(version "1.7.0-45")
(version "1.7.0-47")
(source
(origin
(method url-fetch)
@ -340,7 +340,7 @@ precision.")
"~parisse/debian/dists/stable/main/source/"
"giac_" version ".tar.gz"))
(sha256
(base32 "19hxbx27n5zby96d4pzhxxqn7mzk29g8sxn08fi638l17lr9x2q2"))))
(base32 "1cbc0vm79q9z3ajn4m5sjg9931ah1wq3icj0m16jsxp52km1h7jx"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((ice-9 ftw)

View file

@ -5,7 +5,7 @@
;;; Copyright © 2019 by Amar Singh <nly@disroot.org>
;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in>
;;; Copyright © 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2021, 2022 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2021, 2022 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
@ -1460,27 +1460,28 @@ of stand-alone functions and classes.")
(define-public python-asdf
(package
(name "python-asdf")
(version "2.7.4")
(version "2.8.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "asdf" version))
(sha256
(base32 "1mj52l2m8pbhiqacgjakjpvqi8kyx470yw151lcsswbq5wp0rsc6"))))
(base32 "0i4vq1hsympjgb1yvn4ql0gm8j1mki9ggmj03533kmg0nbzp03yy"))))
(build-system python-build-system)
(arguments
;; TODO: (Sharlatan-20210207T165820+0000): Tests depend on astropy, astropy
;; depends on asdf. Disable circular dependence.
;; NOTE: (Sharlatan-20211229T201059+0000): Tests depend on astropy and
;; gwcs, astropy gwcs depend on asdf. Disable circular dependence.
`(#:tests? #f))
(native-inputs
`(("packaging" ,python-packaging)
("semantic-version" ,python-semantic-version)
("setuptools-scm" ,python-setuptools-scm)))
(inputs
`(("importlib-resources" ,python-importlib-resources)
("jsonschema" ,python-jsonschema)
("numpy" ,python-numpy)
("pyyaml" ,python-pyyaml)))
(list python-setuptools-scm
python-semantic-version
python-packaging))
(propagated-inputs
(list python-importlib-resources
python-jsonschema
python-jmespath
python-numpy
python-pyyaml))
(home-page "https://github.com/asdf-format/asdf")
(synopsis "Python tools to handle ASDF files")
(description
@ -1489,6 +1490,192 @@ interchange format for scientific data. This package contains the Python
implementation of the ASDF Standard.")
(license license:bsd-3)))
(define python-asdf-transform-schemas
(package
(name "python-asdf-transform-schemas")
(version "0.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "asdf_transform_schemas" version))
(sha256
(base32 "1gmzd81hw4ppsvzrc91wcbjpcw9hhv9gavllv7nyi7qjb54c837g"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(invoke "python" "-m" "pytest")))))))
(native-inputs
(list python-pytest
python-semantic-version
python-setuptools-scm))
(propagated-inputs
(list python-asdf))
(home-page "https://github.com/asdf-format/asdf-transform-schemas")
(synopsis "ASDF schemas for transforms")
(description
"This package provides ASDF schemas for validating transform tags. Users
should not need to install this directly; instead, install an implementation
package such as asdf-astropy.")
(license license:bsd-3)))
(define python-asdf-coordinates-schemas
(package
(name "python-asdf-coordinates-schemas")
(version "0.1.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "asdf_coordinates_schemas" version))
(sha256
(base32 "0ahwhsz5jzljnpkfd2kvspirg823lnj5ip9sfkd9cx09z1nlz8jg"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(invoke "python" "-m" "pytest")))))))
(native-inputs
(list python-pytest
python-semantic-version
python-setuptools-scm))
(propagated-inputs
(list python-asdf))
(home-page "https://github.com/asdf-format/asdf-coordinates-schemas")
(synopsis "ASDF coordinates schemas")
(description "This package provides ASDF schemas for validating
coordinates tags. Users should not need to install this directly; instead,
install an implementation package such as asdf-astropy.")
(license license:bsd-3)))
(define-public python-asdf-astropy
(package
(name "python-asdf-astropy")
(version "0.1.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "asdf_astropy" version))
(sha256
(base32 "0bzgah7gskvnz6jcrzipvzixv8k2jzjkskqwxngzwp4nxgjbcvi4"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(invoke "python" "-m" "pytest")))))))
(native-inputs
(list python-coverage
python-h5py
python-matplotlib
python-pandas
python-pytest-astropy
python-scipy
python-semantic-version
python-setuptools-scm))
(propagated-inputs
(list python-asdf
python-asdf-coordinates-schemas
python-asdf-transform-schemas
python-astropy
python-numpy
python-packaging))
(home-page "https://github.com/astropy/asdf-astropy")
(synopsis "ASDF serialization support for astropy")
(description
"This package includes plugins that provide ASDF serialization support for
Astropy objects.")
(license license:bsd-3)))
(define python-asdf-wcs-schemas
(package
(name "python-asdf-wcs-schemas")
(version "0.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "asdf_wcs_schemas" version))
(sha256
(base32 "0khyab9mnf2lv755as8kwhk3lqqpd3f4291ny3b9yp3ik86fzhz1"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(invoke "python" "-m" "pytest")))))))
(native-inputs
(list python-pytest
python-setuptools-scm
python-semantic-version))
(propagated-inputs
(list python-asdf))
(home-page "https://github.com/asdf-format/asdf-wcs-schemas")
(synopsis "ASDF WCS Schemas")
(description
"This package provides ASDF schemas for validating World Coordinate
System (WCS) tags. Users should not need to install this directly; instead,
install an implementation package such as gwcs.")
(license license:bsd-3)))
(define-public python-gwcs
(package
(name "python-gwcs")
(version "0.18.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "gwcs" version))
(sha256
(base32 "194j49m8xjjzv9pp8cnj06igz8sdxb0nphyybcc7mhigw0f0kr30"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(invoke "python" "-m" "pytest")))))))
(native-inputs
(list python-jsonschema
python-jmespath
python-pytest
python-pytest-doctestplus
python-pyyaml
python-semantic-version
python-setuptools-scm))
(propagated-inputs
(list python-asdf
python-asdf-astropy
python-asdf-wcs-schemas
python-astropy
python-numpy
python-scipy))
(home-page "https://gwcs.readthedocs.io/en/latest/")
(synopsis "Generalized World Coordinate System")
(description "Generalized World Coordinate System (GWCS) is an Astropy
affiliated package providing tools for managing the World Coordinate System of
astronomical data.
GWCS takes a general approach to the problem of expressing transformations
between pixel and world coordinates. It supports a data model which includes
the entire transformation pipeline from input coordinates (detector by
default) to world coordinates.")
(license license:bsd-3)))
(define-public python-astroalign
(package
(name "python-astroalign")

View file

@ -1,10 +1,10 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016 Nikita <nikita@n0.is>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
@ -254,6 +254,45 @@ softsynth library that can be use with other applications.")
(sha256
(base32 "1gsx7k77blfy171b6g3m0k0s0072v6jcawhmx1kjs9w5zlwdkzd0"))))
(build-system gnu-build-system)
(arguments
;; TODO: Move this to a snippet/patch or remove with the upgrade to 1.0.
(if (or (target-riscv64?)
(target-powerpc?))
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-source
(lambda* (#:key inputs #:allow-other-keys)
(let ((patch-file
#$(local-file
(search-patch
"webrtc-audio-processing-big-endian.patch"))))
(invoke "patch" "--force" "-p1" "-i" patch-file)
(substitute* "webrtc/typedefs.h"
(("defined\\(__aarch64__\\)" all)
(string-append
;; powerpc-linux
"(defined(__PPC__) && __SIZEOF_SIZE_T__ == 4)\n"
"#define WEBRTC_ARCH_32_BITS\n"
"#define WEBRTC_ARCH_BIG_ENDIAN\n"
;; powerpc64-linux
"#elif (defined(__PPC64__) && defined(_BIG_ENDIAN))\n"
"#define WEBRTC_ARCH_64_BITS\n"
"#define WEBRTC_ARCH_BIG_ENDIAN\n"
;; aarch64-linux
"#elif " all
;; riscv64-linux
" || (defined(__riscv) && __riscv_xlen == 64)"
;; powerpc64le-linux
" || (defined(__PPC64__) && defined(_LITTLE_ENDIAN))"))))))))
'()))
(native-inputs
(if (or (target-riscv64?)
(target-powerpc?))
(list
(local-file (search-patch "webrtc-audio-processing-big-endian.patch"))
patch)
'()))
(synopsis "WebRTC's Audio Processing Library")
(description "WebRTC-Audio-Processing library based on Google's
implementation of WebRTC.")
@ -728,14 +767,17 @@ engineers, musicians, soundtrack editors and composers.")
(version "3.1.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/audacity/audacity")
(commit (string-append "Audacity-" version))))
(file-name (git-file-name name version))
;; If built from the release tag, Audacity will describe itself
;; as an "Alpha test version" and suggest to users that they use
;; the "latest stable released version".
(method url-fetch)
(uri (string-append "https://github.com/audacity/audacity/releases/download/"
"Audacity-" version "/audacity-" version
"-source.tar.gz"))
(sha256
(base32
"1689q9apbjf9nnda62shb8j7hm4hxd47mhk4l5h3c728mjjkilmi"))
"189agx11361k9j958s6q5bngnnfx0rwaf0dwbjxy6fwvsb1wv3px"))
(patches (search-patches "audacity-ffmpeg-fallback.patch"))
(modules '((guix build utils)))
(snippet
;; Remove bundled libraries.
@ -763,10 +805,10 @@ engineers, musicians, soundtrack editors and composers.")
alsa-lib
jack-1
expat
ffmpeg
lame
linux-libre-headers
flac
ffmpeg
libid3tag
libjpeg-turbo
libmad
@ -4080,6 +4122,40 @@ with support for HD extensions.")
(home-page "https://github.com/foo86/dcadec")
(license license:lgpl2.1+)))
(define-public drc
(package
(name "drc")
(version "3.2.3")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/drc-fir/drc-fir/"
version "/drc-" version ".tar.gz"))
(sha256
(base32
"08ljj4776pjx119zjmfqa8w56bf7x0m7spmi27yk1m455bmiglrj"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #false ;there are none
#:make-flags
#~(list (string-append "INSTALL_PREFIX=" #$output)
"-C" "source")
#:phases
'(modify-phases %standard-phases
(delete 'configure))))
(inputs (list fftw))
(home-page "http://drc-fir.sourceforge.net/")
(synopsis "Digital room correction")
(description
"DRC is a program used to generate correction filters for acoustic
compensation of HiFi and audio systems in general, including listening room
compensation. DRC generates just the FIR correction filters, which can be
used with a real time or offline convolver to provide real time or offline
correction. DRC doesn't provide convolution features, and provides only some
simplified, although really accurate, measuring tools.")
(license license:gpl2+)))
(define-public bs1770gain
(package
(name "bs1770gain")

View file

@ -40,7 +40,13 @@
(uri (string-append "mirror://gnu/autogen/rel" version
"/autogen-" version ".tar.xz"))
(sha256
(base32 "16mlbdys8q4ckxlvxyhwkdnh1ay9f6g0cyp1kylkpalgnik398gq"))))
(base32 "16mlbdys8q4ckxlvxyhwkdnh1ay9f6g0cyp1kylkpalgnik398gq"))
(modules '((guix build utils)))
(snippet
;; Address '-Werror=format-overflow' error.
'(substitute* "getdefs/getdefs.c"
(("def_bf\\[[[:space:]]*MAXNAMELEN[[:space:]]*\\]")
"def_bf[MAXNAMELEN + 10]")))))
(build-system gnu-build-system)
(native-inputs (list pkg-config which))
(inputs (list guile-2.2 perl)) ; for doc generator mdoc

View file

@ -5437,6 +5437,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
# CONFIG_SND_EMU10K1_SEQ is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set

View file

@ -938,7 +938,7 @@ CONFIG_RAPIDIO_CPS_XX=m
CONFIG_RAPIDIO_TSI568=m
CONFIG_RAPIDIO_CPS_GEN2=m
CONFIG_RAPIDIO_RXS_GEN3=m
CONFIG_X86_SYSFB=y
# CONFIG_X86_SYSFB is not set
#
# Executable file formats / Emulations
@ -8495,13 +8495,7 @@ CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_GOOGLE_FIRMWARE=y
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=y
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# CONFIG_GOOGLE_FIRMWARE is not set
#
# EFI (Extensible Firmware Interface) Support

View file

@ -454,7 +454,7 @@ CONFIG_FREEZER=y
#
# Processor type and features
#
# CONFIG_ZONE_DMA is not set
CONFIG_ZONE_DMA=y
CONFIG_SMP=y
CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_FAST_FEATURE_TESTS=y
@ -928,7 +928,7 @@ CONFIG_RAPIDIO_CPS_XX=m
CONFIG_RAPIDIO_TSI568=m
CONFIG_RAPIDIO_CPS_GEN2=m
CONFIG_RAPIDIO_RXS_GEN3=m
CONFIG_X86_SYSFB=y
# CONFIG_X86_SYSFB is not set
#
# Executable file formats / Emulations
@ -5958,6 +5958,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
# CONFIG_SND_EMU10K1_SEQ is not set
CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m
@ -8332,13 +8334,7 @@ CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_GOOGLE_FIRMWARE=y
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=y
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# CONFIG_GOOGLE_FIRMWARE is not set
#
# EFI (Extensible Firmware Interface) Support

View file

@ -5598,6 +5598,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_FM801 is not set

View file

@ -5331,6 +5331,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_FM801 is not set

View file

@ -713,7 +713,7 @@ CONFIG_RAPIDIO_CPS_XX=m
CONFIG_RAPIDIO_TSI568=m
CONFIG_RAPIDIO_CPS_GEN2=m
CONFIG_RAPIDIO_RXS_GEN3=m
CONFIG_X86_SYSFB=y
# CONFIG_X86_SYSFB is not set
#
# Binary Emulations
@ -737,13 +737,7 @@ CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_GOOGLE_FIRMWARE=y
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=y
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# CONFIG_GOOGLE_FIRMWARE is not set
#
# EFI (Extensible Firmware Interface) Support

View file

@ -273,7 +273,7 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
#
# Processor type and features
#
# CONFIG_ZONE_DMA is not set
CONFIG_ZONE_DMA=y
CONFIG_SMP=y
CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_X2APIC=y
@ -684,7 +684,7 @@ CONFIG_RAPIDIO_CPS_XX=m
CONFIG_RAPIDIO_TSI568=m
CONFIG_RAPIDIO_CPS_GEN2=m
CONFIG_RAPIDIO_RXS_GEN3=m
CONFIG_X86_SYSFB=y
# CONFIG_X86_SYSFB is not set
#
# Binary Emulations
@ -714,13 +714,7 @@ CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_GOOGLE_FIRMWARE=y
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=y
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# CONFIG_GOOGLE_FIRMWARE is not set
#
# EFI (Extensible Firmware Interface) Support
@ -6173,6 +6167,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m
CONFIG_SND_FM801=m

View file

@ -825,7 +825,7 @@ CONFIG_RAPIDIO_TSI57X=m
CONFIG_RAPIDIO_CPS_XX=m
CONFIG_RAPIDIO_TSI568=m
CONFIG_RAPIDIO_CPS_GEN2=m
CONFIG_X86_SYSFB=y
# CONFIG_X86_SYSFB is not set
#
# Executable file formats / Emulations
@ -7679,13 +7679,7 @@ CONFIG_DMI_SYSFS=m
CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m
CONFIG_GOOGLE_FIRMWARE=y
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=y
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# CONFIG_GOOGLE_FIRMWARE is not set
#
# EFI (Extensible Firmware Interface) Support

View file

@ -384,7 +384,7 @@ CONFIG_FREEZER=y
#
# Processor type and features
#
# CONFIG_ZONE_DMA is not set
CONFIG_ZONE_DMA=y
CONFIG_SMP=y
CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_X2APIC=y
@ -795,7 +795,7 @@ CONFIG_RAPIDIO_TSI57X=m
CONFIG_RAPIDIO_CPS_XX=m
CONFIG_RAPIDIO_TSI568=m
CONFIG_RAPIDIO_CPS_GEN2=m
CONFIG_X86_SYSFB=y
# CONFIG_X86_SYSFB is not set
#
# Executable file formats / Emulations
@ -5494,6 +5494,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m
CONFIG_SND_FM801=m
@ -7461,13 +7463,7 @@ CONFIG_DMI_SYSFS=m
CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m
CONFIG_GOOGLE_FIRMWARE=y
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=y
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# CONFIG_GOOGLE_FIRMWARE is not set
#
# EFI (Extensible Firmware Interface) Support

View file

@ -409,7 +409,7 @@ CONFIG_FREEZER=y
#
# Processor type and features
#
# CONFIG_ZONE_DMA is not set
CONFIG_ZONE_DMA=y
CONFIG_SMP=y
CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_FAST_FEATURE_TESTS=y
@ -5733,6 +5733,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m
CONFIG_SND_FM801=m

View file

@ -292,7 +292,7 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
#
# Processor type and features
#
# CONFIG_ZONE_DMA is not set
CONFIG_ZONE_DMA=y
CONFIG_SMP=y
CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_MPPARSE=y
@ -650,7 +650,7 @@ CONFIG_ALIX=y
CONFIG_NET5501=y
CONFIG_GEOS=y
CONFIG_AMD_NB=y
CONFIG_X86_SYSFB=y
# CONFIG_X86_SYSFB is not set
# end of Bus options (PCI etc.)
#
@ -674,13 +674,7 @@ CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_GOOGLE_FIRMWARE=y
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=y
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# CONFIG_GOOGLE_FIRMWARE is not set
#
# EFI (Extensible Firmware Interface) Support
@ -6782,6 +6776,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m
CONFIG_SND_FM801=m

View file

@ -308,7 +308,7 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
#
# Processor type and features
#
# CONFIG_ZONE_DMA is not set
CONFIG_ZONE_DMA=y
CONFIG_SMP=y
CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_X2APIC=y
@ -643,7 +643,7 @@ CONFIG_MMCONF_FAM10H=y
# CONFIG_ISA_BUS is not set
CONFIG_ISA_DMA_API=y
CONFIG_AMD_NB=y
CONFIG_X86_SYSFB=y
# CONFIG_X86_SYSFB is not set
# end of Bus options (PCI etc.)
#
@ -670,13 +670,7 @@ CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_GOOGLE_FIRMWARE=y
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=y
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# CONFIG_GOOGLE_FIRMWARE is not set
#
# EFI (Extensible Firmware Interface) Support
@ -6671,6 +6665,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m
CONFIG_SND_FM801=m

View file

@ -992,7 +992,7 @@ CONFIG_PAGE_IDLE_FLAG=y
CONFIG_IDLE_PAGE_TRACKING=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_ARCH_HAS_ZONE_DMA_SET=y
# CONFIG_ZONE_DMA is not set
CONFIG_ZONE_DMA=y
CONFIG_HMM_MIRROR=y
CONFIG_VMAP_PFN=y
# CONFIG_PERCPU_STATS is not set
@ -2249,14 +2249,8 @@ CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_SYSFB=y
CONFIG_SYSFB_SIMPLEFB=y
CONFIG_GOOGLE_FIRMWARE=y
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=m
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# CONFIG_SYSFB_SIMPLEFB is not set
# CONFIG_GOOGLE_FIRMWARE is not set
#
# EFI (Extensible Firmware Interface) Support
@ -6731,7 +6725,7 @@ CONFIG_FB_MB862XX=m
CONFIG_FB_MB862XX_PCI_GDC=y
CONFIG_FB_MB862XX_I2C=y
CONFIG_FB_HYPERV=m
CONFIG_FB_SIMPLE=y
CONFIG_FB_SIMPLE=m
CONFIG_FB_SSD1307=m
CONFIG_FB_SM712=m
# end of Frame buffer Devices
@ -6942,6 +6936,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m
CONFIG_SND_FM801=m

View file

@ -1025,7 +1025,7 @@ CONFIG_IDLE_PAGE_TRACKING=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_ARCH_HAS_PTE_DEVMAP=y
CONFIG_ARCH_HAS_ZONE_DMA_SET=y
# CONFIG_ZONE_DMA is not set
CONFIG_ZONE_DMA=y
CONFIG_ZONE_DMA32=y
CONFIG_ZONE_DEVICE=y
CONFIG_DEV_PAGEMAP_OPS=y
@ -2282,14 +2282,8 @@ CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_SYSFB=y
CONFIG_SYSFB_SIMPLEFB=y
CONFIG_GOOGLE_FIRMWARE=y
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=m
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# CONFIG_SYSFB_SIMPLEFB is not set
# CONFIG_GOOGLE_FIRMWARE is not set
#
# EFI (Extensible Firmware Interface) Support
@ -6688,7 +6682,7 @@ CONFIG_FB_MB862XX=m
CONFIG_FB_MB862XX_PCI_GDC=y
CONFIG_FB_MB862XX_I2C=y
CONFIG_FB_HYPERV=m
CONFIG_FB_SIMPLE=y
CONFIG_FB_SIMPLE=m
CONFIG_FB_SSD1307=m
CONFIG_FB_SM712=m
# end of Frame buffer Devices
@ -6856,6 +6850,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m
CONFIG_SND_FM801=m

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

@ -6045,6 +6045,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_FM801 is not set

View file

@ -5870,6 +5870,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_FM801 is not set

View file

@ -648,7 +648,7 @@ CONFIG_ALIX=y
CONFIG_NET5501=y
CONFIG_GEOS=y
CONFIG_AMD_NB=y
CONFIG_X86_SYSFB=y
# CONFIG_X86_SYSFB is not set
# end of Bus options (PCI etc.)
#
@ -672,13 +672,7 @@ CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_GOOGLE_FIRMWARE=y
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=y
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# CONFIG_GOOGLE_FIRMWARE is not set
#
# EFI (Extensible Firmware Interface) Support

View file

@ -294,7 +294,7 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
#
# Processor type and features
#
# CONFIG_ZONE_DMA is not set
CONFIG_ZONE_DMA=y
CONFIG_SMP=y
CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_X2APIC=y
@ -632,7 +632,7 @@ CONFIG_MMCONF_FAM10H=y
# CONFIG_ISA_BUS is not set
CONFIG_ISA_DMA_API=y
CONFIG_AMD_NB=y
CONFIG_X86_SYSFB=y
# CONFIG_X86_SYSFB is not set
# end of Bus options (PCI etc.)
#
@ -659,13 +659,7 @@ CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_GOOGLE_FIRMWARE=y
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=y
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# CONFIG_GOOGLE_FIRMWARE is not set
#
# EFI (Extensible Firmware Interface) Support
@ -6469,6 +6463,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m
CONFIG_SND_FM801=m

View file

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2020 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2015, 2016, 2017, 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 20172021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017, 2021 Arun Isaac <arunisaac@systemreboot.net>
@ -42,6 +42,7 @@
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix download)
#:use-module (guix utils)
@ -50,6 +51,7 @@
#:use-module (guix build-system go)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages autotools)
@ -81,13 +83,16 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages rsync)
#:use-module (gnu packages ruby)
#:use-module (gnu packages serialization)
#:use-module (gnu packages ssh)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages xml))
@ -746,8 +751,8 @@ detection, and lossless compression.")
supports compression and authenticated encryption. The main goal of Borg is to
provide an efficient and secure way to backup data. The data deduplication
technique used makes Borg suitable for daily backups since only changes are
stored. The authenticated encryption technique makes it suitable for backups
to not fully trusted targets. Borg is a fork of Attic.")
stored. The authenticated encryption technique makes it suitable for
storing backups on untrusted computers.")
(home-page "https://www.borgbackup.org/")
(license license:bsd-3)))
@ -1267,3 +1272,63 @@ and workstations. Protect your files with client-side encryption. Backup
your databases too. Monitor it all with integrated third-party services.
borgmatic is powered by borg.")
(license license:gpl3+)))
(define-public vorta
(package
(name "vorta")
(version "0.8.3")
(source (origin
(method url-fetch)
(uri (pypi-uri "vorta" version))
(sha256
(base32
"0674crxsmf1gwiacpi9ixypgz685fyzr5y3f9sd768b0bmh7ilsn"))))
(build-system python-build-system)
(arguments
(list
#:imported-modules `((guix build qt-utils)
(guix build cmake-build-system)
(guix build qt-build-system)
,@%python-build-system-modules)
#:modules '((guix build utils)
(guix build python-build-system)
((guix build qt-build-system) #:prefix qt:))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-borg-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/vorta/borg/borg_job.py"
(("which\\('borg'\\)")
(string-append "which('" #$(this-package-input "borg")
"/bin/borg')")))))
;; XXX This phase tries to write to $HOME
(add-before 'sanity-check 'set-HOME
(lambda _
(setenv "HOME" "/tmp")))
;; Otherwise, the user interface's icons will be missing.
(add-after 'wrap 'qt-wrap
(assoc-ref qt:%standard-phases 'qt-wrap)))))
(native-inputs
(list python-pytest-mock
python-pytest-qt
python-pytest-runner
python-setuptools-git))
(inputs
(list borg
python-appdirs
python-dateutil
python-keyring
python-paramiko
python-peewee
python-psutil
python-pyqt-without-qtwebkit
python-secretstorage
;; This is included so that the qt-wrap phase picks it up.
qtsvg))
(home-page "https://github.com/borgbase/vorta")
(synopsis "Graphical backup client based on BorgBackup")
(description "Vorta is a graphical backup client based on the Borg backup
tool. It supports the use of remote backup repositories. It can perform
scheduled backups, and has a graphical tool for browsing and extracting the Borg
archives.")
(license license:gpl3+)))

View file

@ -13,7 +13,7 @@
;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018, 2019, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Vitaliy Shatrov <D0dyBo0D0dyBo0@protonmail.com>
;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
@ -46,6 +46,7 @@
#:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages ed)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gcc)
#:use-module (gnu packages guile)
#:use-module (gnu packages multiprecision)
@ -1014,6 +1015,105 @@ with the Linux kernel.")
"glibc-reinstate-prlimit64-fallback.patch"
"glibc-2.29-supported-locales.patch"))))))
(define-public glibc-2.2.5
(package
(inherit glibc)
(version "2.2.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.gz"))
(patches (search-patches "glibc-boot-2.2.5.patch"
"glibc-bootstrap-system-2.2.5.patch"))
(sha256
(base32
"1vl48i16gx6h68whjyhgnn1s57vqq32f9ygfa2fls7pdkbsqvp2q"))))
(arguments
(list #:system "i686-linux"
#:implicit-inputs? #f
#:tests? #f
#:strip-binaries? #f
#:validate-runpath? #f
#:parallel-build? #f ; gcc-2.95.3 ICEs on massively parallel builds
#:make-flags
#~(list (string-append
"SHELL=" #$(this-package-native-input "bash") "/bin/sh"))
#:configure-flags
#~(list "--enable-shared"
"--enable-static"
"--disable-sanity-checks"
"--build=i686-unknown-linux-gnu"
"--host=i686-unknown-linux-gnu"
(string-append "--with-headers="
#$(this-package-native-input "kernel-headers")
"/include")
"--enable-static-nss"
"--without-__thread"
"--without-cvs"
"--without-gd"
"--without-tls"
(string-append "--prefix=" #$output))
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'setenv
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bash (assoc-ref inputs "bash"))
(shell (string-append bash "/bin/bash"))
(gcc (assoc-ref inputs "gcc"))
(cppflags (string-append
" -D MES_BOOTSTRAP=1"
" -D BOOTSTRAP_GLIBC=1"))
(cflags (string-append " -L " (getcwd))))
(setenv "CONFIG_SHELL" shell)
(setenv "SHELL" shell)
(setenv "CPP" (string-append gcc "/bin/gcc -E " cppflags))
(setenv "CC" (string-append gcc "/bin/gcc " cppflags cflags)))))
(replace 'configure ; needs classic invocation of configure
(lambda* (#:key configure-flags #:allow-other-keys)
(format (current-error-port)
"running ./configure ~a\n" (string-join configure-flags))
(apply invoke "./configure" configure-flags)))
(add-after 'configure 'fixup-configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bash (assoc-ref inputs "bash"))
(shell (string-append bash "/bin/bash")))
(substitute* "config.make"
(("INSTALL = scripts/") "INSTALL = $(..)./scripts/"))
(substitute* "config.make"
(("INSTALL = scripts/") "INSTALL = $(..)./scripts/")
(("BASH = ") (string-append
"SHELL = " shell "
BASH = ")))))))))
(supported-systems '("i686-linux" "x86_64-linux"))
(outputs '("out"))
(inputs '())
(propagated-inputs '())
(native-inputs
;; Lazily resolve NAME in (gnu packages commencement) to avoid a cycle.
(let ((c (lambda (name)
(module-ref (resolve-interface
'(gnu packages commencement))
name))))
`(("bash" ,bash-minimal)
("coreutils" ,coreutils)
("gawk" ,gawk)
("grep" ,grep)
("make" ,gnu-make)
("sed" ,sed)
("tar" ,tar)
("bzip2" ,bzip2)
("gzip" ,gzip)
("patch" ,patch)
("xz" ,xz)
("kernel-headers" ,linux-libre-headers)
;; Old toolchain
("gcc" ,(c 'gcc-mesboot0))
("binutils" ,(c 'binutils-mesboot))
("libc" ,(c 'glibc-mesboot0)))))))
(define-public (make-gcc-libc base-gcc libc)
"Return a GCC that targets LIBC."
(package (inherit base-gcc)

View file

@ -2218,7 +2218,7 @@ well as many of the command line options.")
(define-public bwa-meth
(package
(name "bwa-meth")
(version "0.2.2")
(version "0.2.3")
(source (origin
(method git-fetch)
(uri (git-reference
@ -2227,7 +2227,7 @@ well as many of the command line options.")
(file-name (git-file-name name version))
(sha256
(base32
"17j31i7zws5j7mhsq9x3qgkxly6mlmrgwhfq0qbflgxrmx04yaiz"))))
"0c695lkrr0996zwkibl7324wg2vxmn6522sz30xv4a9gaf0lnbh3"))))
(build-system python-build-system)
(arguments
`(#:phases
@ -2238,8 +2238,7 @@ well as many of the command line options.")
(("bwa (mem|index)" _ command)
(string-append (which "bwa") " " command))
;; There's an ill-advised check for "samtools" on PATH.
(("^checkX.*") ""))
#t)))))
(("^checkX.*") "")))))))
(inputs
(list bwa))
(native-inputs
@ -10895,6 +10894,9 @@ once. This package provides tools to perform Drop-seq analyses.")
(add-before 'bootstrap 'autoreconf
(lambda _
(invoke "autoreconf" "-vif")))
(add-before 'configure 'set-PYTHONPATH
(lambda _
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH"))))
(add-before 'check 'set-timezone
;; The readr package is picky about timezones.
(lambda* (#:key inputs #:allow-other-keys)
@ -10969,7 +10971,10 @@ expression report comparing samples in an easily configurable manner.")
(modify-phases %standard-phases
(add-before 'bootstrap 'autoreconf
(lambda _
(invoke "autoreconf" "-vif"))))))
(invoke "autoreconf" "-vif")))
(add-before 'configure 'set-PYTHONPATH
(lambda _
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH")))))))
(inputs
(list grep
coreutils
@ -11055,6 +11060,9 @@ in an easily configurable manner.")
(add-before 'bootstrap 'autoreconf
(lambda _
(invoke "autoreconf" "-vif")))
(add-before 'configure 'set-PYTHONPATH
(lambda _
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH"))))
(add-before 'check 'set-timezone
;; The readr package is picky about timezones.
(lambda* (#:key inputs #:allow-other-keys)
@ -11123,7 +11131,10 @@ methylation and segmentation.")
(modify-phases %standard-phases
(add-before 'bootstrap 'autoreconf
(lambda _
(invoke "autoreconf" "-vif"))))))
(invoke "autoreconf" "-vif")))
(add-before 'configure 'set-PYTHONPATH
(lambda _
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH")))))))
(native-inputs
(list automake autoconf))
(inputs
@ -11197,7 +11208,10 @@ based methods.")
(modify-phases %standard-phases
(add-before 'bootstrap 'autoreconf
(lambda _
(invoke "autoreconf" "-vif"))))))
(invoke "autoreconf" "-vif")))
(add-before 'configure 'set-PYTHONPATH
(lambda _
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH")))))))
(native-inputs
(list automake autoconf))
(inputs
@ -12013,7 +12027,7 @@ implementation differs in these ways:
python-igraph
python-joblib
python-legacy-api-wrap
python-louvain-0.6
python-louvain-0.7
python-matplotlib
python-natsort
python-networkx
@ -15568,6 +15582,69 @@ aligner.")
;; bwa itself is licenced under GNU General Public License v3.0.
(license license:mpl2.0)))
(define-public scvelo
(package
(name "scvelo")
(version "0.2.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "scvelo" version))
(sha256
(base32 "0h5ha1459ljs0qgpnlfsw592i8dxqn6p9bl08l1ikpwk36baxb7z"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
;; Numba needs a writable dir to cache functions.
(add-before 'check 'set-numba-cache-dir
(lambda _
(setenv "NUMBA_CACHE_DIR" "/tmp")))
(replace 'check
(lambda* (#:key outputs tests? #:allow-other-keys)
(when tests?
;; The discovered test file names must match the names of the
;; compiled files, so we cannot run the tests from
;; /tmp/guix-build-*.
(with-directory-excursion
(string-append (assoc-ref outputs "out")
"/lib/python3.9/site-packages/scvelo/core/tests/")
(invoke "pytest" "-v"))))))))
(propagated-inputs
(list python-anndata
python-hnswlib
python-isort
python-igraph
python-loompy
python-louvain
python-matplotlib
python-numba
python-numpy
python-pandas
python-scanpy
python-scikit-learn
python-scipy
python-umap-learn
pybind11))
(native-inputs
(list python-black
python-flake8
python-hypothesis
python-pre-commit
python-pytest
python-setuptools-scm
python-wheel))
(home-page "https://scvelo.org")
(synopsis "RNA velocity generalized through dynamical modeling")
(description "ScVelo is a scalable toolkit for RNA velocity analysis in
single cells. RNA velocity enables the recovery of directed dynamic
information by leveraging splicing kinetics. scVelo generalizes the concept of
RNA velocity by relaxing previously made assumptions with a stochastic and a
dynamical model that solves the full transcriptional dynamics. It thereby
adapts RNA velocity to widely varying specifications such as non-stationary
populations.")
(license license:bsd-3)))
(define-public scregseg
(package
(name "scregseg")

View file

@ -51,16 +51,18 @@ supported content to the Kodi media center.")
(define ublock-origin
(package
(name "ublock-origin")
(version "1.40.8")
(version "1.41.2")
(home-page "https://github.com/gorhill/uBlock")
(source (origin
(method git-fetch)
(uri (git-reference (url home-page) (commit version)
;; Also fetch the tightly coupled
;; "uAssets" submodule.
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
(base32
"17pywblp87npj5z3zyvy9rmllnxhm916fnfyyfbvfbczswkbp78s"))))
"0ga8yj2zkyngah0li3la3gslhjdayp0barch5w3y2jp9i14df9k2"))))
(build-system gnu-build-system)
(outputs '("xpi" "firefox" "chromium"))
(arguments

View file

@ -9,7 +9,7 @@
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020, 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021 David Dashyan <mail@davie.li>
;;;
@ -895,3 +895,42 @@ Service (S3) protocol for object storage.")
Telemetry Transport (MQTT) publish-subscribe messaging protocol.")
(home-page "https://github.com/awslabs/aws-c-mqtt")
(license license:asl2.0)))
(define-public utf8-h
;; The latest tag is used as there is no release.
(let ((commit "500d4ea9f4c3449e5243c088d8af8700f7189734")
(revision "0"))
(package
(name "utf8-h")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sheredom/utf8.h")
(commit commit)))
(file-name (git-file-name "utf8.h" version))
(sha256
(base32
"0x9f7ivww8c7cigf4ck0hfx2bm79qgx6q4ccwzqbzkrmcrl9shfb"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(delete 'build)
(delete 'configure)
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(with-directory-excursion "test"
(invoke "cmake" ".")
(invoke "make")))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(install-file "utf8.h" (string-append out "/include"))))))))
(home-page "https://github.com/sheredom/utf8.h")
(synopsis "Single header UTF-8 string functions for C and C++")
(description "A simple one header solution to supporting UTF-8 strings in
C and C++. The functions it provides are like those from the C header
string.h, but with a utf8* prefix instead of the str* prefix.")
(license license:unlicense))))

View file

@ -35,7 +35,7 @@
;;; Copyright © 2020 Josh Marshall <joshua.r.marshall.1991@gmail.com>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Hugo Lecomte <hugo.lecomte@inria.fr>
;;;
;;; This file is part of GNU Guix.
@ -90,6 +90,45 @@
#:use-module (guix build-system trivial)
#:use-module (srfi srfi-1))
(define-public pict
(package
(name "pict")
(version "3.7.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Microsoft/pict")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1hpff8x49ixlh71sbyhj1rircf0mg95v5q9y0ys52rhiph99wy3n"))))
(build-system gnu-build-system)
(arguments
(list
#:test-target "test"
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(replace 'install
(lambda _
(install-file "pict" (string-append #$output "/bin"))
(install-file "doc/pict.md"
(string-append #$output
"/share/doc/pict-" #$version)))))))
(native-inputs (list perl))
(home-page "https://www.pairwise.org/")
(synopsis "Pairwise Independent Combinatorial Tool")
(description "PICT is a pairwise testing tool that generates test cases
and test configurations. With PICT, you can generate tests that are more
effective than manually generated tests and in a fraction of the time required
by hands-on test case design. PICT runs as a command line tool. It takes a
model file detailing the parameters of the interface as an input and generates
a compact set of parameter value choices that represent the test cases you
should use to get comprehensive combinatorial coverage of your parameters.")
(license license:expat)))
(define-public pedansee
(package
(name "pedansee")
@ -209,27 +248,27 @@ source code editors and IDEs.")
(define-public clitest
(package
(name "clitest")
(version "0.3.0")
(version "0.4.0")
(home-page "https://github.com/aureliojargas/clitest")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "v" version))))
(uri (git-reference (url home-page) (commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0zw5wra9hc717srmcar1wm4i34kyj8c49ny4bb7y3nrvkjp2pdb5"))))
"1p745mxiq3hgi3ywfljs5sa1psi06awwjxzw0j9c2xx1b09yqv4a"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(list
#:phases
#~(modify-phases %standard-phases
;; This package is distributed as a single shell script and comes
;; without a proper build system.
(delete 'configure)
(delete 'build)
(replace 'check
(lambda _
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(substitute* "test.md"
;; One test looks for an error from grep in the form "grep: foo",
;; but our grep returns the absolute file name on errors. Adjust
@ -238,16 +277,17 @@ source code editors and IDEs.")
"sed 's/.*e*grep: .*/"))
(setenv "HOME" "/tmp")
(invoke "./clitest" "test.md")))
(invoke "./clitest" "test.md"))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(install-file "clitest" (string-append out "/bin"))
(lambda _
(install-file "clitest" (string-append #$output "/bin"))
(install-file "README.md"
(string-append out "/share/doc/clitest-" ,version))
#t))))))
(string-append #$output "/share/doc/clitest-"
#$(package-version this-package))))))))
(native-inputs
(list perl)) ;for tests
(inputs
(list bash-minimal))
(synopsis "Command line test tool")
(description
"@command{clitest} is a portable shell script that performs automatic
@ -421,7 +461,7 @@ a multi-paradigm automated test framework for C++ and Objective-C.")
(define-public catch-framework2
(package
(name "catch2")
(version "2.13.2")
(version "2.13.8")
(home-page "https://github.com/catchorg/Catch2")
(source (origin
(method git-fetch)
@ -431,7 +471,7 @@ a multi-paradigm automated test framework for C++ and Objective-C.")
(file-name (git-file-name name version))
(sha256
(base32
"100r0kmra8jmra2hv92lzvwcmphpaiccwvq3lpdsa5b7hailhach"))))
"18a6d7rcb6ilhxd5dff32jkfdf2ik58pbywrv04ras70217kdq4c"))))
(build-system cmake-build-system)
(inputs
(list python-wrapper))
@ -565,15 +605,16 @@ and it supports a very flexible form of test discovery.")
(define-public doctest
(package
(name "doctest")
(version "2.4.6")
(version "2.4.8")
(home-page "https://github.com/onqtam/doctest")
(source (origin
(method git-fetch)
(uri (git-reference (url home-page) (commit version)))
(uri (git-reference (url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"14m3q6d96zg6d99x1152jkly50gdjrn5ylrbhax53pfgfzzc5yqx"))))
"057wdkv3gcz42mh1j284sgvm16i5fk1f9b1plgvavca70q4p52gz"))))
(build-system cmake-build-system)
(synopsis "C++ test framework")
(description
@ -2807,7 +2848,8 @@ portable to just about any platform.")
;; indefinitely. See README.packagers for more information.
;; There are specific instructions to not enable more flags
;; than absolutely needed.
,(if (target-ppc64le?)
,(if (or (target-ppc64le?)
(target-riscv64?))
`(setenv "FAKETIME_COMPILE_CFLAGS"
"-DFORCE_MONOTONIC_FIX -DFORCE_PTHREAD_NONVER")
`(setenv "FAKETIME_COMPILE_CFLAGS"

View file

@ -82,9 +82,6 @@
"base/third_party/symbolize" ;BSD-3
"base/third_party/xdg_mime" ;LGPL2.0+ or Academic 2.0
"base/third_party/xdg_user_dirs" ;Expat
;; XXX: Chromium requires a newer C++ standard library. Remove this when
;; the default GCC is 9 or later.
"buildtools/third_party/libc++" ;ASL2.0, with LLVM exceptions
"chrome/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
"courgette/third_party/bsdiff" ;BSD-2, BSD protection license
"courgette/third_party/divsufsort" ;Expat
@ -170,8 +167,6 @@
"third_party/iccjpeg" ;IJG
"third_party/inspector_protocol" ;BSD-3
"third_party/jinja2" ;BSD-3
;; XXX: Unbundle this when switching back to libstdc++.
"third_party/jsoncpp" ;Public Domain or Expat
"third_party/jstemplate" ;ASL2.0
"third_party/khronos" ;Expat, SGI
"third_party/leveldatabase" ;BSD-3
@ -237,9 +232,6 @@
"third_party/protobuf/third_party/six" ;Expat
"third_party/pyjson5" ;ASL2.0
"third_party/qcms" ;Expat
;; XXX: System re2 cannot be used when Chromium uses libc++ because the re2
;; ABI relies on libstdc++ internals. See build/linux/unbundle/re2.gn.
"third_party/re2" ;BSD-3
"third_party/rnnoise" ;BSD-3
"third_party/ruy" ;ASL2.0
"third_party/s2cellid" ;ASL2.0
@ -318,13 +310,19 @@
;; run the Blink performance tests, just remove everything to save ~70MiB.
'("third_party/blink/perf_tests"))
(define* (arch-patch name hash #:optional (revision %arch-revision))
(define %chromium-version "98.0.4758.80")
(define %ungoogled-revision (string-append %chromium-version "-1"))
(define %debian-revision "debian/90.0.4430.85-1")
(define %ungoogled-origin
(origin
(method url-fetch)
(uri (string-append "https://raw.githubusercontent.com/archlinux"
"/svntogit-packages/" revision "/trunk/" name))
(file-name (string-append "ungoogled-chromium-" name))
(sha256 (base32 hash))))
(method git-fetch)
(uri (git-reference (url "https://github.com/Eloston/ungoogled-chromium")
(commit %ungoogled-revision)))
(file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
(sha256
(base32
"0a8y9yz6xyh025gk3dr0ndrdwmrslhd1ph2f8nivmqk61j7c2g8h"))))
(define* (debian-patch name hash #:optional (revision %debian-revision))
(origin
@ -336,33 +334,16 @@
(string-append "ungoogled-chromium-" category "-" name))))
(sha256 (base32 hash))))
(define %chromium-version "97.0.4692.99")
(define %ungoogled-revision (string-append %chromium-version "-1"))
(define %arch-revision "db2157b84924ce84201a8245e68a02f7d55f6491")
(define %debian-revision "debian/90.0.4430.85-1")
(define %arch-patches
(list (arch-patch "chromium-94-ffmpeg-roll.patch"
"1kiskdjr9v3d491sq0wdjxliflh2vq5700gbygcixayj8gkvdb2n")))
(define %debian-patches
(list (debian-patch "fixes/nomerge.patch"
"0lybs2b5gk08j8cr6vjrs9d3drd7qfw013z2r0y00by8dnpm74i3")
(debian-patch "system/jsoncpp.patch"
"16lvhci10hz0q9axc6p921b95a76kbzcla5cl81czxzfwnynr1w5")
(debian-patch "system/zlib.patch"
"0j313bd3q8qc065j60x97dckrfgbwl4qxc8jhz33iihvv4lwziwv")
(debian-patch "system/openjpeg.patch"
"048405xh84pys0kky81vlqhaxjyxvcql4py217z01qxiv991zxaj")))
(define %ungoogled-origin
(origin
(method git-fetch)
(uri (git-reference (url "https://github.com/Eloston/ungoogled-chromium")
(commit %ungoogled-revision)))
(file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
(sha256
(base32
"1jgxpp3wl24hq39291mgmdwcxbarxg4rpa6il53k8z3rf6gd2s4i"))))
(define %guix-patches
(list (local-file
(assume-valid-file-name
@ -370,9 +351,6 @@
(local-file
(assume-valid-file-name
(search-patch "ungoogled-chromium-RUNPATH.patch")))
(local-file
(assume-valid-file-name
(search-patch "ungoogled-chromium-accelerated-video-decode.patch")))
(local-file
(assume-valid-file-name
(search-patch "ungoogled-chromium-ffmpeg-compat.patch")))
@ -406,13 +384,6 @@
patch "--no-backup-if-mismatch"))
(append '#+%debian-patches '#+%guix-patches))
;; These patches are "reversed"; i.e. they represent changes
;; already present in the source, but which should be reverted.
(for-each (lambda (patch)
(invoke "patch" "-Rp1" "--force" "--input"
patch "--no-backup-if-mismatch"))
'#$%arch-patches)
(with-directory-excursion #+%ungoogled-origin
(format #t "Ungooglifying...~%")
(force-output)
@ -449,7 +420,7 @@
"--system-libraries" "ffmpeg" "flac" "fontconfig"
"freetype" "harfbuzz-ng" "icu" "libdrm" "libevent"
"libjpeg" "libpng" "libwebp" "libxml" "libxslt"
"openh264" "opus" "zlib")))))
"openh264" "opus" "re2" "zlib")))))
(define opus+custom
(package/inherit opus
@ -480,7 +451,7 @@
%chromium-version ".tar.xz"))
(sha256
(base32
"1fpc07zvashaqqalwn7wxnswxclrxvhjrxy1rzr6gcq5awhaw6y9"))
"0wa1jhsw7qrym4x8wxmdvdvbilb8jdv0mizzib2342l61zi6cwn8"))
(modules '((guix build utils)))
(snippet (force ungoogled-chromium-snippet))))
(build-system gnu-build-system)
@ -501,13 +472,11 @@
;; a developer build.
"is_official_build=true"
"clang_use_chrome_plugins=false"
"is_cfi=false" ;requires ThinLTO
"use_thin_lto=false" ;XXX lld segfaults
"use_custom_libcxx=false"
"chrome_pgo_phase=0"
"use_sysroot=false"
"goma_dir=\"\""
"enable_nacl=false"
"enable_nacl_nonsfi=false"
"use_unofficial_version_number=false"
"treat_warnings_as_errors=false"
"use_official_google_api_keys=false"
@ -577,7 +546,11 @@
"rtc_use_pipewire=true"
"rtc_link_pipewire=true"
;; Don't use bundled sources.
"rtc_build_json=true" ;FIXME: libc++ std::string ABI difference
"rtc_build_json=false"
(string-append "rtc_jsoncpp_root=\""
(search-input-directory %build-inputs
"include/json")
"\"")
"rtc_build_libevent=false"
;; XXX: Use the bundled libvpx for WebRTC because unbundling
;; currently fails (see above), and the versions must match.
@ -623,6 +596,15 @@
(find-files (string-append "third_party/webrtc/modules"
"/audio_coding/codecs/opus")))
(substitute* "third_party/webrtc/rtc_base/strings/json.h"
(("#include \"third_party/jsoncpp/")
"#include \"json/"))
;; This can be removed for M99.
(substitute* "media/gpu/chromeos/video_decoder_pipeline.cc"
(("third_party/libdrm/src/include/drm/drm_fourcc\\.h")
"libdrm/drm_fourcc.h"))
;; Many files try to include ICU headers from "third_party/icu/...".
;; Remove the "third_party/" prefix to use system headers instead.
(substitute* (find-files "chrome" "\\.cc$")
@ -668,7 +650,6 @@
(substitute*
'("ui/ozone/platform/x11/gl_ozone_glx.cc"
"ui/ozone/common/egl_util.cc"
"ui/gl/init/gl_initializer_linux_x11.cc"
"third_party/angle/src/libANGLE/renderer/gl/glx\
/FunctionsGLX.cpp")
(("libGL\\.so\\.1")
@ -683,18 +664,6 @@
"include/c++"))
(node (search-input-file (or native-inputs inputs)
"/bin/node")))
;; Remove the default compiler from CPLUS_INCLUDE_PATH to
;; prevent header conflict with the bundled libcxx.
(setenv "CPLUS_INCLUDE_PATH"
(string-join
(delete c++
(string-split (getenv "CPLUS_INCLUDE_PATH")
#\:))
":"))
(format #t
"environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH"))
;; Define the GN toolchain.
(setenv "AR" "llvm-ar") (setenv "NM" "llvm-nm")
(setenv "CC" "clang") (setenv "CXX" "clang++")
@ -766,7 +735,9 @@
(resources (string-append lib "/resources"))
(preferences
;; This file contains defaults for new user profiles.
#$(local-file "aux-files/chromium/master-preferences.json"))
#$(local-file
(search-auxiliary-file
"chromium/master-preferences.json")))
(gtk+ (assoc-ref inputs "gtk+"))
(xdg-utils (assoc-ref inputs "xdg-utils")))
@ -846,6 +817,7 @@
gtk+
harfbuzz-3.0
icu4c
jsoncpp
lcms
libevent
libffi
@ -879,6 +851,7 @@
pciutils
pipewire-0.3
pulseaudio
re2
snappy
speech-dispatcher
eudev

View file

@ -332,8 +332,14 @@ is on par with Java implementations, e.g., Apache commons-codec.")
(build-system clojure-build-system)
(arguments
'(#:source-dirs '("src/main/clojure")
#:test-dirs '("src/test/clojure")
#:doc-dirs '()))
#:test-dirs '("src/test/clojure" "src/test/resources")
#:doc-dirs '()
#:phases
(modify-phases %standard-phases
(add-before 'build 'delete-cljs-tests
(lambda _
(delete-file "src/test/resources/clojure/data/xml/cljs_testsuite.clj")
(delete-file "src/test/clojure/clojure/data/xml/test_cljs.clj"))))))
(propagated-inputs (list clojure-data-codec))
(synopsis "Clojure library for reading and writing XML data")
(description "@code{data.xml} is a Clojure library for reading and writing

View file

@ -3,7 +3,7 @@
;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2017, 2018, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018, 2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
@ -12,6 +12,7 @@
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -1264,7 +1265,7 @@ ac_cv_c_float_format='IEEE (little-endian)'
(install-file "gawk" bin)
(symlink "gawk" (string-append bin "/awk"))))))))))
(define glibc-mesboot0
(define-public glibc-mesboot0
;; GNU C Library 2.2.5 is the most recent glibc that we managed to build
;; using gcc-2.95.3. Newer versions (2.3.x, 2.6, 2.1x) seem to need a newer
;; gcc.
@ -1358,7 +1359,7 @@ ac_cv_c_float_format='IEEE (little-endian)'
"SHELL = " shell "
BASH = ")))))))))))
(define gcc-mesboot0
(define-public gcc-mesboot0
(package
(inherit gcc-core-mesboot0)
(name "gcc-mesboot0")
@ -1402,6 +1403,63 @@ ac_cv_c_float_format='IEEE (little-endian)'
,(string-append "LIBGCC2_INCLUDES=-I " gcc "/include")
"LANGUAGES=c")))))))
(define-public gcc-2.95-wrapper
;; We need this so gcc-mesboot0 can be used to create shared binaries that
;; have the correct interpreter, otherwise configuring gcc-mesboot using
;; --enable-shared will fail.
(package
(inherit gcc-mesboot0)
(name "gcc-wrapper")
(source #f)
(inputs '())
(native-inputs
`(("bash" ,bash-minimal)
("coreutils" ,coreutils)
("libc" ,glibc-2.2.5)
("gcc" ,gcc-mesboot0)))
(arguments
`(#:implicit-inputs? #f
#:phases
(modify-phases %standard-phases
(delete 'unpack)
(delete 'configure)
(delete 'install)
(replace 'build
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bash (assoc-ref inputs "bash"))
(libc (assoc-ref inputs "libc"))
(gcc (assoc-ref inputs "gcc"))
(bin (string-append out "/bin")))
(mkdir-p bin)
(for-each
(lambda (program)
(let ((wrapper (string-append bin "/" program)))
(with-output-to-file wrapper
(lambda _
(display (string-append "#! " bash "/bin/bash
exec " gcc "/bin/" program
" -Wl,--dynamic-linker"
;; also for x86_64-linux, we are still on i686-linux
" -Wl," libc ,(glibc-dynamic-linker "i686-linux")
" -Wl,--rpath"
" -Wl," libc "/lib"
" \"$@\"
"))
(chmod wrapper #o555)))))
'("cpp"
"gcc"
"g++"
"i686-unknown-linux-gnu-cpp"
"i686-unknown-linux-gnu-gcc"
"i686-unknown-linux-gnu-g++")))))
(replace 'check
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(program (string-append bin "/gcc")))
(invoke program "--help")))))))))
(define (%boot-mesboot0-inputs)
`(("gcc" ,gcc-mesboot0)
("kernel-headers" ,%bootstrap-linux-libre-headers)
@ -1992,7 +2050,7 @@ ac_cv_c_float_format='IEEE (little-endian)'
(lambda _
(invoke "./hello"))))))))
(define binutils-mesboot
(define-public binutils-mesboot
(package
(inherit binutils)
(name "binutils-mesboot")
@ -3736,6 +3794,19 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
("libc:static" ,glibc-final "static")
("locales" ,glibc-utf8-locales-final))))
(define-public %final-inputs-riscv64
;; This is similar to the added (list gcc "lib") elsewhere in this file, but
;; due to how (%current-system) is re-defined when performing builds with the
;; '--system' flag, %final-inputs is too early in the evaulation pipeline to
;; correctly identify the system for which a derivation will be built. Thus,
;; since (%current-system) is re-determined by (guix build-system gnu) after
;; loading %final-inputs but before taking into account the '--system' flag,
;; the test for (target-riscv64?) needs to be in (guix build-system gnu),
;; with %final-inputs-riscv64 already available at the same time that
;; %final-inputs is available.
`(("gcc:lib" ,gcc-final "lib")
,@%final-inputs))
(define-public canonical-package
(let ((name->package (fold (lambda (input result)
(match input

View file

@ -3,6 +3,7 @@
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -110,7 +111,7 @@ performance).
(define-public picom
(package
(name "picom")
(version "8.2")
(version "9")
(source
(origin
(method git-fetch)
@ -119,7 +120,7 @@ performance).
(commit (string-append "v" version))))
(sha256
(base32
"0gjksayz2xpmgglvw17ppsan2imrd1fijs579kbf27xwp503xgfl"))
"0s3rf0lmkhhprx6vd5wsz1n0n55nprq6l1245pj525hrwxc1yvna"))
(file-name (string-append "picom-" version))))
(build-system meson-build-system)
(inputs

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
@ -45,19 +45,20 @@
(define-public connman
(package
(name "connman")
(version "1.40")
(version "1.41")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/linux/network/connman/"
"connman-" version ".tar.xz"))
(sha256
(base32 "04nbxpaxykncp65fyh4lk778vn9145fbxhxa8hbkmailw9yawmqs"))))
(base32 "12g5ilcnymx6i45z3359yds3cgd2dfqjyncfm92hqlymzps41yvr"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list "--enable-nmcompat"
"--enable-polkit" ; Polkit doesn't need to be present at build time.
"--enable-iwd"
"--enable-openconnect"
"--enable-openvpn"
"--enable-vpnc"
@ -68,8 +69,8 @@
(string-append
"--with-dbusdatadir=" (assoc-ref %outputs "out") "/share"))))
(native-inputs
`(("pkg-config" ,pkg-config)
("python" ,python-wrapper)))
(list pkg-config
python-wrapper))
(inputs
(list dbus
glib

View file

@ -52,7 +52,7 @@
(define-public coq-core
(package
(name "coq-core")
(version "8.14.1")
(version "8.15.0")
(source
(origin
(method git-fetch)
@ -62,7 +62,7 @@
(file-name (git-file-name name version))
(sha256
(base32
"0q634fmrh5ivpxy7ammdiqdh9xp72ji2726vcz1bd55ln0d08z40"))
"0473mmc4wv8zbbcbvqqn0z9gz9y8gf4w2q6j6h50lx0jphpg2n8z"))
(patches (search-patches "coq-fix-envvars.patch"))))
(native-search-paths
(list (search-path-specification
@ -229,7 +229,7 @@ provers.")
(define-public coq-flocq
(package
(name "coq-flocq")
(version "3.4.2")
(version "4.0.0")
(source
(origin
(method git-fetch)
@ -239,7 +239,7 @@ provers.")
(file-name (git-file-name name version))
(sha256
(base32
"0j7vq7ifqcdaj2x881aha2rl51l2p72y1cn7r2xya0fjgsssfigy"))))
"159ykkhxz7zms28r4v8jjccapl5vv00csdz29mfy83lwrv5b6rwk"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake ocaml which coq))
@ -276,7 +276,7 @@ inside Coq.")
(define-public coq-gappa
(package
(name "coq-gappa")
(version "1.5.0")
(version "1.5.1")
(source
(origin
(method git-fetch)
@ -286,7 +286,7 @@ inside Coq.")
(file-name (git-file-name name version))
(sha256
(base32
"1ivh8xm1c8191rm4riamjzya2x6ls96qax5byir1fywf9hbxr1vg"))))
"18y4mv44mcgyam77rf4xs7l06mg7pxx1qli3yvs0kklmnnvwa463"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf
@ -334,7 +334,7 @@ assistant.")
(define-public coq-mathcomp
(package
(name "coq-mathcomp")
(version "1.13.0")
(version "1.14.0")
(source
(origin
(method git-fetch)
@ -343,7 +343,7 @@ assistant.")
(commit (string-append "mathcomp-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0aj8hsdzzds5w0p1858s2b6k9zssjcxa6kgpi0q1nvaml4zfpkcc"))))
(base32 "1rqg47dg84wr6d9v2pzna54dm62awcm8xdwx4dqwdwhf58fjxa9i"))))
(build-system gnu-build-system)
(native-inputs
(list ocaml which coq))
@ -420,7 +420,7 @@ theorems between the two libraries.")
(define-public coq-bignums
(package
(name "coq-bignums")
(version "8.14.0")
(version "8.15.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -429,7 +429,7 @@ theorems between the two libraries.")
(file-name (git-file-name name version))
(sha256
(base32
"0jsgdvj0ddhkls32krprp34r64y1rb5mwxl34fgaxk2k4664yq06"))))
"093klwlhclgyrba1iv18dyz1qp5f0lwiaa7y0qwvgmai8rll5fns"))))
(build-system gnu-build-system)
(native-inputs
(list ocaml coq))
@ -452,7 +452,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
(define-public coq-interval
(package
(name "coq-interval")
(version "4.3.1")
(version "4.4.0")
(source
(origin
(method git-fetch)
@ -462,7 +462,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
(file-name (git-file-name name version))
(sha256
(base32
"0sr9psildc0sda07r2r47rfgyry49yklk38bg04yyvry5j5pryb6"))))
"1rlcbv1nqm7zv60n63lca6nnxcq3c18akgzl72s1n3h89gvhs87z"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake ocaml which coq))
@ -546,11 +546,11 @@ uses Ltac to synthesize the substitution operation.")
(method git-fetch)
(uri (git-reference
(url "https://github.com/mattam82/Coq-Equations")
(commit (string-append "v" version "-8.14"))))
(commit (string-append "v" version "-8.15"))))
(file-name (git-file-name name version))
(sha256
(base32
"19bj9nncd1r9g4273h5qx35gs3i4bw5z9bhjni24b413hyj55hkv"))))
"1vfcfpsp9zyj0sw0cwibk76nj6n0r6gwh8m1aa3lbvc0b1kbm32k"))))
(build-system gnu-build-system)
(native-inputs
(list ocaml coq camlp5))
@ -625,7 +625,7 @@ also provided in Coq, without associated proofs.")
(define-public coq-stdpp
(package
(name "coq-stdpp")
(version "1.6.0")
(version "1.7.0")
(synopsis "Alternative Coq standard library std++")
(source (origin
(method git-fetch)
@ -635,7 +635,7 @@ also provided in Coq, without associated proofs.")
(file-name (git-file-name name version))
(sha256
(base32
"1l1w6srzydjg0h3f4krrfgvz455h56shyy2lbcnwdbzjkahibl7v"))))
"0447wbzm23f9rl8byqf6vglasfn6c1wy6cxrrwagqjwsh3i5lx8y"))))
(build-system gnu-build-system)
(inputs
(list coq))

View file

@ -11,10 +11,10 @@
;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
;;; Copyright © 2020, 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2020-2022 Greg Hogan <code@greghogan.com>
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Milkey Mouse <milkeymouse@meme.institute>
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
@ -48,6 +48,7 @@
#:use-module (guix utils)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix modules)
@ -73,13 +74,15 @@
#:use-module (gnu packages onc-rpc)
#:use-module (gnu packages perl)
#:use-module (gnu packages python)
#:use-module (gnu packages python-check)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt)
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages tls)
#:use-module (gnu packages web)
#:use-module (gnu packages xml))
#:use-module (gnu packages xml)
#:use-module (ice-9 match))
(define-public argagg
(let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748") (revision "0"))
@ -452,35 +455,32 @@ functions, class methods, and stl containers.
(license license:bsd-3)))
(define-public fifo-map
(let* ((commit "0dfbf5dacbb15a32c43f912a7e66a54aae39d0f9")
(revision "0")
(version (git-version "1.1.1" revision commit)))
(package
(name "fifo-map")
(version version)
(version "1.0.0")
(home-page "https://github.com/nlohmann/fifo_map")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit commit)))
(commit (string-append "v" version))))
(sha256
(base32
"0pi77b75kp0l7z454ihcd14nzpi3nc5m4nyjbsgy5f9bw3676196"))
"0y59fk6ycrgjln9liwcja3l5j1vxpa5i671bynpbsjlyq5f2560q"))
(patches (search-patches "fifo-map-remove-catch.hpp.patch"
"fifo-map-fix-flags-for-gcc.patch"))
(file-name (git-file-name name version))
(modules '((guix build utils)))
(snippet '(delete-file-recursively "./test/thirdparty"))))
(native-inputs
(inputs
(list catch-framework2-1))
(build-system cmake-build-system)
(arguments
`(#:phases
'(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(invoke "./unit")))
(lambda* (#:key tests? #:allow-other-keys)
(when tests? (invoke "./unit"))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@ -491,12 +491,12 @@ functions, class methods, and stl containers.
(description "Fifo_map is a C++ header only library for associative
container which uses the order in which keys were inserted to the container
as ordering relation.")
(license license:expat))))
(license license:expat)))
(define-public json-modern-cxx
(package
(name "json-modern-cxx")
(version "3.9.1")
(version "3.10.5")
(home-page "https://github.com/nlohmann/json")
(source
(origin
@ -504,7 +504,7 @@ as ordering relation.")
(uri (git-reference (url home-page)
(commit (string-append "v" version))))
(sha256
(base32 "0ar4mzp53lskxw3vdzw07f47njcshl3lwid9jfq6l7yx6ds2nyjc"))
(base32 "1f9mi45ilwjc2w92grjc53sw038840bjpn8yjf6wc6bxs2nijfqd"))
(file-name (git-file-name name version))
(modules '((guix build utils)))
(snippet
@ -513,7 +513,7 @@ as ordering relation.")
;; is a wrapper library added by this package.
(install-file "./test/thirdparty/doctest/doctest_compatibility.h" "/tmp")
(for-each delete-file-recursively
'("./third_party" "./test/thirdparty" "./benchmarks/thirdparty"))
'("./third_party" "./test/thirdparty"))
(install-file "/tmp/doctest_compatibility.h" "./test/thirdparty/doctest")
;; Adjust for the unbundled fifo_map and doctest.
@ -525,32 +525,28 @@ as ordering relation.")
(substitute* files
(("#include ?\"(fifo_map.hpp)\"" all fifo-map-hpp)
(string-append
"#include <fifo_map/" fifo-map-hpp ">")))))
#t))))
"#include <fifo_map/" fifo-map-hpp ">")))))))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
(list "-DJSON_MultipleHeaders=ON" ; For json_fwd.hpp.
(string-append "-DJSON_TestDataDirectory="
(assoc-ref %build-inputs "json_test_data")))
(dirname
(search-input-directory %build-inputs
"json_nlohmann_tests"))))
#:phases (modify-phases %standard-phases
;; XXX: When tests are enabled, the install phase will cause
;; a needless rebuild without the given configure flags,
;; ultimately creating both $out/lib and $out/lib64. Move
;; the check phase after install to work around it.
(delete 'check)
(add-after 'install 'check
(lambda* (#:key tests? #:allow-other-keys)
(replace 'check
(lambda* (#:key tests? parallel-tests? #:allow-other-keys)
(if tests?
;; Some tests need git and a full checkout, skip those.
(invoke "ctest" "-LE" "git_required")
(format #t "test suite not run~%"))
#t)))))
(invoke "ctest" "-LE" "git_required"
"-j" (if parallel-tests?
(number->string (parallel-job-count))
"1"))
(format #t "test suite not run~%")))))))
(native-inputs
`(("amalgamate" ,amalgamate)
("doctest" ,doctest)
("json_test_data"
,(let ((version "3.0.0"))
(list amalgamate
(let ((version "3.0.0"))
(origin
(method git-fetch)
(uri (git-reference
@ -559,9 +555,9 @@ as ordering relation.")
(file-name (git-file-name "json_test_data" version))
(sha256
(base32
"0nzsjzlvk14dazwh7k2jb1dinb0pv9jbx5jsyn264wvva0y7daiv")))))))
"0nzsjzlvk14dazwh7k2jb1dinb0pv9jbx5jsyn264wvva0y7daiv"))))))
(inputs
(list fifo-map))
(list doctest fifo-map))
(synopsis "JSON parser and printer library for C++")
(description "JSON for Modern C++ is a C++ JSON library that provides
intuitive syntax and trivial integration.")
@ -771,7 +767,7 @@ library.")
(define-public cpplint
(package
(name "cpplint")
(version "1.4.5")
(version "1.5.5")
(source
(origin
(method git-fetch)
@ -781,19 +777,49 @@ library.")
(url "https://github.com/cpplint/cpplint")
(commit version)))
(sha256
(base32 "1yzcxqx0186sh80p0ydl9z0ld51fn2cdpz9hmhrp15j53g9ira7c"))
(base32 "13l86aq0h1jga949k79k9x3hw2xqchjc162sclg2f99vz98zcz15"))
(file-name (git-file-name name version))))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'check 'use-later-pytest
(list #:modules `((srfi srfi-1)
(srfi srfi-26)
,@%python-build-system-modules)
#:phases
#~(modify-phases (@ (guix build python-build-system) %standard-phases)
(add-before 'wrap 'reduce-GUIX_PYTHONPATH
(lambda _
(substitute* "test-requirements"
(("pytest.*") "pytest\n"))
#t)))))
;; Hide the transitive native inputs from GUIX_PYTHONPATH
;; to prevent them from ending up in the run-time closure.
;; See also <https://bugs.gnu.org/25235>.
(let ((transitive-native-inputs
'#$(match (package-transitive-native-inputs
this-package)
(((labels packages) ...) packages))))
;; Save the original PYTHONPATH because we need it for
;; tests later.
(setenv "TMP_PYTHONPATH" (getenv "GUIX_PYTHONPATH"))
(setenv "GUIX_PYTHONPATH"
(string-join
(filter (lambda (path)
(not (any (cut string-prefix? <> path)
transitive-native-inputs)))
(search-path-as-string->list
(getenv "GUIX_PYTHONPATH")))
":")))))
(add-after 'wrap 'reset-GUIX_PYTHONPATH
(lambda _
(setenv "GUIX_PYTHONPATH"
(getenv "TMP_PYTHONPATH"))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "pytest" "-vv")))))))
(build-system python-build-system)
(native-inputs
(list python-pytest python-pytest-cov python-pytest-runner))
(list python-coverage
python-pytest
python-pytest-cov
python-pytest-runner
python-testfixtures))
(home-page "https://github.com/cpplint/cpplint")
(synopsis "Static code checker for C++")
(description "@code{cpplint} is a command-line tool to check C/C++ files
@ -962,7 +988,7 @@ Google's C++ code base.")
(define-public pegtl
(package
(name "pegtl")
(version "2.8.3")
(version "3.2.2")
(source (origin
(method git-fetch)
(uri (git-reference
@ -971,7 +997,7 @@ Google's C++ code base.")
(file-name (git-file-name name version))
(sha256
(base32
"17crgjfdx55imi2dqnz6xpvsxq07390yfgkz5nd2g77ydkvq9db3"))))
"1viwrlsw5nwvbv8d88mf5r77syapgxx3xm1kv5kmn6drw8jgsmzf"))))
(build-system cmake-build-system)
(home-page "https://github.com/taocpp/PEGTL")
(synopsis "Parsing Expression Grammar template library")
@ -1592,3 +1618,102 @@ microparallel algorithms to implement a strict JSON parser with UTF-8
validation.")
(home-page "https://github.com/simdjson/simdjson")
(license license:asl2.0)))
(define-public bloomberg-bde-tools
(let ((commit "094885bd177e0159232d4e6a060a04edb1edd786"))
(package
(name "bloomberg-bde-tools")
;; Recent releases are not tagged so commit must be used for checkout.
(version "3.97.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/bloomberg/bde-tools")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0mbbai73z8amh23ah3wy35kmy612380yr5wg89mic60qwqmpqb02"))
(patches
(search-patches
"bloomberg-bde-tools-fix-install-path.patch"))))
(build-system copy-build-system)
;; Unable to be an inline dependency of bloomberg-bde due to patch.
(properties '((hidden? . #t)))
(synopsis "Tools for developing and building libraries modeled on BDE")
(description
"This package provides the cmake imports needed to build bloomberg-bde.")
(home-page "https://github.com/bloomberg/bde-tools")
(license license:asl2.0))))
(define-public bloomberg-bde
(let ((commit "b6bcc0e24a5862bf77aea7edd831dedf50e21d64"))
(package
(name "bloomberg-bde")
;; Recent releases are not tagged so commit must be used for checkout.
(version "3.98.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/bloomberg/bde")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0y3lipi1lj9qazgc935851r2qsx5aq3vvc4y52jq57riyz8wg3ma"))
(patches
(search-patches
"bloomberg-bde-cmake-module-path.patch"))
;;(modules '((guix build utils)))
(snippet
`(begin
;; FIXME: Delete bundled software. The third-party packages
;; may be patched or modified from upstream sources.
;;(for-each delete-file-recursively
;; (list "thirdparty"))
;; Delete failing tests.
(for-each
delete-file
(list "groups/bal/ball/ball_asyncfileobserver.t.cpp"
"groups/bal/ball/ball_fileobserver2.t.cpp"
"groups/bal/ball/ball_recordstringformatter.t.cpp"
"groups/bal/balst/balst_stacktraceutil.t.cpp"
"groups/bdl/bdlmt/bdlmt_eventscheduler.t.cpp"
"groups/bdl/bdlmt/bdlmt_timereventscheduler.t.cpp"
"groups/bdl/bdls/bdls_filesystemutil.t.cpp"
"groups/bsl/bslh/bslh_hashpair.t.cpp"
"groups/bsl/bsls/bsls_platform.t.cpp"
"groups/bsl/bsls/bsls_stackaddressutil.t.cpp"
"groups/bsl/bsls/bsls_stopwatch.t.cpp"
"groups/bsl/bslstl/bslstl_function_invokerutil.t.cpp"))
#t))))
(build-system cmake-build-system)
(arguments
`(#:parallel-tests? #f ; Test parallelism may fail inconsistently.
;; Set UFID to build shared libraries. Flag descriptions can be found at
;; https://bloomberg.github.io/bde-tools/reference/bde_repo.html#ufid
#:configure-flags ,(match %current-system
((or "i686-linux" "armhf-linux")
''("-DUFID=opt_dbg_exc_mt_32_shr_cpp17"))
(_
''("-DUFID=opt_dbg_exc_mt_64_shr_cpp17")))
#:phases
(modify-phases %standard-phases
;; Explicitly build tests separate from the main build.
(add-after 'build 'build-tests
(lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "make" "all.t"
`(,@(if #:parallel-build?
`("-j" ,(number->string (parallel-job-count)))
'())
,@make-flags)))))))
(native-inputs
(list bloomberg-bde-tools pkg-config python))
(synopsis "Foundational C++ libraries used at Bloomberg")
(description
"The BDE Development Environment libraries provide an enhanced
implementation of STL containers, vocabulary types for representing common
concepts (like dates and times), and building blocks for developing
multi-threaded applications and network applications.")
(home-page "https://github.com/bloomberg/bde")
(license license:asl2.0))))

View file

@ -55,6 +55,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
@ -187,14 +188,14 @@ etc.")
(define-public r-datawizard
(package
(name "r-datawizard")
(version "0.2.2")
(version "0.2.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "datawizard" version))
(sha256
(base32
"0sd0blrczf9qz5kd0jg112fag2w401kkbw1gp9wi5pgffgwp6va3"))))
"0hcnwz42zy9hp32brga31jwk34bz063myqjp2wfxsqm4sqrkv2rx"))))
(properties `((upstream-name . "datawizard")))
(build-system r-build-system)
(propagated-inputs
@ -3043,14 +3044,14 @@ colors are provided.")
(define-public r-glue
(package
(name "r-glue")
(version "1.6.0")
(version "1.6.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "glue" version))
(sha256
(base32
"0f23dgnc7rv81vhmdhmiwk666mqwb602hxzai1hssyn4y9zg7gkp"))))
"1nvqm4fmxyszz9b2y0gjiwbvwssdqj9jflcz00b4487i8jajz31i"))))
(build-system r-build-system)
;; knitr depends on glue, so we can't add knitr here to build the
;; vignettes.
@ -3311,14 +3312,14 @@ and Francois (2011, JSS), and the book by Eddelbuettel (2013, Springer); see
(define-public r-rcppthread
(package
(name "r-rcppthread")
(version "1.0.0")
(version "2.0.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "RcppThread" version))
(sha256
(base32
"1xfcxrny779kgknlvnc4j02ifprnakndnkhx8bhy50d39vp4hjjl"))))
"1hcxdk9mhsnrgg2bp7ls165abwb7b5grgh1gvf2i7sqrf9ggwa09"))))
(properties `((upstream-name . "RcppThread")))
(build-system r-build-system)
(home-page
@ -3997,6 +3998,54 @@ T distribution. There is only one exported function, @code{e_trunct},
which should be seen for details.")
(license license:expat)))
(define-public r-excelr
(package
(name "r-excelr")
(version "0.4.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "excelR" version))
(sha256
(base32 "1pb4sy54zjv5vrh7gjjv7qlpab74km6mfsmfyl0yhmr0jx01hrw0"))
(snippet
'(delete-file "inst/htmlwidgets/lib/jexcel/js/jexcel.min.js"))))
(properties `((upstream-name . "excelR")))
(build-system r-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'process-javascript
(lambda* (#:key inputs #:allow-other-keys)
(with-directory-excursion "inst/htmlwidgets/lib/jexcel/js/"
(let ((source (assoc-ref inputs "js-jexcel"))
(target "jexcel.min.js"))
(format #true "Processing ~a --> ~a~%"
source target)
(invoke "esbuild" source "--minify"
(string-append "--outfile=" target)))))))))
(native-inputs
`(("esbuild" ,esbuild)
;; There is no tag for this particular commit, but comparison of the
;; contents of the JavaScript files point to this commit as the most
;; likely source.
("js-jexcel"
,(origin
(method url-fetch)
(uri (string-append "https://raw.githubusercontent.com/jspreadsheet/ce/"
"8af1960f76e6803bebc5750013d2ebe95354e88a/dist/jexcel.js"))
(sha256
(base32
"0y88hsr9d8cpnvdmbm17m328pc4kc5wbcv02kzmhm0bryzhviw7h"))))))
(propagated-inputs (list r-htmlwidgets r-jsonlite))
(home-page "https://github.com/Swechhya/excelR")
(synopsis "Wrapper of the JavaScript library jExcel")
(description
"This package provides an R interface to the jExcel library to
create web-based interactive tables and spreadsheets compatible with
spreadsheet software.")
(license license:expat)))
(define-public r-extremes
(package
(name "r-extremes")
@ -4283,14 +4332,14 @@ data). Weighted versions of MLE, MME and QME are available.")
(define-public r-energy
(package
(name "r-energy")
(version "1.7-8")
(version "1.7-9")
(source
(origin
(method url-fetch)
(uri (cran-uri "energy" version))
(sha256
(base32
"12a7gy681aq3l55iys044cs6sn1s2l5qihghpdl01cvv0ggfh26y"))))
"1ndssfi0hbnsm5jwrns7m63ppxm221hd6gk0b0wa1a7mk7ny1l38"))))
(build-system r-build-system)
(propagated-inputs
(list r-boot r-gsl r-rcpp))
@ -4838,14 +4887,14 @@ by base R methods related to model fitting.")
(define-public r-broom
(package
(name "r-broom")
(version "0.7.11")
(version "0.7.12")
(source
(origin
(method url-fetch)
(uri (cran-uri "broom" version))
(sha256
(base32
"069fp8lscw59nmsm658w0164cpgfa36xx09s9j7jxisscg99jfcy"))))
"1nbv4a4s8548h2q226xmhyp42higayh95yvllh1rcs264lmw3yh4"))))
(build-system r-build-system)
(propagated-inputs
(list r-backports
@ -4966,6 +5015,31 @@ avoid overlapping text labels. Labels repel away from each other and away
from the data points.")
(license license:gpl3)))
(define-public r-coro
(package
(name "r-coro")
(version "1.0.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "coro" version))
(sha256
(base32 "14irld29dipgfd34y0k351daqg9vqpnpdx8m3pxmqr1aiyj5f5cv"))))
(properties `((upstream-name . "coro")))
(build-system r-build-system)
(propagated-inputs (list r-rlang))
(native-inputs (list r-knitr))
(home-page "https://github.com/r-lib/coro")
(synopsis "Coroutines for R")
(description
"This package provides coroutines for R, a family of functions that can
be suspended and resumed later on. This includes async functions (which
await) and generators (which yield). Async functions are based on the
concurrency framework of the @code{promises} package. Generators are based on
a dependency free iteration protocol defined in @code{coro} and are compatible
with iterators from the @code{reticulate} package.")
(license license:expat)))
(define-public r-corrplot
(package
(name "r-corrplot")
@ -5037,6 +5111,25 @@ algorithm. The interface of @code{ucminf} is designed for easy interchange
with the package @code{optim}.")
(license license:gpl2+)))
(define-public r-usedist
(package
(name "r-usedist")
(version "0.4.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "usedist" version))
(sha256
(base32 "0ddf1zcalbrn293qmr9kdzz3x16fzc4k1bwb1pjmwnspisqfi8kj"))))
(properties `((upstream-name . "usedist")))
(build-system r-build-system)
(home-page "https://cran.r-project.org/package=usedist")
(synopsis "Distance matrix utilities")
(description
"This package provides functions to re-arrange, extract, and work with
distances.")
(license license:gpl3)))
(define-public r-useful
(package
(name "r-useful")
@ -5937,20 +6030,21 @@ to variables on the left-hand side of the assignment.")
(define-public r-pillar
(package
(name "r-pillar")
(version "1.6.4")
(version "1.6.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "pillar" version))
(sha256
(base32
"17m13rzgwdddwa0n3gpmax6wmfaphbg71l13ffhw5vnxf6i94fh3"))))
"1nqv86zb51jgd6jbhgnyq6j53dzsjx7gwaapndfd3yvp0sxg3yr2"))))
(build-system r-build-system)
(propagated-inputs
(list r-cli
r-crayon
r-ellipsis
r-fansi
r-glue
r-lifecycle
r-rlang
r-utf8
@ -7066,14 +7160,14 @@ environment within Shiny.")
(define-public r-randomizr
(package
(name "r-randomizr")
(version "0.20.0")
(version "0.22.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "randomizr" version))
(sha256
(base32
"0dljyfldnardaps3fq6vi5wcs9x6qfaq5apapa78c51lnaa6fn9h"))))
"1grm0h3xkb0pdbbv0gd531g1kn6njp0gcy5fh153rrmajxgd8hhw"))))
(properties `((upstream-name . "randomizr")))
(build-system r-build-system)
(native-inputs
@ -8041,14 +8135,14 @@ Python's @url{https://github.com/ActiveState/appdirs,Appdirs} to R.")
(define-public r-rastervis
(package
(name "r-rastervis")
(version "0.51.1")
(version "0.51.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "rasterVis" version))
(sha256
(base32
"1mg11njzajx9az6xjghjl2sna6wzs85ga8fhy9w43l2n8icsfbr2"))))
"0kgg6cm7xjqya2d46w0i1i1wjpkb8f99lyqy7rgwa7l9xmwzj5n1"))))
(properties `((upstream-name . "rasterVis")))
(build-system r-build-system)
(propagated-inputs
@ -8098,14 +8192,14 @@ those searches and pull data into their R sessions.")
(define-public r-renv
(package
(name "r-renv")
(version "0.15.1")
(version "0.15.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "renv" version))
(sha256
(base32
"0nwvdzwyjvqlvkwp1yhhvqm8b9pwimwng99s0m0j63zm9bgwis1n"))))
"1nv5hz40cbvdbc2kkr2q2xqnpkgkmp47nlfbr7z57mpn579zyznh"))))
(properties `((upstream-name . "renv")))
(build-system r-build-system)
(native-inputs
@ -8215,14 +8309,14 @@ always locate the files relative to your project root.")
(define-public r-reticulate
(package
(name "r-reticulate")
(version "1.23")
(version "1.24")
(source
(origin
(method url-fetch)
(uri (cran-uri "reticulate" version))
(sha256
(base32
"1mindiw7k7pa33hpwrgq0g5808c8qs9hl0351n8z2w9wyczlm87y"))))
"1k0nv43fa9lx44pamxpprnvvmsp15adn5z6hg9siyq0n94hca65r"))))
(build-system r-build-system)
(inputs (list python))
(propagated-inputs
@ -8264,6 +8358,66 @@ Python to R they are converted back to R types.")
file.")
(license license:gpl2+)))
(define-public r-billboarder
(package
(name "r-billboarder")
(version "0.3.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "billboarder" version))
(sha256
(base32 "189ngvg84rcwhrivxskmjv3srhadvzr4p1v8pf11axyv2qn01b0x"))
(snippet
'(delete-file "inst/htmlwidgets/lib/billboard/billboard.pkgd.min.js"))))
(properties `((upstream-name . "billboarder")))
(build-system r-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'process-javascript
(lambda* (#:key inputs #:allow-other-keys)
(with-directory-excursion "inst/htmlwidgets/lib/billboard/"
(let ((source (assoc-ref inputs "js-billboard"))
(target "billboard.pkgd.min.js"))
(format #true "Processing ~a --> ~a~%"
source target)
(invoke "esbuild" source "--minify"
(string-append "--outfile=" target)))))))))
(propagated-inputs
(list r-ggplot2
r-htmltools
r-htmlwidgets
r-jsonlite
r-magrittr
r-rlang
r-scales
r-shiny))
(native-inputs
`(("r-knitr" ,r-knitr)
("esbuild" ,esbuild)
;; It is not ideal to use this concatenated (but not minified)
;; JavaScript file, as the original source is written in TypeScript.
;; However, this can still be considered source code as it is readable
;; and can be modified.
("js-billboard"
,(origin
(method url-fetch)
(uri "https://unpkg.com/billboard.js@3.2.0/dist/billboard.js")
(sha256
(base32
"1kx5rqmn87pgal2cwmcij2rrnwa0fgcsw6y99m4i0l2sdm0qffv2"))))))
(home-page "https://github.com/dreamRs/billboarder")
(synopsis "Create interactive charts with the JavaScript Billboard library")
(description
"This package provides an @code{htmlwidgets} interface to billboard.js,
a re-usable easy interface JavaScript chart library, based on D3 v4+. Chart
types include line charts, scatterplots, bar/lollipop charts,
histogram/density plots, pie/donut charts and gauge charts. All charts are
interactive, and a proxy method is implemented to smoothly update a chart
without rendering it again in shiny apps.")
(license license:expat)))
(define-public r-ggseqlogo
(package
(name "r-ggseqlogo")
@ -9674,14 +9828,14 @@ visualization and candidate genes around SNPs.")
(define-public r-precrec
(package
(name "r-precrec")
(version "0.12.7")
(version "0.12.8")
(source
(origin
(method url-fetch)
(uri (cran-uri "precrec" version))
(sha256
(base32
"0vwzaqnh9ymrm52dd79bihwqprnygz0d71ay8fv51hdw0zg6saya"))))
"0kwn902z32qcnkffjm6dqnaxagx31xjdcak50clbgrway2pcdjrm"))))
(properties `((upstream-name . "precrec")))
(build-system r-build-system)
(propagated-inputs
@ -10199,14 +10353,14 @@ used to teach mathematics, statistics, computation and modeling.")
(define-public r-raster
(package
(name "r-raster")
(version "3.5-11")
(version "3.5-15")
(source
(origin
(method url-fetch)
(uri (cran-uri "raster" version))
(sha256
(base32
"18v1vflq15915dwa3caf5sp1d1kp8w6plpaqk3z6a3164lwq5i76"))))
"11fnznymwavpph733dayklhcx4phpjgrijfxlaszi122sg2x7ir9"))))
(build-system r-build-system)
(propagated-inputs
(list r-rcpp r-sp r-terra))
@ -11553,14 +11707,14 @@ results using @code{ggplot2}.")
(define-public r-effectsize
(package
(name "r-effectsize")
(version "0.6.0")
(version "0.6.0.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "effectsize" version))
(sha256
(base32
"0xhibc868sngkc8v9g385vlhqdqxzy6b4mj1jihjy6wvk9jw266s"))))
"1rhpbhyrv0avinm6dz6v2qw4xxdl9m1wknq1dv2flfxgcz0k9qiz"))))
(properties `((upstream-name . "effectsize")))
(build-system r-build-system)
(propagated-inputs
@ -12788,13 +12942,13 @@ Anderson-Darling Distribution\".")
(define-public r-admisc
(package
(name "r-admisc")
(version "0.22")
(version "0.23")
(source
(origin
(method url-fetch)
(uri (cran-uri "admisc" version))
(sha256
(base32 "1jwz9z3brq4lbnqrkxx40vrn47rknkkj4xfv2gi8kmf1mzc5aqcd"))))
(base32 "0md0sygwdglyw7ss0dw6h235n70vpf25npp1q5b5nmb4db0fq80c"))))
(properties `((upstream-name . "admisc")))
(build-system r-build-system)
(home-page "https://github.com/dusadrian/admisc")
@ -12893,14 +13047,14 @@ redundant complex conjugate when the input is real data.")
(define-public r-tiff
(package
(name "r-tiff")
(version "0.1-10")
(version "0.1-11")
(source
(origin
(method url-fetch)
(uri (cran-uri "tiff" version))
(sha256
(base32
"1zha6bzb1rmfl6n2xjkygs9wfi3ah9cjr7a6jzk4zqc5kvl58lak"))))
"0xgc7vyndxxahfhc2qqzmwi56bnfyl0pn72l820jz5sd24aymhxq"))))
(build-system r-build-system)
(inputs
(list libtiff libjpeg-turbo zlib))
@ -15226,6 +15380,38 @@ several common set, element and attribute related tasks.")
effects from the jQuery UI library.")
(license license:expat)))
(define-public r-shinymanager
(package
(name "r-shinymanager")
(version "1.0.400")
(source
(origin
(method url-fetch)
(uri (cran-uri "shinymanager" version))
(sha256
(base32 "1np2yp5pn8g9i4jhysfgprmdn13cpw4vaaagrd72rnk2r4hpmyx4"))))
(properties `((upstream-name . "shinymanager")))
(build-system r-build-system)
(propagated-inputs
(list r-billboarder
r-dbi
r-dt
r-htmltools
r-openssl
r-r-utils
r-r6
r-rsqlite
r-scrypt
r-shiny))
(native-inputs (list r-knitr))
(home-page "https://github.com/datastorm-open/shinymanager")
(synopsis "Authentication management for Shiny applications")
(description
"This package provides simple and secure authentification mechanism for
single Shiny applications. Credentials are stored in an encrypted SQLite
database.")
(license license:gpl3)))
(define-public r-outliers
(package
(name "r-outliers")
@ -15641,14 +15827,14 @@ probabilities from a standard bivariate normal CDF.")
(define-public r-lavaan
(package
(name "r-lavaan")
(version "0.6-9")
(version "0.6-10")
(source
(origin
(method url-fetch)
(uri (cran-uri "lavaan" version))
(sha256
(base32
"12hhbwxaiprs9bmclwhhdpv42h4mrl4gj92zq3wk8rb883mw816l"))))
"0dwc8rgrzyrrb0ivx297ln2qbrsxbpn6mdf7laiffhspdpml8sad"))))
(build-system r-build-system)
(propagated-inputs
(list r-mass r-mnormt r-numderiv r-pbivnorm))
@ -16522,13 +16708,13 @@ datum transformations.")
(define-public r-spdep
(package
(name "r-spdep")
(version "1.2-1")
(version "1.2-2")
(source (origin
(method url-fetch)
(uri (cran-uri "spdep" version))
(sha256
(base32
"1ya39bgmzagrk4k51zd96l4xvnbc2vzmvd0z9qprdfvg9s6pik78"))
"08sya6vy7s87h337g2fanncw6xx9y9z8nxpqalbdxv9vpsc6zx4l"))
(snippet
'(for-each delete-file '("inst/doc/CO69.html"
"inst/doc/CO69.R"
@ -19648,14 +19834,14 @@ emphasize hidden group structures in networks or focus on specific nodes.")
(define-public r-terra
(package
(name "r-terra")
(version "1.5-12")
(version "1.5-17")
(source
(origin
(method url-fetch)
(uri (cran-uri "terra" version))
(sha256
(base32
"06fcjyzllw6dnzq0a7dc73v7rlpf250dyw41q0vr08y3x17c2p46"))))
"1rz6dd78i3aq82vl9q4fw17y5cxj2pcmra5mlhb0ca1df78mgb77"))))
(properties `((upstream-name . "terra")))
(build-system r-build-system)
(inputs
@ -22294,14 +22480,14 @@ API; see the package vignette for details.")
(define-public r-actuar
(package
(name "r-actuar")
(version "3.2-0")
(version "3.2-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "actuar" version))
(sha256
(base32
"015brjjgmkwmjajdjdw8gs02jrd96if425pk9a97d499hzsq3xds"))))
"1avqgkls4xvwgfr6j7g2f7p474rlpi82q5aksw8nzf8wcyp7592f"))))
(properties `((upstream-name . "actuar")))
(build-system r-build-system)
(propagated-inputs (list r-expint))
@ -22561,6 +22747,58 @@ and multivariate regression), and analysis of variance tolerance intervals.
Visualizations are also available for most of these settings.")
(license license:gpl2+)))
;; Keep this in sync with the liblantern package.
(define-public r-torch
(package
(name "r-torch")
(version "0.6.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "torch" version))
(sha256
(base32 "05vxb84qxna1rpzqhjw6gwyc569zyz7rfbdkahglvihqjjwabc4x"))))
(properties `((upstream-name . "torch")))
(build-system r-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'link-libraries
(lambda* (#:key inputs #:allow-other-keys)
(let ((deps (string-append #$output "/site-library/torch/deps")))
(mkdir-p deps)
(symlink
(search-input-file
inputs "/lib/python3.9/site-packages/torch/lib/libtorch.so")
(string-append deps "/libtorch.so"))
(symlink
(search-input-file
inputs "/lib/liblantern.so")
(string-append deps "/liblantern.so"))))))))
(inputs
(list python-pytorch-for-r-torch
liblantern))
(propagated-inputs
(list r-bit64
r-callr
r-cli
r-coro
r-ellipsis
r-magrittr
r-r6
r-rcpp
r-rlang
r-withr))
(native-inputs (list r-knitr))
(home-page "https://torch.mlverse.org/docs")
(synopsis "Tensors and neural networks with GPU acceleration")
(description
"This package provides functionality to define and train neural networks
similar to PyTorch but written entirely in R using the libtorch library. It
also supports low-level tensor operations and GPU acceleration.")
(license license:expat)))
(define-public r-additivitytests
(package
(name "r-additivitytests")
@ -22880,6 +23118,30 @@ finding peaks in spectra, converting humidity measures.")
from PLINK results.")
(license license:gpl3)))
(define-public r-gghighlight
(package
(name "r-gghighlight")
(version "0.3.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "gghighlight" version))
(sha256
(base32 "0bxgn4srxz1qhawqa8ck57p8hg5ikwfa9ll03zmnn8fb19akwm2v"))))
(properties `((upstream-name . "gghighlight")))
(build-system r-build-system)
(propagated-inputs
(list r-dplyr r-ggplot2 r-ggrepel r-lifecycle r-purrr r-rlang r-tibble))
(native-inputs (list r-knitr))
(home-page "https://github.com/yutannihilation/gghighlight/")
(synopsis "Highlight lines and points in ggplot2")
(description "Suppose we have data that has so many series that it is hard
to identify them by their colors as the differences are so subtle. With
gghighlight we can highlight those lines that match certain criteria. The
result is a usual @code{ggplot} object, so it is fully customizable and can be
used with custom themes and facets.")
(license license:expat)))
(define-public r-ggplot-multistats
(package
(name "r-ggplot-multistats")
@ -24990,13 +25252,13 @@ appropriate dog and cat images for many status codes.")
(define-public r-latex2exp
(package
(name "r-latex2exp")
(version "0.5.0")
(version "0.9.0")
(source (origin
(method url-fetch)
(uri (cran-uri "latex2exp" version))
(sha256
(base32
"0qknpw7zwwbzsbry94j8fn48mq7kq5rc5448g9hybbisain3wfvg"))))
"0hfixybyds1jxhyiy3p6256z0fxzc65r654jhc62q9cd3v86a5z6"))))
(build-system r-build-system)
(propagated-inputs
(list r-stringr r-magrittr))
@ -25891,14 +26153,14 @@ counting and recursive k-means partitioning.")
(define-public r-hardhat
(package
(name "r-hardhat")
(version "0.1.6")
(version "0.2.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "hardhat" version))
(sha256
(base32
"07mx8c24gy0xfmip9hb5w29gp10sfnpnilzc1pi0hjadnrqz8mks"))))
"0a4nq93cmps5xy8h0qsv6xyzrbsz9ka4iwkrvb8m8v10wq7wm5wl"))))
(properties `((upstream-name . "hardhat")))
(build-system r-build-system)
(propagated-inputs
@ -26647,14 +26909,14 @@ model.")
(define-public r-clusterr
(package
(name "r-clusterr")
(version "1.2.5")
(version "1.2.6")
(source
(origin
(method url-fetch)
(uri (cran-uri "ClusterR" version))
(sha256
(base32
"1fsb9pzs1paw1cbyr5a56lfh8h2d50232p6isk0xg5sl110ql7kx"))))
"00mha8madcba83ix4fc04rb7sagfm0lxlh1wvs7dvjdrngps41jr"))))
(properties `((upstream-name . "ClusterR")))
(build-system r-build-system)
(propagated-inputs
@ -28449,14 +28711,14 @@ rate speciation and extinction.")
(define-public r-calculus
(package
(name "r-calculus")
(version "0.3.2")
(version "0.3.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "calculus" version))
(sha256
(base32
"1x3bcdd422wqv9gk9r2m8g19qcga220sm5rxdp4bgfc6vlqzzz7y"))))
"1fhvr0l2mqik3d95v0vanafxmiab147g5a87q956g2i945wc5f22"))))
(properties `((upstream-name . "calculus")))
(build-system r-build-system)
(propagated-inputs
@ -28798,13 +29060,13 @@ performing ordinal regression.")
(define-public r-paradox
(package
(name "r-paradox")
(version "0.7.1")
(version "0.8.0")
(source (origin
(method url-fetch)
(uri (cran-uri "paradox" version))
(sha256
(base32
"1difp0bzsfxcmbm1snahh3i6417k1a2w4mnjx65p20n2yiclmrgs"))))
"1jfzbpqi1rp3r8hnk37dqwggp48ha5bnilmdz7dwzfdaskssycxa"))))
(build-system r-build-system)
(propagated-inputs
(list r-backports r-checkmate r-data-table r-mlr3misc r-r6))
@ -28855,13 +29117,13 @@ computational operations, add-on packages provide additional functionality.")
(define-public r-mlr3learners
(package
(name "r-mlr3learners")
(version "0.5.1")
(version "0.5.2")
(source (origin
(method url-fetch)
(uri (cran-uri "mlr3learners" version))
(sha256
(base32
"1yc3mrk1b9h1k342wnw7sm4zmcw7w31l5ybh558g88f5hmibdl98"))))
"1d9hcrnj622ynrzg0ii0fkhz2n66ip46yln21jq1pwpwkqwqzv35"))))
(build-system r-build-system)
(propagated-inputs
(list r-checkmate

File diff suppressed because it is too large Load diff

View file

@ -101,7 +101,16 @@
"ath9k-htc-firmware-binutils.patch")))
((target-mingw? target)
(package-with-extra-patches
binutils
(package-with-extra-configure-variable
;; mingw binutils does not work correctly when configured
;; with `--enable-compressed-debug-sections`. An error
;; like the following will occur whenever you try to link:
;;
;; x86_64-w64-mingw32-ld: final link failed: bad value
;;
;; TODO: This seems like a deeper problem that warrants
;; deeper investigation.
binutils "--enable-compressed-debug-sections" "no")
(search-patches "binutils-mingw-w64-timestamp.patch"
"binutils-mingw-w64-deterministic.patch")))
(else binutils))

View file

@ -10,7 +10,7 @@
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
;;; Copyright © 2016, 2017, 2018 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 David Craven <david@craven.ch>
@ -55,6 +55,7 @@
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2021 jgart <jgart@dismail.de>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -132,6 +133,7 @@
#:use-module (gnu packages python-science)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages rdf)
#:use-module (gnu packages readline)
#:use-module (gnu packages regex)
@ -164,6 +166,7 @@
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (guix build-system ruby)
#:use-module (guix build-system cmake)
#:use-module (guix build-system scons)
@ -629,6 +632,59 @@ around TangentOrgs libmemcached library, and can be used as a drop-in
replacement for the code@{python-memcached} library.")
(license license:bsd-3)))
(define-public go-github-com-bradfitz-gomemcache
(package
(name "go-github-com-bradfitz-gomemcache")
(version "0.0.0-20190913173617-a41fca850d0b")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/bradfitz/gomemcache")
(commit (go-version->git-ref version))))
(file-name (git-file-name name version))
(sha256
(base32 "18qpds6xr73jy80pj7l3pc1l1ndcy3va2dl8fzk17bgwg49sxwfz"))
(modules '((guix build utils)))
(snippet
'(begin
;; Fixes the 'untyped-int -> string of one rune' issue.
;; https://github.com/golang/go/issues/32479
(substitute* "memcache/memcache_test.go"
(("string\\(0x7f") "string(rune(0x7f)"))))))
(build-system go-build-system)
(arguments
'(#:unpack-path "github.com/bradfitz/gomemcache"
#:import-path "github.com/bradfitz/gomemcache/memcache"))
(home-page "https://github.com/bradfitz/gomemcache")
(synopsis "Memcache client library in Go")
(description
"This is a memcache client library for the Go programming language.")
(license license:asl2.0)))
(define-public go-github-com-couchbase-gomemcached
(package
(name "go-github-com-couchbase-gomemcached")
(version "0.1.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/couchbase/gomemcached")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "10w74gc05x5naspls39sv2r92krrg31mk266w3lyqqwc0s3fxysl"))))
(build-system go-build-system)
(arguments '(#:import-path "github.com/couchbase/gomemcached"))
(native-inputs
(list go-github-com-stretchr-testify))
(home-page "https://github.com/couchbase/gomemcached")
(synopsis "Memcached binary protocol toolkit for go")
(description
"This package provides memcache client and server functionality.")
(license license:expat)))
(define-public litecli
(package
(name "litecli")
@ -1263,6 +1319,85 @@ pictures, sounds, or video.")
(define-public postgresql postgresql-13)
(define-public timescaledb
(package
(name "timescaledb")
(version "2.5.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/timescale/timescaledb")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"174dm3higa0i7al9r2hdv5hk36pd0d5fnqj57w5a350kxshxyvyw"))
(modules '((guix build utils)))
(snippet
;; Remove files carrying the proprietary TIMESCALE license.
'(begin
(delete-file-recursively "tsl")
(for-each delete-file
'("test/perl/AccessNode.pm"
"test/perl/DataNode.pm"
"test/perl/TimescaleNode.pm"))))))
(build-system cmake-build-system)
(arguments
(list #:imported-modules `((guix build union)
,@%cmake-build-system-modules)
#:modules `(,@%cmake-build-system-modules
(guix build union)
(ice-9 match))
#:configure-flags #~(list "-DAPACHE_ONLY=ON"
"-DSEND_TELEMETRY_DEFAULT=OFF")
#:test-target "regresschecklocal"
#:phases
#~(modify-phases (@ (guix build cmake-build-system) %standard-phases)
(add-after 'unpack 'patch-install-location
(lambda _
;; Install extension to the output instead of the
;; PostgreSQL store directory.
(substitute* '("CMakeLists.txt"
"cmake/GenerateScripts.cmake"
"sql/CMakeLists.txt")
(("\\$\\{PG_SHAREDIR\\}/extension")
(string-append #$output "/share/extension")))
;; Likewise for the library.
(substitute* '("src/CMakeLists.txt"
"src/loader/CMakeLists.txt")
(("\\$\\{PG_PKGLIBDIR\\}")
(string-append #$output "/lib")))))
;; Run the tests after install to make it easier to create the
;; required PostgreSQL+TimescaleDB filesystem union.
(delete 'check)
(add-after 'install 'prepare-tests
(lambda* (#:key inputs #:allow-other-keys)
(let ((pg-data (string-append (getcwd) "/../pg-data"))
(pg-union (string-append (getcwd) "/../pg-union")))
(match inputs
(((names . directories) ...)
(union-build pg-union (cons #$output directories))))
(setenv "PATH" (string-append pg-union "/bin:"
(getenv "PATH")))
(invoke "initdb" "-D" pg-data)
(copy-file "test/postgresql.conf"
(string-append pg-data "/postgresql.conf"))
(invoke "pg_ctl" "-D" pg-data
"-o" (string-append "-k " pg-data)
"-l" (string-append pg-data "/db.log")
"start"))))
(add-after 'prepare-tests 'check
(assoc-ref %standard-phases 'check)))))
(inputs (list openssl postgresql))
(home-page "https://www.timescale.com/")
(synopsis "Time-series extension for PostgreSQL")
(description
"TimescaleDB is an database designed to make SQL scalable for
time-series data. It is engineered up from PostgreSQL and packaged as a
PostgreSQL extension, providing automatic partitioning across time and space
(partitioning key), as well as full SQL support.")
(license license:asl2.0)))
(define-public pgloader
(package
(name "pgloader")
@ -2321,6 +2456,55 @@ one-to-one, while still providing an idiomatic interface.")
(home-page "https://github.com/redis/redis-rb")
(license license:expat)))
(define-public go-github-com-cupcake-rdb
(package
(name "go-github-com-cupcake-rdb")
(version "0.0.0-20161107195141-43ba34106c76")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tent/rdb")
(commit (go-version->git-ref version))))
(file-name (git-file-name name version))
(sha256
(base32 "1l4bsn5yj8r875crz1rsk6dlvhv0bd8mgazsch5vl4c19v0fs2ib"))))
(build-system go-build-system)
(arguments '(#:import-path "github.com/cupcake/rdb"))
(native-inputs
(list go-gopkg-in-check-v1))
(home-page "https://github.com/tent/rdb")
(synopsis "Redis RDB parser for Go")
(description
"Package rdb implements parsing and encoding of the Redis RDB file format.")
(license license:expat)))
(define-public go-github-com-gomodule-redigo
(package
(name "go-github-com-gomodule-redigo")
(version "1.8.8")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gomodule/redigo")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0wplaaxg7f6c6c08gdp33l48hygn8gq1rhlnjzr1c9qcggsm07k1"))))
(build-system go-build-system)
(arguments
'(#:unpack-path "github.com/gomodule/redigo"
#:import-path "github.com/gomodule/redigo/redis"))
(native-inputs
(list go-github-com-stretchr-testify
redis))
(home-page "https://github.com/gomodule/redigo")
(synopsis "Go client for Redis")
(description
"Redigo is a Go client for the Redis database.")
(license license:asl2.0)))
(define-public kyotocabinet
(package
(name "kyotocabinet")
@ -2610,6 +2794,34 @@ on another machine, accessed via TCP/IP.")
(home-page "http://pqxx.org/")
(license license:bsd-3)))
(define-public go-go-etcd-io-bbolt
(package
(name "go-go-etcd-io-bbolt")
(version "1.3.6")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/etcd-io/bbolt")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0pj5245d417za41j6p09fmkbv05797vykr1bi9a6rnwddh1dbs8d"))))
(build-system go-build-system)
(arguments
`(#:import-path "go.etcd.io/bbolt"
;; Extending the test timeout to 30 minutes still times out on aarch64.
#:tests? ,(not target-arm?)))
(propagated-inputs
(list go-golang-org-x-sys))
(home-page "https://go.etcd.io/bbolt")
(synopsis "Embedded key/value database for Go")
(description "Bolt is a pure Go key/value store inspired by Howard Chu's
LMDB project. The goal of the project is to provide a simple, fast, and
reliable database for projects that don't require a full database server such as
Postgres or MySQL.")
(license license:expat)))
(define-public python-peewee
(package
(name "python-peewee")
@ -2917,6 +3129,30 @@ etc., and an SQL engine for performing simple SQL queries.")
(license (list license:lgpl2.0
license:gpl2+))))
(define-public go-gopkg-in-mgo-v2
(package
(name "go-gopkg-in-mgo-v2")
(version "2.0.0-20190816093944-a6b53ec6cb22")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gopkg.in/mgo.v2")
(commit (go-version->git-ref version))))
(file-name (git-file-name name version))
(sha256
(base32 "1lgvwxsbmdrf4938qkxl56wbwgbphk2qqnmpf73qdmlv4qsg14na"))))
(build-system go-build-system)
(arguments
'(#:tests? #f ; Tests try to use a running mongodb server.
#:import-path "gopkg.in/mgo.v2"))
(native-inputs
(list go-gopkg-in-check-v1))
(home-page "https://gopkg.in/mgo.v2")
(synopsis "MongoDB driver for Go")
(description "This package provides a MongoDB driver for Go.")
(license license:bsd-2)))
(define-public python-lmdb
(package
(name "python-lmdb")
@ -4319,3 +4555,45 @@ a handy text editor with language recognition, and visualize SELECT results in
a Gtk.Grid Widget.")
(home-page "https://github.com/Alecaddd/sequeler")
(license license:gpl2+)))
(define-public sqlitebrowser
(package
(name "sqlitebrowser")
(version "3.12.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sqlitebrowser/sqlitebrowser")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1ljqzcx388mmni8lv9jz5r58alhsjrrqi4nzjnbfki94rn4ray6z"))
(modules '((guix build utils)))
(snippet
'(begin
(delete-file-recursively "libs/qcustomplot-source/")
(delete-file-recursively "libs/qscintilla")))))
(build-system qt-build-system)
(arguments
(list #:configure-flags
;; TODO: Unbundle QHexEdit.
#~(list (string-append "-DQSCINTILLA_INCLUDE_DIR="
#$(this-package-input "qscintilla")
"/include/Qsci")
"-DFORCE_INTERNAL_QCUSTOMPLOT=OFF"
"-DENABLE_TESTING=ON")))
(inputs
(list qcustomplot
qscintilla
qtbase-5
sqlite))
(native-inputs (list qttools))
(home-page "https://sqlitebrowser.org/")
(synopsis "Database browser for SQLite")
(description "Sqlitebrowser is a high quaility, visual, open source tool to
create design, and edit database file compatible with SQLite.")
(license
;; dual license
(list license:gpl3+
license:mpl2.0))))

View file

@ -9,6 +9,7 @@
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de>
;;;
;;; This file is part of GNU Guix.
;;;
@ -132,8 +133,8 @@ program to exhibit a bug.")
(native-inputs (list flex))
(inputs
`(("astyle" ,astyle)
("llvm" ,llvm)
("clang" ,clang)
("llvm" ,llvm-9)
("clang" ,clang-9)
("indent" ,indent)
("perl" ,perl)
("exporter-lite" ,perl-exporter-lite)
@ -615,7 +616,7 @@ error reporting, better tracing, profiling, and a debugger.")
(define-public rr
(package
(name "rr")
(version "5.4.0")
(version "5.5.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -623,7 +624,7 @@ error reporting, better tracing, profiling, and a debugger.")
(commit version)))
(sha256
(base32
"1sfldgkkmsdyaqa28i5agcykc63gwm3zjihd64g86i852w8al2w6"))
"079x891axkiy8qbvjar9vbaldlx7pm9p0i3nq6infdc66nc69635"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
@ -745,13 +746,13 @@ use than similar tools like @command{mtrace}.")
(define-public cgdb
(package
(name "cgdb")
(version "0.7.1")
(version "0.8.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://cgdb.me/files/cgdb-" version ".tar.gz"))
(sha256
(base32 "1671gpz5gx5j0zga8xy2x7h33vqh3nij93lbb6dbb366ivjknwmv"))))
(base32 "1w8ib2vg3pg68d9hh97fw5042c73i9nqavdddc87n9bpscjbaf0d"))))
(build-system gnu-build-system)
(inputs
(list ncurses readline))

View file

@ -186,7 +186,7 @@
hdf5
imagemagick
libarchive
llvm
llvm-9
lz4
mono
ocaml

View file

@ -53,13 +53,13 @@
(define-public python-django-4.0
(package
(name "python-django")
(version "4.0.1")
(version "4.0.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "Django" version))
(sha256
(base32
"11pg33ib43pvkflgvs5gs6c9zflhpxp8dvhd109swfscrjiyx194"))))
"0jlmxylag7dah9jl3wm2swnn9kbisx1gqnddfbh5kjifn67va3qi"))))
(build-system python-build-system)
(arguments
'(#:phases
@ -140,13 +140,13 @@ to the @dfn{don't repeat yourself} (DRY) principle.")
(define-public python-django-3.2
(package
(inherit python-django-4.0)
(version "3.2.11")
(version "3.2.12")
(source (origin
(method url-fetch)
(uri (pypi-uri "Django" version))
(sha256
(base32
"0xbyl9fh9lk5hiwpw46s6hz98gs0fixrpq3myj5hh6vbbnz4mjb9"))))
"1qj1kvb6mk2f4b33n4n5l4rh5kqllrk2v0v076crxr83ay9ycwlp"))))
(native-search-paths '()) ;no need for TZDIR
(propagated-inputs
(modify-inputs (package-propagated-inputs python-django-4.0)
@ -156,13 +156,13 @@ to the @dfn{don't repeat yourself} (DRY) principle.")
(define-public python-django-2.2
(package
(inherit python-django-3.2)
(version "2.2.26")
(version "2.2.27")
(source (origin
(method url-fetch)
(uri (pypi-uri "Django" version))
(sha256
(base32
"13siv3bcb2yrpzzsq2k0f1yc70ya8jkmaa5kc8x29ijjglk3g9fz"))))
"04y9knxd8v9jn54ws5rbdwxyq5im69kx009s7gl62axzn1371qqy"))))
(native-inputs
(modify-inputs (package-native-inputs python-django-3.2)
(prepend ;; 2.2 requires Selenium for the test suite.

View file

@ -27,6 +27,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix utils)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages glib)
@ -48,7 +49,8 @@
(file-name (git-file-name name version))
(sha256
(base32
"1ra0ii805w3rrs0qqbjxzl6i79ksz42lnvbglw18h4igkza21kzj"))))
"1ra0ii805w3rrs0qqbjxzl6i79ksz42lnvbglw18h4igkza21kzj"))
(patches (search-patches "dunst-1.7.3-fix-crash.patch"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no check target

View file

@ -198,7 +198,7 @@ with Microsoft Compiled HTML (CHM) files")
("python-pychm" ,python-pychm)
("python-pycryptodome" ,python-pycryptodome)
("python-pygments" ,python-pygments)
("python-pyqt" ,python-pyqt)
("python-pyqt-without-qtwebkit" ,python-pyqt-without-qtwebkit)
("python-pyqtwebengine" ,python-pyqtwebengine)
("python-regex" ,python-regex)
("python-speechd" ,speech-dispatcher)
@ -238,7 +238,7 @@ with Microsoft Compiled HTML (CHM) files")
(add-before 'build 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((podofo (assoc-ref inputs "podofo"))
(pyqt (assoc-ref inputs "python-pyqt"))
(pyqt (assoc-ref inputs "python-pyqt-without-qtwebkit"))
(python-sip (assoc-ref inputs "python-sip"))
(out (assoc-ref outputs "out")))
(substitute* "setup/build.py"

View file

@ -869,7 +869,7 @@ stored and user can review his performance in any time.")
("python-pyaudio" ,python-pyaudio)
;; `python-pyqtwebengine' must precede `python-pyqt' in PYTHONPATH.
("python-pyqtwebengine" ,python-pyqtwebengine)
("python-pyqt" ,python-pyqt)
("python-pyqt" ,python-pyqt-without-qtwebkit)
("python-requests" ,python-requests)
("python-send2trash" ,python-send2trash)
("python-sip" ,python-sip)

View file

@ -4,6 +4,7 @@
;;; Copyright © 2019 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -21,11 +22,12 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages electronics)
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (gnu packages)
@ -34,11 +36,14 @@
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages boost)
#:use-module (gnu packages c)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages documentation)
#:use-module (gnu packages embedded)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
@ -48,7 +53,10 @@
#:use-module (gnu packages m4)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages qt))
#:use-module (gnu packages qt)
#:use-module (gnu packages sdl)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages stb))
(define-public libserialport
(package
@ -240,6 +248,116 @@ supported devices, as well as input/output file format support.")
(description "Sigrok-cli is a command-line frontend for sigrok.")
(license license:gpl3+)))
(define-public openboardview
(package
(name "openboardview")
(version "8.95.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/OpenBoardView/OpenBoardView")
(commit version)
(recursive? #t))) ;for the "src/imgui" submodule
(file-name (git-file-name name version))
(modules '((ice-9 ftw)
(srfi srfi-26)
(guix build utils)))
(snippet
'(with-directory-excursion "src"
;; Keep the bundled ImGui for now, as in the current version
;; (~1.79), it requires the glad loader generated at build
;; time as an input.
(define keep (list "." ".." "imgui" "openboardview"))
(for-each (lambda (f)
(when (eq? 'directory (stat:type (lstat f)))
(delete-file-recursively f)))
(scandir "." (negate (cut member <> keep))))))
(patches
(search-patches "openboardview-use-system-utf8.patch"))
(sha256
(base32
"16mrs7bimwp8a8lb2wqhfisy6j0hl9574l4h9yb66v46aglvmd3h"))))
(build-system cmake-build-system)
(arguments
(list
#:tests? #f ;no test suite
#:imported-modules `((guix build glib-or-gtk-build-system)
,@%cmake-build-system-modules)
#:modules '((guix build cmake-build-system)
(guix build utils)
((guix build glib-or-gtk-build-system) #:prefix gtk:))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'remove-timestamps
(lambda _
;; The __TIMESTAMP__ CPP macro does apparently not honor
;; SOURCE_EPOCH_DATE. Patch it to use __DATE__ instead, which
;; does (see:
;; https://github.com/OpenBoardView/OpenBoardView/issues/229 and
;; https://issues.guix.gnu.org/53647).
(substitute* '("src/openboardview/BoardView.cpp"
"src/openboardview/main_opengl.cpp")
(("__TIMESTAMP__")
"__DATE__"))))
(add-before 'configure 'configure-glad
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/CMakeLists.txt"
(("add_subdirectory\\(glad\\)")
(string-append
;; Configure Glad to use static Khronos XML specifications
;; instead of attempting to fetch them from the Internet.
"option(GLAD_REPRODUCIBLE \"Reproducible build\" ON)\n"
;; Use the CMake files from our glad package.
"add_subdirectory("
(search-input-directory inputs "share/glad") ;source_dir
" src/glad)\n"))))) ;binary dir
(add-before 'configure 'fix-utf8-include-directive
;; Our utf8-h package makes the header available as "utf8.h"
;; directly rather than "utf8/utf8.h".
(lambda _
(substitute* '("src/openboardview/FileFormats/BRDFile.cpp"
"src/openboardview/BoardView.cpp")
(("utf8/utf8.h") "utf8.h"))))
(add-before 'configure 'dynamically-load-gtk-via-absolute-path
;; The GTK library is not linked thus not present in the RUNPATH of
;; the produced binary; the absolute path of the libraries must to
;; the dynamic loader otherwise they aren't found.
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/openboardview/unix.cpp"
(("libgtk-3.so")
(search-input-file inputs "lib/libgtk-3.so")))))
;; Add the two extra phases from `glib-or-gtk-build-system'.
(add-after 'install 'glib-or-gtk-compile-schemas
(assoc-ref gtk:%standard-phases 'glib-or-gtk-compile-schemas))
(add-after 'install 'glib-or-gtk-wrap
(assoc-ref gtk:%standard-phases 'glib-or-gtk-wrap)))))
(native-inputs
(list pkg-config
python
glad
stb-image
utf8-h))
(inputs
(list fontconfig
gtk+
sdl2
sqlite
zlib))
(home-page "https://openboardview.org/")
(synopsis "Viewer for BoardView files")
(description "OpenBoardView is a viewer for BoardView files, which present
the details of a printed circuit board (PCB). It comes with features
such as:
@itemize
@item Dynamic part outline rendering, including complex connectors
@item Annotations, for leaving notes about parts, nets, pins or location
@item Configurable colour themes
@item Configurable DPI to facilitate usage on 4K monitors
@item Configurable for running on slower systems
@item Reads FZ (with key), BRD, BRD2, BDV and BV* formats.
@end itemize")
(license license:expat)))
(define-public pulseview
(package
(name "pulseview")

View file

@ -2,7 +2,7 @@
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2020 Marius Bakke <mbakke@fastmail.com>
@ -98,7 +98,14 @@
(lambda _
(substitute* "tests/Makefile.in"
(("run-backtrace-native.sh") ""))
#t)))))
#t))
,@(if (target-riscv64?)
`((add-after 'unpack 'disable-failing-riscv64-test
(lambda _
;; dwfl_thread_getframes: No DWARF information found
(substitute* "tests/Makefile.in"
(("run-backtrace-dwarf.sh") "")))))
'()))))
(native-inputs (list m4))
(inputs (list zlib))
@ -274,4 +281,7 @@ static analysis of the ELF binaries at hand.")
(description
"PatchELF allows the ELF \"interpreter\" and RPATH of an ELF binary to be
changed.")
;; This can probably be removed with the next release.
(properties
'((release-monitoring-url . "https://github.com/NixOS/patchelf/releases")))
(license gpl3+)))

View file

@ -26,6 +26,7 @@
(define-module (gnu packages elixir)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system gnu)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (gnu packages)
@ -35,7 +36,7 @@
(define-public elixir
(package
(name "elixir")
(version "1.12.3")
(version "1.13.2")
(source
(origin
(method git-fetch)
@ -44,44 +45,45 @@
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "07fisdx755cgyghwy95gvdds38sh138z56biariml18jjw5mk3r6"))
(base32 "1d3mk7abn3rk536vmsfbm4smj52rljff6s40sndg0i7p6dl3kzxa"))
(patches (search-patches "elixir-path-length.patch"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
(list
#:test-target "test"
#:parallel-tests? #f ;see <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32171#23>
#:make-flags (list (string-append "PREFIX="
(assoc-ref %outputs "out")))
#:make-flags #~(list (string-append "PREFIX=" #$output))
#:phases
(modify-phases %standard-phases
#~(modify-phases %standard-phases
(add-after 'unpack 'make-git-checkout-writable
(lambda _
(for-each make-file-writable (find-files "."))))
(add-after 'make-git-checkout-writable 'replace-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(lambda* (#:key inputs #:allow-other-keys)
(substitute* '("lib/elixir/lib/system.ex"
"lib/mix/lib/mix/scm/git.ex")
(("(cmd\\(['\"])git" _ prefix)
(string-append prefix (which "git"))))
(string-append prefix
(search-input-file inputs "/bin/git"))))
(substitute* '("lib/mix/lib/mix/release.ex"
"lib/mix/lib/mix/tasks/release.init.ex")
(("#!/bin/sh")
(string-append "#!" (which "sh"))))
(string-append "#!" (search-input-file inputs "sh"))))
(substitute* "bin/elixir"
(("ERTS_BIN=")
(("^ERTS_BIN=$")
(string-append
"ERTS_BIN="
;; Elixir Releases will prepend to ERTS_BIN the path of a copy of erl.
;; We detect if a release is being generated by checking the initial ERTS_BIN
;; value: if it's empty, we are not in release mode and can point to the actual
;; erl binary in Guix store.
;; Elixir Releases will prepend to ERTS_BIN the path of
;; a copy of erl. We detect if a release is being generated
;; by checking the initial ERTS_BIN value: if it's empty, we
;; are not in release mode and can point to the actual erl
;; binary in Guix store.
"\nif [ -z \"$ERTS_BIN\" ]; then ERTS_BIN="
(string-drop-right (which "erl") 3)
"; fi")))
(string-drop-right (search-input-file inputs "/bin/erl") 3)
"; fi\n")))
(substitute* "bin/mix"
(("#!/usr/bin/env elixir")
(string-append "#!" out "/bin/elixir"))))))
(string-append "#!" #$output "/bin/elixir")))))
(add-before 'build 'make-current
;; The Elixir compiler checks whether or not to compile files by
;; inspecting their timestamps. When the timestamp is equal to the

File diff suppressed because it is too large Load diff

View file

@ -1711,7 +1711,7 @@ This is a part of the TiLP project.")
(define-public mame
(package
(name "mame")
(version "0.239")
(version "0.240")
(source
(origin
(method git-fetch)
@ -1720,7 +1720,7 @@ This is a part of the TiLP project.")
(commit (apply string-append "mame" (string-split version #\.)))))
(file-name (git-file-name name version))
(sha256
(base32 "02by0pq0j8pi5dllk90g94nbszynp9wqg75bl5x8bqrc7h80a0dq"))
(base32 "141mj5kzafnbw6nqlc3ariwxqn8lq3s13dzypax6igpy4wfy75rm"))
(modules '((guix build utils)))
(snippet
;; Remove bundled libraries.
@ -1745,15 +1745,14 @@ This is a part of the TiLP project.")
"pugixml" "rapidjson" "sqlite3" "utf8proc" "zlib")))
#:tests? #f ;no test in regular release
#:phases
`(modify-phases %standard-phases
#~(modify-phases %standard-phases
(delete 'configure)
(add-after 'build 'build-documentation
(lambda _ (invoke "make" "-C" "docs" "man" "info")))
(replace 'install
;; Upstream does not provide an installation phase.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(share (string-append out "/share/mame")))
(lambda _
(let ((share (string-append #$output "/share/mame")))
;; Install data.
(for-each (lambda (dir)
(copy-recursively dir (string-append share "/" dir)))
@ -1766,12 +1765,11 @@ This is a part of the TiLP project.")
(install-file "uismall.bdf" fonts))
(when (file-exists? "mame64")
(rename-file "mame64" "mame"))
(install-file "mame" (string-append out "/bin")))))
(install-file "mame" (string-append #$output "/bin")))))
(add-after 'install 'install-documentation
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(man (string-append out "/share/man/man1"))
(info (string-append out "/share/info")))
(lambda _
(let ((man (string-append #$output "/share/man/man1"))
(info (string-append #$output "/share/info")))
(install-file "docs/build/man/MAME.1" man)
(install-file "docs/build/texinfo/MAME.info" info))))
(add-after 'install 'install-ini-file
@ -1781,9 +1779,8 @@ This is a part of the TiLP project.")
;; XXX: We need to insert absolute references to the store. It can
;; be an issue if they leak into user's home directory, e.g., with
;; "mame -createconfig" and the package is later GC'ed.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(share (string-append out "/share/mame"))
(lambda _
(let* ((share (string-append #$output "/share/mame"))
(ini (string-append share "/ini")))
(with-output-to-file (string-append ini "/mame.ini")
(lambda _
@ -1834,10 +1831,9 @@ This is a part of the TiLP project.")
covers_directory $HOME/mame/covers~@
ui_path $HOME/.mame/ui~%"))))))
(add-after 'install 'install-desktop-file
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(desktop (string-append out "/share/applications"))
(executable (string-append out "/bin/mame")))
(lambda _
(let ((desktop (string-append #$output "/share/applications"))
(executable (string-append #$output "/bin/mame")))
(mkdir-p desktop)
(with-output-to-file (string-append desktop "/mame.desktop")
(lambda _
@ -1907,51 +1903,45 @@ functions. The source code to MAME serves as this documentation.")
"1qc01a62p65qb6mwjfmxqsd6n3rglsfwrjhsp25nr7q54107n55l"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; No tests.
#:configure-flags (list
(list
#:tests? #f ; No tests.
#:configure-flags
#~(list
(string-append "-DMAME_BIN=\""
(assoc-ref %build-inputs "mame")
#$(this-package-input "mame")
"/bin/mame\"")
(string-append "-DAPP_RES=\""
(assoc-ref %outputs "out")
"/share/gnome-arcade/\""))
(string-append "-DAPP_RES=\"" #$output "/share/gnome-arcade/\""))
#:phases
(modify-phases %standard-phases
#~(modify-phases %standard-phases
(add-before 'build 'fix-paths
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(pk 'cwd (getcwd))
(lambda _
(substitute* "../source/src/config.c"
(("/usr/share") (string-append out "/share"))))
#t))
(("/usr/share") (string-append #$output "/share")))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(rom (string-append out "/share/gnome-arcade/data/rom"))
(tile (string-append out "/share/gnome-arcade/data/tile")))
(lambda _
(let ((bin (string-append #$output "/bin"))
(rom (string-append #$output
"/share/gnome-arcade/data/rom"))
(tile (string-append #$output
"/share/gnome-arcade/data/tile")))
(mkdir-p bin)
(install-file "../gnome-arcade" bin)
(copy-recursively "../source/res"
(string-append out "/share/gnome-arcade/res"))
(string-append #$output
"/share/gnome-arcade/res"))
(mkdir-p rom)
(install-file "../source/data/rom/ROM.TXT" rom)
(mkdir-p tile)
(install-file "../source/data/tile/TILE.TXT" tile))
#t)))))
(install-file "../source/data/tile/TILE.TXT" tile)))))))
(native-inputs
(list pkg-config))
(inputs
`(("mame" ,mame)
("gtk" ,gtk+)
("libevdev" ,libevdev)
("libvlc" ,vlc)
("libarchive" ,libarchive)))
(list gtk+ libarchive libevdev mame vlc))
(home-page "https://github.com/strippato/gnome-arcade")
(synopsis "Minimal MAME frontend")
(description
"A minimal GTK+ frontend for MAME, the multi-purpose arcade and console
emulator.")
"Gnome Arcade is a minimal GTK+ frontend for MAME, the multi-purpose
arcade and console emulator.")
(license license:gpl3+)))
(define-public pcsxr

View file

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2016, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2018, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018 Theodoros Foradis <theodoros@foradis.org>
@ -25,8 +25,9 @@
;;; Copyright © 2021 Gerd Heber <gerd.heber@gmail.com>
;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2021, 2022 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;; Copyright © 2022 Evgeny Pisemsky <evgeny@pisemsky.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -64,6 +65,7 @@
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages bdw-gc)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
@ -118,6 +120,7 @@
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
#:use-module (gnu packages ruby)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages swig)
@ -147,7 +150,9 @@
(file-name (git-file-name name version))
(sha256
(base32
"08cl4935c9vznz9qdw1zgd86rn7hl64zpfayxl07x21bhf53pn24"))))
"08cl4935c9vznz9qdw1zgd86rn7hl64zpfayxl07x21bhf53pn24"))
(patches
(search-patches "librecad-support-for-boost-1.76.patch"))))
(build-system qt-build-system)
(arguments
'(#:test-target "check"
@ -925,15 +930,15 @@ Emacs).")
(define-public kicad
(package
(name "kicad")
(version "5.1.12")
(source
(origin
(version "6.0.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/code/kicad.git")
(commit version)))
(sha256
(base32 "0kgikchqxds3mp71nkg307mr4c1dgv8akbmksz4w9x8jg4i1mfqq"))
(base32
"1vpcbhhw8844hm6vpk3kk405wak531pvcvcpc66z0b48iprk3imr"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
@ -941,12 +946,12 @@ Emacs).")
#:tests? #f ;no tests
#:build-type "Release"
#:configure-flags
,#~(list
"-DKICAD_SCRIPTING_PYTHON3=ON"
"-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON"
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE"
,#~(list "-DKICAD_SCRIPTING_PYTHON3=ON"
(string-append "-DOCC_INCLUDE_DIR="
#$(this-package-input "opencascade-occt") "/include/opencascade"))
#$(this-package-input "opencascade-occt")
"/include/opencascade")
"-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON"
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-ngspice-detection
@ -966,29 +971,22 @@ Emacs).")
(substitute* "common/lib_tree_model.cpp"
(("#include <eda_pattern_match.h>" all)
(string-append "#include <algorithm>\n" all)))))
(add-after 'install 'install-translations
(lambda* (#:key inputs outputs #:allow-other-keys)
(copy-recursively (assoc-ref inputs "kicad-i18n")
(assoc-ref outputs "out"))
#t))
(add-after 'install 'wrap-program
;; Ensure correct Python at runtime.
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(python (assoc-ref inputs "python"))
(file (string-append out "/bin/kicad"))
(path (string-append
out
"/lib/python"
,(version-major+minor
(package-version python))
(path (string-append out "/lib/python"
,(version-major+minor (package-version
python))
"/site-packages:"
(getenv "GUIX_PYTHONPATH"))))
(wrap-program file
`("GUIX_PYTHONPATH" ":" prefix (,path))
`("GUIX_PYTHONPATH" ":" prefix
(,path))
`("PATH" ":" prefix
(,(string-append python "/bin:")))))
#t)))))
(,(string-append python "/bin:"))))))))))
(native-search-paths
(list (search-path-specification
(variable "KICAD") ;to find kicad-doc
@ -1005,63 +1003,36 @@ Emacs).")
(search-path-specification
(variable "KISYS3DMOD") ;3D model path
(files '("share/kicad/modules/packages3d")))))
(native-inputs
`(("boost" ,boost)
("desktop-file-utils" ,desktop-file-utils)
("gettext" ,gettext-minimal)
("kicad-i18n" ,kicad-i18n)
("pkg-config" ,pkg-config)
("swig" ,swig)
("zlib" ,zlib)))
(inputs
`(("cairo" ,cairo)
("curl" ,curl)
("glew" ,glew)
("glm" ,glm)
("hicolor-icon-theme" ,hicolor-icon-theme)
("libngspice" ,libngspice)
("libsm" ,libsm)
("mesa" ,mesa)
("opencascade-occt" ,opencascade-occt)
("openssl" ,openssl)
("python" ,python-wrapper)
("wxwidgets" ,wxwidgets)
("wxpython" ,python-wxpython)))
(native-inputs (list boost
desktop-file-utils
gettext-minimal
pkg-config
swig
zlib))
(inputs (list bash-minimal
cairo
curl
glew
glm
hicolor-icon-theme
libngspice
libsm
mesa
opencascade-occt
openssl
python-wrapper
gtk+
wxwidgets
python-wxpython))
(home-page "https://www.kicad.org/")
(synopsis "Electronics Design Automation Suite")
(description "Kicad is a program for the formation of printed circuit
(description
"Kicad is a program for the formation of printed circuit
boards and electrical circuits. The software has a number of programs that
perform specific functions, for example, pcbnew (Editing PCB), eeschema (editing
electrical diagrams), gerbview (viewing Gerber files) and others.")
(license license:gpl3+)))
(define kicad-i18n
(package
(name "kicad-i18n")
(version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/code/kicad-i18n.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0y51l0r62cnxkvpc21732p3cx7pjvaqjih8193502hlv9kv1j9p6"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(delete 'build)
(delete 'check))))
(native-inputs
`(("gettext" ,gettext-minimal)))
(home-page (package-home-page kicad))
(synopsis "KiCad GUI translations")
(description "This package contains the po files that are used for the GUI
translations for KiCad.")
(license license:gpl3+)))
(define-public kicad-doc
(package
(name "kicad-doc")
@ -1074,7 +1045,7 @@ translations for KiCad.")
(file-name (git-file-name name version))
(sha256
(base32
"026cz4zm903i75yhdvzha2nsnk4c0w07q3gd3xw3jmsmn18imgm3"))))
"0zaafa9ckvdgsim6nhp3flj4r2fzzmwn054lc3iijwgga82qy7il"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DBUILD_FORMATS=html")
@ -1082,15 +1053,15 @@ translations for KiCad.")
#:phases
(modify-phases %standard-phases
(delete 'build))))
(native-inputs
`(("asciidoc" ,asciidoc)
("gettext" ,gettext-minimal)
("git" ,git-minimal)
("perl" ,perl)
("perl-unicode-linebreak" ,perl-unicode-linebreak)
("perl-yaml-tiny" ,perl-yaml-tiny)
("po4a" ,po4a)
("source-highlight" ,source-highlight)))
(native-inputs (list asciidoc
gettext-minimal
git-minimal
perl
perl-unicode-linebreak
perl-yaml-tiny
po4a
ruby-asciidoctor
source-highlight))
(home-page "https://kicad.org")
(synopsis "KiCad official documentation")
(description "This repository contains the official KiCad documentation.")
@ -1108,7 +1079,7 @@ translations for KiCad.")
(file-name (git-file-name name version))
(sha256
(base32
"1zdajim409570xzis53kmrbdcf7000v2vmc90f49h214lrx2zhr2"))))
"1azjx1bmxaz8bniyw75lq60mc8hvay00jn9qdc2zp7isy3c9ibp0"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; no tests exist
@ -1137,7 +1108,7 @@ libraries.")
(file-name (git-file-name name version))
(sha256
(base32
"0qpii55dgv2gxqg1qq0dngdnbb9din790qi5qv0l6qqrzx843h5s"))))
"0mv9xs0mmmfn0yhzx1v55r5app13ckagb16249rabyiz3v5crdpb"))))
(synopsis "Official KiCad footprint libraries")
(description "This package contains the official KiCad footprint libraries.")))
@ -1154,7 +1125,7 @@ libraries.")
(file-name (git-file-name name version))
(sha256
(base32
"12w7m5nbk9kcnlnlg4sk1sd7xgb9i2kxfi0jcbd0phs89qyl7wjr"))))
"0vwcbzq42hzjl4f0zjaswmiff1x59hv64g5n00mx1gl0gwngnyla"))))
(synopsis "Official KiCad 3D model libraries")
(description "This package contains the official KiCad 3D model libraries.")))
@ -1171,7 +1142,7 @@ libraries.")
(file-name (git-file-name name version))
(sha256
(base32
"1fbhn1l3j2rwc29aida9b408wif55i23bp9ddcs7dvf83smjm05g"))))
"13h9ly6amiwm7zkwa2fd9730kh295ls8j95fszlfjp9rczv2yyzm"))))
(synopsis "Official KiCad project and worksheet templates")
(description "This package contains the official KiCad project and
worksheet templates.")))
@ -2811,13 +2782,13 @@ GUI.")
(define-public poke
(package
(name "poke")
(version "1.4")
(version "2.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/poke/poke-" version
".tar.gz"))
(sha256
(base32 "095a0qal1fwnqxnal0xb4mp0n4zy97j3ww1j04ij3jb0jpr4s1ff"))
(base32 "0w168jcjahl3jawkhnh0dc10mcw4nwv4yawwc8xhqm5w3dn8wlnd"))
(modules '((guix build utils)))
(snippet
'(begin
@ -3270,3 +3241,24 @@ G-code instructions for FFF printers or PNG layers for mSLA 3D printers.")
;; Mark as tunable to take advantage of SIMD code in Eigen and in libigl.
(properties '((tunable? . #t)))))
(define-public wireviz
(package
(name "wireviz")
(version "0.3.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "wireviz" version))
(sha256
(base32
"1dgnlxxlna2m1fh0ybivw0psym0sa5cqsl72mjl79bwfspnif61h"))))
(build-system python-build-system)
(propagated-inputs (list python-graphviz python-pillow python-pyyaml))
(home-page "https://github.com/formatc1702/WireViz")
(synopsis "Easily document cables and wiring harnesses")
(description
"WireViz is a tool for easily documenting cables, wiring harnesses and
connector pinouts. It takes plain text, YAML-formatted files as input and
produces beautiful graphical output thanks to GraphViz. It handles automatic
BOM creation and has a lot of extra features.")
(license license:gpl3)))

View file

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Tomáš Čech <sleep_walker@suse.cz>
;;; Copyright © 2015 Daniel Pimentel <d4n1@member.fsf.org>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Nikita <nikita@n0.is>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Timo Eisenmann <eisenmann@fn.de>
@ -48,6 +48,7 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages hardware)
#:use-module (gnu packages ibus)
#:use-module (gnu packages image)
#:use-module (gnu packages libunwind)
@ -70,7 +71,7 @@
(define-public efl
(package
(name "efl")
(version "1.26.1")
(version "1.26.2")
(source (origin
(method url-fetch)
(uri (string-append
@ -78,7 +79,7 @@
version ".tar.xz"))
(sha256
(base32
"0hm6i1f2g4mwj726rc6na38xhys1plbv9swrlc9hrpa87mz6gac6"))))
"071h0pscbd8g341yy5rz9mk1xn8yhryldhl6mmr1y6lafaycyy99"))))
(build-system meson-build-system)
(native-inputs
`(("check" ,check)
@ -93,11 +94,7 @@
("ibus" ,ibus)
("mesa" ,mesa)
("libraw" ,libraw)
;; Only enable the optional SVG support on x86_64, as this is the only
;; architecture where librsvg can be built.
,@(if (target-x86-64?)
`(("librsvg" ,librsvg))
'())
("librsvg" ,(librsvg-for-system))
("libspectre" ,libspectre)
("libtiff" ,libtiff)
("libxau" ,libxau)
@ -151,11 +148,6 @@
"-Dmount-path=/run/setuid-programs/mount"
"-Dunmount-path=/run/setuid-programs/umount"
"-Dnetwork-backend=connman"
;; Add 'rsvg' to the default list (json, avif, heif) of disabled loaders
;; unless librsvg is available.
,,@(if (target-x86-64?)
'()
(list "-Devas-loaders-disabler=json,avif,heif,rsvg"))
;; For Wayland.
"-Dwl=true"
"-Ddrm=true")
@ -297,7 +289,7 @@ Libraries with some extra bells and whistles.")
(define-public enlightenment
(package
(name "enlightenment")
(version "0.25.1")
(version "0.25.3")
(source (origin
(method url-fetch)
(uri
@ -305,7 +297,7 @@ Libraries with some extra bells and whistles.")
"enlightenment/enlightenment-" version ".tar.xz"))
(sha256
(base32
"0i1424vsc929h36hx04646pbrjiya6nc1nqr6s15xwvfv7imzw1c"))
"1xngwixp0cckfq3jhrdmmk6zj67125amr7g6xwc6l89pnpmlkz9p"))
(patches (search-patches "enlightenment-fix-setuid-path.patch"))))
(build-system meson-build-system)
(arguments
@ -322,6 +314,7 @@ Libraries with some extra bells and whistles.")
(setxkbmap (assoc-ref inputs "setxkbmap"))
(libc (assoc-ref inputs "libc"))
(bc (assoc-ref inputs "bc"))
(ddcutil (assoc-ref inputs "ddcutil"))
(efl (assoc-ref inputs "efl")))
;; We need to patch the path to 'base.lst' to be able
;; to switch the keyboard layout in E.
@ -347,6 +340,9 @@ Libraries with some extra bells and whistles.")
"/run/current-system/profile/sbin")))
(substitute* "src/modules/everything/evry_plug_calc.c"
(("bc -l") (string-append bc "/bin/bc -l")))
(substitute* "src/bin/system/e_system_ddc.c"
(("libddcutil\\.so\\.?" libddcutil)
(string-append ddcutil "/lib/" libddcutil)))
(substitute* "data/etc/meson.build"
(("/bin/mount") "/run/setuid-programs/mount")
(("/bin/umount") "/run/setuid-programs/umount")
@ -361,6 +357,7 @@ Libraries with some extra bells and whistles.")
("bc" ,bc)
("bluez" ,bluez)
("dbus" ,dbus)
("ddcutil" ,ddcutil)
("freetype" ,freetype)
("libdrm" ,libdrm)
("libexif" ,libexif)

View file

@ -41,7 +41,7 @@
(define-public erlang
(package
(name "erlang")
(version "24.0.5")
(version "24.2.1")
(source (origin
(method git-fetch)
;; The tarball from http://erlang.org/download contains many
@ -53,7 +53,7 @@
(file-name (git-file-name name version))
(sha256
(base32
"0f8zr2jxr0v4zcd98zqx99zxdn768vjpzwxsbsd6ss3if405sq2a"))
"0glbdh4la0k4ikygj6rssvlbxbzybjn0bpp276wq170d6rgahlf6"))
(patches (search-patches "erlang-man-path.patch"))))
(build-system gnu-build-system)
(native-inputs
@ -67,13 +67,11 @@
(version-major+minor version) ".tar.gz"))
(sha256
(base32
"1c9ccp93pmm54mmvpiyrmj8v00pq11a60c4xv220k97i965zkwsg"))))))
"0k2zghkkqmf8g66hfb6zff2b7q5sl3r9y6lmv56ky03wzh9lpbjn"))))))
(inputs
(list ncurses openssl wxwidgets))
(propagated-inputs
`(("fontconfig" ,fontconfig)
("glu" ,glu)
("mesa" ,mesa)))
(list fontconfig glu mesa))
(arguments
`(#:test-target "release_tests"
#:configure-flags
@ -127,31 +125,21 @@
(substitute* "lib/snmp/src/compile/snmpc_mib_to_hrl.erl"
(("\\{H,Mi,S\\} = time\\(\\),")
(date->string source-date-epoch
"{H,Mi,S} = {~H,~M,~S},")))
#t)))
"{H,Mi,S} = {~H,~M,~S},"))))))
(add-after 'unpack 'patch-/bin/sh
(lambda _
(lambda* (#:key inputs #:allow-other-keys)
(let ((sh (search-input-file inputs "/bin/sh")))
(substitute* "erts/etc/unix/run_erl.c"
(("sh = \"/bin/sh\";")
(string-append "sh = \""
(which "sh")
"\";")))
(string-append "sh = \"" sh "\";")))
(substitute* "erts/emulator/sys/unix/sys_drivers.c"
(("SHELL \"/bin/sh\"")
(string-append "SHELL \""
(which "sh")
"\"")))
(string-append "SHELL \"" sh "\"")))
(substitute* "erts/emulator/sys/unix/erl_child_setup.c"
(("SHELL \"/bin/sh\"")
(string-append "SHELL \""
(which "sh")
"\"")))
(string-append "SHELL \"" sh "\"")))
(substitute* "lib/kernel/src/os.erl"
(("/bin/sh") (which "sh")))
#t))
(("/bin/sh") sh)))))
(add-after 'patch-source-shebangs 'patch-source-env
(lambda _
(let ((escripts
@ -167,19 +155,16 @@
"make/verify_runtime_dependencies"
"make/emd2exml.in"))))
(substitute* escripts
(("/usr/bin/env") (which "env")))
#t)))
(("/usr/bin/env") (which "env"))))))
(add-before 'configure 'set-erl-top
(lambda _
(setenv "ERL_TOP" (getcwd))
#t))
(setenv "ERL_TOP" (getcwd))))
(add-after 'install 'patch-erl
;; This only works after install.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")))
(let ((out (assoc-ref outputs "out")))
(substitute* (string-append out "/bin/erl")
(("sed") (which "sed")))
#t)))
(("sed") (which "sed"))))))
(add-after 'install 'install-doc
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@ -187,8 +172,7 @@
(share (string-append out "/share/")))
(mkdir-p share)
(with-directory-excursion share
(invoke "tar" "xvf" manpages))
#t))))))
(invoke "tar" "xvf" manpages))))))))
(home-page "https://www.erlang.org/")
(synopsis "The Erlang programming language")
(description

View file

@ -284,7 +284,9 @@ for Qt based application.")
(base32 "11l76gpcfm0x1f6x5m9s37q7ffa7xcsdydlzjdz2s6kk45fvvq89"))))
(build-system cmake-build-system)
(arguments
`(#:phases
`(#:configure-flags
'("-DUSE_WEBKIT=off")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'split-outputs
;; Build with GUI supports requires Qt and increase package closure
@ -305,7 +307,9 @@ for Qt based application.")
("opencc" ,opencc)
("qtbase" ,qtbase-5)
("fcitx5-qt" ,fcitx5-qt)
("qtwebkit" ,qtwebkit)))
("qtdeclarative" ,qtdeclarative)
("qtwebchannel" ,qtwebchannel)
("qtwebengine" ,qtwebengine)))
(native-inputs
(list extra-cmake-modules pkg-config))
(outputs '("out" "gui"))

View file

@ -248,7 +248,7 @@ broadband modem as found, for example, on PinePhone.")
(%current-system)))
(string-prefix? "riscv64" arch))
`("CROSS_COMPILE=riscv64-linux-gnu-")
'())
`("CC=gcc"))
"FW_PAYLOAD=n"
"V=1")
#:phases

View file

@ -1995,7 +1995,7 @@ This package provides the TrueType fonts.")
(define-public font-jetbrains-mono
(package
(name "font-jetbrains-mono")
(version "2.221")
(version "2.242")
(source
(origin
(method url-fetch)
@ -2003,7 +2003,7 @@ This package provides the TrueType fonts.")
(string-append "https://github.com/JetBrains/JetBrainsMono/releases/"
"download/v" version "/JetBrainsMono-" version ".zip"))
(sha256
(base32 "1acrgv2q9vxviirpi01xy67pkkswyssw4dn5pgyvrnjxr85cgjrg"))))
(base32 "17qs985v38x3rcg3v4av3qynwr4gvixrj50vjzy7zkkny575ncaf"))))
(build-system font-build-system)
(arguments
`(#:phases

View file

@ -898,6 +898,7 @@ generated list of fallback fonts are checked.")
("glib" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("pkg-config" ,pkg-config)
("python-wrapper" ,python-wrapper)
("vala" ,vala-0.52)
("yelp-tools" ,yelp-tools)))
(inputs

View file

@ -1046,7 +1046,7 @@ protocol either in Wayland core, or some other protocol in wayland-protocols.")
(define-public waylandpp
(package
(name "waylandpp")
(version "0.2.8")
(version "0.2.9")
(home-page "https://github.com/NilsBrause/waylandpp")
(source (origin
(method git-fetch)
@ -1054,7 +1054,7 @@ protocol either in Wayland core, or some other protocol in wayland-protocols.")
(file-name (git-file-name name version))
(sha256
(base32
"1kxiqab48p0n97pwg8c2zx56wqq32m3rcq7qd2pjj33ipcanb3qq"))))
"0z4m30r609as3kpcgipivddr98y7h529r7ldn9ba4snhk341mfvk"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; no tests

View file

@ -2,7 +2,7 @@
;;; Copyright © 2013 John Darrington <jmd@gnu.org>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2015 David Thompson <dthompson2@worcester.edu>
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2014-2022 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net>
;;; Copyright © 2014, 2015, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
@ -68,6 +68,7 @@
;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2021 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;; Copyright © 2022 Yovan Naumovski <yovan@gorski.stream>
;;;
;;; This file is part of GNU Guix.
;;;
@ -2360,35 +2361,34 @@ can be explored and changed freely.")
(define-public seahorse-adventures
(package
(name "seahorse-adventures")
(version "1.3")
(version "1.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dulsi/seahorse-adventures")
(commit (string-append "release-" version))))
(commit (string-append "Release-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0m53jh2gchzr7rs35hml6lbvc5kb5hp229wlfqa09098b7hhl15a"))
(base32 "1dxysa79cz5mflr2953fyk838h1jwvi1ngn8wlpms0ag35yv21s8"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-1)))
;; Remove non-free (non-commercial) font.
(snippet
`(begin
(for-each delete-file (find-files "data/fonts" "."))
#t))))
#~(begin
(for-each delete-file (find-files "data/fonts" "."))))))
(build-system python-build-system)
(arguments
`(#:tests? #f ;no test
(list
#:tests? #f ;no test
#:phases
(modify-phases %standard-phases
#~(modify-phases %standard-phases
(delete 'build) ;pure Python
(replace 'install ;no install script
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(share (string-append out "/share"))
(lambda* (#:key inputs #:allow-other-keys)
(let* ((bin (string-append #$output "/bin"))
(share (string-append #$output "/share"))
(applications (string-append share "/applications"))
(data (string-append share "/seahorse-adventures")))
;; Install data.
@ -2410,8 +2410,10 @@ can be explored and changed freely.")
"#!~a~@
export GUIX_PYTHONPATH=~a:~a~@
exec -a \"~a\" ~a \"$@\"~%"
(which "bash") data (getenv "GUIX_PYTHONPATH")
(which "python3")
(search-input-file inputs "/bin/bash")
data
(getenv "GUIX_PYTHONPATH")
(search-input-file inputs "/bin/python3")
(string-append data "/run_game.py"))))
(chmod executable #o555))
;; Add desktop file.
@ -2421,8 +2423,8 @@ can be explored and changed freely.")
#:name "Seahorse Adventures"
#:comment
'((#f "Help Barbie the seahorse float on bubbles to the moon"))
#:exec ,name
#:icon ,name
#:exec #$name
#:icon #$name
#:categories '("Game" "ActionGame")
#:keywords '("game" "retro" "platform"))
;; Add icons.
@ -2434,13 +2436,11 @@ can be explored and changed freely.")
(copy-file
(string-append "icon" size ".png")
(string-append dir "/searhorse-adventures.png"))))
'("32" "64" "128")))
#t))
'("32" "64" "128")))))
(add-after 'install 'unbundle-fonts
;; Unbundle Bitstream Vera font and replace deleted one.
(lambda* (#:key outputs inputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(data (string-append out "/share/seahorse-adventures"))
(lambda* (#:key inputs #:allow-other-keys)
(let ((data (string-append #$output "/share/seahorse-adventures"))
(vera (search-input-file
inputs "/share/fonts/truetype/Vera.ttf")))
(let ((themes-dir (string-append data "/data/themes/")))
@ -2452,8 +2452,7 @@ can be explored and changed freely.")
'("default" "gray")))
(symlink vera (string-append data "/data/fonts/04B_20__.TTF"))
(substitute* (string-append data "/lib/main.py")
(("f_scale = 0.35") "f_scale = 0.47")))
#t)))))
(("f_scale = 0.35") "f_scale = 0.47"))))))))
(inputs
(list font-bitstream-vera python-pygame))
(home-page "http://www.imitationpickles.org/barbie/")
@ -4220,14 +4219,14 @@ world}, @uref{http://evolonline.org, Evol Online} and
(define openttd-engine
(package
(name "openttd-engine")
(version "12.0")
(version "12.1")
(source
(origin (method url-fetch)
(uri (string-append "https://cdn.openttd.org/openttd-releases/"
version "/openttd-" version "-source.tar.xz"))
(sha256
(base32
"1p1j5cf4ry57dcgm7qx2g2s00z1c6qgjabb4kqjp00yz00wgv85v"))))
"1qz7ld55m9cvgr4mkv6c11y0zf2aph3ba605l45qj41hk2wzb2r5"))))
(build-system cmake-build-system)
(inputs
`(("allegro" ,allegro)
@ -6391,37 +6390,36 @@ fish. The whole game is accompanied by quiet, comforting music.")
(define-public crawl
(package
(name "crawl")
(version "0.27.1")
(version "0.28.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/crawl/crawl/releases/download/"
version "/stone_soup-" version "-nodeps.tar.xz"))
(sha256
(base32 "0nkhyhrrma8gmwxp15j84cn1k2yvyq7ar9rd0j2qjjlv2kdis5z2"))
(base32 "0irg5w4m127fxcj037kyp9vnyqyq1fi4q64rn6yq92w8z1lf2sss"))
(patches (search-patches "crawl-upgrade-saves.patch"))))
(build-system gnu-build-system)
(inputs
`(("lua51" ,lua-5.1)
("ncurses" ,ncurses)
("sqlite" ,sqlite)
("zlib" ,zlib)))
(list lua-5.1 ncurses sqlite zlib))
(native-inputs
`(("bison" ,bison)
("flex" ,flex)
("perl" ,perl)
("python" ,python-wrapper)
("python-pyyaml" ,python-pyyaml)
("pkg-config" ,pkg-config)))
(list bash-minimal
bison
flex
perl
pkg-config
python-wrapper
python-pyyaml))
(arguments
`(#:make-flags
(let* ((sqlite (assoc-ref %build-inputs "sqlite"))
(out (assoc-ref %outputs "out")))
(list (string-append "SQLITE_INCLUDE_DIR=" sqlite "/include")
(string-append "prefix=" out)
(list
#:make-flags
#~(list (string-append "SQLITE_INCLUDE_DIR="
#$(this-package-input "sqlite")
"/include")
(string-append "prefix=" #$output)
"SAVEDIR=~/.crawl"
;; Don't compile with SSE on systems which don't have it.
,@(match (%current-system)
#$@(match (%current-system)
((or "i686-linux" "x86_64-linux")
'())
(_ '("NOSSE=TRUE")))
@ -6429,17 +6427,16 @@ fish. The whole game is accompanied by quiet, comforting music.")
"BUILD_LUA="
"BUILD_SQLITE="
"BUILD_ZLIB="
"-Csource"))
"-Csource")
#:phases
(modify-phases %standard-phases
#~(modify-phases %standard-phases
(add-after 'unpack 'find-SDL-image
(lambda _
(substitute* "source/windowmanager-sdl.cc"
(("SDL_image.h") "SDL2/SDL_image.h"))
#t))
(("SDL_image.h") "SDL2/SDL_image.h"))))
(delete 'configure)
(replace 'check
(lambda* (#:key inputs outputs make-flags #:allow-other-keys)
(lambda* (#:key make-flags #:allow-other-keys)
(setenv "HOME" (getcwd))
;; Fake a terminal for the test cases.
(setenv "TERM" "xterm-256color")
@ -6472,29 +6469,23 @@ monsters in a quest to find the mystifyingly fabulous Orb of Zot.")
(substitute-keyword-arguments
(package-arguments crawl)
((#:make-flags flags)
`(let ((dejavu (assoc-ref %build-inputs "font-dejavu")))
(cons*
(string-append "PROPORTIONAL_FONT=" dejavu
#~(cons*
(string-append "PROPORTIONAL_FONT="
#$(this-package-input "font-dejavu")
"/share/fonts/truetype/DejaVuSans.ttf")
(string-append "MONOSPACED_FONT=" dejavu
(string-append "MONOSPACED_FONT="
#$(this-package-input "font-dejavu")
"/share/fonts/truetype/DejaVuSansMono.ttf")
"TILES=y"
;; Rename the executable to allow parallel installation with crawl.
"GAME=crawl-tiles"
,flags)))))
#$flags))))
(inputs
`(,@(package-inputs crawl)
("font-dejavu" ,font-dejavu)
("freetype6" ,freetype)
("glu" ,glu)
("libpng" ,libpng)
("sdl2" ,sdl2)
("sdl2-image" ,sdl2-image)
("sdl2-mixer" ,sdl2-mixer)))
(modify-inputs (package-inputs crawl)
(prepend font-dejavu freetype glu libpng sdl2 sdl2-image sdl2-mixer)))
(native-inputs
`(,@(package-native-inputs crawl)
("pngcrush" ,pngcrush)
("which" ,which)))
(modify-inputs (package-native-inputs crawl)
(prepend pngcrush which)))
(synopsis "Graphical roguelike dungeon crawler game")))
(define-public lugaru
@ -7155,7 +7146,7 @@ elements to achieve a simple goal in the most complex way possible.")
(define-public pioneer
(package
(name "pioneer")
(version "20210723")
(version "20220203")
(source (origin
(method git-fetch)
(uri (git-reference
@ -7164,7 +7155,7 @@ elements to achieve a simple goal in the most complex way possible.")
(file-name (git-file-name name version))
(sha256
(base32
"1hj99jxb9n3r0bkq87p1c24862xa1xyzjyfdyyx88ckszxb05qf3"))))
"0qjq6lsr1rmcnvq9b7r745cpp7n0q6cpc3k81q8ai4xspbq61m8w"))))
(build-system cmake-build-system)
(native-inputs
(list pkg-config))
@ -7183,6 +7174,7 @@ elements to achieve a simple goal in the most complex way possible.")
(arguments
`(#:tests? #f ;tests are broken
#:configure-flags (list "-DUSE_SYSTEM_LIBLUA:BOOL=YES"
"-DUSE_SYSTEM_LIBGLEW:BOOL=YES"
(string-append "-DPIONEER_DATA_DIR="
%output "/share/games/pioneer"))
#:make-flags (list "all" "build-data")))
@ -8909,7 +8901,7 @@ fight each other on an arena-like map.")
(define-public flare-engine
(package
(name "flare-engine")
(version "1.12")
(version "1.13.04")
(source (origin
(method git-fetch)
(uri (git-reference
@ -8918,15 +8910,16 @@ fight each other on an arena-like map.")
(file-name (git-file-name name version))
(sha256
(base32
"0h4xxj6r194pw68m3ngrnzkh6xgiblyrsc54z8abwba8m0mqbvmk"))))
"042n2r9whnd3kncf3k89dcl1srn7p2jk6kdc0lb2hbwff55iylnw"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no test
#:configure-flags '("-DBINDIR=bin" "-DDATADIR=share/flare")))
(list
#:tests? #f ;no test
#:configure-flags #~(list "-DBINDIR=bin" "-DDATADIR=share/flare")))
(inputs
`(("hicolor-icon-theme" ,hicolor-icon-theme)
("python" ,python-wrapper)
("sdl" ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))))
(list hicolor-icon-theme
python-wrapper
(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf))))
(home-page "http://www.flarerpg.org/")
(synopsis "Action Roleplaying Engine")
(description "Flare (Free Libre Action Roleplaying Engine) is a simple
@ -8937,7 +8930,7 @@ action RPGs.")
(define-public flare-game
(package
(name "flare-game")
(version "1.12")
(version "1.13.04")
(source (origin
(method git-fetch)
(uri (git-reference
@ -8946,37 +8939,38 @@ action RPGs.")
(file-name (git-file-name name version))
(sha256
(base32
"0h9i128kq6disppbrplkf13zdmsg4cq23nim53mgwpawc4mqz7ga"))))
"18rdrwv7p5rvmlah5pl9vbc09xlb8id75a7c73yn2sxkm6cf5c2l"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no test
#:configure-flags '("-DDATADIR=share/flare")
(list
#:tests? #f ;no test
#:configure-flags #~(list "-DDATADIR=share/flare")
#:phases
(modify-phases %standard-phases
#~(modify-phases %standard-phases
;; Flare expects the mods to be located in the same folder.
;; Yet, "default" mod is in the engine, whereas the others
;; are in the current package. Merge everything here with
;; a symlink.
(add-after 'install 'add-default-mod
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(mods (string-append out "/share/flare/mods")))
(lambda* (#:key inputs #:allow-other-keys)
(let ((mods (string-append #$output "/share/flare/mods")))
(with-directory-excursion mods
(symlink (string-append (assoc-ref inputs "flare-engine")
(symlink (search-input-directory inputs
"/share/flare/mods/default")
"default")))
#t))
"default")
(symlink (search-input-file inputs
"/share/flare/mods/mods.txt")
"mods.txt")))))
(add-after 'install 'install-executable
;; The package only provides assets for the game, the
;; executable coming from "flare-engine". Since more than
;; one game may use the engine, we create a new executable,
;; "flare-game", which launches the engine with appropriate
;; parameters.
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bash (search-input-file inputs "/bin/bash"))
(lambda* (#:key inputs #:allow-other-keys)
(let ((bash (search-input-file inputs "/bin/bash"))
(flare (search-input-file inputs "/bin/flare"))
(script (string-append out "/bin/flare-game")))
(script (string-append #$output "/bin/flare-game")))
(mkdir-p (dirname script))
(call-with-output-file script
(lambda (port)
@ -8985,12 +8979,11 @@ action RPGs.")
exec ~a --data-path=~a/share/flare --mods=empyrean_campaign~%"
bash
flare
out)))
(chmod script #o755))
#t)))))
#$output)))
(chmod script #o755)))))))
(inputs
(list flare-engine))
(home-page "http://www.flarerpg.org/")
(home-page "https://flarerpg.org/")
(synopsis "Fantasy action RPG using the FLARE engine")
(description "Flare is a single-player 2D action RPG with
fast-paced action and a dark fantasy style.")
@ -9367,7 +9360,7 @@ play with up to four players simultaneously. It has network support.")
("sdl" ,(sdl-union
(list sdl2 sdl2-mixer sdl2-net sdl2-ttf sdl2-image)))))
(native-inputs
(list clang ghc pkg-config qttools))
(list clang-9 ghc pkg-config qttools))
(home-page "https://hedgewars.org/")
(synopsis "Turn-based artillery game featuring fighting hedgehogs")
(description

View file

@ -3,7 +3,7 @@
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll@gmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2020 Marius Bakke <mbakke@fastmail.com>
@ -525,6 +525,19 @@ Go. It also includes runtime support libraries for these languages.")
,@(package-inputs gcc-4.7)))))
(define %gcc-7.5-aarch64-micro-architectures
;; Suitable '-march' values for GCC 7.5.
;; TODO: Allow dynamically adding feature flags.
'("armv8-a" "armv8.1-a" "armv8.2-a" "armv8.3-a"))
(define %gcc-7.5-armhf-micro-architectures
;; Suitable '-march' values for GCC 7.5.
;; TODO: Allow dynamically adding feature flags.
'("armv7" "armv7-a" "armv7-m" "armv7-r" "armv7e-m" "armv7ve"
"armv8-a" "armv8-a+crc" "armv8.1-a" "armv8.1-a+crc"
"armv8-m.base" "armv8-m.main" "armv8-m.main+dsp"
"iwmmxt" "iwmmxt2"))
(define %gcc-7.5-x86_64-micro-architectures
;; Suitable '-march' values for GCC 7.5 (info "(gcc) x86 Options").
'("core2" "nehalem" "westmere" "sandybridge" "ivybridge"
@ -536,6 +549,19 @@ Go. It also includes runtime support libraries for these languages.")
"znver1"
"btver1" "btver2" "geode"))
(define %gcc-10-aarch64-micro-architectures
;; Suitable '-march' values for GCC 10.
;; TODO: Allow dynamically adding feature flags.
(append %gcc-7.5-aarch64-micro-architectures
'("armv8.4-a" "armv8.5-a" "armv8.6-a")))
(define %gcc-10-armhf-micro-architectures
;; Suitable '-march' values for GCC 10.
;; TODO: Allow dynamically adding feature flags.
(append %gcc-7.5-armhf-micro-architectures
'("armv8.2-a" "armv8.3-a" "armv8.4-a" "armv8.5-a" "armv8.6-a"
"armv8-r" "armv8.1-m.main")))
(define %gcc-10-x86_64-micro-architectures
;; Suitable '-march' values for GCC 10.
(append %gcc-7.5-x86_64-micro-architectures
@ -545,7 +571,6 @@ Go. It also includes runtime support libraries for these languages.")
"znver2" "znver3")))
(define-public gcc-7
(package
(inherit gcc-6)
@ -566,6 +591,8 @@ for several languages, including C, C++, Objective-C, Fortran, Ada, and Go.
It also includes runtime support libraries for these languages.")
(properties
`((compiler-cpu-architectures
("aarch64" ,@%gcc-7.5-aarch64-micro-architectures)
("armhf" ,@%gcc-7.5-armhf-micro-architectures)
("x86_64" ,@%gcc-7.5-x86_64-micro-architectures))))))
(define-public gcc-8
@ -619,6 +646,8 @@ It also includes runtime support libraries for these languages.")
(snippet gcc-canadian-cross-objdump-snippet)))
(properties
`((compiler-cpu-architectures
("aarch64" ,@%gcc-10-aarch64-micro-architectures)
("armhf" ,@%gcc-10-armhf-micro-architectures)
("x86_64" ,@%gcc-10-x86_64-micro-architectures))))))
(define-public gcc-11

View file

@ -12,7 +12,7 @@
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
;;; Copyright © 2021 John Kehayias <john.kehayias@protonmail.com>
@ -63,6 +63,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
#:use-module (guix build-system waf)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
@ -181,6 +182,38 @@ rendering modes are: Bitmaps, Anti-aliased pixmaps, Texture maps, Outlines,
Polygon meshes, and Extruded polygon meshes.")
(license license:x11)))
(define-public glad
(package
(name "glad")
(version "0.1.36")
(source
(origin
;; We fetch the sources from the repository since the PyPI archive
;; doesn't contain the CMakeLists.txt file which is useful for
;; integration with other software, such as the openboardview package.
(method git-fetch)
(uri (git-reference
(url "https://github.com/Dav1dde/glad")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0m55ya1zrmg6n2cljkajy80ilmi5sblln8742fm0k1sw9k7hzn8n"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'install 'install-cmakelists.txt
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(share (string-append out "/share/" ,name)))
(install-file "CMakeLists.txt" share)))))))
(home-page "https://github.com/Dav1dde/glad")
(synopsis "Multi-language GL/GLES/EGL/GLX/WGL loader generator")
(description "Glad uses the official Khronos XML specifications to
generate a GL/GLES/EGL/GLX/WGL loader tailored for specific requirements.")
(license license:expat)))
(define-public s2tc
(package
(name "s2tc")
@ -261,7 +294,8 @@ also known as DXTn or DXTC) for Mesa.")
("libxrandr" ,libxrandr)
("libxvmc" ,libxvmc)
,@(match (%current-system)
((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux" "powerpc-linux")
((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux"
"powerpc-linux" "riscv64-linux")
;; Note: update the 'clang' input of mesa-opencl when bumping this.
`(("llvm" ,llvm-11)))
(_
@ -273,7 +307,8 @@ also known as DXTn or DXTC) for Mesa.")
("flex" ,flex)
("gettext" ,gettext-minimal)
,@(match (%current-system)
((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux" "powerpc-linux")
((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux"
"powerpc-linux" "riscv64-linux")
`(("glslang" ,glslang)))
(_
`()))
@ -289,7 +324,7 @@ also known as DXTn or DXTC) for Mesa.")
((or "armhf-linux" "aarch64-linux")
;; TODO: Fix svga driver for non-Intel architectures.
'("-Dgallium-drivers=etnaviv,freedreno,kmsro,lima,nouveau,panfrost,r300,r600,swrast,tegra,v3d,vc4,virgl"))
((or "powerpc64le-linux" "powerpc-linux")
((or "powerpc64le-linux" "powerpc-linux" "riscv64-linux")
'("-Dgallium-drivers=nouveau,r300,r600,radeonsi,swrast,virgl"))
(_
'("-Dgallium-drivers=iris,nouveau,r300,r600,radeonsi,svga,swrast,virgl")))
@ -315,12 +350,15 @@ also known as DXTn or DXTC) for Mesa.")
'("-Dvulkan-drivers=amd,swrast"))
("aarch64-linux"
'("-Dvulkan-drivers=freedreno,amd,broadcom,swrast"))
("riscv64-linux"
'("-Dvulkan-drivers=amd,swrast"))
(_
'("-Dvulkan-drivers=auto")))
;; Enable the Vulkan overlay layer on architectures using llvm.
,@(match (%current-system)
((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux" "powerpc-linux")
((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux"
"powerpc-linux" "riscv64-linux")
'("-Dvulkan-layers=device-select,overlay"))
(_
'()))
@ -334,7 +372,7 @@ also known as DXTn or DXTC) for Mesa.")
((or "x86_64-linux" "i686-linux")
'("-Ddri-drivers=i915,i965,nouveau,r200,r100"
"-Dllvm=enabled")) ; default is x86/x86_64 only
((or "powerpc64le-linux" "aarch64-linux" "powerpc-linux")
((or "powerpc64le-linux" "aarch64-linux" "powerpc-linux" "riscv64-linux")
'("-Ddri-drivers=nouveau,r200,r100"
"-Dllvm=enabled"))
(_
@ -359,6 +397,13 @@ also known as DXTn or DXTC) for Mesa.")
(("if with_tests")
"if false"))
,@(match (%current-system)
("riscv64-linux"
;; According to the test logs the llvm JIT is not designed
;; for this architecture and the llvmpipe tests all segfault.
;; The same is true for mesa:gallium / osmesa-render.
`((substitute* '("src/gallium/drivers/llvmpipe/meson.build"
"src/gallium/targets/osmesa/meson.build")
(("if with_tests") "if false"))))
("powerpc64le-linux"
;; Disable some of the llvmpipe tests.
`((substitute* "src/gallium/drivers/llvmpipe/lp_test_arit.c"

View file

@ -54,7 +54,7 @@
;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;; Copyright © 2020, 2021 Andy Tai <atai@atai.org>
;;; Copyright © 2020, 2021 Sébastien Lerique <sl@eauchat.org>
@ -158,6 +158,7 @@
#:use-module (gnu packages mail)
#:use-module (gnu packages man)
#:use-module (gnu packages markup)
#:use-module (gnu packages messaging)
#:use-module (gnu packages mp3)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages music)
@ -1914,8 +1915,8 @@ and system administrators.")
;; recent versions of the build tools. The latest activity on the
;; pre-GNOME version has been in 2014, while GNOME has continued applying
;; fixes since.
(let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
(revision "2"))
(let ((commit "0997887d97f01be28bf3886dfd3e2002de437930")
(revision "3"))
(package
(name "dia")
(version (git-version "0.97.3" revision commit))
@ -1927,9 +1928,11 @@ and system administrators.")
(file-name (git-file-name name version))
(sha256
(base32
"04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
"199b4n1jydg1g9lnz0r8xx67h7s2ac2lfj89zp015lbs0qqfkmsh"))))
(build-system meson-build-system)
(arguments `(#:meson ,meson-0.59))
;; XXX: Parallel builds may cause: [74/566] [...]
;; fatal error: dia-lib-enums.h: No such file or directory
(arguments '(#:parallel-build? #f))
(inputs
(list graphene
gtk+-2
@ -1939,12 +1942,10 @@ and system administrators.")
;; XXX: PDF plugin fails to build with poppler 21.07.0.
;; poppler
;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
;; ERROR: Unknown method "dependency" in object.
python-2))
python))
(native-inputs
(list appstream-glib docbook-xsl
`(,glib "bin") intltool pkg-config))
`(,glib "bin") gettext-minimal pkg-config))
(home-page "https://wiki.gnome.org/Apps/Dia")
(synopsis "Diagram creation for GNOME")
(description "Dia can be used to draw different types of diagrams, and
@ -5106,6 +5107,7 @@ and other secrets. It communicates with the \"Secret Service\" using DBus.")
("desktop-file-utils" ,desktop-file-utils)
("intltool" ,intltool)
("itstool" ,itstool)
("python" ,python-wrapper) ; for meson_post_install.py
("vala" ,vala)
("yelp" ,yelp)
("appstream-glib" ,appstream-glib)))
@ -7476,7 +7478,12 @@ to display dialog boxes from the commandline and shell scripts.")
;; expression paragraph. For an explanation, see: info '(sed)
;; Multiline techniques'.
(invoke "sed" "/./{H;$!d} ; x ; s/^.*native-headless.*$//"
"-i" "src/tests/meson.build")))
"-i" "src/tests/meson.build")
;; Timeline tests may unexpectedly fail on missed frames, so
;; let's disable them as well.
;; See <https://gitlab.gnome.org/GNOME/mutter/-/issues/2125>
(substitute* "src/tests/clutter/conform/meson.build"
(("'timeline.*',") ""))))
(replace 'check
(lambda* (#:key tests? test-options parallel-tests?
#:allow-other-keys)
@ -7679,14 +7686,13 @@ Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
'("addressbook-backends" "calendar-backends"
"camel-providers" "credential-modules"
"registry-modules"))))
(list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
"-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
"-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
(list "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
"-DENABLE_VALA_BINDINGS=ON"
(string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
(string-append lib "/evolution-data-server;")
(string-join runpaths ";"))
"-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
"-DENABLE_INTROSPECTION=ON" ;required for Vala bindings
"-DWITH_PHONENUMBER=ON"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'disable-failing-tests
@ -7716,6 +7722,7 @@ Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("intltool" ,intltool)
("pkg-config" ,pkg-config)
("protobuf" ,protobuf)
("vala" ,vala)
("python" ,python-wrapper)))
(propagated-inputs
@ -7728,11 +7735,13 @@ Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
("sqlite" ,sqlite)))
(inputs
`(("bdb" ,bdb)
("boost" ,boost)
("gcr" ,gcr)
("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
("json-glib" ,json-glib)
("libcanberra" ,libcanberra)
("libgweather" ,libgweather)
("libphonenumber" ,libphonenumber)
("mit-krb5" ,mit-krb5)
("openldap" ,openldap)
("webkitgtk" ,webkitgtk-with-libsoup2)))

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