Merge branch 'master' into staging
This commit is contained in:
		
						commit
						76b6bbdf23
					
				
					 309 changed files with 283341 additions and 206827 deletions
				
			
		|  | @ -60,8 +60,6 @@ | |||
|    ;; 'modify-inputs' and its keywords. | ||||
|    (eval . (put 'modify-inputs 'scheme-indent-function 1)) | ||||
|    (eval . (put 'replace 'scheme-indent-function 1)) | ||||
|    (eval . (put 'prepend 'scheme-indent-function 2)) | ||||
|    (eval . (put 'append 'scheme-indent-function 2)) | ||||
| 
 | ||||
|    ;; 'modify-phases' and its keywords. | ||||
|    (eval . (put 'modify-phases 'scheme-indent-function 1)) | ||||
|  |  | |||
|  | @ -379,6 +379,10 @@ AUX_FILES =						\ | |||
|   gnu/packages/aux-files/chromium/master-preferences.json		\ | ||||
|   gnu/packages/aux-files/emacs/guix-emacs.el		\ | ||||
|   gnu/packages/aux-files/guix.vim			\ | ||||
|   gnu/packages/aux-files/linux-libre/5.16-arm.conf	\ | ||||
|   gnu/packages/aux-files/linux-libre/5.16-arm64.conf	\ | ||||
|   gnu/packages/aux-files/linux-libre/5.16-i686.conf	\ | ||||
|   gnu/packages/aux-files/linux-libre/5.16-x86_64.conf	\ | ||||
|   gnu/packages/aux-files/linux-libre/5.15-arm.conf	\ | ||||
|   gnu/packages/aux-files/linux-libre/5.15-arm64.conf	\ | ||||
|   gnu/packages/aux-files/linux-libre/5.15-i686.conf	\ | ||||
|  |  | |||
|  | @ -157,6 +157,18 @@ You are advised to run @command{make authenticate} after every | |||
| changes to the repository. | ||||
| @end quotation | ||||
| 
 | ||||
| After updating the repository, @command{make} might fail with an error | ||||
| similar to the following example: | ||||
| 
 | ||||
| @example | ||||
| error: failed to load 'gnu/packages/dunst.scm': | ||||
| ice-9/eval.scm:293:34: In procedure abi-check: #<record-type <origin>>: record ABI mismatch; recompilation needed | ||||
| @end example | ||||
| 
 | ||||
| This means that one of the record types that Guix defines (in this | ||||
| example, the @code{origin} record) has changed, and all of guix needs | ||||
| to be recompiled to take that change into account.  To do so, run | ||||
| @command{make clean-go} followed by @command{make}. | ||||
| 
 | ||||
| @node Running Guix Before It Is Installed | ||||
| @section Running Guix Before It Is Installed | ||||
|  | @ -231,6 +243,24 @@ local source tree; it simply updates the @file{~/.config/guix/current} | |||
| symlink (@pxref{Invoking guix pull}).  Run @command{git pull} instead if | ||||
| you want to upgrade your local source tree. | ||||
| 
 | ||||
| Sometimes, especially if you have recently updated your repository, | ||||
| running @command{./pre-inst-env} will print a message similar to the | ||||
| following example: | ||||
| 
 | ||||
| @example | ||||
| ;;; note: source file /home/user/projects/guix/guix/progress.scm | ||||
| ;;;       newer than compiled /home/user/projects/guix/guix/progress.go | ||||
| @end example | ||||
| 
 | ||||
| This is only a note and you can safely ignore it.  You can get rid of | ||||
| the message by running @command{make -j4}.  Until you do, Guile will run | ||||
| slightly slower because it will interpret the code instead of using | ||||
| prepared Guile object (@file{.go}) files. | ||||
| 
 | ||||
| You can run @command{make} automatically as you work using | ||||
| @command{watchexec} from the @code{watchexec} package.  For example, | ||||
| to build again each time you update a package file, you can run | ||||
| @samp{watchexec -w gnu/packages make -j4}. | ||||
| 
 | ||||
| @node The Perfect Setup | ||||
| @section The Perfect Setup | ||||
|  | @ -1386,9 +1416,14 @@ what your usertag means. | |||
| @cindex commit access, for developers | ||||
| Everyone can contribute to Guix without having commit access | ||||
| (@pxref{Submitting Patches}).  However, for frequent contributors, | ||||
| having write access to the repository can be convenient.  Commit access | ||||
| should not be thought of as a ``badge of honor'' but rather as a | ||||
| responsibility a contributor is willing to take to help the project. | ||||
| having write access to the repository can be convenient.  As a rule of | ||||
| thumb, a contributor should have accumulated fifty (50) reviewed commits | ||||
| to be considered as a committer and have sustained their activity in the | ||||
| project for at least 6 months.  This ensures enough interactions with | ||||
| the contributor, which is essential for mentoring and assessing whether | ||||
| they are ready to become a committer.  Commit access should not be | ||||
| thought of as a ``badge of honor'' but rather as a responsibility a | ||||
| contributor is willing to take to help the project. | ||||
| 
 | ||||
| The following sections explain how to get commit access, how to be ready | ||||
| to push commits, and the policies and community expectations for commits | ||||
|  |  | |||
							
								
								
									
										555
									
								
								doc/guix.texi
									
										
									
									
									
								
							
							
						
						
									
										555
									
								
								doc/guix.texi
									
										
									
									
									
								
							|  | @ -47,7 +47,7 @@ Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* | |||
| Copyright @copyright{} 2017 Thomas Danckaert@* | ||||
| Copyright @copyright{} 2017 humanitiesNerd@* | ||||
| Copyright @copyright{} 2017, 2021 Christine Lemmer-Webber@* | ||||
| Copyright @copyright{} 2017, 2018, 2019, 2020, 2021 Marius Bakke@* | ||||
| Copyright @copyright{} 2017, 2018, 2019, 2020, 2021, 2022 Marius Bakke@* | ||||
| Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@* | ||||
| Copyright @copyright{} 2017, 2019, 2020, 2021 Maxim Cournoyer@* | ||||
| Copyright @copyright{} 2017–2022 Tobias Geerinckx-Rice@* | ||||
|  | @ -5824,6 +5824,12 @@ This is similar to the same-named option in @command{guix package} | |||
| (@pxref{profile-manifest, @option{--manifest}}) and uses the same | ||||
| manifest files. | ||||
| 
 | ||||
| @item --profile=@var{profile} | ||||
| @itemx -p @var{profile} | ||||
| Create an environment containing the packages installed in @var{profile}.  | ||||
| Use @command{guix package} (@pxref{Invoking guix package}) to create | ||||
| and manage profiles. | ||||
| 
 | ||||
| @item --pure | ||||
| Unset existing environment variables when building the new environment, except | ||||
| those specified with @option{--preserve} (see below).  This has the effect of | ||||
|  | @ -6231,6 +6237,12 @@ interpreted as packages whose dependencies will be added to the | |||
| environment, the default behavior.  Packages appearing after are | ||||
| interpreted as packages that will be added to the environment directly. | ||||
| 
 | ||||
| @item --profile=@var{profile} | ||||
| @itemx -p @var{profile} | ||||
| Create an environment containing the packages installed in @var{profile}.  | ||||
| Use @command{guix package} (@pxref{Invoking guix package}) to create | ||||
| and manage profiles. | ||||
| 
 | ||||
| @item --pure | ||||
| Unset existing environment variables when building the new environment, except | ||||
| those specified with @option{--preserve} (see below).  This has the effect of | ||||
|  | @ -21382,7 +21394,7 @@ Data type representing the configuration for @code{pulseaudio-service}. | |||
| @table @asis | ||||
| @item @code{client-conf} (default: @code{'()}) | ||||
| List of settings to set in @file{client.conf}. | ||||
| Accepts a list of strings or a symbol-value pairs.  A string will be | ||||
| Accepts a list of strings or symbol-value pairs.  A string will be | ||||
| inserted as-is with a newline added.  A pair will be formatted as | ||||
| ``key = value'', again with a newline added. | ||||
| 
 | ||||
|  | @ -25495,9 +25507,10 @@ Specify the path of the base URL@.  This can be useful if | |||
| @end table | ||||
| @end deftp | ||||
| 
 | ||||
| @anchor{prometheus-node-exporter} | ||||
| @subsubheading Prometheus Node Exporter Service | ||||
| 
 | ||||
| @cindex prometheus-node-exporter | ||||
| 
 | ||||
| The Prometheus ``node exporter'' makes hardware and operating system statistics | ||||
| provided by the Linux kernel available for the Prometheus monitoring system. | ||||
| This service should be deployed on all physical nodes and virtual machines, | ||||
|  | @ -25536,320 +25549,229 @@ Extra options to pass to the Prometheus node exporter. | |||
| 
 | ||||
| @subsubheading Zabbix server | ||||
| @cindex zabbix zabbix-server | ||||
| Zabbix provides monitoring metrics, among others network utilization, CPU load | ||||
| and disk space consumption: | ||||
| Zabbix is a high performance monitoring system that can collect data from a | ||||
| variety of sources and provide the results in a web-based interface.  Alerting | ||||
| and reporting is built-in, as well as @dfn{templates} for common operating | ||||
| system metrics such as network utilization, CPU load, and disk space consumption. | ||||
| 
 | ||||
| @itemize | ||||
| @item High performance, high capacity (able to monitor hundreds of thousands of devices). | ||||
| @item Auto-discovery of servers and network devices and interfaces. | ||||
| @item Low-level discovery, allows to automatically start monitoring new items, file systems or network interfaces among others. | ||||
| @item Distributed monitoring with centralized web administration. | ||||
| @item Native high performance agents. | ||||
| @item SLA, and ITIL KPI metrics on reporting. | ||||
| @item High-level (business) view of monitored resources through user-defined visual console screens and dashboards. | ||||
| @item Remote command execution through Zabbix proxies. | ||||
| @end itemize | ||||
| This service provides the central Zabbix monitoring service; you also need | ||||
| @ref{zabbix-front-end,@code{zabbix-front-end-service-type}} to configure Zabbix | ||||
| and display results, and optionally @ref{zabbix-agent, | ||||
| @code{zabbix-agent-service-type}} on machines that should be monitored (other | ||||
| data sources are supported, such as @ref{prometheus-node-exporter, | ||||
| Prometheus Node Exporter}). | ||||
| 
 | ||||
| @defvar {Scheme variable} zabbix-server-service-type | ||||
| This is the service type for the Zabbix server service.  Its value must be a | ||||
| @code{zabbix-server-configuration} record, shown below. | ||||
| @end defvar | ||||
| 
 | ||||
| @c %start of fragment | ||||
| 
 | ||||
| @deftp {Data Type} zabbix-server-configuration | ||||
| Available @code{zabbix-server-configuration} fields are: | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-server-configuration} parameter} package zabbix-server | ||||
| @table @asis | ||||
| @item @code{zabbix-server} (default: @code{zabbix-server}) (type: file-like) | ||||
| The zabbix-server package. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-server-configuration} parameter} string user | ||||
| @item @code{user} (default: @code{"zabbix"}) (type: string) | ||||
| User who will run the Zabbix server. | ||||
| 
 | ||||
| Defaults to @samp{"zabbix"}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-server-configuration} parameter} group group | ||||
| @item @code{group} (default: @code{"zabbix"}) (type: group) | ||||
| Group who will run the Zabbix server. | ||||
| 
 | ||||
| Defaults to @samp{"zabbix"}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-server-configuration} parameter} string db-host | ||||
| @item @code{db-host} (default: @code{"127.0.0.1"}) (type: string) | ||||
| Database host name. | ||||
| 
 | ||||
| Defaults to @samp{"127.0.0.1"}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-server-configuration} parameter} string db-name | ||||
| @item @code{db-name} (default: @code{"zabbix"}) (type: string) | ||||
| Database name. | ||||
| 
 | ||||
| Defaults to @samp{"zabbix"}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-server-configuration} parameter} string db-user | ||||
| @item @code{db-user} (default: @code{"zabbix"}) (type: string) | ||||
| Database user. | ||||
| 
 | ||||
| Defaults to @samp{"zabbix"}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-server-configuration} parameter} string db-password | ||||
| @item @code{db-password} (default: @code{""}) (type: string) | ||||
| Database password.  Please, use @code{include-files} with | ||||
| @code{DBPassword=SECRET} inside a specified file instead. | ||||
| 
 | ||||
| Defaults to @samp{""}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-server-configuration} parameter} number db-port | ||||
| @item @code{db-port} (default: @code{5432}) (type: number) | ||||
| Database port. | ||||
| 
 | ||||
| Defaults to @samp{5432}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-server-configuration} parameter} string log-type | ||||
| @item @code{log-type} (default: @code{""}) (type: string) | ||||
| Specifies where log messages are written to: | ||||
| 
 | ||||
| @itemize @bullet | ||||
| @item | ||||
| @code{system} - syslog. | ||||
| 
 | ||||
| @item | ||||
| @code{file} - file specified with @code{log-file} parameter. | ||||
| @item @code{system} - syslog. | ||||
| 
 | ||||
| @item | ||||
| @code{console} - standard output. | ||||
| @item @code{file} - file specified with @code{log-file} parameter. | ||||
| 
 | ||||
| @item @code{console} - standard output. | ||||
| 
 | ||||
| @end itemize | ||||
| 
 | ||||
| Defaults to @samp{""}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-server-configuration} parameter} string log-file | ||||
| @item @code{log-file} (default: @code{"/var/log/zabbix/server.log"}) (type: string) | ||||
| Log file name for @code{log-type} @code{file} parameter. | ||||
| 
 | ||||
| Defaults to @samp{"/var/log/zabbix/server.log"}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-server-configuration} parameter} string pid-file | ||||
| @item @code{pid-file} (default: @code{"/var/run/zabbix/zabbix_server.pid"}) (type: string) | ||||
| Name of PID file. | ||||
| 
 | ||||
| Defaults to @samp{"/var/run/zabbix/zabbix_server.pid"}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-server-configuration} parameter} string ssl-ca-location | ||||
| @item @code{ssl-ca-location} (default: @code{"/etc/ssl/certs/ca-certificates.crt"}) (type: string) | ||||
| The location of certificate authority (CA) files for SSL server | ||||
| certificate verification. | ||||
| 
 | ||||
| Defaults to @samp{"/etc/ssl/certs/ca-certificates.crt"}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-server-configuration} parameter} string ssl-cert-location | ||||
| @item @code{ssl-cert-location} (default: @code{"/etc/ssl/certs"}) (type: string) | ||||
| Location of SSL client certificates. | ||||
| 
 | ||||
| Defaults to @samp{"/etc/ssl/certs"}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-server-configuration} parameter} string extra-options | ||||
| @item @code{extra-options} (default: @code{""}) (type: extra-options) | ||||
| Extra options will be appended to Zabbix server configuration file. | ||||
| 
 | ||||
| Defaults to @samp{""}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-server-configuration} parameter} include-files include-files | ||||
| @item @code{include-files} (default: @code{()}) (type: include-files) | ||||
| You may include individual files or all files in a directory in the | ||||
| configuration file. | ||||
| 
 | ||||
| Defaults to @samp{()}. | ||||
| @end table | ||||
| 
 | ||||
| @end deftp | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @c %end of fragment | ||||
| 
 | ||||
| @anchor{zabbix-agent} | ||||
| @subsubheading Zabbix agent | ||||
| @cindex zabbix zabbix-agent | ||||
| 
 | ||||
| Zabbix agent gathers information for Zabbix server. | ||||
| The Zabbix agent gathers information about the running system for the Zabbix | ||||
| monitoring server.  It has a variety of built-in checks, and can be extended | ||||
| with custom | ||||
| @uref{https://www.zabbix.com/documentation/current/en/manual/config/items/userparameters, | ||||
| @dfn{user parameters}}. | ||||
| 
 | ||||
| @defvar {Scheme variable} zabbix-agent-service-type | ||||
| This is the service type for the Zabbix agent service.  Its value must be a | ||||
| @code{zabbix-agent-configuration} record, shown below. | ||||
| @end defvar | ||||
| 
 | ||||
| @c %start of fragment | ||||
| 
 | ||||
| @deftp {Data Type} zabbix-agent-configuration | ||||
| Available @code{zabbix-agent-configuration} fields are: | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-agent-configuration} parameter} package zabbix-agent | ||||
| @table @asis | ||||
| @item @code{zabbix-agent} (default: @code{zabbix-agentd}) (type: file-like) | ||||
| The zabbix-agent package. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-agent-configuration} parameter} string user | ||||
| @item @code{user} (default: @code{"zabbix"}) (type: string) | ||||
| User who will run the Zabbix agent. | ||||
| 
 | ||||
| Defaults to @samp{"zabbix"}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-agent-configuration} parameter} group group | ||||
| @item @code{group} (default: @code{"zabbix"}) (type: group) | ||||
| Group who will run the Zabbix agent. | ||||
| 
 | ||||
| Defaults to @samp{"zabbix"}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-agent-configuration} parameter} string hostname | ||||
| @item @code{hostname} (default: @code{""}) (type: string) | ||||
| Unique, case sensitive hostname which is required for active checks and | ||||
| must match hostname as configured on the server. | ||||
| 
 | ||||
| Defaults to @samp{""}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-agent-configuration} parameter} string log-type | ||||
| @item @code{log-type} (default: @code{""}) (type: string) | ||||
| Specifies where log messages are written to: | ||||
| 
 | ||||
| @itemize @bullet | ||||
| @item | ||||
| @code{system} - syslog. | ||||
| 
 | ||||
| @item | ||||
| @code{file} - file specified with @code{log-file} parameter. | ||||
| @item @code{file} - file specified with | ||||
| @code{log-file} parameter. | ||||
| 
 | ||||
| @item | ||||
| @code{console} - standard output. | ||||
| @item @code{console} - standard output. | ||||
| 
 | ||||
| @end itemize | ||||
| 
 | ||||
| Defaults to @samp{""}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-agent-configuration} parameter} string log-file | ||||
| @item @code{log-file} (default: @code{"/var/log/zabbix/agent.log"}) (type: string) | ||||
| Log file name for @code{log-type} @code{file} parameter. | ||||
| 
 | ||||
| Defaults to @samp{"/var/log/zabbix/agent.log"}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-agent-configuration} parameter} string pid-file | ||||
| @item @code{pid-file} (default: @code{"/var/run/zabbix/zabbix_agent.pid"}) (type: string) | ||||
| Name of PID file. | ||||
| 
 | ||||
| Defaults to @samp{"/var/run/zabbix/zabbix_agent.pid"}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-agent-configuration} parameter} list server | ||||
| @item @code{server} (default: @code{("127.0.0.1")}) (type: list) | ||||
| List of IP addresses, optionally in CIDR notation, or hostnames of | ||||
| Zabbix servers and Zabbix proxies.  Incoming connections will be | ||||
| accepted only from the hosts listed here. | ||||
| 
 | ||||
| Defaults to @samp{("127.0.0.1")}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-agent-configuration} parameter} list server-active | ||||
| @item @code{server-active} (default: @code{("127.0.0.1")}) (type: list) | ||||
| List of IP:port (or hostname:port) pairs of Zabbix servers and Zabbix | ||||
| proxies for active checks.  If port is not specified, default port is | ||||
| used.  If this parameter is not specified, active checks are disabled. | ||||
| 
 | ||||
| Defaults to @samp{("127.0.0.1")}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-agent-configuration} parameter} string extra-options | ||||
| @item @code{extra-options} (default: @code{""}) (type: extra-options) | ||||
| Extra options will be appended to Zabbix server configuration file. | ||||
| 
 | ||||
| Defaults to @samp{""}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-agent-configuration} parameter} include-files include-files | ||||
| @item @code{include-files} (default: @code{()}) (type: include-files) | ||||
| You may include individual files or all files in a directory in the | ||||
| configuration file. | ||||
| 
 | ||||
| Defaults to @samp{()}. | ||||
| @end table | ||||
| 
 | ||||
| @end deftp | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @c %end of fragment | ||||
| 
 | ||||
| @anchor{zabbix-front-end} | ||||
| @subsubheading Zabbix front-end | ||||
| @cindex zabbix zabbix-front-end | ||||
| 
 | ||||
| This service provides a WEB interface to Zabbix server. | ||||
| The Zabbix front-end provides a web interface to Zabbix.  It does not need | ||||
| to run on the same machine as the Zabbix server.  This service works by | ||||
| extending the @ref{PHP-FPM} and @ref{NGINX} services with the configuration | ||||
| necessary for loading the Zabbix user interface. | ||||
| 
 | ||||
| @defvar {Scheme variable} zabbix-front-end-service-type | ||||
| This is the service type for the Zabbix web frontend.  Its value must be a | ||||
| @code{zabbix-front-end-configuration} record, shown below. | ||||
| @end defvar | ||||
| 
 | ||||
| @c %start of fragment | ||||
| 
 | ||||
| @deftp {Data Type} zabbix-front-end-configuration | ||||
| Available @code{zabbix-front-end-configuration} fields are: | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-front-end-configuration} parameter} nginx-server-configuration-list nginx | ||||
| NGINX configuration. | ||||
| @table @asis | ||||
| @item @code{zabbix-server} (default: @code{zabbix-server}) (type: file-like) | ||||
| The Zabbix server package to use. | ||||
| 
 | ||||
| @end deftypevr | ||||
| @item @code{nginx} (default: @code{()}) (type: list) | ||||
| List of @ref{nginx-server-configuration,@code{nginx-server-configuration}} | ||||
| blocks for the Zabbix front-end.  When empty, a default that listens on | ||||
| port 80 is used. | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-front-end-configuration} parameter} string db-host | ||||
| @item @code{db-host} (default: @code{"localhost"}) (type: string) | ||||
| Database host name. | ||||
| 
 | ||||
| Defaults to @samp{"localhost"}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-front-end-configuration} parameter} number db-port | ||||
| @item @code{db-port} (default: @code{5432}) (type: number) | ||||
| Database port. | ||||
| 
 | ||||
| Defaults to @samp{5432}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-front-end-configuration} parameter} string db-name | ||||
| @item @code{db-name} (default: @code{"zabbix"}) (type: string) | ||||
| Database name. | ||||
| 
 | ||||
| Defaults to @samp{"zabbix"}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-front-end-configuration} parameter} string db-user | ||||
| @item @code{db-user} (default: @code{"zabbix"}) (type: string) | ||||
| Database user. | ||||
| 
 | ||||
| Defaults to @samp{"zabbix"}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-front-end-configuration} parameter} string db-password | ||||
| @item @code{db-password} (default: @code{""}) (type: string) | ||||
| Database password.  Please, use @code{db-secret-file} instead. | ||||
| 
 | ||||
| Defaults to @samp{""}. | ||||
| @item @code{db-secret-file} (default: @code{""}) (type: string) | ||||
| Secret file which will be appended to @file{zabbix.conf.php} file.  This | ||||
| file contains credentials for use by Zabbix front-end.  You are expected | ||||
| to create it manually. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-front-end-configuration} parameter} string db-secret-file | ||||
| Secret file containing the credentials for the Zabbix front-end.  The value | ||||
| must be a local file name, not a G-expression.  You are expected to create | ||||
| this file manually.  Its contents will be copied into @file{zabbix.conf.php} | ||||
| as the value of @code{$DB['PASSWORD']}. | ||||
| 
 | ||||
| Defaults to @samp{""}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-front-end-configuration} parameter} string zabbix-host | ||||
| @item @code{zabbix-host} (default: @code{"localhost"}) (type: string) | ||||
| Zabbix server hostname. | ||||
| 
 | ||||
| Defaults to @samp{"localhost"}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{zabbix-front-end-configuration} parameter} number zabbix-port | ||||
| @item @code{zabbix-port} (default: @code{10051}) (type: number) | ||||
| Zabbix server port. | ||||
| 
 | ||||
| Defaults to @samp{10051}. | ||||
| @end table | ||||
| 
 | ||||
| @end deftypevr | ||||
| @end deftp | ||||
| 
 | ||||
| 
 | ||||
| @c %end of fragment | ||||
|  | @ -26823,6 +26745,7 @@ valued G-expression. | |||
| @end table | ||||
| @end deffn | ||||
| 
 | ||||
| @anchor{nginx-server-configuration} | ||||
| @deftp {Data Type} nginx-server-configuration | ||||
| Data type representing the configuration of an nginx server block. | ||||
| This type has the following parameters: | ||||
|  | @ -27273,6 +27196,8 @@ capability also has to be configured on the front-end as well. | |||
| @end table | ||||
| @end deftp | ||||
| 
 | ||||
| @anchor{PHP-FPM} | ||||
| @subsubheading PHP-FPM | ||||
| @cindex php-fpm | ||||
| PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation | ||||
| with some additional features useful for sites of any size. | ||||
|  | @ -29911,6 +29836,34 @@ Defaults to @samp{"powersave"}. | |||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer start-charge-thresh-bat0 | ||||
| Percentage when battery 0 should begin charging.  Only supported on some laptops. | ||||
| 
 | ||||
| Defaults to @samp{disabled}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer stop-charge-thresh-bat0 | ||||
| Percentage when battery 0 should stop charging.  Only supported on some laptops. | ||||
| 
 | ||||
| Defaults to @samp{disabled}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer start-charge-thresh-bat1 | ||||
| Percentage when battery 1 should begin charging.  Only supported on some laptops. | ||||
| 
 | ||||
| Defaults to @samp{disabled}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer stop-charge-thresh-bat1 | ||||
| Percentage when battery 1 should stop charging.  Only supported on some laptops. | ||||
| 
 | ||||
| Defaults to @samp{disabled}. | ||||
| 
 | ||||
| @end deftypevr | ||||
| 
 | ||||
| @deftypevr {@code{tlp-configuration} parameter} string radeon-power-profile-on-ac | ||||
| Radeon graphics clock speed level.  Alternatives are low, mid, high, | ||||
| auto, default. | ||||
|  | @ -33637,6 +33590,92 @@ Extra command line options for @code{guix-data-service-process-jobs}. | |||
| @end table | ||||
| @end deftp | ||||
| 
 | ||||
| @subsubheading Nar Herder | ||||
| The @uref{https://git.cbaines.net/guix/nar-herder/about/,Nar Herder} is | ||||
| a utility for managing a collection of nars. | ||||
| 
 | ||||
| @defvar {Scheme Variable} nar-herder-type | ||||
| Service type for the Guix Data Service.  Its value must be a | ||||
| @code{nar-herder-configuration} object.  The service optionally | ||||
| extends the getmail service, as the guix-commits mailing list is used to | ||||
| find out about changes in the Guix git repository. | ||||
| @end defvar | ||||
| 
 | ||||
| @deftp {Data Type} nar-herder-configuration | ||||
| Data type representing the configuration of the Guix Data Service. | ||||
| 
 | ||||
| @table @asis | ||||
| @item @code{package} (default: @code{nar-herder}) | ||||
| The Nar Herder package to use. | ||||
| 
 | ||||
| @item @code{user} (default: @code{"nar-herder"}) | ||||
| The system user to run the service as. | ||||
| 
 | ||||
| @item @code{group} (default: @code{"nar-herder"}) | ||||
| The system group to run the service as. | ||||
| 
 | ||||
| @item @code{port} (default: @code{8734}) | ||||
| The port to bind the server to. | ||||
| 
 | ||||
| @item @code{host} (default: @code{"127.0.0.1"}) | ||||
| The host to bind the server to. | ||||
| 
 | ||||
| @item @code{mirror} (default: @code{#f}) | ||||
| Optional URL of the other Nar Herder instance which should be mirrored. | ||||
| This means that this Nar Herder instance will download it's database, | ||||
| and keep it up to date. | ||||
| 
 | ||||
| @item @code{database} (default: @code{"/var/lib/nar-herder/nar_herder.db"}) | ||||
| Location for the database.  If this Nar Herder instance is mirroring | ||||
| another, the database will be downloaded if it doesn't exist.  If this | ||||
| Nar Herder instance isn't mirroring another, an empty database will be | ||||
| created. | ||||
| 
 | ||||
| @item @code{database-dump} (default: @code{"/var/lib/nar-herder/nar_herder_dump.db"}) | ||||
| Location of the database dump.  This is created and regularly updated by | ||||
| taking a copy of the database.  This is the version of the database that | ||||
| is available to download. | ||||
| 
 | ||||
| @item @code{storage} (default: @code{#f}) | ||||
| Optional location in which to store nars. | ||||
| 
 | ||||
| @item @code{storage-limit} (default: @code{"none"}) | ||||
| Limit in bytes for the nars stored in the storage location.  This can | ||||
| also be set to ``none'' so that there is no limit. | ||||
| 
 | ||||
| When the storage location exceeds this size, nars are removed according | ||||
| to the nar removal criteria. | ||||
| 
 | ||||
| @item @code{storage-nar-removal-criteria} (default: @code{'()}) | ||||
| Criteria used to remove nars from the storage location.  These are used | ||||
| in conjunction with the storage limit. | ||||
| 
 | ||||
| When the storage location exceeds the storage limit size, nars will be | ||||
| checked against the nar removal criteria and if any of the criteria | ||||
| match, they will be removed.  This will continue until the storage | ||||
| location is below the storage limit size. | ||||
| 
 | ||||
| Each criteria is specified by a string, then an equals sign, then | ||||
| another string. Currently, only one criteria is supported, checking if a | ||||
| nar is stored on another Nar Herder instance. | ||||
| 
 | ||||
| @item @code{ttl} (default: @code{#f}) | ||||
| Produce @code{Cache-Control} HTTP headers that advertise a time-to-live | ||||
| (TTL) of @var{ttl}.  @var{ttl} must denote a duration: @code{5d} means 5 | ||||
| days, @code{1m} means 1 month, and so on. | ||||
| 
 | ||||
| This allows the user's Guix to keep substitute information in cache for | ||||
| @var{ttl}. | ||||
| 
 | ||||
| @item @code{negative-ttl} (default: @code{#f}) | ||||
| Similarly produce @code{Cache-Control} HTTP headers to advertise the | ||||
| time-to-live (TTL) of @emph{negative} lookups---missing store items, for | ||||
| which the HTTP 404 code is returned.  By default, no negative TTL is | ||||
| advertised. | ||||
| 
 | ||||
| @end table | ||||
| @end deftp | ||||
| 
 | ||||
| @node Linux Services | ||||
| @subsection Linux Services | ||||
| 
 | ||||
|  | @ -35724,9 +35763,21 @@ bootloader boot menu: | |||
| @table @code | ||||
| 
 | ||||
| @item describe | ||||
| Describe the current system generation: its file name, the kernel and | ||||
| Describe the running system generation: its file name, the kernel and | ||||
| bootloader used, etc., as well as provenance information when available. | ||||
| 
 | ||||
| @quotation Note | ||||
| The @emph{running} system generation---referred to by | ||||
| @file{/run/current-system}---is not necessarily the @emph{current} | ||||
| system generation---referred to by @file{/var/guix/profiles/system}: it | ||||
| differs when, for instance, you chose from the bootloader menu to boot | ||||
| an older generation. | ||||
| 
 | ||||
| It can also differ from the @emph{booted} system generation---referred | ||||
| to by @file{/run/booted-system}---for instance because you reconfigured | ||||
| the system in the meantime. | ||||
| @end quotation | ||||
| 
 | ||||
| @item list-generations | ||||
| List a summary of each generation of the operating system available on | ||||
| disk, in a human-readable way.  This is similar to the | ||||
|  | @ -35902,6 +35953,30 @@ be accomplished with the following operating system configuration snippet: | |||
| For more information regarding the format of the @file{sudoers} file, | ||||
| consult @command{man sudoers}. | ||||
| 
 | ||||
| Once you've deployed a system on a set of machines, you may find it | ||||
| useful to run a command on all of them.  The @option{--execute} or | ||||
| @option{-x} option lets you do that; the example below runs | ||||
| @command{uname -a} on all the machines listed in the deployment file: | ||||
| 
 | ||||
| @example | ||||
| guix deploy @var{file} -x -- uname -a | ||||
| @end example | ||||
| 
 | ||||
| One thing you may often need to do after deployment is restart specific | ||||
| services on all the machines, which you can do like so: | ||||
| 
 | ||||
| @example | ||||
| guix deploy @var{file} -x -- herd restart @var{service} | ||||
| @end example | ||||
| 
 | ||||
| The @command{guix deploy -x} command returns zero if and only if the | ||||
| command succeeded on all the machines. | ||||
| 
 | ||||
| @c FIXME/TODO: Separate the API doc from the CLI doc. | ||||
| 
 | ||||
| Below are the data types you need to know about when writing a | ||||
| deployment file. | ||||
| 
 | ||||
| @deftp {Data Type} machine | ||||
| This is the data type representing a single machine in a heterogeneous Guix | ||||
| deployment. | ||||
|  | @ -37461,6 +37536,7 @@ services)}. | |||
| * Shells: Shells Home Services.          POSIX shells, Bash, Zsh. | ||||
| * Mcron: Mcron Home Service.             Scheduled User's Job Execution. | ||||
| * Shepherd: Shepherd Home Service.       Managing User's Daemons. | ||||
| * Desktop: Desktop Home Services.        Services for graphical environments. | ||||
| @end menu | ||||
| @c In addition to that Home Services can provide | ||||
| 
 | ||||
|  | @ -37848,6 +37924,85 @@ mechanism instead (@pxref{Shepherd Services}). | |||
| @end table | ||||
| @end deftp | ||||
| 
 | ||||
| @node Desktop Home Services | ||||
| @subsection Desktop Home Services | ||||
| 
 | ||||
| The @code{(gnu home services desktop)} module provides services that you | ||||
| may find useful on ``desktop'' systems running a graphical user | ||||
| environment such as Xorg. | ||||
| 
 | ||||
| @defvr {Scheme Variable} home-redshift-service-type | ||||
| This is the service type for @uref{https://github.com/jonls/redshift, | ||||
| Redshift}, a program that adjusts the display color temperature | ||||
| according to the time of day.  Its associated value must be a | ||||
| @code{home-redshift-configuration} record, as shown below. | ||||
| 
 | ||||
| A typical configuration, where we manually specify the latitude and | ||||
| longitude, might look like this: | ||||
| 
 | ||||
| @lisp | ||||
| (service home-redshift-service-type | ||||
|          (home-redshift-configuration | ||||
|           (location-provider 'manual) | ||||
|           (latitude 35.81)    ;northern hemisphere | ||||
|           (longitude -0.80))) ;west of Greenwich | ||||
| @end lisp | ||||
| @end defvr | ||||
| 
 | ||||
| @deftp {Data Type} home-redshift-configuration | ||||
| Available @code{home-redshift-configuration} fields are: | ||||
| 
 | ||||
| @table @asis | ||||
| @item @code{redshift} (default: @code{redshift}) (type: file-like) | ||||
| Redshift package to use. | ||||
| 
 | ||||
| @item @code{location-provider} (default: @code{geoclue2}) (type: symbol) | ||||
| Geolocation provider---@code{'manual} or @code{'geoclue2}.  In the | ||||
| former case, you must also specify the @code{latitude} and | ||||
| @code{longitude} fields so Redshift can determine daytime at your place. | ||||
| In the latter case, the Geoclue system service must be running; it will | ||||
| be queried for location information. | ||||
| 
 | ||||
| @item @code{adjustment-method} (default: @code{randr}) (type: symbol) | ||||
| Color adjustment method. | ||||
| 
 | ||||
| @item @code{daytime-temperature} (default: @code{6500}) (type: integer) | ||||
| Daytime color temperature (kelvins). | ||||
| 
 | ||||
| @item @code{nighttime-temperature} (default: @code{4500}) (type: integer) | ||||
| Nighttime color temperature (kelvins). | ||||
| 
 | ||||
| @item @code{daytime-brightness} (default: @code{disabled}) (type: maybe-inexact-number) | ||||
| Daytime screen brightness, between 0.1 and 1.0. | ||||
| 
 | ||||
| @item @code{nighttime-brightness} (default: @code{disabled}) (type: maybe-inexact-number) | ||||
| Nighttime screen brightness, between 0.1 and 1.0. | ||||
| 
 | ||||
| @item @code{latitude} (default: @code{disabled}) (type: maybe-inexact-number) | ||||
| Latitude, when @code{location-provider} is @code{'manual}. | ||||
| 
 | ||||
| @item @code{longitude} (default: @code{disabled}) (type: maybe-inexact-number) | ||||
| Longitude, when @code{location-provider} is @code{'manual}. | ||||
| 
 | ||||
| @item @code{dawn-time} (default: @code{disabled}) (type: maybe-string) | ||||
| Custom time for the transition from night to day in the | ||||
| morning---@code{"HH:MM"} format.  When specified, solar elevation is not | ||||
| used to determine the daytime/nighttime period. | ||||
| 
 | ||||
| @item @code{dusk-time} (default: @code{disabled}) (type: maybe-string) | ||||
| Likewise, custom time for the transition from day to night in the | ||||
| evening. | ||||
| 
 | ||||
| @item @code{extra-content} (default: @code{""}) (type: raw-configuration-string) | ||||
| Extra content appended as-is to the Redshift configuration file.  Run | ||||
| @command{man redshift} for more information about the configuration file | ||||
| format. | ||||
| 
 | ||||
| @end table | ||||
| 
 | ||||
| @end deftp | ||||
| 
 | ||||
| 
 | ||||
| @node Invoking guix home | ||||
| @section Invoking @code{guix home} | ||||
| 
 | ||||
|  | @ -38072,6 +38227,16 @@ Consider the home-environment @var{expr} evaluates to. | |||
| This is an alternative to specifying a file which evaluates to a home | ||||
| environment. | ||||
| 
 | ||||
| @item --allow-downgrades | ||||
| Instruct @command{guix home reconfigure} to allow system downgrades. | ||||
| 
 | ||||
| Just like @command{guix system}, @command{guix home reconfigure}, by | ||||
| default, prevents you from downgrading your home to older or unrelated | ||||
| revisions compared to the channel revisions that were used to deploy | ||||
| it---those shown by @command{guix home describe}.  Using | ||||
| @option{--allow-downgrades} allows you to bypass that check, at the risk | ||||
| of downgrading your home---be careful! | ||||
| 
 | ||||
| @end table | ||||
| 
 | ||||
| @node Documentation | ||||
|  |  | |||
|  | @ -23,7 +23,7 @@ | |||
| 
 | ||||
| # If adding a language, update the following variables, and info_TEXINFOS.
 | ||||
| MANUAL_LANGUAGES = de es fa fi fr it ko pt_BR ru sk zh_CN | ||||
| COOKBOOK_LANGUAGES = de es fa fi fr ko ru sk zh_Hans | ||||
| COOKBOOK_LANGUAGES = de es fa fi fr ko pt_BR ru sk zh_Hans | ||||
| 
 | ||||
| # Arg1: A list of languages codes.
 | ||||
| # Arg2: The file name stem.
 | ||||
|  | @ -50,6 +50,7 @@ info_TEXINFOS = %D%/guix.texi			\ | |||
|   %D%/guix-cookbook.fi.texi			\
 | ||||
|   %D%/guix-cookbook.fr.texi			\
 | ||||
|   %D%/guix-cookbook.ko.texi			\
 | ||||
|   %D%/guix-cookbook.pt_BR.texi			\
 | ||||
|   %D%/guix-cookbook.ru.texi			\
 | ||||
|   %D%/guix-cookbook.sk.texi			\
 | ||||
|   %D%/guix-cookbook.zh_Hans.texi | ||||
|  |  | |||
|  | @ -302,9 +302,6 @@ | |||
|   (allow guix_daemon_t | ||||
|          guix_daemon_conf_t | ||||
|          (lnk_file (create getattr rename unlink read))) | ||||
|   (allow guix_daemon_t | ||||
|          guix_daemon_conf_t | ||||
|          (sock_file (write))) | ||||
|   (allow guix_daemon_t net_conf_t | ||||
|          (file (getattr open read))) | ||||
|   (allow guix_daemon_t net_conf_t | ||||
|  | @ -358,7 +355,7 @@ | |||
|          (unix_stream_socket (listen))) | ||||
|   (allow guix_daemon_t | ||||
|          guix_daemon_conf_t | ||||
|          (sock_file (create unlink))) | ||||
|          (sock_file (create unlink write))) | ||||
|   (allow guix_daemon_t | ||||
|          self | ||||
|          (unix_stream_socket (create | ||||
|  |  | |||
							
								
								
									
										88
									
								
								etc/news.scm
									
										
									
									
									
								
							
							
						
						
									
										88
									
								
								etc/news.scm
									
										
									
									
									
								
							|  | @ -9,7 +9,7 @@ | |||
| ;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> | ||||
| ;; Copyright © 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com> | ||||
| ;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> | ||||
| ;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||||
| ;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||||
| ;; Copyright © 2021 Leo Famulari <leo@famulari.name> | ||||
| ;; Copyright © 2021 Zhu Zihao <all_but_last@163.com> | ||||
| ;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com> | ||||
|  | @ -25,6 +25,64 @@ | |||
| (channel-news | ||||
|  (version 0) | ||||
| 
 | ||||
|  (entry (commit "96d7535b030c65b2d8cb0bea52c4bd96cbdefaf0") | ||||
|         (title | ||||
|          (en "ci.guix.gnu.org to stop offering Gzip substitutes") | ||||
|          (de "ci.guix.gnu.org wird keine Substitute mit Gzip mehr anbieten")) | ||||
|         (body | ||||
|          (en "This is a notice to let you know that starting next | ||||
| month (2022/03/01), Gzip-compressed substitutes will no longer be available, | ||||
| which means that Guix daemons from a revision older than commit | ||||
| @samp{3092f1b835d79655eecb2f8a79dda20ad9ba6bd6} (2019/06/02) will loose the | ||||
| ability to download binary substitutes.  Starting next month, only lzip and | ||||
| zstd substitutes will be offered.  Dropping Gzip substitutes will free about | ||||
| 6.5 TiB of storage space from the build farm.") | ||||
|          (de "Hiermit weisen wir Sie darauf hin, dass ab nächstem | ||||
| Monat (2022/03/01) keine Gzip-komprimierten Substitute mehr zur Verfügung | ||||
| stehen.  Dadurch können Guix-Daemons, deren Version älter ist als Commit | ||||
| @samp{3092f1b835d79655eecb2f8a79dda20ad9ba6bd6} (2019/06/02), keine binären | ||||
| Substitute mehr beziehen.  Ab kommendem Monat werden nur Substitute mit lzip | ||||
| und zstd angeboten.  Indem wir auf Gzip-Substitute verzichten, sparen wir 6.5 | ||||
| TiB Speicherplatz auf der Erstellungsfarm."))) | ||||
| 
 | ||||
|  (entry (commit "5c13484646069064c834bbd3cd02c3bc80d94cb6") | ||||
|         (title | ||||
|          (en "New @option{--execute} option to @command{guix deploy}") | ||||
|          (de "Neue Option @option{--execute} für @command{guix deploy}") | ||||
|          (fr "Nouvelle option @option{--execute} pour @command{guix deploy}")) | ||||
|         (body | ||||
|          (en "The @command{guix deploy} command has a new @option{--execute} | ||||
| or @option{-x} option, which allows you to execute a command on all the | ||||
| machines that your configuration file specifies, as in this example: | ||||
| 
 | ||||
| @example | ||||
| guix deploy deploy.scm -x -- herd restart guix-daemon | ||||
| @end example | ||||
| 
 | ||||
| This is no substitute for full-featured tools such as pdsh but it is a useful | ||||
| helper.") | ||||
|          (de "Der Befehl @command{guix deploy} verfügt über eine neue Option | ||||
| @option{--execute} oder @option{-x}, mit der Sie einen Befehl auf allen in der | ||||
| Konfigurationsdatei angegebenen Maschinen ausführen können.  Zum Beispiel: | ||||
| 
 | ||||
| @example | ||||
| guix deploy deploy.scm -x -- herd restart guix-daemon | ||||
| @end example | ||||
| 
 | ||||
| Dies ist kein Ersatz für vollumfängliche Werkzeuge wie pdsh, aber es kann doch | ||||
| von Nutzen sein.") | ||||
|          (fr "La commande @command{guix deploy} a une nouvelle option | ||||
| @option{--execute} ou @option{-x} qui permet d'exécuter une commande sur | ||||
| toutes les machines spécifiées dans son fichier de configuration, comme dans | ||||
| cet exemple : | ||||
| 
 | ||||
| @example | ||||
| guix deploy deploy.scm -x -- herd restart guix-daemon | ||||
| @end example | ||||
| 
 | ||||
| Ça ne remplace pas les outils sophistiqués comme pdsh mais c'est bien | ||||
| pratique."))) | ||||
| 
 | ||||
|  (entry (commit "c4fe13c294cc1e31dd8a49ce3981f603fb169e0a") | ||||
|         (title | ||||
|          (en "@command{guix style} can format package definitions") | ||||
|  | @ -229,14 +287,14 @@ d'informations."))) | |||
| 
 | ||||
|  (entry (commit "52cb5cf5b852117b5151a67af187d80764849ad3") | ||||
|         (title | ||||
|           (en "Icedove 91: profile folder moved to @file{~/.thunderbird}") | ||||
|           (de "Icedove 91: Profilordner jetzt unter @file{~/.thunderbird}")) | ||||
|          (en "Icedove 91: profile folder moved to @file{~/.thunderbird}") | ||||
|          (de "Icedove 91: Profilordner jetzt unter @file{~/.thunderbird}")) | ||||
|         (body | ||||
|           (en "Icedove 91 expects your profile folder under @file{~/.thunderbird}. | ||||
|          (en "Icedove 91 expects your profile folder under @file{~/.thunderbird}. | ||||
| You need to manually copy your Icedove profiles from @file{~/.icedove} to | ||||
| @file{~./thunderbird}.  It may be required to start Icedove with | ||||
| @option{--ProfileManager} for the first time after the migration.") | ||||
|           (de "Icedove 91 erwartet Ihren Profilordner unter @file{~/.thunderbird}. | ||||
|          (de "Icedove 91 erwartet Ihren Profilordner unter @file{~/.thunderbird}. | ||||
| Dafür müssen sie Ihre Icedove-Profile von @file{~/.icedove} nach | ||||
| @file{~/.thunderbird} kopieren.  Eventuell muss Icedove das erste Mal nach der | ||||
| Migration mit @option{--ProfileManager} gestartet werden."))) | ||||
|  | @ -831,7 +889,7 @@ Nous conseillons de mettre à jour @command{guix-daemon}.  Lancer @command{info | |||
| \"(guix.fr) Mettre à niveau Guix\"} pour voir comment faire.  Voir | ||||
| @uref{https://issues.guix.gnu.org/47229} pour plus d'informations sur cette | ||||
| faille.") | ||||
|                   (nl "In @command{guix-daemon} werd een beveiligingsprobleem | ||||
|          (nl "In @command{guix-daemon} werd een beveiligingsprobleem | ||||
| gevonden dat kan leiden tot de escalatie van lokale bevoegdheden.  Het | ||||
| probleem doet zich voor bij installaties met meerdere gebruikers waarop een | ||||
| lokale @command{guix-daemon} draait. | ||||
|  | @ -921,7 +979,7 @@ guix import go golang.org/x/sys | |||
| @end example | ||||
| 
 | ||||
| Lancez @command{info \"(guix.fr) Invoquer guix import\"} pour en savoir plus.") | ||||
|                   (nl "Met de nieuwe @command{guix import go}-opdracht kunnen | ||||
|          (nl "Met de nieuwe @command{guix import go}-opdracht kunnen | ||||
| pakketschrijvers een pakketdefinitie of -sjabloon aanmaken, op basis van de | ||||
| naam van een Go-pakket te vinden op @url{https://proxy.golang.org}: | ||||
| 
 | ||||
|  | @ -934,28 +992,28 @@ informatie."))) | |||
| 
 | ||||
|  (entry (commit "1b5b882120daf7d111aa351a919a90e818324347") | ||||
|         (title | ||||
|           (en "The @code{linux-libre} kernel is updated to 5.11.2") | ||||
|           (de "Der Kernel @code{linux-libre} wird auf 5.11.2 aktualisiert") | ||||
|           (fr "Le noyau @code{linux-libre} est mis à jour vers la 5.11.2") | ||||
|           (nl "De @code{linux-libre}-kernel werd bijgewertk naar 5.11.2")) | ||||
|          (en "The @code{linux-libre} kernel is updated to 5.11.2") | ||||
|          (de "Der Kernel @code{linux-libre} wird auf 5.11.2 aktualisiert") | ||||
|          (fr "Le noyau @code{linux-libre} est mis à jour vers la 5.11.2") | ||||
|          (nl "De @code{linux-libre}-kernel werd bijgewertk naar 5.11.2")) | ||||
|         (body | ||||
|           (en "The default @code{linux-libre} kernel is now based on the 5.11 | ||||
|          (en "The default @code{linux-libre} kernel is now based on the 5.11 | ||||
| stable kernel series, beginning with version 5.11.2.  Promiment features include | ||||
| improved Wine performance, unprivileged Overlayfs mounts, support for Intel SGX, | ||||
| support for new graphics hardware, and improved performance of the Btrfs | ||||
| file system.") | ||||
|           (de "Der standardmäßig verwendete @code{linux-libre}-Kernel basiert | ||||
|          (de "Der standardmäßig verwendete @code{linux-libre}-Kernel basiert | ||||
| jetzt auf der 5.11-„stable“-Versionsreihe, angefangen mit Version 5.11.2.  Zu | ||||
| den markanten Neuerungen gehören bessere Wine-Unterstützung, Einbinden per | ||||
| Overlayfs für Nutzer ohne erweiterte Rechte, Unterstützung für Intel SGX, für | ||||
| neue Grafikhardware und bessere Leistung beim Btrfs-Dateisystem.") | ||||
|           (fr "Le noyau @code{linux-libre} par défaut est maintenant basé sur la | ||||
|          (fr "Le noyau @code{linux-libre} par défaut est maintenant basé sur la | ||||
| lignée stable 5.11 du noyau, à commencer par la version 5.11.2.  Parmi les | ||||
| fonctionnalités notables on trouve des performances améliorées pour Wine, le | ||||
| montage Overlayfs non privilégié, la prise en charge d'Intel SGX, celle des | ||||
| nouveaux périphériques graphiques et de meilleures performances du système de | ||||
| fichiers Btrfs.") | ||||
|           (nl "De standaard @code{linux-libre}-kernel is nu geëent op de | ||||
|          (nl "De standaard @code{linux-libre}-kernel is nu geëent op de | ||||
| stabiele 5.11-reeks, te beginnen met versie 5.11.2.  Deze update biedt onder | ||||
| andere verbeterde prestaties voor Wine en het Btfrs-bestandssysteem, laat | ||||
| gewone gebruikers toe om met Overlayfs bestandssystemen te combineren, en | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ | |||
| ;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org> | ||||
| ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> | ||||
| ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> | ||||
| ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> | ||||
| ;;; Copyright © 2020, 2022 Tobias Geerinckx-Rice <me@tobias.gr> | ||||
| ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
|  | @ -62,8 +62,10 @@ | |||
| 
 | ||||
| (define (estimate-partition-size root) | ||||
|   "Given the ROOT directory, evaluate and return its size.  As this doesn't | ||||
| take the partition metadata size into account, take a 25% margin." | ||||
|   (* 1.25 (file-size root))) | ||||
| take the partition metadata size into account, take a 25% margin.  As this in | ||||
| turn doesn't take any constant overhead into account, force a 1-MiB minimum." | ||||
|   (max (ash 1 20) | ||||
|        (* 1.25 (file-size root)))) | ||||
| 
 | ||||
| (define* (make-ext-image partition target root | ||||
|                          #:key | ||||
|  |  | |||
|  | @ -30,6 +30,7 @@ | |||
|   #:use-module (guix discovery) | ||||
|   #:use-module (guix diagnostics) | ||||
|   #:use-module (guix i18n) | ||||
|   #:use-module (guix modules) | ||||
|   #:use-module (srfi srfi-1) | ||||
|   #:use-module (ice-9 match) | ||||
| 
 | ||||
|  | @ -43,6 +44,7 @@ | |||
|             home-provenance-service-type | ||||
| 
 | ||||
|             fold-home-service-types | ||||
|             home-provenance | ||||
| 
 | ||||
|             %initialize-gettext) | ||||
| 
 | ||||
|  | @ -281,13 +283,13 @@ will be put in @file{~/.guix-home/files}."))) | |||
|   #~(begin | ||||
|       (bindtextdomain %gettext-domain | ||||
|                       (string-append #$guix "/share/locale")) | ||||
|       (textdomain %gettext-domain) | ||||
|       (setlocale LC_ALL ""))) | ||||
|       (textdomain %gettext-domain))) | ||||
| 
 | ||||
| (define (compute-on-first-login-script _ gexps) | ||||
|   (program-file | ||||
|    "on-first-login" | ||||
|    #~(begin | ||||
|    (with-imported-modules (source-module-closure '((guix i18n))) | ||||
|      #~(begin | ||||
|        (use-modules (guix i18n)) | ||||
|        #$%initialize-gettext | ||||
| 
 | ||||
|  | @ -308,7 +310,7 @@ will be put in @file{~/.guix-home/files}."))) | |||
|              (display (G_ "XDG_RUNTIME_DIR doesn't exists, on-first-login script | ||||
| won't execute anything.  You can check if xdg runtime directory exists, | ||||
| XDG_RUNTIME_DIR variable is set to appropriate value and manually execute the | ||||
| script by running '$HOME/.guix-home/on-first-login'"))))))) | ||||
| script by running '$HOME/.guix-home/on-first-login'")))))))) | ||||
| 
 | ||||
| (define (on-first-login-script-entry on-first-login) | ||||
|   "Return, as a monadic value, an entry for the on-first-login script | ||||
|  | @ -400,7 +402,8 @@ with one gexp, but many times, and all gexps must be idempotent."))) | |||
| ;;; | ||||
| 
 | ||||
| (define (compute-on-change-gexp eval-gexps? pattern-gexp-tuples) | ||||
|   #~(begin | ||||
|   (with-imported-modules (source-module-closure '((guix i18n))) | ||||
|     #~(begin | ||||
|       (use-modules (guix i18n)) | ||||
| 
 | ||||
|       #$%initialize-gettext | ||||
|  | @ -485,7 +488,7 @@ with one gexp, but many times, and all gexps must be idempotent."))) | |||
|             (display (G_ "On-change gexps evaluation finished.\n\n"))) | ||||
|           (display "\ | ||||
| On-change gexps won't be evaluated; evaluation has been disabled in the | ||||
| service configuration")))) | ||||
| service configuration"))))) | ||||
| 
 | ||||
| (define home-run-on-change-service-type | ||||
|   (service-type (name 'home-run-on-change) | ||||
|  |  | |||
							
								
								
									
										174
									
								
								gnu/home/services/desktop.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										174
									
								
								gnu/home/services/desktop.scm
									
										
									
									
									
										Normal 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."))) | ||||
|  | @ -33,6 +33,7 @@ | |||
|   #:use-module (gnu packages admin) | ||||
|   #:use-module (gnu packages base) | ||||
|   #:use-module (gnu packages bash) | ||||
|   #:use-module (gnu packages compression) | ||||
|   #:use-module (gnu packages connman) | ||||
|   #:use-module (gnu packages cryptsetup) | ||||
|   #:use-module (gnu packages disk) | ||||
|  | @ -42,6 +43,7 @@ | |||
|   #:autoload   (gnu packages gnupg) (guile-gcrypt) | ||||
|   #:use-module (gnu packages iso-codes) | ||||
|   #:use-module (gnu packages linux) | ||||
|   #:use-module (gnu packages nano) | ||||
|   #:use-module (gnu packages ncurses) | ||||
|   #:use-module (gnu packages package-management) | ||||
|   #:use-module (gnu packages tls) | ||||
|  | @ -333,9 +335,11 @@ selected keymap." | |||
|                        ntfs-3g ;mkfs.ntfs | ||||
|                        xfsprogs ;mkfs.xfs | ||||
|                        kbd ;chvt | ||||
|                        guix ;guix system init call | ||||
|                        util-linux ;mkwap | ||||
|                        nano | ||||
|                        shadow | ||||
|                        tar ;dump | ||||
|                        gzip ;dump | ||||
|                        coreutils))) | ||||
|         (with-output-to-port (%make-void-port "w") | ||||
|           (lambda () | ||||
|  | @ -352,7 +356,8 @@ selected keymap." | |||
|     ;; packages …), etc. modules. | ||||
|     (with-extensions (list guile-gcrypt guile-newt | ||||
|                            guile-parted guile-bytestructures | ||||
|                            guile-json-3 guile-git guix gnutls) | ||||
|                            guile-json-3 guile-git guile-webutils | ||||
|                            guix gnutls) | ||||
|       (with-imported-modules `(,@(source-module-closure | ||||
|                                   `(,@modules | ||||
|                                     (gnu services herd) | ||||
|  | @ -363,6 +368,7 @@ selected keymap." | |||
|             (use-modules (gnu installer record) | ||||
|                          (gnu installer keymap) | ||||
|                          (gnu installer steps) | ||||
|                          (gnu installer dump) | ||||
|                          (gnu installer final) | ||||
|                          (gnu installer hostname) | ||||
|                          (gnu installer locale) | ||||
|  | @ -379,7 +385,8 @@ selected keymap." | |||
|                          (guix build utils) | ||||
|                          ((system repl debug) | ||||
|                           #:select (terminal-width)) | ||||
|                          (ice-9 match)) | ||||
|                          (ice-9 match) | ||||
|                          (ice-9 textual-ports)) | ||||
| 
 | ||||
|             ;; Initialize gettext support so that installers can use | ||||
|             ;; (guix i18n) module. | ||||
|  | @ -407,43 +414,56 @@ selected keymap." | |||
|             ;; verbose. | ||||
|             (terminal-width 200) | ||||
| 
 | ||||
|             (let* ((current-installer newt-installer) | ||||
|                    (steps (#$steps current-installer))) | ||||
|               ((installer-init current-installer)) | ||||
|             (define current-installer newt-installer) | ||||
|             (define steps (#$steps current-installer)) | ||||
| 
 | ||||
|               (catch #t | ||||
|                 (lambda () | ||||
|                   (define results | ||||
|                     (run-installer-steps | ||||
|                      #:rewind-strategy 'menu | ||||
|                      #:menu-proc (installer-menu-page current-installer) | ||||
|                      #:steps steps)) | ||||
|             (dynamic-wind | ||||
|               (installer-init current-installer) | ||||
|               (lambda () | ||||
|                 (parameterize | ||||
|                     ((run-command-in-installer | ||||
|                       (installer-run-command current-installer))) | ||||
|                   (catch #t | ||||
|                     (lambda () | ||||
|                       (define results | ||||
|                         (run-installer-steps | ||||
|                          #:rewind-strategy 'menu | ||||
|                          #:menu-proc (installer-menu-page current-installer) | ||||
|                          #:steps steps)) | ||||
| 
 | ||||
|                   (match (result-step results 'final) | ||||
|                     ('success | ||||
|                      ;; We did it!  Let's reboot! | ||||
|                      (sync) | ||||
|                      (stop-service 'root)) | ||||
|                     (_ | ||||
|                      ;; The installation failed, exit so that it is restarted | ||||
|                      ;; by login. | ||||
|                      #f))) | ||||
|                 (const #f) | ||||
|                 (lambda (key . args) | ||||
|                   (syslog "crashing due to uncaught exception: ~s ~s~%" | ||||
|                           key args) | ||||
|                   (let ((error-file "/tmp/last-installer-error")) | ||||
|                     (call-with-output-file error-file | ||||
|                       (lambda (port) | ||||
|                         (display-backtrace (make-stack #t) port) | ||||
|                         (print-exception port | ||||
|                                          (stack-ref (make-stack #t) 1) | ||||
|                                          key args))) | ||||
|                     ((installer-exit-error current-installer) | ||||
|                      error-file key args)) | ||||
|                   (primitive-exit 1))) | ||||
|                       (match (result-step results 'final) | ||||
|                         ('success | ||||
|                          ;; We did it!  Let's reboot! | ||||
|                          (sync) | ||||
|                          (stop-service 'root)) | ||||
|                         (_ | ||||
|                          ;; The installation failed, exit so that it is | ||||
|                          ;; restarted by login. | ||||
|                          #f))) | ||||
|                     (const #f) | ||||
|                     (lambda (key . args) | ||||
|                       (installer-log-line "crashing due to uncaught exception: ~s ~s" | ||||
|                                           key args) | ||||
|                       (define dump-dir | ||||
|                         (prepare-dump key args #:result %current-result)) | ||||
|                       (define action | ||||
|                         ((installer-exit-error current-installer) | ||||
|                          (get-string-all | ||||
|                           (open-input-file | ||||
|                            (string-append dump-dir "/installer-backtrace"))))) | ||||
|                       (match action | ||||
|                         ('dump | ||||
|                          (let* ((dump-files | ||||
|                                  ((installer-dump-page current-installer) | ||||
|                                   dump-dir)) | ||||
|                                 (dump-archive | ||||
|                                  (make-dump dump-dir dump-files))) | ||||
|                            ((installer-report-page current-installer) | ||||
|                             dump-archive))) | ||||
|                         (_ #f)) | ||||
|                       (exit 1))))) | ||||
| 
 | ||||
|               ((installer-exit current-installer))))))) | ||||
|               (installer-exit current-installer)))))) | ||||
| 
 | ||||
|   (program-file | ||||
|    "installer" | ||||
|  |  | |||
							
								
								
									
										118
									
								
								gnu/installer/dump.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										118
									
								
								gnu/installer/dump.scm
									
										
									
									
									
										Normal 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))))) | ||||
|  | @ -85,8 +85,9 @@ USERS." | |||
|                              (uid (if root? 0 #f)) | ||||
|                              (home-directory | ||||
|                               (user-home-directory user)) | ||||
|                              (password (crypt (user-password user) | ||||
|                                               (salt))) | ||||
|                              (password (crypt | ||||
|                                         (secret-content (user-password user)) | ||||
|                                         (salt))) | ||||
| 
 | ||||
|                              ;; We need a string here, not a file-like, hence | ||||
|                              ;; this choice. | ||||
|  | @ -125,15 +126,15 @@ it can interact with the rest of the system." | |||
|                      (setlocale LC_ALL locale)))) | ||||
|     (if supported? | ||||
|         (begin | ||||
|           (syslog "install supported locale ~a~%." locale) | ||||
|           (installer-log-line "install supported locale ~a." locale) | ||||
|           (setenv "LC_ALL" locale)) | ||||
|         (begin | ||||
|           ;; If the selected locale is not supported, install a default UTF-8 | ||||
|           ;; locale. This is required to copy some files with UTF-8 | ||||
|           ;; characters, in the nss-certs package notably. Set LANGUAGE | ||||
|           ;; anyways, to have translated messages if possible. | ||||
|           (syslog "~a locale is not supported, installating en_US.utf8 \ | ||||
| locale instead.~%" locale) | ||||
|           (installer-log-line "~a locale is not supported, installing \ | ||||
| en_US.utf8 locale instead." locale) | ||||
|           (setlocale LC_ALL "en_US.utf8") | ||||
|           (setenv "LC_ALL" "en_US.utf8") | ||||
|           (setenv "LANGUAGE" | ||||
|  | @ -208,17 +209,9 @@ or #f.  Return #t on success and #f on failure." | |||
|              (setvbuf (current-output-port) 'none) | ||||
|              (setvbuf (current-error-port) 'none) | ||||
| 
 | ||||
|              ;; If there are any connected clients, assume that we are running | ||||
|              ;; installation tests. In that case, dump the standard and error | ||||
|              ;; outputs to syslog. | ||||
|              (set! ret | ||||
|                    (if (not (null? (current-clients))) | ||||
|                        (with-output-to-file "/dev/console" | ||||
|                          (lambda () | ||||
|                            (with-error-to-file "/dev/console" | ||||
|                              (lambda () | ||||
|                                (run-command install-command))))) | ||||
|                        (run-command install-command)))) | ||||
|              (setenv "PATH" "/run/current-system/profile/bin/") | ||||
| 
 | ||||
|              (set! ret (run-command install-command))) | ||||
|            (lambda () | ||||
|              ;; Restart guix-daemon so that it does no keep the MNT namespace | ||||
|              ;; alive. | ||||
|  |  | |||
|  | @ -19,6 +19,7 @@ | |||
| (define-module (gnu installer newt) | ||||
|   #:use-module (gnu installer record) | ||||
|   #:use-module (gnu installer utils) | ||||
|   #:use-module (gnu installer dump) | ||||
|   #:use-module (gnu installer newt ethernet) | ||||
|   #:use-module (gnu installer newt final) | ||||
|   #:use-module (gnu installer newt parameters) | ||||
|  | @ -39,7 +40,12 @@ | |||
|   #:use-module (guix config) | ||||
|   #:use-module (guix discovery) | ||||
|   #:use-module (guix i18n) | ||||
|   #:use-module (srfi srfi-1) | ||||
|   #:use-module (srfi srfi-26) | ||||
|   #:use-module (srfi srfi-34) | ||||
|   #:use-module (srfi srfi-35) | ||||
|   #:use-module (ice-9 ftw) | ||||
|   #:use-module (ice-9 match) | ||||
|   #:use-module (newt) | ||||
|   #:export (newt-installer)) | ||||
| 
 | ||||
|  | @ -47,7 +53,7 @@ | |||
|   (newt-init) | ||||
|   (clear-screen) | ||||
|   (set-screen-size!) | ||||
|   (syslog "Display is ~ax~a.~%" (screen-columns) (screen-rows)) | ||||
|   (installer-log-line "Display is ~ax~a." (screen-columns) (screen-rows)) | ||||
|   (push-help-line | ||||
|    (format #f (G_ "Press <F1> for installation parameters.")))) | ||||
| 
 | ||||
|  | @ -55,25 +61,102 @@ | |||
|   (newt-finish) | ||||
|   (clear-screen)) | ||||
| 
 | ||||
| (define (exit-error file key args) | ||||
| (define (exit-error error) | ||||
|   (newt-set-color COLORSET-ROOT "white" "red") | ||||
|   (let ((width (nearest-exact-integer | ||||
|                 (* (screen-columns) 0.8))) | ||||
|         (height (nearest-exact-integer | ||||
|                  (* (screen-rows) 0.7)))) | ||||
|     (run-file-textbox-page | ||||
|      #:info-text (format #f (G_ "The installer has encountered an unexpected \ | ||||
| problem. The backtrace is displayed below. Please report it by email to \ | ||||
| <~a>.") %guix-bug-report-address) | ||||
|   (define action | ||||
|     (run-textbox-page | ||||
|      #:info-text (G_ "The installer has encountered an unexpected problem. \ | ||||
| The backtrace is displayed below. You may choose to exit or create a dump \ | ||||
| archive.") | ||||
|      #:title (G_ "Unexpected problem") | ||||
|      #:file file | ||||
|      #:exit-button? #f | ||||
|      #:info-textbox-width width | ||||
|      #:file-textbox-width width | ||||
|      #:file-textbox-height height)) | ||||
|      #:content error | ||||
|      #:buttons-spec | ||||
|      (list | ||||
|       (cons (G_ "Dump") (const 'dump)) | ||||
|       (cons (G_ "Exit") (const 'exit))))) | ||||
|   (newt-set-color COLORSET-ROOT "white" "blue") | ||||
|   (newt-finish) | ||||
|   (clear-screen)) | ||||
|   action) | ||||
| 
 | ||||
| (define (report-page dump-archive) | ||||
|   (define text | ||||
|     (format #f (G_ "The dump archive was created as ~a.  Would you like to \ | ||||
| send this archive to the Guix servers?") dump-archive)) | ||||
|   (define title (G_ "Dump archive created")) | ||||
|   (when (run-confirmation-page text title) | ||||
|     (let* ((uploaded-name (send-dump-report dump-archive)) | ||||
|            (text (if uploaded-name | ||||
|                      (format #f (G_ "The dump was uploaded as ~a.  Please \ | ||||
| report it by email to ~a.") uploaded-name %guix-bug-report-address) | ||||
|                      (G_ "The dump could not be uploaded.")))) | ||||
|       (run-error-page | ||||
|        text | ||||
|        (G_ "Dump upload result"))))) | ||||
| 
 | ||||
| (define (dump-page dump-dir) | ||||
|   (define files | ||||
|     (scandir dump-dir (lambda (x) | ||||
|                         (not (or (string=? x ".") | ||||
|                                  (string=? x "..")))))) | ||||
|   (fold (match-lambda* | ||||
|           (((file . enable?) acc) | ||||
|            (if enable? | ||||
|                (cons file acc) | ||||
|                acc))) | ||||
|         '() | ||||
|         (run-dump-page | ||||
|          dump-dir | ||||
|          (map (lambda (x) | ||||
|                 (cons x #f)) | ||||
|               files)))) | ||||
| 
 | ||||
| (define (newt-run-command . args) | ||||
|   (define command-output "") | ||||
|   (define (line-accumulator line) | ||||
|     (set! command-output | ||||
|           (string-append/shared command-output line "\n"))) | ||||
|   (define displayed-command | ||||
|     (string-join | ||||
|      (map (lambda (s) (string-append "\"" s "\"")) args) | ||||
|      " ")) | ||||
|   (define result (run-external-command-with-line-hooks (list line-accumulator) | ||||
|                                                        args)) | ||||
|   (define exit-val (status:exit-val result)) | ||||
|   (define term-sig (status:term-sig result)) | ||||
|   (define stop-sig (status:stop-sig result)) | ||||
| 
 | ||||
|   (if (and exit-val (zero? exit-val)) | ||||
|       #t | ||||
|       (let ((info-text | ||||
|              (cond | ||||
|               (exit-val | ||||
|                (format #f (G_ "External command ~s exited with code ~a") | ||||
|                        args exit-val)) | ||||
|               (term-sig | ||||
|                (format #f (G_ "External command ~s terminated by signal ~a") | ||||
|                        args term-sig)) | ||||
|               (stop-sig | ||||
|                (format #f (G_ "External command ~s stopped by signal ~a") | ||||
|                        args stop-sig))))) | ||||
|         (run-textbox-page #:title (G_ "External command error") | ||||
|                           #:info-text info-text | ||||
|                           #:content command-output | ||||
|                           #:buttons-spec | ||||
|                           (list | ||||
|                            (cons "Ignore" (const #t)) | ||||
|                            (cons "Abort" | ||||
|                                  (lambda () | ||||
|                                    (abort-to-prompt 'installer-step 'abort))) | ||||
|                            (cons "Report" | ||||
|                                  (lambda () | ||||
|                                    (raise | ||||
|                                     (condition | ||||
|                                      ((@@ (guix build utils) | ||||
|                                           &invoke-error) | ||||
|                                       (program (car args)) | ||||
|                                       (arguments (cdr args)) | ||||
|                                       (exit-status exit-val) | ||||
|                                       (term-signal term-sig) | ||||
|                                       (stop-signal stop-sig))))))))))) | ||||
| 
 | ||||
| (define (final-page result prev-steps) | ||||
|   (run-final-page result prev-steps)) | ||||
|  | @ -142,4 +225,7 @@ problem. The backtrace is displayed below. Please report it by email to \ | |||
|    (services-page services-page) | ||||
|    (welcome-page welcome-page) | ||||
|    (parameters-menu parameters-menu) | ||||
|    (parameters-page parameters-page))) | ||||
|    (parameters-page parameters-page) | ||||
|    (dump-page dump-page) | ||||
|    (run-command newt-run-command) | ||||
|    (report-page report-page))) | ||||
|  |  | |||
|  | @ -65,9 +65,7 @@ connection is pending." | |||
|      (run-error-page | ||||
|       (G_ "No ethernet service available, please try again.") | ||||
|       (G_ "No service")) | ||||
|      (raise | ||||
|       (condition | ||||
|        (&installer-step-abort)))) | ||||
|      (abort-to-prompt 'installer-step 'abort)) | ||||
|     ((service) | ||||
|      ;; Only one service is available so return it directly. | ||||
|      service) | ||||
|  | @ -81,7 +79,5 @@ connection is pending." | |||
|       #:button-text (G_ "Exit") | ||||
|       #:button-callback-procedure | ||||
|       (lambda _ | ||||
|         (raise | ||||
|          (condition | ||||
|           (&installer-step-abort)))) | ||||
|         (abort-to-prompt 'installer-step 'abort)) | ||||
|       #:listbox-callback-procedure connect-ethernet-service)))) | ||||
|  |  | |||
|  | @ -59,9 +59,7 @@ This will take a few minutes.") | |||
|      #:file-textbox-height height | ||||
|      #:exit-button-callback-procedure | ||||
|      (lambda () | ||||
|        (raise | ||||
|         (condition | ||||
|          (&installer-step-abort))))))) | ||||
|        (abort-to-prompt 'installer-step 'abort))))) | ||||
| 
 | ||||
| (define (run-install-success-page) | ||||
|   (match (current-clients) | ||||
|  | @ -88,9 +86,7 @@ press the button to reboot."))) | |||
|              (G_ "Restart the installer") | ||||
|              (G_ "The final system installation step failed.  You can resume from \ | ||||
| a specific step, or restart the installer.")) | ||||
|        (1 (raise | ||||
|            (condition | ||||
|             (&installer-step-abort)))) | ||||
|        (1 (abort-to-prompt 'installer-step 'abort)) | ||||
|        (2 | ||||
|         ;; Keep going, the installer will be restarted later on. | ||||
|         #t))) | ||||
|  | @ -109,7 +105,7 @@ a specific step, or restart the installer.")) | |||
| (define (run-final-page result prev-steps) | ||||
|   (define (wait-for-clients) | ||||
|     (unless (null? (current-clients)) | ||||
|       (syslog "waiting with clients before starting final step~%") | ||||
|       (installer-log-line "waiting with clients before starting final step") | ||||
|       (send-to-clients '(starting-final-step)) | ||||
|       (match (select (current-clients) '() '()) | ||||
|         (((port _ ...) _ _) | ||||
|  | @ -119,7 +115,7 @@ a specific step, or restart the installer.")) | |||
|   ;; things such as changing the swap partition label. | ||||
|   (wait-for-clients) | ||||
| 
 | ||||
|   (syslog "proceeding with final step~%") | ||||
|   (installer-log-line "proceeding with final step") | ||||
|   (let* ((configuration   (format-configuration prev-steps result)) | ||||
|          (user-partitions (result-step result 'partition)) | ||||
|          (locale          (result-step result 'locale)) | ||||
|  |  | |||
|  | @ -59,9 +59,7 @@ different layout at any time from the parameters menu."))) | |||
|        ((param) (const #f)) | ||||
|        (else | ||||
|         (lambda _ | ||||
|           (raise | ||||
|            (condition | ||||
|             (&installer-step-abort))))))))) | ||||
|           (abort-to-prompt 'installer-step 'abort))))))) | ||||
| 
 | ||||
| (define (run-variant-page variants variant->text) | ||||
|   (let ((title (G_ "Variant"))) | ||||
|  | @ -74,9 +72,7 @@ different layout at any time from the parameters menu."))) | |||
|      #:button-text (G_ "Back") | ||||
|      #:button-callback-procedure | ||||
|      (lambda _ | ||||
|        (raise | ||||
|         (condition | ||||
|          (&installer-step-abort))))))) | ||||
|        (abort-to-prompt 'installer-step 'abort))))) | ||||
| 
 | ||||
| (define (sort-layouts layouts) | ||||
|   "Sort LAYOUTS list by putting the US layout ahead and return it." | ||||
|  |  | |||
|  | @ -43,9 +43,7 @@ installation process and for the installed system.") | |||
|      #:button-text (G_ "Exit") | ||||
|      #:button-callback-procedure | ||||
|      (lambda _ | ||||
|        (raise | ||||
|         (condition | ||||
|          (&installer-step-abort)))))) | ||||
|        (abort-to-prompt 'installer-step 'abort)))) | ||||
| 
 | ||||
|   ;; Immediately install the chosen language so that the territory page that | ||||
|   ;; comes after (optionally) is displayed in the chosen language. | ||||
|  | @ -63,9 +61,7 @@ installation process and for the installed system.") | |||
|      #:button-text (G_ "Back") | ||||
|      #:button-callback-procedure | ||||
|      (lambda _ | ||||
|        (raise | ||||
|         (condition | ||||
|          (&installer-step-abort))))))) | ||||
|        (abort-to-prompt 'installer-step 'abort))))) | ||||
| 
 | ||||
| (define (run-codeset-page codesets) | ||||
|   (let ((title (G_ "Locale codeset"))) | ||||
|  | @ -78,9 +74,7 @@ installation process and for the installed system.") | |||
|      #:button-text (G_ "Back") | ||||
|      #:button-callback-procedure | ||||
|      (lambda _ | ||||
|        (raise | ||||
|         (condition | ||||
|          (&installer-step-abort))))))) | ||||
|        (abort-to-prompt 'installer-step 'abort))))) | ||||
| 
 | ||||
| (define (run-modifier-page modifiers modifier->text) | ||||
|   (let ((title (G_ "Locale modifier"))) | ||||
|  | @ -94,9 +88,7 @@ symbol.") | |||
|      #:button-text (G_ "Back") | ||||
|      #:button-callback-procedure | ||||
|      (lambda _ | ||||
|        (raise | ||||
|         (condition | ||||
|          (&installer-step-abort))))))) | ||||
|        (abort-to-prompt 'installer-step 'abort))))) | ||||
| 
 | ||||
| (define* (run-locale-page #:key | ||||
|                           supported-locales | ||||
|  | @ -110,11 +102,10 @@ associating a territory code with a territory name. The formatted locale, under | |||
| glibc format is returned." | ||||
| 
 | ||||
|   (define (break-on-locale-found locales) | ||||
|     "Raise the &installer-step-break condition if LOCALES contains exactly one | ||||
|     "Break to the installer step if LOCALES contains exactly one | ||||
| element." | ||||
|     (and (= (length locales) 1) | ||||
|          (raise | ||||
|           (condition (&installer-step-break))))) | ||||
|          (abort-to-prompt 'installer-step 'break))) | ||||
| 
 | ||||
|   (define (filter-locales locales result) | ||||
|     "Filter the list of locale records LOCALES using the RESULT returned by | ||||
|  | @ -218,8 +209,8 @@ glibc locale string and return it." | |||
| 
 | ||||
|   ;; If run-installer-steps returns locally, it means that the user had to go | ||||
|   ;; through all steps (language, territory, codeset and modifier) to select a | ||||
|   ;; locale. In that case, like if we exited by raising &installer-step-break | ||||
|   ;; condition, turn the result into a glibc locale string and return it. | ||||
|   ;; locale. In that case, like if we exited by breaking to the installer | ||||
|   ;; step, turn the result into a glibc locale string and return it. | ||||
|   (result->locale-string | ||||
|    supported-locales | ||||
|    (run-installer-steps #:steps locale-steps))) | ||||
|  |  | |||
|  | @ -65,12 +65,8 @@ Internet and return the selected technology. For now, only technologies with | |||
|             (G_ "Exit") | ||||
|             (G_ "The install process requires Internet access but no \ | ||||
| network devices were found. Do you want to continue anyway?")) | ||||
|        ((1) (raise | ||||
|              (condition | ||||
|               (&installer-step-break)))) | ||||
|        ((2) (raise | ||||
|              (condition | ||||
|               (&installer-step-abort)))))) | ||||
|        ((1) (abort-to-prompt 'installer-step 'break)) | ||||
|        ((2) (abort-to-prompt 'installer-step 'abort)))) | ||||
|     ((technology) | ||||
|      ;; Since there's only one technology available, skip the selection | ||||
|      ;; screen. | ||||
|  | @ -86,9 +82,7 @@ network devices were found. Do you want to continue anyway?")) | |||
|       #:button-text (G_ "Exit") | ||||
|       #:button-callback-procedure | ||||
|       (lambda _ | ||||
|         (raise | ||||
|          (condition | ||||
|           (&installer-step-abort)))))))) | ||||
|         (abort-to-prompt 'installer-step 'abort)))))) | ||||
| 
 | ||||
| (define (find-technology-by-type technologies type) | ||||
|   "Find and return a technology with the given TYPE in TECHNOLOGIES list." | ||||
|  | @ -156,9 +150,7 @@ FULL-VALUE tentatives, spaced by 1 second." | |||
|        (G_ "The selected network does not provide access to the \ | ||||
| Internet and the Guix substitute server, please try again.") | ||||
|        (G_ "Connection error")) | ||||
|       (raise | ||||
|        (condition | ||||
|         (&installer-step-abort)))))) | ||||
|       (abort-to-prompt 'installer-step 'abort)))) | ||||
| 
 | ||||
| (define (run-network-page) | ||||
|   "Run a page to allow the user to configure connman so that it can access the | ||||
|  |  | |||
|  | @ -22,6 +22,7 @@ | |||
|   #:use-module (gnu installer steps) | ||||
|   #:use-module (gnu installer utils) | ||||
|   #:use-module (gnu installer newt utils) | ||||
|   #:use-module (guix build utils) | ||||
|   #:use-module (guix i18n) | ||||
|   #:use-module (ice-9 i18n) | ||||
|   #:use-module (ice-9 match) | ||||
|  | @ -43,6 +44,10 @@ | |||
|             run-scale-page | ||||
|             run-checkbox-tree-page | ||||
|             run-file-textbox-page | ||||
|             %ok-button | ||||
|             %exit-button | ||||
|             run-textbox-page | ||||
|             run-dump-page | ||||
| 
 | ||||
|             run-form-with-clients)) | ||||
| 
 | ||||
|  | @ -93,9 +98,9 @@ disconnect. | |||
| Like 'run-form', return two values: the exit reason, and an \"argument\"." | ||||
|   (define* (discard-client! port #:optional errno) | ||||
|     (if errno | ||||
|         (syslog "removing client ~d due to ~s~%" | ||||
|         (installer-log-line "removing client ~d due to ~s" | ||||
|                 (fileno port) (strerror errno)) | ||||
|         (syslog "removing client ~d due to EOF~%" | ||||
|         (installer-log-line "removing client ~d due to EOF" | ||||
|                 (fileno port))) | ||||
| 
 | ||||
|     ;; XXX: Watch out!  There's no 'form-unwatch-fd' procedure in Newt so we | ||||
|  | @ -124,7 +129,7 @@ Like 'run-form', return two values: the exit reason, and an \"argument\"." | |||
|   (send-to-clients exp) | ||||
| 
 | ||||
|   (let loop () | ||||
|     (syslog "running form ~s (~s) with ~d clients~%" | ||||
|     (installer-log-line "running form ~s (~s) with ~d clients" | ||||
|             form title (length (current-clients))) | ||||
| 
 | ||||
|     ;; Call 'watch-clients!' within the loop because there might be new | ||||
|  | @ -146,7 +151,7 @@ Like 'run-form', return two values: the exit reason, and an \"argument\"." | |||
|                        (discard-client! port) | ||||
|                        (loop)) | ||||
|                       (obj | ||||
|                        (syslog "form ~s (~s): client ~d replied ~s~%" | ||||
|                        (installer-log-line "form ~s (~s): client ~d replied ~s" | ||||
|                                form title (fileno port) obj) | ||||
|                        (values 'exit-fd-ready obj)))) | ||||
|                   (lambda args | ||||
|  | @ -156,8 +161,9 @@ Like 'run-form', return two values: the exit reason, and an \"argument\"." | |||
|                 ;; Accept a new client and send it EXP. | ||||
|                 (match (accept port) | ||||
|                   ((client . _) | ||||
|                    (syslog "accepting new client ~d while on form ~s~%" | ||||
|                            (fileno client) form) | ||||
|                    (installer-log-line | ||||
|                     "accepting new client ~d while on form ~s" | ||||
|                     (fileno client) form) | ||||
|                    (catch 'system-error | ||||
|                      (lambda () | ||||
|                        (write exp client) | ||||
|  | @ -486,7 +492,7 @@ the current listbox item has to be selected by key." | |||
|                         (string=? str (listbox-item->text item)))) | ||||
|                      keys) | ||||
|           ((key . item) item) | ||||
|           (#f (raise (condition (&installer-step-abort)))))) | ||||
|           (#f (abort-to-prompt 'installer-step 'abort)))) | ||||
| 
 | ||||
|       ;; On every listbox element change, check if we need to skip it. If yes, | ||||
|       ;; depending on the 'last-listbox-key', jump forward or backward. If no, | ||||
|  | @ -688,7 +694,7 @@ ITEMS when 'Ok' is pressed." | |||
|                         (string=? str (item->text item)))) | ||||
|                      keys) | ||||
|           ((key . item) item) | ||||
|           (#f (raise (condition (&installer-step-abort)))))) | ||||
|           (#f (abort-to-prompt 'installer-step 'abort)))) | ||||
| 
 | ||||
|       (add-form-to-grid grid form #t) | ||||
|       (make-wrapped-grid-window grid title) | ||||
|  | @ -726,8 +732,7 @@ ITEMS when 'Ok' is pressed." | |||
|   (newt-suspend) | ||||
|   ;; Use Nano because it syntax-highlights Scheme by default. | ||||
|   ;; TODO: Add a menu to choose an editor? | ||||
|   (run-command (list "/run/current-system/profile/bin/nano" file) | ||||
|                #:locale locale) | ||||
|   (invoke "nano" file) | ||||
|   (newt-resume)) | ||||
| 
 | ||||
| (define* (run-file-textbox-page #:key | ||||
|  | @ -811,6 +816,151 @@ ITEMS when 'Ok' is pressed." | |||
|               (destroy-form-and-pop form)))) | ||||
| 
 | ||||
|         (if (and (eq? exit-reason 'exit-component) | ||||
|                  edit-button | ||||
|                  (components=? argument edit-button)) | ||||
|             (loop)                                ;recurse in tail position | ||||
|             result))))) | ||||
| 
 | ||||
| (define %ok-button | ||||
|   (cons (G_ "Ok")  (lambda () #t))) | ||||
| 
 | ||||
| (define %exit-button | ||||
|   (cons (G_ "Exit") (lambda () (abort-to-prompt 'installer-step 'abort)))) | ||||
| 
 | ||||
| (define %default-buttons | ||||
|   (list %ok-button %exit-button)) | ||||
| 
 | ||||
| (define (make-newt-buttons buttons-spec) | ||||
|   (map | ||||
|    (match-lambda ((title . proc) | ||||
|                   (cons (make-button -1 -1 title) proc))) | ||||
|    buttons-spec)) | ||||
| 
 | ||||
| (define* (run-textbox-page #:key | ||||
|                            title | ||||
|                            info-text | ||||
|                            content | ||||
|                            (buttons-spec %default-buttons)) | ||||
|   "Run a page to display INFO-TEXT followed by CONTENT to the user, who has to | ||||
| choose an action among the buttons specified by BUTTONS-SPEC. | ||||
| 
 | ||||
| BUTTONS-SPEC is an association list with button labels as keys, and callback | ||||
| procedures as values. | ||||
| 
 | ||||
| This procedure returns the result of the callback procedure of the button | ||||
| chosen by the user." | ||||
|   (define info-textbox | ||||
|     (make-reflowed-textbox -1 -1 info-text | ||||
|                            50 | ||||
|                            #:flags FLAG-BORDER)) | ||||
|   (define content-textbox | ||||
|     (make-textbox -1 -1 | ||||
|                   50 | ||||
|                   30 | ||||
|                   (logior FLAG-SCROLL FLAG-BORDER))) | ||||
|   (define buttons | ||||
|     (make-newt-buttons buttons-spec)) | ||||
|   (define grid | ||||
|     (vertically-stacked-grid | ||||
|      GRID-ELEMENT-COMPONENT info-textbox | ||||
|      GRID-ELEMENT-COMPONENT content-textbox | ||||
|      GRID-ELEMENT-SUBGRID | ||||
|      (apply | ||||
|       horizontal-stacked-grid | ||||
|       (append-map (match-lambda ((button . proc) | ||||
|                                  (list GRID-ELEMENT-COMPONENT button))) | ||||
|                   buttons)))) | ||||
|   (define form (make-form #:flags FLAG-NOF12)) | ||||
|   (add-form-to-grid grid form #t) | ||||
|   (make-wrapped-grid-window grid title) | ||||
|   (set-textbox-text content-textbox | ||||
|                     (receive (_w _h text) | ||||
|                         (reflow-text content | ||||
|                                      50 | ||||
|                                      0 0) | ||||
|                       text)) | ||||
| 
 | ||||
|   (receive (exit-reason argument) | ||||
|       (run-form-with-clients form | ||||
|                              `(contents-dialog (title ,title) | ||||
|                                                (text ,info-text) | ||||
|                                                (content ,content))) | ||||
|     (destroy-form-and-pop form) | ||||
|     (match exit-reason | ||||
|       ('exit-component | ||||
|        (let ((proc (assq-ref buttons argument))) | ||||
|          (if proc | ||||
|              (proc) | ||||
|              (raise | ||||
|               (condition | ||||
|                (&serious) | ||||
|                (&message | ||||
|                 (message (format #f "Unable to find corresponding PROC for \ | ||||
| component ~a." argument)))))))) | ||||
|       ;; TODO | ||||
|       ('exit-fd-ready | ||||
|        (raise (condition (&serious))))))) | ||||
| 
 | ||||
| (define* (run-dump-page base-dir file-choices) | ||||
|   (define info-textbox | ||||
|     (make-reflowed-textbox -1 -1 "Please select files you wish to include in \ | ||||
| the dump." | ||||
|                            50 | ||||
|                            #:flags FLAG-BORDER)) | ||||
|   (define components | ||||
|     (map (match-lambda ((file . enabled) | ||||
|                         (list | ||||
|                          (make-compact-button -1 -1 "Edit") | ||||
|                          (make-checkbox -1 -1 file (if enabled #\x #\ ) " x") | ||||
|                          file))) | ||||
|          file-choices)) | ||||
| 
 | ||||
|   (define sub-grid (make-grid 2 (length components))) | ||||
| 
 | ||||
|   (for-each | ||||
|    (match-lambda* (((button checkbox _) index) | ||||
|                    (set-grid-field sub-grid 0 index | ||||
|                                    GRID-ELEMENT-COMPONENT checkbox | ||||
|                                    #:anchor ANCHOR-LEFT) | ||||
|                    (set-grid-field sub-grid 1 index | ||||
|                                    GRID-ELEMENT-COMPONENT button | ||||
|                                    #:anchor ANCHOR-LEFT))) | ||||
|    components (iota (length components))) | ||||
| 
 | ||||
|   (define grid | ||||
|     (vertically-stacked-grid | ||||
|      GRID-ELEMENT-COMPONENT info-textbox | ||||
|      GRID-ELEMENT-SUBGRID sub-grid | ||||
|      GRID-ELEMENT-COMPONENT (make-button -1 -1 "Create"))) | ||||
| 
 | ||||
|   (define form (make-form #:flags FLAG-NOF12)) | ||||
| 
 | ||||
|   (add-form-to-grid grid form #t) | ||||
|   (make-wrapped-grid-window grid "Installer dump") | ||||
| 
 | ||||
|   (define prompt-tag (make-prompt-tag)) | ||||
| 
 | ||||
|   (let loop () | ||||
|     (call-with-prompt prompt-tag | ||||
|       (lambda () | ||||
|         (receive (exit-reason argument) | ||||
|             (run-form-with-clients form | ||||
|                                    `(dump-page)) | ||||
|           (match exit-reason | ||||
|             ('exit-component | ||||
|              (let ((result | ||||
|                     (map (match-lambda | ||||
|                            ((edit checkbox filename) | ||||
|                             (if (components=? edit argument) | ||||
|                                 (abort-to-prompt prompt-tag filename) | ||||
|                                 (cons filename (eq? #\x | ||||
|                                                     (checkbox-value checkbox)))))) | ||||
|                          components))) | ||||
|                (destroy-form-and-pop form) | ||||
|                result)) | ||||
|             ;; TODO | ||||
|             ('exit-fd-ready | ||||
|              (raise (condition (&serious))))))) | ||||
|       (lambda (k file) | ||||
|         (edit-file (string-append base-dir "/" file)) | ||||
|         (loop))))) | ||||
|  |  | |||
|  | @ -36,10 +36,8 @@ | |||
|   #:export (run-partitioning-page)) | ||||
| 
 | ||||
| (define (button-exit-action) | ||||
|   "Raise the &installer-step-abort condition." | ||||
|   (raise | ||||
|    (condition | ||||
|     (&installer-step-abort)))) | ||||
|   "Abort the installer step." | ||||
|   (abort-to-prompt 'installer-step 'abort)) | ||||
| 
 | ||||
| (define (run-scheme-page) | ||||
|   "Run a page asking the user for a partitioning scheme." | ||||
|  | @ -801,9 +799,9 @@ by pressing the Exit button.~%~%"))) | |||
|     ;; Make sure the disks are not in use before proceeding to formatting. | ||||
|     (free-parted eligible-devices) | ||||
|     (format-user-partitions user-partitions-with-pass) | ||||
|     (syslog "formatted ~a user partitions~%" | ||||
|     (installer-log-line "formatted ~a user partitions" | ||||
|             (length user-partitions-with-pass)) | ||||
|     (syslog "user-partitions: ~a~%" user-partitions) | ||||
|     (installer-log-line "user-partitions: ~a" user-partitions) | ||||
| 
 | ||||
|     (destroy-form-and-pop form) | ||||
|     user-partitions)) | ||||
|  |  | |||
|  | @ -46,9 +46,7 @@ to choose from them later when you log in.") | |||
|      #:checkbox-tree-height 9 | ||||
|      #:exit-button-callback-procedure | ||||
|      (lambda () | ||||
|        (raise | ||||
|         (condition | ||||
|          (&installer-step-abort))))))) | ||||
|        (abort-to-prompt 'installer-step 'abort))))) | ||||
| 
 | ||||
| (define (run-networking-cbt-page) | ||||
|   "Run a page allowing the user to select networking services." | ||||
|  | @ -65,9 +63,7 @@ system.") | |||
|      #:checkbox-tree-height 5 | ||||
|      #:exit-button-callback-procedure | ||||
|      (lambda () | ||||
|        (raise | ||||
|         (condition | ||||
|          (&installer-step-abort))))))) | ||||
|        (abort-to-prompt 'installer-step 'abort))))) | ||||
| 
 | ||||
| (define (run-printing-services-cbt-page) | ||||
|   "Run a page allowing the user to select document services such as CUPS." | ||||
|  | @ -85,9 +81,7 @@ system.") | |||
|      #:checkbox-tree-height 9 | ||||
|      #:exit-button-callback-procedure | ||||
|      (lambda () | ||||
|        (raise | ||||
|         (condition | ||||
|          (&installer-step-abort))))))) | ||||
|        (abort-to-prompt 'installer-step 'abort))))) | ||||
| 
 | ||||
| (define (run-console-services-cbt-page) | ||||
|   "Run a page to select various system adminstration services for non-graphical | ||||
|  | @ -130,9 +124,7 @@ client may be enough for a server.") | |||
|      #:button-text (G_ "Exit") | ||||
|      #:button-callback-procedure | ||||
|      (lambda _ | ||||
|        (raise | ||||
|         (condition | ||||
|          (&installer-step-abort))))))) | ||||
|        (abort-to-prompt 'installer-step 'abort))))) | ||||
| 
 | ||||
| (define (run-services-page) | ||||
|   (let ((desktop (run-desktop-environments-cbt-page))) | ||||
|  |  | |||
|  | @ -65,9 +65,7 @@ returned." | |||
|          #:button-callback-procedure | ||||
|          (if (null? path) | ||||
|              (lambda _ | ||||
|                (raise | ||||
|                 (condition | ||||
|                  (&installer-step-abort)))) | ||||
|                (abort-to-prompt 'installer-step 'abort)) | ||||
|              (lambda _ | ||||
|                (loop (all-but-last path)))) | ||||
|          #:listbox-callback-procedure | ||||
|  |  | |||
|  | @ -20,7 +20,6 @@ | |||
| 
 | ||||
| (define-module (gnu installer newt user) | ||||
|   #:use-module (gnu installer user) | ||||
|   #:use-module ((gnu installer steps) #:select (&installer-step-abort)) | ||||
|   #:use-module (gnu installer newt page) | ||||
|   #:use-module (gnu installer newt utils) | ||||
|   #:use-module (gnu installer utils) | ||||
|  | @ -144,7 +143,7 @@ REAL-NAME, and HOME-DIRECTORY as the initial values in the form." | |||
|                              (name name) | ||||
|                              (real-name real-name) | ||||
|                              (home-directory home-directory) | ||||
|                              (password password)) | ||||
|                              (password (make-secret password))) | ||||
|                             (run-user-add-page #:name name | ||||
|                                                #:real-name real-name | ||||
|                                                #:home-directory | ||||
|  | @ -257,9 +256,7 @@ administrator (\"root\").") | |||
|                    (run users)) | ||||
|                  (reverse users)) | ||||
|                 ((components=? argument exit-button) | ||||
|                  (raise | ||||
|                   (condition | ||||
|                    (&installer-step-abort)))))) | ||||
|                  (abort-to-prompt 'installer-step 'abort)))) | ||||
|               ('exit-fd-ready | ||||
|                ;; Read the complete user list at once. | ||||
|                (match argument | ||||
|  | @ -269,7 +266,7 @@ administrator (\"root\").") | |||
|                   (map (lambda (name real-name home password) | ||||
|                          (user (name name) (real-name real-name) | ||||
|                                (home-directory home) | ||||
|                                (password password))) | ||||
|                                (password (make-secret password)))) | ||||
|                        names real-names homes passwords)))))) | ||||
|           (lambda () | ||||
|             (destroy-form-and-pop form)))))) | ||||
|  | @ -277,5 +274,5 @@ administrator (\"root\").") | |||
|   ;; Add a "root" user simply to convey the root password. | ||||
|   (cons (user (name "root") | ||||
|               (home-directory "/root") | ||||
|               (password (run-root-password-page))) | ||||
|               (password (make-secret (run-root-password-page)))) | ||||
|         (run '()))) | ||||
|  |  | |||
|  | @ -84,7 +84,7 @@ we want this page to occupy all the screen space available." | |||
|                       (string=? str (listbox-item->text item)))) | ||||
|                    keys) | ||||
|         ((key . item) item) | ||||
|         (#f (raise (condition (&installer-step-abort)))))) | ||||
|         (#f (abort-to-prompt 'installer-step 'abort)))) | ||||
| 
 | ||||
|     (set-textbox-text logo-textbox (read-all logo)) | ||||
| 
 | ||||
|  |  | |||
|  | @ -237,9 +237,7 @@ force a wifi scan." | |||
|               (run-wifi-scan-page) | ||||
|               (run-wifi-page)) | ||||
|              ((components=? argument exit-button) | ||||
|               (raise | ||||
|                (condition | ||||
|                 (&installer-step-abort)))) | ||||
|               (abort-to-prompt 'installer-step 'abort)) | ||||
|              ((components=? argument listbox) | ||||
|               (let ((result (connect-wifi-service listbox service-items))) | ||||
|                 (unless result | ||||
|  |  | |||
|  | @ -343,8 +343,7 @@ fail. See rereadpt function in wipefs.c of util-linux for an explanation." | |||
| 
 | ||||
| (define (remove-logical-devices) | ||||
|   "Remove all active logical devices." | ||||
|   (with-null-output-ports | ||||
|    (invoke "dmsetup" "remove_all"))) | ||||
|    ((run-command-in-installer) "dmsetup" "remove_all")) | ||||
| 
 | ||||
| (define (installer-root-partition-path) | ||||
|   "Return the root partition path, or #f if it could not be detected." | ||||
|  | @ -371,7 +370,8 @@ which are smaller than %MIN-DEVICE-SIZE." | |||
|     (let ((length (device-length device)) | ||||
|           (sector-size (device-sector-size device))) | ||||
|       (and (< (* length sector-size) %min-device-size) | ||||
|            (syslog "~a is not eligible because it is smaller than ~a.~%" | ||||
|            (installer-log-line "~a is not eligible because it is smaller than \ | ||||
| ~a." | ||||
|                    (device-path device) | ||||
|                    (unit-format-custom-byte device | ||||
|                                             %min-device-size | ||||
|  | @ -391,7 +391,8 @@ which are smaller than %MIN-DEVICE-SIZE." | |||
|                            (string=? the-installer-root-partition-path | ||||
|                                      (partition-get-path partition))) | ||||
|                          (disk-partitions disk))))) | ||||
|          (syslog "~a is not eligible because it is the installation device.~%" | ||||
|          (installer-log-line "~a is not eligible because it is the \ | ||||
| installation device." | ||||
|                  (device-path device)))) | ||||
| 
 | ||||
|   (remove | ||||
|  | @ -634,8 +635,14 @@ determined by MAX-LENGTH-COLUMN procedure." | |||
| (define (mklabel device type-name) | ||||
|   "Create a partition table on DEVICE. TYPE-NAME is the type of the partition | ||||
| table, \"msdos\" or \"gpt\"." | ||||
|   (let ((type (disk-type-get type-name))) | ||||
|     (disk-new-fresh device type))) | ||||
|   (let* ((type (disk-type-get type-name)) | ||||
|          (disk (disk-new-fresh device type))) | ||||
|     (or disk | ||||
|         (raise | ||||
|          (condition | ||||
|           (&error) | ||||
|           (&message (message (format #f "Cannot create partition table of type | ||||
| ~a on device ~a." type-name (device-path device))))))))) | ||||
| 
 | ||||
|  | ||||
| ;; | ||||
|  | @ -817,24 +824,22 @@ cause them to cross." | |||
|                    (disk-add-partition disk partition no-constraint))) | ||||
|               (partition-ok? | ||||
|                (or partition-constraint-ok? partition-no-contraint-ok?))) | ||||
|          (syslog "Creating partition: | ||||
| ~/type: ~a | ||||
| ~/filesystem-type: ~a | ||||
| ~/start: ~a | ||||
| ~/end: ~a | ||||
| ~/start-range: [~a, ~a] | ||||
| ~/end-range: [~a, ~a] | ||||
| ~/constraint: ~a | ||||
| ~/no-constraint: ~a | ||||
| " | ||||
|                  partition-type | ||||
|                  (filesystem-type-name filesystem-type) | ||||
|                  start-sector* | ||||
|                  end-sector | ||||
|                  (geometry-start start-range) (geometry-end start-range) | ||||
|                  (geometry-start end-range) (geometry-end end-range) | ||||
|                  partition-constraint-ok? | ||||
|                  partition-no-contraint-ok?) | ||||
|          (installer-log-line "Creating partition:") | ||||
|          (installer-log-line "~/type: ~a" partition-type) | ||||
|          (installer-log-line "~/filesystem-type: ~a" | ||||
|                              (filesystem-type-name filesystem-type)) | ||||
|          (installer-log-line "~/start: ~a" start-sector*) | ||||
|          (installer-log-line "~/end: ~a" end-sector) | ||||
|          (installer-log-line "~/start-range: [~a, ~a]" | ||||
|                              (geometry-start start-range) | ||||
|                              (geometry-end start-range)) | ||||
|          (installer-log-line "~/end-range: [~a, ~a]" | ||||
|                              (geometry-start end-range) | ||||
|                              (geometry-end end-range)) | ||||
|          (installer-log-line "~/constraint: ~a" | ||||
|                              partition-constraint-ok?) | ||||
|          (installer-log-line "~/no-constraint: ~a" | ||||
|                              partition-no-contraint-ok?) | ||||
|          ;; Set the partition name if supported. | ||||
|          (when (and partition-ok? has-name? name) | ||||
|            (partition-set-name partition name)) | ||||
|  | @ -1115,53 +1120,37 @@ list and return the updated list." | |||
|             (file-name file-name)))) | ||||
|        user-partitions)) | ||||
| 
 | ||||
| (define-syntax-rule (with-null-output-ports exp ...) | ||||
|   "Evaluate EXP with both the output port and the error port pointing to the | ||||
| bit bucket." | ||||
|   (with-output-to-port (%make-void-port "w") | ||||
|     (lambda () | ||||
|       (with-error-to-port (%make-void-port "w") | ||||
|         (lambda () exp ...))))) | ||||
| 
 | ||||
| (define (create-btrfs-file-system partition) | ||||
|   "Create a btrfs file-system for PARTITION file-name." | ||||
|   (with-null-output-ports | ||||
|    (invoke "mkfs.btrfs" "-f" partition))) | ||||
|    ((run-command-in-installer) "mkfs.btrfs" "-f" partition)) | ||||
| 
 | ||||
| (define (create-ext4-file-system partition) | ||||
|   "Create an ext4 file-system for PARTITION file-name." | ||||
|   (with-null-output-ports | ||||
|    (invoke "mkfs.ext4" "-F" partition))) | ||||
|    ((run-command-in-installer) "mkfs.ext4" "-F" partition)) | ||||
| 
 | ||||
| (define (create-fat16-file-system partition) | ||||
|   "Create a fat16 file-system for PARTITION file-name." | ||||
|   (with-null-output-ports | ||||
|    (invoke "mkfs.fat" "-F16" partition))) | ||||
|    ((run-command-in-installer) "mkfs.fat" "-F16" partition)) | ||||
| 
 | ||||
| (define (create-fat32-file-system partition) | ||||
|   "Create a fat32 file-system for PARTITION file-name." | ||||
|   (with-null-output-ports | ||||
|    (invoke "mkfs.fat" "-F32" partition))) | ||||
|    ((run-command-in-installer) "mkfs.fat" "-F32" partition)) | ||||
| 
 | ||||
| (define (create-jfs-file-system partition) | ||||
|   "Create a JFS file-system for PARTITION file-name." | ||||
|   (with-null-output-ports | ||||
|    (invoke "jfs_mkfs" "-f" partition))) | ||||
|    ((run-command-in-installer) "jfs_mkfs" "-f" partition)) | ||||
| 
 | ||||
| (define (create-ntfs-file-system partition) | ||||
|   "Create a JFS file-system for PARTITION file-name." | ||||
|   (with-null-output-ports | ||||
|    (invoke "mkfs.ntfs" "-F" "-f" partition))) | ||||
|    ((run-command-in-installer) "mkfs.ntfs" "-F" "-f" partition)) | ||||
| 
 | ||||
| (define (create-xfs-file-system partition) | ||||
|   "Create an XFS file-system for PARTITION file-name." | ||||
|   (with-null-output-ports | ||||
|    (invoke "mkfs.xfs" "-f" partition))) | ||||
|    ((run-command-in-installer) "mkfs.xfs" "-f" partition)) | ||||
| 
 | ||||
| (define (create-swap-partition partition) | ||||
|   "Set up swap area on PARTITION file-name." | ||||
|   (with-null-output-ports | ||||
|    (invoke "mkswap" "-f" partition))) | ||||
|    ((run-command-in-installer) "mkswap" "-f" partition)) | ||||
| 
 | ||||
| (define (call-with-luks-key-file password proc) | ||||
|   "Write PASSWORD in a temporary file and pass it to PROC as argument." | ||||
|  | @ -1188,17 +1177,18 @@ USER-PARTITION if it is encrypted, or the plain file-name otherwise." | |||
|     (call-with-luks-key-file | ||||
|      password | ||||
|      (lambda (key-file) | ||||
|        (syslog "formatting and opening LUKS entry ~s at ~s~%" | ||||
|        (installer-log-line "formatting and opening LUKS entry ~s at ~s" | ||||
|                label file-name) | ||||
|        (system* "cryptsetup" "-q" "luksFormat" file-name key-file) | ||||
|        (system* "cryptsetup" "open" "--type" "luks" | ||||
|                 "--key-file" key-file file-name label))))) | ||||
|        ((run-command-in-installer) "cryptsetup" "-q" "luksFormat" | ||||
|         file-name key-file) | ||||
|        ((run-command-in-installer) "cryptsetup" "open" "--type" "luks" | ||||
|         "--key-file" key-file file-name label))))) | ||||
| 
 | ||||
| (define (luks-close user-partition) | ||||
|   "Close the encrypted partition pointed by USER-PARTITION." | ||||
|   (let ((label (user-partition-crypt-label user-partition))) | ||||
|     (syslog "closing LUKS entry ~s~%" label) | ||||
|     (system* "cryptsetup" "close" label))) | ||||
|     (installer-log-line "closing LUKS entry ~s" label) | ||||
|     ((run-command-in-installer) "cryptsetup" "close" label))) | ||||
| 
 | ||||
| (define (format-user-partitions user-partitions) | ||||
|   "Format the <user-partition> records in USER-PARTITIONS list with | ||||
|  | @ -1279,7 +1269,7 @@ respective mount-points." | |||
|                        (file-name | ||||
|                         (user-partition-upper-file-name user-partition))) | ||||
|                   (mkdir-p target) | ||||
|                   (syslog "mounting ~s on ~s~%" file-name target) | ||||
|                   (installer-log-line "mounting ~s on ~s" file-name target) | ||||
|                   (mount file-name target mount-type))) | ||||
|               sorted-partitions))) | ||||
| 
 | ||||
|  | @ -1295,7 +1285,7 @@ respective mount-points." | |||
|                        (target | ||||
|                         (string-append (%installer-target-dir) | ||||
|                                        mount-point))) | ||||
|                   (syslog "unmounting ~s~%" target) | ||||
|                   (installer-log-line "unmounting ~s" target) | ||||
|                   (umount target) | ||||
|                   (when crypt-label | ||||
|                     (luks-close user-partition)))) | ||||
|  | @ -1486,6 +1476,6 @@ the devices not to be used before returning." | |||
|                       (error | ||||
|                        (format #f (G_ "Device ~a is still in use.") | ||||
|                                file-name)) | ||||
|                       (syslog "Syncing ~a took ~a seconds.~%" | ||||
|                       (installer-log-line "Syncing ~a took ~a seconds." | ||||
|                               file-name (time-second time))))) | ||||
|               device-file-names))) | ||||
|  |  | |||
|  | @ -41,7 +41,10 @@ | |||
|             installer-services-page | ||||
|             installer-welcome-page | ||||
|             installer-parameters-menu | ||||
|             installer-parameters-page)) | ||||
|             installer-parameters-page | ||||
|             installer-dump-page | ||||
|             installer-run-command | ||||
|             installer-report-page)) | ||||
| 
 | ||||
|  | ||||
| ;;; | ||||
|  | @ -61,7 +64,7 @@ | |||
|   (init installer-init) | ||||
|   ;; procedure: void -> void | ||||
|   (exit installer-exit) | ||||
|   ;; procedure (key arguments) -> void | ||||
|   ;; procedure (key arguments) -> (action) | ||||
|   (exit-error installer-exit-error) | ||||
|   ;; procedure void -> void | ||||
|   (final-page installer-final-page) | ||||
|  | @ -91,4 +94,10 @@ | |||
|   ;; procedure (menu-proc) -> void | ||||
|   (parameters-menu installer-parameters-menu) | ||||
|   ;; procedure (keyboard-layout-selection) -> void | ||||
|   (parameters-page installer-parameters-page)) | ||||
|   (parameters-page installer-parameters-page) | ||||
|   ;; procedure (dump) -> void | ||||
|   (dump-page installer-dump-page) | ||||
|   ;; procedure command -> bool | ||||
|   (run-command installer-run-command) | ||||
|   ;; procedure (report) -> void | ||||
|   (report-page installer-report-page)) | ||||
|  |  | |||
|  | @ -28,13 +28,7 @@ | |||
|   #:use-module (srfi srfi-34) | ||||
|   #:use-module (srfi srfi-35) | ||||
|   #:use-module (rnrs io ports) | ||||
|   #:export (&installer-step-abort | ||||
|             installer-step-abort? | ||||
| 
 | ||||
|             &installer-step-break | ||||
|             installer-step-break? | ||||
| 
 | ||||
|             <installer-step> | ||||
|   #:export (<installer-step> | ||||
|             installer-step | ||||
|             make-installer-step | ||||
|             installer-step? | ||||
|  | @ -52,15 +46,13 @@ | |||
|             %installer-configuration-file | ||||
|             %installer-target-dir | ||||
|             format-configuration | ||||
|             configuration->file)) | ||||
|             configuration->file | ||||
| 
 | ||||
| ;; This condition may be raised to abort the current step. | ||||
| (define-condition-type &installer-step-abort &condition | ||||
|   installer-step-abort?) | ||||
|             %current-result)) | ||||
| 
 | ||||
| ;; This condition may be raised to break out from the steps execution. | ||||
| (define-condition-type &installer-step-break &condition | ||||
|   installer-step-break?) | ||||
| ;; Hash table storing the step results. Use it only for logging and debug | ||||
| ;; purposes. | ||||
| (define %current-result (make-hash-table)) | ||||
| 
 | ||||
| ;; An installer-step record is basically an id associated to a compute | ||||
| ;; procedure. The COMPUTE procedure takes exactly one argument, an association | ||||
|  | @ -88,8 +80,10 @@ | |||
|                               (rewind-strategy 'previous) | ||||
|                               (menu-proc (const #f))) | ||||
|   "Run the COMPUTE procedure of all <installer-step> records in STEPS | ||||
| sequentially.  If the &installer-step-abort condition is raised, fallback to a | ||||
| previous install-step, accordingly to the specified REWIND-STRATEGY. | ||||
| sequentially, inside a the 'installer-step prompt.  When aborted to with a | ||||
| parameter of 'abort, fallback to a previous install-step, accordingly to the | ||||
| specified REWIND-STRATEGY.  When aborted to with a parameter of 'break, stop | ||||
| the computation and return the accumalated result so far. | ||||
| 
 | ||||
| REWIND-STRATEGY possible values are 'previous, 'menu and 'start.  If 'previous | ||||
| is selected, the execution will resume at the previous installer-step. If | ||||
|  | @ -106,10 +100,7 @@ the form: | |||
| where STEP-ID is the ID field of the installer-step and COMPUTE-RESULT the | ||||
| result of the associated COMPUTE procedure. This result association list is | ||||
| passed as argument of every COMPUTE procedure. It is finally returned when the | ||||
| computation is over. | ||||
| 
 | ||||
| If the &installer-step-break condition is raised, stop the computation and | ||||
| return the accumalated result so far." | ||||
| computation is over." | ||||
|   (define (pop-result list) | ||||
|     (cdr list)) | ||||
| 
 | ||||
|  | @ -143,62 +134,61 @@ return the accumalated result so far." | |||
|     (match todo-steps | ||||
|       (() (reverse result)) | ||||
|       ((step . rest-steps) | ||||
|        (guard (c ((installer-step-abort? c) | ||||
|                   (case rewind-strategy | ||||
|                     ((previous) | ||||
|                      (match done-steps | ||||
|                        (() | ||||
|                         ;; We cannot go previous the first step. So re-raise | ||||
|                         ;; the exception. It might be useful in the case of | ||||
|                         ;; nested run-installer-steps. Abort to 'raise-above | ||||
|                         ;; prompt to prevent the condition from being catched | ||||
|                         ;; by one of the previously installed guard. | ||||
|                         (abort-to-prompt 'raise-above c)) | ||||
|                        ((prev-done ... last-done) | ||||
|                         (run (pop-result result) | ||||
|                              #:todo-steps (cons last-done todo-steps) | ||||
|                              #:done-steps prev-done)))) | ||||
|                     ((menu) | ||||
|                      (let ((goto-step (menu-proc | ||||
|                                        (append done-steps (list step))))) | ||||
|                        (if (eq? goto-step step) | ||||
|                            (run result | ||||
|                                 #:todo-steps todo-steps | ||||
|                                 #:done-steps done-steps) | ||||
|                            (skip-to-step goto-step result | ||||
|                                          #:todo-steps todo-steps | ||||
|                                          #:done-steps done-steps)))) | ||||
|                     ((start) | ||||
|                      (if (null? done-steps) | ||||
|                          ;; Same as above, it makes no sense to jump to start | ||||
|                          ;; when we are at the first installer-step. Abort to | ||||
|                          ;; 'raise-above prompt to re-raise the condition. | ||||
|                          (abort-to-prompt 'raise-above c) | ||||
|                          (run '() | ||||
|                               #:todo-steps steps | ||||
|                               #:done-steps '()))))) | ||||
|                  ((installer-step-break? c) | ||||
|                   (reverse result))) | ||||
|          (syslog "running step '~a'~%" (installer-step-id step)) | ||||
|          (let* ((id (installer-step-id step)) | ||||
|                 (compute (installer-step-compute step)) | ||||
|                 (res (compute result done-steps))) | ||||
|            (run (alist-cons id res result) | ||||
|                 #:todo-steps rest-steps | ||||
|                 #:done-steps (append done-steps (list step)))))))) | ||||
|        (call-with-prompt 'installer-step | ||||
|          (lambda () | ||||
|            (installer-log-line "running step '~a'" (installer-step-id step)) | ||||
|            (let* ((id (installer-step-id step)) | ||||
|                   (compute (installer-step-compute step)) | ||||
|                   (res (compute result done-steps))) | ||||
|              (hash-set! %current-result id res) | ||||
|              (run (alist-cons id res result) | ||||
|                   #:todo-steps rest-steps | ||||
|                   #:done-steps (append done-steps (list step))))) | ||||
|          (lambda (k action) | ||||
|            (match action | ||||
|              ('abort | ||||
|               (case rewind-strategy | ||||
|                 ((previous) | ||||
|                  (match done-steps | ||||
|                    (() | ||||
|                     ;; We cannot go previous the first step. Abort again to | ||||
|                     ;; 'installer-step prompt. It might be useful in the case | ||||
|                     ;; of nested run-installer-steps. | ||||
|                     (abort-to-prompt 'installer-step action)) | ||||
|                    ((prev-done ... last-done) | ||||
|                     (run (pop-result result) | ||||
|                          #:todo-steps (cons last-done todo-steps) | ||||
|                          #:done-steps prev-done)))) | ||||
|                 ((menu) | ||||
|                  (let ((goto-step (menu-proc | ||||
|                                    (append done-steps (list step))))) | ||||
|                    (if (eq? goto-step step) | ||||
|                        (run result | ||||
|                             #:todo-steps todo-steps | ||||
|                             #:done-steps done-steps) | ||||
|                        (skip-to-step goto-step result | ||||
|                                      #:todo-steps todo-steps | ||||
|                                      #:done-steps done-steps)))) | ||||
|                 ((start) | ||||
|                  (if (null? done-steps) | ||||
|                      ;; Same as above, it makes no sense to jump to start | ||||
|                      ;; when we are at the first installer-step. Abort to | ||||
|                      ;; 'installer-step prompt again. | ||||
|                      (abort-to-prompt 'installer-step action) | ||||
|                      (run '() | ||||
|                           #:todo-steps steps | ||||
|                           #:done-steps '()))))) | ||||
|              ('break | ||||
|               (reverse result)))))))) | ||||
| 
 | ||||
|   ;; Ignore SIGPIPE so that we don't die if a client closes the connection | ||||
|   ;; prematurely. | ||||
|   (sigaction SIGPIPE SIG_IGN) | ||||
| 
 | ||||
|   (with-server-socket | ||||
|     (call-with-prompt 'raise-above | ||||
|       (lambda () | ||||
|         (run '() | ||||
|              #:todo-steps steps | ||||
|              #:done-steps '())) | ||||
|       (lambda (k condition) | ||||
|         (raise condition))))) | ||||
|     (run '() | ||||
|          #:todo-steps steps | ||||
|          #:done-steps '()))) | ||||
| 
 | ||||
| (define (find-step-by-id steps id) | ||||
|   "Find and return the step in STEPS whose id is equal to ID." | ||||
|  |  | |||
|  | @ -19,7 +19,14 @@ | |||
| (define-module (gnu installer user) | ||||
|   #:use-module (guix records) | ||||
|   #:use-module (srfi srfi-1) | ||||
|   #:export (<user> | ||||
|   #:use-module (srfi srfi-9) | ||||
|   #:use-module (srfi srfi-9 gnu) | ||||
|   #:export (<secret> | ||||
|             secret? | ||||
|             make-secret | ||||
|             secret-content | ||||
| 
 | ||||
|             <user> | ||||
|             user | ||||
|             make-user | ||||
|             user-name | ||||
|  | @ -30,6 +37,16 @@ | |||
| 
 | ||||
|             users->configuration)) | ||||
| 
 | ||||
| (define-record-type <secret> | ||||
|   (make-secret content) | ||||
|   secret? | ||||
|   (content secret-content)) | ||||
| 
 | ||||
| (set-record-type-printer! | ||||
|  <secret> | ||||
|  (lambda (secret port) | ||||
|    (format port "<secret>"))) | ||||
| 
 | ||||
| (define-record-type* <user> | ||||
|   user make-user | ||||
|   user? | ||||
|  |  | |||
|  | @ -25,7 +25,10 @@ | |||
|   #:use-module (srfi srfi-1) | ||||
|   #:use-module (srfi srfi-19) | ||||
|   #:use-module (srfi srfi-34) | ||||
|   #:use-module (srfi srfi-35) | ||||
|   #:use-module (ice-9 control) | ||||
|   #:use-module (ice-9 match) | ||||
|   #:use-module (ice-9 popen) | ||||
|   #:use-module (ice-9 rdelim) | ||||
|   #:use-module (ice-9 regex) | ||||
|   #:use-module (ice-9 format) | ||||
|  | @ -34,10 +37,17 @@ | |||
|             read-all | ||||
|             nearest-exact-integer | ||||
|             read-percentage | ||||
|             run-external-command-with-handler | ||||
|             run-external-command-with-line-hooks | ||||
|             run-command | ||||
|             run-command-in-installer | ||||
| 
 | ||||
|             syslog-port | ||||
|             syslog | ||||
|             %syslog-line-hook | ||||
|             installer-log-port | ||||
|             %installer-log-line-hook | ||||
|             %default-installer-line-hooks | ||||
|             installer-log-line | ||||
|             call-with-time | ||||
|             let/time | ||||
| 
 | ||||
|  | @ -74,37 +84,99 @@ number. If no percentage is found, return #f" | |||
|     (and result | ||||
|          (string->number (match:substring result 1))))) | ||||
| 
 | ||||
| (define* (run-external-command-with-handler handler command) | ||||
|   "Run command specified by the list COMMAND in a child with output handler | ||||
| HANDLER.  HANDLER is a procedure taking an input port, to which the command | ||||
| will write its standard output and error.  Returns the integer status value of | ||||
| the child process as returned by waitpid." | ||||
|   (match-let (((input . output) (pipe))) | ||||
|     ;; Hack to work around Guile bug 52835 | ||||
|     (define dup-output (duplicate-port output "w")) | ||||
|     ;; Void pipe, but holds the pid for close-pipe. | ||||
|     (define dummy-pipe | ||||
|       (with-input-from-file "/dev/null" | ||||
|         (lambda () | ||||
|           (with-output-to-port output | ||||
|             (lambda () | ||||
|               (with-error-to-port dup-output | ||||
|                 (lambda () | ||||
|                   (apply open-pipe* (cons "" command))))))))) | ||||
|     (close-port output) | ||||
|     (close-port dup-output) | ||||
|     (handler input) | ||||
|     (close-port input) | ||||
|     (close-pipe dummy-pipe))) | ||||
| 
 | ||||
| (define (run-external-command-with-line-hooks line-hooks command) | ||||
|   "Run command specified by the list COMMAND in a child, processing each | ||||
| output line with the procedures in LINE-HOOKS.  Returns the integer status | ||||
| value of the child process as returned by waitpid." | ||||
|   (define (handler input) | ||||
|     (and | ||||
|      (and=> (get-line input) | ||||
|             (lambda (line) | ||||
|               (if (eof-object? line) | ||||
|                   #f | ||||
|                   (begin (for-each (lambda (f) (f line)) | ||||
|                                    (append line-hooks | ||||
|                                        %default-installer-line-hooks)) | ||||
|                          #t)))) | ||||
|      (handler input))) | ||||
|   (run-external-command-with-handler handler command)) | ||||
| 
 | ||||
| (define* (run-command command) | ||||
|   "Run COMMAND, a list of strings.  Return true if COMMAND exited | ||||
| successfully, #f otherwise." | ||||
|   (define env (environ)) | ||||
| 
 | ||||
|   (define (pause) | ||||
|     (format #t (G_ "Press Enter to continue.~%")) | ||||
|     (send-to-clients '(pause)) | ||||
|     (environ env)                               ;restore environment variables | ||||
|     (match (select (cons (current-input-port) (current-clients)) | ||||
|              '() '()) | ||||
|       (((port _ ...) _ _) | ||||
|        (read-line port)))) | ||||
| 
 | ||||
|   (setenv "PATH" "/run/current-system/profile/bin") | ||||
|   (installer-log-line "running command ~s" command) | ||||
|   (define result (run-external-command-with-line-hooks | ||||
|                   (list %display-line-hook) | ||||
|                   command)) | ||||
|   (define exit-val (status:exit-val result)) | ||||
|   (define term-sig (status:term-sig result)) | ||||
|   (define stop-sig (status:stop-sig result)) | ||||
|   (define succeeded? | ||||
|     (cond | ||||
|      ((and exit-val (not (zero? exit-val))) | ||||
|       (installer-log-line "command ~s exited with value ~a" | ||||
|                           command exit-val) | ||||
|       (format #t (G_ "Command ~s exited with value ~a") | ||||
|               command exit-val) | ||||
|       #f) | ||||
|      (term-sig | ||||
|       (installer-log-line "command ~s killed by signal ~a" | ||||
|                           command term-sig) | ||||
|       (format #t (G_ "Command ~s killed by signal ~a") | ||||
|               command term-sig) | ||||
|       #f) | ||||
|      (stop-sig | ||||
|       (installer-log-line "command ~s stopped by signal ~a" | ||||
|                           command stop-sig) | ||||
|       (format #t (G_ "Command ~s stopped by signal ~a") | ||||
|               command stop-sig) | ||||
|       #f) | ||||
|      (else | ||||
|       (installer-log-line "command ~s succeeded" command) | ||||
|       (format #t (G_ "Command ~s succeeded") command) | ||||
|       #t))) | ||||
|   (newline) | ||||
|   (pause) | ||||
|   succeeded?) | ||||
| 
 | ||||
|   (guard (c ((invoke-error? c) | ||||
|              (newline) | ||||
|              (format (current-error-port) | ||||
|                      (G_ "Command failed with exit code ~a.~%") | ||||
|                      (invoke-error-exit-status c)) | ||||
|              (syslog "command ~s failed with exit code ~a" | ||||
|                      command (invoke-error-exit-status c)) | ||||
|              (pause) | ||||
|              #f)) | ||||
|     (syslog "running command ~s~%" command) | ||||
|     (apply invoke command) | ||||
|     (syslog "command ~s succeeded~%" command) | ||||
|     (newline) | ||||
|     (pause) | ||||
|     #t)) | ||||
| (define run-command-in-installer | ||||
|   (make-parameter | ||||
|    (lambda (. args) | ||||
|      (raise | ||||
|       (condition | ||||
|        (&serious) | ||||
|        (&message (message "run-command-in-installer not set"))))))) | ||||
| 
 | ||||
|  | ||||
| ;;; | ||||
|  | @ -142,6 +214,9 @@ values." | |||
|         (set! port (open-syslog-port))) | ||||
|       (or port (%make-void-port "w"))))) | ||||
| 
 | ||||
| (define (%syslog-line-hook line) | ||||
|   (format (syslog-port) "installer[~d]: ~a~%" (getpid) line)) | ||||
| 
 | ||||
| (define-syntax syslog | ||||
|   (lambda (s) | ||||
|     "Like 'format', but write to syslog." | ||||
|  | @ -152,6 +227,43 @@ values." | |||
|                                          (syntax->datum #'fmt)))) | ||||
|          #'(format (syslog-port) fmt (getpid) args ...)))))) | ||||
| 
 | ||||
| (define (open-new-log-port) | ||||
|   (define now (localtime (time-second (current-time)))) | ||||
|   (define filename | ||||
|     (format #f "/tmp/installer.~a.log" | ||||
|             (strftime "%F.%T" now))) | ||||
|   (open filename (logior O_RDWR | ||||
|                          O_CREAT))) | ||||
| 
 | ||||
| (define installer-log-port | ||||
|   (let ((port #f)) | ||||
|     (lambda () | ||||
|       "Return an input and output port to the installer log." | ||||
|       (unless port | ||||
|         (set! port (open-new-log-port))) | ||||
|       port))) | ||||
| 
 | ||||
| (define (%installer-log-line-hook line) | ||||
|   (format (installer-log-port) "~a~%" line)) | ||||
| 
 | ||||
| (define (%display-line-hook line) | ||||
|   (display line) | ||||
|   (newline)) | ||||
| 
 | ||||
| (define %default-installer-line-hooks | ||||
|   (list %syslog-line-hook | ||||
|         %installer-log-line-hook)) | ||||
| 
 | ||||
| (define-syntax installer-log-line | ||||
|   (lambda (s) | ||||
|     "Like 'format', but uses the default line hooks, and only formats one line." | ||||
|     (syntax-case s () | ||||
|       ((_ fmt args ...) | ||||
|        (string? (syntax->datum #'fmt)) | ||||
|        #'(let ((formatted (format #f fmt args ...))) | ||||
|                (for-each (lambda (f) (f formatted)) | ||||
|                          %default-installer-line-hooks)))))) | ||||
| 
 | ||||
|  | ||||
| ;;; | ||||
| ;;; Client protocol. | ||||
|  | @ -214,8 +326,9 @@ accepting socket." | |||
|                 (let ((errno (system-error-errno args))) | ||||
|                   (if (memv errno (list EPIPE ECONNRESET ECONNABORTED)) | ||||
|                       (begin | ||||
|                         (syslog "removing client ~s due to ~s while replying~%" | ||||
|                                 (fileno client) (strerror errno)) | ||||
|                         (installer-log-line | ||||
|                          "removing client ~s due to ~s while replying" | ||||
|                          (fileno client) (strerror errno)) | ||||
|                         (false-if-exception (close-port client)) | ||||
|                         remainder) | ||||
|                       (cons client remainder)))))) | ||||
|  |  | |||
							
								
								
									
										38
									
								
								gnu/local.mk
									
										
									
									
									
								
							
							
						
						
									
										38
									
								
								gnu/local.mk
									
										
									
									
									
								
							|  | @ -7,7 +7,7 @@ | |||
| # Copyright © 2016, 2017, 2018 Kei Kebreau <kkebreau@posteo.net>
 | ||||
| # Copyright © 2016, 2017 Rene Saavedra <rennes@openmailbox.org>
 | ||||
| # Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
 | ||||
| # Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
 | ||||
| # Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
 | ||||
| # Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
 | ||||
| # Copyright © 2016, 2017, 2018, 2019 Alex Vong <alexvong1995@gmail.com>
 | ||||
| # Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 | ||||
|  | @ -79,6 +79,7 @@ GNU_SYSTEM_MODULES =				\ | |||
|   %D%/ci.scm					\
 | ||||
|   %D%/home.scm					\
 | ||||
|   %D%/home/services.scm			\
 | ||||
|   %D%/home/services/desktop.scm			\
 | ||||
|   %D%/home/services/symlink-manager.scm		\
 | ||||
|   %D%/home/services/fontutils.scm		\
 | ||||
|   %D%/home/services/shells.scm			\
 | ||||
|  | @ -581,6 +582,7 @@ GNU_SYSTEM_MODULES =				\ | |||
|   %D%/packages/time.scm				\
 | ||||
|   %D%/packages/tls.scm				\
 | ||||
|   %D%/packages/tmux.scm				\
 | ||||
|   %D%/packages/toolkits.scm			\
 | ||||
|   %D%/packages/tor.scm				\
 | ||||
|   %D%/packages/tv.scm				\
 | ||||
|   %D%/packages/uglifyjs.scm			\
 | ||||
|  | @ -758,6 +760,7 @@ GNU_SYSTEM_MODULES =				\ | |||
| INSTALLER_MODULES =                             \
 | ||||
|   %D%/installer.scm      			\
 | ||||
|   %D%/installer/connman.scm			\
 | ||||
|   %D%/installer/dump.scm			\
 | ||||
|   %D%/installer/final.scm			\
 | ||||
|   %D%/installer/hostname.scm			\
 | ||||
|   %D%/installer/keymap.scm			\
 | ||||
|  | @ -859,6 +862,7 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/ath9k-htc-firmware-gcc-compat.patch	\
 | ||||
|   %D%/packages/patches/ath9k-htc-firmware-objcopy.patch		\
 | ||||
|   %D%/packages/patches/atlas-gfortran-compat.patch		\
 | ||||
|   %D%/packages/patches/audacity-ffmpeg-fallback.patch	\
 | ||||
|   %D%/packages/patches/audiofile-fix-datatypes-in-tests.patch	\
 | ||||
|   %D%/packages/patches/audiofile-fix-sign-conversion.patch	\
 | ||||
|   %D%/packages/patches/audiofile-CVE-2015-7747.patch		\
 | ||||
|  | @ -909,6 +913,8 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/binutils-mingw-w64-timestamp.patch	\
 | ||||
|   %D%/packages/patches/binutils-mingw-w64-deterministic.patch	\
 | ||||
|   %D%/packages/patches/binutils-CVE-2021-45078.patch		\
 | ||||
|   %D%/packages/patches/bloomberg-bde-cmake-module-path.patch	\
 | ||||
|   %D%/packages/patches/bloomberg-bde-tools-fix-install-path.patch	\
 | ||||
|   %D%/packages/patches/bpftrace-disable-bfd-disasm.patch	\
 | ||||
|   %D%/packages/patches/byobu-writable-status.patch		\
 | ||||
|   %D%/packages/patches/bubblewrap-fix-locale-in-tests.patch	\
 | ||||
|  | @ -965,6 +971,7 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/coq-fix-envvars.patch			\
 | ||||
|   %D%/packages/patches/coreutils-ls.patch			\
 | ||||
|   %D%/packages/patches/cpuinfo-system-libraries.patch		\
 | ||||
|   %D%/packages/patches/cpulimit-with-glib-2.32.patch		\
 | ||||
|   %D%/packages/patches/crawl-upgrade-saves.patch		\
 | ||||
|   %D%/packages/patches/crda-optional-gcrypt.patch		\
 | ||||
|   %D%/packages/patches/clucene-contribs-lib.patch               \
 | ||||
|  | @ -1002,6 +1009,7 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch	\
 | ||||
|   %D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch	\
 | ||||
|   %D%/packages/patches/dstat-skip-devices-without-io.patch	\
 | ||||
|   %D%/packages/patches/dunst-1.7.3-fix-crash.patch		\
 | ||||
|   %D%/packages/patches/dvd+rw-tools-add-include.patch 		\
 | ||||
|   %D%/packages/patches/dynaconf-unvendor-deps.patch		\
 | ||||
|   %D%/packages/patches/ecl-16-format-directive-limit.patch	\
 | ||||
|  | @ -1049,6 +1057,10 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/fasthenry-spSolve.patch			\
 | ||||
|   %D%/packages/patches/fasthenry-spFactor.patch			\
 | ||||
|   %D%/packages/patches/fbreader-curl-7.62.patch		\
 | ||||
|   %D%/packages/patches/fenics-dolfin-algorithm.patch		\
 | ||||
|   %D%/packages/patches/fenics-dolfin-demo-init.patch		\
 | ||||
|   %D%/packages/patches/fenics-dolfin-boost.patch		\
 | ||||
|   %D%/packages/patches/fenics-dolfin-config-slepc.patch		\
 | ||||
|   %D%/packages/patches/fifengine-boost-compat.patch		\
 | ||||
|   %D%/packages/patches/fifengine-swig-compat.patch		\
 | ||||
|   %D%/packages/patches/fifo-map-fix-flags-for-gcc.patch		\
 | ||||
|  | @ -1131,6 +1143,7 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/geeqie-clutter.patch			\
 | ||||
|   %D%/packages/patches/genimage-mke2fs-test.patch		\
 | ||||
|   %D%/packages/patches/geoclue-config.patch			\
 | ||||
|   %D%/packages/patches/ghc-4.patch				\
 | ||||
|   %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch	\
 | ||||
|   %D%/packages/patches/ghc-testsuite-dlopen-pie.patch		\
 | ||||
|   %D%/packages/patches/ghc-language-haskell-extract-ghc-8.10.patch	\
 | ||||
|  | @ -1227,6 +1240,7 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/guile-linux-syscalls.patch		\
 | ||||
|   %D%/packages/patches/guile-3.0-linux-syscalls.patch		\
 | ||||
|   %D%/packages/patches/guile-fibers-destroy-peer-schedulers.patch \
 | ||||
|   %D%/packages/patches/guile-fibers-wait-for-io-readiness.patch \
 | ||||
|   %D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch	\
 | ||||
|   %D%/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch \
 | ||||
|   %D%/packages/patches/guile-present-coding.patch		\
 | ||||
|  | @ -1299,6 +1313,9 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/json-c-0.12-CVE-2020-12762.patch	\
 | ||||
|   %D%/packages/patches/jsoncpp-pkg-config-version.patch		\
 | ||||
|   %D%/packages/patches/jami-fix-crash-on-quit.patch		\
 | ||||
|   %D%/packages/patches/jami-images-loading.patch		\
 | ||||
|   %D%/packages/patches/jami-memory-usage.patch			\
 | ||||
|   %D%/packages/patches/jami-libclient-audio-managers.patch	\
 | ||||
|   %D%/packages/patches/jamvm-1.5.1-aarch64-support.patch	\
 | ||||
|   %D%/packages/patches/jamvm-1.5.1-armv7-support.patch	\
 | ||||
|   %D%/packages/patches/jamvm-2.0.0-aarch64-support.patch	\
 | ||||
|  | @ -1402,6 +1419,7 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch	\
 | ||||
|   %D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch	\
 | ||||
|   %D%/packages/patches/libquicktime-ffmpeg.patch 		\
 | ||||
|   %D%/packages/patches/librecad-support-for-boost-1.76.patch	\
 | ||||
|   %D%/packages/patches/libssh2-CVE-2019-17498.patch 		\
 | ||||
|   %D%/packages/patches/libtar-CVE-2013-4420.patch 		\
 | ||||
|   %D%/packages/patches/libtgvoip-disable-sse2.patch 		\
 | ||||
|  | @ -1504,6 +1522,7 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/mozjs38-shell-version.patch		\
 | ||||
|   %D%/packages/patches/mozjs38-tracelogger.patch		\
 | ||||
|   %D%/packages/patches/mozjs38-version-detection.patch		\
 | ||||
|   %D%/packages/patches/mozjs60-riscv64-support.patch		\
 | ||||
|   %D%/packages/patches/mrrescue-support-love-11.patch		\
 | ||||
|   %D%/packages/patches/mtools-mformat-uninitialized.patch	\
 | ||||
|   %D%/packages/patches/mumps-build-parallelism.patch		\
 | ||||
|  | @ -1555,7 +1574,6 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch	\
 | ||||
|   %D%/packages/patches/ocaml-multiple-definitions.patch		\
 | ||||
|   %D%/packages/patches/ocaml-4.09-multiple-definitions.patch	\
 | ||||
|   %D%/packages/patches/ocaml-qcheck-fix-test-whitespace.patch	\
 | ||||
|   %D%/packages/patches/omake-fix-non-determinism.patch	\
 | ||||
|   %D%/packages/patches/oneko-remove-nonfree-characters.patch	\
 | ||||
|   %D%/packages/patches/onnx-optimizer-system-library.patch	\
 | ||||
|  | @ -1563,6 +1581,7 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/onnx-shared-libraries.patch	\
 | ||||
|   %D%/packages/patches/onnx-skip-model-downloads.patch		\
 | ||||
|   %D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch	\
 | ||||
|   %D%/packages/patches/openboardview-use-system-utf8.patch	\
 | ||||
|   %D%/packages/patches/opencascade-oce-glibc-2.26.patch		\
 | ||||
|   %D%/packages/patches/openfoam-4.1-cleanup.patch			\
 | ||||
|   %D%/packages/patches/openjdk-10-idlj-reproducibility.patch	\
 | ||||
|  | @ -1574,8 +1593,8 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/opensles-add-license-file.patch			\
 | ||||
|   %D%/packages/patches/openssl-runpath.patch			\
 | ||||
|   %D%/packages/patches/openssl-1.1-c-rehash-in.patch		\
 | ||||
|   %D%/packages/patches/openssl-3.0-c-rehash-in.patch		\
 | ||||
|   %D%/packages/patches/openssl-c-rehash-in.patch		\
 | ||||
|   %D%/packages/patches/openssl-CVE-2019-1559.patch		\
 | ||||
|   %D%/packages/patches/open-zwave-hidapi.patch			\
 | ||||
|   %D%/packages/patches/orpheus-cast-errors-and-includes.patch	\
 | ||||
|   %D%/packages/patches/osip-CVE-2017-7853.patch			\
 | ||||
|  | @ -1614,6 +1633,9 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/p11-kit-hurd.patch			\
 | ||||
|   %D%/packages/patches/patchutils-test-perms.patch		\
 | ||||
|   %D%/packages/patches/patch-hurd-path-max.patch		\
 | ||||
|   %D%/packages/patches/perl-5.14-autosplit-default-time.patch	\
 | ||||
|   %D%/packages/patches/perl-5.14-module-pluggable-search.patch	\
 | ||||
|   %D%/packages/patches/perl-5.14-no-sys-dirs.patch		\
 | ||||
|   %D%/packages/patches/perl-autosplit-default-time.patch	\
 | ||||
|   %D%/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \
 | ||||
|   %D%/packages/patches/perl-image-exiftool-CVE-2021-22204.patch	\
 | ||||
|  | @ -1645,6 +1667,7 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/plib-CVE-2011-4620.patch		\
 | ||||
|   %D%/packages/patches/plib-CVE-2012-4552.patch		\
 | ||||
|   %D%/packages/patches/plotutils-spline-test.patch		\
 | ||||
|   %D%/packages/patches/polkit-CVE-2021-4034.patch		\
 | ||||
|   %D%/packages/patches/polkit-configure-elogind.patch		\
 | ||||
|   %D%/packages/patches/polkit-use-duktape.patch			\
 | ||||
|   %D%/packages/patches/portaudio-audacity-compat.patch		\
 | ||||
|  | @ -1717,8 +1740,10 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/python-pytest-asyncio-python-3.8.patch	\
 | ||||
|   %D%/packages/patches/python-pytorch-runpath.patch		\
 | ||||
|   %D%/packages/patches/python-pytorch-system-libraries.patch	\
 | ||||
|   %D%/packages/patches/python-pytorch-1.9.0-system-libraries.patch \
 | ||||
|   %D%/packages/patches/python-robotframework-source-date-epoch.patch \
 | ||||
|   %D%/packages/patches/python-seaborn-kde-test.patch		\
 | ||||
|   %D%/packages/patches/python-seaborn-2690.patch		\
 | ||||
|   %D%/packages/patches/python2-subprocess32-disable-input-test.patch	\
 | ||||
|   %D%/packages/patches/python-unittest2-python3-compat.patch	\
 | ||||
|   %D%/packages/patches/python-unittest2-remove-argparse.patch	\
 | ||||
|  | @ -1751,7 +1776,6 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/raptor2-heap-overflow.patch		\
 | ||||
|   %D%/packages/patches/ratpoints-sturm_and_rp_private.patch	\
 | ||||
|   %D%/packages/patches/ratpoison-shell.patch			\
 | ||||
|   %D%/packages/patches/rcs-5.10.0-no-stdin.patch		\
 | ||||
|   %D%/packages/patches/rct-add-missing-headers.patch		\
 | ||||
|   %D%/packages/patches/readline-link-ncurses.patch		\
 | ||||
|   %D%/packages/patches/readline-6.2-CVE-2014-2524.patch		\
 | ||||
|  | @ -1774,6 +1798,7 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch \
 | ||||
|   %D%/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch \
 | ||||
|   %D%/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch \
 | ||||
|   %D%/packages/patches/ruby-mustache-1.1.1-fix-race-condition-tests.patch \
 | ||||
|   %D%/packages/patches/ruby-sanitize-system-libxml.patch	\
 | ||||
|   %D%/packages/patches/rustc-1.39.0-src.patch			\
 | ||||
|   %D%/packages/patches/rust-adblock-ignore-live-tests.patch		\
 | ||||
|  | @ -1843,6 +1868,7 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/tao-fix-parser-types.patch		\
 | ||||
|   %D%/packages/patches/tar-remove-wholesparse-check.patch	\
 | ||||
|   %D%/packages/patches/tar-skip-unreliable-tests.patch		\
 | ||||
|   %D%/packages/patches/tbb-fix-test-on-aarch64.patch		\
 | ||||
|   %D%/packages/patches/tcc-boot-0.9.27.patch			\
 | ||||
|   %D%/packages/patches/tclxml-3.2-install.patch			\
 | ||||
|   %D%/packages/patches/tcsh-fix-autotest.patch			\
 | ||||
|  | @ -1881,7 +1907,6 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/u-boot-riscv64-fix-extlinux.patch	\
 | ||||
|   %D%/packages/patches/u-boot-rk3399-enable-emmc-phy.patch	\
 | ||||
|   %D%/packages/patches/ucx-tcp-iface-ioctl.patch		\
 | ||||
|   %D%/packages/patches/ungoogled-chromium-accelerated-video-decode.patch	\
 | ||||
|   %D%/packages/patches/ungoogled-chromium-extension-search-path.patch	\
 | ||||
|   %D%/packages/patches/ungoogled-chromium-ffmpeg-compat.patch	\
 | ||||
|   %D%/packages/patches/ungoogled-chromium-RUNPATH.patch		\
 | ||||
|  | @ -1925,6 +1950,8 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/upx-CVE-2021-20285.patch		\
 | ||||
|   %D%/packages/patches/ustr-fix-build-with-gcc-5.patch		\
 | ||||
|   %D%/packages/patches/util-linux-tests.patch			\
 | ||||
|   %D%/packages/patches/util-linux-CVE-2021-3995.patch		\
 | ||||
|   %D%/packages/patches/util-linux-CVE-2021-3996.patch		\
 | ||||
|   %D%/packages/patches/upower-builddir.patch			\
 | ||||
|   %D%/packages/patches/valgrind-enable-arm.patch		\
 | ||||
|   %D%/packages/patches/vboot-utils-fix-format-load-address.patch	\
 | ||||
|  | @ -1941,6 +1968,7 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch	\
 | ||||
|   %D%/packages/patches/webkitgtk-share-store.patch		\
 | ||||
|   %D%/packages/patches/webkitgtk-bind-all-fonts.patch		\
 | ||||
|   %D%/packages/patches/webrtc-audio-processing-big-endian.patch	\
 | ||||
|   %D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch	\
 | ||||
|   %D%/packages/patches/wicd-bitrate-none-fix.patch		\
 | ||||
|   %D%/packages/patches/wicd-get-selected-profile-fix.patch	\
 | ||||
|  |  | |||
|  | @ -51,7 +51,7 @@ | |||
| ;;; Commentary: | ||||
| ;;; | ||||
| ;;; This module provides the types used to declare individual machines in a | ||||
| ;;; heterogeneous Guix deployment. The interface allows users of specify system | ||||
| ;;; heterogeneous Guix deployment. The interface allows users to specify system | ||||
| ;;; configurations and the means by which resources should be provisioned on a | ||||
| ;;; per-host basis. | ||||
| ;;; | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> | ||||
| ;;; Copyright © 2014, 2015, 2016, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org> | ||||
| ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2020, 2021 Eric Bavier <bavier@posteo.net> | ||||
| ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2020, 2021, 2022 Eric Bavier <bavier@posteo.net> | ||||
| ;;; Copyright © 2015, 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> | ||||
| ;;; Copyright © 2015 Alex Sassmannshausen <alex.sassmannshausen@gmail.com> | ||||
| ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr> | ||||
|  | @ -1220,6 +1220,21 @@ connection alive.") | |||
|                        ;; build system uses the built 'gen' executable. | ||||
|                        (setenv "BUILD_CC" "gcc")))) | ||||
|                  '()) | ||||
|            (add-before 'build 'update-config-scripts | ||||
|              (lambda* (#:key native-inputs inputs #:allow-other-keys) | ||||
|                (for-each (lambda (file) | ||||
|                                (install-file | ||||
|                                  (search-input-file | ||||
|                                    (or native-inputs inputs) | ||||
|                                    (string-append "/bin/" file)) ".")) | ||||
|                          '("config.guess" "config.sub")) | ||||
|                (for-each (lambda (file) | ||||
|                                (install-file | ||||
|                                  (search-input-file | ||||
|                                    (or native-inputs inputs) | ||||
|                                    (string-append "/bin/" file)) | ||||
|                                  (string-append "bind/bind-" ,bind-version))) | ||||
|                          '("config.guess" "config.sub")))) | ||||
|            (add-after 'configure 'post-configure | ||||
|              (lambda* (#:key outputs #:allow-other-keys) | ||||
|                ;; Point to the right client script, which will be | ||||
|  | @ -1302,6 +1317,7 @@ connection alive.") | |||
|                      (base32 | ||||
|                       "108nh7hha4r0lb5hf1fn7lqaascvhsrghpz6afm5lf9vf2vgqly9")))) | ||||
| 
 | ||||
|                 ("config" ,config) | ||||
|                 ("coreutils*" ,coreutils) | ||||
|                 ("sed*" ,sed))) | ||||
| 
 | ||||
|  | @ -2858,7 +2874,8 @@ lookup to YAML Mode.  You could enable the mode with @code{(add-hook | |||
|              (commit (string-append "v" version)))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "1dz045yhcsw1rdamzpz4bk8mw888in7fyqk1q1b3m1yk4pd1ahkh")))) | ||||
|         (base32 "1dz045yhcsw1rdamzpz4bk8mw888in7fyqk1q1b3m1yk4pd1ahkh")) | ||||
|        (patches (search-patches "cpulimit-with-glib-2.32.patch")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:phases (modify-phases %standard-phases | ||||
|  | @ -4753,7 +4770,7 @@ disk utilization, priority, username, state, and exit code.") | |||
|                (install-file "novena-eeprom" out-bin) | ||||
|                (install-file "novena-eeprom.8" out-share-man))))))) | ||||
|     (inputs | ||||
|      (list i2c-tools)) | ||||
|      (list i2c-tools-3)) | ||||
|     (synopsis "Novena EEPROM editor") | ||||
|     (description "This package provides an editor for the Novena EEPROM. | ||||
| Novena boards contain a device-dependent descriptive EEPROM that defines | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Andreas Enge <andreas@enge.fr> | ||||
| ;;; Copyright © 2013, 2015, 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; Copyright © 2016–2022 Nicolas Goaziou <mail@nicolasgoaziou.fr> | ||||
| ;;; Copyright © 2016-2022 Nicolas Goaziou <mail@nicolasgoaziou.fr> | ||||
| ;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org> | ||||
| ;;; Copyright © 2016, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net> | ||||
| ;;; Copyright © 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> | ||||
|  | @ -328,7 +328,7 @@ precision.") | |||
| (define-public giac | ||||
|   (package | ||||
|     (name "giac") | ||||
|     (version "1.7.0-45") | ||||
|     (version "1.7.0-47") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -340,7 +340,7 @@ precision.") | |||
|                            "~parisse/debian/dists/stable/main/source/" | ||||
|                            "giac_" version ".tar.gz")) | ||||
|        (sha256 | ||||
|         (base32 "19hxbx27n5zby96d4pzhxxqn7mzk29g8sxn08fi638l17lr9x2q2")))) | ||||
|         (base32 "1cbc0vm79q9z3ajn4m5sjg9931ah1wq3icj0m16jsxp52km1h7jx")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:modules ((ice-9 ftw) | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ | |||
| ;;; Copyright © 2019 by Amar Singh <nly@disroot.org> | ||||
| ;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in> | ||||
| ;;; Copyright © 2020, 2021 Guillaume Le Vaillant <glv@posteo.net> | ||||
| ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com> | ||||
| ;;; Copyright © 2021, 2022 Sharlatan Hellseher <sharlatanus@gmail.com> | ||||
| ;;; Copyright © 2021, 2022 Vinicius Monego <monego@posteo.net> | ||||
| ;;; Copyright © 2021 Greg Hogan <code@greghogan.com> | ||||
| ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com> | ||||
|  | @ -1460,34 +1460,221 @@ of stand-alone functions and classes.") | |||
| (define-public python-asdf | ||||
|   (package | ||||
|     (name "python-asdf") | ||||
|     (version "2.7.4") | ||||
|     (version "2.8.3") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (pypi-uri "asdf" version)) | ||||
|        (sha256 | ||||
|         (base32 "1mj52l2m8pbhiqacgjakjpvqi8kyx470yw151lcsswbq5wp0rsc6")))) | ||||
|         (base32 "0i4vq1hsympjgb1yvn4ql0gm8j1mki9ggmj03533kmg0nbzp03yy")))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|      ;; TODO: (Sharlatan-20210207T165820+0000): Tests depend on astropy, astropy | ||||
|      ;; depends on asdf. Disable circular dependence. | ||||
|      ;; NOTE: (Sharlatan-20211229T201059+0000): Tests depend on astropy and | ||||
|      ;; gwcs, astropy gwcs depend on asdf.  Disable circular dependence. | ||||
|      `(#:tests? #f)) | ||||
|     (native-inputs | ||||
|      `(("packaging" ,python-packaging) | ||||
|        ("semantic-version" ,python-semantic-version) | ||||
|        ("setuptools-scm" ,python-setuptools-scm))) | ||||
|      (inputs | ||||
|       `(("importlib-resources" ,python-importlib-resources) | ||||
|         ("jsonschema" ,python-jsonschema) | ||||
|         ("numpy" ,python-numpy) | ||||
|         ("pyyaml" ,python-pyyaml))) | ||||
|      (home-page "https://github.com/asdf-format/asdf") | ||||
|      (synopsis "Python tools to handle ASDF files") | ||||
|      (description | ||||
|       "The Advanced Scientific Data Format (ASDF) is a next-generation | ||||
|      (list python-setuptools-scm | ||||
|            python-semantic-version | ||||
|            python-packaging)) | ||||
|     (propagated-inputs | ||||
|      (list python-importlib-resources | ||||
|            python-jsonschema | ||||
|            python-jmespath | ||||
|            python-numpy | ||||
|            python-pyyaml)) | ||||
|     (home-page "https://github.com/asdf-format/asdf") | ||||
|     (synopsis "Python tools to handle ASDF files") | ||||
|     (description | ||||
|      "The Advanced Scientific Data Format (ASDF) is a next-generation | ||||
| interchange format for scientific data.  This package contains the Python | ||||
| 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 | ||||
|   (package | ||||
|  |  | |||
|  | @ -1,10 +1,10 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net> | ||||
| ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net> | ||||
| ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> | ||||
| ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> | ||||
| ;;; Copyright © 2015 Alex Kost <alezost@gmail.com> | ||||
| ;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org> | ||||
| ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com> | ||||
| ;;; Copyright © 2016 Nikita <nikita@n0.is> | ||||
| ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org> | ||||
|  | @ -254,6 +254,45 @@ softsynth library that can be use with other applications.") | |||
|        (sha256 | ||||
|         (base32 "1gsx7k77blfy171b6g3m0k0s0072v6jcawhmx1kjs9w5zlwdkzd0")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      ;; TODO: Move this to a snippet/patch or remove with the upgrade to 1.0. | ||||
|      (if (or (target-riscv64?) | ||||
|              (target-powerpc?)) | ||||
|        (list | ||||
|          #:phases | ||||
|          #~(modify-phases %standard-phases | ||||
|              (add-after 'unpack 'patch-source | ||||
|                (lambda* (#:key inputs #:allow-other-keys) | ||||
|                  (let ((patch-file | ||||
|                         #$(local-file | ||||
|                            (search-patch | ||||
|                              "webrtc-audio-processing-big-endian.patch")))) | ||||
|                    (invoke "patch" "--force" "-p1" "-i" patch-file) | ||||
|                    (substitute* "webrtc/typedefs.h" | ||||
|                      (("defined\\(__aarch64__\\)" all) | ||||
|                       (string-append | ||||
|                         ;; powerpc-linux | ||||
|                         "(defined(__PPC__) && __SIZEOF_SIZE_T__ == 4)\n" | ||||
|                         "#define WEBRTC_ARCH_32_BITS\n" | ||||
|                         "#define WEBRTC_ARCH_BIG_ENDIAN\n" | ||||
|                         ;; powerpc64-linux | ||||
|                         "#elif (defined(__PPC64__) && defined(_BIG_ENDIAN))\n" | ||||
|                         "#define WEBRTC_ARCH_64_BITS\n" | ||||
|                         "#define WEBRTC_ARCH_BIG_ENDIAN\n" | ||||
|                         ;; aarch64-linux | ||||
|                         "#elif " all | ||||
|                         ;; riscv64-linux | ||||
|                         " || (defined(__riscv) && __riscv_xlen == 64)" | ||||
|                         ;; powerpc64le-linux | ||||
|                         " || (defined(__PPC64__) && defined(_LITTLE_ENDIAN))")))))))) | ||||
|        '())) | ||||
|     (native-inputs | ||||
|      (if (or (target-riscv64?) | ||||
|              (target-powerpc?)) | ||||
|        (list | ||||
|          (local-file (search-patch "webrtc-audio-processing-big-endian.patch")) | ||||
|          patch) | ||||
|        '())) | ||||
|     (synopsis "WebRTC's Audio Processing Library") | ||||
|     (description "WebRTC-Audio-Processing library based on Google's | ||||
| implementation of WebRTC.") | ||||
|  | @ -728,14 +767,17 @@ engineers, musicians, soundtrack editors and composers.") | |||
|     (version "3.1.3") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|              (url "https://github.com/audacity/audacity") | ||||
|              (commit (string-append "Audacity-" version)))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        ;; If built from the release tag, Audacity will describe itself | ||||
|        ;; as an "Alpha test version" and suggest to users that they use | ||||
|        ;; the "latest stable released version". | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://github.com/audacity/audacity/releases/download/" | ||||
|                            "Audacity-" version "/audacity-" version | ||||
|                            "-source.tar.gz")) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1689q9apbjf9nnda62shb8j7hm4hxd47mhk4l5h3c728mjjkilmi")) | ||||
|          "189agx11361k9j958s6q5bngnnfx0rwaf0dwbjxy6fwvsb1wv3px")) | ||||
|        (patches (search-patches "audacity-ffmpeg-fallback.patch")) | ||||
|        (modules '((guix build utils))) | ||||
|        (snippet | ||||
|         ;; Remove bundled libraries. | ||||
|  | @ -763,10 +805,10 @@ engineers, musicians, soundtrack editors and composers.") | |||
|            alsa-lib | ||||
|            jack-1 | ||||
|            expat | ||||
|            ffmpeg | ||||
|            lame | ||||
|            linux-libre-headers | ||||
|            flac | ||||
|            ffmpeg | ||||
|            libid3tag | ||||
|            libjpeg-turbo | ||||
|            libmad | ||||
|  | @ -4080,6 +4122,40 @@ with support for HD extensions.") | |||
|     (home-page "https://github.com/foo86/dcadec") | ||||
|     (license license:lgpl2.1+))) | ||||
| 
 | ||||
| (define-public drc | ||||
|   (package | ||||
|     (name "drc") | ||||
|     (version "3.2.3") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "mirror://sourceforge/drc-fir/drc-fir/" | ||||
|                            version "/drc-" version ".tar.gz")) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "08ljj4776pjx119zjmfqa8w56bf7x0m7spmi27yk1m455bmiglrj")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      (list | ||||
|       #:tests? #false ;there are none | ||||
|       #:make-flags | ||||
|       #~(list (string-append "INSTALL_PREFIX=" #$output) | ||||
|               "-C" "source") | ||||
|       #:phases | ||||
|       '(modify-phases %standard-phases | ||||
|          (delete 'configure)))) | ||||
|     (inputs (list fftw)) | ||||
|     (home-page "http://drc-fir.sourceforge.net/") | ||||
|     (synopsis "Digital room correction") | ||||
|     (description | ||||
|      "DRC is a program used to generate correction filters for acoustic | ||||
| compensation of HiFi and audio systems in general, including listening room | ||||
| compensation.  DRC generates just the FIR correction filters, which can be | ||||
| used with a real time or offline convolver to provide real time or offline | ||||
| correction.  DRC doesn't provide convolution features, and provides only some | ||||
| simplified, although really accurate, measuring tools.") | ||||
|     (license license:gpl2+))) | ||||
| 
 | ||||
| (define-public bs1770gain | ||||
|   (package | ||||
|     (name "bs1770gain") | ||||
|  |  | |||
|  | @ -40,7 +40,13 @@ | |||
|        (uri (string-append "mirror://gnu/autogen/rel" version | ||||
|                            "/autogen-" version ".tar.xz")) | ||||
|        (sha256 | ||||
|         (base32 "16mlbdys8q4ckxlvxyhwkdnh1ay9f6g0cyp1kylkpalgnik398gq")))) | ||||
|         (base32 "16mlbdys8q4ckxlvxyhwkdnh1ay9f6g0cyp1kylkpalgnik398gq")) | ||||
|        (modules '((guix build utils))) | ||||
|        (snippet | ||||
|         ;; Address '-Werror=format-overflow' error. | ||||
|         '(substitute* "getdefs/getdefs.c" | ||||
|            (("def_bf\\[[[:space:]]*MAXNAMELEN[[:space:]]*\\]") | ||||
|             "def_bf[MAXNAMELEN + 10]"))))) | ||||
|     (build-system gnu-build-system) | ||||
|     (native-inputs (list pkg-config which)) | ||||
|     (inputs (list guile-2.2 perl))          ; for doc generator mdoc | ||||
|  |  | |||
|  | @ -5437,6 +5437,8 @@ CONFIG_SND_INDIGOIO=m | |||
| CONFIG_SND_INDIGODJ=m | ||||
| CONFIG_SND_INDIGOIOX=m | ||||
| CONFIG_SND_INDIGODJX=m | ||||
| CONFIG_SND_EMU10K1=m | ||||
| CONFIG_SND_EMU10K1_SEQ=m | ||||
| # CONFIG_SND_EMU10K1_SEQ is not set | ||||
| # CONFIG_SND_ENS1370 is not set | ||||
| # CONFIG_SND_ENS1371 is not set | ||||
|  |  | |||
|  | @ -938,7 +938,7 @@ CONFIG_RAPIDIO_CPS_XX=m | |||
| CONFIG_RAPIDIO_TSI568=m | ||||
| CONFIG_RAPIDIO_CPS_GEN2=m | ||||
| CONFIG_RAPIDIO_RXS_GEN3=m | ||||
| CONFIG_X86_SYSFB=y | ||||
| # CONFIG_X86_SYSFB is not set | ||||
| 
 | ||||
| # | ||||
| # Executable file formats / Emulations | ||||
|  | @ -8495,13 +8495,7 @@ CONFIG_ISCSI_IBFT_FIND=y | |||
| CONFIG_ISCSI_IBFT=m | ||||
| CONFIG_FW_CFG_SYSFS=m | ||||
| # CONFIG_FW_CFG_SYSFS_CMDLINE is not set | ||||
| CONFIG_GOOGLE_FIRMWARE=y | ||||
| # CONFIG_GOOGLE_SMI is not set | ||||
| CONFIG_GOOGLE_COREBOOT_TABLE=y | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set | ||||
| CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set | ||||
| # CONFIG_GOOGLE_VPD is not set | ||||
| # CONFIG_GOOGLE_FIRMWARE is not set | ||||
| 
 | ||||
| # | ||||
| # EFI (Extensible Firmware Interface) Support | ||||
|  |  | |||
|  | @ -454,7 +454,7 @@ CONFIG_FREEZER=y | |||
| # | ||||
| # Processor type and features | ||||
| # | ||||
| # CONFIG_ZONE_DMA is not set | ||||
| CONFIG_ZONE_DMA=y | ||||
| CONFIG_SMP=y | ||||
| CONFIG_X86_FEATURE_NAMES=y | ||||
| CONFIG_X86_FAST_FEATURE_TESTS=y | ||||
|  | @ -928,7 +928,7 @@ CONFIG_RAPIDIO_CPS_XX=m | |||
| CONFIG_RAPIDIO_TSI568=m | ||||
| CONFIG_RAPIDIO_CPS_GEN2=m | ||||
| CONFIG_RAPIDIO_RXS_GEN3=m | ||||
| CONFIG_X86_SYSFB=y | ||||
| # CONFIG_X86_SYSFB is not set | ||||
| 
 | ||||
| # | ||||
| # Executable file formats / Emulations | ||||
|  | @ -5958,6 +5958,8 @@ CONFIG_SND_INDIGOIO=m | |||
| CONFIG_SND_INDIGODJ=m | ||||
| CONFIG_SND_INDIGOIOX=m | ||||
| CONFIG_SND_INDIGODJX=m | ||||
| CONFIG_SND_EMU10K1=m | ||||
| CONFIG_SND_EMU10K1_SEQ=m | ||||
| # CONFIG_SND_EMU10K1_SEQ is not set | ||||
| CONFIG_SND_ENS1370=m | ||||
| CONFIG_SND_ENS1371=m | ||||
|  | @ -8332,13 +8334,7 @@ CONFIG_ISCSI_IBFT_FIND=y | |||
| CONFIG_ISCSI_IBFT=m | ||||
| CONFIG_FW_CFG_SYSFS=m | ||||
| # CONFIG_FW_CFG_SYSFS_CMDLINE is not set | ||||
| CONFIG_GOOGLE_FIRMWARE=y | ||||
| # CONFIG_GOOGLE_SMI is not set | ||||
| CONFIG_GOOGLE_COREBOOT_TABLE=y | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set | ||||
| CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set | ||||
| # CONFIG_GOOGLE_VPD is not set | ||||
| # CONFIG_GOOGLE_FIRMWARE is not set | ||||
| 
 | ||||
| # | ||||
| # EFI (Extensible Firmware Interface) Support | ||||
|  |  | |||
|  | @ -5598,6 +5598,8 @@ CONFIG_SND_INDIGOIO=m | |||
| CONFIG_SND_INDIGODJ=m | ||||
| CONFIG_SND_INDIGOIOX=m | ||||
| CONFIG_SND_INDIGODJX=m | ||||
| CONFIG_SND_EMU10K1=m | ||||
| CONFIG_SND_EMU10K1_SEQ=m | ||||
| # CONFIG_SND_ENS1370 is not set | ||||
| # CONFIG_SND_ENS1371 is not set | ||||
| # CONFIG_SND_FM801 is not set | ||||
|  |  | |||
|  | @ -5331,6 +5331,8 @@ CONFIG_SND_INDIGOIO=m | |||
| CONFIG_SND_INDIGODJ=m | ||||
| CONFIG_SND_INDIGOIOX=m | ||||
| CONFIG_SND_INDIGODJX=m | ||||
| CONFIG_SND_EMU10K1=m | ||||
| CONFIG_SND_EMU10K1_SEQ=m | ||||
| # CONFIG_SND_ENS1370 is not set | ||||
| # CONFIG_SND_ENS1371 is not set | ||||
| # CONFIG_SND_FM801 is not set | ||||
|  |  | |||
|  | @ -713,7 +713,7 @@ CONFIG_RAPIDIO_CPS_XX=m | |||
| CONFIG_RAPIDIO_TSI568=m | ||||
| CONFIG_RAPIDIO_CPS_GEN2=m | ||||
| CONFIG_RAPIDIO_RXS_GEN3=m | ||||
| CONFIG_X86_SYSFB=y | ||||
| # CONFIG_X86_SYSFB is not set | ||||
| 
 | ||||
| # | ||||
| # Binary Emulations | ||||
|  | @ -737,13 +737,7 @@ CONFIG_ISCSI_IBFT_FIND=y | |||
| CONFIG_ISCSI_IBFT=m | ||||
| CONFIG_FW_CFG_SYSFS=m | ||||
| # CONFIG_FW_CFG_SYSFS_CMDLINE is not set | ||||
| CONFIG_GOOGLE_FIRMWARE=y | ||||
| # CONFIG_GOOGLE_SMI is not set | ||||
| CONFIG_GOOGLE_COREBOOT_TABLE=y | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set | ||||
| CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set | ||||
| # CONFIG_GOOGLE_VPD is not set | ||||
| # CONFIG_GOOGLE_FIRMWARE is not set | ||||
| 
 | ||||
| # | ||||
| # EFI (Extensible Firmware Interface) Support | ||||
|  |  | |||
|  | @ -273,7 +273,7 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y | |||
| # | ||||
| # Processor type and features | ||||
| # | ||||
| # CONFIG_ZONE_DMA is not set | ||||
| CONFIG_ZONE_DMA=y | ||||
| CONFIG_SMP=y | ||||
| CONFIG_X86_FEATURE_NAMES=y | ||||
| CONFIG_X86_X2APIC=y | ||||
|  | @ -684,7 +684,7 @@ CONFIG_RAPIDIO_CPS_XX=m | |||
| CONFIG_RAPIDIO_TSI568=m | ||||
| CONFIG_RAPIDIO_CPS_GEN2=m | ||||
| CONFIG_RAPIDIO_RXS_GEN3=m | ||||
| CONFIG_X86_SYSFB=y | ||||
| # CONFIG_X86_SYSFB is not set | ||||
| 
 | ||||
| # | ||||
| # Binary Emulations | ||||
|  | @ -714,13 +714,7 @@ CONFIG_ISCSI_IBFT_FIND=y | |||
| CONFIG_ISCSI_IBFT=m | ||||
| CONFIG_FW_CFG_SYSFS=m | ||||
| # CONFIG_FW_CFG_SYSFS_CMDLINE is not set | ||||
| CONFIG_GOOGLE_FIRMWARE=y | ||||
| # CONFIG_GOOGLE_SMI is not set | ||||
| CONFIG_GOOGLE_COREBOOT_TABLE=y | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set | ||||
| CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set | ||||
| # CONFIG_GOOGLE_VPD is not set | ||||
| # CONFIG_GOOGLE_FIRMWARE is not set | ||||
| 
 | ||||
| # | ||||
| # EFI (Extensible Firmware Interface) Support | ||||
|  | @ -6173,6 +6167,8 @@ CONFIG_SND_INDIGOIO=m | |||
| CONFIG_SND_INDIGODJ=m | ||||
| CONFIG_SND_INDIGOIOX=m | ||||
| CONFIG_SND_INDIGODJX=m | ||||
| CONFIG_SND_EMU10K1=m | ||||
| CONFIG_SND_EMU10K1_SEQ=m | ||||
| CONFIG_SND_ENS1370=m | ||||
| CONFIG_SND_ENS1371=m | ||||
| CONFIG_SND_FM801=m | ||||
|  |  | |||
|  | @ -825,7 +825,7 @@ CONFIG_RAPIDIO_TSI57X=m | |||
| CONFIG_RAPIDIO_CPS_XX=m | ||||
| CONFIG_RAPIDIO_TSI568=m | ||||
| CONFIG_RAPIDIO_CPS_GEN2=m | ||||
| CONFIG_X86_SYSFB=y | ||||
| # CONFIG_X86_SYSFB is not set | ||||
| 
 | ||||
| # | ||||
| # Executable file formats / Emulations | ||||
|  | @ -7679,13 +7679,7 @@ CONFIG_DMI_SYSFS=m | |||
| CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y | ||||
| CONFIG_ISCSI_IBFT_FIND=y | ||||
| CONFIG_ISCSI_IBFT=m | ||||
| CONFIG_GOOGLE_FIRMWARE=y | ||||
| # CONFIG_GOOGLE_SMI is not set | ||||
| CONFIG_GOOGLE_COREBOOT_TABLE=y | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set | ||||
| CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set | ||||
| # CONFIG_GOOGLE_VPD is not set | ||||
| # CONFIG_GOOGLE_FIRMWARE is not set | ||||
| 
 | ||||
| # | ||||
| # EFI (Extensible Firmware Interface) Support | ||||
|  |  | |||
|  | @ -384,7 +384,7 @@ CONFIG_FREEZER=y | |||
| # | ||||
| # Processor type and features | ||||
| # | ||||
| # CONFIG_ZONE_DMA is not set | ||||
| CONFIG_ZONE_DMA=y | ||||
| CONFIG_SMP=y | ||||
| CONFIG_X86_FEATURE_NAMES=y | ||||
| CONFIG_X86_X2APIC=y | ||||
|  | @ -795,7 +795,7 @@ CONFIG_RAPIDIO_TSI57X=m | |||
| CONFIG_RAPIDIO_CPS_XX=m | ||||
| CONFIG_RAPIDIO_TSI568=m | ||||
| CONFIG_RAPIDIO_CPS_GEN2=m | ||||
| CONFIG_X86_SYSFB=y | ||||
| # CONFIG_X86_SYSFB is not set | ||||
| 
 | ||||
| # | ||||
| # Executable file formats / Emulations | ||||
|  | @ -5494,6 +5494,8 @@ CONFIG_SND_INDIGOIO=m | |||
| CONFIG_SND_INDIGODJ=m | ||||
| CONFIG_SND_INDIGOIOX=m | ||||
| CONFIG_SND_INDIGODJX=m | ||||
| CONFIG_SND_EMU10K1=m | ||||
| CONFIG_SND_EMU10K1_SEQ=m | ||||
| CONFIG_SND_ENS1370=m | ||||
| CONFIG_SND_ENS1371=m | ||||
| CONFIG_SND_FM801=m | ||||
|  | @ -7461,13 +7463,7 @@ CONFIG_DMI_SYSFS=m | |||
| CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y | ||||
| CONFIG_ISCSI_IBFT_FIND=y | ||||
| CONFIG_ISCSI_IBFT=m | ||||
| CONFIG_GOOGLE_FIRMWARE=y | ||||
| # CONFIG_GOOGLE_SMI is not set | ||||
| CONFIG_GOOGLE_COREBOOT_TABLE=y | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set | ||||
| CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set | ||||
| # CONFIG_GOOGLE_VPD is not set | ||||
| # CONFIG_GOOGLE_FIRMWARE is not set | ||||
| 
 | ||||
| # | ||||
| # EFI (Extensible Firmware Interface) Support | ||||
|  |  | |||
|  | @ -409,7 +409,7 @@ CONFIG_FREEZER=y | |||
| # | ||||
| # Processor type and features | ||||
| # | ||||
| # CONFIG_ZONE_DMA is not set | ||||
| CONFIG_ZONE_DMA=y | ||||
| CONFIG_SMP=y | ||||
| CONFIG_X86_FEATURE_NAMES=y | ||||
| CONFIG_X86_FAST_FEATURE_TESTS=y | ||||
|  | @ -5733,6 +5733,8 @@ CONFIG_SND_INDIGOIO=m | |||
| CONFIG_SND_INDIGODJ=m | ||||
| CONFIG_SND_INDIGOIOX=m | ||||
| CONFIG_SND_INDIGODJX=m | ||||
| CONFIG_SND_EMU10K1=m | ||||
| CONFIG_SND_EMU10K1_SEQ=m | ||||
| CONFIG_SND_ENS1370=m | ||||
| CONFIG_SND_ENS1371=m | ||||
| CONFIG_SND_FM801=m | ||||
|  |  | |||
|  | @ -292,7 +292,7 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y | |||
| # | ||||
| # Processor type and features | ||||
| # | ||||
| # CONFIG_ZONE_DMA is not set | ||||
| CONFIG_ZONE_DMA=y | ||||
| CONFIG_SMP=y | ||||
| CONFIG_X86_FEATURE_NAMES=y | ||||
| CONFIG_X86_MPPARSE=y | ||||
|  | @ -650,7 +650,7 @@ CONFIG_ALIX=y | |||
| CONFIG_NET5501=y | ||||
| CONFIG_GEOS=y | ||||
| CONFIG_AMD_NB=y | ||||
| CONFIG_X86_SYSFB=y | ||||
| # CONFIG_X86_SYSFB is not set | ||||
| # end of Bus options (PCI etc.) | ||||
| 
 | ||||
| # | ||||
|  | @ -674,13 +674,7 @@ CONFIG_ISCSI_IBFT_FIND=y | |||
| CONFIG_ISCSI_IBFT=m | ||||
| CONFIG_FW_CFG_SYSFS=m | ||||
| # CONFIG_FW_CFG_SYSFS_CMDLINE is not set | ||||
| CONFIG_GOOGLE_FIRMWARE=y | ||||
| # CONFIG_GOOGLE_SMI is not set | ||||
| CONFIG_GOOGLE_COREBOOT_TABLE=y | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set | ||||
| CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set | ||||
| # CONFIG_GOOGLE_VPD is not set | ||||
| # CONFIG_GOOGLE_FIRMWARE is not set | ||||
| 
 | ||||
| # | ||||
| # EFI (Extensible Firmware Interface) Support | ||||
|  | @ -6782,6 +6776,8 @@ CONFIG_SND_INDIGOIO=m | |||
| CONFIG_SND_INDIGODJ=m | ||||
| CONFIG_SND_INDIGOIOX=m | ||||
| CONFIG_SND_INDIGODJX=m | ||||
| CONFIG_SND_EMU10K1=m | ||||
| CONFIG_SND_EMU10K1_SEQ=m | ||||
| CONFIG_SND_ENS1370=m | ||||
| CONFIG_SND_ENS1371=m | ||||
| CONFIG_SND_FM801=m | ||||
|  |  | |||
|  | @ -308,7 +308,7 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y | |||
| # | ||||
| # Processor type and features | ||||
| # | ||||
| # CONFIG_ZONE_DMA is not set | ||||
| CONFIG_ZONE_DMA=y | ||||
| CONFIG_SMP=y | ||||
| CONFIG_X86_FEATURE_NAMES=y | ||||
| CONFIG_X86_X2APIC=y | ||||
|  | @ -643,7 +643,7 @@ CONFIG_MMCONF_FAM10H=y | |||
| # CONFIG_ISA_BUS is not set | ||||
| CONFIG_ISA_DMA_API=y | ||||
| CONFIG_AMD_NB=y | ||||
| CONFIG_X86_SYSFB=y | ||||
| # CONFIG_X86_SYSFB is not set | ||||
| # end of Bus options (PCI etc.) | ||||
| 
 | ||||
| # | ||||
|  | @ -670,13 +670,7 @@ CONFIG_ISCSI_IBFT_FIND=y | |||
| CONFIG_ISCSI_IBFT=m | ||||
| CONFIG_FW_CFG_SYSFS=m | ||||
| # CONFIG_FW_CFG_SYSFS_CMDLINE is not set | ||||
| CONFIG_GOOGLE_FIRMWARE=y | ||||
| # CONFIG_GOOGLE_SMI is not set | ||||
| CONFIG_GOOGLE_COREBOOT_TABLE=y | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set | ||||
| CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set | ||||
| # CONFIG_GOOGLE_VPD is not set | ||||
| # CONFIG_GOOGLE_FIRMWARE is not set | ||||
| 
 | ||||
| # | ||||
| # EFI (Extensible Firmware Interface) Support | ||||
|  | @ -6671,6 +6665,8 @@ CONFIG_SND_INDIGOIO=m | |||
| CONFIG_SND_INDIGODJ=m | ||||
| CONFIG_SND_INDIGOIOX=m | ||||
| CONFIG_SND_INDIGODJX=m | ||||
| CONFIG_SND_EMU10K1=m | ||||
| CONFIG_SND_EMU10K1_SEQ=m | ||||
| CONFIG_SND_ENS1370=m | ||||
| CONFIG_SND_ENS1371=m | ||||
| CONFIG_SND_FM801=m | ||||
|  |  | |||
|  | @ -992,7 +992,7 @@ CONFIG_PAGE_IDLE_FLAG=y | |||
| CONFIG_IDLE_PAGE_TRACKING=y | ||||
| CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y | ||||
| CONFIG_ARCH_HAS_ZONE_DMA_SET=y | ||||
| # CONFIG_ZONE_DMA is not set | ||||
| CONFIG_ZONE_DMA=y | ||||
| CONFIG_HMM_MIRROR=y | ||||
| CONFIG_VMAP_PFN=y | ||||
| # CONFIG_PERCPU_STATS is not set | ||||
|  | @ -2249,14 +2249,8 @@ CONFIG_ISCSI_IBFT=m | |||
| CONFIG_FW_CFG_SYSFS=m | ||||
| # CONFIG_FW_CFG_SYSFS_CMDLINE is not set | ||||
| CONFIG_SYSFB=y | ||||
| CONFIG_SYSFB_SIMPLEFB=y | ||||
| CONFIG_GOOGLE_FIRMWARE=y | ||||
| # CONFIG_GOOGLE_SMI is not set | ||||
| CONFIG_GOOGLE_COREBOOT_TABLE=m | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set | ||||
| CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set | ||||
| # CONFIG_GOOGLE_VPD is not set | ||||
| # CONFIG_SYSFB_SIMPLEFB is not set | ||||
| # CONFIG_GOOGLE_FIRMWARE is not set | ||||
| 
 | ||||
| # | ||||
| # EFI (Extensible Firmware Interface) Support | ||||
|  | @ -6731,7 +6725,7 @@ CONFIG_FB_MB862XX=m | |||
| CONFIG_FB_MB862XX_PCI_GDC=y | ||||
| CONFIG_FB_MB862XX_I2C=y | ||||
| CONFIG_FB_HYPERV=m | ||||
| CONFIG_FB_SIMPLE=y | ||||
| CONFIG_FB_SIMPLE=m | ||||
| CONFIG_FB_SSD1307=m | ||||
| CONFIG_FB_SM712=m | ||||
| # end of Frame buffer Devices | ||||
|  | @ -6942,6 +6936,8 @@ CONFIG_SND_INDIGOIO=m | |||
| CONFIG_SND_INDIGODJ=m | ||||
| CONFIG_SND_INDIGOIOX=m | ||||
| CONFIG_SND_INDIGODJX=m | ||||
| CONFIG_SND_EMU10K1=m | ||||
| CONFIG_SND_EMU10K1_SEQ=m | ||||
| CONFIG_SND_ENS1370=m | ||||
| CONFIG_SND_ENS1371=m | ||||
| CONFIG_SND_FM801=m | ||||
|  |  | |||
|  | @ -1025,7 +1025,7 @@ CONFIG_IDLE_PAGE_TRACKING=y | |||
| CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y | ||||
| CONFIG_ARCH_HAS_PTE_DEVMAP=y | ||||
| CONFIG_ARCH_HAS_ZONE_DMA_SET=y | ||||
| # CONFIG_ZONE_DMA is not set | ||||
| CONFIG_ZONE_DMA=y | ||||
| CONFIG_ZONE_DMA32=y | ||||
| CONFIG_ZONE_DEVICE=y | ||||
| CONFIG_DEV_PAGEMAP_OPS=y | ||||
|  | @ -2282,14 +2282,8 @@ CONFIG_ISCSI_IBFT=m | |||
| CONFIG_FW_CFG_SYSFS=m | ||||
| # CONFIG_FW_CFG_SYSFS_CMDLINE is not set | ||||
| CONFIG_SYSFB=y | ||||
| CONFIG_SYSFB_SIMPLEFB=y | ||||
| CONFIG_GOOGLE_FIRMWARE=y | ||||
| # CONFIG_GOOGLE_SMI is not set | ||||
| CONFIG_GOOGLE_COREBOOT_TABLE=m | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set | ||||
| CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set | ||||
| # CONFIG_GOOGLE_VPD is not set | ||||
| # CONFIG_SYSFB_SIMPLEFB is not set | ||||
| # CONFIG_GOOGLE_FIRMWARE is not set | ||||
| 
 | ||||
| # | ||||
| # EFI (Extensible Firmware Interface) Support | ||||
|  | @ -6688,7 +6682,7 @@ CONFIG_FB_MB862XX=m | |||
| CONFIG_FB_MB862XX_PCI_GDC=y | ||||
| CONFIG_FB_MB862XX_I2C=y | ||||
| CONFIG_FB_HYPERV=m | ||||
| CONFIG_FB_SIMPLE=y | ||||
| CONFIG_FB_SIMPLE=m | ||||
| CONFIG_FB_SSD1307=m | ||||
| CONFIG_FB_SM712=m | ||||
| # end of Frame buffer Devices | ||||
|  | @ -6856,6 +6850,8 @@ CONFIG_SND_INDIGOIO=m | |||
| CONFIG_SND_INDIGODJ=m | ||||
| CONFIG_SND_INDIGOIOX=m | ||||
| CONFIG_SND_INDIGODJX=m | ||||
| CONFIG_SND_EMU10K1=m | ||||
| CONFIG_SND_EMU10K1_SEQ=m | ||||
| CONFIG_SND_ENS1370=m | ||||
| CONFIG_SND_ENS1371=m | ||||
| CONFIG_SND_FM801=m | ||||
|  |  | |||
							
								
								
									
										10215
									
								
								gnu/packages/aux-files/linux-libre/5.16-arm.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										10215
									
								
								gnu/packages/aux-files/linux-libre/5.16-arm.conf
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										10660
									
								
								gnu/packages/aux-files/linux-libre/5.16-arm64.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										10660
									
								
								gnu/packages/aux-files/linux-libre/5.16-arm64.conf
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										11099
									
								
								gnu/packages/aux-files/linux-libre/5.16-i686.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11099
									
								
								gnu/packages/aux-files/linux-libre/5.16-i686.conf
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										11185
									
								
								gnu/packages/aux-files/linux-libre/5.16-x86_64.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11185
									
								
								gnu/packages/aux-files/linux-libre/5.16-x86_64.conf
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							|  | @ -6045,6 +6045,8 @@ CONFIG_SND_INDIGOIO=m | |||
| CONFIG_SND_INDIGODJ=m | ||||
| CONFIG_SND_INDIGOIOX=m | ||||
| CONFIG_SND_INDIGODJX=m | ||||
| CONFIG_SND_EMU10K1=m | ||||
| CONFIG_SND_EMU10K1_SEQ=m | ||||
| # CONFIG_SND_ENS1370 is not set | ||||
| # CONFIG_SND_ENS1371 is not set | ||||
| # CONFIG_SND_FM801 is not set | ||||
|  |  | |||
|  | @ -5870,6 +5870,8 @@ CONFIG_SND_INDIGOIO=m | |||
| CONFIG_SND_INDIGODJ=m | ||||
| CONFIG_SND_INDIGOIOX=m | ||||
| CONFIG_SND_INDIGODJX=m | ||||
| CONFIG_SND_EMU10K1=m | ||||
| CONFIG_SND_EMU10K1_SEQ=m | ||||
| # CONFIG_SND_ENS1370 is not set | ||||
| # CONFIG_SND_ENS1371 is not set | ||||
| # CONFIG_SND_FM801 is not set | ||||
|  |  | |||
|  | @ -648,7 +648,7 @@ CONFIG_ALIX=y | |||
| CONFIG_NET5501=y | ||||
| CONFIG_GEOS=y | ||||
| CONFIG_AMD_NB=y | ||||
| CONFIG_X86_SYSFB=y | ||||
| # CONFIG_X86_SYSFB is not set | ||||
| # end of Bus options (PCI etc.) | ||||
| 
 | ||||
| # | ||||
|  | @ -672,13 +672,7 @@ CONFIG_ISCSI_IBFT_FIND=y | |||
| CONFIG_ISCSI_IBFT=m | ||||
| CONFIG_FW_CFG_SYSFS=m | ||||
| # CONFIG_FW_CFG_SYSFS_CMDLINE is not set | ||||
| CONFIG_GOOGLE_FIRMWARE=y | ||||
| # CONFIG_GOOGLE_SMI is not set | ||||
| CONFIG_GOOGLE_COREBOOT_TABLE=y | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set | ||||
| CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set | ||||
| # CONFIG_GOOGLE_VPD is not set | ||||
| # CONFIG_GOOGLE_FIRMWARE is not set | ||||
| 
 | ||||
| # | ||||
| # EFI (Extensible Firmware Interface) Support | ||||
|  |  | |||
|  | @ -294,7 +294,7 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y | |||
| # | ||||
| # Processor type and features | ||||
| # | ||||
| # CONFIG_ZONE_DMA is not set | ||||
| CONFIG_ZONE_DMA=y | ||||
| CONFIG_SMP=y | ||||
| CONFIG_X86_FEATURE_NAMES=y | ||||
| CONFIG_X86_X2APIC=y | ||||
|  | @ -632,7 +632,7 @@ CONFIG_MMCONF_FAM10H=y | |||
| # CONFIG_ISA_BUS is not set | ||||
| CONFIG_ISA_DMA_API=y | ||||
| CONFIG_AMD_NB=y | ||||
| CONFIG_X86_SYSFB=y | ||||
| # CONFIG_X86_SYSFB is not set | ||||
| # end of Bus options (PCI etc.) | ||||
| 
 | ||||
| # | ||||
|  | @ -659,13 +659,7 @@ CONFIG_ISCSI_IBFT_FIND=y | |||
| CONFIG_ISCSI_IBFT=m | ||||
| CONFIG_FW_CFG_SYSFS=m | ||||
| # CONFIG_FW_CFG_SYSFS_CMDLINE is not set | ||||
| CONFIG_GOOGLE_FIRMWARE=y | ||||
| # CONFIG_GOOGLE_SMI is not set | ||||
| CONFIG_GOOGLE_COREBOOT_TABLE=y | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set | ||||
| CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m | ||||
| # CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set | ||||
| # CONFIG_GOOGLE_VPD is not set | ||||
| # CONFIG_GOOGLE_FIRMWARE is not set | ||||
| 
 | ||||
| # | ||||
| # EFI (Extensible Firmware Interface) Support | ||||
|  | @ -6469,6 +6463,8 @@ CONFIG_SND_INDIGOIO=m | |||
| CONFIG_SND_INDIGODJ=m | ||||
| CONFIG_SND_INDIGOIOX=m | ||||
| CONFIG_SND_INDIGODJX=m | ||||
| CONFIG_SND_EMU10K1=m | ||||
| CONFIG_SND_EMU10K1_SEQ=m | ||||
| CONFIG_SND_ENS1370=m | ||||
| CONFIG_SND_ENS1371=m | ||||
| CONFIG_SND_FM801=m | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2014, 2015, 2020 Eric Bavier <bavier@posteo.net> | ||||
| ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net> | ||||
| ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name> | ||||
| ;;; Copyright © 2015, 2016, 2017, 2021 Leo Famulari <leo@famulari.name> | ||||
| ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr> | ||||
| ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> | ||||
| ;;; Copyright © 2017, 2021 Arun Isaac <arunisaac@systemreboot.net> | ||||
|  | @ -42,6 +42,7 @@ | |||
|   #:use-module (guix gexp) | ||||
|   #:use-module (guix packages) | ||||
|   #:use-module ((guix licenses) #:prefix license:) | ||||
|   #:use-module (guix gexp) | ||||
|   #:use-module (guix git-download) | ||||
|   #:use-module (guix download) | ||||
|   #:use-module (guix utils) | ||||
|  | @ -50,6 +51,7 @@ | |||
|   #:use-module (guix build-system go) | ||||
|   #:use-module (guix build-system perl) | ||||
|   #:use-module (guix build-system python) | ||||
|   #:use-module (guix build-system qt) | ||||
|   #:use-module (gnu packages) | ||||
|   #:use-module (gnu packages acl) | ||||
|   #:use-module (gnu packages autotools) | ||||
|  | @ -81,13 +83,16 @@ | |||
|   #:use-module (gnu packages pkg-config) | ||||
|   #:use-module (gnu packages protobuf) | ||||
|   #:use-module (gnu packages python) | ||||
|   #:use-module (gnu packages python-check) | ||||
|   #:use-module (gnu packages python-crypto) | ||||
|   #:use-module (gnu packages python-web) | ||||
|   #:use-module (gnu packages python-xyz) | ||||
|   #:use-module (gnu packages qt) | ||||
|   #:use-module (gnu packages rsync) | ||||
|   #:use-module (gnu packages ruby) | ||||
|   #:use-module (gnu packages serialization) | ||||
|   #:use-module (gnu packages ssh) | ||||
|   #:use-module (gnu packages time) | ||||
|   #:use-module (gnu packages tls) | ||||
|   #:use-module (gnu packages valgrind) | ||||
|   #:use-module (gnu packages xml)) | ||||
|  | @ -746,8 +751,8 @@ detection, and lossless compression.") | |||
| supports compression and authenticated encryption.  The main goal of Borg is to | ||||
| provide an efficient and secure way to backup data.  The data deduplication | ||||
| technique used makes Borg suitable for daily backups since only changes are | ||||
| stored.  The authenticated encryption technique makes it suitable for backups | ||||
| to not fully trusted targets.  Borg is a fork of Attic.") | ||||
| stored.  The authenticated encryption technique makes it suitable for | ||||
| storing backups on untrusted computers.") | ||||
|     (home-page "https://www.borgbackup.org/") | ||||
|     (license license:bsd-3))) | ||||
| 
 | ||||
|  | @ -1267,3 +1272,63 @@ and workstations.  Protect your files with client-side encryption.  Backup | |||
| your databases too.  Monitor it all with integrated third-party services. | ||||
| borgmatic is powered by borg.") | ||||
|     (license license:gpl3+))) | ||||
| 
 | ||||
| (define-public vorta | ||||
|   (package | ||||
|     (name "vorta") | ||||
|     (version "0.8.3") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (pypi-uri "vorta" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0674crxsmf1gwiacpi9ixypgz685fyzr5y3f9sd768b0bmh7ilsn")))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|      (list | ||||
|       #:imported-modules `((guix build qt-utils) | ||||
|                            (guix build cmake-build-system) | ||||
|                            (guix build qt-build-system) | ||||
|                            ,@%python-build-system-modules) | ||||
|       #:modules '((guix build utils) | ||||
|                   (guix build python-build-system) | ||||
|                   ((guix build qt-build-system) #:prefix qt:)) | ||||
|       #:phases | ||||
|       #~(modify-phases %standard-phases | ||||
|           (add-after 'unpack 'patch-borg-path | ||||
|             (lambda* (#:key inputs #:allow-other-keys) | ||||
|               (substitute* "src/vorta/borg/borg_job.py" | ||||
|                 (("which\\('borg'\\)") | ||||
|                  (string-append "which('" #$(this-package-input "borg") | ||||
|                                 "/bin/borg')"))))) | ||||
|           ;; XXX This phase tries to write to $HOME | ||||
|           (add-before 'sanity-check 'set-HOME | ||||
|             (lambda _ | ||||
|               (setenv "HOME" "/tmp"))) | ||||
|           ;; Otherwise, the user interface's icons will be missing. | ||||
|           (add-after 'wrap 'qt-wrap | ||||
|             (assoc-ref qt:%standard-phases 'qt-wrap))))) | ||||
|     (native-inputs | ||||
|      (list python-pytest-mock | ||||
|            python-pytest-qt | ||||
|            python-pytest-runner | ||||
|            python-setuptools-git)) | ||||
|     (inputs | ||||
|      (list borg | ||||
|            python-appdirs | ||||
|            python-dateutil | ||||
|            python-keyring | ||||
|            python-paramiko | ||||
|            python-peewee | ||||
|            python-psutil | ||||
|            python-pyqt-without-qtwebkit | ||||
|            python-secretstorage | ||||
|            ;; This is included so that the qt-wrap phase picks it up. | ||||
|            qtsvg)) | ||||
|     (home-page "https://github.com/borgbase/vorta") | ||||
|     (synopsis "Graphical backup client based on BorgBackup") | ||||
|     (description "Vorta is a graphical backup client based on the Borg backup | ||||
| tool.  It supports the use of remote backup repositories.  It can perform | ||||
| scheduled backups, and has a graphical tool for browsing and extracting the Borg | ||||
| archives.") | ||||
|     (license license:gpl3+))) | ||||
|  |  | |||
|  | @ -13,7 +13,7 @@ | |||
| ;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com> | ||||
| ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> | ||||
| ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> | ||||
| ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net> | ||||
| ;;; Copyright © 2018, 2019, 2022 Ricardo Wurmus <rekado@elephly.net> | ||||
| ;;; Copyright © 2020 Vitaliy Shatrov <D0dyBo0D0dyBo0@protonmail.com> | ||||
| ;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com> | ||||
| ;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net> | ||||
|  | @ -46,6 +46,7 @@ | |||
|   #:use-module (gnu packages bash) | ||||
|   #:use-module (gnu packages bison) | ||||
|   #:use-module (gnu packages ed) | ||||
|   #:use-module (gnu packages gawk) | ||||
|   #:use-module (gnu packages gcc) | ||||
|   #:use-module (gnu packages guile) | ||||
|   #:use-module (gnu packages multiprecision) | ||||
|  | @ -1014,6 +1015,105 @@ with the Linux kernel.") | |||
|                                        "glibc-reinstate-prlimit64-fallback.patch" | ||||
|                                        "glibc-2.29-supported-locales.patch")))))) | ||||
| 
 | ||||
| 
 | ||||
| (define-public glibc-2.2.5 | ||||
|   (package | ||||
|     (inherit glibc) | ||||
|     (version "2.2.5") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.gz")) | ||||
|               (patches (search-patches "glibc-boot-2.2.5.patch" | ||||
|                                        "glibc-bootstrap-system-2.2.5.patch")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1vl48i16gx6h68whjyhgnn1s57vqq32f9ygfa2fls7pdkbsqvp2q")))) | ||||
|     (arguments | ||||
|      (list #:system "i686-linux" | ||||
|            #:implicit-inputs? #f | ||||
|            #:tests? #f | ||||
|            #:strip-binaries? #f | ||||
|            #:validate-runpath? #f | ||||
|            #:parallel-build? #f ; gcc-2.95.3 ICEs on massively parallel builds | ||||
|            #:make-flags | ||||
|            #~(list (string-append | ||||
|                     "SHELL=" #$(this-package-native-input "bash") "/bin/sh")) | ||||
|            #:configure-flags | ||||
|            #~(list "--enable-shared" | ||||
|                    "--enable-static" | ||||
|                    "--disable-sanity-checks" | ||||
|                    "--build=i686-unknown-linux-gnu" | ||||
|                    "--host=i686-unknown-linux-gnu" | ||||
|                    (string-append "--with-headers=" | ||||
|                                   #$(this-package-native-input "kernel-headers") | ||||
|                                   "/include") | ||||
|                    "--enable-static-nss" | ||||
|                    "--without-__thread" | ||||
|                    "--without-cvs" | ||||
|                    "--without-gd" | ||||
|                    "--without-tls" | ||||
|                    (string-append "--prefix=" #$output)) | ||||
|            #:phases | ||||
|            #~(modify-phases %standard-phases | ||||
|                (add-before 'configure 'setenv | ||||
|                  (lambda* (#:key inputs outputs #:allow-other-keys) | ||||
|                    (let* ((out (assoc-ref outputs "out")) | ||||
|                           (bash (assoc-ref inputs "bash")) | ||||
|                           (shell (string-append bash "/bin/bash")) | ||||
|                           (gcc (assoc-ref inputs "gcc")) | ||||
|                           (cppflags (string-append | ||||
|                                      " -D MES_BOOTSTRAP=1" | ||||
|                                      " -D BOOTSTRAP_GLIBC=1")) | ||||
|                           (cflags (string-append " -L " (getcwd)))) | ||||
|                      (setenv "CONFIG_SHELL" shell) | ||||
|                      (setenv "SHELL" shell) | ||||
|                      (setenv "CPP" (string-append gcc "/bin/gcc -E " cppflags)) | ||||
|                      (setenv "CC" (string-append gcc "/bin/gcc " cppflags cflags))))) | ||||
|                (replace 'configure   ; needs classic invocation of configure | ||||
|                  (lambda* (#:key configure-flags #:allow-other-keys) | ||||
|                    (format (current-error-port) | ||||
|                            "running ./configure ~a\n" (string-join configure-flags)) | ||||
|                    (apply invoke "./configure" configure-flags))) | ||||
|                (add-after 'configure 'fixup-configure | ||||
|                  (lambda* (#:key inputs outputs #:allow-other-keys) | ||||
|                    (let* ((out (assoc-ref outputs "out")) | ||||
|                           (bash (assoc-ref inputs "bash")) | ||||
|                           (shell (string-append bash "/bin/bash"))) | ||||
|                      (substitute* "config.make" | ||||
|                        (("INSTALL = scripts/") "INSTALL = $(..)./scripts/")) | ||||
|                      (substitute* "config.make" | ||||
|                        (("INSTALL = scripts/") "INSTALL = $(..)./scripts/") | ||||
|                        (("BASH = ") (string-append | ||||
|                                      "SHELL = " shell " | ||||
|          BASH = "))))))))) | ||||
|     (supported-systems '("i686-linux" "x86_64-linux")) | ||||
|     (outputs '("out")) | ||||
|     (inputs '()) | ||||
|     (propagated-inputs '()) | ||||
|     (native-inputs | ||||
|      ;; Lazily resolve NAME in (gnu packages commencement) to avoid a cycle. | ||||
|      (let ((c (lambda (name) | ||||
|                 (module-ref (resolve-interface | ||||
|                              '(gnu packages commencement)) | ||||
|                             name)))) | ||||
|        `(("bash" ,bash-minimal) | ||||
|          ("coreutils" ,coreutils) | ||||
|          ("gawk" ,gawk) | ||||
|          ("grep" ,grep) | ||||
|          ("make" ,gnu-make) | ||||
|          ("sed" ,sed) | ||||
|          ("tar" ,tar) | ||||
|          ("bzip2" ,bzip2) | ||||
|          ("gzip" ,gzip) | ||||
|          ("patch" ,patch) | ||||
|          ("xz" ,xz) | ||||
|          ("kernel-headers" ,linux-libre-headers) | ||||
| 
 | ||||
|          ;; Old toolchain | ||||
|          ("gcc" ,(c 'gcc-mesboot0)) | ||||
|          ("binutils" ,(c 'binutils-mesboot)) | ||||
|          ("libc" ,(c 'glibc-mesboot0))))))) | ||||
| 
 | ||||
| (define-public (make-gcc-libc base-gcc libc) | ||||
|   "Return a GCC that targets LIBC." | ||||
|   (package (inherit base-gcc) | ||||
|  |  | |||
|  | @ -2218,7 +2218,7 @@ well as many of the command line options.") | |||
| (define-public bwa-meth | ||||
|   (package | ||||
|     (name "bwa-meth") | ||||
|     (version "0.2.2") | ||||
|     (version "0.2.3") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|  | @ -2227,7 +2227,7 @@ well as many of the command line options.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "17j31i7zws5j7mhsq9x3qgkxly6mlmrgwhfq0qbflgxrmx04yaiz")))) | ||||
|                 "0c695lkrr0996zwkibl7324wg2vxmn6522sz30xv4a9gaf0lnbh3")))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|      `(#:phases | ||||
|  | @ -2238,8 +2238,7 @@ well as many of the command line options.") | |||
|                (("bwa (mem|index)" _ command) | ||||
|                 (string-append (which "bwa") " " command)) | ||||
|                ;; There's an ill-advised check for "samtools" on PATH. | ||||
|                (("^checkX.*") "")) | ||||
|              #t))))) | ||||
|                (("^checkX.*") ""))))))) | ||||
|     (inputs | ||||
|      (list bwa)) | ||||
|     (native-inputs | ||||
|  | @ -10895,6 +10894,9 @@ once.  This package provides tools to perform Drop-seq analyses.") | |||
|          (add-before 'bootstrap 'autoreconf | ||||
|            (lambda _ | ||||
|              (invoke "autoreconf" "-vif"))) | ||||
|          (add-before 'configure 'set-PYTHONPATH | ||||
|            (lambda _ | ||||
|              (setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH")))) | ||||
|          (add-before 'check 'set-timezone | ||||
|            ;; The readr package is picky about timezones. | ||||
|            (lambda* (#:key inputs #:allow-other-keys) | ||||
|  | @ -10969,7 +10971,10 @@ expression report comparing samples in an easily configurable manner.") | |||
|        (modify-phases %standard-phases | ||||
|          (add-before 'bootstrap 'autoreconf | ||||
|            (lambda _ | ||||
|              (invoke "autoreconf" "-vif")))))) | ||||
|              (invoke "autoreconf" "-vif"))) | ||||
|          (add-before 'configure 'set-PYTHONPATH | ||||
|            (lambda _ | ||||
|              (setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH"))))))) | ||||
|     (inputs | ||||
|      (list grep | ||||
|            coreutils | ||||
|  | @ -11055,6 +11060,9 @@ in an easily configurable manner.") | |||
|          (add-before 'bootstrap 'autoreconf | ||||
|            (lambda _ | ||||
|              (invoke "autoreconf" "-vif"))) | ||||
|          (add-before 'configure 'set-PYTHONPATH | ||||
|            (lambda _ | ||||
|              (setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH")))) | ||||
|          (add-before 'check 'set-timezone | ||||
|            ;; The readr package is picky about timezones. | ||||
|            (lambda* (#:key inputs #:allow-other-keys) | ||||
|  | @ -11123,7 +11131,10 @@ methylation and segmentation.") | |||
|        (modify-phases %standard-phases | ||||
|          (add-before 'bootstrap 'autoreconf | ||||
|            (lambda _ | ||||
|              (invoke "autoreconf" "-vif")))))) | ||||
|              (invoke "autoreconf" "-vif"))) | ||||
|          (add-before 'configure 'set-PYTHONPATH | ||||
|            (lambda _ | ||||
|              (setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH"))))))) | ||||
|     (native-inputs | ||||
|      (list automake autoconf)) | ||||
|     (inputs | ||||
|  | @ -11197,7 +11208,10 @@ based methods.") | |||
|        (modify-phases %standard-phases | ||||
|          (add-before 'bootstrap 'autoreconf | ||||
|            (lambda _ | ||||
|              (invoke "autoreconf" "-vif")))))) | ||||
|              (invoke "autoreconf" "-vif"))) | ||||
|          (add-before 'configure 'set-PYTHONPATH | ||||
|            (lambda _ | ||||
|              (setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH"))))))) | ||||
|     (native-inputs | ||||
|      (list automake autoconf)) | ||||
|     (inputs | ||||
|  | @ -12013,7 +12027,7 @@ implementation differs in these ways: | |||
|            python-igraph | ||||
|            python-joblib | ||||
|            python-legacy-api-wrap | ||||
|            python-louvain-0.6 | ||||
|            python-louvain-0.7 | ||||
|            python-matplotlib | ||||
|            python-natsort | ||||
|            python-networkx | ||||
|  | @ -15568,6 +15582,69 @@ aligner.") | |||
|     ;; bwa itself is licenced under GNU General Public License v3.0. | ||||
|     (license license:mpl2.0))) | ||||
| 
 | ||||
| (define-public scvelo | ||||
|   (package | ||||
|     (name "scvelo") | ||||
|     (version "0.2.4") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (pypi-uri "scvelo" version)) | ||||
|        (sha256 | ||||
|         (base32 "0h5ha1459ljs0qgpnlfsw592i8dxqn6p9bl08l1ikpwk36baxb7z")))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|      `(#:phases | ||||
|        (modify-phases %standard-phases | ||||
|          ;; Numba needs a writable dir to cache functions. | ||||
|          (add-before 'check 'set-numba-cache-dir | ||||
|            (lambda _ | ||||
|              (setenv "NUMBA_CACHE_DIR" "/tmp"))) | ||||
|          (replace 'check | ||||
|            (lambda* (#:key outputs tests? #:allow-other-keys) | ||||
|              (when tests? | ||||
|                ;; The discovered test file names must match the names of the | ||||
|                ;; compiled files, so we cannot run the tests from | ||||
|                ;; /tmp/guix-build-*. | ||||
|                (with-directory-excursion | ||||
|                    (string-append (assoc-ref outputs "out") | ||||
|                                   "/lib/python3.9/site-packages/scvelo/core/tests/") | ||||
|                  (invoke "pytest" "-v")))))))) | ||||
|     (propagated-inputs | ||||
|      (list python-anndata | ||||
|            python-hnswlib | ||||
|            python-isort | ||||
|            python-igraph | ||||
|            python-loompy | ||||
|            python-louvain | ||||
|            python-matplotlib | ||||
|            python-numba | ||||
|            python-numpy | ||||
|            python-pandas | ||||
|            python-scanpy | ||||
|            python-scikit-learn | ||||
|            python-scipy | ||||
|            python-umap-learn | ||||
|            pybind11)) | ||||
|     (native-inputs | ||||
|      (list python-black | ||||
|            python-flake8 | ||||
|            python-hypothesis | ||||
|            python-pre-commit | ||||
|            python-pytest | ||||
|            python-setuptools-scm | ||||
|            python-wheel)) | ||||
|     (home-page "https://scvelo.org") | ||||
|     (synopsis "RNA velocity generalized through dynamical modeling") | ||||
|     (description "ScVelo is a scalable toolkit for RNA velocity analysis in | ||||
| single cells.  RNA velocity enables the recovery of directed dynamic | ||||
| information by leveraging splicing kinetics. scVelo generalizes the concept of | ||||
| RNA velocity by relaxing previously made assumptions with a stochastic and a | ||||
| dynamical model that solves the full transcriptional dynamics.  It thereby | ||||
| adapts RNA velocity to widely varying specifications such as non-stationary | ||||
| populations.") | ||||
|     (license license:bsd-3))) | ||||
| 
 | ||||
| (define-public scregseg | ||||
|   (package | ||||
|     (name "scregseg") | ||||
|  |  | |||
|  | @ -51,16 +51,18 @@ supported content to the Kodi media center.") | |||
| (define ublock-origin | ||||
|   (package | ||||
|     (name "ublock-origin") | ||||
|     (version "1.40.8") | ||||
|     (version "1.41.2") | ||||
|     (home-page "https://github.com/gorhill/uBlock") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference (url home-page) (commit version) | ||||
|                                   ;; Also fetch the tightly coupled | ||||
|                                   ;; "uAssets" submodule. | ||||
|                                   (recursive? #t))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "17pywblp87npj5z3zyvy9rmllnxhm916fnfyyfbvfbczswkbp78s")))) | ||||
|                 "0ga8yj2zkyngah0li3la3gslhjdayp0barch5w3y2jp9i14df9k2")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (outputs '("xpi" "firefox" "chromium")) | ||||
|     (arguments | ||||
|  |  | |||
|  | @ -9,7 +9,7 @@ | |||
| ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> | ||||
| ;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org> | ||||
| ;;; Copyright © 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com> | ||||
| ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||||
| ;;; Copyright © 2020, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||||
| ;;; Copyright © 2020, 2021 Greg Hogan <code@greghogan.com> | ||||
| ;;; Copyright © 2021 David Dashyan <mail@davie.li> | ||||
| ;;; | ||||
|  | @ -895,3 +895,42 @@ Service (S3) protocol for object storage.") | |||
| Telemetry Transport (MQTT) publish-subscribe messaging protocol.") | ||||
|     (home-page "https://github.com/awslabs/aws-c-mqtt") | ||||
|     (license license:asl2.0))) | ||||
| 
 | ||||
| (define-public utf8-h | ||||
|   ;; The latest tag is used as there is no release. | ||||
|   (let ((commit "500d4ea9f4c3449e5243c088d8af8700f7189734") | ||||
|         (revision "0")) | ||||
|     (package | ||||
|       (name "utf8-h") | ||||
|       (version (git-version "0.0.0" revision commit)) | ||||
|       (source (origin | ||||
|                 (method git-fetch) | ||||
|                 (uri (git-reference | ||||
|                       (url "https://github.com/sheredom/utf8.h") | ||||
|                       (commit commit))) | ||||
|                 (file-name (git-file-name "utf8.h" version)) | ||||
|                 (sha256 | ||||
|                  (base32 | ||||
|                   "0x9f7ivww8c7cigf4ck0hfx2bm79qgx6q4ccwzqbzkrmcrl9shfb")))) | ||||
|       (build-system cmake-build-system) | ||||
|       (arguments | ||||
|        `(#:phases | ||||
|          (modify-phases %standard-phases | ||||
|            (delete 'build) | ||||
|            (delete 'configure) | ||||
|            (replace 'check | ||||
|              (lambda* (#:key tests? #:allow-other-keys) | ||||
|                (when tests? | ||||
|                  (with-directory-excursion "test" | ||||
|                    (invoke "cmake" ".") | ||||
|                    (invoke "make"))))) | ||||
|            (replace 'install | ||||
|              (lambda* (#:key outputs #:allow-other-keys) | ||||
|                (let ((out (assoc-ref outputs "out"))) | ||||
|                  (install-file "utf8.h" (string-append out "/include")))))))) | ||||
|       (home-page "https://github.com/sheredom/utf8.h") | ||||
|       (synopsis "Single header UTF-8 string functions for C and C++") | ||||
|       (description "A simple one header solution to supporting UTF-8 strings in | ||||
| C and C++.  The functions it provides are like those from the C header | ||||
| string.h, but with a utf8* prefix instead of the str* prefix.") | ||||
|       (license license:unlicense)))) | ||||
|  |  | |||
|  | @ -35,7 +35,7 @@ | |||
| ;;; Copyright © 2020 Josh Marshall <joshua.r.marshall.1991@gmail.com> | ||||
| ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net> | ||||
| ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org> | ||||
| ;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||||
| ;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||||
| ;;; Copyright © 2021 Hugo Lecomte <hugo.lecomte@inria.fr> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
|  | @ -90,6 +90,45 @@ | |||
|   #:use-module (guix build-system trivial) | ||||
|   #:use-module (srfi srfi-1)) | ||||
| 
 | ||||
| (define-public pict | ||||
|   (package | ||||
|     (name "pict") | ||||
|     (version "3.7.2") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|              (url "https://github.com/Microsoft/pict") | ||||
|              (commit (string-append "v" version)))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1hpff8x49ixlh71sbyhj1rircf0mg95v5q9y0ys52rhiph99wy3n")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      (list | ||||
|       #:test-target "test" | ||||
|       #:phases | ||||
|       #~(modify-phases %standard-phases | ||||
|           (delete 'configure) | ||||
|           (replace 'install | ||||
|             (lambda _ | ||||
|               (install-file "pict" (string-append #$output "/bin")) | ||||
|               (install-file "doc/pict.md" | ||||
|                             (string-append #$output | ||||
|                                            "/share/doc/pict-" #$version))))))) | ||||
|     (native-inputs (list perl)) | ||||
|     (home-page "https://www.pairwise.org/") | ||||
|     (synopsis "Pairwise Independent Combinatorial Tool") | ||||
|     (description "PICT is a pairwise testing tool that generates test cases | ||||
| and test configurations.  With PICT, you can generate tests that are more | ||||
| effective than manually generated tests and in a fraction of the time required | ||||
| by hands-on test case design.  PICT runs as a command line tool.  It takes a | ||||
| model file detailing the parameters of the interface as an input and generates | ||||
| a compact set of parameter value choices that represent the test cases you | ||||
| should use to get comprehensive combinatorial coverage of your parameters.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public pedansee | ||||
|   (package | ||||
|     (name "pedansee") | ||||
|  | @ -209,45 +248,46 @@ source code editors and IDEs.") | |||
| (define-public clitest | ||||
|   (package | ||||
|     (name "clitest") | ||||
|     (version "0.3.0") | ||||
|     (version "0.4.0") | ||||
|     (home-page "https://github.com/aureliojargas/clitest") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url home-page) | ||||
|                     (commit (string-append "v" version)))) | ||||
|               (uri (git-reference (url home-page) (commit version))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0zw5wra9hc717srmcar1wm4i34kyj8c49ny4bb7y3nrvkjp2pdb5")))) | ||||
|                 "1p745mxiq3hgi3ywfljs5sa1psi06awwjxzw0j9c2xx1b09yqv4a")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:phases | ||||
|        (modify-phases %standard-phases | ||||
|          ;; This package is distributed as a single shell script and comes | ||||
|          ;; without a proper build system. | ||||
|          (delete 'configure) | ||||
|          (delete 'build) | ||||
|          (replace 'check | ||||
|            (lambda _ | ||||
|              (substitute* "test.md" | ||||
|                ;; One test looks for an error from grep in the form "grep: foo", | ||||
|                ;; but our grep returns the absolute file name on errors.  Adjust | ||||
|                ;; the test to cope with that. | ||||
|                (("sed 's/\\^e\\*grep: \\.\\*/") | ||||
|                 "sed 's/.*e*grep: .*/")) | ||||
|      (list | ||||
|       #:phases | ||||
|       #~(modify-phases %standard-phases | ||||
|           ;; This package is distributed as a single shell script and comes | ||||
|           ;; without a proper build system. | ||||
|           (delete 'configure) | ||||
|           (delete 'build) | ||||
|           (replace 'check | ||||
|             (lambda* (#:key tests? #:allow-other-keys) | ||||
|               (when tests? | ||||
|                 (substitute* "test.md" | ||||
|                   ;; One test looks for an error from grep in the form "grep: foo", | ||||
|                   ;; but our grep returns the absolute file name on errors.  Adjust | ||||
|                   ;; the test to cope with that. | ||||
|                   (("sed 's/\\^e\\*grep: \\.\\*/") | ||||
|                    "sed 's/.*e*grep: .*/")) | ||||
| 
 | ||||
|              (setenv "HOME" "/tmp") | ||||
|              (invoke "./clitest" "test.md"))) | ||||
|          (replace 'install | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let ((out (assoc-ref outputs "out"))) | ||||
|                (install-file "clitest" (string-append out "/bin")) | ||||
|                (install-file "README.md" | ||||
|                              (string-append out "/share/doc/clitest-" ,version)) | ||||
|                #t)))))) | ||||
|                 (setenv "HOME" "/tmp") | ||||
|                 (invoke "./clitest" "test.md")))) | ||||
|           (replace 'install | ||||
|             (lambda _ | ||||
|               (install-file "clitest" (string-append #$output "/bin")) | ||||
|               (install-file "README.md" | ||||
|                             (string-append #$output "/share/doc/clitest-" | ||||
|                                            #$(package-version this-package)))))))) | ||||
|     (native-inputs | ||||
|      (list perl))                 ;for tests | ||||
|     (inputs | ||||
|      (list bash-minimal)) | ||||
|     (synopsis "Command line test tool") | ||||
|     (description | ||||
|      "@command{clitest} is a portable shell script that performs automatic | ||||
|  | @ -421,7 +461,7 @@ a multi-paradigm automated test framework for C++ and Objective-C.") | |||
| (define-public catch-framework2 | ||||
|   (package | ||||
|     (name "catch2") | ||||
|     (version "2.13.2") | ||||
|     (version "2.13.8") | ||||
|     (home-page "https://github.com/catchorg/Catch2") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|  | @ -431,7 +471,7 @@ a multi-paradigm automated test framework for C++ and Objective-C.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "100r0kmra8jmra2hv92lzvwcmphpaiccwvq3lpdsa5b7hailhach")))) | ||||
|                 "18a6d7rcb6ilhxd5dff32jkfdf2ik58pbywrv04ras70217kdq4c")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (inputs | ||||
|      (list python-wrapper)) | ||||
|  | @ -565,15 +605,16 @@ and it supports a very flexible form of test discovery.") | |||
| (define-public doctest | ||||
|   (package | ||||
|     (name "doctest") | ||||
|     (version "2.4.6") | ||||
|     (version "2.4.8") | ||||
|     (home-page "https://github.com/onqtam/doctest") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference (url home-page) (commit version))) | ||||
|               (uri (git-reference (url home-page) | ||||
|                                   (commit (string-append "v" version)))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "14m3q6d96zg6d99x1152jkly50gdjrn5ylrbhax53pfgfzzc5yqx")))) | ||||
|                 "057wdkv3gcz42mh1j284sgvm16i5fk1f9b1plgvavca70q4p52gz")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (synopsis "C++ test framework") | ||||
|     (description | ||||
|  | @ -2807,7 +2848,8 @@ portable to just about any platform.") | |||
|                         ;; indefinitely.  See README.packagers for more information. | ||||
|                         ;; There are specific instructions to not enable more flags | ||||
|                         ;; than absolutely needed. | ||||
|                         ,(if (target-ppc64le?) | ||||
|                         ,(if (or (target-ppc64le?) | ||||
|                                  (target-riscv64?)) | ||||
|                            `(setenv "FAKETIME_COMPILE_CFLAGS" | ||||
|                                     "-DFORCE_MONOTONIC_FIX -DFORCE_PTHREAD_NONVER") | ||||
|                            `(setenv "FAKETIME_COMPILE_CFLAGS" | ||||
|  |  | |||
|  | @ -82,9 +82,6 @@ | |||
|     "base/third_party/symbolize" ;BSD-3 | ||||
|     "base/third_party/xdg_mime" ;LGPL2.0+ or Academic 2.0 | ||||
|     "base/third_party/xdg_user_dirs" ;Expat | ||||
|     ;; XXX: Chromium requires a newer C++ standard library.  Remove this when | ||||
|     ;; the default GCC is 9 or later. | ||||
|     "buildtools/third_party/libc++" ;ASL2.0, with LLVM exceptions | ||||
|     "chrome/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+ | ||||
|     "courgette/third_party/bsdiff" ;BSD-2, BSD protection license | ||||
|     "courgette/third_party/divsufsort" ;Expat | ||||
|  | @ -170,8 +167,6 @@ | |||
|     "third_party/iccjpeg" ;IJG | ||||
|     "third_party/inspector_protocol" ;BSD-3 | ||||
|     "third_party/jinja2" ;BSD-3 | ||||
|     ;; XXX: Unbundle this when switching back to libstdc++. | ||||
|     "third_party/jsoncpp" ;Public Domain or Expat | ||||
|     "third_party/jstemplate" ;ASL2.0 | ||||
|     "third_party/khronos" ;Expat, SGI | ||||
|     "third_party/leveldatabase" ;BSD-3 | ||||
|  | @ -237,9 +232,6 @@ | |||
|     "third_party/protobuf/third_party/six" ;Expat | ||||
|     "third_party/pyjson5" ;ASL2.0 | ||||
|     "third_party/qcms" ;Expat | ||||
|     ;; XXX: System re2 cannot be used when Chromium uses libc++ because the re2 | ||||
|     ;; ABI relies on libstdc++ internals.  See build/linux/unbundle/re2.gn. | ||||
|     "third_party/re2" ;BSD-3 | ||||
|     "third_party/rnnoise" ;BSD-3 | ||||
|     "third_party/ruy" ;ASL2.0 | ||||
|     "third_party/s2cellid" ;ASL2.0 | ||||
|  | @ -318,13 +310,19 @@ | |||
|   ;; run the Blink performance tests, just remove everything to save ~70MiB. | ||||
|   '("third_party/blink/perf_tests")) | ||||
| 
 | ||||
| (define* (arch-patch name hash #:optional (revision %arch-revision)) | ||||
| (define %chromium-version "98.0.4758.80") | ||||
| (define %ungoogled-revision (string-append %chromium-version "-1")) | ||||
| (define %debian-revision "debian/90.0.4430.85-1") | ||||
| 
 | ||||
| (define %ungoogled-origin | ||||
|   (origin | ||||
|     (method url-fetch) | ||||
|     (uri (string-append "https://raw.githubusercontent.com/archlinux" | ||||
|                         "/svntogit-packages/" revision "/trunk/" name)) | ||||
|     (file-name (string-append "ungoogled-chromium-" name)) | ||||
|     (sha256 (base32 hash)))) | ||||
|     (method git-fetch) | ||||
|     (uri (git-reference (url "https://github.com/Eloston/ungoogled-chromium") | ||||
|                         (commit %ungoogled-revision))) | ||||
|     (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision)) | ||||
|     (sha256 | ||||
|      (base32 | ||||
|       "0a8y9yz6xyh025gk3dr0ndrdwmrslhd1ph2f8nivmqk61j7c2g8h")))) | ||||
| 
 | ||||
| (define* (debian-patch name hash #:optional (revision %debian-revision)) | ||||
|   (origin | ||||
|  | @ -336,33 +334,16 @@ | |||
|                   (string-append "ungoogled-chromium-" category "-" name)))) | ||||
|     (sha256 (base32 hash)))) | ||||
| 
 | ||||
| (define %chromium-version "97.0.4692.99") | ||||
| (define %ungoogled-revision (string-append %chromium-version "-1")) | ||||
| (define %arch-revision "db2157b84924ce84201a8245e68a02f7d55f6491") | ||||
| (define %debian-revision "debian/90.0.4430.85-1") | ||||
| 
 | ||||
| (define %arch-patches | ||||
|   (list (arch-patch "chromium-94-ffmpeg-roll.patch" | ||||
|                     "1kiskdjr9v3d491sq0wdjxliflh2vq5700gbygcixayj8gkvdb2n"))) | ||||
| 
 | ||||
| (define %debian-patches | ||||
|   (list (debian-patch "fixes/nomerge.patch" | ||||
|                       "0lybs2b5gk08j8cr6vjrs9d3drd7qfw013z2r0y00by8dnpm74i3") | ||||
|         (debian-patch "system/jsoncpp.patch" | ||||
|                       "16lvhci10hz0q9axc6p921b95a76kbzcla5cl81czxzfwnynr1w5") | ||||
|         (debian-patch "system/zlib.patch" | ||||
|                       "0j313bd3q8qc065j60x97dckrfgbwl4qxc8jhz33iihvv4lwziwv") | ||||
|         (debian-patch "system/openjpeg.patch" | ||||
|                       "048405xh84pys0kky81vlqhaxjyxvcql4py217z01qxiv991zxaj"))) | ||||
| 
 | ||||
| (define %ungoogled-origin | ||||
|   (origin | ||||
|     (method git-fetch) | ||||
|     (uri (git-reference (url "https://github.com/Eloston/ungoogled-chromium") | ||||
|                         (commit %ungoogled-revision))) | ||||
|     (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision)) | ||||
|     (sha256 | ||||
|      (base32 | ||||
|       "1jgxpp3wl24hq39291mgmdwcxbarxg4rpa6il53k8z3rf6gd2s4i")))) | ||||
| 
 | ||||
| (define %guix-patches | ||||
|   (list (local-file | ||||
|          (assume-valid-file-name | ||||
|  | @ -370,9 +351,6 @@ | |||
|         (local-file | ||||
|          (assume-valid-file-name | ||||
|           (search-patch "ungoogled-chromium-RUNPATH.patch"))) | ||||
|         (local-file | ||||
|          (assume-valid-file-name | ||||
|           (search-patch "ungoogled-chromium-accelerated-video-decode.patch"))) | ||||
|         (local-file | ||||
|          (assume-valid-file-name | ||||
|           (search-patch "ungoogled-chromium-ffmpeg-compat.patch"))) | ||||
|  | @ -406,13 +384,6 @@ | |||
|                               patch "--no-backup-if-mismatch")) | ||||
|                     (append '#+%debian-patches '#+%guix-patches)) | ||||
| 
 | ||||
|           ;; These patches are "reversed"; i.e. they represent changes | ||||
|           ;; already present in the source, but which should be reverted. | ||||
|           (for-each (lambda (patch) | ||||
|                       (invoke "patch" "-Rp1" "--force" "--input" | ||||
|                               patch "--no-backup-if-mismatch")) | ||||
|                     '#$%arch-patches) | ||||
| 
 | ||||
|           (with-directory-excursion #+%ungoogled-origin | ||||
|             (format #t "Ungooglifying...~%") | ||||
|             (force-output) | ||||
|  | @ -449,7 +420,7 @@ | |||
|                   "--system-libraries" "ffmpeg" "flac" "fontconfig" | ||||
|                   "freetype" "harfbuzz-ng" "icu" "libdrm" "libevent" | ||||
|                   "libjpeg" "libpng" "libwebp" "libxml" "libxslt" | ||||
|                   "openh264" "opus" "zlib"))))) | ||||
|                   "openh264" "opus" "re2" "zlib"))))) | ||||
| 
 | ||||
| (define opus+custom | ||||
|   (package/inherit opus | ||||
|  | @ -480,7 +451,7 @@ | |||
|                                   %chromium-version ".tar.xz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1fpc07zvashaqqalwn7wxnswxclrxvhjrxy1rzr6gcq5awhaw6y9")) | ||||
|                 "0wa1jhsw7qrym4x8wxmdvdvbilb8jdv0mizzib2342l61zi6cwn8")) | ||||
|               (modules '((guix build utils))) | ||||
|               (snippet (force ungoogled-chromium-snippet)))) | ||||
|     (build-system gnu-build-system) | ||||
|  | @ -501,13 +472,11 @@ | |||
|               ;; a developer build. | ||||
|               "is_official_build=true" | ||||
|               "clang_use_chrome_plugins=false" | ||||
|               "is_cfi=false"            ;requires ThinLTO | ||||
|               "use_thin_lto=false"      ;XXX lld segfaults | ||||
|               "use_custom_libcxx=false" | ||||
|               "chrome_pgo_phase=0" | ||||
|               "use_sysroot=false" | ||||
|               "goma_dir=\"\"" | ||||
|               "enable_nacl=false" | ||||
|               "enable_nacl_nonsfi=false" | ||||
|               "use_unofficial_version_number=false" | ||||
|               "treat_warnings_as_errors=false" | ||||
|               "use_official_google_api_keys=false" | ||||
|  | @ -577,7 +546,11 @@ | |||
|               "rtc_use_pipewire=true" | ||||
|               "rtc_link_pipewire=true" | ||||
|               ;; Don't use bundled sources. | ||||
|               "rtc_build_json=true"  ;FIXME: libc++ std::string ABI difference | ||||
|               "rtc_build_json=false" | ||||
|               (string-append "rtc_jsoncpp_root=\"" | ||||
|                              (search-input-directory %build-inputs | ||||
|                                                      "include/json") | ||||
|                              "\"") | ||||
|               "rtc_build_libevent=false" | ||||
|               ;; XXX: Use the bundled libvpx for WebRTC because unbundling | ||||
|               ;; currently fails (see above), and the versions must match. | ||||
|  | @ -623,6 +596,15 @@ | |||
|                           (find-files (string-append "third_party/webrtc/modules" | ||||
|                                                      "/audio_coding/codecs/opus"))) | ||||
| 
 | ||||
|                 (substitute* "third_party/webrtc/rtc_base/strings/json.h" | ||||
|                   (("#include \"third_party/jsoncpp/") | ||||
|                    "#include \"json/")) | ||||
| 
 | ||||
|                 ;; This can be removed for M99. | ||||
|                 (substitute* "media/gpu/chromeos/video_decoder_pipeline.cc" | ||||
|                   (("third_party/libdrm/src/include/drm/drm_fourcc\\.h") | ||||
|                    "libdrm/drm_fourcc.h")) | ||||
| 
 | ||||
|                 ;; Many files try to include ICU headers from "third_party/icu/...". | ||||
|                 ;; Remove the "third_party/" prefix to use system headers instead. | ||||
|                 (substitute* (find-files "chrome" "\\.cc$") | ||||
|  | @ -668,7 +650,6 @@ | |||
|                 (substitute* | ||||
|                     '("ui/ozone/platform/x11/gl_ozone_glx.cc" | ||||
|                       "ui/ozone/common/egl_util.cc" | ||||
|                       "ui/gl/init/gl_initializer_linux_x11.cc" | ||||
|                       "third_party/angle/src/libANGLE/renderer/gl/glx\ | ||||
| /FunctionsGLX.cpp") | ||||
|                   (("libGL\\.so\\.1") | ||||
|  | @ -683,18 +664,6 @@ | |||
|                                                  "include/c++")) | ||||
|                     (node (search-input-file (or native-inputs inputs) | ||||
|                                              "/bin/node"))) | ||||
|                 ;; Remove the default compiler from CPLUS_INCLUDE_PATH to | ||||
|                 ;; prevent header conflict with the bundled libcxx. | ||||
|                 (setenv "CPLUS_INCLUDE_PATH" | ||||
|                         (string-join | ||||
|                          (delete c++ | ||||
|                                  (string-split (getenv "CPLUS_INCLUDE_PATH") | ||||
|                                                #\:)) | ||||
|                          ":")) | ||||
|                 (format #t | ||||
|                         "environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%" | ||||
|                         (getenv "CPLUS_INCLUDE_PATH")) | ||||
| 
 | ||||
|                 ;; Define the GN toolchain. | ||||
|                 (setenv "AR" "llvm-ar") (setenv "NM" "llvm-nm") | ||||
|                 (setenv "CC" "clang") (setenv "CXX" "clang++") | ||||
|  | @ -766,7 +735,9 @@ | |||
|                      (resources      (string-append lib "/resources")) | ||||
|                      (preferences | ||||
|                       ;; This file contains defaults for new user profiles. | ||||
|                       #$(local-file "aux-files/chromium/master-preferences.json")) | ||||
|                       #$(local-file | ||||
|                          (search-auxiliary-file | ||||
|                           "chromium/master-preferences.json"))) | ||||
|                      (gtk+           (assoc-ref inputs "gtk+")) | ||||
|                      (xdg-utils      (assoc-ref inputs "xdg-utils"))) | ||||
| 
 | ||||
|  | @ -846,6 +817,7 @@ | |||
|            gtk+ | ||||
|            harfbuzz-3.0 | ||||
|            icu4c | ||||
|            jsoncpp | ||||
|            lcms | ||||
|            libevent | ||||
|            libffi | ||||
|  | @ -879,6 +851,7 @@ | |||
|            pciutils | ||||
|            pipewire-0.3 | ||||
|            pulseaudio | ||||
|            re2 | ||||
|            snappy | ||||
|            speech-dispatcher | ||||
|            eudev | ||||
|  |  | |||
|  | @ -332,8 +332,14 @@ is on par with Java implementations, e.g., Apache commons-codec.") | |||
|     (build-system clojure-build-system) | ||||
|     (arguments | ||||
|      '(#:source-dirs '("src/main/clojure") | ||||
|        #:test-dirs '("src/test/clojure") | ||||
|        #:doc-dirs '())) | ||||
|        #:test-dirs '("src/test/clojure" "src/test/resources") | ||||
|        #:doc-dirs '() | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-before 'build 'delete-cljs-tests | ||||
|                      (lambda _ | ||||
|                        (delete-file "src/test/resources/clojure/data/xml/cljs_testsuite.clj") | ||||
|                        (delete-file "src/test/clojure/clojure/data/xml/test_cljs.clj")))))) | ||||
|     (propagated-inputs (list clojure-data-codec)) | ||||
|     (synopsis "Clojure library for reading and writing XML data") | ||||
|     (description "@code{data.xml} is a Clojure library for reading and writing | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ | |||
| ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr> | ||||
| ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> | ||||
| ;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org> | ||||
| ;;; Copyright © 2017, 2018, 2019, 2021 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2017, 2018, 2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> | ||||
| ;;; Copyright © 2018, 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> | ||||
| ;;; Copyright © 2019, 2020, 2021 Marius Bakke <marius@gnu.org> | ||||
|  | @ -12,6 +12,7 @@ | |||
| ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||||
| ;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com> | ||||
| ;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu> | ||||
| ;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -1264,7 +1265,7 @@ ac_cv_c_float_format='IEEE (little-endian)' | |||
|                (install-file "gawk" bin) | ||||
|                (symlink "gawk" (string-append bin "/awk")))))))))) | ||||
| 
 | ||||
| (define glibc-mesboot0 | ||||
| (define-public glibc-mesboot0 | ||||
|   ;; GNU C Library 2.2.5 is the most recent glibc that we managed to build | ||||
|   ;; using gcc-2.95.3.  Newer versions (2.3.x, 2.6, 2.1x) seem to need a newer | ||||
|   ;; gcc. | ||||
|  | @ -1358,7 +1359,7 @@ ac_cv_c_float_format='IEEE (little-endian)' | |||
|                                      "SHELL = " shell " | ||||
|          BASH = "))))))))))) | ||||
| 
 | ||||
| (define gcc-mesboot0 | ||||
| (define-public gcc-mesboot0 | ||||
|   (package | ||||
|     (inherit gcc-core-mesboot0) | ||||
|     (name "gcc-mesboot0") | ||||
|  | @ -1402,6 +1403,63 @@ ac_cv_c_float_format='IEEE (little-endian)' | |||
|               ,(string-append "LIBGCC2_INCLUDES=-I " gcc "/include") | ||||
|               "LANGUAGES=c"))))))) | ||||
| 
 | ||||
| (define-public gcc-2.95-wrapper | ||||
|   ;; We need this so gcc-mesboot0 can be used to create shared binaries that | ||||
|   ;; have the correct interpreter, otherwise configuring gcc-mesboot using | ||||
|   ;; --enable-shared will fail. | ||||
|   (package | ||||
|     (inherit gcc-mesboot0) | ||||
|     (name "gcc-wrapper") | ||||
|     (source #f) | ||||
|     (inputs '()) | ||||
|     (native-inputs | ||||
|      `(("bash" ,bash-minimal) | ||||
|        ("coreutils" ,coreutils) | ||||
|        ("libc" ,glibc-2.2.5) | ||||
|        ("gcc" ,gcc-mesboot0))) | ||||
|     (arguments | ||||
|      `(#:implicit-inputs? #f | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (delete 'unpack) | ||||
|          (delete 'configure) | ||||
|          (delete 'install) | ||||
|          (replace 'build | ||||
|            (lambda* (#:key inputs outputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out")) | ||||
|                     (bash (assoc-ref inputs "bash")) | ||||
|                     (libc (assoc-ref inputs "libc")) | ||||
|                     (gcc (assoc-ref inputs "gcc")) | ||||
|                     (bin (string-append out "/bin"))) | ||||
|                (mkdir-p bin) | ||||
|                (for-each | ||||
|                 (lambda (program) | ||||
|                   (let ((wrapper (string-append bin "/" program))) | ||||
|                     (with-output-to-file wrapper | ||||
|                       (lambda _ | ||||
|                         (display (string-append "#! " bash "/bin/bash | ||||
| exec " gcc "/bin/" program | ||||
| " -Wl,--dynamic-linker" | ||||
| ;; also for x86_64-linux, we are still on i686-linux | ||||
| " -Wl," libc ,(glibc-dynamic-linker "i686-linux") | ||||
| " -Wl,--rpath" | ||||
| " -Wl," libc "/lib" | ||||
| " \"$@\" | ||||
| ")) | ||||
|                         (chmod wrapper #o555))))) | ||||
|                 '("cpp" | ||||
|                   "gcc" | ||||
|                   "g++" | ||||
|                   "i686-unknown-linux-gnu-cpp" | ||||
|                   "i686-unknown-linux-gnu-gcc" | ||||
|                   "i686-unknown-linux-gnu-g++"))))) | ||||
|          (replace 'check | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out")) | ||||
|                     (bin (string-append out "/bin")) | ||||
|                     (program (string-append bin "/gcc"))) | ||||
|                (invoke program "--help"))))))))) | ||||
| 
 | ||||
| (define (%boot-mesboot0-inputs) | ||||
|   `(("gcc" ,gcc-mesboot0) | ||||
|     ("kernel-headers" ,%bootstrap-linux-libre-headers) | ||||
|  | @ -1992,7 +2050,7 @@ ac_cv_c_float_format='IEEE (little-endian)' | |||
|            (lambda _ | ||||
|              (invoke "./hello")))))))) | ||||
| 
 | ||||
| (define binutils-mesboot | ||||
| (define-public binutils-mesboot | ||||
|   (package | ||||
|     (inherit binutils) | ||||
|     (name "binutils-mesboot") | ||||
|  | @ -3736,6 +3794,19 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" | |||
|       ("libc:static" ,glibc-final "static") | ||||
|       ("locales" ,glibc-utf8-locales-final)))) | ||||
| 
 | ||||
| (define-public %final-inputs-riscv64 | ||||
|   ;; This is similar to the added (list gcc "lib") elsewhere in this file, but | ||||
|   ;; due to how (%current-system) is re-defined when performing builds with the | ||||
|   ;; '--system' flag, %final-inputs is too early in the evaulation pipeline to | ||||
|   ;; correctly identify the system for which a derivation will be built. Thus, | ||||
|   ;; since (%current-system) is re-determined by (guix build-system gnu) after | ||||
|   ;; loading %final-inputs but before taking into account the '--system' flag, | ||||
|   ;; the test for (target-riscv64?) needs to be in (guix build-system gnu), | ||||
|   ;; with %final-inputs-riscv64 already available at the same time that | ||||
|   ;; %final-inputs is available. | ||||
|   `(("gcc:lib" ,gcc-final "lib") | ||||
|     ,@%final-inputs)) | ||||
| 
 | ||||
| (define-public canonical-package | ||||
|   (let ((name->package (fold (lambda (input result) | ||||
|                                (match input | ||||
|  |  | |||
|  | @ -3,6 +3,7 @@ | |||
| ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> | ||||
| ;;; Copyright © 2019 Alexandru-Sergiu Marton <brown121407@member.fsf.org> | ||||
| ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org> | ||||
| ;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -110,7 +111,7 @@ performance). | |||
| (define-public picom | ||||
|   (package | ||||
|     (name "picom") | ||||
|     (version "8.2") | ||||
|     (version "9") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -119,7 +120,7 @@ performance). | |||
|              (commit (string-append "v" version)))) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0gjksayz2xpmgglvw17ppsan2imrd1fijs579kbf27xwp503xgfl")) | ||||
|          "0s3rf0lmkhhprx6vd5wsz1n0n55nprq6l1245pj525hrwxc1yvna")) | ||||
|        (file-name (string-append "picom-" version)))) | ||||
|     (build-system meson-build-system) | ||||
|     (inputs | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2016, 2017, 2019, 2021 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2016, 2017, 2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> | ||||
| ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> | ||||
| ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> | ||||
|  | @ -45,19 +45,20 @@ | |||
| (define-public connman | ||||
|   (package | ||||
|     (name "connman") | ||||
|     (version "1.40") | ||||
|     (version "1.41") | ||||
|     (source | ||||
|       (origin | ||||
|         (method url-fetch) | ||||
|         (uri (string-append "mirror://kernel.org/linux/network/connman/" | ||||
|                             "connman-" version ".tar.xz")) | ||||
|         (sha256 | ||||
|          (base32 "04nbxpaxykncp65fyh4lk778vn9145fbxhxa8hbkmailw9yawmqs")))) | ||||
|          (base32 "12g5ilcnymx6i45z3359yds3cgd2dfqjyncfm92hqlymzps41yvr")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:configure-flags | ||||
|        (list "--enable-nmcompat" | ||||
|              "--enable-polkit" ; Polkit doesn't need to be present at build time. | ||||
|              "--enable-iwd" | ||||
|              "--enable-openconnect" | ||||
|              "--enable-openvpn" | ||||
|              "--enable-vpnc" | ||||
|  | @ -68,8 +69,8 @@ | |||
|              (string-append | ||||
|               "--with-dbusdatadir=" (assoc-ref %outputs "out") "/share")))) | ||||
|     (native-inputs | ||||
|      `(("pkg-config" ,pkg-config) | ||||
|        ("python" ,python-wrapper))) | ||||
|      (list pkg-config | ||||
|            python-wrapper)) | ||||
|     (inputs | ||||
|      (list dbus | ||||
|            glib | ||||
|  |  | |||
|  | @ -52,7 +52,7 @@ | |||
| (define-public coq-core | ||||
|   (package | ||||
|     (name "coq-core") | ||||
|     (version "8.14.1") | ||||
|     (version "8.15.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -62,7 +62,7 @@ | |||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0q634fmrh5ivpxy7ammdiqdh9xp72ji2726vcz1bd55ln0d08z40")) | ||||
|          "0473mmc4wv8zbbcbvqqn0z9gz9y8gf4w2q6j6h50lx0jphpg2n8z")) | ||||
|        (patches (search-patches "coq-fix-envvars.patch")))) | ||||
|     (native-search-paths | ||||
|      (list (search-path-specification | ||||
|  | @ -229,7 +229,7 @@ provers.") | |||
| (define-public coq-flocq | ||||
|   (package | ||||
|     (name "coq-flocq") | ||||
|     (version "3.4.2") | ||||
|     (version "4.0.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -239,7 +239,7 @@ provers.") | |||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0j7vq7ifqcdaj2x881aha2rl51l2p72y1cn7r2xya0fjgsssfigy")))) | ||||
|          "159ykkhxz7zms28r4v8jjccapl5vv00csdz29mfy83lwrv5b6rwk")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (native-inputs | ||||
|      (list autoconf automake ocaml which coq)) | ||||
|  | @ -276,7 +276,7 @@ inside Coq.") | |||
| (define-public coq-gappa | ||||
|   (package | ||||
|     (name "coq-gappa") | ||||
|     (version "1.5.0") | ||||
|     (version "1.5.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -286,7 +286,7 @@ inside Coq.") | |||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1ivh8xm1c8191rm4riamjzya2x6ls96qax5byir1fywf9hbxr1vg")))) | ||||
|          "18y4mv44mcgyam77rf4xs7l06mg7pxx1qli3yvs0kklmnnvwa463")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (native-inputs | ||||
|      (list autoconf | ||||
|  | @ -334,7 +334,7 @@ assistant.") | |||
| (define-public coq-mathcomp | ||||
|   (package | ||||
|     (name "coq-mathcomp") | ||||
|     (version "1.13.0") | ||||
|     (version "1.14.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -343,7 +343,7 @@ assistant.") | |||
|              (commit (string-append "mathcomp-" version)))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "0aj8hsdzzds5w0p1858s2b6k9zssjcxa6kgpi0q1nvaml4zfpkcc")))) | ||||
|         (base32 "1rqg47dg84wr6d9v2pzna54dm62awcm8xdwx4dqwdwhf58fjxa9i")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (native-inputs | ||||
|      (list ocaml which coq)) | ||||
|  | @ -420,7 +420,7 @@ theorems between the two libraries.") | |||
| (define-public coq-bignums | ||||
|   (package | ||||
|     (name "coq-bignums") | ||||
|     (version "8.14.0") | ||||
|     (version "8.15.0") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|  | @ -429,7 +429,7 @@ theorems between the two libraries.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0jsgdvj0ddhkls32krprp34r64y1rb5mwxl34fgaxk2k4664yq06")))) | ||||
|                 "093klwlhclgyrba1iv18dyz1qp5f0lwiaa7y0qwvgmai8rll5fns")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (native-inputs | ||||
|      (list ocaml coq)) | ||||
|  | @ -452,7 +452,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.") | |||
| (define-public coq-interval | ||||
|   (package | ||||
|     (name "coq-interval") | ||||
|     (version "4.3.1") | ||||
|     (version "4.4.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -462,7 +462,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.") | |||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0sr9psildc0sda07r2r47rfgyry49yklk38bg04yyvry5j5pryb6")))) | ||||
|          "1rlcbv1nqm7zv60n63lca6nnxcq3c18akgzl72s1n3h89gvhs87z")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (native-inputs | ||||
|      (list autoconf automake ocaml which coq)) | ||||
|  | @ -546,11 +546,11 @@ uses Ltac to synthesize the substitution operation.") | |||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url "https://github.com/mattam82/Coq-Equations") | ||||
|                     (commit (string-append "v" version "-8.14")))) | ||||
|                     (commit (string-append "v" version "-8.15")))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "19bj9nncd1r9g4273h5qx35gs3i4bw5z9bhjni24b413hyj55hkv")))) | ||||
|                 "1vfcfpsp9zyj0sw0cwibk76nj6n0r6gwh8m1aa3lbvc0b1kbm32k")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (native-inputs | ||||
|      (list ocaml coq camlp5)) | ||||
|  | @ -625,7 +625,7 @@ also provided in Coq, without associated proofs.") | |||
| (define-public coq-stdpp | ||||
|   (package | ||||
|     (name "coq-stdpp") | ||||
|     (version "1.6.0") | ||||
|     (version "1.7.0") | ||||
|     (synopsis "Alternative Coq standard library std++") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|  | @ -635,7 +635,7 @@ also provided in Coq, without associated proofs.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1l1w6srzydjg0h3f4krrfgvz455h56shyy2lbcnwdbzjkahibl7v")))) | ||||
|                 "0447wbzm23f9rl8byqf6vglasfn6c1wy6cxrrwagqjwsh3i5lx8y")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (inputs | ||||
|      (list coq)) | ||||
|  |  | |||
|  | @ -11,10 +11,10 @@ | |||
| ;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net> | ||||
| ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> | ||||
| ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net> | ||||
| ;;; Copyright © 2020 Marius Bakke <marius@gnu.org> | ||||
| ;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org> | ||||
| ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> | ||||
| ;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org> | ||||
| ;;; Copyright © 2020, 2021 Greg Hogan <code@greghogan.com> | ||||
| ;;; Copyright © 2020-2022 Greg Hogan <code@greghogan.com> | ||||
| ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> | ||||
| ;;; Copyright © 2020 Milkey Mouse <milkeymouse@meme.institute> | ||||
| ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> | ||||
|  | @ -48,6 +48,7 @@ | |||
|   #:use-module (guix utils) | ||||
|   #:use-module (guix git-download) | ||||
|   #:use-module (guix build-system cmake) | ||||
|   #:use-module (guix build-system copy) | ||||
|   #:use-module (guix build-system gnu) | ||||
|   #:use-module (guix build-system python) | ||||
|   #:use-module (guix modules) | ||||
|  | @ -73,13 +74,15 @@ | |||
|   #:use-module (gnu packages onc-rpc) | ||||
|   #:use-module (gnu packages perl) | ||||
|   #:use-module (gnu packages python) | ||||
|   #:use-module (gnu packages python-check) | ||||
|   #:use-module (gnu packages pkg-config) | ||||
|   #:use-module (gnu packages popt) | ||||
|   #:use-module (gnu packages pretty-print) | ||||
|   #:use-module (gnu packages pulseaudio) | ||||
|   #:use-module (gnu packages tls) | ||||
|   #:use-module (gnu packages web) | ||||
|   #:use-module (gnu packages xml)) | ||||
|   #:use-module (gnu packages xml) | ||||
|   #:use-module (ice-9 match)) | ||||
| 
 | ||||
| (define-public argagg | ||||
|   (let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748") (revision "0")) | ||||
|  | @ -452,51 +455,48 @@ functions, class methods, and stl containers. | |||
|     (license license:bsd-3))) | ||||
| 
 | ||||
| (define-public fifo-map | ||||
|   (let* ((commit "0dfbf5dacbb15a32c43f912a7e66a54aae39d0f9") | ||||
|          (revision "0") | ||||
|          (version (git-version "1.1.1" revision commit))) | ||||
|     (package | ||||
|       (name "fifo-map") | ||||
|       (version version) | ||||
|       (home-page "https://github.com/nlohmann/fifo_map") | ||||
|       (source (origin | ||||
|                 (method git-fetch) | ||||
|                 (uri (git-reference | ||||
|                       (url home-page) | ||||
|                       (commit commit))) | ||||
|                 (sha256 | ||||
|                  (base32 | ||||
|                   "0pi77b75kp0l7z454ihcd14nzpi3nc5m4nyjbsgy5f9bw3676196")) | ||||
|                 (patches (search-patches "fifo-map-remove-catch.hpp.patch" | ||||
|                                          "fifo-map-fix-flags-for-gcc.patch")) | ||||
|                 (file-name (git-file-name name version)) | ||||
|                 (modules '((guix build utils))) | ||||
|                 (snippet '(delete-file-recursively "./test/thirdparty")))) | ||||
|       (native-inputs | ||||
|        (list catch-framework2-1)) | ||||
|       (build-system cmake-build-system) | ||||
|       (arguments | ||||
|        `(#:phases | ||||
|          (modify-phases %standard-phases | ||||
|            (replace 'check | ||||
|              (lambda _ | ||||
|                (invoke "./unit"))) | ||||
|            (replace 'install | ||||
|              (lambda* (#:key outputs #:allow-other-keys) | ||||
|                (let* ((out (assoc-ref outputs "out")) | ||||
|                       (inc (string-append out "/include/fifo_map"))) | ||||
|                  (with-directory-excursion "../source" | ||||
|                    (install-file "src/fifo_map.hpp" inc)))))))) | ||||
|       (synopsis "FIFO-ordered associative container for C++") | ||||
|       (description "Fifo_map is a C++ header only library for associative | ||||
|   (package | ||||
|     (name "fifo-map") | ||||
|     (version "1.0.0") | ||||
|     (home-page "https://github.com/nlohmann/fifo_map") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url home-page) | ||||
|                     (commit (string-append "v" version)))) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0y59fk6ycrgjln9liwcja3l5j1vxpa5i671bynpbsjlyq5f2560q")) | ||||
|               (patches (search-patches "fifo-map-remove-catch.hpp.patch" | ||||
|                                        "fifo-map-fix-flags-for-gcc.patch")) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (modules '((guix build utils))) | ||||
|               (snippet '(delete-file-recursively "./test/thirdparty")))) | ||||
|     (inputs | ||||
|      (list catch-framework2-1)) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      '(#:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (replace 'check | ||||
|            (lambda* (#:key tests? #:allow-other-keys) | ||||
|              (when tests? (invoke "./unit")))) | ||||
|          (replace 'install | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out")) | ||||
|                     (inc (string-append out "/include/fifo_map"))) | ||||
|                (with-directory-excursion "../source" | ||||
|                  (install-file "src/fifo_map.hpp" inc)))))))) | ||||
|     (synopsis "FIFO-ordered associative container for C++") | ||||
|     (description "Fifo_map is a C++ header only library for associative | ||||
| container which uses the order in which keys were inserted to the container | ||||
| as ordering relation.") | ||||
|       (license license:expat)))) | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public json-modern-cxx | ||||
|   (package | ||||
|     (name "json-modern-cxx") | ||||
|     (version "3.9.1") | ||||
|     (version "3.10.5") | ||||
|     (home-page "https://github.com/nlohmann/json") | ||||
|     (source | ||||
|      (origin | ||||
|  | @ -504,7 +504,7 @@ as ordering relation.") | |||
|        (uri (git-reference (url home-page) | ||||
|                            (commit (string-append "v" version)))) | ||||
|        (sha256 | ||||
|         (base32 "0ar4mzp53lskxw3vdzw07f47njcshl3lwid9jfq6l7yx6ds2nyjc")) | ||||
|         (base32 "1f9mi45ilwjc2w92grjc53sw038840bjpn8yjf6wc6bxs2nijfqd")) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (modules '((guix build utils))) | ||||
|        (snippet | ||||
|  | @ -513,7 +513,7 @@ as ordering relation.") | |||
|            ;; is a wrapper library added by this package. | ||||
|            (install-file "./test/thirdparty/doctest/doctest_compatibility.h" "/tmp") | ||||
|            (for-each delete-file-recursively | ||||
|                      '("./third_party" "./test/thirdparty" "./benchmarks/thirdparty")) | ||||
|                      '("./third_party" "./test/thirdparty")) | ||||
|            (install-file "/tmp/doctest_compatibility.h" "./test/thirdparty/doctest") | ||||
| 
 | ||||
|            ;; Adjust for the unbundled fifo_map and doctest. | ||||
|  | @ -525,43 +525,39 @@ as ordering relation.") | |||
|                (substitute* files | ||||
|                  (("#include ?\"(fifo_map.hpp)\"" all fifo-map-hpp) | ||||
|                   (string-append | ||||
|                    "#include <fifo_map/" fifo-map-hpp ">"))))) | ||||
|            #t)))) | ||||
|                    "#include <fifo_map/" fifo-map-hpp ">"))))))))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      '(#:configure-flags | ||||
|        (list "-DJSON_MultipleHeaders=ON" ; For json_fwd.hpp. | ||||
|              (string-append "-DJSON_TestDataDirectory=" | ||||
|                             (assoc-ref %build-inputs "json_test_data"))) | ||||
|                             (dirname | ||||
|                              (search-input-directory %build-inputs | ||||
|                                                      "json_nlohmann_tests")))) | ||||
|        #:phases (modify-phases %standard-phases | ||||
|                   ;; XXX: When tests are enabled, the install phase will cause | ||||
|                   ;; a needless rebuild without the given configure flags, | ||||
|                   ;; ultimately creating both $out/lib and $out/lib64.  Move | ||||
|                   ;; the check phase after install to work around it. | ||||
|                   (delete 'check) | ||||
|                   (add-after 'install 'check | ||||
|                     (lambda* (#:key tests? #:allow-other-keys) | ||||
|                   (replace 'check | ||||
|                     (lambda* (#:key tests? parallel-tests? #:allow-other-keys) | ||||
|                       (if tests? | ||||
|                           ;; Some tests need git and a full checkout, skip those. | ||||
|                           (invoke "ctest" "-LE" "git_required") | ||||
|                           (format #t "test suite not run~%")) | ||||
|                       #t))))) | ||||
|                           (invoke "ctest" "-LE" "git_required" | ||||
|                                   "-j" (if parallel-tests? | ||||
|                                            (number->string (parallel-job-count)) | ||||
|                                            "1")) | ||||
|                           (format #t "test suite not run~%"))))))) | ||||
|     (native-inputs | ||||
|      `(("amalgamate" ,amalgamate) | ||||
|        ("doctest" ,doctest) | ||||
|        ("json_test_data" | ||||
|         ,(let ((version "3.0.0")) | ||||
|            (origin | ||||
|              (method git-fetch) | ||||
|              (uri (git-reference | ||||
|                    (url "https://github.com/nlohmann/json_test_data") | ||||
|                    (commit (string-append "v" version)))) | ||||
|              (file-name (git-file-name "json_test_data" version)) | ||||
|              (sha256 | ||||
|               (base32 | ||||
|                "0nzsjzlvk14dazwh7k2jb1dinb0pv9jbx5jsyn264wvva0y7daiv"))))))) | ||||
|      (list amalgamate | ||||
|            (let ((version "3.0.0")) | ||||
|              (origin | ||||
|                (method git-fetch) | ||||
|                (uri (git-reference | ||||
|                      (url "https://github.com/nlohmann/json_test_data") | ||||
|                      (commit (string-append "v" version)))) | ||||
|                (file-name (git-file-name "json_test_data" version)) | ||||
|                (sha256 | ||||
|                 (base32 | ||||
|                  "0nzsjzlvk14dazwh7k2jb1dinb0pv9jbx5jsyn264wvva0y7daiv")))))) | ||||
|     (inputs | ||||
|      (list fifo-map)) | ||||
|      (list doctest fifo-map)) | ||||
|     (synopsis "JSON parser and printer library for C++") | ||||
|     (description "JSON for Modern C++ is a C++ JSON library that provides | ||||
| intuitive syntax and trivial integration.") | ||||
|  | @ -771,7 +767,7 @@ library.") | |||
| (define-public cpplint | ||||
|   (package | ||||
|     (name "cpplint") | ||||
|     (version "1.4.5") | ||||
|     (version "1.5.5") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -781,19 +777,49 @@ library.") | |||
|              (url "https://github.com/cpplint/cpplint") | ||||
|              (commit version))) | ||||
|        (sha256 | ||||
|         (base32 "1yzcxqx0186sh80p0ydl9z0ld51fn2cdpz9hmhrp15j53g9ira7c")) | ||||
|         (base32 "13l86aq0h1jga949k79k9x3hw2xqchjc162sclg2f99vz98zcz15")) | ||||
|        (file-name (git-file-name name version)))) | ||||
|     (arguments | ||||
|      `(#:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-before 'check 'use-later-pytest | ||||
|            (lambda _ | ||||
|              (substitute* "test-requirements" | ||||
|                (("pytest.*") "pytest\n")) | ||||
|              #t))))) | ||||
|      (list #:modules `((srfi srfi-1) | ||||
|                        (srfi srfi-26) | ||||
|                        ,@%python-build-system-modules) | ||||
|            #:phases | ||||
|            #~(modify-phases (@ (guix build python-build-system) %standard-phases) | ||||
|                (add-before 'wrap 'reduce-GUIX_PYTHONPATH | ||||
|                  (lambda _ | ||||
|                    ;; Hide the transitive native inputs from GUIX_PYTHONPATH | ||||
|                    ;; to prevent them from ending up in the run-time closure. | ||||
|                    ;; See also <https://bugs.gnu.org/25235>. | ||||
|                    (let ((transitive-native-inputs | ||||
|                           '#$(match (package-transitive-native-inputs | ||||
|                                      this-package) | ||||
|                                (((labels packages) ...) packages)))) | ||||
|                      ;; Save the original PYTHONPATH because we need it for | ||||
|                      ;; tests later. | ||||
|                      (setenv "TMP_PYTHONPATH" (getenv "GUIX_PYTHONPATH")) | ||||
|                      (setenv "GUIX_PYTHONPATH" | ||||
|                              (string-join | ||||
|                               (filter (lambda (path) | ||||
|                                         (not (any (cut string-prefix? <> path) | ||||
|                                                   transitive-native-inputs))) | ||||
|                                       (search-path-as-string->list | ||||
|                                        (getenv "GUIX_PYTHONPATH"))) | ||||
|                               ":"))))) | ||||
|                (add-after 'wrap 'reset-GUIX_PYTHONPATH | ||||
|                  (lambda _ | ||||
|                    (setenv "GUIX_PYTHONPATH" | ||||
|                            (getenv "TMP_PYTHONPATH")))) | ||||
|                (replace 'check | ||||
|                  (lambda* (#:key tests? #:allow-other-keys) | ||||
|                    (when tests? | ||||
|                      (invoke "pytest" "-vv"))))))) | ||||
|     (build-system python-build-system) | ||||
|     (native-inputs | ||||
|      (list python-pytest python-pytest-cov python-pytest-runner)) | ||||
|      (list python-coverage | ||||
|            python-pytest | ||||
|            python-pytest-cov | ||||
|            python-pytest-runner | ||||
|            python-testfixtures)) | ||||
|     (home-page "https://github.com/cpplint/cpplint") | ||||
|     (synopsis "Static code checker for C++") | ||||
|     (description "@code{cpplint} is a command-line tool to check C/C++ files | ||||
|  | @ -962,7 +988,7 @@ Google's C++ code base.") | |||
| (define-public pegtl | ||||
|   (package | ||||
|     (name "pegtl") | ||||
|     (version "2.8.3") | ||||
|     (version "3.2.2") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|  | @ -971,7 +997,7 @@ Google's C++ code base.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "17crgjfdx55imi2dqnz6xpvsxq07390yfgkz5nd2g77ydkvq9db3")))) | ||||
|                 "1viwrlsw5nwvbv8d88mf5r77syapgxx3xm1kv5kmn6drw8jgsmzf")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (home-page "https://github.com/taocpp/PEGTL") | ||||
|     (synopsis "Parsing Expression Grammar template library") | ||||
|  | @ -1592,3 +1618,102 @@ microparallel algorithms to implement a strict JSON parser with UTF-8 | |||
| validation.") | ||||
|     (home-page "https://github.com/simdjson/simdjson") | ||||
|     (license license:asl2.0))) | ||||
| 
 | ||||
| (define-public bloomberg-bde-tools | ||||
|   (let ((commit "094885bd177e0159232d4e6a060a04edb1edd786")) | ||||
|     (package | ||||
|       (name "bloomberg-bde-tools") | ||||
|       ;; Recent releases are not tagged so commit must be used for checkout. | ||||
|       (version "3.97.0.0") | ||||
|       (source (origin | ||||
|                 (method git-fetch) | ||||
|                 (uri (git-reference | ||||
|                       (url "https://github.com/bloomberg/bde-tools") | ||||
|                       (commit commit))) | ||||
|                 (file-name (git-file-name name version)) | ||||
|                 (sha256 | ||||
|                  (base32 | ||||
|                   "0mbbai73z8amh23ah3wy35kmy612380yr5wg89mic60qwqmpqb02")) | ||||
|                 (patches | ||||
|                  (search-patches | ||||
|                   "bloomberg-bde-tools-fix-install-path.patch")))) | ||||
|       (build-system copy-build-system) | ||||
|       ;; Unable to be an inline dependency of bloomberg-bde due to patch. | ||||
|       (properties '((hidden? . #t))) | ||||
|       (synopsis "Tools for developing and building libraries modeled on BDE") | ||||
|       (description | ||||
|        "This package provides the cmake imports needed to build bloomberg-bde.") | ||||
|       (home-page "https://github.com/bloomberg/bde-tools") | ||||
|       (license license:asl2.0)))) | ||||
| 
 | ||||
| (define-public bloomberg-bde | ||||
|   (let ((commit "b6bcc0e24a5862bf77aea7edd831dedf50e21d64")) | ||||
|     (package | ||||
|       (name "bloomberg-bde") | ||||
|       ;; Recent releases are not tagged so commit must be used for checkout. | ||||
|       (version "3.98.0.0") | ||||
|       (source (origin | ||||
|                 (method git-fetch) | ||||
|                 (uri (git-reference | ||||
|                       (url "https://github.com/bloomberg/bde") | ||||
|                       (commit commit))) | ||||
|                 (file-name (git-file-name name version)) | ||||
|                 (sha256 | ||||
|                  (base32 | ||||
|                   "0y3lipi1lj9qazgc935851r2qsx5aq3vvc4y52jq57riyz8wg3ma")) | ||||
|                 (patches | ||||
|                  (search-patches | ||||
|                   "bloomberg-bde-cmake-module-path.patch")) | ||||
|                 ;;(modules '((guix build utils))) | ||||
|                 (snippet | ||||
|                  `(begin | ||||
|                     ;; FIXME: Delete bundled software. The third-party packages | ||||
|                     ;; may be patched or modified from upstream sources. | ||||
|                     ;;(for-each delete-file-recursively | ||||
|                     ;; (list "thirdparty")) | ||||
|                     ;; Delete failing tests. | ||||
|                     (for-each | ||||
|                      delete-file | ||||
|                      (list "groups/bal/ball/ball_asyncfileobserver.t.cpp" | ||||
|                            "groups/bal/ball/ball_fileobserver2.t.cpp" | ||||
|                            "groups/bal/ball/ball_recordstringformatter.t.cpp" | ||||
|                            "groups/bal/balst/balst_stacktraceutil.t.cpp" | ||||
|                            "groups/bdl/bdlmt/bdlmt_eventscheduler.t.cpp" | ||||
|                            "groups/bdl/bdlmt/bdlmt_timereventscheduler.t.cpp" | ||||
|                            "groups/bdl/bdls/bdls_filesystemutil.t.cpp" | ||||
|                            "groups/bsl/bslh/bslh_hashpair.t.cpp" | ||||
|                            "groups/bsl/bsls/bsls_platform.t.cpp" | ||||
|                            "groups/bsl/bsls/bsls_stackaddressutil.t.cpp" | ||||
|                            "groups/bsl/bsls/bsls_stopwatch.t.cpp" | ||||
|                            "groups/bsl/bslstl/bslstl_function_invokerutil.t.cpp")) | ||||
|                     #t)))) | ||||
|       (build-system cmake-build-system) | ||||
|       (arguments | ||||
|        `(#:parallel-tests? #f           ; Test parallelism may fail inconsistently. | ||||
|          ;; Set UFID to build shared libraries. Flag descriptions can be found at | ||||
|          ;; https://bloomberg.github.io/bde-tools/reference/bde_repo.html#ufid | ||||
|          #:configure-flags ,(match %current-system | ||||
|             ((or "i686-linux" "armhf-linux") | ||||
|              ''("-DUFID=opt_dbg_exc_mt_32_shr_cpp17")) | ||||
|             (_ | ||||
|              ''("-DUFID=opt_dbg_exc_mt_64_shr_cpp17"))) | ||||
|          #:phases | ||||
|          (modify-phases %standard-phases | ||||
|            ;; Explicitly build tests separate from the main build. | ||||
|            (add-after 'build 'build-tests | ||||
|              (lambda* (#:key make-flags #:allow-other-keys) | ||||
|                (apply invoke "make" "all.t" | ||||
|                  `(,@(if #:parallel-build? | ||||
|                          `("-j" ,(number->string (parallel-job-count))) | ||||
|                          '()) | ||||
|                  ,@make-flags))))))) | ||||
|       (native-inputs | ||||
|        (list bloomberg-bde-tools pkg-config python)) | ||||
|       (synopsis "Foundational C++ libraries used at Bloomberg") | ||||
|       (description | ||||
|        "The BDE Development Environment libraries provide an enhanced | ||||
| implementation of STL containers, vocabulary types for representing common | ||||
| concepts (like dates and times), and building blocks for developing | ||||
| multi-threaded applications and network applications.") | ||||
|       (home-page "https://github.com/bloomberg/bde") | ||||
|       (license license:asl2.0)))) | ||||
|  |  | |||
|  | @ -55,6 +55,7 @@ | |||
|   #:use-module ((guix licenses) #:prefix license:) | ||||
|   #:use-module (guix packages) | ||||
|   #:use-module (guix download) | ||||
|   #:use-module (guix gexp) | ||||
|   #:use-module (guix git-download) | ||||
|   #:use-module (guix utils) | ||||
|   #:use-module (guix build-system gnu) | ||||
|  | @ -187,14 +188,14 @@ etc.") | |||
| (define-public r-datawizard | ||||
|   (package | ||||
|     (name "r-datawizard") | ||||
|     (version "0.2.2") | ||||
|     (version "0.2.3") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "datawizard" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0sd0blrczf9qz5kd0jg112fag2w401kkbw1gp9wi5pgffgwp6va3")))) | ||||
|          "0hcnwz42zy9hp32brga31jwk34bz063myqjp2wfxsqm4sqrkv2rx")))) | ||||
|     (properties `((upstream-name . "datawizard"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|  | @ -3043,14 +3044,14 @@ colors are provided.") | |||
| (define-public r-glue | ||||
|   (package | ||||
|     (name "r-glue") | ||||
|     (version "1.6.0") | ||||
|     (version "1.6.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "glue" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0f23dgnc7rv81vhmdhmiwk666mqwb602hxzai1hssyn4y9zg7gkp")))) | ||||
|          "1nvqm4fmxyszz9b2y0gjiwbvwssdqj9jflcz00b4487i8jajz31i")))) | ||||
|     (build-system r-build-system) | ||||
|     ;; knitr depends on glue, so we can't add knitr here to build the | ||||
|     ;; vignettes. | ||||
|  | @ -3311,14 +3312,14 @@ and Francois (2011, JSS), and the book by Eddelbuettel (2013, Springer); see | |||
| (define-public r-rcppthread | ||||
|   (package | ||||
|     (name "r-rcppthread") | ||||
|     (version "1.0.0") | ||||
|     (version "2.0.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "RcppThread" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1xfcxrny779kgknlvnc4j02ifprnakndnkhx8bhy50d39vp4hjjl")))) | ||||
|          "1hcxdk9mhsnrgg2bp7ls165abwb7b5grgh1gvf2i7sqrf9ggwa09")))) | ||||
|     (properties `((upstream-name . "RcppThread"))) | ||||
|     (build-system r-build-system) | ||||
|     (home-page | ||||
|  | @ -3997,6 +3998,54 @@ T distribution.  There is only one exported function, @code{e_trunct}, | |||
| which should be seen for details.") | ||||
|    (license license:expat))) | ||||
| 
 | ||||
| (define-public r-excelr | ||||
|   (package | ||||
|     (name "r-excelr") | ||||
|     (version "0.4.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "excelR" version)) | ||||
|        (sha256 | ||||
|         (base32 "1pb4sy54zjv5vrh7gjjv7qlpab74km6mfsmfyl0yhmr0jx01hrw0")) | ||||
|        (snippet | ||||
|         '(delete-file "inst/htmlwidgets/lib/jexcel/js/jexcel.min.js")))) | ||||
|     (properties `((upstream-name . "excelR"))) | ||||
|     (build-system r-build-system) | ||||
|     (arguments | ||||
|      `(#:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'process-javascript | ||||
|            (lambda* (#:key inputs #:allow-other-keys) | ||||
|              (with-directory-excursion "inst/htmlwidgets/lib/jexcel/js/" | ||||
|                (let ((source (assoc-ref inputs "js-jexcel")) | ||||
|                      (target "jexcel.min.js")) | ||||
|                  (format #true "Processing ~a --> ~a~%" | ||||
|                          source target) | ||||
|                  (invoke "esbuild" source "--minify" | ||||
|                          (string-append "--outfile=" target))))))))) | ||||
|     (native-inputs | ||||
|      `(("esbuild" ,esbuild) | ||||
|        ;; There is no tag for this particular commit, but comparison of the | ||||
|        ;; contents of the JavaScript files point to this commit as the most | ||||
|        ;; likely source. | ||||
|        ("js-jexcel" | ||||
|         ,(origin | ||||
|            (method url-fetch) | ||||
|            (uri (string-append "https://raw.githubusercontent.com/jspreadsheet/ce/" | ||||
|                                "8af1960f76e6803bebc5750013d2ebe95354e88a/dist/jexcel.js")) | ||||
|            (sha256 | ||||
|             (base32 | ||||
|              "0y88hsr9d8cpnvdmbm17m328pc4kc5wbcv02kzmhm0bryzhviw7h")))))) | ||||
|     (propagated-inputs (list r-htmlwidgets r-jsonlite)) | ||||
|     (home-page "https://github.com/Swechhya/excelR") | ||||
|     (synopsis "Wrapper of the JavaScript library jExcel") | ||||
|     (description | ||||
|      "This package provides an R interface to the jExcel library to | ||||
| create web-based interactive tables and spreadsheets compatible with | ||||
| spreadsheet software.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public r-extremes | ||||
|   (package | ||||
|     (name "r-extremes") | ||||
|  | @ -4283,14 +4332,14 @@ data).  Weighted versions of MLE, MME and QME are available.") | |||
| (define-public r-energy | ||||
|   (package | ||||
|     (name "r-energy") | ||||
|     (version "1.7-8") | ||||
|     (version "1.7-9") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "energy" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "12a7gy681aq3l55iys044cs6sn1s2l5qihghpdl01cvv0ggfh26y")))) | ||||
|          "1ndssfi0hbnsm5jwrns7m63ppxm221hd6gk0b0wa1a7mk7ny1l38")))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|      (list r-boot r-gsl r-rcpp)) | ||||
|  | @ -4838,14 +4887,14 @@ by base R methods related to model fitting.") | |||
| (define-public r-broom | ||||
|   (package | ||||
|     (name "r-broom") | ||||
|     (version "0.7.11") | ||||
|     (version "0.7.12") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "broom" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "069fp8lscw59nmsm658w0164cpgfa36xx09s9j7jxisscg99jfcy")))) | ||||
|          "1nbv4a4s8548h2q226xmhyp42higayh95yvllh1rcs264lmw3yh4")))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|      (list r-backports | ||||
|  | @ -4966,6 +5015,31 @@ avoid overlapping text labels.  Labels repel away from each other and away | |||
| from the data points.") | ||||
|     (license license:gpl3))) | ||||
| 
 | ||||
| (define-public r-coro | ||||
|   (package | ||||
|     (name "r-coro") | ||||
|     (version "1.0.2") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "coro" version)) | ||||
|        (sha256 | ||||
|         (base32 "14irld29dipgfd34y0k351daqg9vqpnpdx8m3pxmqr1aiyj5f5cv")))) | ||||
|     (properties `((upstream-name . "coro"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs (list r-rlang)) | ||||
|     (native-inputs (list r-knitr)) | ||||
|     (home-page "https://github.com/r-lib/coro") | ||||
|     (synopsis "Coroutines for R") | ||||
|     (description | ||||
|      "This package provides coroutines for R, a family of functions that can | ||||
| be suspended and resumed later on.  This includes async functions (which | ||||
| await) and generators (which yield).  Async functions are based on the | ||||
| concurrency framework of the @code{promises} package.  Generators are based on | ||||
| a dependency free iteration protocol defined in @code{coro} and are compatible | ||||
| with iterators from the @code{reticulate} package.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public r-corrplot | ||||
|   (package | ||||
|     (name "r-corrplot") | ||||
|  | @ -5037,6 +5111,25 @@ algorithm.  The interface of @code{ucminf} is designed for easy interchange | |||
| with the package @code{optim}.") | ||||
|     (license license:gpl2+))) | ||||
| 
 | ||||
| (define-public r-usedist | ||||
|   (package | ||||
|     (name "r-usedist") | ||||
|     (version "0.4.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "usedist" version)) | ||||
|        (sha256 | ||||
|         (base32 "0ddf1zcalbrn293qmr9kdzz3x16fzc4k1bwb1pjmwnspisqfi8kj")))) | ||||
|     (properties `((upstream-name . "usedist"))) | ||||
|     (build-system r-build-system) | ||||
|     (home-page "https://cran.r-project.org/package=usedist") | ||||
|     (synopsis "Distance matrix utilities") | ||||
|     (description | ||||
|      "This package provides functions to re-arrange, extract, and work with | ||||
| distances.") | ||||
|     (license license:gpl3))) | ||||
| 
 | ||||
| (define-public r-useful | ||||
|   (package | ||||
|    (name "r-useful") | ||||
|  | @ -5937,20 +6030,21 @@ to variables on the left-hand side of the assignment.") | |||
| (define-public r-pillar | ||||
|   (package | ||||
|     (name "r-pillar") | ||||
|     (version "1.6.4") | ||||
|     (version "1.6.5") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "pillar" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "17m13rzgwdddwa0n3gpmax6wmfaphbg71l13ffhw5vnxf6i94fh3")))) | ||||
|          "1nqv86zb51jgd6jbhgnyq6j53dzsjx7gwaapndfd3yvp0sxg3yr2")))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|      (list r-cli | ||||
|            r-crayon | ||||
|            r-ellipsis | ||||
|            r-fansi | ||||
|            r-glue | ||||
|            r-lifecycle | ||||
|            r-rlang | ||||
|            r-utf8 | ||||
|  | @ -7066,14 +7160,14 @@ environment within Shiny.") | |||
| (define-public r-randomizr | ||||
|   (package | ||||
|     (name "r-randomizr") | ||||
|     (version "0.20.0") | ||||
|     (version "0.22.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "randomizr" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0dljyfldnardaps3fq6vi5wcs9x6qfaq5apapa78c51lnaa6fn9h")))) | ||||
|          "1grm0h3xkb0pdbbv0gd531g1kn6njp0gcy5fh153rrmajxgd8hhw")))) | ||||
|     (properties `((upstream-name . "randomizr"))) | ||||
|     (build-system r-build-system) | ||||
|     (native-inputs | ||||
|  | @ -8041,14 +8135,14 @@ Python's @url{https://github.com/ActiveState/appdirs,Appdirs} to R.") | |||
| (define-public r-rastervis | ||||
|   (package | ||||
|     (name "r-rastervis") | ||||
|     (version "0.51.1") | ||||
|     (version "0.51.2") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "rasterVis" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1mg11njzajx9az6xjghjl2sna6wzs85ga8fhy9w43l2n8icsfbr2")))) | ||||
|          "0kgg6cm7xjqya2d46w0i1i1wjpkb8f99lyqy7rgwa7l9xmwzj5n1")))) | ||||
|     (properties `((upstream-name . "rasterVis"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|  | @ -8098,14 +8192,14 @@ those searches and pull data into their R sessions.") | |||
| (define-public r-renv | ||||
|   (package | ||||
|     (name "r-renv") | ||||
|     (version "0.15.1") | ||||
|     (version "0.15.2") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "renv" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0nwvdzwyjvqlvkwp1yhhvqm8b9pwimwng99s0m0j63zm9bgwis1n")))) | ||||
|          "1nv5hz40cbvdbc2kkr2q2xqnpkgkmp47nlfbr7z57mpn579zyznh")))) | ||||
|     (properties `((upstream-name . "renv"))) | ||||
|     (build-system r-build-system) | ||||
|     (native-inputs | ||||
|  | @ -8215,14 +8309,14 @@ always locate the files relative to your project root.") | |||
| (define-public r-reticulate | ||||
|   (package | ||||
|     (name "r-reticulate") | ||||
|     (version "1.23") | ||||
|     (version "1.24") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "reticulate" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1mindiw7k7pa33hpwrgq0g5808c8qs9hl0351n8z2w9wyczlm87y")))) | ||||
|          "1k0nv43fa9lx44pamxpprnvvmsp15adn5z6hg9siyq0n94hca65r")))) | ||||
|     (build-system r-build-system) | ||||
|     (inputs (list python)) | ||||
|     (propagated-inputs | ||||
|  | @ -8264,6 +8358,66 @@ Python to R they are converted back to R types.") | |||
| file.") | ||||
|     (license license:gpl2+))) | ||||
| 
 | ||||
| (define-public r-billboarder | ||||
|   (package | ||||
|     (name "r-billboarder") | ||||
|     (version "0.3.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "billboarder" version)) | ||||
|        (sha256 | ||||
|         (base32 "189ngvg84rcwhrivxskmjv3srhadvzr4p1v8pf11axyv2qn01b0x")) | ||||
|        (snippet | ||||
|         '(delete-file "inst/htmlwidgets/lib/billboard/billboard.pkgd.min.js")))) | ||||
|     (properties `((upstream-name . "billboarder"))) | ||||
|     (build-system r-build-system) | ||||
|     (arguments | ||||
|      `(#:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'process-javascript | ||||
|            (lambda* (#:key inputs #:allow-other-keys) | ||||
|              (with-directory-excursion "inst/htmlwidgets/lib/billboard/" | ||||
|                (let ((source (assoc-ref inputs "js-billboard")) | ||||
|                      (target "billboard.pkgd.min.js")) | ||||
|                  (format #true "Processing ~a --> ~a~%" | ||||
|                          source target) | ||||
|                  (invoke "esbuild" source "--minify" | ||||
|                          (string-append "--outfile=" target))))))))) | ||||
|     (propagated-inputs | ||||
|      (list r-ggplot2 | ||||
|            r-htmltools | ||||
|            r-htmlwidgets | ||||
|            r-jsonlite | ||||
|            r-magrittr | ||||
|            r-rlang | ||||
|            r-scales | ||||
|            r-shiny)) | ||||
|     (native-inputs | ||||
|      `(("r-knitr" ,r-knitr) | ||||
|        ("esbuild" ,esbuild) | ||||
|        ;; It is not ideal to use this concatenated (but not minified) | ||||
|        ;; JavaScript file, as the original source is written in TypeScript. | ||||
|        ;; However, this can still be considered source code as it is readable | ||||
|        ;; and can be modified. | ||||
|        ("js-billboard" | ||||
|         ,(origin | ||||
|            (method url-fetch) | ||||
|            (uri "https://unpkg.com/billboard.js@3.2.0/dist/billboard.js") | ||||
|            (sha256 | ||||
|             (base32 | ||||
|              "1kx5rqmn87pgal2cwmcij2rrnwa0fgcsw6y99m4i0l2sdm0qffv2")))))) | ||||
|     (home-page "https://github.com/dreamRs/billboarder") | ||||
|     (synopsis "Create interactive charts with the JavaScript Billboard library") | ||||
|     (description | ||||
|      "This package provides an @code{htmlwidgets} interface to billboard.js, | ||||
| a re-usable easy interface JavaScript chart library, based on D3 v4+.  Chart | ||||
| types include line charts, scatterplots, bar/lollipop charts, | ||||
| histogram/density plots, pie/donut charts and gauge charts.  All charts are | ||||
| interactive, and a proxy method is implemented to smoothly update a chart | ||||
| without rendering it again in shiny apps.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public r-ggseqlogo | ||||
|   (package | ||||
|     (name "r-ggseqlogo") | ||||
|  | @ -9674,14 +9828,14 @@ visualization and candidate genes around SNPs.") | |||
| (define-public r-precrec | ||||
|   (package | ||||
|     (name "r-precrec") | ||||
|     (version "0.12.7") | ||||
|     (version "0.12.8") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "precrec" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0vwzaqnh9ymrm52dd79bihwqprnygz0d71ay8fv51hdw0zg6saya")))) | ||||
|          "0kwn902z32qcnkffjm6dqnaxagx31xjdcak50clbgrway2pcdjrm")))) | ||||
|     (properties `((upstream-name . "precrec"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|  | @ -10199,14 +10353,14 @@ used to teach mathematics, statistics, computation and modeling.") | |||
| (define-public r-raster | ||||
|   (package | ||||
|     (name "r-raster") | ||||
|     (version "3.5-11") | ||||
|     (version "3.5-15") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "raster" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "18v1vflq15915dwa3caf5sp1d1kp8w6plpaqk3z6a3164lwq5i76")))) | ||||
|          "11fnznymwavpph733dayklhcx4phpjgrijfxlaszi122sg2x7ir9")))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|      (list r-rcpp r-sp r-terra)) | ||||
|  | @ -11553,14 +11707,14 @@ results using @code{ggplot2}.") | |||
| (define-public r-effectsize | ||||
|   (package | ||||
|     (name "r-effectsize") | ||||
|     (version "0.6.0") | ||||
|     (version "0.6.0.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "effectsize" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0xhibc868sngkc8v9g385vlhqdqxzy6b4mj1jihjy6wvk9jw266s")))) | ||||
|          "1rhpbhyrv0avinm6dz6v2qw4xxdl9m1wknq1dv2flfxgcz0k9qiz")))) | ||||
|     (properties `((upstream-name . "effectsize"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|  | @ -12788,13 +12942,13 @@ Anderson-Darling Distribution\".") | |||
| (define-public r-admisc | ||||
|   (package | ||||
|     (name "r-admisc") | ||||
|     (version "0.22") | ||||
|     (version "0.23") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "admisc" version)) | ||||
|        (sha256 | ||||
|         (base32 "1jwz9z3brq4lbnqrkxx40vrn47rknkkj4xfv2gi8kmf1mzc5aqcd")))) | ||||
|         (base32 "0md0sygwdglyw7ss0dw6h235n70vpf25npp1q5b5nmb4db0fq80c")))) | ||||
|     (properties `((upstream-name . "admisc"))) | ||||
|     (build-system r-build-system) | ||||
|     (home-page "https://github.com/dusadrian/admisc") | ||||
|  | @ -12893,14 +13047,14 @@ redundant complex conjugate when the input is real data.") | |||
| (define-public r-tiff | ||||
|   (package | ||||
|     (name "r-tiff") | ||||
|     (version "0.1-10") | ||||
|     (version "0.1-11") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "tiff" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1zha6bzb1rmfl6n2xjkygs9wfi3ah9cjr7a6jzk4zqc5kvl58lak")))) | ||||
|          "0xgc7vyndxxahfhc2qqzmwi56bnfyl0pn72l820jz5sd24aymhxq")))) | ||||
|     (build-system r-build-system) | ||||
|     (inputs | ||||
|      (list libtiff libjpeg-turbo zlib)) | ||||
|  | @ -15226,6 +15380,38 @@ several common set, element and attribute related tasks.") | |||
| effects from the jQuery UI library.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public r-shinymanager | ||||
|   (package | ||||
|     (name "r-shinymanager") | ||||
|     (version "1.0.400") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "shinymanager" version)) | ||||
|        (sha256 | ||||
|         (base32 "1np2yp5pn8g9i4jhysfgprmdn13cpw4vaaagrd72rnk2r4hpmyx4")))) | ||||
|     (properties `((upstream-name . "shinymanager"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|      (list r-billboarder | ||||
|            r-dbi | ||||
|            r-dt | ||||
|            r-htmltools | ||||
|            r-openssl | ||||
|            r-r-utils | ||||
|            r-r6 | ||||
|            r-rsqlite | ||||
|            r-scrypt | ||||
|            r-shiny)) | ||||
|     (native-inputs (list r-knitr)) | ||||
|     (home-page "https://github.com/datastorm-open/shinymanager") | ||||
|     (synopsis "Authentication management for Shiny applications") | ||||
|     (description | ||||
|      "This package provides simple and secure authentification mechanism for | ||||
| single Shiny applications.  Credentials are stored in an encrypted SQLite | ||||
| database.") | ||||
|     (license license:gpl3))) | ||||
| 
 | ||||
| (define-public r-outliers | ||||
|   (package | ||||
|     (name "r-outliers") | ||||
|  | @ -15641,14 +15827,14 @@ probabilities from a standard bivariate normal CDF.") | |||
| (define-public r-lavaan | ||||
|   (package | ||||
|     (name "r-lavaan") | ||||
|     (version "0.6-9") | ||||
|     (version "0.6-10") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "lavaan" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "12hhbwxaiprs9bmclwhhdpv42h4mrl4gj92zq3wk8rb883mw816l")))) | ||||
|          "0dwc8rgrzyrrb0ivx297ln2qbrsxbpn6mdf7laiffhspdpml8sad")))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|      (list r-mass r-mnormt r-numderiv r-pbivnorm)) | ||||
|  | @ -16522,13 +16708,13 @@ datum transformations.") | |||
| (define-public r-spdep | ||||
|   (package | ||||
|     (name "r-spdep") | ||||
|     (version "1.2-1") | ||||
|     (version "1.2-2") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (cran-uri "spdep" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1ya39bgmzagrk4k51zd96l4xvnbc2vzmvd0z9qprdfvg9s6pik78")) | ||||
|                 "08sya6vy7s87h337g2fanncw6xx9y9z8nxpqalbdxv9vpsc6zx4l")) | ||||
|               (snippet | ||||
|                '(for-each delete-file '("inst/doc/CO69.html" | ||||
|                                         "inst/doc/CO69.R" | ||||
|  | @ -19648,14 +19834,14 @@ emphasize hidden group structures in networks or focus on specific nodes.") | |||
| (define-public r-terra | ||||
|   (package | ||||
|     (name "r-terra") | ||||
|     (version "1.5-12") | ||||
|     (version "1.5-17") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "terra" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "06fcjyzllw6dnzq0a7dc73v7rlpf250dyw41q0vr08y3x17c2p46")))) | ||||
|          "1rz6dd78i3aq82vl9q4fw17y5cxj2pcmra5mlhb0ca1df78mgb77")))) | ||||
|     (properties `((upstream-name . "terra"))) | ||||
|     (build-system r-build-system) | ||||
|     (inputs | ||||
|  | @ -22294,14 +22480,14 @@ API; see the package vignette for details.") | |||
| (define-public r-actuar | ||||
|   (package | ||||
|     (name "r-actuar") | ||||
|     (version "3.2-0") | ||||
|     (version "3.2-1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "actuar" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "015brjjgmkwmjajdjdw8gs02jrd96if425pk9a97d499hzsq3xds")))) | ||||
|          "1avqgkls4xvwgfr6j7g2f7p474rlpi82q5aksw8nzf8wcyp7592f")))) | ||||
|     (properties `((upstream-name . "actuar"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs (list r-expint)) | ||||
|  | @ -22561,6 +22747,58 @@ and multivariate regression), and analysis of variance tolerance intervals. | |||
| Visualizations are also available for most of these settings.") | ||||
|     (license license:gpl2+))) | ||||
| 
 | ||||
| ;; Keep this in sync with the liblantern package. | ||||
| (define-public r-torch | ||||
|   (package | ||||
|     (name "r-torch") | ||||
|     (version "0.6.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "torch" version)) | ||||
|        (sha256 | ||||
|         (base32 "05vxb84qxna1rpzqhjw6gwyc569zyz7rfbdkahglvihqjjwabc4x")))) | ||||
|     (properties `((upstream-name . "torch"))) | ||||
|     (build-system r-build-system) | ||||
|     (arguments | ||||
|      (list | ||||
|       #:phases | ||||
|       #~(modify-phases %standard-phases | ||||
|           (add-after 'install 'link-libraries | ||||
|             (lambda* (#:key inputs #:allow-other-keys) | ||||
|               (let ((deps (string-append #$output "/site-library/torch/deps"))) | ||||
|                 (mkdir-p deps) | ||||
|                 (symlink | ||||
|                  (search-input-file | ||||
|                   inputs "/lib/python3.9/site-packages/torch/lib/libtorch.so") | ||||
|                  (string-append deps "/libtorch.so")) | ||||
|                 (symlink | ||||
|                  (search-input-file | ||||
|                   inputs "/lib/liblantern.so") | ||||
|                  (string-append deps "/liblantern.so")))))))) | ||||
|     (inputs | ||||
|      (list python-pytorch-for-r-torch | ||||
|            liblantern)) | ||||
|     (propagated-inputs | ||||
|      (list r-bit64 | ||||
|            r-callr | ||||
|            r-cli | ||||
|            r-coro | ||||
|            r-ellipsis | ||||
|            r-magrittr | ||||
|            r-r6 | ||||
|            r-rcpp | ||||
|            r-rlang | ||||
|            r-withr)) | ||||
|     (native-inputs (list r-knitr)) | ||||
|     (home-page "https://torch.mlverse.org/docs") | ||||
|     (synopsis "Tensors and neural networks with GPU acceleration") | ||||
|     (description | ||||
|      "This package provides functionality to define and train neural networks | ||||
| similar to PyTorch but written entirely in R using the libtorch library.  It | ||||
| also supports low-level tensor operations and GPU acceleration.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public r-additivitytests | ||||
|   (package | ||||
|     (name "r-additivitytests") | ||||
|  | @ -22880,6 +23118,30 @@ finding peaks in spectra, converting humidity measures.") | |||
| from PLINK results.") | ||||
|     (license license:gpl3))) | ||||
| 
 | ||||
| (define-public r-gghighlight | ||||
|   (package | ||||
|     (name "r-gghighlight") | ||||
|     (version "0.3.2") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "gghighlight" version)) | ||||
|        (sha256 | ||||
|         (base32 "0bxgn4srxz1qhawqa8ck57p8hg5ikwfa9ll03zmnn8fb19akwm2v")))) | ||||
|     (properties `((upstream-name . "gghighlight"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|      (list r-dplyr r-ggplot2 r-ggrepel r-lifecycle r-purrr r-rlang r-tibble)) | ||||
|     (native-inputs (list r-knitr)) | ||||
|     (home-page "https://github.com/yutannihilation/gghighlight/") | ||||
|     (synopsis "Highlight lines and points in ggplot2") | ||||
|     (description "Suppose we have data that has so many series that it is hard | ||||
| to identify them by their colors as the differences are so subtle.  With | ||||
| gghighlight we can highlight those lines that match certain criteria.  The | ||||
| result is a usual @code{ggplot} object, so it is fully customizable and can be | ||||
| used with custom themes and facets.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public r-ggplot-multistats | ||||
|   (package | ||||
|     (name "r-ggplot-multistats") | ||||
|  | @ -24990,13 +25252,13 @@ appropriate dog and cat images for many status codes.") | |||
| (define-public r-latex2exp | ||||
|   (package | ||||
|     (name "r-latex2exp") | ||||
|     (version "0.5.0") | ||||
|     (version "0.9.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (cran-uri "latex2exp" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0qknpw7zwwbzsbry94j8fn48mq7kq5rc5448g9hybbisain3wfvg")))) | ||||
|                 "0hfixybyds1jxhyiy3p6256z0fxzc65r654jhc62q9cd3v86a5z6")))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|      (list r-stringr r-magrittr)) | ||||
|  | @ -25891,14 +26153,14 @@ counting and recursive k-means partitioning.") | |||
| (define-public r-hardhat | ||||
|   (package | ||||
|     (name "r-hardhat") | ||||
|     (version "0.1.6") | ||||
|     (version "0.2.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "hardhat" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "07mx8c24gy0xfmip9hb5w29gp10sfnpnilzc1pi0hjadnrqz8mks")))) | ||||
|          "0a4nq93cmps5xy8h0qsv6xyzrbsz9ka4iwkrvb8m8v10wq7wm5wl")))) | ||||
|     (properties `((upstream-name . "hardhat"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|  | @ -26647,14 +26909,14 @@ model.") | |||
| (define-public r-clusterr | ||||
|   (package | ||||
|     (name "r-clusterr") | ||||
|     (version "1.2.5") | ||||
|     (version "1.2.6") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "ClusterR" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1fsb9pzs1paw1cbyr5a56lfh8h2d50232p6isk0xg5sl110ql7kx")))) | ||||
|          "00mha8madcba83ix4fc04rb7sagfm0lxlh1wvs7dvjdrngps41jr")))) | ||||
|     (properties `((upstream-name . "ClusterR"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|  | @ -28449,14 +28711,14 @@ rate speciation and extinction.") | |||
| (define-public r-calculus | ||||
|   (package | ||||
|     (name "r-calculus") | ||||
|     (version "0.3.2") | ||||
|     (version "0.3.3") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "calculus" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1x3bcdd422wqv9gk9r2m8g19qcga220sm5rxdp4bgfc6vlqzzz7y")))) | ||||
|          "1fhvr0l2mqik3d95v0vanafxmiab147g5a87q956g2i945wc5f22")))) | ||||
|     (properties `((upstream-name . "calculus"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|  | @ -28798,13 +29060,13 @@ performing ordinal regression.") | |||
| (define-public r-paradox | ||||
|   (package | ||||
|     (name "r-paradox") | ||||
|     (version "0.7.1") | ||||
|     (version "0.8.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (cran-uri "paradox" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1difp0bzsfxcmbm1snahh3i6417k1a2w4mnjx65p20n2yiclmrgs")))) | ||||
|                 "1jfzbpqi1rp3r8hnk37dqwggp48ha5bnilmdz7dwzfdaskssycxa")))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|      (list r-backports r-checkmate r-data-table r-mlr3misc r-r6)) | ||||
|  | @ -28855,13 +29117,13 @@ computational operations, add-on packages provide additional functionality.") | |||
| (define-public r-mlr3learners | ||||
|   (package | ||||
|     (name "r-mlr3learners") | ||||
|     (version "0.5.1") | ||||
|     (version "0.5.2") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (cran-uri "mlr3learners" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1yc3mrk1b9h1k342wnw7sm4zmcw7w31l5ybh558g88f5hmibdl98")))) | ||||
|                 "1d9hcrnj622ynrzg0ii0fkhz2n66ip46yln21jq1pwpwkqwqzv35")))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|      (list r-checkmate | ||||
|  |  | |||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							|  | @ -101,7 +101,16 @@ | |||
|                                          "ath9k-htc-firmware-binutils.patch"))) | ||||
|                  ((target-mingw? target) | ||||
|                   (package-with-extra-patches | ||||
|                    binutils | ||||
|                    (package-with-extra-configure-variable | ||||
|                     ;; mingw binutils does not work correctly when configured | ||||
|                     ;; with `--enable-compressed-debug-sections`. An error | ||||
|                     ;; like the following will occur whenever you try to link: | ||||
|                     ;; | ||||
|                     ;;   x86_64-w64-mingw32-ld: final link failed: bad value | ||||
|                     ;; | ||||
|                     ;; TODO: This seems like a deeper problem that warrants | ||||
|                     ;; deeper investigation. | ||||
|                     binutils "--enable-compressed-debug-sections" "no") | ||||
|                    (search-patches "binutils-mingw-w64-timestamp.patch" | ||||
|                                    "binutils-mingw-w64-deterministic.patch"))) | ||||
|                  (else binutils)) | ||||
|  |  | |||
|  | @ -10,7 +10,7 @@ | |||
| ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr> | ||||
| ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> | ||||
| ;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org> | ||||
| ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is> | ||||
| ;;; Copyright © 2016, 2017, 2018 Roel Janssen <roel@gnu.org> | ||||
| ;;; Copyright © 2016 David Craven <david@craven.ch> | ||||
|  | @ -55,6 +55,7 @@ | |||
| ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com> | ||||
| ;;; Copyright © 2021 jgart <jgart@dismail.de> | ||||
| ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com> | ||||
| ;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -132,6 +133,7 @@ | |||
|   #:use-module (gnu packages python-science) | ||||
|   #:use-module (gnu packages python-web) | ||||
|   #:use-module (gnu packages python-xyz) | ||||
|   #:use-module (gnu packages qt) | ||||
|   #:use-module (gnu packages rdf) | ||||
|   #:use-module (gnu packages readline) | ||||
|   #:use-module (gnu packages regex) | ||||
|  | @ -164,6 +166,7 @@ | |||
|   #:use-module (guix build-system meson) | ||||
|   #:use-module (guix build-system perl) | ||||
|   #:use-module (guix build-system python) | ||||
|   #:use-module (guix build-system qt) | ||||
|   #:use-module (guix build-system ruby) | ||||
|   #:use-module (guix build-system cmake) | ||||
|   #:use-module (guix build-system scons) | ||||
|  | @ -629,6 +632,59 @@ around TangentOrg’s libmemcached library, and can be used as a drop-in | |||
| replacement for the code@{python-memcached} library.") | ||||
|     (license license:bsd-3))) | ||||
| 
 | ||||
| (define-public go-github-com-bradfitz-gomemcache | ||||
|   (package | ||||
|     (name "go-github-com-bradfitz-gomemcache") | ||||
|     (version "0.0.0-20190913173617-a41fca850d0b") | ||||
|     (source | ||||
|       (origin | ||||
|         (method git-fetch) | ||||
|         (uri (git-reference | ||||
|                (url "https://github.com/bradfitz/gomemcache") | ||||
|                (commit (go-version->git-ref version)))) | ||||
|         (file-name (git-file-name name version)) | ||||
|         (sha256 | ||||
|          (base32 "18qpds6xr73jy80pj7l3pc1l1ndcy3va2dl8fzk17bgwg49sxwfz")) | ||||
|         (modules '((guix build utils))) | ||||
|         (snippet | ||||
|          '(begin | ||||
|             ;; Fixes the 'untyped-int -> string of one rune' issue. | ||||
|             ;; https://github.com/golang/go/issues/32479 | ||||
|             (substitute* "memcache/memcache_test.go" | ||||
|               (("string\\(0x7f") "string(rune(0x7f)")))))) | ||||
|     (build-system go-build-system) | ||||
|     (arguments | ||||
|      '(#:unpack-path "github.com/bradfitz/gomemcache" | ||||
|        #:import-path "github.com/bradfitz/gomemcache/memcache")) | ||||
|     (home-page "https://github.com/bradfitz/gomemcache") | ||||
|     (synopsis "Memcache client library in Go") | ||||
|     (description | ||||
|      "This is a memcache client library for the Go programming language.") | ||||
|     (license license:asl2.0))) | ||||
| 
 | ||||
| (define-public go-github-com-couchbase-gomemcached | ||||
|   (package | ||||
|     (name "go-github-com-couchbase-gomemcached") | ||||
|     (version "0.1.4") | ||||
|     (source | ||||
|       (origin | ||||
|         (method git-fetch) | ||||
|         (uri (git-reference | ||||
|                (url "https://github.com/couchbase/gomemcached") | ||||
|                (commit (string-append "v" version)))) | ||||
|         (file-name (git-file-name name version)) | ||||
|         (sha256 | ||||
|          (base32 "10w74gc05x5naspls39sv2r92krrg31mk266w3lyqqwc0s3fxysl")))) | ||||
|     (build-system go-build-system) | ||||
|     (arguments '(#:import-path "github.com/couchbase/gomemcached")) | ||||
|     (native-inputs | ||||
|      (list go-github-com-stretchr-testify)) | ||||
|     (home-page "https://github.com/couchbase/gomemcached") | ||||
|     (synopsis "Memcached binary protocol toolkit for go") | ||||
|     (description | ||||
|      "This package provides memcache client and server functionality.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public litecli | ||||
|  (package | ||||
|   (name "litecli") | ||||
|  | @ -1263,6 +1319,85 @@ pictures, sounds, or video.") | |||
| 
 | ||||
| (define-public postgresql postgresql-13) | ||||
| 
 | ||||
| (define-public timescaledb | ||||
|   (package | ||||
|     (name "timescaledb") | ||||
|     (version "2.5.1") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url "https://github.com/timescale/timescaledb") | ||||
|                     (commit version))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "174dm3higa0i7al9r2hdv5hk36pd0d5fnqj57w5a350kxshxyvyw")) | ||||
|               (modules '((guix build utils))) | ||||
|               (snippet | ||||
|                ;; Remove files carrying the proprietary TIMESCALE license. | ||||
|                '(begin | ||||
|                   (delete-file-recursively "tsl") | ||||
|                   (for-each delete-file | ||||
|                             '("test/perl/AccessNode.pm" | ||||
|                               "test/perl/DataNode.pm" | ||||
|                               "test/perl/TimescaleNode.pm")))))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      (list #:imported-modules `((guix build union) | ||||
|                                 ,@%cmake-build-system-modules) | ||||
|            #:modules `(,@%cmake-build-system-modules | ||||
|                        (guix build union) | ||||
|                        (ice-9 match)) | ||||
|            #:configure-flags #~(list "-DAPACHE_ONLY=ON" | ||||
|                                      "-DSEND_TELEMETRY_DEFAULT=OFF") | ||||
|            #:test-target "regresschecklocal" | ||||
|            #:phases | ||||
|            #~(modify-phases (@ (guix build cmake-build-system) %standard-phases) | ||||
|                (add-after 'unpack 'patch-install-location | ||||
|                  (lambda _ | ||||
|                    ;; Install extension to the output instead of the | ||||
|                    ;; PostgreSQL store directory. | ||||
|                    (substitute* '("CMakeLists.txt" | ||||
|                                   "cmake/GenerateScripts.cmake" | ||||
|                                   "sql/CMakeLists.txt") | ||||
|                      (("\\$\\{PG_SHAREDIR\\}/extension") | ||||
|                       (string-append #$output "/share/extension"))) | ||||
|                    ;; Likewise for the library. | ||||
|                    (substitute* '("src/CMakeLists.txt" | ||||
|                                   "src/loader/CMakeLists.txt") | ||||
|                      (("\\$\\{PG_PKGLIBDIR\\}") | ||||
|                       (string-append #$output "/lib"))))) | ||||
|                ;; Run the tests after install to make it easier to create the | ||||
|                ;; required PostgreSQL+TimescaleDB filesystem union. | ||||
|                (delete 'check) | ||||
|                (add-after 'install 'prepare-tests | ||||
|                  (lambda* (#:key inputs #:allow-other-keys) | ||||
|                    (let ((pg-data (string-append (getcwd) "/../pg-data")) | ||||
|                          (pg-union (string-append (getcwd) "/../pg-union"))) | ||||
|                      (match inputs | ||||
|                        (((names . directories) ...) | ||||
|                         (union-build pg-union (cons #$output directories)))) | ||||
|                      (setenv "PATH" (string-append pg-union "/bin:" | ||||
|                                                    (getenv "PATH"))) | ||||
|                      (invoke "initdb" "-D" pg-data) | ||||
|                      (copy-file "test/postgresql.conf" | ||||
|                                 (string-append pg-data "/postgresql.conf")) | ||||
|                      (invoke "pg_ctl" "-D" pg-data | ||||
|                              "-o" (string-append "-k " pg-data) | ||||
|                              "-l" (string-append pg-data "/db.log") | ||||
|                              "start")))) | ||||
|                (add-after 'prepare-tests 'check | ||||
|                  (assoc-ref %standard-phases 'check))))) | ||||
|     (inputs (list openssl postgresql)) | ||||
|     (home-page "https://www.timescale.com/") | ||||
|     (synopsis "Time-series extension for PostgreSQL") | ||||
|     (description | ||||
|      "TimescaleDB is an database designed to make SQL scalable for | ||||
| time-series data.  It is engineered up from PostgreSQL and packaged as a | ||||
| PostgreSQL extension, providing automatic partitioning across time and space | ||||
| (partitioning key), as well as full SQL support.") | ||||
|     (license license:asl2.0))) | ||||
| 
 | ||||
| (define-public pgloader | ||||
|   (package | ||||
|     (name "pgloader") | ||||
|  | @ -2321,6 +2456,55 @@ one-to-one, while still providing an idiomatic interface.") | |||
|     (home-page "https://github.com/redis/redis-rb") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public go-github-com-cupcake-rdb | ||||
|   (package | ||||
|     (name "go-github-com-cupcake-rdb") | ||||
|     (version "0.0.0-20161107195141-43ba34106c76") | ||||
|     (source | ||||
|       (origin | ||||
|         (method git-fetch) | ||||
|         (uri (git-reference | ||||
|                (url "https://github.com/tent/rdb") | ||||
|                (commit (go-version->git-ref version)))) | ||||
|         (file-name (git-file-name name version)) | ||||
|         (sha256 | ||||
|          (base32 "1l4bsn5yj8r875crz1rsk6dlvhv0bd8mgazsch5vl4c19v0fs2ib")))) | ||||
|     (build-system go-build-system) | ||||
|     (arguments '(#:import-path "github.com/cupcake/rdb")) | ||||
|     (native-inputs | ||||
|      (list go-gopkg-in-check-v1)) | ||||
|     (home-page "https://github.com/tent/rdb") | ||||
|     (synopsis "Redis RDB parser for Go") | ||||
|     (description | ||||
|      "Package rdb implements parsing and encoding of the Redis RDB file format.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public go-github-com-gomodule-redigo | ||||
|   (package | ||||
|     (name "go-github-com-gomodule-redigo") | ||||
|     (version "1.8.8") | ||||
|     (source | ||||
|       (origin | ||||
|         (method git-fetch) | ||||
|         (uri (git-reference | ||||
|                (url "https://github.com/gomodule/redigo") | ||||
|                (commit (string-append "v" version)))) | ||||
|         (file-name (git-file-name name version)) | ||||
|         (sha256 | ||||
|          (base32 "0wplaaxg7f6c6c08gdp33l48hygn8gq1rhlnjzr1c9qcggsm07k1")))) | ||||
|     (build-system go-build-system) | ||||
|     (arguments | ||||
|      '(#:unpack-path "github.com/gomodule/redigo" | ||||
|        #:import-path "github.com/gomodule/redigo/redis")) | ||||
|     (native-inputs | ||||
|      (list go-github-com-stretchr-testify | ||||
|            redis)) | ||||
|     (home-page "https://github.com/gomodule/redigo") | ||||
|     (synopsis "Go client for Redis") | ||||
|     (description | ||||
|      "Redigo is a Go client for the Redis database.") | ||||
|     (license license:asl2.0))) | ||||
| 
 | ||||
| (define-public kyotocabinet | ||||
|   (package | ||||
|     (name "kyotocabinet") | ||||
|  | @ -2610,6 +2794,34 @@ on another machine, accessed via TCP/IP.") | |||
|     (home-page "http://pqxx.org/") | ||||
|     (license license:bsd-3))) | ||||
| 
 | ||||
| (define-public go-go-etcd-io-bbolt | ||||
|   (package | ||||
|     (name "go-go-etcd-io-bbolt") | ||||
|     (version "1.3.6") | ||||
|     (source | ||||
|       (origin | ||||
|         (method git-fetch) | ||||
|         (uri (git-reference | ||||
|                (url "https://github.com/etcd-io/bbolt") | ||||
|                (commit (string-append "v" version)))) | ||||
|         (file-name (git-file-name name version)) | ||||
|         (sha256 | ||||
|          (base32 "0pj5245d417za41j6p09fmkbv05797vykr1bi9a6rnwddh1dbs8d")))) | ||||
|     (build-system go-build-system) | ||||
|     (arguments | ||||
|      `(#:import-path "go.etcd.io/bbolt" | ||||
|        ;; Extending the test timeout to 30 minutes still times out on aarch64. | ||||
|        #:tests? ,(not target-arm?))) | ||||
|     (propagated-inputs | ||||
|      (list go-golang-org-x-sys)) | ||||
|     (home-page "https://go.etcd.io/bbolt") | ||||
|     (synopsis "Embedded key/value database for Go") | ||||
|     (description "Bolt is a pure Go key/value store inspired by Howard Chu's | ||||
| LMDB project.  The goal of the project is to provide a simple, fast, and | ||||
| reliable database for projects that don't require a full database server such as | ||||
| Postgres or MySQL.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public python-peewee | ||||
|   (package | ||||
|     (name "python-peewee") | ||||
|  | @ -2917,6 +3129,30 @@ etc., and an SQL engine for performing simple SQL queries.") | |||
|     (license (list license:lgpl2.0 | ||||
|                    license:gpl2+)))) | ||||
| 
 | ||||
| (define-public go-gopkg-in-mgo-v2 | ||||
|   (package | ||||
|     (name "go-gopkg-in-mgo-v2") | ||||
|     (version "2.0.0-20190816093944-a6b53ec6cb22") | ||||
|     (source | ||||
|       (origin | ||||
|         (method git-fetch) | ||||
|         (uri (git-reference | ||||
|                (url "https://gopkg.in/mgo.v2") | ||||
|                (commit (go-version->git-ref version)))) | ||||
|         (file-name (git-file-name name version)) | ||||
|         (sha256 | ||||
|          (base32 "1lgvwxsbmdrf4938qkxl56wbwgbphk2qqnmpf73qdmlv4qsg14na")))) | ||||
|     (build-system go-build-system) | ||||
|     (arguments | ||||
|      '(#:tests? #f      ; Tests try to use a running mongodb server. | ||||
|        #:import-path "gopkg.in/mgo.v2")) | ||||
|     (native-inputs | ||||
|      (list go-gopkg-in-check-v1)) | ||||
|     (home-page "https://gopkg.in/mgo.v2") | ||||
|     (synopsis "MongoDB driver for Go") | ||||
|     (description "This package provides a MongoDB driver for Go.") | ||||
|     (license license:bsd-2))) | ||||
| 
 | ||||
| (define-public python-lmdb | ||||
|   (package | ||||
|     (name "python-lmdb") | ||||
|  | @ -4319,3 +4555,45 @@ a handy text editor with language recognition, and visualize SELECT results in | |||
| a Gtk.Grid Widget.") | ||||
|     (home-page "https://github.com/Alecaddd/sequeler") | ||||
|     (license license:gpl2+))) | ||||
| 
 | ||||
| (define-public sqlitebrowser | ||||
|   (package | ||||
|     (name "sqlitebrowser") | ||||
|     (version "3.12.2") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|              (url "https://github.com/sqlitebrowser/sqlitebrowser") | ||||
|              (commit (string-append "v" version)))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "1ljqzcx388mmni8lv9jz5r58alhsjrrqi4nzjnbfki94rn4ray6z")) | ||||
|        (modules '((guix build utils))) | ||||
|        (snippet | ||||
|         '(begin | ||||
|            (delete-file-recursively "libs/qcustomplot-source/") | ||||
|            (delete-file-recursively "libs/qscintilla"))))) | ||||
|     (build-system qt-build-system) | ||||
|     (arguments | ||||
|      (list #:configure-flags | ||||
|            ;; TODO: Unbundle QHexEdit. | ||||
|            #~(list (string-append "-DQSCINTILLA_INCLUDE_DIR=" | ||||
|                                   #$(this-package-input "qscintilla") | ||||
|                                   "/include/Qsci") | ||||
|                    "-DFORCE_INTERNAL_QCUSTOMPLOT=OFF" | ||||
|                    "-DENABLE_TESTING=ON"))) | ||||
|     (inputs | ||||
|      (list qcustomplot | ||||
|            qscintilla | ||||
|            qtbase-5 | ||||
|            sqlite)) | ||||
|     (native-inputs (list qttools)) | ||||
|     (home-page "https://sqlitebrowser.org/") | ||||
|     (synopsis "Database browser for SQLite") | ||||
|     (description "Sqlitebrowser is a high quaility, visual, open source tool to | ||||
| create design, and edit database file compatible with SQLite.") | ||||
|     (license | ||||
|      ;; dual license | ||||
|      (list license:gpl3+ | ||||
|            license:mpl2.0)))) | ||||
|  |  | |||
|  | @ -9,6 +9,7 @@ | |||
| ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||||
| ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net> | ||||
| ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com> | ||||
| ;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -132,8 +133,8 @@ program to exhibit a bug.") | |||
|     (native-inputs (list flex)) | ||||
|     (inputs | ||||
|      `(("astyle"          ,astyle) | ||||
|        ("llvm"            ,llvm) | ||||
|        ("clang"           ,clang) | ||||
|        ("llvm"            ,llvm-9) | ||||
|        ("clang"           ,clang-9) | ||||
|        ("indent"          ,indent) | ||||
|        ("perl"            ,perl) | ||||
|        ("exporter-lite"   ,perl-exporter-lite) | ||||
|  | @ -615,7 +616,7 @@ error reporting, better tracing, profiling, and a debugger.") | |||
| (define-public rr | ||||
|   (package | ||||
|     (name "rr") | ||||
|     (version "5.4.0") | ||||
|     (version "5.5.0") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|  | @ -623,7 +624,7 @@ error reporting, better tracing, profiling, and a debugger.") | |||
|                     (commit version))) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1sfldgkkmsdyaqa28i5agcykc63gwm3zjihd64g86i852w8al2w6")) | ||||
|                 "079x891axkiy8qbvjar9vbaldlx7pm9p0i3nq6infdc66nc69635")) | ||||
|               (file-name (git-file-name name version)))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|  | @ -745,13 +746,13 @@ use than similar tools like @command{mtrace}.") | |||
| (define-public cgdb | ||||
|   (package | ||||
|     (name "cgdb") | ||||
|     (version "0.7.1") | ||||
|     (version "0.8.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://cgdb.me/files/cgdb-" version ".tar.gz")) | ||||
|        (sha256 | ||||
|         (base32 "1671gpz5gx5j0zga8xy2x7h33vqh3nij93lbb6dbb366ivjknwmv")))) | ||||
|         (base32 "1w8ib2vg3pg68d9hh97fw5042c73i9nqavdddc87n9bpscjbaf0d")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (inputs | ||||
|      (list ncurses readline)) | ||||
|  |  | |||
|  | @ -186,7 +186,7 @@ | |||
|              hdf5 | ||||
|              imagemagick | ||||
|              libarchive | ||||
|              llvm | ||||
|              llvm-9 | ||||
|              lz4 | ||||
|              mono | ||||
|              ocaml | ||||
|  |  | |||
|  | @ -53,13 +53,13 @@ | |||
| (define-public python-django-4.0 | ||||
|   (package | ||||
|     (name "python-django") | ||||
|     (version "4.0.1") | ||||
|     (version "4.0.2") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (pypi-uri "Django" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "11pg33ib43pvkflgvs5gs6c9zflhpxp8dvhd109swfscrjiyx194")))) | ||||
|                 "0jlmxylag7dah9jl3wm2swnn9kbisx1gqnddfbh5kjifn67va3qi")))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|      '(#:phases | ||||
|  | @ -140,13 +140,13 @@ to the @dfn{don't repeat yourself} (DRY) principle.") | |||
| (define-public python-django-3.2 | ||||
|   (package | ||||
|     (inherit python-django-4.0) | ||||
|     (version "3.2.11") | ||||
|     (version "3.2.12") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (pypi-uri "Django" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0xbyl9fh9lk5hiwpw46s6hz98gs0fixrpq3myj5hh6vbbnz4mjb9")))) | ||||
|                 "1qj1kvb6mk2f4b33n4n5l4rh5kqllrk2v0v076crxr83ay9ycwlp")))) | ||||
|     (native-search-paths '())           ;no need for TZDIR | ||||
|     (propagated-inputs | ||||
|      (modify-inputs (package-propagated-inputs python-django-4.0) | ||||
|  | @ -156,13 +156,13 @@ to the @dfn{don't repeat yourself} (DRY) principle.") | |||
| (define-public python-django-2.2 | ||||
|   (package | ||||
|     (inherit python-django-3.2) | ||||
|     (version "2.2.26") | ||||
|     (version "2.2.27") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (pypi-uri "Django" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "13siv3bcb2yrpzzsq2k0f1yc70ya8jkmaa5kc8x29ijjglk3g9fz")))) | ||||
|                 "04y9knxd8v9jn54ws5rbdwxyq5im69kx009s7gl62axzn1371qqy")))) | ||||
|     (native-inputs | ||||
|      (modify-inputs (package-native-inputs python-django-3.2) | ||||
|        (prepend ;; 2.2 requires Selenium for the test suite. | ||||
|  |  | |||
|  | @ -27,6 +27,7 @@ | |||
|   #:use-module (guix build-system gnu) | ||||
|   #:use-module (guix utils) | ||||
|   #:use-module ((guix licenses) #:prefix license:) | ||||
|   #:use-module (gnu packages) | ||||
|   #:use-module (gnu packages base) | ||||
|   #:use-module (gnu packages freedesktop) | ||||
|   #:use-module (gnu packages glib) | ||||
|  | @ -48,7 +49,8 @@ | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1ra0ii805w3rrs0qqbjxzl6i79ksz42lnvbglw18h4igkza21kzj")))) | ||||
|                 "1ra0ii805w3rrs0qqbjxzl6i79ksz42lnvbglw18h4igkza21kzj")) | ||||
|               (patches (search-patches "dunst-1.7.3-fix-crash.patch")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #f                      ; no check target | ||||
|  |  | |||
|  | @ -198,7 +198,7 @@ with Microsoft Compiled HTML (CHM) files") | |||
|        ("python-pychm" ,python-pychm) | ||||
|        ("python-pycryptodome" ,python-pycryptodome) | ||||
|        ("python-pygments" ,python-pygments) | ||||
|        ("python-pyqt" ,python-pyqt) | ||||
|        ("python-pyqt-without-qtwebkit" ,python-pyqt-without-qtwebkit) | ||||
|        ("python-pyqtwebengine" ,python-pyqtwebengine) | ||||
|        ("python-regex" ,python-regex) | ||||
|        ("python-speechd" ,speech-dispatcher) | ||||
|  | @ -238,7 +238,7 @@ with Microsoft Compiled HTML (CHM) files") | |||
|          (add-before 'build 'configure | ||||
|           (lambda* (#:key inputs outputs #:allow-other-keys) | ||||
|             (let ((podofo (assoc-ref inputs "podofo")) | ||||
|                   (pyqt (assoc-ref inputs "python-pyqt")) | ||||
|                   (pyqt (assoc-ref inputs "python-pyqt-without-qtwebkit")) | ||||
|                   (python-sip (assoc-ref inputs "python-sip")) | ||||
|                   (out (assoc-ref outputs "out"))) | ||||
|               (substitute* "setup/build.py" | ||||
|  |  | |||
|  | @ -869,7 +869,7 @@ stored and user can review his performance in any time.") | |||
|        ("python-pyaudio" ,python-pyaudio) | ||||
|        ;; `python-pyqtwebengine' must precede `python-pyqt' in PYTHONPATH. | ||||
|        ("python-pyqtwebengine" ,python-pyqtwebengine) | ||||
|        ("python-pyqt" ,python-pyqt) | ||||
|        ("python-pyqt" ,python-pyqt-without-qtwebkit) | ||||
|        ("python-requests" ,python-requests) | ||||
|        ("python-send2trash" ,python-send2trash) | ||||
|        ("python-sip" ,python-sip) | ||||
|  |  | |||
|  | @ -4,6 +4,7 @@ | |||
| ;;; Copyright © 2019 Clément Lassieur <clement@lassieur.org> | ||||
| ;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2021 Leo Famulari <leo@famulari.name> | ||||
| ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -21,11 +22,12 @@ | |||
| ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| (define-module (gnu packages electronics) | ||||
|   #:use-module (guix utils) | ||||
|   #:use-module (guix packages) | ||||
|   #:use-module (guix download) | ||||
|   #:use-module (guix gexp) | ||||
|   #:use-module (guix git-download) | ||||
|   #:use-module ((guix licenses) #:prefix license:) | ||||
|   #:use-module (guix packages) | ||||
|   #:use-module (guix utils) | ||||
|   #:use-module (guix build-system gnu) | ||||
|   #:use-module (guix build-system cmake) | ||||
|   #:use-module (gnu packages) | ||||
|  | @ -34,11 +36,14 @@ | |||
|   #:use-module (gnu packages base) | ||||
|   #:use-module (gnu packages bash) | ||||
|   #:use-module (gnu packages boost) | ||||
|   #:use-module (gnu packages c) | ||||
|   #:use-module (gnu packages check) | ||||
|   #:use-module (gnu packages compression) | ||||
|   #:use-module (gnu packages documentation) | ||||
|   #:use-module (gnu packages embedded) | ||||
|   #:use-module (gnu packages fontutils) | ||||
|   #:use-module (gnu packages gawk) | ||||
|   #:use-module (gnu packages gl) | ||||
|   #:use-module (gnu packages glib) | ||||
|   #:use-module (gnu packages graphviz) | ||||
|   #:use-module (gnu packages gtk) | ||||
|  | @ -48,7 +53,10 @@ | |||
|   #:use-module (gnu packages m4) | ||||
|   #:use-module (gnu packages pkg-config) | ||||
|   #:use-module (gnu packages python) | ||||
|   #:use-module (gnu packages qt)) | ||||
|   #:use-module (gnu packages qt) | ||||
|   #:use-module (gnu packages sdl) | ||||
|   #:use-module (gnu packages sqlite) | ||||
|   #:use-module (gnu packages stb)) | ||||
| 
 | ||||
| (define-public libserialport | ||||
|   (package | ||||
|  | @ -240,6 +248,116 @@ supported devices, as well as input/output file format support.") | |||
|     (description "Sigrok-cli is a command-line frontend for sigrok.") | ||||
|     (license license:gpl3+))) | ||||
| 
 | ||||
| (define-public openboardview | ||||
|   (package | ||||
|     (name "openboardview") | ||||
|     (version "8.95.1") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url "https://github.com/OpenBoardView/OpenBoardView") | ||||
|                     (commit version) | ||||
|                     (recursive? #t)))   ;for the "src/imgui" submodule | ||||
|               (file-name (git-file-name name version)) | ||||
|               (modules '((ice-9 ftw) | ||||
|                          (srfi srfi-26) | ||||
|                          (guix build utils))) | ||||
|               (snippet | ||||
|                '(with-directory-excursion "src" | ||||
|                   ;; Keep the bundled ImGui for now, as in the current version | ||||
|                   ;; (~1.79), it requires the glad loader generated at build | ||||
|                   ;; time as an input. | ||||
|                   (define keep (list "." ".." "imgui" "openboardview")) | ||||
|                   (for-each (lambda (f) | ||||
|                               (when (eq? 'directory (stat:type (lstat f))) | ||||
|                                 (delete-file-recursively f))) | ||||
|                             (scandir "." (negate (cut member <> keep)))))) | ||||
|               (patches | ||||
|                (search-patches "openboardview-use-system-utf8.patch")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "16mrs7bimwp8a8lb2wqhfisy6j0hl9574l4h9yb66v46aglvmd3h")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      (list | ||||
|       #:tests? #f                       ;no test suite | ||||
|       #:imported-modules `((guix build glib-or-gtk-build-system) | ||||
|                            ,@%cmake-build-system-modules) | ||||
|       #:modules '((guix build cmake-build-system) | ||||
|                   (guix build utils) | ||||
|                   ((guix build glib-or-gtk-build-system) #:prefix gtk:)) | ||||
|       #:phases | ||||
|       #~(modify-phases %standard-phases | ||||
|           (add-after 'unpack 'remove-timestamps | ||||
|             (lambda _ | ||||
|               ;; The __TIMESTAMP__ CPP macro does apparently not honor | ||||
|               ;; SOURCE_EPOCH_DATE.  Patch it to use __DATE__ instead, which | ||||
|               ;; does (see: | ||||
|               ;; https://github.com/OpenBoardView/OpenBoardView/issues/229 and | ||||
|               ;; https://issues.guix.gnu.org/53647). | ||||
|               (substitute* '("src/openboardview/BoardView.cpp" | ||||
|                              "src/openboardview/main_opengl.cpp") | ||||
|                 (("__TIMESTAMP__") | ||||
|                  "__DATE__")))) | ||||
|           (add-before 'configure 'configure-glad | ||||
|             (lambda* (#:key inputs #:allow-other-keys) | ||||
|               (substitute* "src/CMakeLists.txt" | ||||
|                 (("add_subdirectory\\(glad\\)") | ||||
|                  (string-append | ||||
|                   ;; Configure Glad to use static Khronos XML specifications | ||||
|                   ;; instead of attempting to fetch them from the Internet. | ||||
|                   "option(GLAD_REPRODUCIBLE \"Reproducible build\" ON)\n" | ||||
|                   ;; Use the CMake files from our glad package. | ||||
|                   "add_subdirectory(" | ||||
|                   (search-input-directory inputs "share/glad") ;source_dir | ||||
|                   " src/glad)\n")))))                          ;binary dir | ||||
|           (add-before 'configure 'fix-utf8-include-directive | ||||
|             ;; Our utf8-h package makes the header available as "utf8.h" | ||||
|             ;; directly rather than "utf8/utf8.h". | ||||
|             (lambda _ | ||||
|               (substitute* '("src/openboardview/FileFormats/BRDFile.cpp" | ||||
|                              "src/openboardview/BoardView.cpp") | ||||
|                 (("utf8/utf8.h") "utf8.h")))) | ||||
|           (add-before 'configure 'dynamically-load-gtk-via-absolute-path | ||||
|             ;; The GTK library is not linked thus not present in the RUNPATH of | ||||
|             ;; the produced binary; the absolute path of the libraries must to | ||||
|             ;; the dynamic loader otherwise they aren't found. | ||||
|             (lambda* (#:key inputs #:allow-other-keys) | ||||
|               (substitute* "src/openboardview/unix.cpp" | ||||
|                 (("libgtk-3.so") | ||||
|                  (search-input-file inputs "lib/libgtk-3.so"))))) | ||||
|           ;; Add the two extra phases from `glib-or-gtk-build-system'. | ||||
|           (add-after 'install 'glib-or-gtk-compile-schemas | ||||
|             (assoc-ref gtk:%standard-phases 'glib-or-gtk-compile-schemas)) | ||||
|           (add-after 'install 'glib-or-gtk-wrap | ||||
|             (assoc-ref gtk:%standard-phases 'glib-or-gtk-wrap))))) | ||||
|     (native-inputs | ||||
|      (list pkg-config | ||||
|            python | ||||
|            glad | ||||
|            stb-image | ||||
|            utf8-h)) | ||||
|     (inputs | ||||
|      (list fontconfig | ||||
|            gtk+ | ||||
|            sdl2 | ||||
|            sqlite | ||||
|            zlib)) | ||||
|     (home-page "https://openboardview.org/") | ||||
|     (synopsis "Viewer for BoardView files") | ||||
|     (description "OpenBoardView is a viewer for BoardView files, which present | ||||
| the details of a printed circuit board (PCB).  It comes with features | ||||
| such as: | ||||
| @itemize | ||||
| @item Dynamic part outline rendering, including complex connectors | ||||
| @item Annotations, for leaving notes about parts, nets, pins or location | ||||
| @item Configurable colour themes | ||||
| @item Configurable DPI to facilitate usage on 4K monitors | ||||
| @item Configurable for running on slower systems | ||||
| @item Reads FZ (with key), BRD, BRD2, BDV and BV* formats. | ||||
| @end itemize") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public pulseview | ||||
|   (package | ||||
|     (name "pulseview") | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> | ||||
| ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> | ||||
| ;;; Copyright © 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> | ||||
| ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> | ||||
| ;;; Copyright © 2018, 2020 Marius Bakke <mbakke@fastmail.com> | ||||
|  | @ -98,7 +98,14 @@ | |||
|            (lambda _ | ||||
|              (substitute* "tests/Makefile.in" | ||||
|                (("run-backtrace-native.sh") "")) | ||||
|              #t))))) | ||||
|              #t)) | ||||
|          ,@(if (target-riscv64?) | ||||
|              `((add-after 'unpack 'disable-failing-riscv64-test | ||||
|                  (lambda _ | ||||
|                    ;; dwfl_thread_getframes: No DWARF information found | ||||
|                    (substitute* "tests/Makefile.in" | ||||
|                      (("run-backtrace-dwarf.sh") ""))))) | ||||
|              '())))) | ||||
| 
 | ||||
|     (native-inputs (list m4)) | ||||
|     (inputs (list zlib)) | ||||
|  | @ -274,4 +281,7 @@ static analysis of the ELF binaries at hand.") | |||
|     (description | ||||
|      "PatchELF allows the ELF \"interpreter\" and RPATH of an ELF binary to be | ||||
| changed.") | ||||
|     ;; This can probably be removed with the next release. | ||||
|     (properties | ||||
|      '((release-monitoring-url . "https://github.com/NixOS/patchelf/releases"))) | ||||
|     (license gpl3+))) | ||||
|  |  | |||
|  | @ -26,6 +26,7 @@ | |||
| (define-module (gnu packages elixir) | ||||
|   #:use-module ((guix licenses) #:prefix license:) | ||||
|   #:use-module (guix build-system gnu) | ||||
|   #:use-module (guix gexp) | ||||
|   #:use-module (guix git-download) | ||||
|   #:use-module (guix packages) | ||||
|   #:use-module (gnu packages) | ||||
|  | @ -35,7 +36,7 @@ | |||
| (define-public elixir | ||||
|   (package | ||||
|     (name "elixir") | ||||
|     (version "1.12.3") | ||||
|     (version "1.13.2") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -44,59 +45,60 @@ | |||
|              (commit (string-append "v" version)))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "07fisdx755cgyghwy95gvdds38sh138z56biariml18jjw5mk3r6")) | ||||
|         (base32 "1d3mk7abn3rk536vmsfbm4smj52rljff6s40sndg0i7p6dl3kzxa")) | ||||
|        (patches (search-patches "elixir-path-length.patch")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:test-target "test" | ||||
|        #:parallel-tests? #f ;see <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32171#23> | ||||
|        #:make-flags (list (string-append "PREFIX=" | ||||
|                                          (assoc-ref %outputs "out"))) | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'make-git-checkout-writable | ||||
|            (lambda _ | ||||
|              (for-each make-file-writable (find-files ".")))) | ||||
|          (add-after 'make-git-checkout-writable 'replace-paths | ||||
|            (lambda* (#:key inputs outputs #:allow-other-keys) | ||||
|              (let ((out (assoc-ref outputs "out"))) | ||||
|                (substitute* '("lib/elixir/lib/system.ex" | ||||
|                               "lib/mix/lib/mix/scm/git.ex") | ||||
|                  (("(cmd\\(['\"])git" _ prefix) | ||||
|                   (string-append prefix (which "git")))) | ||||
|                (substitute* '("lib/mix/lib/mix/release.ex" | ||||
|                               "lib/mix/lib/mix/tasks/release.init.ex") | ||||
|                  (("#!/bin/sh") | ||||
|                   (string-append "#!" (which "sh")))) | ||||
|                (substitute* "bin/elixir" | ||||
|                  (("ERTS_BIN=") | ||||
|                   (string-append | ||||
|                     "ERTS_BIN=" | ||||
|                     ;; Elixir Releases will prepend to ERTS_BIN the path of a copy of erl. | ||||
|                     ;; We detect if a release is being generated by checking the initial ERTS_BIN | ||||
|                     ;; value: if it's empty, we are not in release mode and can point to the actual | ||||
|                     ;; erl binary in Guix store. | ||||
|                     "\nif [ -z \"$ERTS_BIN\" ]; then ERTS_BIN=" | ||||
|                     (string-drop-right (which "erl") 3) | ||||
|                     "; fi"))) | ||||
|                (substitute* "bin/mix" | ||||
|                  (("#!/usr/bin/env elixir") | ||||
|                   (string-append "#!" out "/bin/elixir")))))) | ||||
|          (add-before 'build 'make-current | ||||
|            ;; The Elixir compiler checks whether or not to compile files by | ||||
|            ;; inspecting their timestamps.  When the timestamp is equal to the | ||||
|            ;; epoch no compilation will be performed.  Some tests fail when | ||||
|            ;; files are older than Jan 1, 2000. | ||||
|            (lambda _ | ||||
|              (for-each (lambda (file) | ||||
|                          (let ((recent 1400000000)) | ||||
|                            (utime file recent recent 0 0))) | ||||
|                        (find-files "." ".*")))) | ||||
|          (add-before 'check 'set-home | ||||
|            (lambda* (#:key inputs #:allow-other-keys) | ||||
|              ;; Some tests require access to a home directory. | ||||
|              (setenv "HOME" "/tmp"))) | ||||
|          (delete 'configure)))) | ||||
|      (list | ||||
|       #:test-target "test" | ||||
|       #:parallel-tests? #f ;see <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32171#23> | ||||
|       #:make-flags #~(list (string-append "PREFIX=" #$output)) | ||||
|       #:phases | ||||
|       #~(modify-phases %standard-phases | ||||
|           (add-after 'unpack 'make-git-checkout-writable | ||||
|             (lambda _ | ||||
|               (for-each make-file-writable (find-files ".")))) | ||||
|           (add-after 'make-git-checkout-writable 'replace-paths | ||||
|             (lambda* (#:key inputs #:allow-other-keys) | ||||
|               (substitute* '("lib/elixir/lib/system.ex" | ||||
|                              "lib/mix/lib/mix/scm/git.ex") | ||||
|                 (("(cmd\\(['\"])git" _ prefix) | ||||
|                  (string-append prefix | ||||
|                                 (search-input-file inputs "/bin/git")))) | ||||
|               (substitute* '("lib/mix/lib/mix/release.ex" | ||||
|                              "lib/mix/lib/mix/tasks/release.init.ex") | ||||
|                 (("#!/bin/sh") | ||||
|                  (string-append "#!" (search-input-file inputs "sh")))) | ||||
|               (substitute* "bin/elixir" | ||||
|                 (("^ERTS_BIN=$") | ||||
|                  (string-append | ||||
|                   "ERTS_BIN=" | ||||
|                   ;; Elixir Releases will prepend to ERTS_BIN the path of | ||||
|                   ;; a copy of erl.  We detect if a release is being generated | ||||
|                   ;; by checking the initial ERTS_BIN value: if it's empty, we | ||||
|                   ;; are not in release mode and can point to the actual erl | ||||
|                   ;; binary in Guix store. | ||||
|                   "\nif [ -z \"$ERTS_BIN\" ]; then ERTS_BIN=" | ||||
|                   (string-drop-right (search-input-file inputs "/bin/erl") 3) | ||||
|                   "; fi\n"))) | ||||
|               (substitute* "bin/mix" | ||||
|                 (("#!/usr/bin/env elixir") | ||||
|                  (string-append "#!" #$output "/bin/elixir"))))) | ||||
|           (add-before 'build 'make-current | ||||
|             ;; The Elixir compiler checks whether or not to compile files by | ||||
|             ;; inspecting their timestamps.  When the timestamp is equal to the | ||||
|             ;; epoch no compilation will be performed.  Some tests fail when | ||||
|             ;; files are older than Jan 1, 2000. | ||||
|             (lambda _ | ||||
|               (for-each (lambda (file) | ||||
|                           (let ((recent 1400000000)) | ||||
|                             (utime file recent recent 0 0))) | ||||
|                         (find-files "." ".*")))) | ||||
|           (add-before 'check 'set-home | ||||
|             (lambda* (#:key inputs #:allow-other-keys) | ||||
|               ;; Some tests require access to a home directory. | ||||
|               (setenv "HOME" "/tmp"))) | ||||
|           (delete 'configure)))) | ||||
|     (inputs | ||||
|      (list erlang git)) | ||||
|     (home-page "https://elixir-lang.org/") | ||||
|  |  | |||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							|  | @ -1711,7 +1711,7 @@ This is a part of the TiLP project.") | |||
| (define-public mame | ||||
|   (package | ||||
|     (name "mame") | ||||
|     (version "0.239") | ||||
|     (version "0.240") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -1720,7 +1720,7 @@ This is a part of the TiLP project.") | |||
|              (commit (apply string-append "mame" (string-split version #\.))))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "02by0pq0j8pi5dllk90g94nbszynp9wqg75bl5x8bqrc7h80a0dq")) | ||||
|         (base32 "141mj5kzafnbw6nqlc3ariwxqn8lq3s13dzypax6igpy4wfy75rm")) | ||||
|        (modules '((guix build utils))) | ||||
|        (snippet | ||||
|         ;; Remove bundled libraries. | ||||
|  | @ -1745,50 +1745,47 @@ This is a part of the TiLP project.") | |||
|                 "pugixml" "rapidjson" "sqlite3" "utf8proc" "zlib"))) | ||||
|       #:tests? #f                       ;no test in regular release | ||||
|       #:phases | ||||
|       `(modify-phases %standard-phases | ||||
|          (delete 'configure) | ||||
|          (add-after 'build 'build-documentation | ||||
|            (lambda _ (invoke "make" "-C" "docs" "man" "info"))) | ||||
|          (replace 'install | ||||
|            ;; Upstream does not provide an installation phase. | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out")) | ||||
|                     (share (string-append out "/share/mame"))) | ||||
|                ;; Install data. | ||||
|                (for-each (lambda (dir) | ||||
|                            (copy-recursively dir (string-append share "/" dir))) | ||||
|                          '("artwork" "bgfx" "ctrlr" "hash" "ini" "language" | ||||
|                            "plugins" "samples")) | ||||
|                (let ((keymaps (string-append share "/keymaps"))) | ||||
|                  (for-each (lambda (file) (install-file file keymaps)) | ||||
|                            (find-files "keymaps" ".*LINUX\\.map"))) | ||||
|                (let ((fonts (string-append share "/fonts"))) | ||||
|                  (install-file "uismall.bdf" fonts)) | ||||
|                (when (file-exists? "mame64") | ||||
|                  (rename-file "mame64" "mame")) | ||||
|                (install-file "mame" (string-append out "/bin"))))) | ||||
|          (add-after 'install 'install-documentation | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out")) | ||||
|                     (man (string-append out "/share/man/man1")) | ||||
|                     (info (string-append out "/share/info"))) | ||||
|                (install-file "docs/build/man/MAME.1" man) | ||||
|                (install-file "docs/build/texinfo/MAME.info" info)))) | ||||
|          (add-after 'install 'install-ini-file | ||||
|            ;; Generate an ini file so as to set some directories (e.g., roms) | ||||
|            ;; to a writable location, i.e., "$HOME/.mame/" and "$HOME/mame/". | ||||
|            ;; | ||||
|            ;; XXX: We need to insert absolute references to the store.  It can | ||||
|            ;; be an issue if they leak into user's home directory, e.g., with | ||||
|            ;; "mame -createconfig" and the package is later GC'ed. | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out")) | ||||
|                     (share (string-append out "/share/mame")) | ||||
|                     (ini (string-append share "/ini"))) | ||||
|                (with-output-to-file (string-append ini "/mame.ini") | ||||
|                  (lambda _ | ||||
|                    (format #t | ||||
|                            "inipath              $HOME/.mame;~a/ini~@ | ||||
|       #~(modify-phases %standard-phases | ||||
|           (delete 'configure) | ||||
|           (add-after 'build 'build-documentation | ||||
|             (lambda _ (invoke "make" "-C" "docs" "man" "info"))) | ||||
|           (replace 'install | ||||
|             ;; Upstream does not provide an installation phase. | ||||
|             (lambda _ | ||||
|               (let ((share (string-append #$output "/share/mame"))) | ||||
|                 ;; Install data. | ||||
|                 (for-each (lambda (dir) | ||||
|                             (copy-recursively dir (string-append share "/" dir))) | ||||
|                           '("artwork" "bgfx" "ctrlr" "hash" "ini" "language" | ||||
|                             "plugins" "samples")) | ||||
|                 (let ((keymaps (string-append share "/keymaps"))) | ||||
|                   (for-each (lambda (file) (install-file file keymaps)) | ||||
|                             (find-files "keymaps" ".*LINUX\\.map"))) | ||||
|                 (let ((fonts (string-append share "/fonts"))) | ||||
|                   (install-file "uismall.bdf" fonts)) | ||||
|                 (when (file-exists? "mame64") | ||||
|                   (rename-file "mame64" "mame")) | ||||
|                 (install-file "mame" (string-append #$output "/bin"))))) | ||||
|           (add-after 'install 'install-documentation | ||||
|             (lambda _ | ||||
|               (let ((man (string-append #$output "/share/man/man1")) | ||||
|                     (info (string-append #$output "/share/info"))) | ||||
|                 (install-file "docs/build/man/MAME.1" man) | ||||
|                 (install-file "docs/build/texinfo/MAME.info" info)))) | ||||
|           (add-after 'install 'install-ini-file | ||||
|             ;; Generate an ini file so as to set some directories (e.g., roms) | ||||
|             ;; to a writable location, i.e., "$HOME/.mame/" and "$HOME/mame/". | ||||
|             ;; | ||||
|             ;; XXX: We need to insert absolute references to the store.  It can | ||||
|             ;; be an issue if they leak into user's home directory, e.g., with | ||||
|             ;; "mame -createconfig" and the package is later GC'ed. | ||||
|             (lambda _ | ||||
|               (let* ((share (string-append #$output "/share/mame")) | ||||
|                      (ini (string-append share "/ini"))) | ||||
|                 (with-output-to-file (string-append ini "/mame.ini") | ||||
|                   (lambda _ | ||||
|                     (format #t | ||||
|                             "inipath              $HOME/.mame;~a/ini~@ | ||||
|                             homepath             $HOME/mame~@ | ||||
|                             rompath              $HOME/mame/roms~@ | ||||
|                             samplepath           $HOME/mame/samples;~a/samples~@ | ||||
|  | @ -1808,12 +1805,12 @@ This is a part of the TiLP project.") | |||
|                             state_directory      $HOME/.mame/sta~@ | ||||
|                             diff_directory       $HOME/.mame/diff~@ | ||||
|                             comment_directory    $HOME/.mame/comments~%" | ||||
|                            share share share share share share share share | ||||
|                            share))) | ||||
|                (with-output-to-file (string-append ini "/ui.ini") | ||||
|                  (lambda _ | ||||
|                    (format #t | ||||
|                            "historypath          $HOME/mame/history~@ | ||||
|                             share share share share share share share share | ||||
|                             share))) | ||||
|                 (with-output-to-file (string-append ini "/ui.ini") | ||||
|                   (lambda _ | ||||
|                     (format #t | ||||
|                             "historypath          $HOME/mame/history~@ | ||||
|                             categorypath         $HOME/mame/folders~@ | ||||
|                             cabinets_directory   $HOME/mame/cabinets~@ | ||||
|                             cpanels_directory    $HOME/mame/cpanel~@ | ||||
|  | @ -1833,16 +1830,15 @@ This is a part of the TiLP project.") | |||
|                             icons_directory      $HOME/mame/icons~@ | ||||
|                             covers_directory     $HOME/mame/covers~@ | ||||
|                             ui_path              $HOME/.mame/ui~%")))))) | ||||
|          (add-after 'install 'install-desktop-file | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out")) | ||||
|                     (desktop (string-append out "/share/applications")) | ||||
|                     (executable (string-append out "/bin/mame"))) | ||||
|                (mkdir-p desktop) | ||||
|                (with-output-to-file (string-append desktop "/mame.desktop") | ||||
|                  (lambda _ | ||||
|                    (format #t | ||||
|                            "[Desktop Entry]~@ | ||||
|           (add-after 'install 'install-desktop-file | ||||
|             (lambda _ | ||||
|               (let ((desktop (string-append #$output "/share/applications")) | ||||
|                     (executable (string-append #$output "/bin/mame"))) | ||||
|                 (mkdir-p desktop) | ||||
|                 (with-output-to-file (string-append desktop "/mame.desktop") | ||||
|                   (lambda _ | ||||
|                     (format #t | ||||
|                             "[Desktop Entry]~@ | ||||
|                            Name=mame~@ | ||||
|                            Comment=Multi-purpose emulation framework~@ | ||||
|                            Exec=~a~@ | ||||
|  | @ -1851,7 +1847,7 @@ This is a part of the TiLP project.") | |||
|                            Type=Application~@ | ||||
|                            Categories=Game;Emulator;~@ | ||||
|                            Keywords=Game;Emulator;Arcade;~%" | ||||
|                            executable))))))))) | ||||
|                             executable))))))))) | ||||
|     (native-inputs | ||||
|      (list pkg-config | ||||
|            python-sphinx | ||||
|  | @ -1907,51 +1903,45 @@ functions.  The source code to MAME serves as this documentation.") | |||
|          "1qc01a62p65qb6mwjfmxqsd6n3rglsfwrjhsp25nr7q54107n55l")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #f                      ; No tests. | ||||
|        #:configure-flags (list | ||||
|                           (string-append "-DMAME_BIN=\"" | ||||
|                                          (assoc-ref %build-inputs "mame") | ||||
|                                          "/bin/mame\"") | ||||
|                           (string-append "-DAPP_RES=\"" | ||||
|                                          (assoc-ref %outputs "out") | ||||
|                                          "/share/gnome-arcade/\"")) | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-before 'build 'fix-paths | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let ((out (assoc-ref outputs "out"))) | ||||
|                (pk 'cwd (getcwd)) | ||||
|                (substitute* "../source/src/config.c" | ||||
|                  (("/usr/share") (string-append out "/share")))) | ||||
|              #t)) | ||||
|          (replace 'install | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out")) | ||||
|                     (bin (string-append out "/bin")) | ||||
|                     (rom (string-append out "/share/gnome-arcade/data/rom")) | ||||
|                     (tile (string-append out "/share/gnome-arcade/data/tile"))) | ||||
|                (mkdir-p bin) | ||||
|                (install-file "../gnome-arcade" bin) | ||||
|                (copy-recursively "../source/res" | ||||
|                                  (string-append out "/share/gnome-arcade/res")) | ||||
|                (mkdir-p rom) | ||||
|                (install-file "../source/data/rom/ROM.TXT" rom) | ||||
|                (mkdir-p tile) | ||||
|                (install-file "../source/data/tile/TILE.TXT" tile)) | ||||
|              #t))))) | ||||
|      (list | ||||
|       #:tests? #f                       ; No tests. | ||||
|       #:configure-flags | ||||
|       #~(list | ||||
|          (string-append "-DMAME_BIN=\"" | ||||
|                         #$(this-package-input "mame") | ||||
|                         "/bin/mame\"") | ||||
|          (string-append "-DAPP_RES=\"" #$output "/share/gnome-arcade/\"")) | ||||
|       #:phases | ||||
|       #~(modify-phases %standard-phases | ||||
|           (add-before 'build 'fix-paths | ||||
|             (lambda _ | ||||
|               (substitute* "../source/src/config.c" | ||||
|                 (("/usr/share") (string-append #$output "/share"))))) | ||||
|           (replace 'install | ||||
|             (lambda _ | ||||
|               (let ((bin (string-append #$output "/bin")) | ||||
|                     (rom (string-append #$output | ||||
|                                         "/share/gnome-arcade/data/rom")) | ||||
|                     (tile (string-append #$output | ||||
|                                          "/share/gnome-arcade/data/tile"))) | ||||
|                 (mkdir-p bin) | ||||
|                 (install-file "../gnome-arcade" bin) | ||||
|                 (copy-recursively "../source/res" | ||||
|                                   (string-append #$output | ||||
|                                                  "/share/gnome-arcade/res")) | ||||
|                 (mkdir-p rom) | ||||
|                 (install-file "../source/data/rom/ROM.TXT" rom) | ||||
|                 (mkdir-p tile) | ||||
|                 (install-file "../source/data/tile/TILE.TXT" tile))))))) | ||||
|     (native-inputs | ||||
|      (list pkg-config)) | ||||
|     (inputs | ||||
|      `(("mame" ,mame) | ||||
|        ("gtk" ,gtk+) | ||||
|        ("libevdev" ,libevdev) | ||||
|        ("libvlc" ,vlc) | ||||
|        ("libarchive" ,libarchive))) | ||||
|      (list gtk+ libarchive libevdev mame vlc)) | ||||
|     (home-page "https://github.com/strippato/gnome-arcade") | ||||
|     (synopsis "Minimal MAME frontend") | ||||
|     (description | ||||
|      "A minimal GTK+ frontend for MAME, the multi-purpose arcade and console | ||||
| emulator.") | ||||
|      "Gnome Arcade is a minimal GTK+ frontend for MAME, the multi-purpose | ||||
| arcade and console emulator.") | ||||
|     (license license:gpl3+))) | ||||
| 
 | ||||
| (define-public pcsxr | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net> | ||||
| ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> | ||||
| ;;; Copyright © 2016, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2016, 2018, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2016 David Thompson <davet@gnu.org> | ||||
| ;;; Copyright © 2016, 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; Copyright © 2016, 2017, 2018 Theodoros Foradis <theodoros@foradis.org> | ||||
|  | @ -25,8 +25,9 @@ | |||
| ;;; Copyright © 2021 Gerd Heber <gerd.heber@gmail.com> | ||||
| ;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net> | ||||
| ;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru> | ||||
| ;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com> | ||||
| ;;; Copyright © 2021, 2022 Petr Hodina <phodina@protonmail.com> | ||||
| ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com> | ||||
| ;;; Copyright © 2022 Evgeny Pisemsky <evgeny@pisemsky.com> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -64,6 +65,7 @@ | |||
|   #:use-module (gnu packages algebra) | ||||
|   #:use-module (gnu packages autotools) | ||||
|   #:use-module (gnu packages base) | ||||
|   #:use-module (gnu packages bash) | ||||
|   #:use-module (gnu packages bdw-gc) | ||||
|   #:use-module (gnu packages bison) | ||||
|   #:use-module (gnu packages boost) | ||||
|  | @ -118,6 +120,7 @@ | |||
|   #:use-module (gnu packages python-xyz) | ||||
|   #:use-module (gnu packages qt) | ||||
|   #:use-module (gnu packages readline) | ||||
|   #:use-module (gnu packages ruby) | ||||
|   #:use-module (gnu packages serialization) | ||||
|   #:use-module (gnu packages sqlite) | ||||
|   #:use-module (gnu packages swig) | ||||
|  | @ -147,7 +150,9 @@ | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "08cl4935c9vznz9qdw1zgd86rn7hl64zpfayxl07x21bhf53pn24")))) | ||||
|                 "08cl4935c9vznz9qdw1zgd86rn7hl64zpfayxl07x21bhf53pn24")) | ||||
|               (patches | ||||
|                (search-patches "librecad-support-for-boost-1.76.patch")))) | ||||
|     (build-system qt-build-system) | ||||
|     (arguments | ||||
|      '(#:test-target "check" | ||||
|  | @ -925,28 +930,28 @@ Emacs).") | |||
| (define-public kicad | ||||
|   (package | ||||
|     (name "kicad") | ||||
|     (version "5.1.12") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|              (url "https://gitlab.com/kicad/code/kicad.git") | ||||
|              (commit version))) | ||||
|        (sha256 | ||||
|         (base32 "0kgikchqxds3mp71nkg307mr4c1dgv8akbmksz4w9x8jg4i1mfqq")) | ||||
|        (file-name (git-file-name name version)))) | ||||
|     (version "6.0.1") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url "https://gitlab.com/kicad/code/kicad.git") | ||||
|                     (commit version))) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1vpcbhhw8844hm6vpk3kk405wak531pvcvcpc66z0b48iprk3imr")) | ||||
|               (file-name (git-file-name name version)))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:out-of-source? #t | ||||
|        #:tests? #f                      ; no tests | ||||
|        #:tests? #f ;no tests | ||||
|        #:build-type "Release" | ||||
|        #:configure-flags | ||||
|        ,#~(list | ||||
|            "-DKICAD_SCRIPTING_PYTHON3=ON" | ||||
|            "-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON" | ||||
|            "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE" | ||||
|            (string-append "-DOCC_INCLUDE_DIR=" | ||||
|                           #$(this-package-input "opencascade-occt") "/include/opencascade")) | ||||
|        ,#~(list "-DKICAD_SCRIPTING_PYTHON3=ON" | ||||
|                 (string-append "-DOCC_INCLUDE_DIR=" | ||||
|                                #$(this-package-input "opencascade-occt") | ||||
|                                "/include/opencascade") | ||||
|                 "-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON" | ||||
|                 "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE") | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'fix-ngspice-detection | ||||
|  | @ -966,102 +971,68 @@ Emacs).") | |||
|              (substitute* "common/lib_tree_model.cpp" | ||||
|                (("#include <eda_pattern_match.h>" all) | ||||
|                 (string-append "#include <algorithm>\n" all))))) | ||||
|          (add-after 'install 'install-translations | ||||
|            (lambda* (#:key inputs outputs #:allow-other-keys) | ||||
|              (copy-recursively (assoc-ref inputs "kicad-i18n") | ||||
|                                (assoc-ref outputs "out")) | ||||
|              #t)) | ||||
|          (add-after 'install 'wrap-program | ||||
|            ;; Ensure correct Python at runtime. | ||||
|            (lambda* (#:key inputs outputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out")) | ||||
|                     (python (assoc-ref inputs "python")) | ||||
|                     (file (string-append out "/bin/kicad")) | ||||
|                     (path (string-append | ||||
|                            out | ||||
|                            "/lib/python" | ||||
|                            ,(version-major+minor | ||||
|                              (package-version python)) | ||||
|                            "/site-packages:" | ||||
|                            (getenv "GUIX_PYTHONPATH")))) | ||||
|                     (path (string-append out "/lib/python" | ||||
|                                          ,(version-major+minor (package-version | ||||
|                                                                 python)) | ||||
|                                          "/site-packages:" | ||||
|                                          (getenv "GUIX_PYTHONPATH")))) | ||||
|                (wrap-program file | ||||
|                  `("GUIX_PYTHONPATH" ":" prefix (,path)) | ||||
|                  `("GUIX_PYTHONPATH" ":" prefix | ||||
|                    (,path)) | ||||
|                  `("PATH" ":" prefix | ||||
|                    (,(string-append python "/bin:"))))) | ||||
|              #t))))) | ||||
|                    (,(string-append python "/bin:")))))))))) | ||||
|     (native-search-paths | ||||
|      (list (search-path-specification | ||||
|             (variable "KICAD")          ; to find kicad-doc | ||||
|             (variable "KICAD") ;to find kicad-doc | ||||
|             (files '(""))) | ||||
|            (search-path-specification | ||||
|             (variable "KICAD_TEMPLATE_DIR") | ||||
|             (files '("share/kicad/template"))) | ||||
|            (search-path-specification | ||||
|             (variable "KICAD_SYMBOL_DIR") ; symbol path | ||||
|             (variable "KICAD_SYMBOL_DIR") ;symbol path | ||||
|             (files '("share/kicad/library"))) | ||||
|            (search-path-specification | ||||
|             (variable "KISYSMOD")       ; footprint path | ||||
|             (variable "KISYSMOD") ;footprint path | ||||
|             (files '("share/kicad/modules"))) | ||||
|            (search-path-specification | ||||
|             (variable "KISYS3DMOD")     ; 3D model path | ||||
|             (variable "KISYS3DMOD") ;3D model path | ||||
|             (files '("share/kicad/modules/packages3d"))))) | ||||
|     (native-inputs | ||||
|      `(("boost" ,boost) | ||||
|        ("desktop-file-utils" ,desktop-file-utils) | ||||
|        ("gettext" ,gettext-minimal) | ||||
|        ("kicad-i18n" ,kicad-i18n) | ||||
|        ("pkg-config" ,pkg-config) | ||||
|        ("swig" ,swig) | ||||
|        ("zlib" ,zlib))) | ||||
|     (inputs | ||||
|      `(("cairo" ,cairo) | ||||
|        ("curl" ,curl) | ||||
|        ("glew" ,glew) | ||||
|        ("glm" ,glm) | ||||
|        ("hicolor-icon-theme" ,hicolor-icon-theme) | ||||
|        ("libngspice" ,libngspice) | ||||
|        ("libsm" ,libsm) | ||||
|        ("mesa" ,mesa) | ||||
|        ("opencascade-occt" ,opencascade-occt) | ||||
|        ("openssl" ,openssl) | ||||
|        ("python" ,python-wrapper) | ||||
|        ("wxwidgets" ,wxwidgets) | ||||
|        ("wxpython" ,python-wxpython))) | ||||
|     (native-inputs (list boost | ||||
|                          desktop-file-utils | ||||
|                          gettext-minimal | ||||
|                          pkg-config | ||||
|                          swig | ||||
|                          zlib)) | ||||
|     (inputs (list bash-minimal | ||||
|                   cairo | ||||
|                   curl | ||||
|                   glew | ||||
|                   glm | ||||
|                   hicolor-icon-theme | ||||
|                   libngspice | ||||
|                   libsm | ||||
|                   mesa | ||||
|                   opencascade-occt | ||||
|                   openssl | ||||
|                   python-wrapper | ||||
|                   gtk+ | ||||
|                   wxwidgets | ||||
|                   python-wxpython)) | ||||
|     (home-page "https://www.kicad.org/") | ||||
|     (synopsis "Electronics Design Automation Suite") | ||||
|     (description "Kicad is a program for the formation of printed circuit | ||||
|     (description | ||||
|      "Kicad is a program for the formation of printed circuit | ||||
| boards and electrical circuits.  The software has a number of programs that | ||||
| perform specific functions, for example, pcbnew (Editing PCB), eeschema (editing | ||||
| electrical diagrams), gerbview (viewing Gerber files) and others.") | ||||
|     (license license:gpl3+))) | ||||
| 
 | ||||
| (define kicad-i18n | ||||
|   (package | ||||
|     (name "kicad-i18n") | ||||
|     (version (package-version kicad)) | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url "https://gitlab.com/kicad/code/kicad-i18n.git") | ||||
|                     (commit version))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0y51l0r62cnxkvpc21732p3cx7pjvaqjih8193502hlv9kv1j9p6")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (delete 'build) | ||||
|          (delete 'check)))) | ||||
|     (native-inputs | ||||
|      `(("gettext" ,gettext-minimal))) | ||||
|     (home-page (package-home-page kicad)) | ||||
|     (synopsis "KiCad GUI translations") | ||||
|     (description "This package contains the po files that are used for the GUI | ||||
| translations for KiCad.") | ||||
|     (license license:gpl3+))) | ||||
| 
 | ||||
| (define-public kicad-doc | ||||
|   (package | ||||
|     (name "kicad-doc") | ||||
|  | @ -1074,23 +1045,23 @@ translations for KiCad.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "026cz4zm903i75yhdvzha2nsnk4c0w07q3gd3xw3jmsmn18imgm3")))) | ||||
|                 "0zaafa9ckvdgsim6nhp3flj4r2fzzmwn054lc3iijwgga82qy7il")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:configure-flags (list "-DBUILD_FORMATS=html") | ||||
|        #:tests? #f                      ; no test suite | ||||
|        #:tests? #f ;no test suite | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (delete 'build)))) | ||||
|     (native-inputs | ||||
|      `(("asciidoc" ,asciidoc) | ||||
|        ("gettext" ,gettext-minimal) | ||||
|        ("git" ,git-minimal) | ||||
|        ("perl" ,perl) | ||||
|        ("perl-unicode-linebreak" ,perl-unicode-linebreak) | ||||
|        ("perl-yaml-tiny" ,perl-yaml-tiny) | ||||
|        ("po4a" ,po4a) | ||||
|        ("source-highlight" ,source-highlight))) | ||||
|     (native-inputs (list asciidoc | ||||
|                          gettext-minimal | ||||
|                          git-minimal | ||||
|                          perl | ||||
|                          perl-unicode-linebreak | ||||
|                          perl-yaml-tiny | ||||
|                          po4a | ||||
|                          ruby-asciidoctor | ||||
|                          source-highlight)) | ||||
|     (home-page "https://kicad.org") | ||||
|     (synopsis "KiCad official documentation") | ||||
|     (description "This repository contains the official KiCad documentation.") | ||||
|  | @ -1108,7 +1079,7 @@ translations for KiCad.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1zdajim409570xzis53kmrbdcf7000v2vmc90f49h214lrx2zhr2")))) | ||||
|                 "1azjx1bmxaz8bniyw75lq60mc8hvay00jn9qdc2zp7isy3c9ibp0")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #f))                    ; no tests exist | ||||
|  | @ -1137,7 +1108,7 @@ libraries.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0qpii55dgv2gxqg1qq0dngdnbb9din790qi5qv0l6qqrzx843h5s")))) | ||||
|                 "0mv9xs0mmmfn0yhzx1v55r5app13ckagb16249rabyiz3v5crdpb")))) | ||||
|     (synopsis "Official KiCad footprint libraries") | ||||
|     (description "This package contains the official KiCad footprint libraries."))) | ||||
| 
 | ||||
|  | @ -1154,7 +1125,7 @@ libraries.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "12w7m5nbk9kcnlnlg4sk1sd7xgb9i2kxfi0jcbd0phs89qyl7wjr")))) | ||||
|                 "0vwcbzq42hzjl4f0zjaswmiff1x59hv64g5n00mx1gl0gwngnyla")))) | ||||
|     (synopsis "Official KiCad 3D model libraries") | ||||
|     (description "This package contains the official KiCad 3D model libraries."))) | ||||
| 
 | ||||
|  | @ -1171,7 +1142,7 @@ libraries.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1fbhn1l3j2rwc29aida9b408wif55i23bp9ddcs7dvf83smjm05g")))) | ||||
|                 "13h9ly6amiwm7zkwa2fd9730kh295ls8j95fszlfjp9rczv2yyzm")))) | ||||
|     (synopsis "Official KiCad project and worksheet templates") | ||||
|     (description "This package contains the official KiCad project and | ||||
| worksheet templates."))) | ||||
|  | @ -2811,13 +2782,13 @@ GUI.") | |||
| (define-public poke | ||||
|   (package | ||||
|     (name "poke") | ||||
|     (version "1.4") | ||||
|     (version "2.1") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "mirror://gnu/poke/poke-" version | ||||
|                                   ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 "095a0qal1fwnqxnal0xb4mp0n4zy97j3ww1j04ij3jb0jpr4s1ff")) | ||||
|                (base32 "0w168jcjahl3jawkhnh0dc10mcw4nwv4yawwc8xhqm5w3dn8wlnd")) | ||||
|               (modules '((guix build utils))) | ||||
|               (snippet | ||||
|                '(begin | ||||
|  | @ -3270,3 +3241,24 @@ G-code instructions for FFF printers or PNG layers for mSLA 3D printers.") | |||
| 
 | ||||
|     ;; Mark as tunable to take advantage of SIMD code in Eigen and in libigl. | ||||
|     (properties '((tunable? . #t))))) | ||||
| 
 | ||||
| (define-public wireviz | ||||
|   (package | ||||
|     (name "wireviz") | ||||
|     (version "0.3.2") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (pypi-uri "wireviz" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1dgnlxxlna2m1fh0ybivw0psym0sa5cqsl72mjl79bwfspnif61h")))) | ||||
|     (build-system python-build-system) | ||||
|     (propagated-inputs (list python-graphviz python-pillow python-pyyaml)) | ||||
|     (home-page "https://github.com/formatc1702/WireViz") | ||||
|     (synopsis "Easily document cables and wiring harnesses") | ||||
|     (description | ||||
|      "WireViz is a tool for easily documenting cables, wiring harnesses and | ||||
| connector pinouts.  It takes plain text, YAML-formatted files as input and | ||||
| produces beautiful graphical output thanks to GraphViz.  It handles automatic | ||||
| BOM creation and has a lot of extra features.") | ||||
|     (license license:gpl3))) | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2015 Tomáš Čech <sleep_walker@suse.cz> | ||||
| ;;; Copyright © 2015 Daniel Pimentel <d4n1@member.fsf.org> | ||||
| ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2017 Nikita <nikita@n0.is> | ||||
| ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> | ||||
| ;;; Copyright © 2018 Timo Eisenmann <eisenmann@fn.de> | ||||
|  | @ -48,6 +48,7 @@ | |||
|   #:use-module (gnu packages gnome) | ||||
|   #:use-module (gnu packages gstreamer) | ||||
|   #:use-module (gnu packages gtk) | ||||
|   #:use-module (gnu packages hardware) | ||||
|   #:use-module (gnu packages ibus) | ||||
|   #:use-module (gnu packages image) | ||||
|   #:use-module (gnu packages libunwind) | ||||
|  | @ -70,7 +71,7 @@ | |||
| (define-public efl | ||||
|   (package | ||||
|     (name "efl") | ||||
|     (version "1.26.1") | ||||
|     (version "1.26.2") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append | ||||
|  | @ -78,7 +79,7 @@ | |||
|                     version ".tar.xz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0hm6i1f2g4mwj726rc6na38xhys1plbv9swrlc9hrpa87mz6gac6")))) | ||||
|                 "071h0pscbd8g341yy5rz9mk1xn8yhryldhl6mmr1y6lafaycyy99")))) | ||||
|     (build-system meson-build-system) | ||||
|     (native-inputs | ||||
|      `(("check" ,check) | ||||
|  | @ -93,11 +94,7 @@ | |||
|        ("ibus" ,ibus) | ||||
|        ("mesa" ,mesa) | ||||
|        ("libraw" ,libraw) | ||||
|        ;; Only enable the optional SVG support on x86_64, as this is the only | ||||
|        ;; architecture where librsvg can be built. | ||||
|        ,@(if (target-x86-64?) | ||||
|              `(("librsvg" ,librsvg)) | ||||
|              '()) | ||||
|        ("librsvg" ,(librsvg-for-system)) | ||||
|        ("libspectre" ,libspectre) | ||||
|        ("libtiff" ,libtiff) | ||||
|        ("libxau" ,libxau) | ||||
|  | @ -151,11 +148,6 @@ | |||
|          "-Dmount-path=/run/setuid-programs/mount" | ||||
|          "-Dunmount-path=/run/setuid-programs/umount" | ||||
|          "-Dnetwork-backend=connman" | ||||
|          ;; Add 'rsvg' to the default list (json, avif, heif) of disabled loaders | ||||
|          ;; unless librsvg is available. | ||||
|          ,,@(if (target-x86-64?) | ||||
|                 '() | ||||
|                 (list "-Devas-loaders-disabler=json,avif,heif,rsvg")) | ||||
|          ;; For Wayland. | ||||
|          "-Dwl=true" | ||||
|          "-Ddrm=true") | ||||
|  | @ -297,7 +289,7 @@ Libraries with some extra bells and whistles.") | |||
| (define-public enlightenment | ||||
|   (package | ||||
|     (name "enlightenment") | ||||
|     (version "0.25.1") | ||||
|     (version "0.25.3") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri | ||||
|  | @ -305,7 +297,7 @@ Libraries with some extra bells and whistles.") | |||
|                               "enlightenment/enlightenment-" version ".tar.xz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0i1424vsc929h36hx04646pbrjiya6nc1nqr6s15xwvfv7imzw1c")) | ||||
|                 "1xngwixp0cckfq3jhrdmmk6zj67125amr7g6xwc6l89pnpmlkz9p")) | ||||
|               (patches (search-patches "enlightenment-fix-setuid-path.patch")))) | ||||
|     (build-system meson-build-system) | ||||
|     (arguments | ||||
|  | @ -322,6 +314,7 @@ Libraries with some extra bells and whistles.") | |||
|                    (setxkbmap (assoc-ref inputs "setxkbmap")) | ||||
|                    (libc      (assoc-ref inputs "libc")) | ||||
|                    (bc        (assoc-ref inputs "bc")) | ||||
|                    (ddcutil   (assoc-ref inputs "ddcutil")) | ||||
|                    (efl       (assoc-ref inputs "efl"))) | ||||
|                ;; We need to patch the path to 'base.lst' to be able | ||||
|                ;; to switch the keyboard layout in E. | ||||
|  | @ -347,6 +340,9 @@ Libraries with some extra bells and whistles.") | |||
|                                  "/run/current-system/profile/sbin"))) | ||||
|                (substitute* "src/modules/everything/evry_plug_calc.c" | ||||
|                  (("bc -l") (string-append bc "/bin/bc -l"))) | ||||
|                (substitute* "src/bin/system/e_system_ddc.c" | ||||
|                  (("libddcutil\\.so\\.?" libddcutil) | ||||
|                   (string-append ddcutil "/lib/" libddcutil))) | ||||
|                (substitute* "data/etc/meson.build" | ||||
|                  (("/bin/mount") "/run/setuid-programs/mount") | ||||
|                  (("/bin/umount") "/run/setuid-programs/umount") | ||||
|  | @ -361,6 +357,7 @@ Libraries with some extra bells and whistles.") | |||
|        ("bc" ,bc) | ||||
|        ("bluez" ,bluez) | ||||
|        ("dbus" ,dbus) | ||||
|        ("ddcutil" ,ddcutil) | ||||
|        ("freetype" ,freetype) | ||||
|        ("libdrm" ,libdrm) | ||||
|        ("libexif" ,libexif) | ||||
|  |  | |||
|  | @ -41,7 +41,7 @@ | |||
| (define-public erlang | ||||
|   (package | ||||
|     (name "erlang") | ||||
|     (version "24.0.5") | ||||
|     (version "24.2.1") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               ;; The tarball from http://erlang.org/download contains many | ||||
|  | @ -53,7 +53,7 @@ | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0f8zr2jxr0v4zcd98zqx99zxdn768vjpzwxsbsd6ss3if405sq2a")) | ||||
|                 "0glbdh4la0k4ikygj6rssvlbxbzybjn0bpp276wq170d6rgahlf6")) | ||||
|               (patches (search-patches "erlang-man-path.patch")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (native-inputs | ||||
|  | @ -67,13 +67,11 @@ | |||
|                                (version-major+minor version) ".tar.gz")) | ||||
|            (sha256 | ||||
|             (base32 | ||||
|              "1c9ccp93pmm54mmvpiyrmj8v00pq11a60c4xv220k97i965zkwsg")))))) | ||||
|              "0k2zghkkqmf8g66hfb6zff2b7q5sl3r9y6lmv56ky03wzh9lpbjn")))))) | ||||
|     (inputs | ||||
|      (list ncurses openssl wxwidgets)) | ||||
|     (propagated-inputs | ||||
|      `(("fontconfig" ,fontconfig) | ||||
|        ("glu" ,glu) | ||||
|        ("mesa" ,mesa))) | ||||
|      (list fontconfig glu mesa)) | ||||
|     (arguments | ||||
|      `(#:test-target "release_tests" | ||||
|        #:configure-flags | ||||
|  | @ -85,7 +83,7 @@ | |||
|              "--enable-threads" | ||||
|              "--enable-wx" | ||||
|              (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl"))) | ||||
|        #:modules ((srfi srfi-19) ; make-time, et cetera. | ||||
|        #:modules ((srfi srfi-19)        ; make-time, et cetera. | ||||
|                   (guix build utils) | ||||
|                   (guix build gnu-build-system)) | ||||
|        #:phases | ||||
|  | @ -127,59 +125,46 @@ | |||
|                (substitute* "lib/snmp/src/compile/snmpc_mib_to_hrl.erl" | ||||
|                  (("\\{H,Mi,S\\} = time\\(\\),") | ||||
|                   (date->string source-date-epoch | ||||
|                                 "{H,Mi,S} = {~H,~M,~S},"))) | ||||
|                #t))) | ||||
|                                 "{H,Mi,S} = {~H,~M,~S},")))))) | ||||
|          (add-after 'unpack 'patch-/bin/sh | ||||
|            (lambda _ | ||||
|              (substitute* "erts/etc/unix/run_erl.c" | ||||
|                (("sh = \"/bin/sh\";") | ||||
|                 (string-append "sh = \"" | ||||
|                                (which "sh") | ||||
|                                "\";"))) | ||||
| 
 | ||||
|              (substitute* "erts/emulator/sys/unix/sys_drivers.c" | ||||
|                (("SHELL \"/bin/sh\"") | ||||
|                 (string-append "SHELL \"" | ||||
|                                (which "sh") | ||||
|                                "\""))) | ||||
|              (substitute* "erts/emulator/sys/unix/erl_child_setup.c" | ||||
|                (("SHELL \"/bin/sh\"") | ||||
|                 (string-append "SHELL \"" | ||||
|                                (which "sh") | ||||
|                                "\""))) | ||||
| 
 | ||||
|              (substitute* "lib/kernel/src/os.erl" | ||||
|                (("/bin/sh") (which "sh"))) | ||||
| 
 | ||||
|              #t)) | ||||
|            (lambda* (#:key inputs #:allow-other-keys) | ||||
|              (let ((sh (search-input-file inputs "/bin/sh"))) | ||||
|                (substitute* "erts/etc/unix/run_erl.c" | ||||
|                  (("sh = \"/bin/sh\";") | ||||
|                   (string-append "sh = \"" sh "\";"))) | ||||
|                (substitute* "erts/emulator/sys/unix/sys_drivers.c" | ||||
|                  (("SHELL \"/bin/sh\"") | ||||
|                   (string-append "SHELL \"" sh "\""))) | ||||
|                (substitute* "erts/emulator/sys/unix/erl_child_setup.c" | ||||
|                  (("SHELL \"/bin/sh\"") | ||||
|                   (string-append "SHELL \"" sh "\""))) | ||||
|                (substitute* "lib/kernel/src/os.erl" | ||||
|                  (("/bin/sh") sh))))) | ||||
|          (add-after 'patch-source-shebangs 'patch-source-env | ||||
|            (lambda _ | ||||
|              (let ((escripts | ||||
|                     (append | ||||
|                      (find-files "." "\\.escript") | ||||
|                      (find-files "lib/stdlib/test/escript_SUITE_data/") | ||||
|                      '("erts/lib_src/utils/make_atomics_api" | ||||
|                        "erts/preloaded/src/add_abstract_code" | ||||
|                        "lib/diameter/bin/diameterc" | ||||
|                        "lib/reltool/examples/display_args" | ||||
|                        "lib/reltool/examples/mnesia_core_dump_viewer" | ||||
|                        "lib/snmp/src/compile/snmpc.src" | ||||
|                        "make/verify_runtime_dependencies" | ||||
|                        "make/emd2exml.in")))) | ||||
|                         (find-files "." "\\.escript") | ||||
|                         (find-files "lib/stdlib/test/escript_SUITE_data/") | ||||
|                       '("erts/lib_src/utils/make_atomics_api" | ||||
|                         "erts/preloaded/src/add_abstract_code" | ||||
|                         "lib/diameter/bin/diameterc" | ||||
|                         "lib/reltool/examples/display_args" | ||||
|                         "lib/reltool/examples/mnesia_core_dump_viewer" | ||||
|                         "lib/snmp/src/compile/snmpc.src" | ||||
|                         "make/verify_runtime_dependencies" | ||||
|                         "make/emd2exml.in")))) | ||||
|                (substitute* escripts | ||||
|                  (("/usr/bin/env") (which "env"))) | ||||
|                #t))) | ||||
|                  (("/usr/bin/env") (which "env")))))) | ||||
|          (add-before 'configure 'set-erl-top | ||||
|            (lambda _ | ||||
|              (setenv "ERL_TOP" (getcwd)) | ||||
|              #t)) | ||||
|              (setenv "ERL_TOP" (getcwd)))) | ||||
|          (add-after 'install 'patch-erl | ||||
|            ;; This only works after install. | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out"))) | ||||
|              (let ((out (assoc-ref outputs "out"))) | ||||
|                (substitute* (string-append out "/bin/erl") | ||||
|                  (("sed") (which "sed"))) | ||||
|                #t))) | ||||
|                  (("sed") (which "sed")))))) | ||||
|          (add-after 'install 'install-doc | ||||
|            (lambda* (#:key inputs outputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out")) | ||||
|  | @ -187,8 +172,7 @@ | |||
|                     (share (string-append out "/share/"))) | ||||
|                (mkdir-p share) | ||||
|                (with-directory-excursion share | ||||
|                  (invoke "tar" "xvf" manpages)) | ||||
|                #t)))))) | ||||
|                  (invoke "tar" "xvf" manpages)))))))) | ||||
|     (home-page "https://www.erlang.org/") | ||||
|     (synopsis "The Erlang programming language") | ||||
|     (description | ||||
|  |  | |||
|  | @ -284,7 +284,9 @@ for Qt based application.") | |||
|         (base32 "11l76gpcfm0x1f6x5m9s37q7ffa7xcsdydlzjdz2s6kk45fvvq89")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:phases | ||||
|      `(#:configure-flags | ||||
|        '("-DUSE_WEBKIT=off") | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-before 'configure 'split-outputs | ||||
|            ;; Build with GUI supports requires Qt and increase package closure | ||||
|  | @ -305,7 +307,9 @@ for Qt based application.") | |||
|        ("opencc" ,opencc) | ||||
|        ("qtbase" ,qtbase-5) | ||||
|        ("fcitx5-qt" ,fcitx5-qt) | ||||
|        ("qtwebkit" ,qtwebkit))) | ||||
|        ("qtdeclarative" ,qtdeclarative) | ||||
|        ("qtwebchannel" ,qtwebchannel) | ||||
|        ("qtwebengine" ,qtwebengine))) | ||||
|     (native-inputs | ||||
|      (list extra-cmake-modules pkg-config)) | ||||
|     (outputs '("out" "gui")) | ||||
|  |  | |||
|  | @ -248,7 +248,7 @@ broadband modem as found, for example, on PinePhone.") | |||
|                                                           (%current-system))) | ||||
|                                      (string-prefix? "riscv64" arch)) | ||||
|                                 `("CROSS_COMPILE=riscv64-linux-gnu-") | ||||
|                                 '()) | ||||
|                                 `("CC=gcc")) | ||||
|                           "FW_PAYLOAD=n" | ||||
|                           "V=1") | ||||
|        #:phases | ||||
|  |  | |||
|  | @ -1995,7 +1995,7 @@ This package provides the TrueType fonts.") | |||
| (define-public font-jetbrains-mono | ||||
|   (package | ||||
|     (name "font-jetbrains-mono") | ||||
|     (version "2.221") | ||||
|     (version "2.242") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -2003,7 +2003,7 @@ This package provides the TrueType fonts.") | |||
|         (string-append "https://github.com/JetBrains/JetBrainsMono/releases/" | ||||
|                        "download/v" version "/JetBrainsMono-" version ".zip")) | ||||
|        (sha256 | ||||
|         (base32 "1acrgv2q9vxviirpi01xy67pkkswyssw4dn5pgyvrnjxr85cgjrg")))) | ||||
|         (base32 "17qs985v38x3rcg3v4av3qynwr4gvixrj50vjzy7zkkny575ncaf")))) | ||||
|     (build-system font-build-system) | ||||
|     (arguments | ||||
|      `(#:phases | ||||
|  |  | |||
|  | @ -898,6 +898,7 @@ generated list of fallback fonts are checked.") | |||
|       ("glib" ,glib "bin") | ||||
|       ("gobject-introspection" ,gobject-introspection) | ||||
|       ("pkg-config" ,pkg-config) | ||||
|       ("python-wrapper" ,python-wrapper) | ||||
|       ("vala" ,vala-0.52) | ||||
|       ("yelp-tools" ,yelp-tools))) | ||||
|    (inputs | ||||
|  |  | |||
|  | @ -1046,7 +1046,7 @@ protocol either in Wayland core, or some other protocol in wayland-protocols.") | |||
| (define-public waylandpp | ||||
|   (package | ||||
|     (name "waylandpp") | ||||
|     (version "0.2.8") | ||||
|     (version "0.2.9") | ||||
|     (home-page "https://github.com/NilsBrause/waylandpp") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|  | @ -1054,7 +1054,7 @@ protocol either in Wayland core, or some other protocol in wayland-protocols.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1kxiqab48p0n97pwg8c2zx56wqq32m3rcq7qd2pjj33ipcanb3qq")))) | ||||
|                 "0z4m30r609as3kpcgipivddr98y7h529r7ldn9ba4snhk341mfvk")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #f))                    ; no tests | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| ;;; Copyright © 2013 John Darrington <jmd@gnu.org> | ||||
| ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> | ||||
| ;;; Copyright © 2014, 2015 David Thompson <dthompson2@worcester.edu> | ||||
| ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Eric Bavier <bavier@posteo.net> | ||||
| ;;; Copyright © 2014-2022 Eric Bavier <bavier@posteo.net> | ||||
| ;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com> | ||||
| ;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net> | ||||
| ;;; Copyright © 2014, 2015, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org> | ||||
|  | @ -68,6 +68,7 @@ | |||
| ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot> | ||||
| ;;; Copyright © 2021 Christopher Baines <mail@cbaines.net> | ||||
| ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com> | ||||
| ;;; Copyright © 2022 Yovan Naumovski <yovan@gorski.stream> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -2360,100 +2361,98 @@ can be explored and changed freely.") | |||
| (define-public seahorse-adventures | ||||
|   (package | ||||
|     (name "seahorse-adventures") | ||||
|     (version "1.3") | ||||
|     (version "1.4") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|              (url "https://github.com/dulsi/seahorse-adventures") | ||||
|              (commit (string-append "release-" version)))) | ||||
|              (commit (string-append "Release-" version)))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "0m53jh2gchzr7rs35hml6lbvc5kb5hp229wlfqa09098b7hhl15a")) | ||||
|         (base32 "1dxysa79cz5mflr2953fyk838h1jwvi1ngn8wlpms0ag35yv21s8")) | ||||
|        (modules '((guix build utils) | ||||
|                   (ice-9 ftw) | ||||
|                   (srfi srfi-1))) | ||||
|        ;; Remove non-free (non-commercial) font. | ||||
|        (snippet | ||||
|         `(begin | ||||
|            (for-each delete-file (find-files "data/fonts" ".")) | ||||
|            #t)))) | ||||
|         #~(begin | ||||
|             (for-each delete-file (find-files "data/fonts" ".")))))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #f                      ;no test | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (delete 'build)                ;pure Python | ||||
|          (replace 'install              ;no install script | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out")) | ||||
|                     (bin (string-append out "/bin")) | ||||
|                     (share (string-append out "/share")) | ||||
|                     (applications (string-append share "/applications")) | ||||
|                     (data (string-append share "/seahorse-adventures"))) | ||||
|                ;; Install data. | ||||
|                (for-each (lambda (f) | ||||
|                            (chmod f #o555) | ||||
|                            (install-file f data)) | ||||
|                          '("leveledit.py" "run_game.py" "tileedit.py")) | ||||
|                (for-each (lambda (dir) | ||||
|                            (let ((target (string-append data "/" dir))) | ||||
|                              (mkdir-p target) | ||||
|                              (copy-recursively dir target))) | ||||
|                          '("data" "lib")) | ||||
|                ;; Create executable. | ||||
|                (mkdir-p bin) | ||||
|                (let ((executable (string-append bin "/seahorse-adventures"))) | ||||
|                  (call-with-output-file executable | ||||
|                    (lambda (p) | ||||
|                      (format p | ||||
|                              "#!~a~@ | ||||
|      (list | ||||
|       #:tests? #f                       ;no test | ||||
|       #:phases | ||||
|       #~(modify-phases %standard-phases | ||||
|           (delete 'build)               ;pure Python | ||||
|           (replace 'install             ;no install script | ||||
|             (lambda* (#:key inputs #:allow-other-keys) | ||||
|               (let* ((bin (string-append #$output "/bin")) | ||||
|                      (share (string-append #$output "/share")) | ||||
|                      (applications (string-append share "/applications")) | ||||
|                      (data (string-append share "/seahorse-adventures"))) | ||||
|                 ;; Install data. | ||||
|                 (for-each (lambda (f) | ||||
|                             (chmod f #o555) | ||||
|                             (install-file f data)) | ||||
|                           '("leveledit.py" "run_game.py" "tileedit.py")) | ||||
|                 (for-each (lambda (dir) | ||||
|                             (let ((target (string-append data "/" dir))) | ||||
|                               (mkdir-p target) | ||||
|                               (copy-recursively dir target))) | ||||
|                           '("data" "lib")) | ||||
|                 ;; Create executable. | ||||
|                 (mkdir-p bin) | ||||
|                 (let ((executable (string-append bin "/seahorse-adventures"))) | ||||
|                   (call-with-output-file executable | ||||
|                     (lambda (p) | ||||
|                       (format p | ||||
|                               "#!~a~@ | ||||
|                               export GUIX_PYTHONPATH=~a:~a~@ | ||||
|                               exec -a \"~a\" ~a \"$@\"~%" | ||||
|                              (which "bash") data (getenv "GUIX_PYTHONPATH") | ||||
|                              (which "python3") | ||||
|                              (string-append data "/run_game.py")))) | ||||
|                  (chmod executable #o555)) | ||||
|                ;; Add desktop file. | ||||
|                (mkdir-p applications) | ||||
|                (make-desktop-entry-file | ||||
|                 (string-append applications "/seahorse-adventures.desktop") | ||||
|                 #:name "Seahorse Adventures" | ||||
|                 #:comment | ||||
|                 '((#f "Help Barbie the seahorse float on bubbles to the moon")) | ||||
|                 #:exec ,name | ||||
|                 #:icon ,name | ||||
|                 #:categories '("Game" "ActionGame") | ||||
|                 #:keywords '("game" "retro" "platform")) | ||||
|                ;; Add icons. | ||||
|                (for-each | ||||
|                 (lambda (size) | ||||
|                   (let ((dir (string-append share "/icons/hicolor/" | ||||
|                                             size "x" size "/apps"))) | ||||
|                     (mkdir-p dir) | ||||
|                     (copy-file | ||||
|                      (string-append "icon" size ".png") | ||||
|                      (string-append dir "/searhorse-adventures.png")))) | ||||
|                 '("32" "64" "128"))) | ||||
|              #t)) | ||||
|          (add-after 'install 'unbundle-fonts | ||||
|            ;; Unbundle Bitstream Vera font and replace deleted one. | ||||
|            (lambda* (#:key outputs inputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out")) | ||||
|                     (data (string-append out "/share/seahorse-adventures")) | ||||
|                               (search-input-file inputs "/bin/bash") | ||||
|                               data | ||||
|                               (getenv "GUIX_PYTHONPATH") | ||||
|                               (search-input-file inputs "/bin/python3") | ||||
|                               (string-append data "/run_game.py")))) | ||||
|                   (chmod executable #o555)) | ||||
|                 ;; Add desktop file. | ||||
|                 (mkdir-p applications) | ||||
|                 (make-desktop-entry-file | ||||
|                  (string-append applications "/seahorse-adventures.desktop") | ||||
|                  #:name "Seahorse Adventures" | ||||
|                  #:comment | ||||
|                  '((#f "Help Barbie the seahorse float on bubbles to the moon")) | ||||
|                  #:exec #$name | ||||
|                  #:icon #$name | ||||
|                  #:categories '("Game" "ActionGame") | ||||
|                  #:keywords '("game" "retro" "platform")) | ||||
|                 ;; Add icons. | ||||
|                 (for-each | ||||
|                  (lambda (size) | ||||
|                    (let ((dir (string-append share "/icons/hicolor/" | ||||
|                                              size "x" size "/apps"))) | ||||
|                      (mkdir-p dir) | ||||
|                      (copy-file | ||||
|                       (string-append "icon" size ".png") | ||||
|                       (string-append dir "/searhorse-adventures.png")))) | ||||
|                  '("32" "64" "128"))))) | ||||
|           (add-after 'install 'unbundle-fonts | ||||
|             ;; Unbundle Bitstream Vera font and replace deleted one. | ||||
|             (lambda* (#:key inputs #:allow-other-keys) | ||||
|               (let ((data (string-append #$output "/share/seahorse-adventures")) | ||||
|                     (vera (search-input-file | ||||
|                            inputs "/share/fonts/truetype/Vera.ttf"))) | ||||
|                (let ((themes-dir (string-append data "/data/themes/"))) | ||||
|                  (for-each | ||||
|                   (lambda (theme) | ||||
|                     (let ((target (string-append themes-dir theme "/Vera.ttf"))) | ||||
|                       (delete-file target) | ||||
|                       (symlink vera target))) | ||||
|                   '("default" "gray"))) | ||||
|                (symlink vera (string-append data "/data/fonts/04B_20__.TTF")) | ||||
|                (substitute* (string-append data "/lib/main.py") | ||||
|                  (("f_scale = 0.35") "f_scale = 0.47"))) | ||||
|              #t))))) | ||||
|                 (let ((themes-dir (string-append data "/data/themes/"))) | ||||
|                   (for-each | ||||
|                    (lambda (theme) | ||||
|                      (let ((target (string-append themes-dir theme "/Vera.ttf"))) | ||||
|                        (delete-file target) | ||||
|                        (symlink vera target))) | ||||
|                    '("default" "gray"))) | ||||
|                 (symlink vera (string-append data "/data/fonts/04B_20__.TTF")) | ||||
|                 (substitute* (string-append data "/lib/main.py") | ||||
|                   (("f_scale = 0.35") "f_scale = 0.47")))))))) | ||||
|     (inputs | ||||
|      (list font-bitstream-vera python-pygame)) | ||||
|     (home-page "http://www.imitationpickles.org/barbie/") | ||||
|  | @ -4220,14 +4219,14 @@ world}, @uref{http://evolonline.org, Evol Online} and | |||
| (define openttd-engine | ||||
|   (package | ||||
|     (name "openttd-engine") | ||||
|     (version "12.0") | ||||
|     (version "12.1") | ||||
|     (source | ||||
|      (origin (method url-fetch) | ||||
|              (uri (string-append "https://cdn.openttd.org/openttd-releases/" | ||||
|                                  version "/openttd-" version "-source.tar.xz")) | ||||
|              (sha256 | ||||
|               (base32 | ||||
|                "1p1j5cf4ry57dcgm7qx2g2s00z1c6qgjabb4kqjp00yz00wgv85v")))) | ||||
|                "1qz7ld55m9cvgr4mkv6c11y0zf2aph3ba605l45qj41hk2wzb2r5")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (inputs | ||||
|      `(("allegro" ,allegro) | ||||
|  | @ -6391,63 +6390,61 @@ fish.  The whole game is accompanied by quiet, comforting music.") | |||
| (define-public crawl | ||||
|   (package | ||||
|     (name "crawl") | ||||
|     (version "0.27.1") | ||||
|     (version "0.28.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://github.com/crawl/crawl/releases/download/" | ||||
|                            version "/stone_soup-" version "-nodeps.tar.xz")) | ||||
|        (sha256 | ||||
|         (base32 "0nkhyhrrma8gmwxp15j84cn1k2yvyq7ar9rd0j2qjjlv2kdis5z2")) | ||||
|         (base32 "0irg5w4m127fxcj037kyp9vnyqyq1fi4q64rn6yq92w8z1lf2sss")) | ||||
|        (patches (search-patches "crawl-upgrade-saves.patch")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (inputs | ||||
|      `(("lua51" ,lua-5.1) | ||||
|        ("ncurses" ,ncurses) | ||||
|        ("sqlite" ,sqlite) | ||||
|        ("zlib" ,zlib))) | ||||
|      (list lua-5.1 ncurses sqlite zlib)) | ||||
|     (native-inputs | ||||
|      `(("bison" ,bison) | ||||
|        ("flex" ,flex) | ||||
|        ("perl" ,perl) | ||||
|        ("python" ,python-wrapper) | ||||
|        ("python-pyyaml" ,python-pyyaml) | ||||
|        ("pkg-config" ,pkg-config))) | ||||
|      (list bash-minimal | ||||
|            bison | ||||
|            flex | ||||
|            perl | ||||
|            pkg-config | ||||
|            python-wrapper | ||||
|            python-pyyaml)) | ||||
|     (arguments | ||||
|      `(#:make-flags | ||||
|        (let* ((sqlite (assoc-ref %build-inputs "sqlite")) | ||||
|               (out (assoc-ref %outputs "out"))) | ||||
|          (list (string-append "SQLITE_INCLUDE_DIR=" sqlite "/include") | ||||
|                (string-append "prefix=" out) | ||||
|                "SAVEDIR=~/.crawl" | ||||
|                ;; Don't compile with SSE on systems which don't have it. | ||||
|                ,@(match (%current-system) | ||||
|      (list | ||||
|       #:make-flags | ||||
|       #~(list (string-append "SQLITE_INCLUDE_DIR=" | ||||
|                              #$(this-package-input "sqlite") | ||||
|                              "/include") | ||||
|               (string-append "prefix=" #$output) | ||||
|               "SAVEDIR=~/.crawl" | ||||
|               ;; Don't compile with SSE on systems which don't have it. | ||||
|               #$@(match (%current-system) | ||||
|                    ((or "i686-linux" "x86_64-linux") | ||||
|                     '()) | ||||
|                    (_ '("NOSSE=TRUE"))) | ||||
|                ;; don't build any bundled dependencies | ||||
|                "BUILD_LUA=" | ||||
|                "BUILD_SQLITE=" | ||||
|                "BUILD_ZLIB=" | ||||
|                "-Csource")) | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'find-SDL-image | ||||
|            (lambda _ | ||||
|              (substitute* "source/windowmanager-sdl.cc" | ||||
|                (("SDL_image.h") "SDL2/SDL_image.h")) | ||||
|              #t)) | ||||
|          (delete 'configure) | ||||
|          (replace 'check | ||||
|            (lambda* (#:key inputs outputs make-flags #:allow-other-keys) | ||||
|              (setenv "HOME" (getcwd)) | ||||
|              ;; Fake a terminal for the test cases. | ||||
|              (setenv "TERM" "xterm-256color") | ||||
|              ;; Run the tests that don't require a debug build. | ||||
|              (apply invoke "make" "nondebugtest" | ||||
|                     (format #f "-j~d" (parallel-job-count)) | ||||
|                     ;; Force command line build for test cases. | ||||
|                     (append make-flags '("GAME=crawl" "TILES=")))))))) | ||||
|               ;; don't build any bundled dependencies | ||||
|               "BUILD_LUA=" | ||||
|               "BUILD_SQLITE=" | ||||
|               "BUILD_ZLIB=" | ||||
|               "-Csource") | ||||
|       #:phases | ||||
|       #~(modify-phases %standard-phases | ||||
|           (add-after 'unpack 'find-SDL-image | ||||
|             (lambda _ | ||||
|               (substitute* "source/windowmanager-sdl.cc" | ||||
|                 (("SDL_image.h") "SDL2/SDL_image.h")))) | ||||
|           (delete 'configure) | ||||
|           (replace 'check | ||||
|             (lambda* (#:key make-flags #:allow-other-keys) | ||||
|               (setenv "HOME" (getcwd)) | ||||
|               ;; Fake a terminal for the test cases. | ||||
|               (setenv "TERM" "xterm-256color") | ||||
|               ;; Run the tests that don't require a debug build. | ||||
|               (apply invoke "make" "nondebugtest" | ||||
|                      (format #f "-j~d" (parallel-job-count)) | ||||
|                      ;; Force command line build for test cases. | ||||
|                      (append make-flags '("GAME=crawl" "TILES=")))))))) | ||||
|     (synopsis "Roguelike dungeon crawler game") | ||||
|     (description "Dungeon Crawl Stone Soup (also known as \"Crawl\" or DCSS | ||||
| for short) is a roguelike adventure through dungeons filled with dangerous | ||||
|  | @ -6472,29 +6469,23 @@ monsters in a quest to find the mystifyingly fabulous Orb of Zot.") | |||
|      (substitute-keyword-arguments | ||||
|          (package-arguments crawl) | ||||
|        ((#:make-flags flags) | ||||
|         `(let ((dejavu (assoc-ref %build-inputs "font-dejavu"))) | ||||
|            (cons* | ||||
|             (string-append "PROPORTIONAL_FONT=" dejavu | ||||
|                            "/share/fonts/truetype/DejaVuSans.ttf") | ||||
|             (string-append "MONOSPACED_FONT=" dejavu | ||||
|                            "/share/fonts/truetype/DejaVuSansMono.ttf") | ||||
|             "TILES=y" | ||||
|             ;; Rename the executable to allow parallel installation with crawl. | ||||
|             "GAME=crawl-tiles" | ||||
|             ,flags))))) | ||||
|         #~(cons* | ||||
|            (string-append "PROPORTIONAL_FONT=" | ||||
|                           #$(this-package-input "font-dejavu") | ||||
|                           "/share/fonts/truetype/DejaVuSans.ttf") | ||||
|            (string-append "MONOSPACED_FONT=" | ||||
|                           #$(this-package-input "font-dejavu") | ||||
|                           "/share/fonts/truetype/DejaVuSansMono.ttf") | ||||
|            "TILES=y" | ||||
|            ;; Rename the executable to allow parallel installation with crawl. | ||||
|            "GAME=crawl-tiles" | ||||
|            #$flags)))) | ||||
|     (inputs | ||||
|      `(,@(package-inputs crawl) | ||||
|        ("font-dejavu" ,font-dejavu) | ||||
|        ("freetype6" ,freetype) | ||||
|        ("glu" ,glu) | ||||
|        ("libpng" ,libpng) | ||||
|        ("sdl2" ,sdl2) | ||||
|        ("sdl2-image" ,sdl2-image) | ||||
|        ("sdl2-mixer" ,sdl2-mixer))) | ||||
|      (modify-inputs (package-inputs crawl) | ||||
|        (prepend font-dejavu freetype glu libpng sdl2 sdl2-image sdl2-mixer))) | ||||
|     (native-inputs | ||||
|      `(,@(package-native-inputs crawl) | ||||
|        ("pngcrush" ,pngcrush) | ||||
|        ("which" ,which))) | ||||
|      (modify-inputs (package-native-inputs crawl) | ||||
|        (prepend pngcrush which))) | ||||
|     (synopsis "Graphical roguelike dungeon crawler game"))) | ||||
| 
 | ||||
| (define-public lugaru | ||||
|  | @ -7155,7 +7146,7 @@ elements to achieve a simple goal in the most complex way possible.") | |||
| (define-public pioneer | ||||
|   (package | ||||
|     (name "pioneer") | ||||
|     (version "20210723") | ||||
|     (version "20220203") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|  | @ -7164,7 +7155,7 @@ elements to achieve a simple goal in the most complex way possible.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1hj99jxb9n3r0bkq87p1c24862xa1xyzjyfdyyx88ckszxb05qf3")))) | ||||
|                 "0qjq6lsr1rmcnvq9b7r745cpp7n0q6cpc3k81q8ai4xspbq61m8w")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (native-inputs | ||||
|      (list pkg-config)) | ||||
|  | @ -7183,6 +7174,7 @@ elements to achieve a simple goal in the most complex way possible.") | |||
|     (arguments | ||||
|      `(#:tests? #f                      ;tests are broken | ||||
|        #:configure-flags (list "-DUSE_SYSTEM_LIBLUA:BOOL=YES" | ||||
|                                "-DUSE_SYSTEM_LIBGLEW:BOOL=YES" | ||||
|                                (string-append "-DPIONEER_DATA_DIR=" | ||||
|                                               %output "/share/games/pioneer")) | ||||
|        #:make-flags (list "all" "build-data"))) | ||||
|  | @ -8909,7 +8901,7 @@ fight each other on an arena-like map.") | |||
| (define-public flare-engine | ||||
|   (package | ||||
|     (name "flare-engine") | ||||
|     (version "1.12") | ||||
|     (version "1.13.04") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|  | @ -8918,15 +8910,16 @@ fight each other on an arena-like map.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0h4xxj6r194pw68m3ngrnzkh6xgiblyrsc54z8abwba8m0mqbvmk")))) | ||||
|                 "042n2r9whnd3kncf3k89dcl1srn7p2jk6kdc0lb2hbwff55iylnw")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #f                      ;no test | ||||
|        #:configure-flags '("-DBINDIR=bin" "-DDATADIR=share/flare"))) | ||||
|      (list | ||||
|       #:tests? #f                       ;no test | ||||
|       #:configure-flags #~(list "-DBINDIR=bin" "-DDATADIR=share/flare"))) | ||||
|     (inputs | ||||
|      `(("hicolor-icon-theme" ,hicolor-icon-theme) | ||||
|        ("python" ,python-wrapper) | ||||
|        ("sdl" ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf))))) | ||||
|      (list hicolor-icon-theme | ||||
|            python-wrapper | ||||
|            (sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))) | ||||
|     (home-page "http://www.flarerpg.org/") | ||||
|     (synopsis "Action Roleplaying Engine") | ||||
|     (description "Flare (Free Libre Action Roleplaying Engine) is a simple | ||||
|  | @ -8937,7 +8930,7 @@ action RPGs.") | |||
| (define-public flare-game | ||||
|   (package | ||||
|     (name "flare-game") | ||||
|     (version "1.12") | ||||
|     (version "1.13.04") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|  | @ -8946,51 +8939,51 @@ action RPGs.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0h9i128kq6disppbrplkf13zdmsg4cq23nim53mgwpawc4mqz7ga")))) | ||||
|                 "18rdrwv7p5rvmlah5pl9vbc09xlb8id75a7c73yn2sxkm6cf5c2l")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #f                      ;no test | ||||
|        #:configure-flags '("-DDATADIR=share/flare") | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          ;; Flare expects the mods to be located in the same folder. | ||||
|          ;; Yet, "default" mod is in the engine, whereas the others | ||||
|          ;; are in the current package.  Merge everything here with | ||||
|          ;; a symlink. | ||||
|          (add-after 'install 'add-default-mod | ||||
|            (lambda* (#:key inputs outputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out")) | ||||
|                     (mods (string-append out "/share/flare/mods"))) | ||||
|                (with-directory-excursion mods | ||||
|                  (symlink (string-append (assoc-ref inputs "flare-engine") | ||||
|                                          "/share/flare/mods/default") | ||||
|                           "default"))) | ||||
|              #t)) | ||||
|          (add-after 'install 'install-executable | ||||
|            ;; The package only provides assets for the game, the | ||||
|            ;; executable coming from "flare-engine".  Since more than | ||||
|            ;; one game may use the engine, we create a new executable, | ||||
|            ;; "flare-game", which launches the engine with appropriate | ||||
|            ;; parameters. | ||||
|            (lambda* (#:key inputs outputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out")) | ||||
|                     (bash (search-input-file inputs "/bin/bash")) | ||||
|      (list | ||||
|       #:tests? #f                       ;no test | ||||
|       #:configure-flags #~(list "-DDATADIR=share/flare") | ||||
|       #:phases | ||||
|       #~(modify-phases %standard-phases | ||||
|           ;; Flare expects the mods to be located in the same folder. | ||||
|           ;; Yet, "default" mod is in the engine, whereas the others | ||||
|           ;; are in the current package.  Merge everything here with | ||||
|           ;; a symlink. | ||||
|           (add-after 'install 'add-default-mod | ||||
|             (lambda* (#:key inputs #:allow-other-keys) | ||||
|               (let ((mods (string-append #$output "/share/flare/mods"))) | ||||
|                 (with-directory-excursion mods | ||||
|                   (symlink (search-input-directory inputs | ||||
|                                                    "/share/flare/mods/default") | ||||
|                            "default") | ||||
|                   (symlink (search-input-file inputs | ||||
|                                               "/share/flare/mods/mods.txt") | ||||
|                            "mods.txt"))))) | ||||
|           (add-after 'install 'install-executable | ||||
|             ;; The package only provides assets for the game, the | ||||
|             ;; executable coming from "flare-engine".  Since more than | ||||
|             ;; one game may use the engine, we create a new executable, | ||||
|             ;; "flare-game", which launches the engine with appropriate | ||||
|             ;; parameters. | ||||
|             (lambda* (#:key inputs #:allow-other-keys) | ||||
|               (let ((bash (search-input-file inputs "/bin/bash")) | ||||
|                     (flare (search-input-file inputs "/bin/flare")) | ||||
|                     (script (string-append out "/bin/flare-game"))) | ||||
|                (mkdir-p (dirname script)) | ||||
|                (call-with-output-file script | ||||
|                  (lambda (port) | ||||
|                    (format port | ||||
|                            "#!~a | ||||
|                     (script (string-append #$output "/bin/flare-game"))) | ||||
|                 (mkdir-p (dirname script)) | ||||
|                 (call-with-output-file script | ||||
|                   (lambda (port) | ||||
|                     (format port | ||||
|                             "#!~a | ||||
| exec ~a --data-path=~a/share/flare --mods=empyrean_campaign~%" | ||||
|                            bash | ||||
|                            flare | ||||
|                            out))) | ||||
|                (chmod script #o755)) | ||||
|              #t))))) | ||||
|                             bash | ||||
|                             flare | ||||
|                             #$output))) | ||||
|                 (chmod script #o755))))))) | ||||
|     (inputs | ||||
|      (list flare-engine)) | ||||
|     (home-page "http://www.flarerpg.org/") | ||||
|     (home-page "https://flarerpg.org/") | ||||
|     (synopsis "Fantasy action RPG using the FLARE engine") | ||||
|     (description "Flare is a single-player 2D action RPG with | ||||
| fast-paced action and a dark fantasy style.") | ||||
|  | @ -9367,7 +9360,7 @@ play with up to four players simultaneously.  It has network support.") | |||
|        ("sdl" ,(sdl-union | ||||
|                 (list sdl2 sdl2-mixer sdl2-net sdl2-ttf sdl2-image))))) | ||||
|     (native-inputs | ||||
|      (list clang ghc pkg-config qttools)) | ||||
|      (list clang-9 ghc pkg-config qttools)) | ||||
|     (home-page "https://hedgewars.org/") | ||||
|     (synopsis "Turn-based artillery game featuring fighting hedgehogs") | ||||
|     (description | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ | |||
| ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org> | ||||
| ;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2021 Ricardo Wurmus <rekado@elephly.net> | ||||
| ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> | ||||
| ;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll@gmail.com> | ||||
| ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> | ||||
| ;;; Copyright © 2018, 2020 Marius Bakke <mbakke@fastmail.com> | ||||
|  | @ -525,6 +525,19 @@ Go.  It also includes runtime support libraries for these languages.") | |||
| 
 | ||||
|        ,@(package-inputs gcc-4.7))))) | ||||
| 
 | ||||
| (define %gcc-7.5-aarch64-micro-architectures | ||||
|   ;; Suitable '-march' values for GCC 7.5. | ||||
|   ;; TODO: Allow dynamically adding feature flags. | ||||
|   '("armv8-a" "armv8.1-a" "armv8.2-a" "armv8.3-a")) | ||||
| 
 | ||||
| (define %gcc-7.5-armhf-micro-architectures | ||||
|   ;; Suitable '-march' values for GCC 7.5. | ||||
|   ;; TODO: Allow dynamically adding feature flags. | ||||
|   '("armv7" "armv7-a" "armv7-m" "armv7-r" "armv7e-m" "armv7ve" | ||||
|     "armv8-a" "armv8-a+crc" "armv8.1-a" "armv8.1-a+crc" | ||||
|     "armv8-m.base" "armv8-m.main" "armv8-m.main+dsp" | ||||
|     "iwmmxt" "iwmmxt2")) | ||||
| 
 | ||||
| (define %gcc-7.5-x86_64-micro-architectures | ||||
|   ;; Suitable '-march' values for GCC 7.5 (info "(gcc) x86 Options"). | ||||
|   '("core2" "nehalem" "westmere" "sandybridge" "ivybridge" | ||||
|  | @ -536,6 +549,19 @@ Go.  It also includes runtime support libraries for these languages.") | |||
|     "znver1" | ||||
|     "btver1" "btver2" "geode")) | ||||
| 
 | ||||
| (define %gcc-10-aarch64-micro-architectures | ||||
|   ;; Suitable '-march' values for GCC 10. | ||||
|   ;; TODO: Allow dynamically adding feature flags. | ||||
|   (append %gcc-7.5-aarch64-micro-architectures | ||||
|           '("armv8.4-a" "armv8.5-a" "armv8.6-a"))) | ||||
| 
 | ||||
| (define %gcc-10-armhf-micro-architectures | ||||
|   ;; Suitable '-march' values for GCC 10. | ||||
|   ;; TODO: Allow dynamically adding feature flags. | ||||
|   (append %gcc-7.5-armhf-micro-architectures | ||||
|           '("armv8.2-a" "armv8.3-a" "armv8.4-a" "armv8.5-a" "armv8.6-a" | ||||
|             "armv8-r" "armv8.1-m.main"))) | ||||
| 
 | ||||
| (define %gcc-10-x86_64-micro-architectures | ||||
|   ;; Suitable '-march' values for GCC 10. | ||||
|   (append %gcc-7.5-x86_64-micro-architectures | ||||
|  | @ -545,7 +571,6 @@ Go.  It also includes runtime support libraries for these languages.") | |||
| 
 | ||||
|         "znver2" "znver3"))) | ||||
| 
 | ||||
| 
 | ||||
| (define-public gcc-7 | ||||
|   (package | ||||
|     (inherit gcc-6) | ||||
|  | @ -566,6 +591,8 @@ for several languages, including C, C++, Objective-C, Fortran, Ada, and Go. | |||
| It also includes runtime support libraries for these languages.") | ||||
|     (properties | ||||
|      `((compiler-cpu-architectures | ||||
|         ("aarch64" ,@%gcc-7.5-aarch64-micro-architectures) | ||||
|         ("armhf" ,@%gcc-7.5-armhf-micro-architectures) | ||||
|         ("x86_64" ,@%gcc-7.5-x86_64-micro-architectures)))))) | ||||
| 
 | ||||
| (define-public gcc-8 | ||||
|  | @ -619,6 +646,8 @@ It also includes runtime support libraries for these languages.") | |||
|             (snippet gcc-canadian-cross-objdump-snippet))) | ||||
|    (properties | ||||
|     `((compiler-cpu-architectures | ||||
|        ("aarch64" ,@%gcc-10-aarch64-micro-architectures) | ||||
|        ("armhf" ,@%gcc-10-armhf-micro-architectures) | ||||
|        ("x86_64" ,@%gcc-10-x86_64-micro-architectures)))))) | ||||
| 
 | ||||
| (define-public gcc-11 | ||||
|  |  | |||
|  | @ -12,7 +12,7 @@ | |||
| ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> | ||||
| ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> | ||||
| ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> | ||||
| ;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||||
| ;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||||
| ;;; Copyright © 2020 Kei Kebreau <kkebreau@posteo.net> | ||||
| ;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru> | ||||
| ;;; Copyright © 2021 John Kehayias <john.kehayias@protonmail.com> | ||||
|  | @ -63,6 +63,7 @@ | |||
|   #:use-module (guix build-system gnu) | ||||
|   #:use-module (guix build-system cmake) | ||||
|   #:use-module (guix build-system meson) | ||||
|   #:use-module (guix build-system python) | ||||
|   #:use-module (guix build-system waf) | ||||
|   #:use-module ((guix licenses) #:prefix license:) | ||||
|   #:use-module (guix packages) | ||||
|  | @ -181,6 +182,38 @@ rendering modes are: Bitmaps, Anti-aliased pixmaps, Texture maps, Outlines, | |||
| Polygon meshes, and Extruded polygon meshes.") | ||||
|     (license license:x11))) | ||||
| 
 | ||||
| (define-public glad | ||||
|   (package | ||||
|     (name "glad") | ||||
|     (version "0.1.36") | ||||
|     (source | ||||
|      (origin | ||||
|        ;; We fetch the sources from the repository since the PyPI archive | ||||
|        ;; doesn't contain the CMakeLists.txt file which is useful for | ||||
|        ;; integration with other software, such as the openboardview package. | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|              (url "https://github.com/Dav1dde/glad") | ||||
|              (commit (string-append "v" version)))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0m55ya1zrmg6n2cljkajy80ilmi5sblln8742fm0k1sw9k7hzn8n")))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|      `(#:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'install 'install-cmakelists.txt | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out")) | ||||
|                     (share (string-append out "/share/" ,name))) | ||||
|                (install-file "CMakeLists.txt" share))))))) | ||||
|     (home-page "https://github.com/Dav1dde/glad") | ||||
|     (synopsis "Multi-language GL/GLES/EGL/GLX/WGL loader generator") | ||||
|     (description "Glad uses the official Khronos XML specifications to | ||||
| generate a GL/GLES/EGL/GLX/WGL loader tailored for specific requirements.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public s2tc | ||||
|   (package | ||||
|     (name "s2tc") | ||||
|  | @ -261,7 +294,8 @@ also known as DXTn or DXTC) for Mesa.") | |||
|         ("libxrandr" ,libxrandr) | ||||
|         ("libxvmc" ,libxvmc) | ||||
|         ,@(match (%current-system) | ||||
|             ((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux" "powerpc-linux") | ||||
|             ((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux" | ||||
|                  "powerpc-linux" "riscv64-linux") | ||||
|              ;; Note: update the 'clang' input of mesa-opencl when bumping this. | ||||
|              `(("llvm" ,llvm-11))) | ||||
|             (_ | ||||
|  | @ -273,7 +307,8 @@ also known as DXTn or DXTC) for Mesa.") | |||
|         ("flex" ,flex) | ||||
|         ("gettext" ,gettext-minimal) | ||||
|         ,@(match (%current-system) | ||||
|             ((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux" "powerpc-linux") | ||||
|             ((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux" | ||||
|                  "powerpc-linux" "riscv64-linux") | ||||
|              `(("glslang" ,glslang))) | ||||
|             (_ | ||||
|              `())) | ||||
|  | @ -289,7 +324,7 @@ also known as DXTn or DXTC) for Mesa.") | |||
|              ((or "armhf-linux" "aarch64-linux") | ||||
|               ;; TODO: Fix svga driver for non-Intel architectures. | ||||
|               '("-Dgallium-drivers=etnaviv,freedreno,kmsro,lima,nouveau,panfrost,r300,r600,swrast,tegra,v3d,vc4,virgl")) | ||||
|              ((or "powerpc64le-linux" "powerpc-linux") | ||||
|              ((or "powerpc64le-linux" "powerpc-linux" "riscv64-linux") | ||||
|               '("-Dgallium-drivers=nouveau,r300,r600,radeonsi,swrast,virgl")) | ||||
|              (_ | ||||
|               '("-Dgallium-drivers=iris,nouveau,r300,r600,radeonsi,svga,swrast,virgl"))) | ||||
|  | @ -315,12 +350,15 @@ also known as DXTn or DXTC) for Mesa.") | |||
|               '("-Dvulkan-drivers=amd,swrast")) | ||||
|              ("aarch64-linux" | ||||
|               '("-Dvulkan-drivers=freedreno,amd,broadcom,swrast")) | ||||
|              ("riscv64-linux" | ||||
|               '("-Dvulkan-drivers=amd,swrast")) | ||||
|              (_ | ||||
|               '("-Dvulkan-drivers=auto"))) | ||||
| 
 | ||||
|          ;; Enable the Vulkan overlay layer on architectures using llvm. | ||||
|          ,@(match (%current-system) | ||||
|              ((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux" "powerpc-linux") | ||||
|              ((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux" | ||||
|                   "powerpc-linux" "riscv64-linux") | ||||
|               '("-Dvulkan-layers=device-select,overlay")) | ||||
|              (_ | ||||
|               '())) | ||||
|  | @ -334,7 +372,7 @@ also known as DXTn or DXTC) for Mesa.") | |||
|              ((or "x86_64-linux" "i686-linux") | ||||
|               '("-Ddri-drivers=i915,i965,nouveau,r200,r100" | ||||
|                 "-Dllvm=enabled"))      ; default is x86/x86_64 only | ||||
|              ((or "powerpc64le-linux" "aarch64-linux" "powerpc-linux") | ||||
|              ((or "powerpc64le-linux" "aarch64-linux" "powerpc-linux" "riscv64-linux") | ||||
|               '("-Ddri-drivers=nouveau,r200,r100" | ||||
|                 "-Dllvm=enabled")) | ||||
|              (_ | ||||
|  | @ -359,6 +397,13 @@ also known as DXTn or DXTC) for Mesa.") | |||
|                (("if with_tests") | ||||
|                 "if false")) | ||||
|              ,@(match (%current-system) | ||||
|                  ("riscv64-linux" | ||||
|                   ;; According to the test logs the llvm JIT is not designed | ||||
|                   ;; for this architecture and the llvmpipe tests all segfault. | ||||
|                   ;; The same is true for mesa:gallium / osmesa-render. | ||||
|                   `((substitute* '("src/gallium/drivers/llvmpipe/meson.build" | ||||
|                                    "src/gallium/targets/osmesa/meson.build") | ||||
|                       (("if with_tests") "if false")))) | ||||
|                  ("powerpc64le-linux" | ||||
|                   ;; Disable some of the llvmpipe tests. | ||||
|                   `((substitute* "src/gallium/drivers/llvmpipe/lp_test_arit.c" | ||||
|  |  | |||
|  | @ -54,7 +54,7 @@ | |||
| ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net> | ||||
| ;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re> | ||||
| ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net> | ||||
| ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> | ||||
| ;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de> | ||||
| ;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de> | ||||
| ;;; Copyright © 2020, 2021 Andy Tai <atai@atai.org> | ||||
| ;;; Copyright © 2020, 2021 Sébastien Lerique <sl@eauchat.org> | ||||
|  | @ -158,6 +158,7 @@ | |||
|   #:use-module (gnu packages mail) | ||||
|   #:use-module (gnu packages man) | ||||
|   #:use-module (gnu packages markup) | ||||
|   #:use-module (gnu packages messaging) | ||||
|   #:use-module (gnu packages mp3) | ||||
|   #:use-module (gnu packages multiprecision) | ||||
|   #:use-module (gnu packages music) | ||||
|  | @ -1914,8 +1915,8 @@ and system administrators.") | |||
|   ;; recent versions of the build tools.  The latest activity on the | ||||
|   ;; pre-GNOME version has been in 2014, while GNOME has continued applying | ||||
|   ;; fixes since. | ||||
|   (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5") | ||||
|         (revision "2")) | ||||
|   (let ((commit "0997887d97f01be28bf3886dfd3e2002de437930") | ||||
|         (revision "3")) | ||||
|     (package | ||||
|       (name "dia") | ||||
|       (version (git-version "0.97.3" revision commit)) | ||||
|  | @ -1927,9 +1928,11 @@ and system administrators.") | |||
|                 (file-name (git-file-name name version)) | ||||
|                 (sha256 | ||||
|                  (base32 | ||||
|                   "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8")))) | ||||
|                   "199b4n1jydg1g9lnz0r8xx67h7s2ac2lfj89zp015lbs0qqfkmsh")))) | ||||
|       (build-system meson-build-system) | ||||
|       (arguments `(#:meson ,meson-0.59)) | ||||
|       ;; XXX: Parallel builds may cause: [74/566] [...] | ||||
|       ;; fatal error: dia-lib-enums.h: No such file or directory | ||||
|       (arguments '(#:parallel-build? #f)) | ||||
|       (inputs | ||||
|        (list graphene | ||||
|              gtk+-2 | ||||
|  | @ -1939,12 +1942,10 @@ and system administrators.") | |||
|              ;; XXX: PDF plugin fails to build with poppler 21.07.0. | ||||
|              ;; poppler | ||||
| 
 | ||||
|              ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0: | ||||
|              ;; ERROR: Unknown method "dependency" in object. | ||||
|              python-2)) | ||||
|              python)) | ||||
|       (native-inputs | ||||
|        (list appstream-glib docbook-xsl | ||||
|              `(,glib "bin") intltool pkg-config)) | ||||
|              `(,glib "bin") gettext-minimal pkg-config)) | ||||
|       (home-page "https://wiki.gnome.org/Apps/Dia") | ||||
|       (synopsis "Diagram creation for GNOME") | ||||
|       (description "Dia can be used to draw different types of diagrams, and | ||||
|  | @ -5106,6 +5107,7 @@ and other secrets.  It communicates with the \"Secret Service\" using DBus.") | |||
|        ("desktop-file-utils" ,desktop-file-utils) | ||||
|        ("intltool" ,intltool) | ||||
|        ("itstool" ,itstool) | ||||
|        ("python" ,python-wrapper)       ; for meson_post_install.py | ||||
|        ("vala" ,vala) | ||||
|        ("yelp" ,yelp) | ||||
|        ("appstream-glib" ,appstream-glib))) | ||||
|  | @ -7476,7 +7478,12 @@ to display dialog boxes from the commandline and shell scripts.") | |||
|              ;; expression paragraph.  For an explanation, see: info '(sed) | ||||
|              ;; Multiline techniques'. | ||||
|              (invoke "sed" "/./{H;$!d} ; x ; s/^.*native-headless.*$//" | ||||
|                      "-i" "src/tests/meson.build"))) | ||||
|                      "-i" "src/tests/meson.build") | ||||
|              ;; Timeline tests may unexpectedly fail on missed frames, so | ||||
|              ;; let's disable them as well. | ||||
|              ;; See <https://gitlab.gnome.org/GNOME/mutter/-/issues/2125> | ||||
|              (substitute* "src/tests/clutter/conform/meson.build" | ||||
|                (("'timeline.*',") "")))) | ||||
|          (replace 'check | ||||
|            (lambda* (#:key tests? test-options parallel-tests? | ||||
|                      #:allow-other-keys) | ||||
|  | @ -7679,14 +7686,13 @@ Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") | |||
|                              '("addressbook-backends" "calendar-backends" | ||||
|                                "camel-providers" "credential-modules" | ||||
|                                "registry-modules")))) | ||||
|          (list "-DENABLE_UOA=OFF"             ;disable Ubuntu Online Accounts support | ||||
|                "-DENABLE_GOOGLE=OFF"          ;disable Google Contacts support | ||||
|                "-DENABLE_GOOGLE_AUTH=OFF"     ;disable Google authentication | ||||
|          (list "-DENABLE_GOOGLE=OFF"          ;disable Google Contacts support | ||||
|                "-DENABLE_VALA_BINDINGS=ON" | ||||
|                (string-append "-DCMAKE_INSTALL_RPATH=" lib ";" | ||||
|                               (string-append lib "/evolution-data-server;") | ||||
|                               (string-join runpaths ";")) | ||||
|                "-DENABLE_INTROSPECTION=ON"))  ;required for Vala bindings | ||||
|                "-DENABLE_INTROSPECTION=ON" ;required for Vala bindings | ||||
|                "-DWITH_PHONENUMBER=ON")) | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'disable-failing-tests | ||||
|  | @ -7716,6 +7722,7 @@ Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") | |||
|        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) | ||||
|        ("intltool" ,intltool) | ||||
|        ("pkg-config" ,pkg-config) | ||||
|        ("protobuf" ,protobuf) | ||||
|        ("vala" ,vala) | ||||
|        ("python" ,python-wrapper))) | ||||
|     (propagated-inputs | ||||
|  | @ -7728,11 +7735,13 @@ Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") | |||
|        ("sqlite" ,sqlite))) | ||||
|     (inputs | ||||
|      `(("bdb" ,bdb) | ||||
|        ("boost" ,boost) | ||||
|        ("gcr" ,gcr) | ||||
|        ("gnome-online-accounts:lib" ,gnome-online-accounts "lib") | ||||
|        ("json-glib" ,json-glib) | ||||
|        ("libcanberra" ,libcanberra) | ||||
|        ("libgweather" ,libgweather) | ||||
|        ("libphonenumber" ,libphonenumber) | ||||
|        ("mit-krb5" ,mit-krb5) | ||||
|        ("openldap" ,openldap) | ||||
|        ("webkitgtk" ,webkitgtk-with-libsoup2))) | ||||
|  |  | |||
Some files were not shown because too many files have changed in this diff Show more
		Reference in a new issue