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. ;; 'modify-inputs' and its keywords.
(eval . (put 'modify-inputs 'scheme-indent-function 1)) (eval . (put 'modify-inputs 'scheme-indent-function 1))
(eval . (put 'replace '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. ;; 'modify-phases' and its keywords.
(eval . (put 'modify-phases 'scheme-indent-function 1)) (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/chromium/master-preferences.json \
gnu/packages/aux-files/emacs/guix-emacs.el \ gnu/packages/aux-files/emacs/guix-emacs.el \
gnu/packages/aux-files/guix.vim \ 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-arm.conf \
gnu/packages/aux-files/linux-libre/5.15-arm64.conf \ gnu/packages/aux-files/linux-libre/5.15-arm64.conf \
gnu/packages/aux-files/linux-libre/5.15-i686.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. changes to the repository.
@end quotation @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 @node Running Guix Before It Is Installed
@section 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 symlink (@pxref{Invoking guix pull}). Run @command{git pull} instead if
you want to upgrade your local source tree. 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 @node The Perfect Setup
@section The Perfect Setup @section The Perfect Setup
@ -1386,9 +1416,14 @@ what your usertag means.
@cindex commit access, for developers @cindex commit access, for developers
Everyone can contribute to Guix without having commit access Everyone can contribute to Guix without having commit access
(@pxref{Submitting Patches}). However, for frequent contributors, (@pxref{Submitting Patches}). However, for frequent contributors,
having write access to the repository can be convenient. Commit access having write access to the repository can be convenient. As a rule of
should not be thought of as a ``badge of honor'' but rather as a thumb, a contributor should have accumulated fifty (50) reviewed commits
responsibility a contributor is willing to take to help the project. 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 The following sections explain how to get commit access, how to be ready
to push commits, and the policies and community expectations for commits 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 Thomas Danckaert@*
Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 humanitiesNerd@*
Copyright @copyright{} 2017, 2021 Christine Lemmer-Webber@* 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 Hartmut Goebel@*
Copyright @copyright{} 2017, 2019, 2020, 2021 Maxim Cournoyer@* Copyright @copyright{} 2017, 2019, 2020, 2021 Maxim Cournoyer@*
Copyright @copyright{} 20172022 Tobias Geerinckx-Rice@* 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 (@pxref{profile-manifest, @option{--manifest}}) and uses the same
manifest files. 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 @item --pure
Unset existing environment variables when building the new environment, except Unset existing environment variables when building the new environment, except
those specified with @option{--preserve} (see below). This has the effect of 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 environment, the default behavior. Packages appearing after are
interpreted as packages that will be added to the environment directly. 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 @item --pure
Unset existing environment variables when building the new environment, except Unset existing environment variables when building the new environment, except
those specified with @option{--preserve} (see below). This has the effect of 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 @table @asis
@item @code{client-conf} (default: @code{'()}) @item @code{client-conf} (default: @code{'()})
List of settings to set in @file{client.conf}. 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 inserted as-is with a newline added. A pair will be formatted as
``key = value'', again with a newline added. ``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 table
@end deftp @end deftp
@anchor{prometheus-node-exporter}
@subsubheading Prometheus Node Exporter Service @subsubheading Prometheus Node Exporter Service
@cindex prometheus-node-exporter @cindex prometheus-node-exporter
The Prometheus ``node exporter'' makes hardware and operating system statistics The Prometheus ``node exporter'' makes hardware and operating system statistics
provided by the Linux kernel available for the Prometheus monitoring system. provided by the Linux kernel available for the Prometheus monitoring system.
This service should be deployed on all physical nodes and virtual machines, 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 @subsubheading Zabbix server
@cindex zabbix zabbix-server @cindex zabbix zabbix-server
Zabbix provides monitoring metrics, among others network utilization, CPU load Zabbix is a high performance monitoring system that can collect data from a
and disk space consumption: 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 This service provides the central Zabbix monitoring service; you also need
@item High performance, high capacity (able to monitor hundreds of thousands of devices). @ref{zabbix-front-end,@code{zabbix-front-end-service-type}} to configure Zabbix
@item Auto-discovery of servers and network devices and interfaces. and display results, and optionally @ref{zabbix-agent,
@item Low-level discovery, allows to automatically start monitoring new items, file systems or network interfaces among others. @code{zabbix-agent-service-type}} on machines that should be monitored (other
@item Distributed monitoring with centralized web administration. data sources are supported, such as @ref{prometheus-node-exporter,
@item Native high performance agents. Prometheus Node Exporter}).
@item SLA, and ITIL KPI metrics on reporting.
@item High-level (business) view of monitored resources through user-defined visual console screens and dashboards. @defvar {Scheme variable} zabbix-server-service-type
@item Remote command execution through Zabbix proxies. This is the service type for the Zabbix server service. Its value must be a
@end itemize @code{zabbix-server-configuration} record, shown below.
@end defvar
@c %start of fragment @c %start of fragment
@deftp {Data Type} zabbix-server-configuration
Available @code{zabbix-server-configuration} fields are: 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. The zabbix-server package.
@end deftypevr @item @code{user} (default: @code{"zabbix"}) (type: string)
@deftypevr {@code{zabbix-server-configuration} parameter} string user
User who will run the Zabbix server. User who will run the Zabbix server.
Defaults to @samp{"zabbix"}. @item @code{group} (default: @code{"zabbix"}) (type: group)
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} group group
Group who will run the Zabbix server. Group who will run the Zabbix server.
Defaults to @samp{"zabbix"}. @item @code{db-host} (default: @code{"127.0.0.1"}) (type: string)
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} string db-host
Database host name. Database host name.
Defaults to @samp{"127.0.0.1"}. @item @code{db-name} (default: @code{"zabbix"}) (type: string)
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} string db-name
Database name. Database name.
Defaults to @samp{"zabbix"}. @item @code{db-user} (default: @code{"zabbix"}) (type: string)
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} string db-user
Database user. Database user.
Defaults to @samp{"zabbix"}. @item @code{db-password} (default: @code{""}) (type: string)
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} string db-password
Database password. Please, use @code{include-files} with Database password. Please, use @code{include-files} with
@code{DBPassword=SECRET} inside a specified file instead. @code{DBPassword=SECRET} inside a specified file instead.
Defaults to @samp{""}. @item @code{db-port} (default: @code{5432}) (type: number)
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} number db-port
Database port. Database port.
Defaults to @samp{5432}. @item @code{log-type} (default: @code{""}) (type: string)
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} string log-type
Specifies where log messages are written to: Specifies where log messages are written to:
@itemize @bullet @itemize @bullet
@item
@code{system} - syslog.
@item @item @code{system} - syslog.
@code{file} - file specified with @code{log-file} parameter.
@item @item @code{file} - file specified with @code{log-file} parameter.
@code{console} - standard output.
@item @code{console} - standard output.
@end itemize @end itemize
Defaults to @samp{""}. @item @code{log-file} (default: @code{"/var/log/zabbix/server.log"}) (type: string)
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} string log-file
Log file name for @code{log-type} @code{file} parameter. Log file name for @code{log-type} @code{file} parameter.
Defaults to @samp{"/var/log/zabbix/server.log"}. @item @code{pid-file} (default: @code{"/var/run/zabbix/zabbix_server.pid"}) (type: string)
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} string pid-file
Name of PID file. Name of PID file.
Defaults to @samp{"/var/run/zabbix/zabbix_server.pid"}. @item @code{ssl-ca-location} (default: @code{"/etc/ssl/certs/ca-certificates.crt"}) (type: string)
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} string ssl-ca-location
The location of certificate authority (CA) files for SSL server The location of certificate authority (CA) files for SSL server
certificate verification. certificate verification.
Defaults to @samp{"/etc/ssl/certs/ca-certificates.crt"}. @item @code{ssl-cert-location} (default: @code{"/etc/ssl/certs"}) (type: string)
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} string ssl-cert-location
Location of SSL client certificates. Location of SSL client certificates.
Defaults to @samp{"/etc/ssl/certs"}. @item @code{extra-options} (default: @code{""}) (type: extra-options)
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} string extra-options
Extra options will be appended to Zabbix server configuration file. Extra options will be appended to Zabbix server configuration file.
Defaults to @samp{""}. @item @code{include-files} (default: @code{()}) (type: include-files)
@end deftypevr
@deftypevr {@code{zabbix-server-configuration} parameter} include-files include-files
You may include individual files or all files in a directory in the You may include individual files or all files in a directory in the
configuration file. configuration file.
Defaults to @samp{()}. @end table
@end deftp
@end deftypevr
@c %end of fragment @c %end of fragment
@anchor{zabbix-agent}
@subsubheading Zabbix agent @subsubheading Zabbix agent
@cindex zabbix 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 @c %start of fragment
@deftp {Data Type} zabbix-agent-configuration
Available @code{zabbix-agent-configuration} fields are: 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. The zabbix-agent package.
@end deftypevr @item @code{user} (default: @code{"zabbix"}) (type: string)
@deftypevr {@code{zabbix-agent-configuration} parameter} string user
User who will run the Zabbix agent. User who will run the Zabbix agent.
Defaults to @samp{"zabbix"}. @item @code{group} (default: @code{"zabbix"}) (type: group)
@end deftypevr
@deftypevr {@code{zabbix-agent-configuration} parameter} group group
Group who will run the Zabbix agent. Group who will run the Zabbix agent.
Defaults to @samp{"zabbix"}. @item @code{hostname} (default: @code{""}) (type: string)
@end deftypevr
@deftypevr {@code{zabbix-agent-configuration} parameter} string hostname
Unique, case sensitive hostname which is required for active checks and Unique, case sensitive hostname which is required for active checks and
must match hostname as configured on the server. must match hostname as configured on the server.
Defaults to @samp{""}. @item @code{log-type} (default: @code{""}) (type: string)
@end deftypevr
@deftypevr {@code{zabbix-agent-configuration} parameter} string log-type
Specifies where log messages are written to: Specifies where log messages are written to:
@itemize @bullet @itemize @bullet
@item @item
@code{system} - syslog. @code{system} - syslog.
@item @item @code{file} - file specified with
@code{file} - file specified with @code{log-file} parameter. @code{log-file} parameter.
@item @item @code{console} - standard output.
@code{console} - standard output.
@end itemize @end itemize
Defaults to @samp{""}. @item @code{log-file} (default: @code{"/var/log/zabbix/agent.log"}) (type: string)
@end deftypevr
@deftypevr {@code{zabbix-agent-configuration} parameter} string log-file
Log file name for @code{log-type} @code{file} parameter. Log file name for @code{log-type} @code{file} parameter.
Defaults to @samp{"/var/log/zabbix/agent.log"}. @item @code{pid-file} (default: @code{"/var/run/zabbix/zabbix_agent.pid"}) (type: string)
@end deftypevr
@deftypevr {@code{zabbix-agent-configuration} parameter} string pid-file
Name of PID file. Name of PID file.
Defaults to @samp{"/var/run/zabbix/zabbix_agent.pid"}. @item @code{server} (default: @code{("127.0.0.1")}) (type: list)
@end deftypevr
@deftypevr {@code{zabbix-agent-configuration} parameter} list server
List of IP addresses, optionally in CIDR notation, or hostnames of List of IP addresses, optionally in CIDR notation, or hostnames of
Zabbix servers and Zabbix proxies. Incoming connections will be Zabbix servers and Zabbix proxies. Incoming connections will be
accepted only from the hosts listed here. accepted only from the hosts listed here.
Defaults to @samp{("127.0.0.1")}. @item @code{server-active} (default: @code{("127.0.0.1")}) (type: list)
@end deftypevr
@deftypevr {@code{zabbix-agent-configuration} parameter} list server-active
List of IP:port (or hostname:port) pairs of Zabbix servers and Zabbix 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 proxies for active checks. If port is not specified, default port is
used. If this parameter is not specified, active checks are disabled. used. If this parameter is not specified, active checks are disabled.
Defaults to @samp{("127.0.0.1")}. @item @code{extra-options} (default: @code{""}) (type: extra-options)
@end deftypevr
@deftypevr {@code{zabbix-agent-configuration} parameter} string extra-options
Extra options will be appended to Zabbix server configuration file. Extra options will be appended to Zabbix server configuration file.
Defaults to @samp{""}. @item @code{include-files} (default: @code{()}) (type: include-files)
@end deftypevr
@deftypevr {@code{zabbix-agent-configuration} parameter} include-files include-files
You may include individual files or all files in a directory in the You may include individual files or all files in a directory in the
configuration file. configuration file.
Defaults to @samp{()}. @end table
@end deftp
@end deftypevr
@c %end of fragment @c %end of fragment
@anchor{zabbix-front-end}
@subsubheading Zabbix front-end @subsubheading Zabbix front-end
@cindex zabbix 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 @c %start of fragment
@deftp {Data Type} zabbix-front-end-configuration
Available @code{zabbix-front-end-configuration} fields are: Available @code{zabbix-front-end-configuration} fields are:
@deftypevr {@code{zabbix-front-end-configuration} parameter} nginx-server-configuration-list nginx @table @asis
NGINX configuration. @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. Database host name.
Defaults to @samp{"localhost"}. @item @code{db-port} (default: @code{5432}) (type: number)
@end deftypevr
@deftypevr {@code{zabbix-front-end-configuration} parameter} number db-port
Database port. Database port.
Defaults to @samp{5432}. @item @code{db-name} (default: @code{"zabbix"}) (type: string)
@end deftypevr
@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-name
Database name. Database name.
Defaults to @samp{"zabbix"}. @item @code{db-user} (default: @code{"zabbix"}) (type: string)
@end deftypevr
@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-user
Database user. Database user.
Defaults to @samp{"zabbix"}. @item @code{db-password} (default: @code{""}) (type: string)
@end deftypevr
@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-password
Database password. Please, use @code{db-secret-file} instead. 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 @item @code{zabbix-host} (default: @code{"localhost"}) (type: string)
@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
Zabbix server hostname. Zabbix server hostname.
Defaults to @samp{"localhost"}. @item @code{zabbix-port} (default: @code{10051}) (type: number)
@end deftypevr
@deftypevr {@code{zabbix-front-end-configuration} parameter} number zabbix-port
Zabbix server port. Zabbix server port.
Defaults to @samp{10051}. @end table
@end deftypevr @end deftp
@c %end of fragment @c %end of fragment
@ -26823,6 +26745,7 @@ valued G-expression.
@end table @end table
@end deffn @end deffn
@anchor{nginx-server-configuration}
@deftp {Data Type} nginx-server-configuration @deftp {Data Type} nginx-server-configuration
Data type representing the configuration of an nginx server block. Data type representing the configuration of an nginx server block.
This type has the following parameters: 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 table
@end deftp @end deftp
@anchor{PHP-FPM}
@subsubheading PHP-FPM
@cindex php-fpm @cindex php-fpm
PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation
with some additional features useful for sites of any size. with some additional features useful for sites of any size.
@ -29911,6 +29836,34 @@ Defaults to @samp{"powersave"}.
@end deftypevr @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 @deftypevr {@code{tlp-configuration} parameter} string radeon-power-profile-on-ac
Radeon graphics clock speed level. Alternatives are low, mid, high, Radeon graphics clock speed level. Alternatives are low, mid, high,
auto, default. auto, default.
@ -33637,6 +33590,92 @@ Extra command line options for @code{guix-data-service-process-jobs}.
@end table @end table
@end deftp @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 @node Linux Services
@subsection Linux Services @subsection Linux Services
@ -35724,9 +35763,21 @@ bootloader boot menu:
@table @code @table @code
@item describe @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. 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 @item list-generations
List a summary of each generation of the operating system available on List a summary of each generation of the operating system available on
disk, in a human-readable way. This is similar to the 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, For more information regarding the format of the @file{sudoers} file,
consult @command{man sudoers}. 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 @deftp {Data Type} machine
This is the data type representing a single machine in a heterogeneous Guix This is the data type representing a single machine in a heterogeneous Guix
deployment. deployment.
@ -37461,6 +37536,7 @@ services)}.
* Shells: Shells Home Services. POSIX shells, Bash, Zsh. * Shells: Shells Home Services. POSIX shells, Bash, Zsh.
* Mcron: Mcron Home Service. Scheduled User's Job Execution. * Mcron: Mcron Home Service. Scheduled User's Job Execution.
* Shepherd: Shepherd Home Service. Managing User's Daemons. * Shepherd: Shepherd Home Service. Managing User's Daemons.
* Desktop: Desktop Home Services. Services for graphical environments.
@end menu @end menu
@c In addition to that Home Services can provide @c In addition to that Home Services can provide
@ -37848,6 +37924,85 @@ mechanism instead (@pxref{Shepherd Services}).
@end table @end table
@end deftp @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 @node Invoking guix home
@section Invoking @code{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 This is an alternative to specifying a file which evaluates to a home
environment. 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 @end table
@node Documentation @node Documentation

View file

@ -23,7 +23,7 @@
# If adding a language, update the following variables, and info_TEXINFOS. # 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 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. # Arg1: A list of languages codes.
# Arg2: The file name stem. # Arg2: The file name stem.
@ -50,6 +50,7 @@ info_TEXINFOS = %D%/guix.texi \
%D%/guix-cookbook.fi.texi \ %D%/guix-cookbook.fi.texi \
%D%/guix-cookbook.fr.texi \ %D%/guix-cookbook.fr.texi \
%D%/guix-cookbook.ko.texi \ %D%/guix-cookbook.ko.texi \
%D%/guix-cookbook.pt_BR.texi \
%D%/guix-cookbook.ru.texi \ %D%/guix-cookbook.ru.texi \
%D%/guix-cookbook.sk.texi \ %D%/guix-cookbook.sk.texi \
%D%/guix-cookbook.zh_Hans.texi %D%/guix-cookbook.zh_Hans.texi

View file

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

View file

@ -9,7 +9,7 @@
;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;; Copyright © 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com> ;; Copyright © 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com>
;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;; 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 Leo Famulari <leo@famulari.name>
;; Copyright © 2021 Zhu Zihao <all_but_last@163.com> ;; Copyright © 2021 Zhu Zihao <all_but_last@163.com>
;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com> ;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
@ -25,6 +25,64 @@
(channel-news (channel-news
(version 0) (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") (entry (commit "c4fe13c294cc1e31dd8a49ce3981f603fb169e0a")
(title (title
(en "@command{guix style} can format package definitions") (en "@command{guix style} can format package definitions")

View file

@ -3,7 +3,7 @@
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org> ;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; 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> ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -62,8 +62,10 @@
(define (estimate-partition-size root) (define (estimate-partition-size root)
"Given the ROOT directory, evaluate and return its size. As this doesn't "Given the ROOT directory, evaluate and return its size. As this doesn't
take the partition metadata size into account, take a 25% margin." take the partition metadata size into account, take a 25% margin. As this in
(* 1.25 (file-size root))) 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 (define* (make-ext-image partition target root
#:key #:key

View file

@ -30,6 +30,7 @@
#:use-module (guix discovery) #:use-module (guix discovery)
#:use-module (guix diagnostics) #:use-module (guix diagnostics)
#:use-module (guix i18n) #:use-module (guix i18n)
#:use-module (guix modules)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (ice-9 match) #:use-module (ice-9 match)
@ -43,6 +44,7 @@
home-provenance-service-type home-provenance-service-type
fold-home-service-types fold-home-service-types
home-provenance
%initialize-gettext) %initialize-gettext)
@ -281,12 +283,12 @@ will be put in @file{~/.guix-home/files}.")))
#~(begin #~(begin
(bindtextdomain %gettext-domain (bindtextdomain %gettext-domain
(string-append #$guix "/share/locale")) (string-append #$guix "/share/locale"))
(textdomain %gettext-domain) (textdomain %gettext-domain)))
(setlocale LC_ALL "")))
(define (compute-on-first-login-script _ gexps) (define (compute-on-first-login-script _ gexps)
(program-file (program-file
"on-first-login" "on-first-login"
(with-imported-modules (source-module-closure '((guix i18n)))
#~(begin #~(begin
(use-modules (guix i18n)) (use-modules (guix i18n))
#$%initialize-gettext #$%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 (display (G_ "XDG_RUNTIME_DIR doesn't exists, on-first-login script
won't execute anything. You can check if xdg runtime directory exists, 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 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) (define (on-first-login-script-entry on-first-login)
"Return, as a monadic value, an entry for the on-first-login script "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) (define (compute-on-change-gexp eval-gexps? pattern-gexp-tuples)
(with-imported-modules (source-module-closure '((guix i18n)))
#~(begin #~(begin
(use-modules (guix i18n)) (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 (G_ "On-change gexps evaluation finished.\n\n")))
(display "\ (display "\
On-change gexps won't be evaluated; evaluation has been disabled in the On-change gexps won't be evaluated; evaluation has been disabled in the
service configuration")))) service configuration")))))
(define home-run-on-change-service-type (define home-run-on-change-service-type
(service-type (name 'home-run-on-change) (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 admin)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages connman) #:use-module (gnu packages connman)
#:use-module (gnu packages cryptsetup) #:use-module (gnu packages cryptsetup)
#:use-module (gnu packages disk) #:use-module (gnu packages disk)
@ -42,6 +43,7 @@
#:autoload (gnu packages gnupg) (guile-gcrypt) #:autoload (gnu packages gnupg) (guile-gcrypt)
#:use-module (gnu packages iso-codes) #:use-module (gnu packages iso-codes)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages nano)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages package-management) #:use-module (gnu packages package-management)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
@ -333,9 +335,11 @@ selected keymap."
ntfs-3g ;mkfs.ntfs ntfs-3g ;mkfs.ntfs
xfsprogs ;mkfs.xfs xfsprogs ;mkfs.xfs
kbd ;chvt kbd ;chvt
guix ;guix system init call
util-linux ;mkwap util-linux ;mkwap
nano
shadow shadow
tar ;dump
gzip ;dump
coreutils))) coreutils)))
(with-output-to-port (%make-void-port "w") (with-output-to-port (%make-void-port "w")
(lambda () (lambda ()
@ -352,7 +356,8 @@ selected keymap."
;; packages …), etc. modules. ;; packages …), etc. modules.
(with-extensions (list guile-gcrypt guile-newt (with-extensions (list guile-gcrypt guile-newt
guile-parted guile-bytestructures 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 (with-imported-modules `(,@(source-module-closure
`(,@modules `(,@modules
(gnu services herd) (gnu services herd)
@ -363,6 +368,7 @@ selected keymap."
(use-modules (gnu installer record) (use-modules (gnu installer record)
(gnu installer keymap) (gnu installer keymap)
(gnu installer steps) (gnu installer steps)
(gnu installer dump)
(gnu installer final) (gnu installer final)
(gnu installer hostname) (gnu installer hostname)
(gnu installer locale) (gnu installer locale)
@ -379,7 +385,8 @@ selected keymap."
(guix build utils) (guix build utils)
((system repl debug) ((system repl debug)
#:select (terminal-width)) #:select (terminal-width))
(ice-9 match)) (ice-9 match)
(ice-9 textual-ports))
;; Initialize gettext support so that installers can use ;; Initialize gettext support so that installers can use
;; (guix i18n) module. ;; (guix i18n) module.
@ -407,10 +414,15 @@ selected keymap."
;; verbose. ;; verbose.
(terminal-width 200) (terminal-width 200)
(let* ((current-installer newt-installer) (define current-installer newt-installer)
(steps (#$steps current-installer))) (define steps (#$steps current-installer))
((installer-init current-installer))
(dynamic-wind
(installer-init current-installer)
(lambda ()
(parameterize
((run-command-in-installer
(installer-run-command current-installer)))
(catch #t (catch #t
(lambda () (lambda ()
(define results (define results
@ -425,25 +437,33 @@ selected keymap."
(sync) (sync)
(stop-service 'root)) (stop-service 'root))
(_ (_
;; The installation failed, exit so that it is restarted ;; The installation failed, exit so that it is
;; by login. ;; restarted by login.
#f))) #f)))
(const #f) (const #f)
(lambda (key . args) (lambda (key . args)
(syslog "crashing due to uncaught exception: ~s ~s~%" (installer-log-line "crashing due to uncaught exception: ~s ~s"
key args) key args)
(let ((error-file "/tmp/last-installer-error")) (define dump-dir
(call-with-output-file error-file (prepare-dump key args #:result %current-result))
(lambda (port) (define action
(display-backtrace (make-stack #t) port)
(print-exception port
(stack-ref (make-stack #t) 1)
key args)))
((installer-exit-error current-installer) ((installer-exit-error current-installer)
error-file key args)) (get-string-all
(primitive-exit 1))) (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 (program-file
"installer" "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)) (uid (if root? 0 #f))
(home-directory (home-directory
(user-home-directory user)) (user-home-directory user))
(password (crypt (user-password user) (password (crypt
(secret-content (user-password user))
(salt))) (salt)))
;; We need a string here, not a file-like, hence ;; 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)))) (setlocale LC_ALL locale))))
(if supported? (if supported?
(begin (begin
(syslog "install supported locale ~a~%." locale) (installer-log-line "install supported locale ~a." locale)
(setenv "LC_ALL" locale)) (setenv "LC_ALL" locale))
(begin (begin
;; If the selected locale is not supported, install a default UTF-8 ;; If the selected locale is not supported, install a default UTF-8
;; locale. This is required to copy some files with UTF-8 ;; locale. This is required to copy some files with UTF-8
;; characters, in the nss-certs package notably. Set LANGUAGE ;; characters, in the nss-certs package notably. Set LANGUAGE
;; anyways, to have translated messages if possible. ;; anyways, to have translated messages if possible.
(syslog "~a locale is not supported, installating en_US.utf8 \ (installer-log-line "~a locale is not supported, installing \
locale instead.~%" locale) en_US.utf8 locale instead." locale)
(setlocale LC_ALL "en_US.utf8") (setlocale LC_ALL "en_US.utf8")
(setenv "LC_ALL" "en_US.utf8") (setenv "LC_ALL" "en_US.utf8")
(setenv "LANGUAGE" (setenv "LANGUAGE"
@ -208,17 +209,9 @@ or #f. Return #t on success and #f on failure."
(setvbuf (current-output-port) 'none) (setvbuf (current-output-port) 'none)
(setvbuf (current-error-port) 'none) (setvbuf (current-error-port) 'none)
;; If there are any connected clients, assume that we are running (setenv "PATH" "/run/current-system/profile/bin/")
;; installation tests. In that case, dump the standard and error
;; outputs to syslog. (set! ret (run-command install-command)))
(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))))
(lambda () (lambda ()
;; Restart guix-daemon so that it does no keep the MNT namespace ;; Restart guix-daemon so that it does no keep the MNT namespace
;; alive. ;; alive.

View file

@ -19,6 +19,7 @@
(define-module (gnu installer newt) (define-module (gnu installer newt)
#:use-module (gnu installer record) #:use-module (gnu installer record)
#:use-module (gnu installer utils) #:use-module (gnu installer utils)
#:use-module (gnu installer dump)
#:use-module (gnu installer newt ethernet) #:use-module (gnu installer newt ethernet)
#:use-module (gnu installer newt final) #:use-module (gnu installer newt final)
#:use-module (gnu installer newt parameters) #:use-module (gnu installer newt parameters)
@ -39,7 +40,12 @@
#:use-module (guix config) #:use-module (guix config)
#:use-module (guix discovery) #:use-module (guix discovery)
#:use-module (guix i18n) #:use-module (guix i18n)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26) #: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) #:use-module (newt)
#:export (newt-installer)) #:export (newt-installer))
@ -47,7 +53,7 @@
(newt-init) (newt-init)
(clear-screen) (clear-screen)
(set-screen-size!) (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 (push-help-line
(format #f (G_ "Press <F1> for installation parameters.")))) (format #f (G_ "Press <F1> for installation parameters."))))
@ -55,25 +61,102 @@
(newt-finish) (newt-finish)
(clear-screen)) (clear-screen))
(define (exit-error file key args) (define (exit-error error)
(newt-set-color COLORSET-ROOT "white" "red") (newt-set-color COLORSET-ROOT "white" "red")
(let ((width (nearest-exact-integer (define action
(* (screen-columns) 0.8))) (run-textbox-page
(height (nearest-exact-integer #:info-text (G_ "The installer has encountered an unexpected problem. \
(* (screen-rows) 0.7)))) The backtrace is displayed below. You may choose to exit or create a dump \
(run-file-textbox-page archive.")
#: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)
#:title (G_ "Unexpected problem") #:title (G_ "Unexpected problem")
#:file file #:content error
#:exit-button? #f #:buttons-spec
#:info-textbox-width width (list
#:file-textbox-width width (cons (G_ "Dump") (const 'dump))
#:file-textbox-height height)) (cons (G_ "Exit") (const 'exit)))))
(newt-set-color COLORSET-ROOT "white" "blue") (newt-set-color COLORSET-ROOT "white" "blue")
(newt-finish) action)
(clear-screen))
(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) (define (final-page result prev-steps)
(run-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) (services-page services-page)
(welcome-page welcome-page) (welcome-page welcome-page)
(parameters-menu parameters-menu) (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 (run-error-page
(G_ "No ethernet service available, please try again.") (G_ "No ethernet service available, please try again.")
(G_ "No service")) (G_ "No service"))
(raise (abort-to-prompt 'installer-step 'abort))
(condition
(&installer-step-abort))))
((service) ((service)
;; Only one service is available so return it directly. ;; Only one service is available so return it directly.
service) service)
@ -81,7 +79,5 @@ connection is pending."
#:button-text (G_ "Exit") #:button-text (G_ "Exit")
#:button-callback-procedure #:button-callback-procedure
(lambda _ (lambda _
(raise (abort-to-prompt 'installer-step 'abort))
(condition
(&installer-step-abort))))
#:listbox-callback-procedure connect-ethernet-service)))) #:listbox-callback-procedure connect-ethernet-service))))

View file

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

View file

@ -59,9 +59,7 @@ different layout at any time from the parameters menu.")))
((param) (const #f)) ((param) (const #f))
(else (else
(lambda _ (lambda _
(raise (abort-to-prompt 'installer-step 'abort)))))))
(condition
(&installer-step-abort)))))))))
(define (run-variant-page variants variant->text) (define (run-variant-page variants variant->text)
(let ((title (G_ "Variant"))) (let ((title (G_ "Variant")))
@ -74,9 +72,7 @@ different layout at any time from the parameters menu.")))
#:button-text (G_ "Back") #:button-text (G_ "Back")
#:button-callback-procedure #:button-callback-procedure
(lambda _ (lambda _
(raise (abort-to-prompt 'installer-step 'abort)))))
(condition
(&installer-step-abort)))))))
(define (sort-layouts layouts) (define (sort-layouts layouts)
"Sort LAYOUTS list by putting the US layout ahead and return it." "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-text (G_ "Exit")
#:button-callback-procedure #:button-callback-procedure
(lambda _ (lambda _
(raise (abort-to-prompt 'installer-step 'abort))))
(condition
(&installer-step-abort))))))
;; Immediately install the chosen language so that the territory page that ;; Immediately install the chosen language so that the territory page that
;; comes after (optionally) is displayed in the chosen language. ;; 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-text (G_ "Back")
#:button-callback-procedure #:button-callback-procedure
(lambda _ (lambda _
(raise (abort-to-prompt 'installer-step 'abort)))))
(condition
(&installer-step-abort)))))))
(define (run-codeset-page codesets) (define (run-codeset-page codesets)
(let ((title (G_ "Locale codeset"))) (let ((title (G_ "Locale codeset")))
@ -78,9 +74,7 @@ installation process and for the installed system.")
#:button-text (G_ "Back") #:button-text (G_ "Back")
#:button-callback-procedure #:button-callback-procedure
(lambda _ (lambda _
(raise (abort-to-prompt 'installer-step 'abort)))))
(condition
(&installer-step-abort)))))))
(define (run-modifier-page modifiers modifier->text) (define (run-modifier-page modifiers modifier->text)
(let ((title (G_ "Locale modifier"))) (let ((title (G_ "Locale modifier")))
@ -94,9 +88,7 @@ symbol.")
#:button-text (G_ "Back") #:button-text (G_ "Back")
#:button-callback-procedure #:button-callback-procedure
(lambda _ (lambda _
(raise (abort-to-prompt 'installer-step 'abort)))))
(condition
(&installer-step-abort)))))))
(define* (run-locale-page #:key (define* (run-locale-page #:key
supported-locales supported-locales
@ -110,11 +102,10 @@ associating a territory code with a territory name. The formatted locale, under
glibc format is returned." glibc format is returned."
(define (break-on-locale-found locales) (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." element."
(and (= (length locales) 1) (and (= (length locales) 1)
(raise (abort-to-prompt 'installer-step 'break)))
(condition (&installer-step-break)))))
(define (filter-locales locales result) (define (filter-locales locales result)
"Filter the list of locale records LOCALES using the RESULT returned by "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 ;; 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 ;; through all steps (language, territory, codeset and modifier) to select a
;; locale. In that case, like if we exited by raising &installer-step-break ;; locale. In that case, like if we exited by breaking to the installer
;; condition, turn the result into a glibc locale string and return it. ;; step, turn the result into a glibc locale string and return it.
(result->locale-string (result->locale-string
supported-locales supported-locales
(run-installer-steps #:steps locale-steps))) (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_ "Exit")
(G_ "The install process requires Internet access but no \ (G_ "The install process requires Internet access but no \
network devices were found. Do you want to continue anyway?")) network devices were found. Do you want to continue anyway?"))
((1) (raise ((1) (abort-to-prompt 'installer-step 'break))
(condition ((2) (abort-to-prompt 'installer-step 'abort))))
(&installer-step-break))))
((2) (raise
(condition
(&installer-step-abort))))))
((technology) ((technology)
;; Since there's only one technology available, skip the selection ;; Since there's only one technology available, skip the selection
;; screen. ;; screen.
@ -86,9 +82,7 @@ network devices were found. Do you want to continue anyway?"))
#:button-text (G_ "Exit") #:button-text (G_ "Exit")
#:button-callback-procedure #:button-callback-procedure
(lambda _ (lambda _
(raise (abort-to-prompt 'installer-step 'abort))))))
(condition
(&installer-step-abort))))))))
(define (find-technology-by-type technologies type) (define (find-technology-by-type technologies type)
"Find and return a technology with the given TYPE in TECHNOLOGIES list." "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 \ (G_ "The selected network does not provide access to the \
Internet and the Guix substitute server, please try again.") Internet and the Guix substitute server, please try again.")
(G_ "Connection error")) (G_ "Connection error"))
(raise (abort-to-prompt 'installer-step 'abort))))
(condition
(&installer-step-abort))))))
(define (run-network-page) (define (run-network-page)
"Run a page to allow the user to configure connman so that it can access the "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 steps)
#:use-module (gnu installer utils) #:use-module (gnu installer utils)
#:use-module (gnu installer newt utils) #:use-module (gnu installer newt utils)
#:use-module (guix build utils)
#:use-module (guix i18n) #:use-module (guix i18n)
#:use-module (ice-9 i18n) #:use-module (ice-9 i18n)
#:use-module (ice-9 match) #:use-module (ice-9 match)
@ -43,6 +44,10 @@
run-scale-page run-scale-page
run-checkbox-tree-page run-checkbox-tree-page
run-file-textbox-page run-file-textbox-page
%ok-button
%exit-button
run-textbox-page
run-dump-page
run-form-with-clients)) run-form-with-clients))
@ -93,9 +98,9 @@ disconnect.
Like 'run-form', return two values: the exit reason, and an \"argument\"." Like 'run-form', return two values: the exit reason, and an \"argument\"."
(define* (discard-client! port #:optional errno) (define* (discard-client! port #:optional errno)
(if errno (if errno
(syslog "removing client ~d due to ~s~%" (installer-log-line "removing client ~d due to ~s"
(fileno port) (strerror errno)) (fileno port) (strerror errno))
(syslog "removing client ~d due to EOF~%" (installer-log-line "removing client ~d due to EOF"
(fileno port))) (fileno port)))
;; XXX: Watch out! There's no 'form-unwatch-fd' procedure in Newt so we ;; 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) (send-to-clients exp)
(let loop () (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))) form title (length (current-clients)))
;; Call 'watch-clients!' within the loop because there might be new ;; 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) (discard-client! port)
(loop)) (loop))
(obj (obj
(syslog "form ~s (~s): client ~d replied ~s~%" (installer-log-line "form ~s (~s): client ~d replied ~s"
form title (fileno port) obj) form title (fileno port) obj)
(values 'exit-fd-ready obj)))) (values 'exit-fd-ready obj))))
(lambda args (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. ;; Accept a new client and send it EXP.
(match (accept port) (match (accept port)
((client . _) ((client . _)
(syslog "accepting new client ~d while on form ~s~%" (installer-log-line
"accepting new client ~d while on form ~s"
(fileno client) form) (fileno client) form)
(catch 'system-error (catch 'system-error
(lambda () (lambda ()
@ -486,7 +492,7 @@ the current listbox item has to be selected by key."
(string=? str (listbox-item->text item)))) (string=? str (listbox-item->text item))))
keys) keys)
((key . item) item) ((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, ;; 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, ;; 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)))) (string=? str (item->text item))))
keys) keys)
((key . item) item) ((key . item) item)
(#f (raise (condition (&installer-step-abort)))))) (#f (abort-to-prompt 'installer-step 'abort))))
(add-form-to-grid grid form #t) (add-form-to-grid grid form #t)
(make-wrapped-grid-window grid title) (make-wrapped-grid-window grid title)
@ -726,8 +732,7 @@ ITEMS when 'Ok' is pressed."
(newt-suspend) (newt-suspend)
;; Use Nano because it syntax-highlights Scheme by default. ;; Use Nano because it syntax-highlights Scheme by default.
;; TODO: Add a menu to choose an editor? ;; TODO: Add a menu to choose an editor?
(run-command (list "/run/current-system/profile/bin/nano" file) (invoke "nano" file)
#:locale locale)
(newt-resume)) (newt-resume))
(define* (run-file-textbox-page #:key (define* (run-file-textbox-page #:key
@ -811,6 +816,151 @@ ITEMS when 'Ok' is pressed."
(destroy-form-and-pop form)))) (destroy-form-and-pop form))))
(if (and (eq? exit-reason 'exit-component) (if (and (eq? exit-reason 'exit-component)
edit-button
(components=? argument edit-button)) (components=? argument edit-button))
(loop) ;recurse in tail position (loop) ;recurse in tail position
result))))) 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)) #:export (run-partitioning-page))
(define (button-exit-action) (define (button-exit-action)
"Raise the &installer-step-abort condition." "Abort the installer step."
(raise (abort-to-prompt 'installer-step 'abort))
(condition
(&installer-step-abort))))
(define (run-scheme-page) (define (run-scheme-page)
"Run a page asking the user for a partitioning scheme." "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. ;; Make sure the disks are not in use before proceeding to formatting.
(free-parted eligible-devices) (free-parted eligible-devices)
(format-user-partitions user-partitions-with-pass) (format-user-partitions user-partitions-with-pass)
(syslog "formatted ~a user partitions~%" (installer-log-line "formatted ~a user partitions"
(length user-partitions-with-pass)) (length user-partitions-with-pass))
(syslog "user-partitions: ~a~%" user-partitions) (installer-log-line "user-partitions: ~a" user-partitions)
(destroy-form-and-pop form) (destroy-form-and-pop form)
user-partitions)) user-partitions))

View file

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

View file

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

View file

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

View file

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

View file

@ -237,9 +237,7 @@ force a wifi scan."
(run-wifi-scan-page) (run-wifi-scan-page)
(run-wifi-page)) (run-wifi-page))
((components=? argument exit-button) ((components=? argument exit-button)
(raise (abort-to-prompt 'installer-step 'abort))
(condition
(&installer-step-abort))))
((components=? argument listbox) ((components=? argument listbox)
(let ((result (connect-wifi-service listbox service-items))) (let ((result (connect-wifi-service listbox service-items)))
(unless result (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) (define (remove-logical-devices)
"Remove all active logical devices." "Remove all active logical devices."
(with-null-output-ports ((run-command-in-installer) "dmsetup" "remove_all"))
(invoke "dmsetup" "remove_all")))
(define (installer-root-partition-path) (define (installer-root-partition-path)
"Return the root partition path, or #f if it could not be detected." "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)) (let ((length (device-length device))
(sector-size (device-sector-size device))) (sector-size (device-sector-size device)))
(and (< (* length sector-size) %min-device-size) (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) (device-path device)
(unit-format-custom-byte device (unit-format-custom-byte device
%min-device-size %min-device-size
@ -391,7 +391,8 @@ which are smaller than %MIN-DEVICE-SIZE."
(string=? the-installer-root-partition-path (string=? the-installer-root-partition-path
(partition-get-path partition))) (partition-get-path partition)))
(disk-partitions disk))))) (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)))) (device-path device))))
(remove (remove
@ -634,8 +635,14 @@ determined by MAX-LENGTH-COLUMN procedure."
(define (mklabel device type-name) (define (mklabel device type-name)
"Create a partition table on DEVICE. TYPE-NAME is the type of the partition "Create a partition table on DEVICE. TYPE-NAME is the type of the partition
table, \"msdos\" or \"gpt\"." table, \"msdos\" or \"gpt\"."
(let ((type (disk-type-get type-name))) (let* ((type (disk-type-get type-name))
(disk-new-fresh device type))) (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))) (disk-add-partition disk partition no-constraint)))
(partition-ok? (partition-ok?
(or partition-constraint-ok? partition-no-contraint-ok?))) (or partition-constraint-ok? partition-no-contraint-ok?)))
(syslog "Creating partition: (installer-log-line "Creating partition:")
~/type: ~a (installer-log-line "~/type: ~a" partition-type)
~/filesystem-type: ~a (installer-log-line "~/filesystem-type: ~a"
~/start: ~a (filesystem-type-name filesystem-type))
~/end: ~a (installer-log-line "~/start: ~a" start-sector*)
~/start-range: [~a, ~a] (installer-log-line "~/end: ~a" end-sector)
~/end-range: [~a, ~a] (installer-log-line "~/start-range: [~a, ~a]"
~/constraint: ~a (geometry-start start-range)
~/no-constraint: ~a (geometry-end start-range))
" (installer-log-line "~/end-range: [~a, ~a]"
partition-type (geometry-start end-range)
(filesystem-type-name filesystem-type) (geometry-end end-range))
start-sector* (installer-log-line "~/constraint: ~a"
end-sector partition-constraint-ok?)
(geometry-start start-range) (geometry-end start-range) (installer-log-line "~/no-constraint: ~a"
(geometry-start end-range) (geometry-end end-range)
partition-constraint-ok?
partition-no-contraint-ok?) partition-no-contraint-ok?)
;; Set the partition name if supported. ;; Set the partition name if supported.
(when (and partition-ok? has-name? name) (when (and partition-ok? has-name? name)
@ -1115,53 +1120,37 @@ list and return the updated list."
(file-name file-name)))) (file-name file-name))))
user-partitions)) 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) (define (create-btrfs-file-system partition)
"Create a btrfs file-system for PARTITION file-name." "Create a btrfs file-system for PARTITION file-name."
(with-null-output-ports ((run-command-in-installer) "mkfs.btrfs" "-f" partition))
(invoke "mkfs.btrfs" "-f" partition)))
(define (create-ext4-file-system partition) (define (create-ext4-file-system partition)
"Create an ext4 file-system for PARTITION file-name." "Create an ext4 file-system for PARTITION file-name."
(with-null-output-ports ((run-command-in-installer) "mkfs.ext4" "-F" partition))
(invoke "mkfs.ext4" "-F" partition)))
(define (create-fat16-file-system partition) (define (create-fat16-file-system partition)
"Create a fat16 file-system for PARTITION file-name." "Create a fat16 file-system for PARTITION file-name."
(with-null-output-ports ((run-command-in-installer) "mkfs.fat" "-F16" partition))
(invoke "mkfs.fat" "-F16" partition)))
(define (create-fat32-file-system partition) (define (create-fat32-file-system partition)
"Create a fat32 file-system for PARTITION file-name." "Create a fat32 file-system for PARTITION file-name."
(with-null-output-ports ((run-command-in-installer) "mkfs.fat" "-F32" partition))
(invoke "mkfs.fat" "-F32" partition)))
(define (create-jfs-file-system partition) (define (create-jfs-file-system partition)
"Create a JFS file-system for PARTITION file-name." "Create a JFS file-system for PARTITION file-name."
(with-null-output-ports ((run-command-in-installer) "jfs_mkfs" "-f" partition))
(invoke "jfs_mkfs" "-f" partition)))
(define (create-ntfs-file-system partition) (define (create-ntfs-file-system partition)
"Create a JFS file-system for PARTITION file-name." "Create a JFS file-system for PARTITION file-name."
(with-null-output-ports ((run-command-in-installer) "mkfs.ntfs" "-F" "-f" partition))
(invoke "mkfs.ntfs" "-F" "-f" partition)))
(define (create-xfs-file-system partition) (define (create-xfs-file-system partition)
"Create an XFS file-system for PARTITION file-name." "Create an XFS file-system for PARTITION file-name."
(with-null-output-ports ((run-command-in-installer) "mkfs.xfs" "-f" partition))
(invoke "mkfs.xfs" "-f" partition)))
(define (create-swap-partition partition) (define (create-swap-partition partition)
"Set up swap area on PARTITION file-name." "Set up swap area on PARTITION file-name."
(with-null-output-ports ((run-command-in-installer) "mkswap" "-f" partition))
(invoke "mkswap" "-f" partition)))
(define (call-with-luks-key-file password proc) (define (call-with-luks-key-file password proc)
"Write PASSWORD in a temporary file and pass it to PROC as argument." "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 (call-with-luks-key-file
password password
(lambda (key-file) (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) label file-name)
(system* "cryptsetup" "-q" "luksFormat" file-name key-file) ((run-command-in-installer) "cryptsetup" "-q" "luksFormat"
(system* "cryptsetup" "open" "--type" "luks" file-name key-file)
((run-command-in-installer) "cryptsetup" "open" "--type" "luks"
"--key-file" key-file file-name label))))) "--key-file" key-file file-name label)))))
(define (luks-close user-partition) (define (luks-close user-partition)
"Close the encrypted partition pointed by USER-PARTITION." "Close the encrypted partition pointed by USER-PARTITION."
(let ((label (user-partition-crypt-label user-partition))) (let ((label (user-partition-crypt-label user-partition)))
(syslog "closing LUKS entry ~s~%" label) (installer-log-line "closing LUKS entry ~s" label)
(system* "cryptsetup" "close" label))) ((run-command-in-installer) "cryptsetup" "close" label)))
(define (format-user-partitions user-partitions) (define (format-user-partitions user-partitions)
"Format the <user-partition> records in USER-PARTITIONS list with "Format the <user-partition> records in USER-PARTITIONS list with
@ -1279,7 +1269,7 @@ respective mount-points."
(file-name (file-name
(user-partition-upper-file-name user-partition))) (user-partition-upper-file-name user-partition)))
(mkdir-p target) (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))) (mount file-name target mount-type)))
sorted-partitions))) sorted-partitions)))
@ -1295,7 +1285,7 @@ respective mount-points."
(target (target
(string-append (%installer-target-dir) (string-append (%installer-target-dir)
mount-point))) mount-point)))
(syslog "unmounting ~s~%" target) (installer-log-line "unmounting ~s" target)
(umount target) (umount target)
(when crypt-label (when crypt-label
(luks-close user-partition)))) (luks-close user-partition))))
@ -1486,6 +1476,6 @@ the devices not to be used before returning."
(error (error
(format #f (G_ "Device ~a is still in use.") (format #f (G_ "Device ~a is still in use.")
file-name)) file-name))
(syslog "Syncing ~a took ~a seconds.~%" (installer-log-line "Syncing ~a took ~a seconds."
file-name (time-second time))))) file-name (time-second time)))))
device-file-names))) device-file-names)))

View file

@ -41,7 +41,10 @@
installer-services-page installer-services-page
installer-welcome-page installer-welcome-page
installer-parameters-menu 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) (init installer-init)
;; procedure: void -> void ;; procedure: void -> void
(exit installer-exit) (exit installer-exit)
;; procedure (key arguments) -> void ;; procedure (key arguments) -> (action)
(exit-error installer-exit-error) (exit-error installer-exit-error)
;; procedure void -> void ;; procedure void -> void
(final-page installer-final-page) (final-page installer-final-page)
@ -91,4 +94,10 @@
;; procedure (menu-proc) -> void ;; procedure (menu-proc) -> void
(parameters-menu installer-parameters-menu) (parameters-menu installer-parameters-menu)
;; procedure (keyboard-layout-selection) -> void ;; 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-34)
#:use-module (srfi srfi-35) #:use-module (srfi srfi-35)
#:use-module (rnrs io ports) #:use-module (rnrs io ports)
#:export (&installer-step-abort #:export (<installer-step>
installer-step-abort?
&installer-step-break
installer-step-break?
<installer-step>
installer-step installer-step
make-installer-step make-installer-step
installer-step? installer-step?
@ -52,15 +46,13 @@
%installer-configuration-file %installer-configuration-file
%installer-target-dir %installer-target-dir
format-configuration format-configuration
configuration->file)) configuration->file
;; This condition may be raised to abort the current step. %current-result))
(define-condition-type &installer-step-abort &condition
installer-step-abort?)
;; This condition may be raised to break out from the steps execution. ;; Hash table storing the step results. Use it only for logging and debug
(define-condition-type &installer-step-break &condition ;; purposes.
installer-step-break?) (define %current-result (make-hash-table))
;; An installer-step record is basically an id associated to a compute ;; An installer-step record is basically an id associated to a compute
;; procedure. The COMPUTE procedure takes exactly one argument, an association ;; procedure. The COMPUTE procedure takes exactly one argument, an association
@ -88,8 +80,10 @@
(rewind-strategy 'previous) (rewind-strategy 'previous)
(menu-proc (const #f))) (menu-proc (const #f)))
"Run the COMPUTE procedure of all <installer-step> records in STEPS "Run the COMPUTE procedure of all <installer-step> records in STEPS
sequentially. If the &installer-step-abort condition is raised, fallback to a sequentially, inside a the 'installer-step prompt. When aborted to with a
previous install-step, accordingly to the specified REWIND-STRATEGY. 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 REWIND-STRATEGY possible values are 'previous, 'menu and 'start. If 'previous
is selected, the execution will resume at the previous installer-step. If 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 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 result of the associated COMPUTE procedure. This result association list is
passed as argument of every COMPUTE procedure. It is finally returned when the passed as argument of every COMPUTE procedure. It is finally returned when the
computation is over. computation is over."
If the &installer-step-break condition is raised, stop the computation and
return the accumalated result so far."
(define (pop-result list) (define (pop-result list)
(cdr list)) (cdr list))
@ -143,17 +134,27 @@ return the accumalated result so far."
(match todo-steps (match todo-steps
(() (reverse result)) (() (reverse result))
((step . rest-steps) ((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 (case rewind-strategy
((previous) ((previous)
(match done-steps (match done-steps
(() (()
;; We cannot go previous the first step. So re-raise ;; We cannot go previous the first step. Abort again to
;; the exception. It might be useful in the case of ;; 'installer-step prompt. It might be useful in the case
;; nested run-installer-steps. Abort to 'raise-above ;; of nested run-installer-steps.
;; prompt to prevent the condition from being catched (abort-to-prompt 'installer-step action))
;; by one of the previously installed guard.
(abort-to-prompt 'raise-above c))
((prev-done ... last-done) ((prev-done ... last-done)
(run (pop-result result) (run (pop-result result)
#:todo-steps (cons last-done todo-steps) #:todo-steps (cons last-done todo-steps)
@ -172,33 +173,22 @@ return the accumalated result so far."
(if (null? done-steps) (if (null? done-steps)
;; Same as above, it makes no sense to jump to start ;; Same as above, it makes no sense to jump to start
;; when we are at the first installer-step. Abort to ;; when we are at the first installer-step. Abort to
;; 'raise-above prompt to re-raise the condition. ;; 'installer-step prompt again.
(abort-to-prompt 'raise-above c) (abort-to-prompt 'installer-step action)
(run '() (run '()
#:todo-steps steps #:todo-steps steps
#:done-steps '()))))) #:done-steps '())))))
((installer-step-break? c) ('break
(reverse result))) (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))))))))
;; Ignore SIGPIPE so that we don't die if a client closes the connection ;; Ignore SIGPIPE so that we don't die if a client closes the connection
;; prematurely. ;; prematurely.
(sigaction SIGPIPE SIG_IGN) (sigaction SIGPIPE SIG_IGN)
(with-server-socket (with-server-socket
(call-with-prompt 'raise-above
(lambda ()
(run '() (run '()
#:todo-steps steps #:todo-steps steps
#:done-steps '())) #:done-steps '())))
(lambda (k condition)
(raise condition)))))
(define (find-step-by-id steps id) (define (find-step-by-id steps id)
"Find and return the step in STEPS whose id is equal to 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) (define-module (gnu installer user)
#:use-module (guix records) #:use-module (guix records)
#:use-module (srfi srfi-1) #: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 user
make-user make-user
user-name user-name
@ -30,6 +37,16 @@
users->configuration)) users->configuration))
(define-record-type <secret>
(make-secret content)
secret?
(content secret-content))
(set-record-type-printer!
<secret>
(lambda (secret port)
(format port "<secret>")))
(define-record-type* <user> (define-record-type* <user>
user make-user user make-user
user? user?

View file

@ -25,7 +25,10 @@
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-19) #:use-module (srfi srfi-19)
#:use-module (srfi srfi-34) #:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (ice-9 control)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 popen)
#:use-module (ice-9 rdelim) #:use-module (ice-9 rdelim)
#:use-module (ice-9 regex) #:use-module (ice-9 regex)
#:use-module (ice-9 format) #:use-module (ice-9 format)
@ -34,10 +37,17 @@
read-all read-all
nearest-exact-integer nearest-exact-integer
read-percentage read-percentage
run-external-command-with-handler
run-external-command-with-line-hooks
run-command run-command
run-command-in-installer
syslog-port syslog-port
syslog %syslog-line-hook
installer-log-port
%installer-log-line-hook
%default-installer-line-hooks
installer-log-line
call-with-time call-with-time
let/time let/time
@ -74,37 +84,99 @@ number. If no percentage is found, return #f"
(and result (and result
(string->number (match:substring result 1))))) (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) (define* (run-command command)
"Run COMMAND, a list of strings. Return true if COMMAND exited "Run COMMAND, a list of strings. Return true if COMMAND exited
successfully, #f otherwise." successfully, #f otherwise."
(define env (environ))
(define (pause) (define (pause)
(format #t (G_ "Press Enter to continue.~%")) (format #t (G_ "Press Enter to continue.~%"))
(send-to-clients '(pause)) (send-to-clients '(pause))
(environ env) ;restore environment variables
(match (select (cons (current-input-port) (current-clients)) (match (select (cons (current-input-port) (current-clients))
'() '()) '() '())
(((port _ ...) _ _) (((port _ ...) _ _)
(read-line 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) (define run-command-in-installer
(newline) (make-parameter
(format (current-error-port) (lambda (. args)
(G_ "Command failed with exit code ~a.~%") (raise
(invoke-error-exit-status c)) (condition
(syslog "command ~s failed with exit code ~a" (&serious)
command (invoke-error-exit-status c)) (&message (message "run-command-in-installer not set")))))))
(pause)
#f))
(syslog "running command ~s~%" command)
(apply invoke command)
(syslog "command ~s succeeded~%" command)
(newline)
(pause)
#t))
;;; ;;;
@ -142,6 +214,9 @@ values."
(set! port (open-syslog-port))) (set! port (open-syslog-port)))
(or port (%make-void-port "w"))))) (or port (%make-void-port "w")))))
(define (%syslog-line-hook line)
(format (syslog-port) "installer[~d]: ~a~%" (getpid) line))
(define-syntax syslog (define-syntax syslog
(lambda (s) (lambda (s)
"Like 'format', but write to syslog." "Like 'format', but write to syslog."
@ -152,6 +227,43 @@ values."
(syntax->datum #'fmt)))) (syntax->datum #'fmt))))
#'(format (syslog-port) fmt (getpid) args ...)))))) #'(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. ;;; Client protocol.
@ -214,7 +326,8 @@ accepting socket."
(let ((errno (system-error-errno args))) (let ((errno (system-error-errno args)))
(if (memv errno (list EPIPE ECONNRESET ECONNABORTED)) (if (memv errno (list EPIPE ECONNRESET ECONNABORTED))
(begin (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)) (fileno client) (strerror errno))
(false-if-exception (close-port client)) (false-if-exception (close-port client))
remainder) remainder)

View file

@ -7,7 +7,7 @@
# Copyright © 2016, 2017, 2018 Kei Kebreau <kkebreau@posteo.net> # Copyright © 2016, 2017, 2018 Kei Kebreau <kkebreau@posteo.net>
# Copyright © 2016, 2017 Rene Saavedra <rennes@openmailbox.org> # 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 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 Ben Woodcroft <donttrustben@gmail.com>
# Copyright © 2016, 2017, 2018, 2019 Alex Vong <alexvong1995@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> # Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
@ -79,6 +79,7 @@ GNU_SYSTEM_MODULES = \
%D%/ci.scm \ %D%/ci.scm \
%D%/home.scm \ %D%/home.scm \
%D%/home/services.scm \ %D%/home/services.scm \
%D%/home/services/desktop.scm \
%D%/home/services/symlink-manager.scm \ %D%/home/services/symlink-manager.scm \
%D%/home/services/fontutils.scm \ %D%/home/services/fontutils.scm \
%D%/home/services/shells.scm \ %D%/home/services/shells.scm \
@ -581,6 +582,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/time.scm \ %D%/packages/time.scm \
%D%/packages/tls.scm \ %D%/packages/tls.scm \
%D%/packages/tmux.scm \ %D%/packages/tmux.scm \
%D%/packages/toolkits.scm \
%D%/packages/tor.scm \ %D%/packages/tor.scm \
%D%/packages/tv.scm \ %D%/packages/tv.scm \
%D%/packages/uglifyjs.scm \ %D%/packages/uglifyjs.scm \
@ -758,6 +760,7 @@ GNU_SYSTEM_MODULES = \
INSTALLER_MODULES = \ INSTALLER_MODULES = \
%D%/installer.scm \ %D%/installer.scm \
%D%/installer/connman.scm \ %D%/installer/connman.scm \
%D%/installer/dump.scm \
%D%/installer/final.scm \ %D%/installer/final.scm \
%D%/installer/hostname.scm \ %D%/installer/hostname.scm \
%D%/installer/keymap.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-gcc-compat.patch \
%D%/packages/patches/ath9k-htc-firmware-objcopy.patch \ %D%/packages/patches/ath9k-htc-firmware-objcopy.patch \
%D%/packages/patches/atlas-gfortran-compat.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-datatypes-in-tests.patch \
%D%/packages/patches/audiofile-fix-sign-conversion.patch \ %D%/packages/patches/audiofile-fix-sign-conversion.patch \
%D%/packages/patches/audiofile-CVE-2015-7747.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-timestamp.patch \
%D%/packages/patches/binutils-mingw-w64-deterministic.patch \ %D%/packages/patches/binutils-mingw-w64-deterministic.patch \
%D%/packages/patches/binutils-CVE-2021-45078.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/bpftrace-disable-bfd-disasm.patch \
%D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/byobu-writable-status.patch \
%D%/packages/patches/bubblewrap-fix-locale-in-tests.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/coq-fix-envvars.patch \
%D%/packages/patches/coreutils-ls.patch \ %D%/packages/patches/coreutils-ls.patch \
%D%/packages/patches/cpuinfo-system-libraries.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/crawl-upgrade-saves.patch \
%D%/packages/patches/crda-optional-gcrypt.patch \ %D%/packages/patches/crda-optional-gcrypt.patch \
%D%/packages/patches/clucene-contribs-lib.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/dovecot-trees-support-dovecot-2.3.patch \
%D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \ %D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \
%D%/packages/patches/dstat-skip-devices-without-io.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/dvd+rw-tools-add-include.patch \
%D%/packages/patches/dynaconf-unvendor-deps.patch \ %D%/packages/patches/dynaconf-unvendor-deps.patch \
%D%/packages/patches/ecl-16-format-directive-limit.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-spSolve.patch \
%D%/packages/patches/fasthenry-spFactor.patch \ %D%/packages/patches/fasthenry-spFactor.patch \
%D%/packages/patches/fbreader-curl-7.62.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-boost-compat.patch \
%D%/packages/patches/fifengine-swig-compat.patch \ %D%/packages/patches/fifengine-swig-compat.patch \
%D%/packages/patches/fifo-map-fix-flags-for-gcc.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/geeqie-clutter.patch \
%D%/packages/patches/genimage-mke2fs-test.patch \ %D%/packages/patches/genimage-mke2fs-test.patch \
%D%/packages/patches/geoclue-config.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-8.0-fall-back-to-madv_dontneed.patch \
%D%/packages/patches/ghc-testsuite-dlopen-pie.patch \ %D%/packages/patches/ghc-testsuite-dlopen-pie.patch \
%D%/packages/patches/ghc-language-haskell-extract-ghc-8.10.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-linux-syscalls.patch \
%D%/packages/patches/guile-3.0-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-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-gdbm-ffi-support-gdbm-1.14.patch \
%D%/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch \ %D%/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch \
%D%/packages/patches/guile-present-coding.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/json-c-0.12-CVE-2020-12762.patch \
%D%/packages/patches/jsoncpp-pkg-config-version.patch \ %D%/packages/patches/jsoncpp-pkg-config-version.patch \
%D%/packages/patches/jami-fix-crash-on-quit.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-aarch64-support.patch \
%D%/packages/patches/jamvm-1.5.1-armv7-support.patch \ %D%/packages/patches/jamvm-1.5.1-armv7-support.patch \
%D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \ %D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \
@ -1402,6 +1419,7 @@ dist_patch_DATA = \
%D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \ %D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \
%D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch \ %D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch \
%D%/packages/patches/libquicktime-ffmpeg.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/libssh2-CVE-2019-17498.patch \
%D%/packages/patches/libtar-CVE-2013-4420.patch \ %D%/packages/patches/libtar-CVE-2013-4420.patch \
%D%/packages/patches/libtgvoip-disable-sse2.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-shell-version.patch \
%D%/packages/patches/mozjs38-tracelogger.patch \ %D%/packages/patches/mozjs38-tracelogger.patch \
%D%/packages/patches/mozjs38-version-detection.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/mrrescue-support-love-11.patch \
%D%/packages/patches/mtools-mformat-uninitialized.patch \ %D%/packages/patches/mtools-mformat-uninitialized.patch \
%D%/packages/patches/mumps-build-parallelism.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-dose3-Install-mli-cmx-etc.patch \
%D%/packages/patches/ocaml-multiple-definitions.patch \ %D%/packages/patches/ocaml-multiple-definitions.patch \
%D%/packages/patches/ocaml-4.09-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/omake-fix-non-determinism.patch \
%D%/packages/patches/oneko-remove-nonfree-characters.patch \ %D%/packages/patches/oneko-remove-nonfree-characters.patch \
%D%/packages/patches/onnx-optimizer-system-library.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-shared-libraries.patch \
%D%/packages/patches/onnx-skip-model-downloads.patch \ %D%/packages/patches/onnx-skip-model-downloads.patch \
%D%/packages/patches/openbabel-fix-crash-on-nwchem-output.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/opencascade-oce-glibc-2.26.patch \
%D%/packages/patches/openfoam-4.1-cleanup.patch \ %D%/packages/patches/openfoam-4.1-cleanup.patch \
%D%/packages/patches/openjdk-10-idlj-reproducibility.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/opensles-add-license-file.patch \
%D%/packages/patches/openssl-runpath.patch \ %D%/packages/patches/openssl-runpath.patch \
%D%/packages/patches/openssl-1.1-c-rehash-in.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-c-rehash-in.patch \
%D%/packages/patches/openssl-CVE-2019-1559.patch \
%D%/packages/patches/open-zwave-hidapi.patch \ %D%/packages/patches/open-zwave-hidapi.patch \
%D%/packages/patches/orpheus-cast-errors-and-includes.patch \ %D%/packages/patches/orpheus-cast-errors-and-includes.patch \
%D%/packages/patches/osip-CVE-2017-7853.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/p11-kit-hurd.patch \
%D%/packages/patches/patchutils-test-perms.patch \ %D%/packages/patches/patchutils-test-perms.patch \
%D%/packages/patches/patch-hurd-path-max.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-autosplit-default-time.patch \
%D%/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \ %D%/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \
%D%/packages/patches/perl-image-exiftool-CVE-2021-22204.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-2011-4620.patch \
%D%/packages/patches/plib-CVE-2012-4552.patch \ %D%/packages/patches/plib-CVE-2012-4552.patch \
%D%/packages/patches/plotutils-spline-test.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-configure-elogind.patch \
%D%/packages/patches/polkit-use-duktape.patch \ %D%/packages/patches/polkit-use-duktape.patch \
%D%/packages/patches/portaudio-audacity-compat.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-pytest-asyncio-python-3.8.patch \
%D%/packages/patches/python-pytorch-runpath.patch \ %D%/packages/patches/python-pytorch-runpath.patch \
%D%/packages/patches/python-pytorch-system-libraries.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-robotframework-source-date-epoch.patch \
%D%/packages/patches/python-seaborn-kde-test.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/python2-subprocess32-disable-input-test.patch \
%D%/packages/patches/python-unittest2-python3-compat.patch \ %D%/packages/patches/python-unittest2-python3-compat.patch \
%D%/packages/patches/python-unittest2-remove-argparse.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/raptor2-heap-overflow.patch \
%D%/packages/patches/ratpoints-sturm_and_rp_private.patch \ %D%/packages/patches/ratpoints-sturm_and_rp_private.patch \
%D%/packages/patches/ratpoison-shell.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/rct-add-missing-headers.patch \
%D%/packages/patches/readline-link-ncurses.patch \ %D%/packages/patches/readline-link-ncurses.patch \
%D%/packages/patches/readline-6.2-CVE-2014-2524.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-noclinfo.patch \
%D%/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch \ %D%/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch \
%D%/packages/patches/rocm-opencl-runtime-4.3-noopencl.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/ruby-sanitize-system-libxml.patch \
%D%/packages/patches/rustc-1.39.0-src.patch \ %D%/packages/patches/rustc-1.39.0-src.patch \
%D%/packages/patches/rust-adblock-ignore-live-tests.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/tao-fix-parser-types.patch \
%D%/packages/patches/tar-remove-wholesparse-check.patch \ %D%/packages/patches/tar-remove-wholesparse-check.patch \
%D%/packages/patches/tar-skip-unreliable-tests.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/tcc-boot-0.9.27.patch \
%D%/packages/patches/tclxml-3.2-install.patch \ %D%/packages/patches/tclxml-3.2-install.patch \
%D%/packages/patches/tcsh-fix-autotest.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-riscv64-fix-extlinux.patch \
%D%/packages/patches/u-boot-rk3399-enable-emmc-phy.patch \ %D%/packages/patches/u-boot-rk3399-enable-emmc-phy.patch \
%D%/packages/patches/ucx-tcp-iface-ioctl.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-extension-search-path.patch \
%D%/packages/patches/ungoogled-chromium-ffmpeg-compat.patch \ %D%/packages/patches/ungoogled-chromium-ffmpeg-compat.patch \
%D%/packages/patches/ungoogled-chromium-RUNPATH.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/upx-CVE-2021-20285.patch \
%D%/packages/patches/ustr-fix-build-with-gcc-5.patch \ %D%/packages/patches/ustr-fix-build-with-gcc-5.patch \
%D%/packages/patches/util-linux-tests.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/upower-builddir.patch \
%D%/packages/patches/valgrind-enable-arm.patch \ %D%/packages/patches/valgrind-enable-arm.patch \
%D%/packages/patches/vboot-utils-fix-format-load-address.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/warsow-qfusion-fix-bool-return-type.patch \
%D%/packages/patches/webkitgtk-share-store.patch \ %D%/packages/patches/webkitgtk-share-store.patch \
%D%/packages/patches/webkitgtk-bind-all-fonts.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/websocketpp-fix-for-cmake-3.15.patch \
%D%/packages/patches/wicd-bitrate-none-fix.patch \ %D%/packages/patches/wicd-bitrate-none-fix.patch \
%D%/packages/patches/wicd-get-selected-profile-fix.patch \ %D%/packages/patches/wicd-get-selected-profile-fix.patch \

View file

@ -51,7 +51,7 @@
;;; Commentary: ;;; Commentary:
;;; ;;;
;;; This module provides the types used to declare individual machines in a ;;; 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 ;;; configurations and the means by which resources should be provisioned on a
;;; per-host basis. ;;; 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 © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014, 2015, 2016, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org> ;;; 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, 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Alex Sassmannshausen <alex.sassmannshausen@gmail.com> ;;; Copyright © 2015 Alex Sassmannshausen <alex.sassmannshausen@gmail.com>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr> ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
@ -1220,6 +1220,21 @@ connection alive.")
;; build system uses the built 'gen' executable. ;; build system uses the built 'gen' executable.
(setenv "BUILD_CC" "gcc")))) (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 (add-after 'configure 'post-configure
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
;; Point to the right client script, which will be ;; Point to the right client script, which will be
@ -1302,6 +1317,7 @@ connection alive.")
(base32 (base32
"108nh7hha4r0lb5hf1fn7lqaascvhsrghpz6afm5lf9vf2vgqly9")))) "108nh7hha4r0lb5hf1fn7lqaascvhsrghpz6afm5lf9vf2vgqly9"))))
("config" ,config)
("coreutils*" ,coreutils) ("coreutils*" ,coreutils)
("sed*" ,sed))) ("sed*" ,sed)))
@ -2858,7 +2874,8 @@ lookup to YAML Mode. You could enable the mode with @code{(add-hook
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1dz045yhcsw1rdamzpz4bk8mw888in7fyqk1q1b3m1yk4pd1ahkh")))) (base32 "1dz045yhcsw1rdamzpz4bk8mw888in7fyqk1q1b3m1yk4pd1ahkh"))
(patches (search-patches "cpulimit-with-glib-2.32.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#: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" out-bin)
(install-file "novena-eeprom.8" out-share-man))))))) (install-file "novena-eeprom.8" out-share-man)))))))
(inputs (inputs
(list i2c-tools)) (list i2c-tools-3))
(synopsis "Novena EEPROM editor") (synopsis "Novena EEPROM editor")
(description "This package provides an editor for the Novena EEPROM. (description "This package provides an editor for the Novena EEPROM.
Novena boards contain a device-dependent descriptive EEPROM that defines Novena boards contain a device-dependent descriptive EEPROM that defines

View file

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

View file

@ -5,7 +5,7 @@
;;; Copyright © 2019 by Amar Singh <nly@disroot.org> ;;; Copyright © 2019 by Amar Singh <nly@disroot.org>
;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in> ;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in>
;;; Copyright © 2020, 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; 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, 2022 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 Greg Hogan <code@greghogan.com> ;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com> ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
@ -1460,27 +1460,28 @@ of stand-alone functions and classes.")
(define-public python-asdf (define-public python-asdf
(package (package
(name "python-asdf") (name "python-asdf")
(version "2.7.4") (version "2.8.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "asdf" version)) (uri (pypi-uri "asdf" version))
(sha256 (sha256
(base32 "1mj52l2m8pbhiqacgjakjpvqi8kyx470yw151lcsswbq5wp0rsc6")))) (base32 "0i4vq1hsympjgb1yvn4ql0gm8j1mki9ggmj03533kmg0nbzp03yy"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
;; TODO: (Sharlatan-20210207T165820+0000): Tests depend on astropy, astropy ;; NOTE: (Sharlatan-20211229T201059+0000): Tests depend on astropy and
;; depends on asdf. Disable circular dependence. ;; gwcs, astropy gwcs depend on asdf. Disable circular dependence.
`(#:tests? #f)) `(#:tests? #f))
(native-inputs (native-inputs
`(("packaging" ,python-packaging) (list python-setuptools-scm
("semantic-version" ,python-semantic-version) python-semantic-version
("setuptools-scm" ,python-setuptools-scm))) python-packaging))
(inputs (propagated-inputs
`(("importlib-resources" ,python-importlib-resources) (list python-importlib-resources
("jsonschema" ,python-jsonschema) python-jsonschema
("numpy" ,python-numpy) python-jmespath
("pyyaml" ,python-pyyaml))) python-numpy
python-pyyaml))
(home-page "https://github.com/asdf-format/asdf") (home-page "https://github.com/asdf-format/asdf")
(synopsis "Python tools to handle ASDF files") (synopsis "Python tools to handle ASDF files")
(description (description
@ -1489,6 +1490,192 @@ interchange format for scientific data. This package contains the Python
implementation of the ASDF Standard.") implementation of the ASDF Standard.")
(license license:bsd-3))) (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 (define-public python-astroalign
(package (package
(name "python-astroalign") (name "python-astroalign")

View file

@ -1,10 +1,10 @@
;;; GNU Guix --- Functional package management for GNU ;;; 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 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org> ;;; 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, 2017 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016 Nikita <nikita@n0.is> ;;; Copyright © 2016 Nikita <nikita@n0.is>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org> ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
@ -254,6 +254,45 @@ softsynth library that can be use with other applications.")
(sha256 (sha256
(base32 "1gsx7k77blfy171b6g3m0k0s0072v6jcawhmx1kjs9w5zlwdkzd0")))) (base32 "1gsx7k77blfy171b6g3m0k0s0072v6jcawhmx1kjs9w5zlwdkzd0"))))
(build-system gnu-build-system) (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") (synopsis "WebRTC's Audio Processing Library")
(description "WebRTC-Audio-Processing library based on Google's (description "WebRTC-Audio-Processing library based on Google's
implementation of WebRTC.") implementation of WebRTC.")
@ -728,14 +767,17 @@ engineers, musicians, soundtrack editors and composers.")
(version "3.1.3") (version "3.1.3")
(source (source
(origin (origin
(method git-fetch) ;; If built from the release tag, Audacity will describe itself
(uri (git-reference ;; as an "Alpha test version" and suggest to users that they use
(url "https://github.com/audacity/audacity") ;; the "latest stable released version".
(commit (string-append "Audacity-" version)))) (method url-fetch)
(file-name (git-file-name name version)) (uri (string-append "https://github.com/audacity/audacity/releases/download/"
"Audacity-" version "/audacity-" version
"-source.tar.gz"))
(sha256 (sha256
(base32 (base32
"1689q9apbjf9nnda62shb8j7hm4hxd47mhk4l5h3c728mjjkilmi")) "189agx11361k9j958s6q5bngnnfx0rwaf0dwbjxy6fwvsb1wv3px"))
(patches (search-patches "audacity-ffmpeg-fallback.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; Remove bundled libraries. ;; Remove bundled libraries.
@ -763,10 +805,10 @@ engineers, musicians, soundtrack editors and composers.")
alsa-lib alsa-lib
jack-1 jack-1
expat expat
ffmpeg
lame lame
linux-libre-headers linux-libre-headers
flac flac
ffmpeg
libid3tag libid3tag
libjpeg-turbo libjpeg-turbo
libmad libmad
@ -4080,6 +4122,40 @@ with support for HD extensions.")
(home-page "https://github.com/foo86/dcadec") (home-page "https://github.com/foo86/dcadec")
(license license:lgpl2.1+))) (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 (define-public bs1770gain
(package (package
(name "bs1770gain") (name "bs1770gain")

View file

@ -40,7 +40,13 @@
(uri (string-append "mirror://gnu/autogen/rel" version (uri (string-append "mirror://gnu/autogen/rel" version
"/autogen-" version ".tar.xz")) "/autogen-" version ".tar.xz"))
(sha256 (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) (build-system gnu-build-system)
(native-inputs (list pkg-config which)) (native-inputs (list pkg-config which))
(inputs (list guile-2.2 perl)) ; for doc generator mdoc (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_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
# CONFIG_SND_EMU10K1_SEQ is not set # CONFIG_SND_EMU10K1_SEQ is not set
# CONFIG_SND_ENS1370 is not set # CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 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_TSI568=m
CONFIG_RAPIDIO_CPS_GEN2=m CONFIG_RAPIDIO_CPS_GEN2=m
CONFIG_RAPIDIO_RXS_GEN3=m CONFIG_RAPIDIO_RXS_GEN3=m
CONFIG_X86_SYSFB=y # CONFIG_X86_SYSFB is not set
# #
# Executable file formats / Emulations # Executable file formats / Emulations
@ -8495,13 +8495,7 @@ CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_GOOGLE_FIRMWARE=y # CONFIG_GOOGLE_FIRMWARE is not set
# 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
# #
# EFI (Extensible Firmware Interface) Support # EFI (Extensible Firmware Interface) Support

View file

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

View file

@ -5598,6 +5598,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
# CONFIG_SND_ENS1370 is not set # CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set # CONFIG_SND_ENS1371 is not set
# CONFIG_SND_FM801 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_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
# CONFIG_SND_ENS1370 is not set # CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set # CONFIG_SND_ENS1371 is not set
# CONFIG_SND_FM801 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_TSI568=m
CONFIG_RAPIDIO_CPS_GEN2=m CONFIG_RAPIDIO_CPS_GEN2=m
CONFIG_RAPIDIO_RXS_GEN3=m CONFIG_RAPIDIO_RXS_GEN3=m
CONFIG_X86_SYSFB=y # CONFIG_X86_SYSFB is not set
# #
# Binary Emulations # Binary Emulations
@ -737,13 +737,7 @@ CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_GOOGLE_FIRMWARE=y # CONFIG_GOOGLE_FIRMWARE is not set
# 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
# #
# EFI (Extensible Firmware Interface) Support # EFI (Extensible Firmware Interface) Support

View file

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

View file

@ -825,7 +825,7 @@ CONFIG_RAPIDIO_TSI57X=m
CONFIG_RAPIDIO_CPS_XX=m CONFIG_RAPIDIO_CPS_XX=m
CONFIG_RAPIDIO_TSI568=m CONFIG_RAPIDIO_TSI568=m
CONFIG_RAPIDIO_CPS_GEN2=m CONFIG_RAPIDIO_CPS_GEN2=m
CONFIG_X86_SYSFB=y # CONFIG_X86_SYSFB is not set
# #
# Executable file formats / Emulations # Executable file formats / Emulations
@ -7679,13 +7679,7 @@ CONFIG_DMI_SYSFS=m
CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
CONFIG_ISCSI_IBFT_FIND=y CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m CONFIG_ISCSI_IBFT=m
CONFIG_GOOGLE_FIRMWARE=y # CONFIG_GOOGLE_FIRMWARE is not set
# 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
# #
# EFI (Extensible Firmware Interface) Support # EFI (Extensible Firmware Interface) Support

View file

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

View file

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

View file

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

View file

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

View file

@ -992,7 +992,7 @@ CONFIG_PAGE_IDLE_FLAG=y
CONFIG_IDLE_PAGE_TRACKING=y CONFIG_IDLE_PAGE_TRACKING=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_ARCH_HAS_ZONE_DMA_SET=y CONFIG_ARCH_HAS_ZONE_DMA_SET=y
# CONFIG_ZONE_DMA is not set CONFIG_ZONE_DMA=y
CONFIG_HMM_MIRROR=y CONFIG_HMM_MIRROR=y
CONFIG_VMAP_PFN=y CONFIG_VMAP_PFN=y
# CONFIG_PERCPU_STATS is not set # CONFIG_PERCPU_STATS is not set
@ -2249,14 +2249,8 @@ CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_SYSFB=y CONFIG_SYSFB=y
CONFIG_SYSFB_SIMPLEFB=y # CONFIG_SYSFB_SIMPLEFB is not set
CONFIG_GOOGLE_FIRMWARE=y # CONFIG_GOOGLE_FIRMWARE is not set
# 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
# #
# EFI (Extensible Firmware Interface) Support # EFI (Extensible Firmware Interface) Support
@ -6731,7 +6725,7 @@ CONFIG_FB_MB862XX=m
CONFIG_FB_MB862XX_PCI_GDC=y CONFIG_FB_MB862XX_PCI_GDC=y
CONFIG_FB_MB862XX_I2C=y CONFIG_FB_MB862XX_I2C=y
CONFIG_FB_HYPERV=m CONFIG_FB_HYPERV=m
CONFIG_FB_SIMPLE=y CONFIG_FB_SIMPLE=m
CONFIG_FB_SSD1307=m CONFIG_FB_SSD1307=m
CONFIG_FB_SM712=m CONFIG_FB_SM712=m
# end of Frame buffer Devices # end of Frame buffer Devices
@ -6942,6 +6936,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_ENS1370=m CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m CONFIG_SND_ENS1371=m
CONFIG_SND_FM801=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_CACHE_LINE_SIZE=y
CONFIG_ARCH_HAS_PTE_DEVMAP=y CONFIG_ARCH_HAS_PTE_DEVMAP=y
CONFIG_ARCH_HAS_ZONE_DMA_SET=y CONFIG_ARCH_HAS_ZONE_DMA_SET=y
# CONFIG_ZONE_DMA is not set CONFIG_ZONE_DMA=y
CONFIG_ZONE_DMA32=y CONFIG_ZONE_DMA32=y
CONFIG_ZONE_DEVICE=y CONFIG_ZONE_DEVICE=y
CONFIG_DEV_PAGEMAP_OPS=y CONFIG_DEV_PAGEMAP_OPS=y
@ -2282,14 +2282,8 @@ CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_SYSFB=y CONFIG_SYSFB=y
CONFIG_SYSFB_SIMPLEFB=y # CONFIG_SYSFB_SIMPLEFB is not set
CONFIG_GOOGLE_FIRMWARE=y # CONFIG_GOOGLE_FIRMWARE is not set
# 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
# #
# EFI (Extensible Firmware Interface) Support # EFI (Extensible Firmware Interface) Support
@ -6688,7 +6682,7 @@ CONFIG_FB_MB862XX=m
CONFIG_FB_MB862XX_PCI_GDC=y CONFIG_FB_MB862XX_PCI_GDC=y
CONFIG_FB_MB862XX_I2C=y CONFIG_FB_MB862XX_I2C=y
CONFIG_FB_HYPERV=m CONFIG_FB_HYPERV=m
CONFIG_FB_SIMPLE=y CONFIG_FB_SIMPLE=m
CONFIG_FB_SSD1307=m CONFIG_FB_SSD1307=m
CONFIG_FB_SM712=m CONFIG_FB_SM712=m
# end of Frame buffer Devices # end of Frame buffer Devices
@ -6856,6 +6850,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_ENS1370=m CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m CONFIG_SND_ENS1371=m
CONFIG_SND_FM801=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_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
# CONFIG_SND_ENS1370 is not set # CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set # CONFIG_SND_ENS1371 is not set
# CONFIG_SND_FM801 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_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
# CONFIG_SND_ENS1370 is not set # CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set # CONFIG_SND_ENS1371 is not set
# CONFIG_SND_FM801 is not set # CONFIG_SND_FM801 is not set

View file

@ -648,7 +648,7 @@ CONFIG_ALIX=y
CONFIG_NET5501=y CONFIG_NET5501=y
CONFIG_GEOS=y CONFIG_GEOS=y
CONFIG_AMD_NB=y CONFIG_AMD_NB=y
CONFIG_X86_SYSFB=y # CONFIG_X86_SYSFB is not set
# end of Bus options (PCI etc.) # end of Bus options (PCI etc.)
# #
@ -672,13 +672,7 @@ CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_GOOGLE_FIRMWARE=y # CONFIG_GOOGLE_FIRMWARE is not set
# 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
# #
# EFI (Extensible Firmware Interface) Support # EFI (Extensible Firmware Interface) Support

View file

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

View file

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2020 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2014, 2015, 2020 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.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 © 20172021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017, 2021 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017, 2021 Arun Isaac <arunisaac@systemreboot.net>
@ -42,6 +42,7 @@
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix utils) #:use-module (guix utils)
@ -50,6 +51,7 @@
#:use-module (guix build-system go) #:use-module (guix build-system go)
#:use-module (guix build-system perl) #:use-module (guix build-system perl)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages acl) #:use-module (gnu packages acl)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
@ -81,13 +83,16 @@
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf) #:use-module (gnu packages protobuf)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto) #:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web) #:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages rsync) #:use-module (gnu packages rsync)
#:use-module (gnu packages ruby) #:use-module (gnu packages ruby)
#:use-module (gnu packages serialization) #:use-module (gnu packages serialization)
#:use-module (gnu packages ssh) #:use-module (gnu packages ssh)
#:use-module (gnu packages time)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages valgrind) #:use-module (gnu packages valgrind)
#:use-module (gnu packages xml)) #: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 supports compression and authenticated encryption. The main goal of Borg is to
provide an efficient and secure way to backup data. The data deduplication provide an efficient and secure way to backup data. The data deduplication
technique used makes Borg suitable for daily backups since only changes are technique used makes Borg suitable for daily backups since only changes are
stored. The authenticated encryption technique makes it suitable for backups stored. The authenticated encryption technique makes it suitable for
to not fully trusted targets. Borg is a fork of Attic.") storing backups on untrusted computers.")
(home-page "https://www.borgbackup.org/") (home-page "https://www.borgbackup.org/")
(license license:bsd-3))) (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. your databases too. Monitor it all with integrated third-party services.
borgmatic is powered by borg.") borgmatic is powered by borg.")
(license license:gpl3+))) (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, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; 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 Vitaliy Shatrov <D0dyBo0D0dyBo0@protonmail.com>
;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net> ;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
@ -46,6 +46,7 @@
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages bison) #:use-module (gnu packages bison)
#:use-module (gnu packages ed) #:use-module (gnu packages ed)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (gnu packages multiprecision) #:use-module (gnu packages multiprecision)
@ -1014,6 +1015,105 @@ with the Linux kernel.")
"glibc-reinstate-prlimit64-fallback.patch" "glibc-reinstate-prlimit64-fallback.patch"
"glibc-2.29-supported-locales.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) (define-public (make-gcc-libc base-gcc libc)
"Return a GCC that targets LIBC." "Return a GCC that targets LIBC."
(package (inherit base-gcc) (package (inherit base-gcc)

View file

@ -2218,7 +2218,7 @@ well as many of the command line options.")
(define-public bwa-meth (define-public bwa-meth
(package (package
(name "bwa-meth") (name "bwa-meth")
(version "0.2.2") (version "0.2.3")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -2227,7 +2227,7 @@ well as many of the command line options.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"17j31i7zws5j7mhsq9x3qgkxly6mlmrgwhfq0qbflgxrmx04yaiz")))) "0c695lkrr0996zwkibl7324wg2vxmn6522sz30xv4a9gaf0lnbh3"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -2238,8 +2238,7 @@ well as many of the command line options.")
(("bwa (mem|index)" _ command) (("bwa (mem|index)" _ command)
(string-append (which "bwa") " " command)) (string-append (which "bwa") " " command))
;; There's an ill-advised check for "samtools" on PATH. ;; There's an ill-advised check for "samtools" on PATH.
(("^checkX.*") "")) (("^checkX.*") "")))))))
#t)))))
(inputs (inputs
(list bwa)) (list bwa))
(native-inputs (native-inputs
@ -10895,6 +10894,9 @@ once. This package provides tools to perform Drop-seq analyses.")
(add-before 'bootstrap 'autoreconf (add-before 'bootstrap 'autoreconf
(lambda _ (lambda _
(invoke "autoreconf" "-vif"))) (invoke "autoreconf" "-vif")))
(add-before 'configure 'set-PYTHONPATH
(lambda _
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH"))))
(add-before 'check 'set-timezone (add-before 'check 'set-timezone
;; The readr package is picky about timezones. ;; The readr package is picky about timezones.
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
@ -10969,7 +10971,10 @@ expression report comparing samples in an easily configurable manner.")
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'bootstrap 'autoreconf (add-before 'bootstrap 'autoreconf
(lambda _ (lambda _
(invoke "autoreconf" "-vif")))))) (invoke "autoreconf" "-vif")))
(add-before 'configure 'set-PYTHONPATH
(lambda _
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH")))))))
(inputs (inputs
(list grep (list grep
coreutils coreutils
@ -11055,6 +11060,9 @@ in an easily configurable manner.")
(add-before 'bootstrap 'autoreconf (add-before 'bootstrap 'autoreconf
(lambda _ (lambda _
(invoke "autoreconf" "-vif"))) (invoke "autoreconf" "-vif")))
(add-before 'configure 'set-PYTHONPATH
(lambda _
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH"))))
(add-before 'check 'set-timezone (add-before 'check 'set-timezone
;; The readr package is picky about timezones. ;; The readr package is picky about timezones.
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
@ -11123,7 +11131,10 @@ methylation and segmentation.")
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'bootstrap 'autoreconf (add-before 'bootstrap 'autoreconf
(lambda _ (lambda _
(invoke "autoreconf" "-vif")))))) (invoke "autoreconf" "-vif")))
(add-before 'configure 'set-PYTHONPATH
(lambda _
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH")))))))
(native-inputs (native-inputs
(list automake autoconf)) (list automake autoconf))
(inputs (inputs
@ -11197,7 +11208,10 @@ based methods.")
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'bootstrap 'autoreconf (add-before 'bootstrap 'autoreconf
(lambda _ (lambda _
(invoke "autoreconf" "-vif")))))) (invoke "autoreconf" "-vif")))
(add-before 'configure 'set-PYTHONPATH
(lambda _
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH")))))))
(native-inputs (native-inputs
(list automake autoconf)) (list automake autoconf))
(inputs (inputs
@ -12013,7 +12027,7 @@ implementation differs in these ways:
python-igraph python-igraph
python-joblib python-joblib
python-legacy-api-wrap python-legacy-api-wrap
python-louvain-0.6 python-louvain-0.7
python-matplotlib python-matplotlib
python-natsort python-natsort
python-networkx python-networkx
@ -15568,6 +15582,69 @@ aligner.")
;; bwa itself is licenced under GNU General Public License v3.0. ;; bwa itself is licenced under GNU General Public License v3.0.
(license license:mpl2.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 (define-public scregseg
(package (package
(name "scregseg") (name "scregseg")

View file

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

View file

@ -9,7 +9,7 @@
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org> ;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com> ;;; 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 © 2020, 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021 David Dashyan <mail@davie.li> ;;; Copyright © 2021 David Dashyan <mail@davie.li>
;;; ;;;
@ -895,3 +895,42 @@ Service (S3) protocol for object storage.")
Telemetry Transport (MQTT) publish-subscribe messaging protocol.") Telemetry Transport (MQTT) publish-subscribe messaging protocol.")
(home-page "https://github.com/awslabs/aws-c-mqtt") (home-page "https://github.com/awslabs/aws-c-mqtt")
(license license:asl2.0))) (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 Josh Marshall <joshua.r.marshall.1991@gmail.com>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org> ;;; 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> ;;; Copyright © 2021 Hugo Lecomte <hugo.lecomte@inria.fr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -90,6 +90,45 @@
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (srfi srfi-1)) #: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 (define-public pedansee
(package (package
(name "pedansee") (name "pedansee")
@ -209,27 +248,27 @@ source code editors and IDEs.")
(define-public clitest (define-public clitest
(package (package
(name "clitest") (name "clitest")
(version "0.3.0") (version "0.4.0")
(home-page "https://github.com/aureliojargas/clitest") (home-page "https://github.com/aureliojargas/clitest")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference (url home-page) (commit version)))
(url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0zw5wra9hc717srmcar1wm4i34kyj8c49ny4bb7y3nrvkjp2pdb5")))) "1p745mxiq3hgi3ywfljs5sa1psi06awwjxzw0j9c2xx1b09yqv4a"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases (list
(modify-phases %standard-phases #:phases
#~(modify-phases %standard-phases
;; This package is distributed as a single shell script and comes ;; This package is distributed as a single shell script and comes
;; without a proper build system. ;; without a proper build system.
(delete 'configure) (delete 'configure)
(delete 'build) (delete 'build)
(replace 'check (replace 'check
(lambda _ (lambda* (#:key tests? #:allow-other-keys)
(when tests?
(substitute* "test.md" (substitute* "test.md"
;; One test looks for an error from grep in the form "grep: foo", ;; One test looks for an error from grep in the form "grep: foo",
;; but our grep returns the absolute file name on errors. Adjust ;; but our grep returns the absolute file name on errors. Adjust
@ -238,16 +277,17 @@ source code editors and IDEs.")
"sed 's/.*e*grep: .*/")) "sed 's/.*e*grep: .*/"))
(setenv "HOME" "/tmp") (setenv "HOME" "/tmp")
(invoke "./clitest" "test.md"))) (invoke "./clitest" "test.md"))))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda _
(let ((out (assoc-ref outputs "out"))) (install-file "clitest" (string-append #$output "/bin"))
(install-file "clitest" (string-append out "/bin"))
(install-file "README.md" (install-file "README.md"
(string-append out "/share/doc/clitest-" ,version)) (string-append #$output "/share/doc/clitest-"
#t)))))) #$(package-version this-package))))))))
(native-inputs (native-inputs
(list perl)) ;for tests (list perl)) ;for tests
(inputs
(list bash-minimal))
(synopsis "Command line test tool") (synopsis "Command line test tool")
(description (description
"@command{clitest} is a portable shell script that performs automatic "@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 (define-public catch-framework2
(package (package
(name "catch2") (name "catch2")
(version "2.13.2") (version "2.13.8")
(home-page "https://github.com/catchorg/Catch2") (home-page "https://github.com/catchorg/Catch2")
(source (origin (source (origin
(method git-fetch) (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)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"100r0kmra8jmra2hv92lzvwcmphpaiccwvq3lpdsa5b7hailhach")))) "18a6d7rcb6ilhxd5dff32jkfdf2ik58pbywrv04ras70217kdq4c"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(inputs (inputs
(list python-wrapper)) (list python-wrapper))
@ -565,15 +605,16 @@ and it supports a very flexible form of test discovery.")
(define-public doctest (define-public doctest
(package (package
(name "doctest") (name "doctest")
(version "2.4.6") (version "2.4.8")
(home-page "https://github.com/onqtam/doctest") (home-page "https://github.com/onqtam/doctest")
(source (origin (source (origin
(method git-fetch) (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)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"14m3q6d96zg6d99x1152jkly50gdjrn5ylrbhax53pfgfzzc5yqx")))) "057wdkv3gcz42mh1j284sgvm16i5fk1f9b1plgvavca70q4p52gz"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(synopsis "C++ test framework") (synopsis "C++ test framework")
(description (description
@ -2807,7 +2848,8 @@ portable to just about any platform.")
;; indefinitely. See README.packagers for more information. ;; indefinitely. See README.packagers for more information.
;; There are specific instructions to not enable more flags ;; There are specific instructions to not enable more flags
;; than absolutely needed. ;; than absolutely needed.
,(if (target-ppc64le?) ,(if (or (target-ppc64le?)
(target-riscv64?))
`(setenv "FAKETIME_COMPILE_CFLAGS" `(setenv "FAKETIME_COMPILE_CFLAGS"
"-DFORCE_MONOTONIC_FIX -DFORCE_PTHREAD_NONVER") "-DFORCE_MONOTONIC_FIX -DFORCE_PTHREAD_NONVER")
`(setenv "FAKETIME_COMPILE_CFLAGS" `(setenv "FAKETIME_COMPILE_CFLAGS"

View file

@ -82,9 +82,6 @@
"base/third_party/symbolize" ;BSD-3 "base/third_party/symbolize" ;BSD-3
"base/third_party/xdg_mime" ;LGPL2.0+ or Academic 2.0 "base/third_party/xdg_mime" ;LGPL2.0+ or Academic 2.0
"base/third_party/xdg_user_dirs" ;Expat "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+ "chrome/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
"courgette/third_party/bsdiff" ;BSD-2, BSD protection license "courgette/third_party/bsdiff" ;BSD-2, BSD protection license
"courgette/third_party/divsufsort" ;Expat "courgette/third_party/divsufsort" ;Expat
@ -170,8 +167,6 @@
"third_party/iccjpeg" ;IJG "third_party/iccjpeg" ;IJG
"third_party/inspector_protocol" ;BSD-3 "third_party/inspector_protocol" ;BSD-3
"third_party/jinja2" ;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/jstemplate" ;ASL2.0
"third_party/khronos" ;Expat, SGI "third_party/khronos" ;Expat, SGI
"third_party/leveldatabase" ;BSD-3 "third_party/leveldatabase" ;BSD-3
@ -237,9 +232,6 @@
"third_party/protobuf/third_party/six" ;Expat "third_party/protobuf/third_party/six" ;Expat
"third_party/pyjson5" ;ASL2.0 "third_party/pyjson5" ;ASL2.0
"third_party/qcms" ;Expat "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/rnnoise" ;BSD-3
"third_party/ruy" ;ASL2.0 "third_party/ruy" ;ASL2.0
"third_party/s2cellid" ;ASL2.0 "third_party/s2cellid" ;ASL2.0
@ -318,13 +310,19 @@
;; run the Blink performance tests, just remove everything to save ~70MiB. ;; run the Blink performance tests, just remove everything to save ~70MiB.
'("third_party/blink/perf_tests")) '("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 (origin
(method url-fetch) (method git-fetch)
(uri (string-append "https://raw.githubusercontent.com/archlinux" (uri (git-reference (url "https://github.com/Eloston/ungoogled-chromium")
"/svntogit-packages/" revision "/trunk/" name)) (commit %ungoogled-revision)))
(file-name (string-append "ungoogled-chromium-" name)) (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
(sha256 (base32 hash)))) (sha256
(base32
"0a8y9yz6xyh025gk3dr0ndrdwmrslhd1ph2f8nivmqk61j7c2g8h"))))
(define* (debian-patch name hash #:optional (revision %debian-revision)) (define* (debian-patch name hash #:optional (revision %debian-revision))
(origin (origin
@ -336,33 +334,16 @@
(string-append "ungoogled-chromium-" category "-" name)))) (string-append "ungoogled-chromium-" category "-" name))))
(sha256 (base32 hash)))) (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 (define %debian-patches
(list (debian-patch "fixes/nomerge.patch" (list (debian-patch "fixes/nomerge.patch"
"0lybs2b5gk08j8cr6vjrs9d3drd7qfw013z2r0y00by8dnpm74i3") "0lybs2b5gk08j8cr6vjrs9d3drd7qfw013z2r0y00by8dnpm74i3")
(debian-patch "system/jsoncpp.patch"
"16lvhci10hz0q9axc6p921b95a76kbzcla5cl81czxzfwnynr1w5")
(debian-patch "system/zlib.patch" (debian-patch "system/zlib.patch"
"0j313bd3q8qc065j60x97dckrfgbwl4qxc8jhz33iihvv4lwziwv") "0j313bd3q8qc065j60x97dckrfgbwl4qxc8jhz33iihvv4lwziwv")
(debian-patch "system/openjpeg.patch" (debian-patch "system/openjpeg.patch"
"048405xh84pys0kky81vlqhaxjyxvcql4py217z01qxiv991zxaj"))) "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 (define %guix-patches
(list (local-file (list (local-file
(assume-valid-file-name (assume-valid-file-name
@ -370,9 +351,6 @@
(local-file (local-file
(assume-valid-file-name (assume-valid-file-name
(search-patch "ungoogled-chromium-RUNPATH.patch"))) (search-patch "ungoogled-chromium-RUNPATH.patch")))
(local-file
(assume-valid-file-name
(search-patch "ungoogled-chromium-accelerated-video-decode.patch")))
(local-file (local-file
(assume-valid-file-name (assume-valid-file-name
(search-patch "ungoogled-chromium-ffmpeg-compat.patch"))) (search-patch "ungoogled-chromium-ffmpeg-compat.patch")))
@ -406,13 +384,6 @@
patch "--no-backup-if-mismatch")) patch "--no-backup-if-mismatch"))
(append '#+%debian-patches '#+%guix-patches)) (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 (with-directory-excursion #+%ungoogled-origin
(format #t "Ungooglifying...~%") (format #t "Ungooglifying...~%")
(force-output) (force-output)
@ -449,7 +420,7 @@
"--system-libraries" "ffmpeg" "flac" "fontconfig" "--system-libraries" "ffmpeg" "flac" "fontconfig"
"freetype" "harfbuzz-ng" "icu" "libdrm" "libevent" "freetype" "harfbuzz-ng" "icu" "libdrm" "libevent"
"libjpeg" "libpng" "libwebp" "libxml" "libxslt" "libjpeg" "libpng" "libwebp" "libxml" "libxslt"
"openh264" "opus" "zlib"))))) "openh264" "opus" "re2" "zlib")))))
(define opus+custom (define opus+custom
(package/inherit opus (package/inherit opus
@ -480,7 +451,7 @@
%chromium-version ".tar.xz")) %chromium-version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1fpc07zvashaqqalwn7wxnswxclrxvhjrxy1rzr6gcq5awhaw6y9")) "0wa1jhsw7qrym4x8wxmdvdvbilb8jdv0mizzib2342l61zi6cwn8"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (force ungoogled-chromium-snippet)))) (snippet (force ungoogled-chromium-snippet))))
(build-system gnu-build-system) (build-system gnu-build-system)
@ -501,13 +472,11 @@
;; a developer build. ;; a developer build.
"is_official_build=true" "is_official_build=true"
"clang_use_chrome_plugins=false" "clang_use_chrome_plugins=false"
"is_cfi=false" ;requires ThinLTO "use_custom_libcxx=false"
"use_thin_lto=false" ;XXX lld segfaults
"chrome_pgo_phase=0" "chrome_pgo_phase=0"
"use_sysroot=false" "use_sysroot=false"
"goma_dir=\"\"" "goma_dir=\"\""
"enable_nacl=false" "enable_nacl=false"
"enable_nacl_nonsfi=false"
"use_unofficial_version_number=false" "use_unofficial_version_number=false"
"treat_warnings_as_errors=false" "treat_warnings_as_errors=false"
"use_official_google_api_keys=false" "use_official_google_api_keys=false"
@ -577,7 +546,11 @@
"rtc_use_pipewire=true" "rtc_use_pipewire=true"
"rtc_link_pipewire=true" "rtc_link_pipewire=true"
;; Don't use bundled sources. ;; 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" "rtc_build_libevent=false"
;; XXX: Use the bundled libvpx for WebRTC because unbundling ;; XXX: Use the bundled libvpx for WebRTC because unbundling
;; currently fails (see above), and the versions must match. ;; currently fails (see above), and the versions must match.
@ -623,6 +596,15 @@
(find-files (string-append "third_party/webrtc/modules" (find-files (string-append "third_party/webrtc/modules"
"/audio_coding/codecs/opus"))) "/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/...". ;; Many files try to include ICU headers from "third_party/icu/...".
;; Remove the "third_party/" prefix to use system headers instead. ;; Remove the "third_party/" prefix to use system headers instead.
(substitute* (find-files "chrome" "\\.cc$") (substitute* (find-files "chrome" "\\.cc$")
@ -668,7 +650,6 @@
(substitute* (substitute*
'("ui/ozone/platform/x11/gl_ozone_glx.cc" '("ui/ozone/platform/x11/gl_ozone_glx.cc"
"ui/ozone/common/egl_util.cc" "ui/ozone/common/egl_util.cc"
"ui/gl/init/gl_initializer_linux_x11.cc"
"third_party/angle/src/libANGLE/renderer/gl/glx\ "third_party/angle/src/libANGLE/renderer/gl/glx\
/FunctionsGLX.cpp") /FunctionsGLX.cpp")
(("libGL\\.so\\.1") (("libGL\\.so\\.1")
@ -683,18 +664,6 @@
"include/c++")) "include/c++"))
(node (search-input-file (or native-inputs inputs) (node (search-input-file (or native-inputs inputs)
"/bin/node"))) "/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. ;; Define the GN toolchain.
(setenv "AR" "llvm-ar") (setenv "NM" "llvm-nm") (setenv "AR" "llvm-ar") (setenv "NM" "llvm-nm")
(setenv "CC" "clang") (setenv "CXX" "clang++") (setenv "CC" "clang") (setenv "CXX" "clang++")
@ -766,7 +735,9 @@
(resources (string-append lib "/resources")) (resources (string-append lib "/resources"))
(preferences (preferences
;; This file contains defaults for new user profiles. ;; 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+")) (gtk+ (assoc-ref inputs "gtk+"))
(xdg-utils (assoc-ref inputs "xdg-utils"))) (xdg-utils (assoc-ref inputs "xdg-utils")))
@ -846,6 +817,7 @@
gtk+ gtk+
harfbuzz-3.0 harfbuzz-3.0
icu4c icu4c
jsoncpp
lcms lcms
libevent libevent
libffi libffi
@ -879,6 +851,7 @@
pciutils pciutils
pipewire-0.3 pipewire-0.3
pulseaudio pulseaudio
re2
snappy snappy
speech-dispatcher speech-dispatcher
eudev eudev

View file

@ -332,8 +332,14 @@ is on par with Java implementations, e.g., Apache commons-codec.")
(build-system clojure-build-system) (build-system clojure-build-system)
(arguments (arguments
'(#:source-dirs '("src/main/clojure") '(#:source-dirs '("src/main/clojure")
#:test-dirs '("src/test/clojure") #:test-dirs '("src/test/clojure" "src/test/resources")
#:doc-dirs '())) #: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)) (propagated-inputs (list clojure-data-codec))
(synopsis "Clojure library for reading and writing XML data") (synopsis "Clojure library for reading and writing XML data")
(description "@code{data.xml} is a Clojure library for reading and writing (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 © 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.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 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2018, 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2019, 2020, 2021 Marius Bakke <marius@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 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -1264,7 +1265,7 @@ ac_cv_c_float_format='IEEE (little-endian)'
(install-file "gawk" bin) (install-file "gawk" bin)
(symlink "gawk" (string-append bin "/awk")))))))))) (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 ;; 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 ;; using gcc-2.95.3. Newer versions (2.3.x, 2.6, 2.1x) seem to need a newer
;; gcc. ;; gcc.
@ -1358,7 +1359,7 @@ ac_cv_c_float_format='IEEE (little-endian)'
"SHELL = " shell " "SHELL = " shell "
BASH = "))))))))))) BASH = ")))))))))))
(define gcc-mesboot0 (define-public gcc-mesboot0
(package (package
(inherit gcc-core-mesboot0) (inherit gcc-core-mesboot0)
(name "gcc-mesboot0") (name "gcc-mesboot0")
@ -1402,6 +1403,63 @@ ac_cv_c_float_format='IEEE (little-endian)'
,(string-append "LIBGCC2_INCLUDES=-I " gcc "/include") ,(string-append "LIBGCC2_INCLUDES=-I " gcc "/include")
"LANGUAGES=c"))))))) "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) (define (%boot-mesboot0-inputs)
`(("gcc" ,gcc-mesboot0) `(("gcc" ,gcc-mesboot0)
("kernel-headers" ,%bootstrap-linux-libre-headers) ("kernel-headers" ,%bootstrap-linux-libre-headers)
@ -1992,7 +2050,7 @@ ac_cv_c_float_format='IEEE (little-endian)'
(lambda _ (lambda _
(invoke "./hello")))))))) (invoke "./hello"))))))))
(define binutils-mesboot (define-public binutils-mesboot
(package (package
(inherit binutils) (inherit binutils)
(name "binutils-mesboot") (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") ("libc:static" ,glibc-final "static")
("locales" ,glibc-utf8-locales-final)))) ("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 (define-public canonical-package
(let ((name->package (fold (lambda (input result) (let ((name->package (fold (lambda (input result)
(match input (match input

View file

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

View file

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

View file

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

View file

@ -11,10 +11,10 @@
;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net> ;;; 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 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org> ;;; 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 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Milkey Mouse <milkeymouse@meme.institute> ;;; Copyright © 2020 Milkey Mouse <milkeymouse@meme.institute>
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
@ -48,6 +48,7 @@
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix modules) #:use-module (guix modules)
@ -73,13 +74,15 @@
#:use-module (gnu packages onc-rpc) #:use-module (gnu packages onc-rpc)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-check)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt) #:use-module (gnu packages popt)
#:use-module (gnu packages pretty-print) #:use-module (gnu packages pretty-print)
#:use-module (gnu packages pulseaudio) #:use-module (gnu packages pulseaudio)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages web) #:use-module (gnu packages web)
#:use-module (gnu packages xml)) #:use-module (gnu packages xml)
#:use-module (ice-9 match))
(define-public argagg (define-public argagg
(let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748") (revision "0")) (let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748") (revision "0"))
@ -452,35 +455,32 @@ functions, class methods, and stl containers.
(license license:bsd-3))) (license license:bsd-3)))
(define-public fifo-map (define-public fifo-map
(let* ((commit "0dfbf5dacbb15a32c43f912a7e66a54aae39d0f9")
(revision "0")
(version (git-version "1.1.1" revision commit)))
(package (package
(name "fifo-map") (name "fifo-map")
(version version) (version "1.0.0")
(home-page "https://github.com/nlohmann/fifo_map") (home-page "https://github.com/nlohmann/fifo_map")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url home-page) (url home-page)
(commit commit))) (commit (string-append "v" version))))
(sha256 (sha256
(base32 (base32
"0pi77b75kp0l7z454ihcd14nzpi3nc5m4nyjbsgy5f9bw3676196")) "0y59fk6ycrgjln9liwcja3l5j1vxpa5i671bynpbsjlyq5f2560q"))
(patches (search-patches "fifo-map-remove-catch.hpp.patch" (patches (search-patches "fifo-map-remove-catch.hpp.patch"
"fifo-map-fix-flags-for-gcc.patch")) "fifo-map-fix-flags-for-gcc.patch"))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet '(delete-file-recursively "./test/thirdparty")))) (snippet '(delete-file-recursively "./test/thirdparty"))))
(native-inputs (inputs
(list catch-framework2-1)) (list catch-framework2-1))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:phases '(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'check (replace 'check
(lambda _ (lambda* (#:key tests? #:allow-other-keys)
(invoke "./unit"))) (when tests? (invoke "./unit"))))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (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 (description "Fifo_map is a C++ header only library for associative
container which uses the order in which keys were inserted to the container container which uses the order in which keys were inserted to the container
as ordering relation.") as ordering relation.")
(license license:expat)))) (license license:expat)))
(define-public json-modern-cxx (define-public json-modern-cxx
(package (package
(name "json-modern-cxx") (name "json-modern-cxx")
(version "3.9.1") (version "3.10.5")
(home-page "https://github.com/nlohmann/json") (home-page "https://github.com/nlohmann/json")
(source (source
(origin (origin
@ -504,7 +504,7 @@ as ordering relation.")
(uri (git-reference (url home-page) (uri (git-reference (url home-page)
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(sha256 (sha256
(base32 "0ar4mzp53lskxw3vdzw07f47njcshl3lwid9jfq6l7yx6ds2nyjc")) (base32 "1f9mi45ilwjc2w92grjc53sw038840bjpn8yjf6wc6bxs2nijfqd"))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
@ -513,7 +513,7 @@ as ordering relation.")
;; is a wrapper library added by this package. ;; is a wrapper library added by this package.
(install-file "./test/thirdparty/doctest/doctest_compatibility.h" "/tmp") (install-file "./test/thirdparty/doctest/doctest_compatibility.h" "/tmp")
(for-each delete-file-recursively (for-each delete-file-recursively
'("./third_party" "./test/thirdparty" "./benchmarks/thirdparty")) '("./third_party" "./test/thirdparty"))
(install-file "/tmp/doctest_compatibility.h" "./test/thirdparty/doctest") (install-file "/tmp/doctest_compatibility.h" "./test/thirdparty/doctest")
;; Adjust for the unbundled fifo_map and doctest. ;; Adjust for the unbundled fifo_map and doctest.
@ -525,32 +525,28 @@ as ordering relation.")
(substitute* files (substitute* files
(("#include ?\"(fifo_map.hpp)\"" all fifo-map-hpp) (("#include ?\"(fifo_map.hpp)\"" all fifo-map-hpp)
(string-append (string-append
"#include <fifo_map/" fifo-map-hpp ">"))))) "#include <fifo_map/" fifo-map-hpp ">")))))))))
#t))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:configure-flags '(#:configure-flags
(list "-DJSON_MultipleHeaders=ON" ; For json_fwd.hpp. (list "-DJSON_MultipleHeaders=ON" ; For json_fwd.hpp.
(string-append "-DJSON_TestDataDirectory=" (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 #:phases (modify-phases %standard-phases
;; XXX: When tests are enabled, the install phase will cause (replace 'check
;; a needless rebuild without the given configure flags, (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
;; 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)
(if tests? (if tests?
;; Some tests need git and a full checkout, skip those. ;; Some tests need git and a full checkout, skip those.
(invoke "ctest" "-LE" "git_required") (invoke "ctest" "-LE" "git_required"
(format #t "test suite not run~%")) "-j" (if parallel-tests?
#t))))) (number->string (parallel-job-count))
"1"))
(format #t "test suite not run~%")))))))
(native-inputs (native-inputs
`(("amalgamate" ,amalgamate) (list amalgamate
("doctest" ,doctest) (let ((version "3.0.0"))
("json_test_data"
,(let ((version "3.0.0"))
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -559,9 +555,9 @@ as ordering relation.")
(file-name (git-file-name "json_test_data" version)) (file-name (git-file-name "json_test_data" version))
(sha256 (sha256
(base32 (base32
"0nzsjzlvk14dazwh7k2jb1dinb0pv9jbx5jsyn264wvva0y7daiv"))))))) "0nzsjzlvk14dazwh7k2jb1dinb0pv9jbx5jsyn264wvva0y7daiv"))))))
(inputs (inputs
(list fifo-map)) (list doctest fifo-map))
(synopsis "JSON parser and printer library for C++") (synopsis "JSON parser and printer library for C++")
(description "JSON for Modern C++ is a C++ JSON library that provides (description "JSON for Modern C++ is a C++ JSON library that provides
intuitive syntax and trivial integration.") intuitive syntax and trivial integration.")
@ -771,7 +767,7 @@ library.")
(define-public cpplint (define-public cpplint
(package (package
(name "cpplint") (name "cpplint")
(version "1.4.5") (version "1.5.5")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -781,19 +777,49 @@ library.")
(url "https://github.com/cpplint/cpplint") (url "https://github.com/cpplint/cpplint")
(commit version))) (commit version)))
(sha256 (sha256
(base32 "1yzcxqx0186sh80p0ydl9z0ld51fn2cdpz9hmhrp15j53g9ira7c")) (base32 "13l86aq0h1jga949k79k9x3hw2xqchjc162sclg2f99vz98zcz15"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(arguments (arguments
`(#:phases (list #:modules `((srfi srfi-1)
(modify-phases %standard-phases (srfi srfi-26)
(add-before 'check 'use-later-pytest ,@%python-build-system-modules)
#:phases
#~(modify-phases (@ (guix build python-build-system) %standard-phases)
(add-before 'wrap 'reduce-GUIX_PYTHONPATH
(lambda _ (lambda _
(substitute* "test-requirements" ;; Hide the transitive native inputs from GUIX_PYTHONPATH
(("pytest.*") "pytest\n")) ;; to prevent them from ending up in the run-time closure.
#t))))) ;; 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) (build-system python-build-system)
(native-inputs (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") (home-page "https://github.com/cpplint/cpplint")
(synopsis "Static code checker for C++") (synopsis "Static code checker for C++")
(description "@code{cpplint} is a command-line tool to check C/C++ files (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 (define-public pegtl
(package (package
(name "pegtl") (name "pegtl")
(version "2.8.3") (version "3.2.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -971,7 +997,7 @@ Google's C++ code base.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"17crgjfdx55imi2dqnz6xpvsxq07390yfgkz5nd2g77ydkvq9db3")))) "1viwrlsw5nwvbv8d88mf5r77syapgxx3xm1kv5kmn6drw8jgsmzf"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(home-page "https://github.com/taocpp/PEGTL") (home-page "https://github.com/taocpp/PEGTL")
(synopsis "Parsing Expression Grammar template library") (synopsis "Parsing Expression Grammar template library")
@ -1592,3 +1618,102 @@ microparallel algorithms to implement a strict JSON parser with UTF-8
validation.") validation.")
(home-page "https://github.com/simdjson/simdjson") (home-page "https://github.com/simdjson/simdjson")
(license license:asl2.0))) (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 licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
@ -187,14 +188,14 @@ etc.")
(define-public r-datawizard (define-public r-datawizard
(package (package
(name "r-datawizard") (name "r-datawizard")
(version "0.2.2") (version "0.2.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "datawizard" version)) (uri (cran-uri "datawizard" version))
(sha256 (sha256
(base32 (base32
"0sd0blrczf9qz5kd0jg112fag2w401kkbw1gp9wi5pgffgwp6va3")))) "0hcnwz42zy9hp32brga31jwk34bz063myqjp2wfxsqm4sqrkv2rx"))))
(properties `((upstream-name . "datawizard"))) (properties `((upstream-name . "datawizard")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -3043,14 +3044,14 @@ colors are provided.")
(define-public r-glue (define-public r-glue
(package (package
(name "r-glue") (name "r-glue")
(version "1.6.0") (version "1.6.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "glue" version)) (uri (cran-uri "glue" version))
(sha256 (sha256
(base32 (base32
"0f23dgnc7rv81vhmdhmiwk666mqwb602hxzai1hssyn4y9zg7gkp")))) "1nvqm4fmxyszz9b2y0gjiwbvwssdqj9jflcz00b4487i8jajz31i"))))
(build-system r-build-system) (build-system r-build-system)
;; knitr depends on glue, so we can't add knitr here to build the ;; knitr depends on glue, so we can't add knitr here to build the
;; vignettes. ;; vignettes.
@ -3311,14 +3312,14 @@ and Francois (2011, JSS), and the book by Eddelbuettel (2013, Springer); see
(define-public r-rcppthread (define-public r-rcppthread
(package (package
(name "r-rcppthread") (name "r-rcppthread")
(version "1.0.0") (version "2.0.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "RcppThread" version)) (uri (cran-uri "RcppThread" version))
(sha256 (sha256
(base32 (base32
"1xfcxrny779kgknlvnc4j02ifprnakndnkhx8bhy50d39vp4hjjl")))) "1hcxdk9mhsnrgg2bp7ls165abwb7b5grgh1gvf2i7sqrf9ggwa09"))))
(properties `((upstream-name . "RcppThread"))) (properties `((upstream-name . "RcppThread")))
(build-system r-build-system) (build-system r-build-system)
(home-page (home-page
@ -3997,6 +3998,54 @@ T distribution. There is only one exported function, @code{e_trunct},
which should be seen for details.") which should be seen for details.")
(license license:expat))) (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 (define-public r-extremes
(package (package
(name "r-extremes") (name "r-extremes")
@ -4283,14 +4332,14 @@ data). Weighted versions of MLE, MME and QME are available.")
(define-public r-energy (define-public r-energy
(package (package
(name "r-energy") (name "r-energy")
(version "1.7-8") (version "1.7-9")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "energy" version)) (uri (cran-uri "energy" version))
(sha256 (sha256
(base32 (base32
"12a7gy681aq3l55iys044cs6sn1s2l5qihghpdl01cvv0ggfh26y")))) "1ndssfi0hbnsm5jwrns7m63ppxm221hd6gk0b0wa1a7mk7ny1l38"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
(list r-boot r-gsl r-rcpp)) (list r-boot r-gsl r-rcpp))
@ -4838,14 +4887,14 @@ by base R methods related to model fitting.")
(define-public r-broom (define-public r-broom
(package (package
(name "r-broom") (name "r-broom")
(version "0.7.11") (version "0.7.12")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "broom" version)) (uri (cran-uri "broom" version))
(sha256 (sha256
(base32 (base32
"069fp8lscw59nmsm658w0164cpgfa36xx09s9j7jxisscg99jfcy")))) "1nbv4a4s8548h2q226xmhyp42higayh95yvllh1rcs264lmw3yh4"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
(list r-backports (list r-backports
@ -4966,6 +5015,31 @@ avoid overlapping text labels. Labels repel away from each other and away
from the data points.") from the data points.")
(license license:gpl3))) (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 (define-public r-corrplot
(package (package
(name "r-corrplot") (name "r-corrplot")
@ -5037,6 +5111,25 @@ algorithm. The interface of @code{ucminf} is designed for easy interchange
with the package @code{optim}.") with the package @code{optim}.")
(license license:gpl2+))) (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 (define-public r-useful
(package (package
(name "r-useful") (name "r-useful")
@ -5937,20 +6030,21 @@ to variables on the left-hand side of the assignment.")
(define-public r-pillar (define-public r-pillar
(package (package
(name "r-pillar") (name "r-pillar")
(version "1.6.4") (version "1.6.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "pillar" version)) (uri (cran-uri "pillar" version))
(sha256 (sha256
(base32 (base32
"17m13rzgwdddwa0n3gpmax6wmfaphbg71l13ffhw5vnxf6i94fh3")))) "1nqv86zb51jgd6jbhgnyq6j53dzsjx7gwaapndfd3yvp0sxg3yr2"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
(list r-cli (list r-cli
r-crayon r-crayon
r-ellipsis r-ellipsis
r-fansi r-fansi
r-glue
r-lifecycle r-lifecycle
r-rlang r-rlang
r-utf8 r-utf8
@ -7066,14 +7160,14 @@ environment within Shiny.")
(define-public r-randomizr (define-public r-randomizr
(package (package
(name "r-randomizr") (name "r-randomizr")
(version "0.20.0") (version "0.22.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "randomizr" version)) (uri (cran-uri "randomizr" version))
(sha256 (sha256
(base32 (base32
"0dljyfldnardaps3fq6vi5wcs9x6qfaq5apapa78c51lnaa6fn9h")))) "1grm0h3xkb0pdbbv0gd531g1kn6njp0gcy5fh153rrmajxgd8hhw"))))
(properties `((upstream-name . "randomizr"))) (properties `((upstream-name . "randomizr")))
(build-system r-build-system) (build-system r-build-system)
(native-inputs (native-inputs
@ -8041,14 +8135,14 @@ Python's @url{https://github.com/ActiveState/appdirs,Appdirs} to R.")
(define-public r-rastervis (define-public r-rastervis
(package (package
(name "r-rastervis") (name "r-rastervis")
(version "0.51.1") (version "0.51.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "rasterVis" version)) (uri (cran-uri "rasterVis" version))
(sha256 (sha256
(base32 (base32
"1mg11njzajx9az6xjghjl2sna6wzs85ga8fhy9w43l2n8icsfbr2")))) "0kgg6cm7xjqya2d46w0i1i1wjpkb8f99lyqy7rgwa7l9xmwzj5n1"))))
(properties `((upstream-name . "rasterVis"))) (properties `((upstream-name . "rasterVis")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -8098,14 +8192,14 @@ those searches and pull data into their R sessions.")
(define-public r-renv (define-public r-renv
(package (package
(name "r-renv") (name "r-renv")
(version "0.15.1") (version "0.15.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "renv" version)) (uri (cran-uri "renv" version))
(sha256 (sha256
(base32 (base32
"0nwvdzwyjvqlvkwp1yhhvqm8b9pwimwng99s0m0j63zm9bgwis1n")))) "1nv5hz40cbvdbc2kkr2q2xqnpkgkmp47nlfbr7z57mpn579zyznh"))))
(properties `((upstream-name . "renv"))) (properties `((upstream-name . "renv")))
(build-system r-build-system) (build-system r-build-system)
(native-inputs (native-inputs
@ -8215,14 +8309,14 @@ always locate the files relative to your project root.")
(define-public r-reticulate (define-public r-reticulate
(package (package
(name "r-reticulate") (name "r-reticulate")
(version "1.23") (version "1.24")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "reticulate" version)) (uri (cran-uri "reticulate" version))
(sha256 (sha256
(base32 (base32
"1mindiw7k7pa33hpwrgq0g5808c8qs9hl0351n8z2w9wyczlm87y")))) "1k0nv43fa9lx44pamxpprnvvmsp15adn5z6hg9siyq0n94hca65r"))))
(build-system r-build-system) (build-system r-build-system)
(inputs (list python)) (inputs (list python))
(propagated-inputs (propagated-inputs
@ -8264,6 +8358,66 @@ Python to R they are converted back to R types.")
file.") file.")
(license license:gpl2+))) (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 (define-public r-ggseqlogo
(package (package
(name "r-ggseqlogo") (name "r-ggseqlogo")
@ -9674,14 +9828,14 @@ visualization and candidate genes around SNPs.")
(define-public r-precrec (define-public r-precrec
(package (package
(name "r-precrec") (name "r-precrec")
(version "0.12.7") (version "0.12.8")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "precrec" version)) (uri (cran-uri "precrec" version))
(sha256 (sha256
(base32 (base32
"0vwzaqnh9ymrm52dd79bihwqprnygz0d71ay8fv51hdw0zg6saya")))) "0kwn902z32qcnkffjm6dqnaxagx31xjdcak50clbgrway2pcdjrm"))))
(properties `((upstream-name . "precrec"))) (properties `((upstream-name . "precrec")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -10199,14 +10353,14 @@ used to teach mathematics, statistics, computation and modeling.")
(define-public r-raster (define-public r-raster
(package (package
(name "r-raster") (name "r-raster")
(version "3.5-11") (version "3.5-15")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "raster" version)) (uri (cran-uri "raster" version))
(sha256 (sha256
(base32 (base32
"18v1vflq15915dwa3caf5sp1d1kp8w6plpaqk3z6a3164lwq5i76")))) "11fnznymwavpph733dayklhcx4phpjgrijfxlaszi122sg2x7ir9"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
(list r-rcpp r-sp r-terra)) (list r-rcpp r-sp r-terra))
@ -11553,14 +11707,14 @@ results using @code{ggplot2}.")
(define-public r-effectsize (define-public r-effectsize
(package (package
(name "r-effectsize") (name "r-effectsize")
(version "0.6.0") (version "0.6.0.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "effectsize" version)) (uri (cran-uri "effectsize" version))
(sha256 (sha256
(base32 (base32
"0xhibc868sngkc8v9g385vlhqdqxzy6b4mj1jihjy6wvk9jw266s")))) "1rhpbhyrv0avinm6dz6v2qw4xxdl9m1wknq1dv2flfxgcz0k9qiz"))))
(properties `((upstream-name . "effectsize"))) (properties `((upstream-name . "effectsize")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -12788,13 +12942,13 @@ Anderson-Darling Distribution\".")
(define-public r-admisc (define-public r-admisc
(package (package
(name "r-admisc") (name "r-admisc")
(version "0.22") (version "0.23")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "admisc" version)) (uri (cran-uri "admisc" version))
(sha256 (sha256
(base32 "1jwz9z3brq4lbnqrkxx40vrn47rknkkj4xfv2gi8kmf1mzc5aqcd")))) (base32 "0md0sygwdglyw7ss0dw6h235n70vpf25npp1q5b5nmb4db0fq80c"))))
(properties `((upstream-name . "admisc"))) (properties `((upstream-name . "admisc")))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://github.com/dusadrian/admisc") (home-page "https://github.com/dusadrian/admisc")
@ -12893,14 +13047,14 @@ redundant complex conjugate when the input is real data.")
(define-public r-tiff (define-public r-tiff
(package (package
(name "r-tiff") (name "r-tiff")
(version "0.1-10") (version "0.1-11")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "tiff" version)) (uri (cran-uri "tiff" version))
(sha256 (sha256
(base32 (base32
"1zha6bzb1rmfl6n2xjkygs9wfi3ah9cjr7a6jzk4zqc5kvl58lak")))) "0xgc7vyndxxahfhc2qqzmwi56bnfyl0pn72l820jz5sd24aymhxq"))))
(build-system r-build-system) (build-system r-build-system)
(inputs (inputs
(list libtiff libjpeg-turbo zlib)) (list libtiff libjpeg-turbo zlib))
@ -15226,6 +15380,38 @@ several common set, element and attribute related tasks.")
effects from the jQuery UI library.") effects from the jQuery UI library.")
(license license:expat))) (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 (define-public r-outliers
(package (package
(name "r-outliers") (name "r-outliers")
@ -15641,14 +15827,14 @@ probabilities from a standard bivariate normal CDF.")
(define-public r-lavaan (define-public r-lavaan
(package (package
(name "r-lavaan") (name "r-lavaan")
(version "0.6-9") (version "0.6-10")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "lavaan" version)) (uri (cran-uri "lavaan" version))
(sha256 (sha256
(base32 (base32
"12hhbwxaiprs9bmclwhhdpv42h4mrl4gj92zq3wk8rb883mw816l")))) "0dwc8rgrzyrrb0ivx297ln2qbrsxbpn6mdf7laiffhspdpml8sad"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
(list r-mass r-mnormt r-numderiv r-pbivnorm)) (list r-mass r-mnormt r-numderiv r-pbivnorm))
@ -16522,13 +16708,13 @@ datum transformations.")
(define-public r-spdep (define-public r-spdep
(package (package
(name "r-spdep") (name "r-spdep")
(version "1.2-1") (version "1.2-2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "spdep" version)) (uri (cran-uri "spdep" version))
(sha256 (sha256
(base32 (base32
"1ya39bgmzagrk4k51zd96l4xvnbc2vzmvd0z9qprdfvg9s6pik78")) "08sya6vy7s87h337g2fanncw6xx9y9z8nxpqalbdxv9vpsc6zx4l"))
(snippet (snippet
'(for-each delete-file '("inst/doc/CO69.html" '(for-each delete-file '("inst/doc/CO69.html"
"inst/doc/CO69.R" "inst/doc/CO69.R"
@ -19648,14 +19834,14 @@ emphasize hidden group structures in networks or focus on specific nodes.")
(define-public r-terra (define-public r-terra
(package (package
(name "r-terra") (name "r-terra")
(version "1.5-12") (version "1.5-17")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "terra" version)) (uri (cran-uri "terra" version))
(sha256 (sha256
(base32 (base32
"06fcjyzllw6dnzq0a7dc73v7rlpf250dyw41q0vr08y3x17c2p46")))) "1rz6dd78i3aq82vl9q4fw17y5cxj2pcmra5mlhb0ca1df78mgb77"))))
(properties `((upstream-name . "terra"))) (properties `((upstream-name . "terra")))
(build-system r-build-system) (build-system r-build-system)
(inputs (inputs
@ -22294,14 +22480,14 @@ API; see the package vignette for details.")
(define-public r-actuar (define-public r-actuar
(package (package
(name "r-actuar") (name "r-actuar")
(version "3.2-0") (version "3.2-1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "actuar" version)) (uri (cran-uri "actuar" version))
(sha256 (sha256
(base32 (base32
"015brjjgmkwmjajdjdw8gs02jrd96if425pk9a97d499hzsq3xds")))) "1avqgkls4xvwgfr6j7g2f7p474rlpi82q5aksw8nzf8wcyp7592f"))))
(properties `((upstream-name . "actuar"))) (properties `((upstream-name . "actuar")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (list r-expint)) (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.") Visualizations are also available for most of these settings.")
(license license:gpl2+))) (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 (define-public r-additivitytests
(package (package
(name "r-additivitytests") (name "r-additivitytests")
@ -22880,6 +23118,30 @@ finding peaks in spectra, converting humidity measures.")
from PLINK results.") from PLINK results.")
(license license:gpl3))) (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 (define-public r-ggplot-multistats
(package (package
(name "r-ggplot-multistats") (name "r-ggplot-multistats")
@ -24990,13 +25252,13 @@ appropriate dog and cat images for many status codes.")
(define-public r-latex2exp (define-public r-latex2exp
(package (package
(name "r-latex2exp") (name "r-latex2exp")
(version "0.5.0") (version "0.9.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "latex2exp" version)) (uri (cran-uri "latex2exp" version))
(sha256 (sha256
(base32 (base32
"0qknpw7zwwbzsbry94j8fn48mq7kq5rc5448g9hybbisain3wfvg")))) "0hfixybyds1jxhyiy3p6256z0fxzc65r654jhc62q9cd3v86a5z6"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
(list r-stringr r-magrittr)) (list r-stringr r-magrittr))
@ -25891,14 +26153,14 @@ counting and recursive k-means partitioning.")
(define-public r-hardhat (define-public r-hardhat
(package (package
(name "r-hardhat") (name "r-hardhat")
(version "0.1.6") (version "0.2.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "hardhat" version)) (uri (cran-uri "hardhat" version))
(sha256 (sha256
(base32 (base32
"07mx8c24gy0xfmip9hb5w29gp10sfnpnilzc1pi0hjadnrqz8mks")))) "0a4nq93cmps5xy8h0qsv6xyzrbsz9ka4iwkrvb8m8v10wq7wm5wl"))))
(properties `((upstream-name . "hardhat"))) (properties `((upstream-name . "hardhat")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -26647,14 +26909,14 @@ model.")
(define-public r-clusterr (define-public r-clusterr
(package (package
(name "r-clusterr") (name "r-clusterr")
(version "1.2.5") (version "1.2.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "ClusterR" version)) (uri (cran-uri "ClusterR" version))
(sha256 (sha256
(base32 (base32
"1fsb9pzs1paw1cbyr5a56lfh8h2d50232p6isk0xg5sl110ql7kx")))) "00mha8madcba83ix4fc04rb7sagfm0lxlh1wvs7dvjdrngps41jr"))))
(properties `((upstream-name . "ClusterR"))) (properties `((upstream-name . "ClusterR")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -28449,14 +28711,14 @@ rate speciation and extinction.")
(define-public r-calculus (define-public r-calculus
(package (package
(name "r-calculus") (name "r-calculus")
(version "0.3.2") (version "0.3.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "calculus" version)) (uri (cran-uri "calculus" version))
(sha256 (sha256
(base32 (base32
"1x3bcdd422wqv9gk9r2m8g19qcga220sm5rxdp4bgfc6vlqzzz7y")))) "1fhvr0l2mqik3d95v0vanafxmiab147g5a87q956g2i945wc5f22"))))
(properties `((upstream-name . "calculus"))) (properties `((upstream-name . "calculus")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -28798,13 +29060,13 @@ performing ordinal regression.")
(define-public r-paradox (define-public r-paradox
(package (package
(name "r-paradox") (name "r-paradox")
(version "0.7.1") (version "0.8.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "paradox" version)) (uri (cran-uri "paradox" version))
(sha256 (sha256
(base32 (base32
"1difp0bzsfxcmbm1snahh3i6417k1a2w4mnjx65p20n2yiclmrgs")))) "1jfzbpqi1rp3r8hnk37dqwggp48ha5bnilmdz7dwzfdaskssycxa"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
(list r-backports r-checkmate r-data-table r-mlr3misc r-r6)) (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 (define-public r-mlr3learners
(package (package
(name "r-mlr3learners") (name "r-mlr3learners")
(version "0.5.1") (version "0.5.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "mlr3learners" version)) (uri (cran-uri "mlr3learners" version))
(sha256 (sha256
(base32 (base32
"1yc3mrk1b9h1k342wnw7sm4zmcw7w31l5ybh558g88f5hmibdl98")))) "1d9hcrnj622ynrzg0ii0fkhz2n66ip46yln21jq1pwpwkqwqzv35"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
(list r-checkmate (list r-checkmate

File diff suppressed because it is too large Load diff

View file

@ -101,7 +101,16 @@
"ath9k-htc-firmware-binutils.patch"))) "ath9k-htc-firmware-binutils.patch")))
((target-mingw? target) ((target-mingw? target)
(package-with-extra-patches (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" (search-patches "binutils-mingw-w64-timestamp.patch"
"binutils-mingw-w64-deterministic.patch"))) "binutils-mingw-w64-deterministic.patch")))
(else binutils)) (else binutils))

View file

@ -10,7 +10,7 @@
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr> ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org> ;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is> ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
;;; Copyright © 2016, 2017, 2018 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016, 2017, 2018 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2016 David Craven <david@craven.ch>
@ -55,6 +55,7 @@
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com> ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2021 jgart <jgart@dismail.de> ;;; Copyright © 2021 jgart <jgart@dismail.de>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com> ;;; 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. ;;; This file is part of GNU Guix.
;;; ;;;
@ -132,6 +133,7 @@
#:use-module (gnu packages python-science) #:use-module (gnu packages python-science)
#:use-module (gnu packages python-web) #:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages rdf) #:use-module (gnu packages rdf)
#:use-module (gnu packages readline) #:use-module (gnu packages readline)
#:use-module (gnu packages regex) #:use-module (gnu packages regex)
@ -164,6 +166,7 @@
#:use-module (guix build-system meson) #:use-module (guix build-system meson)
#:use-module (guix build-system perl) #:use-module (guix build-system perl)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (guix build-system ruby) #:use-module (guix build-system ruby)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system scons) #: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.") replacement for the code@{python-memcached} library.")
(license license:bsd-3))) (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 (define-public litecli
(package (package
(name "litecli") (name "litecli")
@ -1263,6 +1319,85 @@ pictures, sounds, or video.")
(define-public postgresql postgresql-13) (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 (define-public pgloader
(package (package
(name "pgloader") (name "pgloader")
@ -2321,6 +2456,55 @@ one-to-one, while still providing an idiomatic interface.")
(home-page "https://github.com/redis/redis-rb") (home-page "https://github.com/redis/redis-rb")
(license license:expat))) (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 (define-public kyotocabinet
(package (package
(name "kyotocabinet") (name "kyotocabinet")
@ -2610,6 +2794,34 @@ on another machine, accessed via TCP/IP.")
(home-page "http://pqxx.org/") (home-page "http://pqxx.org/")
(license license:bsd-3))) (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 (define-public python-peewee
(package (package
(name "python-peewee") (name "python-peewee")
@ -2917,6 +3129,30 @@ etc., and an SQL engine for performing simple SQL queries.")
(license (list license:lgpl2.0 (license (list license:lgpl2.0
license:gpl2+)))) 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 (define-public python-lmdb
(package (package
(name "python-lmdb") (name "python-lmdb")
@ -4319,3 +4555,45 @@ a handy text editor with language recognition, and visualize SELECT results in
a Gtk.Grid Widget.") a Gtk.Grid Widget.")
(home-page "https://github.com/Alecaddd/sequeler") (home-page "https://github.com/Alecaddd/sequeler")
(license license:gpl2+))) (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 © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Felix Gruber <felgru@posteo.net> ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com> ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -132,8 +133,8 @@ program to exhibit a bug.")
(native-inputs (list flex)) (native-inputs (list flex))
(inputs (inputs
`(("astyle" ,astyle) `(("astyle" ,astyle)
("llvm" ,llvm) ("llvm" ,llvm-9)
("clang" ,clang) ("clang" ,clang-9)
("indent" ,indent) ("indent" ,indent)
("perl" ,perl) ("perl" ,perl)
("exporter-lite" ,perl-exporter-lite) ("exporter-lite" ,perl-exporter-lite)
@ -615,7 +616,7 @@ error reporting, better tracing, profiling, and a debugger.")
(define-public rr (define-public rr
(package (package
(name "rr") (name "rr")
(version "5.4.0") (version "5.5.0")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -623,7 +624,7 @@ error reporting, better tracing, profiling, and a debugger.")
(commit version))) (commit version)))
(sha256 (sha256
(base32 (base32
"1sfldgkkmsdyaqa28i5agcykc63gwm3zjihd64g86i852w8al2w6")) "079x891axkiy8qbvjar9vbaldlx7pm9p0i3nq6infdc66nc69635"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
@ -745,13 +746,13 @@ use than similar tools like @command{mtrace}.")
(define-public cgdb (define-public cgdb
(package (package
(name "cgdb") (name "cgdb")
(version "0.7.1") (version "0.8.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://cgdb.me/files/cgdb-" version ".tar.gz")) (uri (string-append "https://cgdb.me/files/cgdb-" version ".tar.gz"))
(sha256 (sha256
(base32 "1671gpz5gx5j0zga8xy2x7h33vqh3nij93lbb6dbb366ivjknwmv")))) (base32 "1w8ib2vg3pg68d9hh97fw5042c73i9nqavdddc87n9bpscjbaf0d"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
(list ncurses readline)) (list ncurses readline))

View file

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

View file

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

View file

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

View file

@ -198,7 +198,7 @@ with Microsoft Compiled HTML (CHM) files")
("python-pychm" ,python-pychm) ("python-pychm" ,python-pychm)
("python-pycryptodome" ,python-pycryptodome) ("python-pycryptodome" ,python-pycryptodome)
("python-pygments" ,python-pygments) ("python-pygments" ,python-pygments)
("python-pyqt" ,python-pyqt) ("python-pyqt-without-qtwebkit" ,python-pyqt-without-qtwebkit)
("python-pyqtwebengine" ,python-pyqtwebengine) ("python-pyqtwebengine" ,python-pyqtwebengine)
("python-regex" ,python-regex) ("python-regex" ,python-regex)
("python-speechd" ,speech-dispatcher) ("python-speechd" ,speech-dispatcher)
@ -238,7 +238,7 @@ with Microsoft Compiled HTML (CHM) files")
(add-before 'build 'configure (add-before 'build 'configure
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let ((podofo (assoc-ref inputs "podofo")) (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")) (python-sip (assoc-ref inputs "python-sip"))
(out (assoc-ref outputs "out"))) (out (assoc-ref outputs "out")))
(substitute* "setup/build.py" (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-pyaudio" ,python-pyaudio)
;; `python-pyqtwebengine' must precede `python-pyqt' in PYTHONPATH. ;; `python-pyqtwebengine' must precede `python-pyqt' in PYTHONPATH.
("python-pyqtwebengine" ,python-pyqtwebengine) ("python-pyqtwebengine" ,python-pyqtwebengine)
("python-pyqt" ,python-pyqt) ("python-pyqt" ,python-pyqt-without-qtwebkit)
("python-requests" ,python-requests) ("python-requests" ,python-requests)
("python-send2trash" ,python-send2trash) ("python-send2trash" ,python-send2trash)
("python-sip" ,python-sip) ("python-sip" ,python-sip)

View file

@ -4,6 +4,7 @@
;;; Copyright © 2019 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2019 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Leo Famulari <leo@famulari.name> ;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -21,11 +22,12 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages electronics) (define-module (gnu packages electronics)
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (gnu packages) #:use-module (gnu packages)
@ -34,11 +36,14 @@
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages boost) #:use-module (gnu packages boost)
#:use-module (gnu packages c)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages documentation) #:use-module (gnu packages documentation)
#:use-module (gnu packages embedded) #:use-module (gnu packages embedded)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gawk) #:use-module (gnu packages gawk)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages graphviz) #:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
@ -48,7 +53,10 @@
#:use-module (gnu packages m4) #:use-module (gnu packages m4)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages qt)) #:use-module (gnu packages qt)
#:use-module (gnu packages sdl)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages stb))
(define-public libserialport (define-public libserialport
(package (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.") (description "Sigrok-cli is a command-line frontend for sigrok.")
(license license:gpl3+))) (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 (define-public pulseview
(package (package
(name "pulseview") (name "pulseview")

View file

@ -2,7 +2,7 @@
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; 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 © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2018, 2020 Marius Bakke <mbakke@fastmail.com>
@ -98,7 +98,14 @@
(lambda _ (lambda _
(substitute* "tests/Makefile.in" (substitute* "tests/Makefile.in"
(("run-backtrace-native.sh") "")) (("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)) (native-inputs (list m4))
(inputs (list zlib)) (inputs (list zlib))
@ -274,4 +281,7 @@ static analysis of the ELF binaries at hand.")
(description (description
"PatchELF allows the ELF \"interpreter\" and RPATH of an ELF binary to be "PatchELF allows the ELF \"interpreter\" and RPATH of an ELF binary to be
changed.") changed.")
;; This can probably be removed with the next release.
(properties
'((release-monitoring-url . "https://github.com/NixOS/patchelf/releases")))
(license gpl3+))) (license gpl3+)))

View file

@ -26,6 +26,7 @@
(define-module (gnu packages elixir) (define-module (gnu packages elixir)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix gexp)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (gnu packages) #:use-module (gnu packages)
@ -35,7 +36,7 @@
(define-public elixir (define-public elixir
(package (package
(name "elixir") (name "elixir")
(version "1.12.3") (version "1.13.2")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -44,44 +45,45 @@
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "07fisdx755cgyghwy95gvdds38sh138z56biariml18jjw5mk3r6")) (base32 "1d3mk7abn3rk536vmsfbm4smj52rljff6s40sndg0i7p6dl3kzxa"))
(patches (search-patches "elixir-path-length.patch")))) (patches (search-patches "elixir-path-length.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:test-target "test" (list
#:test-target "test"
#:parallel-tests? #f ;see <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32171#23> #:parallel-tests? #f ;see <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32171#23>
#:make-flags (list (string-append "PREFIX=" #:make-flags #~(list (string-append "PREFIX=" #$output))
(assoc-ref %outputs "out")))
#:phases #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'make-git-checkout-writable (add-after 'unpack 'make-git-checkout-writable
(lambda _ (lambda _
(for-each make-file-writable (find-files ".")))) (for-each make-file-writable (find-files "."))))
(add-after 'make-git-checkout-writable 'replace-paths (add-after 'make-git-checkout-writable 'replace-paths
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* '("lib/elixir/lib/system.ex" (substitute* '("lib/elixir/lib/system.ex"
"lib/mix/lib/mix/scm/git.ex") "lib/mix/lib/mix/scm/git.ex")
(("(cmd\\(['\"])git" _ prefix) (("(cmd\\(['\"])git" _ prefix)
(string-append prefix (which "git")))) (string-append prefix
(search-input-file inputs "/bin/git"))))
(substitute* '("lib/mix/lib/mix/release.ex" (substitute* '("lib/mix/lib/mix/release.ex"
"lib/mix/lib/mix/tasks/release.init.ex") "lib/mix/lib/mix/tasks/release.init.ex")
(("#!/bin/sh") (("#!/bin/sh")
(string-append "#!" (which "sh")))) (string-append "#!" (search-input-file inputs "sh"))))
(substitute* "bin/elixir" (substitute* "bin/elixir"
(("ERTS_BIN=") (("^ERTS_BIN=$")
(string-append (string-append
"ERTS_BIN=" "ERTS_BIN="
;; Elixir Releases will prepend to ERTS_BIN the path of a copy of erl. ;; Elixir Releases will prepend to ERTS_BIN the path of
;; We detect if a release is being generated by checking the initial ERTS_BIN ;; a copy of erl. We detect if a release is being generated
;; value: if it's empty, we are not in release mode and can point to the actual ;; by checking the initial ERTS_BIN value: if it's empty, we
;; erl binary in Guix store. ;; are not in release mode and can point to the actual erl
;; binary in Guix store.
"\nif [ -z \"$ERTS_BIN\" ]; then ERTS_BIN=" "\nif [ -z \"$ERTS_BIN\" ]; then ERTS_BIN="
(string-drop-right (which "erl") 3) (string-drop-right (search-input-file inputs "/bin/erl") 3)
"; fi"))) "; fi\n")))
(substitute* "bin/mix" (substitute* "bin/mix"
(("#!/usr/bin/env elixir") (("#!/usr/bin/env elixir")
(string-append "#!" out "/bin/elixir")))))) (string-append "#!" #$output "/bin/elixir")))))
(add-before 'build 'make-current (add-before 'build 'make-current
;; The Elixir compiler checks whether or not to compile files by ;; The Elixir compiler checks whether or not to compile files by
;; inspecting their timestamps. When the timestamp is equal to the ;; 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 (define-public mame
(package (package
(name "mame") (name "mame")
(version "0.239") (version "0.240")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -1720,7 +1720,7 @@ This is a part of the TiLP project.")
(commit (apply string-append "mame" (string-split version #\.))))) (commit (apply string-append "mame" (string-split version #\.)))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "02by0pq0j8pi5dllk90g94nbszynp9wqg75bl5x8bqrc7h80a0dq")) (base32 "141mj5kzafnbw6nqlc3ariwxqn8lq3s13dzypax6igpy4wfy75rm"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; Remove bundled libraries. ;; Remove bundled libraries.
@ -1745,15 +1745,14 @@ This is a part of the TiLP project.")
"pugixml" "rapidjson" "sqlite3" "utf8proc" "zlib"))) "pugixml" "rapidjson" "sqlite3" "utf8proc" "zlib")))
#:tests? #f ;no test in regular release #:tests? #f ;no test in regular release
#:phases #:phases
`(modify-phases %standard-phases #~(modify-phases %standard-phases
(delete 'configure) (delete 'configure)
(add-after 'build 'build-documentation (add-after 'build 'build-documentation
(lambda _ (invoke "make" "-C" "docs" "man" "info"))) (lambda _ (invoke "make" "-C" "docs" "man" "info")))
(replace 'install (replace 'install
;; Upstream does not provide an installation phase. ;; Upstream does not provide an installation phase.
(lambda* (#:key outputs #:allow-other-keys) (lambda _
(let* ((out (assoc-ref outputs "out")) (let ((share (string-append #$output "/share/mame")))
(share (string-append out "/share/mame")))
;; Install data. ;; Install data.
(for-each (lambda (dir) (for-each (lambda (dir)
(copy-recursively dir (string-append share "/" 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)) (install-file "uismall.bdf" fonts))
(when (file-exists? "mame64") (when (file-exists? "mame64")
(rename-file "mame64" "mame")) (rename-file "mame64" "mame"))
(install-file "mame" (string-append out "/bin"))))) (install-file "mame" (string-append #$output "/bin")))))
(add-after 'install 'install-documentation (add-after 'install 'install-documentation
(lambda* (#:key outputs #:allow-other-keys) (lambda _
(let* ((out (assoc-ref outputs "out")) (let ((man (string-append #$output "/share/man/man1"))
(man (string-append out "/share/man/man1")) (info (string-append #$output "/share/info")))
(info (string-append out "/share/info")))
(install-file "docs/build/man/MAME.1" man) (install-file "docs/build/man/MAME.1" man)
(install-file "docs/build/texinfo/MAME.info" info)))) (install-file "docs/build/texinfo/MAME.info" info))))
(add-after 'install 'install-ini-file (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 ;; 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 ;; be an issue if they leak into user's home directory, e.g., with
;; "mame -createconfig" and the package is later GC'ed. ;; "mame -createconfig" and the package is later GC'ed.
(lambda* (#:key outputs #:allow-other-keys) (lambda _
(let* ((out (assoc-ref outputs "out")) (let* ((share (string-append #$output "/share/mame"))
(share (string-append out "/share/mame"))
(ini (string-append share "/ini"))) (ini (string-append share "/ini")))
(with-output-to-file (string-append ini "/mame.ini") (with-output-to-file (string-append ini "/mame.ini")
(lambda _ (lambda _
@ -1834,10 +1831,9 @@ This is a part of the TiLP project.")
covers_directory $HOME/mame/covers~@ covers_directory $HOME/mame/covers~@
ui_path $HOME/.mame/ui~%")))))) ui_path $HOME/.mame/ui~%"))))))
(add-after 'install 'install-desktop-file (add-after 'install 'install-desktop-file
(lambda* (#:key outputs #:allow-other-keys) (lambda _
(let* ((out (assoc-ref outputs "out")) (let ((desktop (string-append #$output "/share/applications"))
(desktop (string-append out "/share/applications")) (executable (string-append #$output "/bin/mame")))
(executable (string-append out "/bin/mame")))
(mkdir-p desktop) (mkdir-p desktop)
(with-output-to-file (string-append desktop "/mame.desktop") (with-output-to-file (string-append desktop "/mame.desktop")
(lambda _ (lambda _
@ -1907,51 +1903,45 @@ functions. The source code to MAME serves as this documentation.")
"1qc01a62p65qb6mwjfmxqsd6n3rglsfwrjhsp25nr7q54107n55l")))) "1qc01a62p65qb6mwjfmxqsd6n3rglsfwrjhsp25nr7q54107n55l"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f ; No tests. (list
#:configure-flags (list #:tests? #f ; No tests.
#:configure-flags
#~(list
(string-append "-DMAME_BIN=\"" (string-append "-DMAME_BIN=\""
(assoc-ref %build-inputs "mame") #$(this-package-input "mame")
"/bin/mame\"") "/bin/mame\"")
(string-append "-DAPP_RES=\"" (string-append "-DAPP_RES=\"" #$output "/share/gnome-arcade/\""))
(assoc-ref %outputs "out")
"/share/gnome-arcade/\""))
#:phases #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-before 'build 'fix-paths (add-before 'build 'fix-paths
(lambda* (#:key outputs #:allow-other-keys) (lambda _
(let ((out (assoc-ref outputs "out")))
(pk 'cwd (getcwd))
(substitute* "../source/src/config.c" (substitute* "../source/src/config.c"
(("/usr/share") (string-append out "/share")))) (("/usr/share") (string-append #$output "/share")))))
#t))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda _
(let* ((out (assoc-ref outputs "out")) (let ((bin (string-append #$output "/bin"))
(bin (string-append out "/bin")) (rom (string-append #$output
(rom (string-append out "/share/gnome-arcade/data/rom")) "/share/gnome-arcade/data/rom"))
(tile (string-append out "/share/gnome-arcade/data/tile"))) (tile (string-append #$output
"/share/gnome-arcade/data/tile")))
(mkdir-p bin) (mkdir-p bin)
(install-file "../gnome-arcade" bin) (install-file "../gnome-arcade" bin)
(copy-recursively "../source/res" (copy-recursively "../source/res"
(string-append out "/share/gnome-arcade/res")) (string-append #$output
"/share/gnome-arcade/res"))
(mkdir-p rom) (mkdir-p rom)
(install-file "../source/data/rom/ROM.TXT" rom) (install-file "../source/data/rom/ROM.TXT" rom)
(mkdir-p tile) (mkdir-p tile)
(install-file "../source/data/tile/TILE.TXT" tile)) (install-file "../source/data/tile/TILE.TXT" tile)))))))
#t)))))
(native-inputs (native-inputs
(list pkg-config)) (list pkg-config))
(inputs (inputs
`(("mame" ,mame) (list gtk+ libarchive libevdev mame vlc))
("gtk" ,gtk+)
("libevdev" ,libevdev)
("libvlc" ,vlc)
("libarchive" ,libarchive)))
(home-page "https://github.com/strippato/gnome-arcade") (home-page "https://github.com/strippato/gnome-arcade")
(synopsis "Minimal MAME frontend") (synopsis "Minimal MAME frontend")
(description (description
"A minimal GTK+ frontend for MAME, the multi-purpose arcade and console "Gnome Arcade is a minimal GTK+ frontend for MAME, the multi-purpose
emulator.") arcade and console emulator.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public pcsxr (define-public pcsxr

View file

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; 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 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> ;;; 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 David Thompson <davet@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018 Theodoros Foradis <theodoros@foradis.org> ;;; Copyright © 2016, 2017, 2018 Theodoros Foradis <theodoros@foradis.org>
@ -25,8 +25,9 @@
;;; Copyright © 2021 Gerd Heber <gerd.heber@gmail.com> ;;; Copyright © 2021 Gerd Heber <gerd.heber@gmail.com>
;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru> ;;; 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 © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;; Copyright © 2022 Evgeny Pisemsky <evgeny@pisemsky.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -64,6 +65,7 @@
#:use-module (gnu packages algebra) #:use-module (gnu packages algebra)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages bdw-gc) #:use-module (gnu packages bdw-gc)
#:use-module (gnu packages bison) #:use-module (gnu packages bison)
#:use-module (gnu packages boost) #:use-module (gnu packages boost)
@ -118,6 +120,7 @@
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt) #:use-module (gnu packages qt)
#:use-module (gnu packages readline) #:use-module (gnu packages readline)
#:use-module (gnu packages ruby)
#:use-module (gnu packages serialization) #:use-module (gnu packages serialization)
#:use-module (gnu packages sqlite) #:use-module (gnu packages sqlite)
#:use-module (gnu packages swig) #:use-module (gnu packages swig)
@ -147,7 +150,9 @@
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"08cl4935c9vznz9qdw1zgd86rn7hl64zpfayxl07x21bhf53pn24")))) "08cl4935c9vznz9qdw1zgd86rn7hl64zpfayxl07x21bhf53pn24"))
(patches
(search-patches "librecad-support-for-boost-1.76.patch"))))
(build-system qt-build-system) (build-system qt-build-system)
(arguments (arguments
'(#:test-target "check" '(#:test-target "check"
@ -925,15 +930,15 @@ Emacs).")
(define-public kicad (define-public kicad
(package (package
(name "kicad") (name "kicad")
(version "5.1.12") (version "6.0.1")
(source (source (origin
(origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://gitlab.com/kicad/code/kicad.git") (url "https://gitlab.com/kicad/code/kicad.git")
(commit version))) (commit version)))
(sha256 (sha256
(base32 "0kgikchqxds3mp71nkg307mr4c1dgv8akbmksz4w9x8jg4i1mfqq")) (base32
"1vpcbhhw8844hm6vpk3kk405wak531pvcvcpc66z0b48iprk3imr"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
@ -941,12 +946,12 @@ Emacs).")
#:tests? #f ;no tests #:tests? #f ;no tests
#:build-type "Release" #:build-type "Release"
#:configure-flags #:configure-flags
,#~(list ,#~(list "-DKICAD_SCRIPTING_PYTHON3=ON"
"-DKICAD_SCRIPTING_PYTHON3=ON"
"-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON"
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE"
(string-append "-DOCC_INCLUDE_DIR=" (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 #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'fix-ngspice-detection (add-after 'unpack 'fix-ngspice-detection
@ -966,29 +971,22 @@ Emacs).")
(substitute* "common/lib_tree_model.cpp" (substitute* "common/lib_tree_model.cpp"
(("#include <eda_pattern_match.h>" all) (("#include <eda_pattern_match.h>" all)
(string-append "#include <algorithm>\n" 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 (add-after 'install 'wrap-program
;; Ensure correct Python at runtime. ;; Ensure correct Python at runtime.
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(python (assoc-ref inputs "python")) (python (assoc-ref inputs "python"))
(file (string-append out "/bin/kicad")) (file (string-append out "/bin/kicad"))
(path (string-append (path (string-append out "/lib/python"
out ,(version-major+minor (package-version
"/lib/python" python))
,(version-major+minor
(package-version python))
"/site-packages:" "/site-packages:"
(getenv "GUIX_PYTHONPATH")))) (getenv "GUIX_PYTHONPATH"))))
(wrap-program file (wrap-program file
`("GUIX_PYTHONPATH" ":" prefix (,path)) `("GUIX_PYTHONPATH" ":" prefix
(,path))
`("PATH" ":" prefix `("PATH" ":" prefix
(,(string-append python "/bin:"))))) (,(string-append python "/bin:"))))))))))
#t)))))
(native-search-paths (native-search-paths
(list (search-path-specification (list (search-path-specification
(variable "KICAD") ;to find kicad-doc (variable "KICAD") ;to find kicad-doc
@ -1005,63 +1003,36 @@ Emacs).")
(search-path-specification (search-path-specification
(variable "KISYS3DMOD") ;3D model path (variable "KISYS3DMOD") ;3D model path
(files '("share/kicad/modules/packages3d"))))) (files '("share/kicad/modules/packages3d")))))
(native-inputs (native-inputs (list boost
`(("boost" ,boost) desktop-file-utils
("desktop-file-utils" ,desktop-file-utils) gettext-minimal
("gettext" ,gettext-minimal) pkg-config
("kicad-i18n" ,kicad-i18n) swig
("pkg-config" ,pkg-config) zlib))
("swig" ,swig) (inputs (list bash-minimal
("zlib" ,zlib))) cairo
(inputs curl
`(("cairo" ,cairo) glew
("curl" ,curl) glm
("glew" ,glew) hicolor-icon-theme
("glm" ,glm) libngspice
("hicolor-icon-theme" ,hicolor-icon-theme) libsm
("libngspice" ,libngspice) mesa
("libsm" ,libsm) opencascade-occt
("mesa" ,mesa) openssl
("opencascade-occt" ,opencascade-occt) python-wrapper
("openssl" ,openssl) gtk+
("python" ,python-wrapper) wxwidgets
("wxwidgets" ,wxwidgets) python-wxpython))
("wxpython" ,python-wxpython)))
(home-page "https://www.kicad.org/") (home-page "https://www.kicad.org/")
(synopsis "Electronics Design Automation Suite") (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 boards and electrical circuits. The software has a number of programs that
perform specific functions, for example, pcbnew (Editing PCB), eeschema (editing perform specific functions, for example, pcbnew (Editing PCB), eeschema (editing
electrical diagrams), gerbview (viewing Gerber files) and others.") electrical diagrams), gerbview (viewing Gerber files) and others.")
(license license:gpl3+))) (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 (define-public kicad-doc
(package (package
(name "kicad-doc") (name "kicad-doc")
@ -1074,7 +1045,7 @@ translations for KiCad.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"026cz4zm903i75yhdvzha2nsnk4c0w07q3gd3xw3jmsmn18imgm3")))) "0zaafa9ckvdgsim6nhp3flj4r2fzzmwn054lc3iijwgga82qy7il"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:configure-flags (list "-DBUILD_FORMATS=html") `(#:configure-flags (list "-DBUILD_FORMATS=html")
@ -1082,15 +1053,15 @@ translations for KiCad.")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'build)))) (delete 'build))))
(native-inputs (native-inputs (list asciidoc
`(("asciidoc" ,asciidoc) gettext-minimal
("gettext" ,gettext-minimal) git-minimal
("git" ,git-minimal) perl
("perl" ,perl) perl-unicode-linebreak
("perl-unicode-linebreak" ,perl-unicode-linebreak) perl-yaml-tiny
("perl-yaml-tiny" ,perl-yaml-tiny) po4a
("po4a" ,po4a) ruby-asciidoctor
("source-highlight" ,source-highlight))) source-highlight))
(home-page "https://kicad.org") (home-page "https://kicad.org")
(synopsis "KiCad official documentation") (synopsis "KiCad official documentation")
(description "This repository contains the official KiCad documentation.") (description "This repository contains the official KiCad documentation.")
@ -1108,7 +1079,7 @@ translations for KiCad.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1zdajim409570xzis53kmrbdcf7000v2vmc90f49h214lrx2zhr2")))) "1azjx1bmxaz8bniyw75lq60mc8hvay00jn9qdc2zp7isy3c9ibp0"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f)) ; no tests exist `(#:tests? #f)) ; no tests exist
@ -1137,7 +1108,7 @@ libraries.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0qpii55dgv2gxqg1qq0dngdnbb9din790qi5qv0l6qqrzx843h5s")))) "0mv9xs0mmmfn0yhzx1v55r5app13ckagb16249rabyiz3v5crdpb"))))
(synopsis "Official KiCad footprint libraries") (synopsis "Official KiCad footprint libraries")
(description "This package contains the 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)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"12w7m5nbk9kcnlnlg4sk1sd7xgb9i2kxfi0jcbd0phs89qyl7wjr")))) "0vwcbzq42hzjl4f0zjaswmiff1x59hv64g5n00mx1gl0gwngnyla"))))
(synopsis "Official KiCad 3D model libraries") (synopsis "Official KiCad 3D model libraries")
(description "This package contains the 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)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1fbhn1l3j2rwc29aida9b408wif55i23bp9ddcs7dvf83smjm05g")))) "13h9ly6amiwm7zkwa2fd9730kh295ls8j95fszlfjp9rczv2yyzm"))))
(synopsis "Official KiCad project and worksheet templates") (synopsis "Official KiCad project and worksheet templates")
(description "This package contains the official KiCad project and (description "This package contains the official KiCad project and
worksheet templates."))) worksheet templates.")))
@ -2811,13 +2782,13 @@ GUI.")
(define-public poke (define-public poke
(package (package
(name "poke") (name "poke")
(version "1.4") (version "2.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/poke/poke-" version (uri (string-append "mirror://gnu/poke/poke-" version
".tar.gz")) ".tar.gz"))
(sha256 (sha256
(base32 "095a0qal1fwnqxnal0xb4mp0n4zy97j3ww1j04ij3jb0jpr4s1ff")) (base32 "0w168jcjahl3jawkhnh0dc10mcw4nwv4yawwc8xhqm5w3dn8wlnd"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(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. ;; Mark as tunable to take advantage of SIMD code in Eigen and in libigl.
(properties '((tunable? . #t))))) (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 ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Tomáš Čech <sleep_walker@suse.cz> ;;; Copyright © 2015 Tomáš Čech <sleep_walker@suse.cz>
;;; Copyright © 2015 Daniel Pimentel <d4n1@member.fsf.org> ;;; 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 © 2017 Nikita <nikita@n0.is>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Timo Eisenmann <eisenmann@fn.de> ;;; Copyright © 2018 Timo Eisenmann <eisenmann@fn.de>
@ -48,6 +48,7 @@
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
#:use-module (gnu packages gstreamer) #:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages hardware)
#:use-module (gnu packages ibus) #:use-module (gnu packages ibus)
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages libunwind) #:use-module (gnu packages libunwind)
@ -70,7 +71,7 @@
(define-public efl (define-public efl
(package (package
(name "efl") (name "efl")
(version "1.26.1") (version "1.26.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -78,7 +79,7 @@
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0hm6i1f2g4mwj726rc6na38xhys1plbv9swrlc9hrpa87mz6gac6")))) "071h0pscbd8g341yy5rz9mk1xn8yhryldhl6mmr1y6lafaycyy99"))))
(build-system meson-build-system) (build-system meson-build-system)
(native-inputs (native-inputs
`(("check" ,check) `(("check" ,check)
@ -93,11 +94,7 @@
("ibus" ,ibus) ("ibus" ,ibus)
("mesa" ,mesa) ("mesa" ,mesa)
("libraw" ,libraw) ("libraw" ,libraw)
;; Only enable the optional SVG support on x86_64, as this is the only ("librsvg" ,(librsvg-for-system))
;; architecture where librsvg can be built.
,@(if (target-x86-64?)
`(("librsvg" ,librsvg))
'())
("libspectre" ,libspectre) ("libspectre" ,libspectre)
("libtiff" ,libtiff) ("libtiff" ,libtiff)
("libxau" ,libxau) ("libxau" ,libxau)
@ -151,11 +148,6 @@
"-Dmount-path=/run/setuid-programs/mount" "-Dmount-path=/run/setuid-programs/mount"
"-Dunmount-path=/run/setuid-programs/umount" "-Dunmount-path=/run/setuid-programs/umount"
"-Dnetwork-backend=connman" "-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. ;; For Wayland.
"-Dwl=true" "-Dwl=true"
"-Ddrm=true") "-Ddrm=true")
@ -297,7 +289,7 @@ Libraries with some extra bells and whistles.")
(define-public enlightenment (define-public enlightenment
(package (package
(name "enlightenment") (name "enlightenment")
(version "0.25.1") (version "0.25.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -305,7 +297,7 @@ Libraries with some extra bells and whistles.")
"enlightenment/enlightenment-" version ".tar.xz")) "enlightenment/enlightenment-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0i1424vsc929h36hx04646pbrjiya6nc1nqr6s15xwvfv7imzw1c")) "1xngwixp0cckfq3jhrdmmk6zj67125amr7g6xwc6l89pnpmlkz9p"))
(patches (search-patches "enlightenment-fix-setuid-path.patch")))) (patches (search-patches "enlightenment-fix-setuid-path.patch"))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments (arguments
@ -322,6 +314,7 @@ Libraries with some extra bells and whistles.")
(setxkbmap (assoc-ref inputs "setxkbmap")) (setxkbmap (assoc-ref inputs "setxkbmap"))
(libc (assoc-ref inputs "libc")) (libc (assoc-ref inputs "libc"))
(bc (assoc-ref inputs "bc")) (bc (assoc-ref inputs "bc"))
(ddcutil (assoc-ref inputs "ddcutil"))
(efl (assoc-ref inputs "efl"))) (efl (assoc-ref inputs "efl")))
;; We need to patch the path to 'base.lst' to be able ;; We need to patch the path to 'base.lst' to be able
;; to switch the keyboard layout in E. ;; to switch the keyboard layout in E.
@ -347,6 +340,9 @@ Libraries with some extra bells and whistles.")
"/run/current-system/profile/sbin"))) "/run/current-system/profile/sbin")))
(substitute* "src/modules/everything/evry_plug_calc.c" (substitute* "src/modules/everything/evry_plug_calc.c"
(("bc -l") (string-append bc "/bin/bc -l"))) (("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" (substitute* "data/etc/meson.build"
(("/bin/mount") "/run/setuid-programs/mount") (("/bin/mount") "/run/setuid-programs/mount")
(("/bin/umount") "/run/setuid-programs/umount") (("/bin/umount") "/run/setuid-programs/umount")
@ -361,6 +357,7 @@ Libraries with some extra bells and whistles.")
("bc" ,bc) ("bc" ,bc)
("bluez" ,bluez) ("bluez" ,bluez)
("dbus" ,dbus) ("dbus" ,dbus)
("ddcutil" ,ddcutil)
("freetype" ,freetype) ("freetype" ,freetype)
("libdrm" ,libdrm) ("libdrm" ,libdrm)
("libexif" ,libexif) ("libexif" ,libexif)

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -3,7 +3,7 @@
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; 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 © 2016 Carlos Sánchez de La Lama <csanchezdll@gmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2020 Marius Bakke <mbakke@fastmail.com> ;;; 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))))) ,@(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 (define %gcc-7.5-x86_64-micro-architectures
;; Suitable '-march' values for GCC 7.5 (info "(gcc) x86 Options"). ;; Suitable '-march' values for GCC 7.5 (info "(gcc) x86 Options").
'("core2" "nehalem" "westmere" "sandybridge" "ivybridge" '("core2" "nehalem" "westmere" "sandybridge" "ivybridge"
@ -536,6 +549,19 @@ Go. It also includes runtime support libraries for these languages.")
"znver1" "znver1"
"btver1" "btver2" "geode")) "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 (define %gcc-10-x86_64-micro-architectures
;; Suitable '-march' values for GCC 10. ;; Suitable '-march' values for GCC 10.
(append %gcc-7.5-x86_64-micro-architectures (append %gcc-7.5-x86_64-micro-architectures
@ -545,7 +571,6 @@ Go. It also includes runtime support libraries for these languages.")
"znver2" "znver3"))) "znver2" "znver3")))
(define-public gcc-7 (define-public gcc-7
(package (package
(inherit gcc-6) (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.") It also includes runtime support libraries for these languages.")
(properties (properties
`((compiler-cpu-architectures `((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)))))) ("x86_64" ,@%gcc-7.5-x86_64-micro-architectures))))))
(define-public gcc-8 (define-public gcc-8
@ -619,6 +646,8 @@ It also includes runtime support libraries for these languages.")
(snippet gcc-canadian-cross-objdump-snippet))) (snippet gcc-canadian-cross-objdump-snippet)))
(properties (properties
`((compiler-cpu-architectures `((compiler-cpu-architectures
("aarch64" ,@%gcc-10-aarch64-micro-architectures)
("armhf" ,@%gcc-10-armhf-micro-architectures)
("x86_64" ,@%gcc-10-x86_64-micro-architectures)))))) ("x86_64" ,@%gcc-10-x86_64-micro-architectures))))))
(define-public gcc-11 (define-public gcc-11

View file

@ -12,7 +12,7 @@
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> ;;; 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 © 2020 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru> ;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
;;; Copyright © 2021 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2021 John Kehayias <john.kehayias@protonmail.com>
@ -63,6 +63,7 @@
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system meson) #:use-module (guix build-system meson)
#:use-module (guix build-system python)
#:use-module (guix build-system waf) #:use-module (guix build-system waf)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
@ -181,6 +182,38 @@ rendering modes are: Bitmaps, Anti-aliased pixmaps, Texture maps, Outlines,
Polygon meshes, and Extruded polygon meshes.") Polygon meshes, and Extruded polygon meshes.")
(license license:x11))) (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 (define-public s2tc
(package (package
(name "s2tc") (name "s2tc")
@ -261,7 +294,8 @@ also known as DXTn or DXTC) for Mesa.")
("libxrandr" ,libxrandr) ("libxrandr" ,libxrandr)
("libxvmc" ,libxvmc) ("libxvmc" ,libxvmc)
,@(match (%current-system) ,@(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. ;; Note: update the 'clang' input of mesa-opencl when bumping this.
`(("llvm" ,llvm-11))) `(("llvm" ,llvm-11)))
(_ (_
@ -273,7 +307,8 @@ also known as DXTn or DXTC) for Mesa.")
("flex" ,flex) ("flex" ,flex)
("gettext" ,gettext-minimal) ("gettext" ,gettext-minimal)
,@(match (%current-system) ,@(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))) `(("glslang" ,glslang)))
(_ (_
`())) `()))
@ -289,7 +324,7 @@ also known as DXTn or DXTC) for Mesa.")
((or "armhf-linux" "aarch64-linux") ((or "armhf-linux" "aarch64-linux")
;; TODO: Fix svga driver for non-Intel architectures. ;; TODO: Fix svga driver for non-Intel architectures.
'("-Dgallium-drivers=etnaviv,freedreno,kmsro,lima,nouveau,panfrost,r300,r600,swrast,tegra,v3d,vc4,virgl")) '("-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=nouveau,r300,r600,radeonsi,swrast,virgl"))
(_ (_
'("-Dgallium-drivers=iris,nouveau,r300,r600,radeonsi,svga,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")) '("-Dvulkan-drivers=amd,swrast"))
("aarch64-linux" ("aarch64-linux"
'("-Dvulkan-drivers=freedreno,amd,broadcom,swrast")) '("-Dvulkan-drivers=freedreno,amd,broadcom,swrast"))
("riscv64-linux"
'("-Dvulkan-drivers=amd,swrast"))
(_ (_
'("-Dvulkan-drivers=auto"))) '("-Dvulkan-drivers=auto")))
;; Enable the Vulkan overlay layer on architectures using llvm. ;; Enable the Vulkan overlay layer on architectures using llvm.
,@(match (%current-system) ,@(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")) '("-Dvulkan-layers=device-select,overlay"))
(_ (_
'())) '()))
@ -334,7 +372,7 @@ also known as DXTn or DXTC) for Mesa.")
((or "x86_64-linux" "i686-linux") ((or "x86_64-linux" "i686-linux")
'("-Ddri-drivers=i915,i965,nouveau,r200,r100" '("-Ddri-drivers=i915,i965,nouveau,r200,r100"
"-Dllvm=enabled")) ; default is x86/x86_64 only "-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" '("-Ddri-drivers=nouveau,r200,r100"
"-Dllvm=enabled")) "-Dllvm=enabled"))
(_ (_
@ -359,6 +397,13 @@ also known as DXTn or DXTC) for Mesa.")
(("if with_tests") (("if with_tests")
"if false")) "if false"))
,@(match (%current-system) ,@(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" ("powerpc64le-linux"
;; Disable some of the llvmpipe tests. ;; Disable some of the llvmpipe tests.
`((substitute* "src/gallium/drivers/llvmpipe/lp_test_arit.c" `((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 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net> ;;; 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 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;; Copyright © 2020, 2021 Andy Tai <atai@atai.org> ;;; Copyright © 2020, 2021 Andy Tai <atai@atai.org>
;;; Copyright © 2020, 2021 Sébastien Lerique <sl@eauchat.org> ;;; Copyright © 2020, 2021 Sébastien Lerique <sl@eauchat.org>
@ -158,6 +158,7 @@
#:use-module (gnu packages mail) #:use-module (gnu packages mail)
#:use-module (gnu packages man) #:use-module (gnu packages man)
#:use-module (gnu packages markup) #:use-module (gnu packages markup)
#:use-module (gnu packages messaging)
#:use-module (gnu packages mp3) #:use-module (gnu packages mp3)
#:use-module (gnu packages multiprecision) #:use-module (gnu packages multiprecision)
#:use-module (gnu packages music) #:use-module (gnu packages music)
@ -1914,8 +1915,8 @@ and system administrators.")
;; recent versions of the build tools. The latest activity on the ;; recent versions of the build tools. The latest activity on the
;; pre-GNOME version has been in 2014, while GNOME has continued applying ;; pre-GNOME version has been in 2014, while GNOME has continued applying
;; fixes since. ;; fixes since.
(let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5") (let ((commit "0997887d97f01be28bf3886dfd3e2002de437930")
(revision "2")) (revision "3"))
(package (package
(name "dia") (name "dia")
(version (git-version "0.97.3" revision commit)) (version (git-version "0.97.3" revision commit))
@ -1927,9 +1928,11 @@ and system administrators.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8")))) "199b4n1jydg1g9lnz0r8xx67h7s2ac2lfj89zp015lbs0qqfkmsh"))))
(build-system meson-build-system) (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 (inputs
(list graphene (list graphene
gtk+-2 gtk+-2
@ -1939,12 +1942,10 @@ and system administrators.")
;; XXX: PDF plugin fails to build with poppler 21.07.0. ;; XXX: PDF plugin fails to build with poppler 21.07.0.
;; poppler ;; poppler
;; Without Python 2, build fails: plug-ins/python/meson.build:4:0: python))
;; ERROR: Unknown method "dependency" in object.
python-2))
(native-inputs (native-inputs
(list appstream-glib docbook-xsl (list appstream-glib docbook-xsl
`(,glib "bin") intltool pkg-config)) `(,glib "bin") gettext-minimal pkg-config))
(home-page "https://wiki.gnome.org/Apps/Dia") (home-page "https://wiki.gnome.org/Apps/Dia")
(synopsis "Diagram creation for GNOME") (synopsis "Diagram creation for GNOME")
(description "Dia can be used to draw different types of diagrams, and (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) ("desktop-file-utils" ,desktop-file-utils)
("intltool" ,intltool) ("intltool" ,intltool)
("itstool" ,itstool) ("itstool" ,itstool)
("python" ,python-wrapper) ; for meson_post_install.py
("vala" ,vala) ("vala" ,vala)
("yelp" ,yelp) ("yelp" ,yelp)
("appstream-glib" ,appstream-glib))) ("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) ;; expression paragraph. For an explanation, see: info '(sed)
;; Multiline techniques'. ;; Multiline techniques'.
(invoke "sed" "/./{H;$!d} ; x ; s/^.*native-headless.*$//" (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 (replace 'check
(lambda* (#:key tests? test-options parallel-tests? (lambda* (#:key tests? test-options parallel-tests?
#:allow-other-keys) #:allow-other-keys)
@ -7679,14 +7686,13 @@ Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
'("addressbook-backends" "calendar-backends" '("addressbook-backends" "calendar-backends"
"camel-providers" "credential-modules" "camel-providers" "credential-modules"
"registry-modules")))) "registry-modules"))))
(list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support (list "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
"-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
"-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
"-DENABLE_VALA_BINDINGS=ON" "-DENABLE_VALA_BINDINGS=ON"
(string-append "-DCMAKE_INSTALL_RPATH=" lib ";" (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
(string-append lib "/evolution-data-server;") (string-append lib "/evolution-data-server;")
(string-join runpaths ";")) (string-join runpaths ";"))
"-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings "-DENABLE_INTROSPECTION=ON" ;required for Vala bindings
"-DWITH_PHONENUMBER=ON"))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'disable-failing-tests (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) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("intltool" ,intltool) ("intltool" ,intltool)
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)
("protobuf" ,protobuf)
("vala" ,vala) ("vala" ,vala)
("python" ,python-wrapper))) ("python" ,python-wrapper)))
(propagated-inputs (propagated-inputs
@ -7728,11 +7735,13 @@ Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
("sqlite" ,sqlite))) ("sqlite" ,sqlite)))
(inputs (inputs
`(("bdb" ,bdb) `(("bdb" ,bdb)
("boost" ,boost)
("gcr" ,gcr) ("gcr" ,gcr)
("gnome-online-accounts:lib" ,gnome-online-accounts "lib") ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
("json-glib" ,json-glib) ("json-glib" ,json-glib)
("libcanberra" ,libcanberra) ("libcanberra" ,libcanberra)
("libgweather" ,libgweather) ("libgweather" ,libgweather)
("libphonenumber" ,libphonenumber)
("mit-krb5" ,mit-krb5) ("mit-krb5" ,mit-krb5)
("openldap" ,openldap) ("openldap" ,openldap)
("webkitgtk" ,webkitgtk-with-libsoup2))) ("webkitgtk" ,webkitgtk-with-libsoup2)))

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