Merge branch 'master' into core-updates-frozen
Conflicts: gnu/packages/algebra.scm gnu/packages/games.scm gnu/packages/golang.scm gnu/packages/kerberos.scm gnu/packages/mail.scm gnu/packages/python.scm gnu/packages/ruby.scm gnu/packages/scheme.scm gnu/packages/tex.scm gnu/packages/tls.scm gnu/packages/version-control.scm
This commit is contained in:
		
						commit
						c4133c43c7
					
				
					 181 changed files with 256111 additions and 218870 deletions
				
			
		|  | @ -148,6 +148,8 @@ | |||
| 
 | ||||
|    (eval . (put 'with-paginated-output-port 'scheme-indent-function 1)) | ||||
| 
 | ||||
|    (eval . (put 'with-shepherd-action 'scheme-indent-function 3)) | ||||
| 
 | ||||
|    ;; This notably allows '(' in Paredit to not insert a space when the | ||||
|    ;; preceding symbol is one of these. | ||||
|    (eval . (modify-syntax-entry ?~ "'")) | ||||
|  |  | |||
|  | @ -492,6 +492,7 @@ SCM_TESTS =					\ | |||
|   tests/services/file-sharing.scm		\ | ||||
|   tests/services/configuration.scm		\ | ||||
|   tests/services/linux.scm			\ | ||||
|   tests/services/telephony.scm			\ | ||||
|   tests/sets.scm				\ | ||||
|   tests/size.scm				\ | ||||
|   tests/status.scm				\ | ||||
|  |  | |||
							
								
								
									
										239
									
								
								doc/guix.texi
									
										
									
									
									
								
							
							
						
						
									
										239
									
								
								doc/guix.texi
									
										
									
									
									
								
							|  | @ -16122,7 +16122,8 @@ gexps to introduce job definitions that are passed to mcron | |||
|          (lambda () | ||||
|            (execl (string-append #$findutils "/bin/updatedb") | ||||
|                   "updatedb" | ||||
|                   "--prunepaths=/tmp /var/tmp /gnu/store")))) | ||||
|                   "--prunepaths=/tmp /var/tmp /gnu/store")) | ||||
|          "updatedb")) | ||||
| 
 | ||||
| (define garbage-collector-job | ||||
|   ;; Collect garbage 5 minutes after midnight every day. | ||||
|  | @ -16151,6 +16152,14 @@ gexps to introduce job definitions that are passed to mcron | |||
|                   %base-services))) | ||||
| @end lisp | ||||
| 
 | ||||
| @quotation Tip | ||||
| When providing the action of a job specification as a procedure, you | ||||
| should provide an explicit name for the job via the optional 3rd | ||||
| argument as done in the @code{updatedb-job} example above.  Otherwise, | ||||
| the job would appear as ``Lambda function'' in the output of | ||||
| @command{herd schedule mcron}, which is not nearly descriptive enough! | ||||
| @end quotation | ||||
| 
 | ||||
| For more complex jobs defined in Scheme where you need control over the top | ||||
| level, for instance to introduce a @code{use-modules} form, you can move your | ||||
| code to a separate program using the @code{program-file} procedure of the | ||||
|  | @ -22735,6 +22744,234 @@ and Error. | |||
| @node Telephony Services | ||||
| @subsection Telephony Services | ||||
| 
 | ||||
| @cindex telephony, services | ||||
| The @code{(gnu services telephony)} module contains Guix service | ||||
| definitions for telephony services.  Currently it provides the following | ||||
| services: | ||||
| 
 | ||||
| @subsubheading Jami | ||||
| 
 | ||||
| @cindex jami, service | ||||
| 
 | ||||
| This section describes how to configure a Jami server that can be used | ||||
| to host video (or audio) conferences, among other uses.  The following | ||||
| example demonstrates how to specify Jami account archives (backups) to | ||||
| be provisioned automatically: | ||||
| 
 | ||||
| @lisp | ||||
| (service jami-service-type | ||||
|          (jami-configuration | ||||
|           (accounts | ||||
|            (list (jami-account | ||||
|                   (archive "/etc/jami/unencrypted-account-1.gz")) | ||||
|                  (jami-account | ||||
|                   (archive "/etc/jami/unencrypted-account-2.gz")))))) | ||||
| @end lisp | ||||
| 
 | ||||
| When the accounts field is specified, the Jami account files of the | ||||
| service found under @file{/var/lib/jami} are recreated every time the | ||||
| service starts. | ||||
| 
 | ||||
| Jami accounts and their corresponding backup archives can be generated | ||||
| using either the @code{jami-qt} or @code{jami-gnome} Jami clients.  The | ||||
| accounts should not be password-protected, but it is wise to ensure | ||||
| their files are only readable by @samp{root}. | ||||
| 
 | ||||
| The next example shows how to declare that only some contacts should be | ||||
| allowed to communicate with a given account: | ||||
| 
 | ||||
| @lisp | ||||
| (service jami-service-type | ||||
|          (jami-configuration | ||||
|           (accounts | ||||
|            (list (jami-account | ||||
|                   (archive "/etc/jami/unencrypted-account-1.gz") | ||||
|                   (peer-discovery? #t) | ||||
|                   (rendezvous-point? #t) | ||||
|                   (allowed-contacts | ||||
|                    '("1dbcb0f5f37324228235564b79f2b9737e9a008f" | ||||
|                      "2dbcb0f5f37324228235564b79f2b9737e9a008f"))))))) | ||||
| @end lisp | ||||
| 
 | ||||
| In this mode, only the declared @code{allowed-contacts} can initiate | ||||
| communication with the Jami account.  This can be used, for example, | ||||
| with rendezvous point accounts to create a private video conferencing | ||||
| space. | ||||
| 
 | ||||
| To put the system administrator in full control of the conferences | ||||
| hosted on their system, the Jami service supports the following actions: | ||||
| 
 | ||||
| @example sh | ||||
| # herd doc jami list-actions | ||||
| (list-accounts | ||||
|  list-account-details | ||||
|  list-banned-contacts | ||||
|  list-contacts | ||||
|  list-moderators | ||||
|  add-moderator | ||||
|  ban-contact | ||||
|  enable-account | ||||
|  disable-account) | ||||
| @end example | ||||
| 
 | ||||
| The above actions aim to provide the most valuable actions for | ||||
| moderation purposes, not to cover the whole Jami API.  Users wanting to | ||||
| interact with the Jami daemon from Guile may be interested in | ||||
| experimenting with the @code{(gnu build jami-service)} module, which | ||||
| powers the above Shepherd actions. | ||||
| 
 | ||||
| @c TODO: This should be auto-generated from the doc already defined on | ||||
| @c the shepherd-actions themselves in (gnu services telephony). | ||||
| The @code{add-moderator} and @code{ban-contact} actions accept a contact | ||||
| @emph{fingerprint} (40 characters long hash) as first argument and an | ||||
| account fingerprint or username as second argument: | ||||
| 
 | ||||
| @example sh | ||||
| # herd add-moderator jami 1dbcb0f5f37324228235564b79f2b9737e9a008f \ | ||||
|   f3345f2775ddfe07a4b0d95daea111d15fbc1199 | ||||
| 
 | ||||
| # herd list-moderators jami | ||||
| Moderators for account f3345f2775ddfe07a4b0d95daea111d15fbc1199: | ||||
|   - 1dbcb0f5f37324228235564b79f2b9737e9a008f | ||||
| 
 | ||||
| @end example | ||||
| 
 | ||||
| In the case of @code{ban-contact}, the second username argument is | ||||
| optional; when omitted, the account is banned from all Jami accounts: | ||||
| 
 | ||||
| @example sh | ||||
| # herd ban-contact jami 1dbcb0f5f37324228235564b79f2b9737e9a008f | ||||
| 
 | ||||
| # herd list-banned-contacts jami | ||||
| Banned contacts for account f3345f2775ddfe07a4b0d95daea111d15fbc1199: | ||||
|   - 1dbcb0f5f37324228235564b79f2b9737e9a008f | ||||
| 
 | ||||
| @end example | ||||
| 
 | ||||
| Banned contacts are also stripped from their moderation privileges. | ||||
| 
 | ||||
| The @code{disable-account} action allows to completely disconnect an | ||||
| account from the network, making it unreachable, while | ||||
| @code{enable-account} does the inverse.  They accept a single account | ||||
| username or fingerprint as first argument: | ||||
| 
 | ||||
| @example sh | ||||
| # herd disable-account jami f3345f2775ddfe07a4b0d95daea111d15fbc1199 | ||||
| 
 | ||||
| # herd list-accounts jami | ||||
| The following Jami accounts are available: | ||||
|   - f3345f2775ddfe07a4b0d95daea111d15fbc1199 (dummy) [disabled] | ||||
| 
 | ||||
| @end example | ||||
| 
 | ||||
| The @code{list-account-details} action prints the detailed parameters of | ||||
| each accounts in the Recutils format, which means the @command{recsel} | ||||
| command can be used to select accounts of interest (@pxref{Selection | ||||
| Expressions,,,recutils, GNU recutils manual}).  Note that period | ||||
| characters (@samp{.}) found in the account parameter keys are mapped to | ||||
| underscores (@samp{_}) in the output, to meet the requirements of the | ||||
| Recutils format.  The following example shows how to print the account | ||||
| fingerprints for all accounts operating in the rendezvous point mode: | ||||
| 
 | ||||
| @example sh | ||||
| # herd list-account-details jami | \ | ||||
|   recsel -p Account.username -e 'Account.rendezVous ~ "true"' | ||||
| Account_username: f3345f2775ddfe07a4b0d95daea111d15fbc1199 | ||||
| @end example | ||||
| 
 | ||||
| The remaining actions should be self-explanatory. | ||||
| 
 | ||||
| The complete set of available configuration options is detailed below. | ||||
| 
 | ||||
| @c TODO: Ideally, the following fragments would be auto-generated at | ||||
| @c build time, so that they needn't be manually duplicated. | ||||
| @c Auto-generated via (configuration->documentation 'jami-configuration) | ||||
| @deftp {Data Type} jami-configuration | ||||
| Available @code{jami-configuration} fields are: | ||||
| 
 | ||||
| @table @asis | ||||
| @item @code{jamid} (default: @code{libring}) (type: package) | ||||
| The Jami daemon package to use. | ||||
| 
 | ||||
| @item @code{dbus} (default: @code{dbus}) (type: package) | ||||
| The D-Bus package to use to start the required D-Bus session. | ||||
| 
 | ||||
| @item @code{nss-certs} (default: @code{nss-certs}) (type: package) | ||||
| The nss-certs package to use to provide TLS certificates. | ||||
| 
 | ||||
| @item @code{enable-logging?} (default: @code{#t}) (type: boolean) | ||||
| Whether to enable logging to syslog. | ||||
| 
 | ||||
| @item @code{debug?} (default: @code{#f}) (type: boolean) | ||||
| Whether to enable debug level messages. | ||||
| 
 | ||||
| @item @code{auto-answer?} (default: @code{#f}) (type: boolean) | ||||
| Whether to force automatic answer to incoming calls. | ||||
| 
 | ||||
| @item @code{accounts} (default: @code{disabled}) (type: maybe-jami-account-list) | ||||
| A list of Jami accounts to be (re-)provisioned every time the Jami | ||||
| daemon service starts.  When providing this field, the account | ||||
| directories under @file{/var/lib/jami/} are recreated every time the | ||||
| service starts, ensuring a consistent state. | ||||
| 
 | ||||
| @end table | ||||
| 
 | ||||
| @end deftp | ||||
| 
 | ||||
| @c Auto-generated via (configuration->documentation 'jami-account) | ||||
| @deftp {Data Type} jami-account | ||||
| Available @code{jami-account} fields are: | ||||
| 
 | ||||
| @table @asis | ||||
| @item @code{archive} (type: string-or-computed-file) | ||||
| The account archive (backup) file name of the account.  This is used to | ||||
| provision the account when the service starts.  The account archive | ||||
| should @emph{not} be encrypted.  It is highly recommended to make it | ||||
| readable only to the @samp{root} user (i.e., not in the store), to guard | ||||
| against leaking the secret key material of the Jami account it contains. | ||||
| 
 | ||||
| @item @code{allowed-contacts} (default: @code{disabled}) (type: maybe-account-fingerprint-list) | ||||
| The list of allowed contacts for the account, entered as their 40 | ||||
| characters long fingerprint.  Messages or calls from accounts not in | ||||
| that list will be rejected.  When unspecified, the configuration of the | ||||
| account archive is used as-is with respect to contacts and public | ||||
| inbound calls/messaging allowance, which typically defaults to allow any | ||||
| contact to communicate with the account. | ||||
| 
 | ||||
| @item @code{moderators} (default: @code{disabled}) (type: maybe-account-fingerprint-list) | ||||
| The list of contacts that should have moderation privileges (to ban, | ||||
| mute, etc.  other users) in rendezvous conferences, entered as their 40 | ||||
| characters long fingerprint.  When unspecified, the configuration of the | ||||
| account archive is used as-is with respect to moderation, which | ||||
| typically defaults to allow anyone to moderate. | ||||
| 
 | ||||
| @item @code{rendezvous-point?} (default: @code{disabled}) (type: maybe-boolean) | ||||
| Whether the account should operate in the rendezvous mode.  In this | ||||
| mode, all the incoming audio/video calls are mixed into a conference. | ||||
| When left unspecified, the value from the account archive prevails. | ||||
| 
 | ||||
| @item @code{peer-discovery?} (default: @code{disabled}) (type: maybe-boolean) | ||||
| Whether peer discovery should be enabled.  Peer discovery is used to | ||||
| discover other OpenDHT nodes on the local network, which can be useful | ||||
| to maintain communication between devices on such network even when the | ||||
| connection to the the Internet has been lost.  When left unspecified, | ||||
| the value from the account archive prevails. | ||||
| 
 | ||||
| @item @code{bootstrap-hostnames} (default: @code{disabled}) (type: maybe-string-list) | ||||
| A list of hostnames or IPs pointing to OpenDHT nodes, that should be | ||||
| used to initially join the OpenDHT network.  When left unspecified, the | ||||
| value from the account archive prevails. | ||||
| 
 | ||||
| @item @code{name-server-uri} (default: @code{disabled}) (type: maybe-string) | ||||
| The URI of the name server to use, that can be used to retrieve the | ||||
| account fingerprint for a registered username. | ||||
| 
 | ||||
| @end table | ||||
| 
 | ||||
| @end deftp | ||||
| 
 | ||||
| @subsubheading Murmur (VoIP server) | ||||
| 
 | ||||
| @cindex Murmur (VoIP server) | ||||
| @cindex VoIP server | ||||
| This section describes how to set up and run a Murmur server.  Murmur is | ||||
|  |  | |||
|  | @ -23,7 +23,7 @@ | |||
| 
 | ||||
| # If adding a language, update the following variables, and info_TEXINFOS.
 | ||||
| MANUAL_LANGUAGES = de es fa fr it ko pt_BR ru sk zh_CN | ||||
| COOKBOOK_LANGUAGES = de fa fr ko zh_Hans | ||||
| COOKBOOK_LANGUAGES = de fa fr ko ru sk zh_Hans | ||||
| 
 | ||||
| # Arg1: A list of languages codes.
 | ||||
| # Arg2: The file name stem.
 | ||||
|  | @ -47,6 +47,8 @@ info_TEXINFOS = %D%/guix.texi			\ | |||
|   %D%/guix-cookbook.fa.texi			\
 | ||||
|   %D%/guix-cookbook.fr.texi			\
 | ||||
|   %D%/guix-cookbook.ko.texi			\
 | ||||
|   %D%/guix-cookbook.ru.texi			\
 | ||||
|   %D%/guix-cookbook.sk.texi			\
 | ||||
|   %D%/guix-cookbook.zh_Hans.texi | ||||
| 
 | ||||
| %C%_guix_TEXINFOS = \
 | ||||
|  |  | |||
|  | @ -4,6 +4,7 @@ | |||
| 
 | ||||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net> | ||||
| ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -36,7 +37,9 @@ | |||
|         (ice-9 popen) | ||||
|         (ice-9 match) | ||||
|         (ice-9 rdelim) | ||||
|         (ice-9 textual-ports)) | ||||
|         (ice-9 regex) | ||||
|         (ice-9 textual-ports) | ||||
|         (guix gexp)) | ||||
| 
 | ||||
| (define* (break-string str #:optional (max-line-length 70)) | ||||
|   "Break the string STR into lines that are no longer than MAX-LINE-LENGTH. | ||||
|  | @ -65,6 +68,13 @@ Return a single string." | |||
|            (string-join (reverse (cons (restore-line last-words) lines)) | ||||
|                         "\n")))))) | ||||
| 
 | ||||
| (define* (break-string-with-newlines str #:optional (max-line-length 70)) | ||||
|   "Break the lines of string STR into lines that are no longer than | ||||
| MAX-LINE-LENGTH. Return a single string." | ||||
|   (string-join (map (cut break-string <> max-line-length) | ||||
|                     (string-split str #\newline)) | ||||
|                "\n")) | ||||
| 
 | ||||
| (define (read-excursion port) | ||||
|   "Read an expression from PORT and reset the port position before returning | ||||
| the expression." | ||||
|  | @ -252,6 +262,32 @@ corresponding to the top-level definition containing the staged changes." | |||
|           "gnu: Add ~a.~%~%* ~a (~a): New variable.~%" | ||||
|           variable-name file-name variable-name)) | ||||
| 
 | ||||
| (define* (custom-commit-message file-name variable-name message changelog | ||||
|                                 #:optional (port (current-output-port))) | ||||
|   "Print custom commit message for a change to VARIABLE-NAME in FILE-NAME, using | ||||
| MESSAGE as the commit message and CHANGELOG as the body of the ChangeLog | ||||
| entry. If CHANGELOG is #f, the commit message is reused. If CHANGELOG already | ||||
| contains ': ', no colon is inserted between the location and body of the | ||||
| ChangeLog entry." | ||||
|   (define (trim msg) | ||||
|     (string-trim-right (string-trim-both msg) (char-set #\.))) | ||||
| 
 | ||||
|   (define (changelog-has-location? changelog) | ||||
|     (->bool (string-match "^[[:graph:]]+:[[:blank:]]" changelog))) | ||||
| 
 | ||||
|   (let* ((message (trim message)) | ||||
|          (changelog (if changelog (trim changelog) message)) | ||||
|          (message/f (format #f "gnu: ~a: ~a." variable-name message)) | ||||
|          (changelog/f (if (changelog-has-location? changelog) | ||||
|                           (format #f "* ~a (~a)~a." | ||||
|                                   file-name variable-name changelog) | ||||
|                           (format #f "* ~a (~a): ~a." | ||||
|                                   file-name variable-name changelog)))) | ||||
|     (format port | ||||
|             "~a~%~%~a~%" | ||||
|             (break-string-with-newlines message/f 72) | ||||
|             (break-string-with-newlines changelog/f 72)))) | ||||
| 
 | ||||
| (define (group-hunks-by-sexp hunks) | ||||
|   "Return a list of pairs associating all hunks with the S-expression they are | ||||
| modifying." | ||||
|  | @ -280,6 +316,15 @@ modifying." | |||
| (define %delay 1000) | ||||
| 
 | ||||
| (define (main . args) | ||||
|   (define* (change-commit-message* file-name old new #:rest rest) | ||||
|     (let ((changelog #f)) | ||||
|       (match args | ||||
|         ((or (message changelog) (message)) | ||||
|          (apply custom-commit-message | ||||
|                 file-name (second old) message changelog rest)) | ||||
|         (_ | ||||
|          (apply change-commit-message file-name old new rest))))) | ||||
| 
 | ||||
|   (match (diff-info) | ||||
|     (() | ||||
|      (display "Nothing to be done.\n" (current-error-port))) | ||||
|  | @ -325,13 +370,12 @@ modifying." | |||
|                                     (error "Cannot apply"))) | ||||
|                                 (usleep %delay)) | ||||
|                               hunks) | ||||
|                     (change-commit-message (hunk-file-name (first hunks)) | ||||
|                                            old new | ||||
|                                            (current-output-port)) | ||||
|                     (change-commit-message* (hunk-file-name (first hunks)) | ||||
|                                             old new) | ||||
|                     (let ((port (open-pipe* OPEN_WRITE "git" "commit" "-F" "-"))) | ||||
|                       (change-commit-message (hunk-file-name (first hunks)) | ||||
|                                              old new | ||||
|                                              port) | ||||
|                       (change-commit-message* (hunk-file-name (first hunks)) | ||||
|                                               old new | ||||
|                                               port) | ||||
|                       (usleep %delay) | ||||
|                       (unless (eqv? 0 (status:exit-val (close-pipe port))) | ||||
|                         (error "Cannot commit"))))) | ||||
|  | @ -339,4 +383,4 @@ modifying." | |||
|                  ;; insertions lead to offsets. | ||||
|                  (new+old+hunks (diff-info))))))) | ||||
| 
 | ||||
| (main) | ||||
| (apply main (cdr (command-line))) | ||||
|  |  | |||
							
								
								
									
										587
									
								
								gnu/build/jami-service.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										587
									
								
								gnu/build/jami-service.scm
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,587 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
| ;;; GNU Guix is free software; you can redistribute it and/or modify it | ||||
| ;;; under the terms of the GNU General Public License as published by | ||||
| ;;; the Free Software Foundation; either version 3 of the License, or (at | ||||
| ;;; your option) any later version. | ||||
| ;;; | ||||
| ;;; GNU Guix is distributed in the hope that it will be useful, but | ||||
| ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| ;;; GNU General Public License for more details. | ||||
| ;;; | ||||
| ;;; You should have received a copy of the GNU General Public License | ||||
| ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| ;;; Commentary: | ||||
| ;;; | ||||
| ;;; This module contains helpers used as part of the jami-service-type | ||||
| ;;; definition. | ||||
| ;;; | ||||
| ;;; Code: | ||||
| 
 | ||||
| (define-module (gnu build jami-service) | ||||
|   #:use-module (ice-9 format) | ||||
|   #:use-module (ice-9 match) | ||||
|   #:use-module (ice-9 peg) | ||||
|   #:use-module (ice-9 rdelim) | ||||
|   #:use-module (ice-9 regex) | ||||
|   #:use-module (rnrs io ports) | ||||
|   #:autoload (shepherd service) (fork+exec-command) | ||||
|   #:use-module (srfi srfi-1) | ||||
|   #:use-module (srfi srfi-26) | ||||
|   #:export (account-fingerprint? | ||||
|             account-details->recutil | ||||
|             get-accounts | ||||
|             get-usernames | ||||
|             set-account-details | ||||
|             add-account | ||||
|             account->username | ||||
|             username->account | ||||
|             username->contacts | ||||
|             enable-account | ||||
|             disable-account | ||||
| 
 | ||||
|             add-contact | ||||
|             remove-contact | ||||
| 
 | ||||
|             set-all-moderators | ||||
|             set-moderator | ||||
|             username->all-moderators? | ||||
|             username->moderators | ||||
| 
 | ||||
|             dbus-available-services | ||||
|             dbus-service-available? | ||||
| 
 | ||||
|             %send-dbus-binary | ||||
|             %send-dbus-bus | ||||
|             %send-dbus-user | ||||
|             %send-dbus-group | ||||
|             %send-dbus-debug | ||||
|             send-dbus | ||||
| 
 | ||||
|             with-retries)) | ||||
| 
 | ||||
| ;;; | ||||
| ;;; Utilities. | ||||
| ;;; | ||||
| 
 | ||||
| (define-syntax-rule (with-retries n delay body ...) | ||||
|   "Retry the code in BODY up to N times until it doesn't raise an exception | ||||
| nor return #f, else raise an error.  A delay of DELAY seconds is inserted | ||||
| before each retry." | ||||
|   (let loop ((attempts 0)) | ||||
|     (catch #t | ||||
|       (lambda () | ||||
|         (let ((result (begin body ...))) | ||||
|           (if (not result) | ||||
|               (error "failed attempt" attempts) | ||||
|               result))) | ||||
|       (lambda args | ||||
|         (if (< attempts n) | ||||
|             (begin | ||||
|               (sleep delay)             ;else wait and retry | ||||
|               (loop (+ 1 attempts))) | ||||
|             (error "maximum number of retry attempts reached" | ||||
|                    body ... args)))))) | ||||
| 
 | ||||
| (define (alist->list alist) | ||||
|   "Flatten ALIST into a list." | ||||
|   (append-map (match-lambda | ||||
|                 (() '()) | ||||
|                 ((key . value) | ||||
|                  (list key value))) | ||||
|               alist)) | ||||
| 
 | ||||
| (define account-fingerprint-rx (make-regexp "[0-9A-f]{40}")) | ||||
| 
 | ||||
| (define (account-fingerprint? val) | ||||
|   "A Jami account fingerprint is 40 characters long and only contains | ||||
| hexadecimal characters." | ||||
|   (and (string? val) | ||||
|        (regexp-exec account-fingerprint-rx val))) | ||||
| 
 | ||||
|  | ||||
| ;;; | ||||
| ;;; D-Bus reply parser. | ||||
| ;;; | ||||
| 
 | ||||
| (define (parse-dbus-reply reply) | ||||
|   "Return the parse tree of REPLY, a string returned by the 'dbus-send' | ||||
| command." | ||||
|   ;; Refer to 'man 1 dbus-send' for the grammar reference.  Note that the | ||||
|   ;; format of the replies doesn't match the format of the input, which is the | ||||
|   ;; one documented, but it gives an idea.  For an even better reference, see | ||||
|   ;; the `print_iter' procedure of the 'dbus-print-message.c' file from the | ||||
|   ;; 'dbus' package sources. | ||||
|   (define-peg-string-patterns | ||||
|     "contents <- header (item / container (item / container*)?) | ||||
|      item <-- WS type WS value NL | ||||
|      container <- array / dict / variant | ||||
|      array <-- array-start (item / container)* array-end | ||||
|      dict <-- array-start dict-entry* array-end | ||||
|      dict-entry <-- dict-entry-start item item dict-entry-end | ||||
|      variant <-- variant-start item | ||||
|      type <-- 'string' / 'int16' / 'uint16' / 'int32' / 'uint32' / 'int64' / | ||||
|               'uint64' / 'double' / 'byte' / 'boolean' / 'objpath' | ||||
|      value <-- (!NL .)* NL | ||||
|      header < (!NL .)* NL | ||||
|      variant-start < WS 'variant' | ||||
|      array-start < WS 'array [' NL | ||||
|      array-end < WS ']' NL | ||||
|      dict-entry-start < WS 'dict entry(' NL | ||||
|      dict-entry-end < WS ')' NL | ||||
|      DQ < '\"' | ||||
|      WS < ' '* | ||||
|      NL < '\n'*") | ||||
| 
 | ||||
|   (peg:tree (match-pattern contents reply))) | ||||
| 
 | ||||
| (define (strip-quotes text) | ||||
|   "Strip the leading and trailing double quotes (\") characters from TEXT." | ||||
|   (let* ((text* (if (string-prefix? "\"" text) | ||||
|                     (string-drop text 1) | ||||
|                     text)) | ||||
|          (text** (if (string-suffix? "\"" text*) | ||||
|                      (string-drop-right text* 1) | ||||
|                      text*))) | ||||
|     text**)) | ||||
| 
 | ||||
| (define (deserialize-item item) | ||||
|   "Return the value described by the ITEM parse tree as a Guile object." | ||||
|   ;; Strings are printed wrapped in double quotes (see the print_iter | ||||
|   ;; procedure in dbus-print-message.c). | ||||
|   (match item | ||||
|     (('item ('type "string") ('value value)) | ||||
|      (strip-quotes value)) | ||||
|     (('item ('type "boolean") ('value value)) | ||||
|      (if (string=? "true" value) | ||||
|          #t | ||||
|          #f)) | ||||
|     (('item _ ('value value)) | ||||
|      value))) | ||||
| 
 | ||||
| (define (serialize-boolean bool) | ||||
|   "Return the serialized format expected by dbus-send for BOOL." | ||||
|   (format #f "boolean:~:[false~;true~]" bool)) | ||||
| 
 | ||||
| (define (dict->alist dict-parse-tree) | ||||
|   "Translate a dict parse tree to an alist." | ||||
|   (define (tuples->alist tuples) | ||||
|     (map (lambda (x) (apply cons x)) tuples)) | ||||
| 
 | ||||
|   (match dict-parse-tree | ||||
|     ('dict | ||||
|      '()) | ||||
|     (('dict ('dict-entry keys values) ...) | ||||
|      (let ((keys* (map deserialize-item keys)) | ||||
|            (values* (map deserialize-item values))) | ||||
|        (tuples->alist (zip keys* values*)))))) | ||||
| 
 | ||||
| (define (array->list array-parse-tree) | ||||
|   "Translate an array parse tree to a list." | ||||
|   (match array-parse-tree | ||||
|     ('array | ||||
|      '()) | ||||
|     (('array items ...) | ||||
|      (map deserialize-item items)))) | ||||
| 
 | ||||
|  | ||||
| ;;; | ||||
| ;;; Low-level, D-Bus-related procedures. | ||||
| ;;; | ||||
| 
 | ||||
| ;;; The following parameters are used in the jami-service-type service | ||||
| ;;; definition to conveniently customize the behavior of the send-dbus helper, | ||||
| ;;; even when called indirectly. | ||||
| (define %send-dbus-binary (make-parameter "dbus-send")) | ||||
| (define %send-dbus-bus (make-parameter #f)) | ||||
| (define %send-dbus-user (make-parameter #f)) | ||||
| (define %send-dbus-group (make-parameter #f)) | ||||
| (define %send-dbus-debug (make-parameter #f)) | ||||
| 
 | ||||
| (define* (send-dbus #:key service path interface method | ||||
|                     bus | ||||
|                     dbus-send | ||||
|                     user group | ||||
|                     timeout | ||||
|                     arguments) | ||||
|   "Return the response of DBUS-SEND, else raise an error.  Unless explicitly | ||||
| provided, DBUS-SEND takes the value of the %SEND-DBUS-BINARY parameter.  BUS | ||||
| can be used to specify the bus address, such as 'unix:path=/var/run/jami/bus'. | ||||
| Alternatively, the %SEND-DBUS-BUS parameter can be used.  ARGUMENTS can be | ||||
| used to pass input values to a D-Bus method call.  TIMEOUT is the amount of | ||||
| time to wait for a reply in milliseconds before giving up with an error.  USER | ||||
| and GROUP allow choosing under which user/group the DBUS-SEND command is | ||||
| executed.  Alternatively, the %SEND-DBUS-USER and %SEND-DBUS-GROUP parameters | ||||
| can be used instead." | ||||
|   (let* ((command `(,(if dbus-send | ||||
|                          dbus-send | ||||
|                          (%send-dbus-binary)) | ||||
|                     ,@(if (or bus (%send-dbus-bus)) | ||||
|                           (list (string-append "--bus=" | ||||
|                                                (or bus (%send-dbus-bus)))) | ||||
|                           '()) | ||||
|                     "--print-reply" | ||||
|                     ,@(if timeout | ||||
|                           (list (format #f "--reply-timeout=~d" timeout)) | ||||
|                           '()) | ||||
|                     ,(string-append "--dest=" service) ;e.g., cx.ring.Ring | ||||
|                     ,path            ;e.g., /cx/ring/Ring/ConfigurationManager | ||||
|                     ,(string-append interface "." method) | ||||
|                     ,@(or arguments '()))) | ||||
|          (temp-port (mkstemp! (string-copy "/tmp/dbus-send-output-XXXXXXX"))) | ||||
|          (temp-file (port-filename temp-port))) | ||||
|     (dynamic-wind | ||||
|       (lambda () | ||||
|         (let* ((uid (or (and=> (or user (%send-dbus-user)) | ||||
|                                (compose passwd:uid getpwnam)) -1)) | ||||
|                (gid (or (and=> (or group (%send-dbus-group)) | ||||
|                                (compose group:gid getgrnam)) -1))) | ||||
|           (chown temp-port uid gid))) | ||||
|       (lambda () | ||||
|         (let ((pid (fork+exec-command command | ||||
|                                       #:user (or user (%send-dbus-user)) | ||||
|                                       #:group (or group (%send-dbus-group)) | ||||
|                                       #:log-file temp-file))) | ||||
|           (match (waitpid pid) | ||||
|             ((_ . status) | ||||
|              (let ((exit-status (status:exit-val status)) | ||||
|                    (output (call-with-port temp-port get-string-all))) | ||||
|                (if (= 0 exit-status) | ||||
|                    output | ||||
|                    (error "the send-dbus command exited with: " | ||||
|                           command exit-status output))))))) | ||||
|       (lambda () | ||||
|         (false-if-exception (delete-file temp-file)))))) | ||||
| 
 | ||||
| (define (parse-account-ids reply) | ||||
|   "Return the Jami account IDs from REPLY, which is assumed to be the output | ||||
| of the Jami D-Bus `getAccountList' method." | ||||
|   (array->list (parse-dbus-reply reply))) | ||||
| 
 | ||||
| (define (parse-account-details reply) | ||||
|   "Parse REPLY, which is assumed to be the output of the Jami D-Bus | ||||
| `getAccountDetails' method, and return its content as an alist." | ||||
|   (dict->alist (parse-dbus-reply reply))) | ||||
| 
 | ||||
| (define (parse-contacts reply) | ||||
|   "Parse REPLY, which is assumed to be the output of the Jamid D-Bus | ||||
| `getContacts' method, and return its content as an alist." | ||||
|   (match (parse-dbus-reply reply) | ||||
|     ('array | ||||
|      '()) | ||||
|     (('array dicts ...) | ||||
|      (map dict->alist dicts)))) | ||||
| 
 | ||||
|  | ||||
| ;;; | ||||
| ;;; Higher-level, D-Bus-related procedures. | ||||
| ;;; | ||||
| 
 | ||||
| (define (validate-fingerprint fingerprint) | ||||
|   "Validate that fingerprint is 40 characters long." | ||||
|   (unless (account-fingerprint? fingerprint) | ||||
|     (error "Account fingerprint is not valid:" fingerprint))) | ||||
| 
 | ||||
| (define (dbus-available-services) | ||||
|   "Return the list of available (acquired) D-Bus services." | ||||
|   (let ((reply (parse-dbus-reply | ||||
|                 (send-dbus #:service "org.freedesktop.DBus" | ||||
|                            #:path "/org/freedesktop/DBus" | ||||
|                            #:interface "org.freedesktop.DBus" | ||||
|                            #:method "ListNames")))) | ||||
|     ;; Remove entries such as ":1.7". | ||||
|     (remove (cut string-prefix? ":" <>) | ||||
|             (array->list reply)))) | ||||
| 
 | ||||
| (define (dbus-service-available? service) | ||||
|   "Predicate to check for the D-Bus SERVICE availability." | ||||
|   (member service (dbus-available-services))) | ||||
| 
 | ||||
| (define* (send-dbus/configuration-manager #:key method arguments timeout) | ||||
|   "Query the Jami D-Bus ConfigurationManager service." | ||||
|   (send-dbus #:service "cx.ring.Ring" | ||||
|              #:path "/cx/ring/Ring/ConfigurationManager" | ||||
|              #:interface "cx.ring.Ring.ConfigurationManager" | ||||
|              #:method method | ||||
|              #:arguments arguments | ||||
|              #:timeout timeout)) | ||||
| 
 | ||||
| ;;; The following methods are for internal use; they make use of the account | ||||
| ;;; ID, an implementation detail of Jami the user should not need to be | ||||
| ;;; concerned with. | ||||
| (define (get-account-ids) | ||||
|   "Return the available Jami account identifiers (IDs).  Account IDs are an | ||||
| implementation detail used to identify the accounts in Jami." | ||||
|   (parse-account-ids | ||||
|    (send-dbus/configuration-manager #:method "getAccountList"))) | ||||
| 
 | ||||
| (define (id->account-details id) | ||||
|   "Retrieve the account data associated with the given account ID." | ||||
|   (parse-account-details | ||||
|    (send-dbus/configuration-manager | ||||
|     #:method "getAccountDetails" | ||||
|     #:arguments (list (string-append "string:" id))))) | ||||
| 
 | ||||
| (define (id->volatile-account-details id) | ||||
|   "Retrieve the account data associated with the given account ID." | ||||
|   (parse-account-details | ||||
|    (send-dbus/configuration-manager | ||||
|     #:method "getVolatileAccountDetails" | ||||
|     #:arguments (list (string-append "string:" id))))) | ||||
| 
 | ||||
| (define (id->account id) | ||||
|   "Retrieve the complete account data associated with the given account ID." | ||||
|   (append (id->volatile-account-details id) | ||||
|           (id->account-details id))) | ||||
| 
 | ||||
| (define %username-to-id-cache #f) | ||||
| 
 | ||||
| (define (invalidate-username-to-id-cache!) | ||||
|   (set! %username-to-id-cache #f)) | ||||
| 
 | ||||
| (define (username->id username) | ||||
|   "Return the first account ID corresponding to USERNAME." | ||||
|   (unless (assoc-ref %username-to-id-cache username) | ||||
|     (set! %username-to-id-cache | ||||
|           (append-map | ||||
|            (lambda (id) | ||||
|              (let* ((account (id->account id)) | ||||
|                     (username (assoc-ref account "Account.username")) | ||||
|                     (registered-name (assoc-ref account | ||||
|                                                 "Account.registeredName"))) | ||||
|                `(,@(if username | ||||
|                        (list (cons username id)) | ||||
|                        '()) | ||||
|                  ,@(if registered-name | ||||
|                        (list (cons registered-name id)) | ||||
|                        '())))) | ||||
|            (get-account-ids)))) | ||||
|   (or (assoc-ref %username-to-id-cache username) | ||||
|       (let ((message (format #f "Could not retrieve a local account ID\ | ||||
|  for ~:[username~;fingerprint~]" (account-fingerprint? username)))) | ||||
|         (error message username)))) | ||||
| 
 | ||||
| (define (account->username account) | ||||
|   "Return USERNAME, the registered username associated with ACCOUNT, else its | ||||
| public key fingerprint." | ||||
|   (or (assoc-ref account "Account.registeredName") | ||||
|       (assoc-ref account "Account.username"))) | ||||
| 
 | ||||
| (define (id->username id) | ||||
|   "Return USERNAME, the registered username associated with ID, else its | ||||
| public key fingerprint, else #f." | ||||
|   (account->username (id->account id))) | ||||
| 
 | ||||
| (define (get-accounts) | ||||
|   "Return the list of all accounts, as a list of alists." | ||||
|   (map id->account (get-account-ids))) | ||||
| 
 | ||||
| (define (get-usernames) | ||||
|   "Return the list of the usernames associated with the present accounts." | ||||
|   (map account->username (get-accounts))) | ||||
| 
 | ||||
| (define (username->account username) | ||||
|   "Return the first account associated with USERNAME, else #f. | ||||
| USERNAME can be either the account 40 characters public key fingerprint or a | ||||
| registered username." | ||||
|   (find (lambda (account) | ||||
|           (member username | ||||
|                   (list (assoc-ref account "Account.username") | ||||
|                         (assoc-ref account "Account.registeredName")))) | ||||
|         (get-accounts))) | ||||
| 
 | ||||
| (define (add-account archive) | ||||
|   "Import the Jami account ARCHIVE and return its account ID.  The archive | ||||
| should *not* be encrypted with a password.  Return the username associated | ||||
| with the account." | ||||
|   (invalidate-username-to-id-cache!) | ||||
|   (let ((reply (send-dbus/configuration-manager | ||||
|                 #:method "addAccount" | ||||
|                 #:arguments (list (string-append | ||||
|                                    "dict:string:string:Account.archivePath," | ||||
|                                    archive | ||||
|                                    ",Account.type,RING"))))) | ||||
|     ;; The account information takes some time to be populated. | ||||
|     (let ((id (deserialize-item (parse-dbus-reply reply)))) | ||||
|       (with-retries 20 1 | ||||
|         (let ((username (id->username id))) | ||||
|           (if (string-null? username) | ||||
|               #f | ||||
|               username)))))) | ||||
| 
 | ||||
| (define (remove-account username) | ||||
|   "Delete the Jami account associated with USERNAME, the account 40 characters | ||||
| fingerprint or a registered username." | ||||
|   (let ((id (username->id username))) | ||||
|     (send-dbus/configuration-manager | ||||
|      #:method "removeAccount" | ||||
|      #:arguments (list (string-append "string:" id)))) | ||||
|   (invalidate-username-to-id-cache!)) | ||||
| 
 | ||||
| (define* (username->contacts username) | ||||
|   "Return the contacts associated with the account of USERNAME as two values; | ||||
| the first one being the regular contacts and the second one the banned | ||||
| contacts.  USERNAME can be either the account 40 characters public key | ||||
| fingerprint or a registered username.  The contacts returned are represented | ||||
| using their 40 characters fingerprint." | ||||
|   (let* ((id (username->id username)) | ||||
|          (reply (send-dbus/configuration-manager | ||||
|                  #:method "getContacts" | ||||
|                  #:arguments (list (string-append "string:" id)))) | ||||
|          (all-contacts (parse-contacts reply)) | ||||
|          (banned? (lambda (contact) | ||||
|                     (and=> (assoc-ref contact "banned") | ||||
|                            (cut string=? "true" <>)))) | ||||
|          (banned (filter banned? all-contacts)) | ||||
|          (not-banned (filter (negate banned?) all-contacts)) | ||||
|          (fingerprint (cut assoc-ref <> "id"))) | ||||
|     (values (map fingerprint not-banned) | ||||
|             (map fingerprint banned)))) | ||||
| 
 | ||||
| (define* (remove-contact contact username #:key ban?) | ||||
|   "Remove CONTACT, the 40 characters public key fingerprint of a contact, from | ||||
| the account associated with USERNAME (either a fingerprint or a registered | ||||
| username).  When BAN? is true, also mark the contact as banned." | ||||
|   (validate-fingerprint contact) | ||||
|   (let ((id (username->id username))) | ||||
|     (send-dbus/configuration-manager | ||||
|      #:method "removeContact" | ||||
|      #:arguments (list (string-append "string:" id) | ||||
|                        (string-append "string:" contact) | ||||
|                        (serialize-boolean ban?))))) | ||||
| 
 | ||||
| (define (add-contact contact username) | ||||
|   "Add CONTACT, the 40 characters public key fingerprint of a contact, to the | ||||
| account of USERNAME (either a fingerprint or a registered username)." | ||||
|   (validate-fingerprint contact) | ||||
|   (let ((id (username->id username))) | ||||
|     (send-dbus/configuration-manager | ||||
|      #:method "addContact" | ||||
|      #:arguments (list (string-append "string:" id) | ||||
|                        (string-append "string:" contact))))) | ||||
| 
 | ||||
| (define* (set-account-details details username #:key timeout) | ||||
|   "Set DETAILS, an alist containing the key value pairs to set for the account | ||||
| of USERNAME, a registered username or account fingerprint.  The value of the | ||||
| parameters not provided are unchanged.  TIMEOUT is a value in milliseconds to | ||||
| pass to the `send-dbus/configuration-manager' procedure." | ||||
|   (let* ((id (username->id username)) | ||||
|          (current-details (id->account-details id)) | ||||
|          (updated-details (map (match-lambda | ||||
|                                  ((key . value) | ||||
|                                   (or (and=> (assoc-ref details key) | ||||
|                                              (cut cons key <>)) | ||||
|                                       (cons key value)))) | ||||
|                                current-details)) | ||||
|          ;; dbus-send does not permit sending null strings (it throws a | ||||
|          ;; "malformed dictionary" error).  Luckily they seem to have the | ||||
|          ;; semantic of "default account value" in Jami; so simply drop them. | ||||
|          (updated-details* (remove (match-lambda | ||||
|                                      ((_ . value) | ||||
|                                       (string-null? value))) | ||||
|                                    updated-details))) | ||||
|     (send-dbus/configuration-manager | ||||
|      #:timeout timeout | ||||
|      #:method "setAccountDetails" | ||||
|      #:arguments | ||||
|      (list (string-append "string:" id) | ||||
|            (string-append "dict:string:string:" | ||||
|                           (string-join (alist->list updated-details*) | ||||
|                                        ",")))))) | ||||
| 
 | ||||
| (define (set-all-moderators enabled? username) | ||||
|   "Set the 'AllModerators' property to enabled? for the account of USERNAME, a | ||||
| registered username or account fingerprint." | ||||
|   (let ((id (username->id username))) | ||||
|     (send-dbus/configuration-manager | ||||
|      #:method "setAllModerators" | ||||
|      #:arguments | ||||
|      (list (string-append "string:" id) | ||||
|            (serialize-boolean enabled?))))) | ||||
| 
 | ||||
| (define (username->all-moderators? username) | ||||
|   "Return the 'AllModerators' property for the account of USERNAME, a | ||||
| registered username or account fingerprint." | ||||
|   (let* ((id (username->id username)) | ||||
|          (reply (send-dbus/configuration-manager | ||||
|                  #:method "isAllModerators" | ||||
|                  #:arguments | ||||
|                  (list (string-append "string:" id))))) | ||||
|     (deserialize-item (parse-dbus-reply reply)))) | ||||
| 
 | ||||
| (define (username->moderators username) | ||||
|   "Return the moderators for the account of USERNAME, a registered username or | ||||
| account fingerprint." | ||||
|   (let* ((id (username->id username)) | ||||
|          (reply (send-dbus/configuration-manager | ||||
|                  #:method "getDefaultModerators" | ||||
|                  #:arguments | ||||
|                  (list (string-append "string:" id))))) | ||||
|     (array->list (parse-dbus-reply reply)))) | ||||
| 
 | ||||
| (define (set-moderator contact enabled? username) | ||||
|   "Set the moderator flag to ENABLED? for CONTACT, the 40 characters public | ||||
| key fingerprint of a contact for the account of USERNAME, a registered | ||||
| username or account fingerprint." | ||||
|   (validate-fingerprint contact) | ||||
|   (let* ((id (username->id username))) | ||||
|     (send-dbus/configuration-manager #:method "setDefaultModerator" | ||||
|                                      #:arguments | ||||
|                                      (list (string-append "string:" id) | ||||
|                                            (string-append "string:" contact) | ||||
|                                            (serialize-boolean enabled?))))) | ||||
| 
 | ||||
| (define (disable-account username) | ||||
|   "Disable the account known by USERNAME, a registered username or account | ||||
| fingerprint." | ||||
|   (set-account-details '(("Account.enable" . "false")) username | ||||
|                        ;; Waiting for the reply on this command takes a very | ||||
|                        ;; long time that trips the default D-Bus timeout value | ||||
|                        ;; (25 s), for some reason. | ||||
|                         #:timeout 60000)) | ||||
| 
 | ||||
| (define (enable-account username) | ||||
|   "Enable the account known by USERNAME, a registered username or account | ||||
| fingerprint." | ||||
|   (set-account-details '(("Account.enable" . "true")) username)) | ||||
| 
 | ||||
|  | ||||
| ;;; | ||||
| ;;; Presentation procedures. | ||||
| ;;; | ||||
| 
 | ||||
| (define (.->_ text) | ||||
|   "Map each period character to underscore characters." | ||||
|   (string-map (match-lambda | ||||
|                 (#\. #\_) | ||||
|                 (c c)) | ||||
|               text)) | ||||
| 
 | ||||
| (define (account-details->recutil account-details) | ||||
|   "Serialize the account-details alist into a recutil string.  Period | ||||
| characters in the keys are normalized to underscore to meet Recutils' format | ||||
| requirements." | ||||
|   (define (pair->recutil-property pair) | ||||
|     (match pair | ||||
|       ((key . value) | ||||
|        (string-append (.->_ key) ": " value)))) | ||||
| 
 | ||||
|   (define sorted-account-details | ||||
|     ;; Have the account username, display name and alias appear first, for | ||||
|     ;; convenience. | ||||
|     (let ((first-items '("Account.username" | ||||
|                          "Account.displayName" | ||||
|                          "Account.alias"))) | ||||
|       (append (map (cut assoc <> account-details) first-items) | ||||
|               (fold alist-delete account-details first-items)))) | ||||
| 
 | ||||
|   (string-join (map pair->recutil-property sorted-account-details) "\n")) | ||||
| 
 | ||||
| ;; Local Variables: | ||||
| ;; eval: (put 'with-retries 'scheme-indent-function 2) | ||||
| ;; End: | ||||
|  | @ -24,6 +24,12 @@ | |||
|   #:use-module (srfi srfi-1) | ||||
|   #:use-module (srfi srfi-26) | ||||
|   #:use-module (ice-9 match) | ||||
|   ;; XXX: Lazy-bind the Shepherd to avoid a compile-time dependency. | ||||
|   #:autoload (shepherd service) (fork+exec-command | ||||
|                                  read-pid-file | ||||
|                                  exec-command | ||||
|                                  %precious-signals) | ||||
|   #:autoload (shepherd system) (unblock-signals) | ||||
|   #:export (make-forkexec-constructor/container | ||||
|             fork+exec-command/container)) | ||||
| 
 | ||||
|  | @ -92,14 +98,6 @@ | |||
|                            (file-exists? (file-system-mapping-source mapping))) | ||||
|                          mappings))))) | ||||
| 
 | ||||
| ;; XXX: Lazy-bind the Shepherd to avoid a compile-time dependency. | ||||
| (module-autoload! (current-module) | ||||
|                   '(shepherd service) | ||||
|                   '(fork+exec-command read-pid-file exec-command | ||||
|                     %precious-signals)) | ||||
| (module-autoload! (current-module) | ||||
|                   '(shepherd system) '(unblock-signals)) | ||||
| 
 | ||||
| (define* (read-pid-file/container pid pid-file #:key (max-delay 5)) | ||||
|   "Read PID-FILE in the container namespaces of PID, which exists in a | ||||
| separate mount and PID name space.  Return the \"outer\" PID. " | ||||
|  |  | |||
							
								
								
									
										22
									
								
								gnu/local.mk
									
										
									
									
									
								
							
							
						
						
									
										22
									
								
								gnu/local.mk
									
										
									
									
									
								
							|  | @ -44,6 +44,7 @@ | |||
| # Copyright © 2021 Philip McGrath <philip@philipmcgrath.com>
 | ||||
| # Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
 | ||||
| # Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
 | ||||
| # Copyright © 2021 Dmitry Polyakov <polyakov@liltechdude.xyz>
 | ||||
| #
 | ||||
| # This file is part of GNU Guix.
 | ||||
| #
 | ||||
|  | @ -687,6 +688,7 @@ GNU_SYSTEM_MODULES =				\ | |||
|   %D%/build/chromium-extension.scm		\
 | ||||
|   %D%/build/cross-toolchain.scm			\
 | ||||
|   %D%/build/image.scm				\
 | ||||
|   %D%/build/jami-service.scm			\
 | ||||
|   %D%/build/file-systems.scm			\
 | ||||
|   %D%/build/hurd-boot.scm			\
 | ||||
|   %D%/build/install.scm				\
 | ||||
|  | @ -724,6 +726,7 @@ GNU_SYSTEM_MODULES =				\ | |||
|   %D%/tests/security-token.scm			\
 | ||||
|   %D%/tests/singularity.scm			\
 | ||||
|   %D%/tests/ssh.scm				\
 | ||||
|   %D%/tests/telephony.scm		        \
 | ||||
|   %D%/tests/version-control.scm			\
 | ||||
|   %D%/tests/virtualization.scm			\
 | ||||
|   %D%/tests/web.scm | ||||
|  | @ -789,7 +792,8 @@ dist_installer_DATA =				\ | |||
| MODULES_NOT_COMPILED +=				\
 | ||||
|   %D%/build/locale.scm				\
 | ||||
|   %D%/build/shepherd.scm			\
 | ||||
|   %D%/build/svg.scm | ||||
|   %D%/build/svg.scm				\
 | ||||
|   %D%/tests/data/jami-dummy-account.dat | ||||
| 
 | ||||
| patchdir = $(guilemoduledir)/%D%/packages/patches | ||||
| dist_patch_DATA =						\
 | ||||
|  | @ -1233,6 +1237,7 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/imagemagick-ReadDCMPixels-fix.patch	\
 | ||||
|   %D%/packages/patches/imagemagick-WriteTHUMBNAILImage-fix.patch	\
 | ||||
|   %D%/packages/patches/inkscape-poppler-0.76.patch		\
 | ||||
|   %D%/packages/patches/instead-use-games-path.patch		\
 | ||||
|   %D%/packages/patches/inkscape-1.1-fix-build-witch-gcc7.5.patch	\
 | ||||
|   %D%/packages/patches/intel-xed-fix-nondeterminism.patch	\
 | ||||
|   %D%/packages/patches/intltool-perl-compatibility.patch	\
 | ||||
|  | @ -1386,6 +1391,9 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/llvm-9-fix-bitcast-miscompilation.patch	\
 | ||||
|   %D%/packages/patches/llvm-9-fix-lpad-miscompilation.patch	\
 | ||||
|   %D%/packages/patches/llvm-9-fix-scev-miscompilation.patch	\
 | ||||
|   %D%/packages/patches/llvm-roc-3.0.0-add_libraries.patch \
 | ||||
|   %D%/packages/patches/llvm-roc-4.0.0-remove-isystem-usr-include.patch \
 | ||||
|   %D%/packages/patches/llvm-roc-4.2.0-add_Object.patch \
 | ||||
|   %D%/packages/patches/lm-sensors-hwmon-attrs.patch		\
 | ||||
|   %D%/packages/patches/lrcalc-includes.patch    		\
 | ||||
|   %D%/packages/patches/lsh-fix-x11-forwarding.patch		\
 | ||||
|  | @ -1490,6 +1498,7 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/ocaml-4.09-multiple-definitions.patch	\
 | ||||
|   %D%/packages/patches/omake-fix-non-determinism.patch	\
 | ||||
|   %D%/packages/patches/oneko-remove-nonfree-characters.patch	\
 | ||||
|   %D%/packages/patches/onnx-optimizer-system-library.patch	\
 | ||||
|   %D%/packages/patches/onnx-use-system-googletest.patch	\
 | ||||
|   %D%/packages/patches/onnx-shared-libraries.patch	\
 | ||||
|   %D%/packages/patches/onnx-skip-model-downloads.patch		\
 | ||||
|  | @ -1522,7 +1531,6 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch \
 | ||||
|   %D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch		\
 | ||||
|   %D%/packages/patches/pthreadpool-system-libraries.patch	\
 | ||||
|   %D%/packages/patches/samba-fix-fcntl-hint-detection.patch		\
 | ||||
|   %D%/packages/patches/sdcc-disable-non-free-code.patch		\
 | ||||
|   %D%/packages/patches/sdl-pango-api_additions.patch		\
 | ||||
|   %D%/packages/patches/sdl-pango-blit_overflow.patch		\
 | ||||
|  | @ -1621,13 +1629,14 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/python-pydot-regression-test.patch	\
 | ||||
|   %D%/packages/patches/python2-pygobject-2-deprecation.patch	\
 | ||||
|   %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch	\
 | ||||
|   %D%/packages/patches/python-pytorch-runpath.patch		\
 | ||||
|   %D%/packages/patches/python-pytorch-system-libraries.patch	\
 | ||||
|   %D%/packages/patches/python-robotframework-source-date-epoch.patch \
 | ||||
|   %D%/packages/patches/python-seaborn-kde-test.patch		\
 | ||||
|   %D%/packages/patches/python2-subprocess32-disable-input-test.patch	\
 | ||||
|   %D%/packages/patches/python-unittest2-python3-compat.patch	\
 | ||||
|   %D%/packages/patches/python-unittest2-remove-argparse.patch	\
 | ||||
|   %D%/packages/patches/python-waitress-fix-tests.patch		\
 | ||||
|   %D%/packages/patches/pypy3-7.3.1-fix-tests.patch		\
 | ||||
|   %D%/packages/patches/qemu-build-info-manual.patch		\
 | ||||
|   %D%/packages/patches/qemu-CVE-2021-20203.patch		\
 | ||||
|   %D%/packages/patches/qemu-meson-compat.patch			\
 | ||||
|  | @ -1664,10 +1673,16 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/rtags-separate-rct.patch			\
 | ||||
|   %D%/packages/patches/racket-minimal-sh-via-rktio.patch	\
 | ||||
|   %D%/packages/patches/remake-impure-dirs.patch			\
 | ||||
|   %D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch	\
 | ||||
|   %D%/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch	\
 | ||||
|   %D%/packages/patches/rnp-add-version.cmake.patch		\
 | ||||
|   %D%/packages/patches/rnp-disable-ruby-rnp-tests.patch		\
 | ||||
|   %D%/packages/patches/rnp-unbundle-googletest.patch		\
 | ||||
|   %D%/packages/patches/rocm-comgr-3.1.0-dependencies.patch \
 | ||||
|   %D%/packages/patches/rocm-opencl-runtime-3.10.0-includes.patch \
 | ||||
|   %D%/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch \
 | ||||
|   %D%/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch \
 | ||||
|   %D%/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch \
 | ||||
|   %D%/packages/patches/ruby-sanitize-system-libxml.patch	\
 | ||||
|   %D%/packages/patches/rust-coresimd-doctest.patch		\
 | ||||
|   %D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch	\
 | ||||
|  | @ -1749,6 +1764,7 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/tuxpaint-stamps-path.patch		\
 | ||||
|   %D%/packages/patches/twinkle-bcg729.patch			\
 | ||||
|   %D%/packages/patches/u-boot-rockchip-inno-usb.patch		\
 | ||||
|   %D%/packages/patches/u-boot-sifive-prevent-reloc-initrd-fdt.patch	\
 | ||||
|   %D%/packages/patches/u-boot-riscv64-fix-extlinux.patch	\
 | ||||
|   %D%/packages/patches/ucx-tcp-iface-ioctl.patch		\
 | ||||
|   %D%/packages/patches/udiskie-no-appindicator.patch		\
 | ||||
|  |  | |||
|  | @ -3440,52 +3440,6 @@ Intel DRM Driver.") | |||
|     (supported-systems '("i686-linux" "x86_64-linux")) | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public fabric | ||||
|   (package | ||||
|     (name "fabric") | ||||
|     (version "1.14.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (pypi-uri "Fabric" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1a3ndlpdw6bhn8fcw1jgznl117a8pnr84az9rb5fwnrypf1ph2b6")))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|      `(#:python ,python-2               ; Python 2 only | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (replace 'check | ||||
|            (lambda _ | ||||
|              (invoke | ||||
|               "nosetests" "-v" "tests/" | ||||
|               ;; This test hangs indefinitely when run on a single core VM | ||||
|               ;; (see GNU bug #26647 and Debian bug #850230). | ||||
|               "--exclude=test_nested_execution_with_explicit_ports" | ||||
|               ;; This test randomly fails in certain environments causing too | ||||
|               ;; much noise to be useful (see Debian bug #854686). | ||||
|               "--exclude=test_should_use_sentinel_for_tasks_that_errored")))))) | ||||
|     (native-inputs | ||||
|      `(("python2-fudge" ,python2-fudge) ; Requires < 1.0 | ||||
|        ("python2-jinja2" ,python2-jinja2) ; Requires < 3.0 | ||||
|        ("python2-nose" ,python2-nose) ; Requires < 2.0 | ||||
|        ("python2-pynacl" ,python2-pynacl) | ||||
|        ("python2-bcrypt" ,python2-bcrypt))) | ||||
|     (propagated-inputs | ||||
|      `(("python2-paramiko" ,python2-paramiko))) | ||||
|     (home-page "https://www.fabfile.org/") | ||||
|     (synopsis "Simple Pythonic remote execution and deployment tool") | ||||
|     (description | ||||
|      "Fabric is designed to upload files and run shell commands on a number of | ||||
| servers in parallel or serially.  These commands are grouped in tasks (which | ||||
| are regular Python functions) and specified in a @dfn{fabfile}. | ||||
| 
 | ||||
| It is similar to Capistrano, except it's implemented in Python and doesn't | ||||
| expect you to be deploying Rails applications.  Fabric is a simple, Pythonic | ||||
| tool for remote execution and deployment.") | ||||
|     (license license:bsd-2))) | ||||
| 
 | ||||
| (define-public neofetch | ||||
|   (package | ||||
|     (name "neofetch") | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ | |||
| ;;; Copyright © 2013, 2015, 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr> | ||||
| ;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org> | ||||
| ;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> | ||||
| ;;; Copyright © 2016, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net> | ||||
| ;;; Copyright © 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr> | ||||
| ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> | ||||
|  | @ -343,7 +343,7 @@ precision.") | |||
| (define-public giac | ||||
|   (package | ||||
|     (name "giac") | ||||
|     (version "1.7.0-23") | ||||
|     (version "1.7.0-25") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -355,7 +355,7 @@ precision.") | |||
|                            "~parisse/debian/dists/stable/main/source/" | ||||
|                            "giac_" version ".tar.gz")) | ||||
|        (sha256 | ||||
|         (base32 "06dv46y4lh8f9pzj7vcimdl2rp1kk5d16q94zq0iajzzcwppqdz1")))) | ||||
|         (base32 "0d11shsifnd5p23iym5h0kqa7bp7p0p25rwvya7hdji2kwvgr3cl")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:modules ((ice-9 ftw) | ||||
|  | @ -1071,6 +1071,33 @@ features, and more.") | |||
|                        "# Do not build the tests for unsupported features.\n")) | ||||
|                     #t))))))) | ||||
| 
 | ||||
| (define-public eigen-for-tensorflow-lite | ||||
|   ;; This commit was taken from | ||||
|   ;; tensorflow/lite/tools/cmake/modules/eigen.cmake | ||||
|   (let ((commit "d10b27fe37736d2944630ecd7557cefa95cf87c9") | ||||
|         (revision "1")) | ||||
|     (package (inherit eigen) | ||||
|       (name "eigen-for-tensorflow-lite") | ||||
|       (version (git-version "3.3.7" revision commit)) | ||||
|       (source (origin | ||||
|                 (method git-fetch) | ||||
|                 (uri (git-reference | ||||
|                       (url "https://gitlab.com/libeigen/eigen") | ||||
|                       (commit commit))) | ||||
|                 (sha256 | ||||
|                  (base32 | ||||
|                   "0v8a20cwvwmp3hw4275b37frw33v92z0mr8f4dn6y8k0rz92hrrf")) | ||||
|                 (file-name (git-file-name name version)) | ||||
|                 (modules '((guix build utils))) | ||||
|                 (snippet | ||||
|                  ;; Ther are test failures in the "unsupported" directory, but | ||||
|                  ;; maintainers say it's unsupported anyway, so just skip | ||||
|                  ;; them. | ||||
|                  '(begin | ||||
|                     (substitute* "unsupported/CMakeLists.txt" | ||||
|                       (("add_subdirectory\\(test.*") | ||||
|                        "# Do not build the tests for unsupported features.\n"))))))))) | ||||
| 
 | ||||
| (define-public xtensor | ||||
|   (package | ||||
|     (name "xtensor") | ||||
|  |  | |||
|  | @ -20,6 +20,7 @@ | |||
| ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> | ||||
| ;;; Copyright © 2021 Timothy Sample <samplet@ngyro.com> | ||||
| ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re> | ||||
| ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -104,6 +105,7 @@ | |||
|        ("par2cmdline" ,par2cmdline) | ||||
|        ("python-fasteners" ,python-fasteners) | ||||
|        ("python-future" ,python-future) ; for tests | ||||
|        ("python-paramiko" ,python-paramiko) | ||||
|        ("python-pexpect" ,python-pexpect) | ||||
|        ("python-pytest" ,python-pytest) | ||||
|        ("python-pytest-runner" ,python-pytest-runner) | ||||
|  | @ -657,12 +659,7 @@ detection, and lossless compression.") | |||
|            ;; Remove bundled shared libraries. | ||||
|            (with-directory-excursion "src/borg/algorithms" | ||||
|              (for-each delete-file-recursively | ||||
|                        (list "blake2" "lz4" "msgpack" "zstd"))) | ||||
|            ;; Purge some msgpack references from setup.py or the resulting | ||||
|            ;; sources will be unbuildable. | ||||
|            (substitute* "setup.py" | ||||
|              ((".*Extension\\('borg\\.algorithms\\.msgpack\\..*") "") | ||||
|              (("msgpack_packer_source, msgpack_unpacker_source") "")) | ||||
|                        (list "blake2" "lz4" "zstd"))) | ||||
|            #t)))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|  | @ -686,12 +683,6 @@ detection, and lossless compression.") | |||
|                ;; HOME=/homeless-shelter. | ||||
|                (setenv "HOME" "/tmp") | ||||
|                #t))) | ||||
|          (add-after 'unpack 'use-system-msgpack | ||||
|            (lambda _ | ||||
|              (substitute* "src/borg/helpers.py" | ||||
|                (("prefer_system_msgpack = False") | ||||
|                 "prefer_system_msgpack = True")) | ||||
|              #t)) | ||||
|          ;; The tests need to be run after Borg is installed. | ||||
|          (delete 'check) | ||||
|          (add-after 'install 'check | ||||
|  | @ -755,10 +746,6 @@ detection, and lossless compression.") | |||
|        ("lz4" ,lz4) | ||||
|        ("openssl" ,openssl) | ||||
|        ("python-llfuse" ,python-llfuse) | ||||
|        ;; The Python msgpack library changed its name so Borg requires this | ||||
|        ;; transitional package for now: | ||||
|        ;; <https://bugs.gnu.org/30662> | ||||
|        ("python-msgpack" ,python-msgpack-transitional) | ||||
|        ("zstd" ,zstd "lib"))) | ||||
|     (synopsis "Deduplicated, encrypted, authenticated and compressed backups") | ||||
|     (description "Borg is a deduplicating backup program.  Optionally, it | ||||
|  | @ -927,7 +914,9 @@ is like a time machine for your data. ") | |||
|               (file-name (string-append name "-" version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1zmh42aah32ah8w5n6ilz9bci0y2xrf8p7qshy3yf1lzm5gnbj0w")))) | ||||
|                 "1zmh42aah32ah8w5n6ilz9bci0y2xrf8p7qshy3yf1lzm5gnbj0w")) | ||||
|               (patches | ||||
|                (search-patches "restic-0.9.6-fix-tests-for-go1.15.patch")))) | ||||
|     (build-system go-build-system) | ||||
|     (arguments | ||||
|      `(#:import-path "github.com/restic/restic" | ||||
|  | @ -944,11 +933,12 @@ is like a time machine for your data. ") | |||
|                (invoke "go" "run" "build.go")))) | ||||
| 
 | ||||
|          (replace 'check | ||||
|            (lambda _ | ||||
|              (with-directory-excursion "src/github.com/restic/restic" | ||||
|                ;; Disable FUSE tests. | ||||
|                (setenv "RESTIC_TEST_FUSE" "0") | ||||
|                (invoke "go" "run" "build.go" "--test")))) | ||||
|            (lambda* (#:key tests? #:allow-other-keys) | ||||
|              (when tests? | ||||
|                (with-directory-excursion "src/github.com/restic/restic" | ||||
|                  ;; Disable FUSE tests. | ||||
|                  (setenv "RESTIC_TEST_FUSE" "0") | ||||
|                  (invoke "go" "run" "build.go" "--test"))))) | ||||
| 
 | ||||
|          (replace 'install | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|  |  | |||
|  | @ -7128,14 +7128,14 @@ information about samples and features can be added to the plot.") | |||
| (define-public r-gosemsim | ||||
|   (package | ||||
|     (name "r-gosemsim") | ||||
|     (version "2.18.0") | ||||
|     (version "2.18.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (bioconductor-uri "GOSemSim" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1fzmaxjzyvq6xj5ny1sjijdwi4krzjgyaz52fczpwrxijq5pnyn1")))) | ||||
|          "00dbgkiv9x7g2i0anzcxpycwqqqry0y7jl3ad93lhvi31qnqq1sm")))) | ||||
|     (properties `((upstream-name . "GOSemSim"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|  | @ -9932,14 +9932,14 @@ self-organizing map clustering and minimal spanning trees.") | |||
| (define-public r-mixomics | ||||
|   (package | ||||
|     (name "r-mixomics") | ||||
|     (version "6.16.2") | ||||
|     (version "6.16.3") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (bioconductor-uri "mixOmics" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0kbljjwm5caf2znqnkhrbmcfsv1mhppp9h491210q477y8bjlkja")))) | ||||
|          "1x6dbw4q6p9vngm256fr96r9fjxk5nik5ivkhbl5a9zqyq8wagpa")))) | ||||
|     (properties `((upstream-name . "mixOmics"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|  | @ -10319,14 +10319,14 @@ regulatory networks from expression data.") | |||
| (define-public r-roc | ||||
|   (package | ||||
|     (name "r-roc") | ||||
|     (version "1.68.0") | ||||
|     (version "1.68.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (bioconductor-uri "ROC" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0ff5rcpyybgjzsfbhaslim0m02n3bksv1r9v7bq0gg0iyzll0rjc")))) | ||||
|          "1rmsrvn6hrg9ay7xfb05mfkxknnig78p3kbk9ghsd11lhx2fjm3s")))) | ||||
|     (properties `((upstream-name . "ROC"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|  | @ -13386,14 +13386,14 @@ functionalities including parsing, graph operation, visualization and etc.") | |||
| (define-public r-ldblock | ||||
|   (package | ||||
|     (name "r-ldblock") | ||||
|     (version "1.22.0") | ||||
|     (version "1.22.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (bioconductor-uri "ldblock" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "075jncvfbn3lydg0jvfhnv5025mnw79saa0k557vpcwdvs9y4p0c")))) | ||||
|          "16vp5psmigxdkkd6fbivb6s8mvd7rsnm771wsbjvayl2y7ig7kq4")))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|      `(("r-biocgenerics" ,r-biocgenerics) | ||||
|  | @ -13661,3 +13661,44 @@ starting site, start codon, stop codon and transcription ending site.") | |||
|      "This package provides flexible, quantitative, and integrative genomic | ||||
| visualizations for publication-quality multi-panel figures.") | ||||
|     (license license:gpl2+))) | ||||
| 
 | ||||
| (define-public r-tximeta | ||||
|   (package | ||||
|     (name "r-tximeta") | ||||
|     (version "1.10.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (bioconductor-uri "tximeta" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0ipgpcl93cac4qff6lp9x2l3gav5kb1x1d56g32h09hlm797rvvh")))) | ||||
|     (properties `((upstream-name . "tximeta"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|      `(("r-annotationdbi" ,r-annotationdbi) | ||||
|        ("r-annotationhub" ,r-annotationhub) | ||||
|        ("r-biocfilecache" ,r-biocfilecache) | ||||
|        ("r-biostrings" ,r-biostrings) | ||||
|        ("r-ensembldb" ,r-ensembldb) | ||||
|        ("r-genomeinfodb" ,r-genomeinfodb) | ||||
|        ("r-genomicfeatures" ,r-genomicfeatures) | ||||
|        ("r-genomicranges" ,r-genomicranges) | ||||
|        ("r-iranges" ,r-iranges) | ||||
|        ("r-jsonlite" ,r-jsonlite) | ||||
|        ("r-matrix" ,r-matrix) | ||||
|        ("r-s4vectors" ,r-s4vectors) | ||||
|        ("r-summarizedexperiment" ,r-summarizedexperiment) | ||||
|        ("r-tibble" ,r-tibble) | ||||
|        ("r-tximport" ,r-tximport))) | ||||
|     (native-inputs | ||||
|      `(("r-knitr" ,r-knitr))) | ||||
|     (home-page "https://github.com/mikelove/tximeta") | ||||
|     (synopsis "Transcript quantification import with automatic metadata") | ||||
|     (description | ||||
|      "This package implements transcript quantification import from Salmon and | ||||
| alevin with automatic attachment of transcript ranges and release information, | ||||
| and other associated metadata.  De novo transcriptomes can be linked to the | ||||
| appropriate sources with linkedTxomes and shared for computational | ||||
| reproducibility.") | ||||
|     (license license:gpl2))) | ||||
|  |  | |||
|  | @ -10380,7 +10380,7 @@ once.  This package provides tools to perform Drop-seq analyses.") | |||
| (define-public pigx-rnaseq | ||||
|   (package | ||||
|     (name "pigx-rnaseq") | ||||
|     (version "0.0.17") | ||||
|     (version "0.0.18") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "https://github.com/BIMSBbioinfo/pigx_rnaseq/" | ||||
|  | @ -10388,7 +10388,7 @@ once.  This package provides tools to perform Drop-seq analyses.") | |||
|                                   "/pigx_rnaseq-" version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0k9zj50bij3sjwq08v8l8waddcx8k66m3vdq8mx5vc23p19qz42s")))) | ||||
|                 "1622l6grmsk0wm859rvllngx29q3v16jjvzcdq2bmrlamccrj82y")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:parallel-tests? #f             ; not supported | ||||
|  | @ -10671,7 +10671,7 @@ based methods.") | |||
| (define-public pigx-sars-cov2-ww | ||||
|   (package | ||||
|     (name "pigx-sars-cov2-ww") | ||||
|     (version "0.0.2") | ||||
|     (version "0.0.3") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "https://github.com/BIMSBbioinfo/pigx_sarscov2_ww/" | ||||
|  | @ -10679,7 +10679,7 @@ based methods.") | |||
|                                   "/pigx_sars-cov2-ww-" version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0yrbza7lbzijjc8ifk06b646n959a4k7id94x3ndz795892f64l0")))) | ||||
|                 "1hhdbwsnl0d37lrmisw5hr630xr8s41qvxflm05anh11rj8n22yw")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (inputs | ||||
|      `(("bash-minimal" ,bash-minimal) | ||||
|  | @ -14735,3 +14735,75 @@ ploidy and allele-specific copy number profiles.") | |||
| copy number estimation, as described by | ||||
| @url{doi:10.1016/j.cell.2012.04.023,Nik-Zainal et al.}") | ||||
|    (license license:gpl3))) | ||||
| 
 | ||||
| (define-public r-spectre | ||||
|   (let ((commit "f6648ab3eb9499300d86502b5d60ec370ae9b61a") | ||||
|         (revision "1")) | ||||
|     (package | ||||
|       (name "r-spectre") | ||||
|       (version (git-version "0.5.5" revision commit)) | ||||
|       (source | ||||
|        (origin | ||||
|          (method git-fetch) | ||||
|          (uri (git-reference | ||||
|                (url "https://github.com/ImmuneDynamics/Spectre") | ||||
|                (commit commit))) | ||||
|          (file-name (git-file-name name version)) | ||||
|          (sha256 | ||||
|           (base32 | ||||
|            "0g38grrhbqqa4bmcilvdyawbkcnax6k4vffx2giywp18mbirmj0x")))) | ||||
|       (properties `((upstream-name . "Spectre"))) | ||||
|       (build-system r-build-system) | ||||
|       (propagated-inputs | ||||
|        `(("r-biobase" ,r-biobase) | ||||
|          ("r-biocmanager" ,r-biocmanager) | ||||
|          ("r-caret" ,r-caret) | ||||
|          ("r-class" ,r-class) | ||||
|          ("r-colorramps" ,r-colorramps) | ||||
|          ("r-data-table" ,r-data-table) | ||||
|          ("r-devtools" ,r-devtools) | ||||
|          ("r-dplyr" ,r-dplyr) | ||||
|          ("r-exactextractr" ,r-exactextractr) | ||||
|          ("r-factoextra" ,r-factoextra) | ||||
|          ("r-flowcore" ,r-flowcore) | ||||
|          ("r-flowsom" ,r-flowsom) | ||||
|          ("r-flowviz" ,r-flowviz) | ||||
|          ("r-fnn" ,r-fnn) | ||||
|          ("r-ggplot2" ,r-ggplot2) | ||||
|          ("r-ggpointdensity" ,r-ggpointdensity) | ||||
|          ("r-ggpubr" ,r-ggpubr) | ||||
|          ("r-ggraph" ,r-ggraph) | ||||
|          ("r-ggthemes" ,r-ggthemes) | ||||
|          ("r-gridextra" ,r-gridextra) | ||||
|          ("r-gridextra" ,r-gridextra) | ||||
|          ("r-gtools" ,r-gtools) | ||||
|          ("r-hdf5array" ,r-hdf5array) | ||||
|          ("r-irlba" ,r-irlba) | ||||
|          ("r-pheatmap" ,r-pheatmap) | ||||
|          ("r-plyr" ,r-plyr) | ||||
|          ("r-qs" ,r-qs) | ||||
|          ("r-raster" ,r-raster) | ||||
|          ("r-rcolorbrewer" ,r-rcolorbrewer) | ||||
|          ("r-rgeos" ,r-rgeos) | ||||
|          ("r-rhdf5" ,r-rhdf5) | ||||
|          ("r-rstudioapi" ,r-rstudioapi) | ||||
|          ("r-rsvd" ,r-rsvd) | ||||
|          ("r-rtsne" ,r-rtsne) | ||||
|          ("r-s2" ,r-s2) | ||||
|          ("r-scales" ,r-scales) | ||||
|          ("r-sf" ,r-sf) | ||||
|          ("r-sp" ,r-sp) | ||||
|          ("r-stars" ,r-stars) | ||||
|          ("r-stringr" ,r-stringr) | ||||
|          ("r-tidygraph" ,r-tidygraph) | ||||
|          ("r-tidyr" ,r-tidyr) | ||||
|          ("r-tidyr" ,r-tidyr) | ||||
|          ("r-tiff" ,r-tiff) | ||||
|          ("r-umap" ,r-umap))) | ||||
|       (home-page "https://github.com/ImmuneDynamics/Spectre") | ||||
|       (synopsis "High-dimensional cytometry and imaging analysis") | ||||
|       (description | ||||
|        "This package provides a computational toolkit in R for the | ||||
| integration, exploration, and analysis of high-dimensional single-cell | ||||
| cytometry and imaging data.") | ||||
|       (license license:expat)))) | ||||
|  |  | |||
|  | @ -56,6 +56,7 @@ | |||
|   #:use-module (gnu packages perl) | ||||
|   #:use-module (gnu packages pkg-config) | ||||
|   #:use-module (gnu packages python) | ||||
|   #:use-module (gnu packages python-crypto) | ||||
|   #:use-module (gnu packages texinfo) | ||||
|   #:use-module (gnu packages tls) | ||||
|   #:use-module (gnu packages sdl) | ||||
|  | @ -492,20 +493,26 @@ tree binary files.  These are board description files used by Linux and BSD.") | |||
|   ;; and https://patchwork.ozlabs.org/project/uboot/patch/20210406151059.1187379-1-icenowy@aosc.io | ||||
|   (search-patch "u-boot-rockchip-inno-usb.patch")) | ||||
| 
 | ||||
| (define %u-boot-sifive-prevent-relocating-initrd-fdt | ||||
|   ;; Fix boot in 2021.07 on Hifive unmatched, see | ||||
|   ;; https://bugs.launchpad.net/ubuntu/+source/u-boot/+bug/1937246 | ||||
|   (search-patch "u-boot-sifive-prevent-reloc-initrd-fdt.patch")) | ||||
| 
 | ||||
| (define u-boot | ||||
|   (package | ||||
|     (name "u-boot") | ||||
|     (version "2021.04") | ||||
|     (version "2021.07") | ||||
|     (source (origin | ||||
| 	      (patches | ||||
|                (list %u-boot-rockchip-inno-usb-patch)) | ||||
|                (list %u-boot-rockchip-inno-usb-patch | ||||
|                      %u-boot-sifive-prevent-relocating-initrd-fdt)) | ||||
|               (method url-fetch) | ||||
|               (uri (string-append | ||||
|                     "https://ftp.denx.de/pub/u-boot/" | ||||
|                     "u-boot-" version ".tar.bz2")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "06p1vymf0dl6jc2xy5w7p42mpgppa46lmpm2ishmgsycnldqnhqd")))) | ||||
|                 "0zm7igkdnz0w4ir8rfl2dislfrl0ip104grs5hvd30a5wkm7wari")))) | ||||
|     (native-inputs | ||||
|      `(("bc" ,bc) | ||||
|        ("bison" ,bison) | ||||
|  | @ -515,6 +522,7 @@ tree binary files.  These are board description files used by Linux and BSD.") | |||
|        ("perl" ,perl) | ||||
|        ("python" ,python) | ||||
|        ("python-coverage" ,python-coverage) | ||||
|        ("python-pycryptodomex" ,python-pycryptodomex) | ||||
|        ("python-pytest" ,python-pytest) | ||||
|        ("swig" ,swig))) | ||||
|     (build-system  gnu-build-system) | ||||
|  | @ -524,21 +532,6 @@ tree binary files.  These are board description files used by Linux and BSD.") | |||
| also initializes the boards (RAM etc).") | ||||
|     (license license:gpl2+))) | ||||
| 
 | ||||
| (define-public u-boot-2021.07 | ||||
|   (package | ||||
|    (inherit u-boot) | ||||
|    (version "2021.07-rc4") | ||||
|    (source (origin | ||||
|              (patches | ||||
|                (list %u-boot-rockchip-inno-usb-patch)) | ||||
|             (method url-fetch) | ||||
|             (uri (string-append | ||||
|                   "https://ftp.denx.de/pub/u-boot/" | ||||
|                   "u-boot-" version ".tar.bz2")) | ||||
|             (sha256 | ||||
|              (base32 | ||||
|               "0bnsywgy2b0jxim5h9dc807lqk5kq8hvgf4lcsmffnc0hf4isv8p")))))) | ||||
| 
 | ||||
| (define-public u-boot-tools | ||||
|   (package | ||||
|     (inherit u-boot) | ||||
|  | @ -567,9 +560,13 @@ also initializes the boards (RAM etc).") | |||
|               ;; This test would require git. | ||||
|               (("\\./tools/patman/patman") (which "true")) | ||||
|               ;; FIXME: test fails, needs further investiation | ||||
|               (("run_test \"binman\"") ": run_test \"binman\"") | ||||
|               (("run_test \"binman\"") "# run_test \"binman\"") | ||||
|               ;; FIXME: test_spl fails, needs further investiation | ||||
|               (("test_ofplatdata or test_handoff or test_spl") | ||||
|                 "test_ofplatdata or test_handoff") | ||||
|               ;; FIXME: code coverage not working | ||||
|               (("run_test \"binman code coverage\"") ": run_test \"binman code coverage\"") | ||||
|               (("run_test \"binman code coverage\"") | ||||
|                "# run_test \"binman code coverage\"") | ||||
|               ;; This test would require internet access. | ||||
|               (("\\./tools/buildman/buildman") (which "true"))) | ||||
|              (substitute* "test/py/tests/test_sandbox_exit.py" | ||||
|  | @ -715,9 +712,6 @@ board-independent tools."))) | |||
|                   uboot-files) | ||||
|                  #t))))))))) | ||||
| 
 | ||||
| (define-public u-boot-vexpress | ||||
|   (make-u-boot-package "vexpress_ca9x4" "arm-linux-gnueabihf")) | ||||
| 
 | ||||
| (define-public u-boot-malta | ||||
|   (make-u-boot-package "malta" "mips64el-linux-gnuabi64")) | ||||
| 
 | ||||
|  | @ -873,15 +867,11 @@ to Novena upstream, does not load u-boot.img from the first partition.") | |||
|                 (patches | ||||
|                  (search-patches "u-boot-riscv64-fix-extlinux.patch"))))))) | ||||
| 
 | ||||
| (define-public u-boot-sifive-fu540 | ||||
|   (make-u-boot-package "sifive_fu540" "riscv64-linux-gnu")) | ||||
| (define-public u-boot-sifive-unleashed | ||||
|   (make-u-boot-package "sifive_unleashed" "riscv64-linux-gnu")) | ||||
| 
 | ||||
| (define-public u-boot-sifive-unmatched | ||||
|   (let ((base (make-u-boot-package "sifive_unmatched" "riscv64-linux-gnu"))) | ||||
|     (package | ||||
|       (inherit base) | ||||
|       (version (package-version u-boot-2021.07)) | ||||
|       (source (package-source u-boot-2021.07))))) | ||||
|   (make-u-boot-package "sifive_unmatched" "riscv64-linux-gnu")) | ||||
| 
 | ||||
| (define-public u-boot-rock64-rk3328 | ||||
|   (let ((base (make-u-boot-package "rock64-rk3328" "aarch64-linux-gnu"))) | ||||
|  | @ -939,9 +929,7 @@ to Novena upstream, does not load u-boot.img from the first partition.") | |||
| (define-public u-boot-pinebook-pro-rk3399 | ||||
|   (let ((base (make-u-boot-package "pinebook-pro-rk3399" "aarch64-linux-gnu"))) | ||||
|     (package | ||||
|      (inherit base) | ||||
|       (version (package-version u-boot-2021.07)) | ||||
|       (source (package-source u-boot-2021.07)) | ||||
|       (inherit base) | ||||
|       (arguments | ||||
|         (substitute-keyword-arguments (package-arguments base) | ||||
|           ((#:phases phases) | ||||
|  |  | |||
|  | @ -49,7 +49,7 @@ supported content to the Kodi media center.") | |||
|   (make-chromium-extension play-to-kodi)) | ||||
| 
 | ||||
| (define uassets | ||||
|   (let ((commit "20d21ad7e92539660c7cde4c5884b3e234854264")) | ||||
|   (let ((commit "54e217d9051831d0d8856286a877962e0f592d45")) | ||||
|     (origin | ||||
|       (method git-fetch) | ||||
|       (uri (git-reference | ||||
|  | @ -58,12 +58,12 @@ supported content to the Kodi media center.") | |||
|       (file-name (git-file-name "uAssets" (string-take commit 9))) | ||||
|       (sha256 | ||||
|        (base32 | ||||
|         "1xcl4qnvjb4pv3fajpmycg1i0xqsah2qakhq2figvyrq991pldy1"))))) | ||||
|         "1xhxadm6qyph6kkq3gxg1rar1psb586mniwp7bkyj5zpzzj31wmj"))))) | ||||
| 
 | ||||
| (define ublock-origin | ||||
|   (package | ||||
|     (name "ublock-origin") | ||||
|     (version "1.36.0") | ||||
|     (version "1.37.2") | ||||
|     (home-page "https://github.com/gorhill/uBlock") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|  | @ -71,7 +71,7 @@ supported content to the Kodi media center.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1r3aic18zkz8s3v1a2kffidp4swzbxnq0h8444bif9myjffnpxpj")))) | ||||
|                 "1c1dh9kkimvahs9yw1hv67290h8xvmbl10film7g1wamdxydj97y")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (outputs '("xpi" "firefox" "chromium")) | ||||
|     (arguments | ||||
|  |  | |||
|  | @ -58,8 +58,6 @@ | |||
|   #:use-module (gnu packages protobuf) | ||||
|   #:use-module (gnu packages pulseaudio) | ||||
|   #:use-module (gnu packages python) | ||||
|   #:use-module (gnu packages python-web) | ||||
|   #:use-module (gnu packages python-xyz) | ||||
|   #:use-module (gnu packages regex) | ||||
|   #:use-module (gnu packages serialization) | ||||
|   #:use-module (gnu packages speech) | ||||
|  | @ -111,7 +109,10 @@ | |||
|     "third_party/catapult" ;BSD-3 | ||||
|     "third_party/catapult/common/py_vulcanize/third_party/rcssmin" ;ASL2.0 | ||||
|     "third_party/catapult/common/py_vulcanize/third_party/rjsmin" ;ASL2.0 | ||||
|     "third_party/catapult/third_party/beautifulsoup4" ;Expat | ||||
|     "third_party/catapult/third_party/html5lib-python" ;Expat | ||||
|     "third_party/catapult/third_party/polymer" ;BSD-3 | ||||
|     "third_party/catapult/third_party/six" ;Expat | ||||
|     ;; XXX: This is a minified version of <https://d3js.org/>. | ||||
|     "third_party/catapult/tracing/third_party/d3" ;BSD-3 | ||||
|     "third_party/catapult/tracing/third_party/gl-matrix" ;Expat | ||||
|  | @ -138,7 +139,7 @@ | |||
|     "third_party/devtools-frontend/src/front_end/third_party/axe-core" ;MPL2.0 | ||||
|     "third_party/devtools-frontend/src/front_end/third_party/chromium" ;BSD-3 | ||||
|     "third_party/devtools-frontend/src/front_end/third_party/codemirror" ;Expat | ||||
|     "third_party/devtools-frontend/src/front_end/third_party/fabricjs" ;Expat | ||||
|     "third_party/devtools-frontend/src/front_end/third_party/diff" ;ASL2.0 | ||||
|     "third_party/devtools-frontend/src/front_end/third_party/i18n" ;ASL2.0 | ||||
|     "third_party/devtools-frontend/src/front_end/third_party/intl-messageformat" ;BSD-3 | ||||
|     "third_party/devtools-frontend/src/front_end/third_party/lighthouse" ;ASL2.0 | ||||
|  | @ -299,6 +300,7 @@ | |||
| 
 | ||||
|     "third_party/zlib/google" ;BSD-3 | ||||
|     "third_party/zxcvbn-cpp" ;Expat | ||||
|     "tools/grit/third_party/six" ;Expat | ||||
|     "url/third_party/mozilla" ;BSD-3, MPL1.1/GPL2+/LGPL2.1+ | ||||
|     "v8/src/third_party/siphash" ;Public domain | ||||
|     "v8/src/third_party/utf8-decoder" ;Expat | ||||
|  | @ -322,11 +324,11 @@ | |||
|                   (string-append "ungoogled-chromium-" category "-" name)))) | ||||
|     (sha256 (base32 hash)))) | ||||
| 
 | ||||
| (define %chromium-version "91.0.4472.164") | ||||
| (define %chromium-version "92.0.4515.131") | ||||
| (define %debian-revision "debian/90.0.4430.85-1") | ||||
| ;; Note: use 'git describe --long' even for exact tags to placate the | ||||
| ;; custom version format for ungoogled-chromium. | ||||
| (define %ungoogled-revision "91.0.4472.114-1-0-ga9eb6fd") | ||||
| (define %ungoogled-revision "92.0.4515.131-1-0-g4a9534c") | ||||
| 
 | ||||
| (define %debian-patches | ||||
|   (list (debian-patch "fixes/nomerge.patch" | ||||
|  | @ -346,7 +348,7 @@ | |||
|     (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision)) | ||||
|     (sha256 | ||||
|      (base32 | ||||
|       "1xb5g3hybaiwn3y1zw1fxd3g0zwmvplrs06sdqnxzsr1qm8b874h")))) | ||||
|       "1nbgknj5ba116y47sxbp7pbma1bp0lmkyi3vk915x837ysaf6mrd")))) | ||||
| 
 | ||||
| (define %guix-patches | ||||
|   (list (local-file | ||||
|  | @ -401,11 +403,6 @@ | |||
| 
 | ||||
|           (format #t "Replacing GN files...~%") | ||||
|           (force-output) | ||||
|           ;; XXX: Chromium no longer relies on overriding ICU's UCHAR_TYPE, | ||||
|           ;; but the unbundling code was not updated.  Remove for M92. | ||||
|           (substitute* "build/linux/unbundle/icu.gn" | ||||
|             (("\"UCHAR_TYPE=uint16_t\",") | ||||
|              "")) | ||||
|           (substitute* "tools/generate_shim_headers/generate_shim_headers.py" | ||||
|             ;; The "is_official_build" configure option enables certain | ||||
|             ;; release optimizations like those used in the commercial | ||||
|  | @ -417,8 +414,7 @@ | |||
|                   "--system-libraries" "ffmpeg" "flac" "fontconfig" | ||||
|                   "freetype" "harfbuzz-ng" "icu" "libdrm" "libevent" | ||||
|                   "libjpeg" "libpng" "libwebp" "libxml" "libxslt" | ||||
|                   "openh264" "opus" "snappy" "zlib") | ||||
|           #t)))) | ||||
|                   "openh264" "opus" "snappy" "zlib"))))) | ||||
| 
 | ||||
| (define opus+custom | ||||
|   (package/inherit opus | ||||
|  | @ -488,7 +484,7 @@ | |||
|                                   %chromium-version ".tar.xz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1g96hk72ds2b0aymgw7yjr0akgx7mkp17i99nk511ncnmni6zrc4")) | ||||
|                 "0fnfyh61w6dmavvfbf2x1zzrby0xpx4jd4ifjsgyc39rsl789b5n")) | ||||
|               (modules '((guix build utils))) | ||||
|               (snippet (force ungoogled-chromium-snippet)))) | ||||
|     (build-system gnu-build-system) | ||||
|  | @ -654,9 +650,7 @@ | |||
|                (("third_party/vulkan_headers/include/") "")) | ||||
| 
 | ||||
|              (substitute* "third_party/skia/include/gpu/vk/GrVkVulkan.h" | ||||
|                (("include/third_party/vulkan/") "")) | ||||
| 
 | ||||
|              #t)) | ||||
|                (("include/third_party/vulkan/") "")))) | ||||
|          (add-after 'patch-stuff 'add-absolute-references | ||||
|            (lambda* (#:key inputs #:allow-other-keys) | ||||
|              (let ((cups (assoc-ref inputs "cups")) | ||||
|  | @ -684,8 +678,7 @@ | |||
|                  (("libEGL\\.so\\.1") | ||||
|                   (string-append mesa "/lib/libEGL.so.1")) | ||||
|                  (("libGLESv2\\.so\\.2") | ||||
|                   (string-append mesa "/lib/libGLESv2.so.2"))) | ||||
|                #t))) | ||||
|                   (string-append mesa "/lib/libGLESv2.so.2")))))) | ||||
|          (add-before 'configure 'prepare-build-environment | ||||
|            (lambda* (#:key inputs #:allow-other-keys) | ||||
| 
 | ||||
|  | @ -722,9 +715,7 @@ | |||
|              ;; XXX: How portable is this. | ||||
|              (mkdir-p "third_party/node/linux/node-linux-x64") | ||||
|              (symlink (string-append (assoc-ref inputs "node") "/bin") | ||||
|                       "third_party/node/linux/node-linux-x64/bin") | ||||
| 
 | ||||
|              #t)) | ||||
|                       "third_party/node/linux/node-linux-x64/bin"))) | ||||
|          (replace 'configure | ||||
|            (lambda* (#:key configure-flags #:allow-other-keys) | ||||
|              (let ((args (string-join configure-flags " "))) | ||||
|  | @ -752,8 +743,7 @@ | |||
|                        (setrlimit 'nofile 2048 #f)) | ||||
|                    (format #t | ||||
|                            "increased maximum number of open files from ~d to ~d~%" | ||||
|                            soft (if hard (min hard 2048) 2048))))) | ||||
|              #t)) | ||||
|                            soft (if hard (min hard 2048) 2048))))))) | ||||
|          (replace 'build | ||||
|            (lambda* (#:key (parallel-build? #t) #:allow-other-keys) | ||||
|              (invoke "ninja" "-C" "out/Release" | ||||
|  | @ -830,8 +820,7 @@ | |||
|                       (mkdir-p icons) | ||||
|                       (copy-file (string-append "product_logo_" size ".png") | ||||
|                                  (string-append icons "/chromium.png")))) | ||||
|                   '("24" "48" "64" "128" "256"))) | ||||
|                #t)))))) | ||||
|                   '("24" "48" "64" "128" "256"))))))))) | ||||
|     (native-inputs | ||||
|      `(("bison" ,bison) | ||||
|        ("clang" ,clang-11) | ||||
|  | @ -842,13 +831,14 @@ | |||
|        ("node" ,node) | ||||
|        ("pkg-config" ,pkg-config) | ||||
|        ("which" ,which) | ||||
| 
 | ||||
|        ;; This file contains defaults for new user profiles. | ||||
|        ("master-preferences" ,(local-file "aux-files/chromium/master-preferences.json")) | ||||
| 
 | ||||
|        ("python-beautifulsoup4" ,python2-beautifulsoup4) | ||||
|        ("python-html5lib" ,python2-html5lib) | ||||
|        ("python" ,python-2) | ||||
|        ;; Try unbundling these when upstream has completed its Python 3 transition. | ||||
|        ;; ("python-beautifulsoup4" ,python-beautifulsoup4) | ||||
|        ;; ("python-html5lib" ,python-html5lib) | ||||
|        ("python2" ,python-2) | ||||
|        ("python" ,python-wrapper) | ||||
|        ("wayland-scanner" ,wayland))) | ||||
|     (inputs | ||||
|      `(("alsa-lib" ,alsa-lib) | ||||
|  | @ -888,6 +878,9 @@ | |||
|        ("libxscrnsaver" ,libxscrnsaver) | ||||
|        ("libxslt" ,libxslt) | ||||
|        ("libxtst" ,libxtst) | ||||
|        ;; Newer kernel headers are required for userfaultfd support; remove | ||||
|        ;; after 'core-updates' merge. | ||||
|        ("linux-libre-headers" ,linux-libre-headers-5.10) | ||||
|        ("mesa" ,mesa) | ||||
|        ("minizip" ,minizip) | ||||
|        ("mit-krb5" ,mit-krb5) | ||||
|  |  | |||
|  | @ -2291,12 +2291,21 @@ reading from and writing to ZIP archives. ") | |||
|                (base32 | ||||
|                 "0nlzwnv6wh2yjyyv27f81jnvmk7psgpbnw7dsdp7frfkya569hgv")))) | ||||
|     (build-system meson-build-system) | ||||
|     (arguments | ||||
|      `(#:phases (modify-phases %standard-phases | ||||
|                   (add-after 'unpack 'patch-paths | ||||
|                     (lambda* (#:key inputs #:allow-other-keys) | ||||
|                       (substitute* "src/zck_gen_zdict.c" | ||||
|                         (("/usr/bin/zstd") | ||||
|                          (string-append (assoc-ref inputs "zstd") | ||||
|                                         "/bin/zstd")))))))) | ||||
|     (native-inputs | ||||
|      `(("pkg-config" ,pkg-config))) | ||||
|     (inputs | ||||
|      `(("curl" ,curl))) | ||||
|      `(("curl" ,curl) | ||||
|        ("zstd" ,zstd))) | ||||
|     (propagated-inputs | ||||
|      `(("zstd" ,zstd "lib")))           ;in Requires.private of zck.pc | ||||
|      `(("zstd:lib" ,zstd "lib")))       ;in Requires.private of zck.pc | ||||
|     (home-page "https://github.com/zchunk/zchunk") | ||||
|     (synopsis "Compressed file format for efficient deltas") | ||||
|     (description "The zchunk compressed file format allows splitting a file | ||||
|  |  | |||
|  | @ -591,14 +591,14 @@ variables.") | |||
| (define-public r-ggpp | ||||
|   (package | ||||
|     (name "r-ggpp") | ||||
|     (version "0.4.1") | ||||
|     (version "0.4.2") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "ggpp" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "17j8b46vn0kdpm7x6xyfqzz3la8mwzhjql6dbgyvqnrylbx4svyl")))) | ||||
|          "0m2wq9kqlxqxlzyx9fd0c4iw6qb7kpjrq7fqqa2kvwyj79vx6ahj")))) | ||||
|     (properties `((upstream-name . "ggpp"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|  | @ -638,21 +638,19 @@ variables.") | |||
| (define-public r-ggpmisc | ||||
|   (package | ||||
|     (name "r-ggpmisc") | ||||
|     (version "0.4.0") | ||||
|     (version "0.4.2") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (cran-uri "ggpmisc" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1vfzhpd4bqskq1sxh60dkab02m51g0dhj9i8mfqqbakhmkqggxa3")))) | ||||
|                 "0ma0xcwjgj0sp9483s2y62ylv992dqjxqfgb3zl8f1pksypqdbac")))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|      `(("r-dplyr" ,r-dplyr) | ||||
|        ("r-generics" ,r-generics) | ||||
|        ("r-glue" ,r-glue) | ||||
|        ("r-ggplot2" ,r-ggplot2) | ||||
|        ("r-ggpp" ,r-ggpp) | ||||
|        ("r-gridextra" ,r-gridextra) | ||||
|        ("r-lubridate" ,r-lubridate) | ||||
|        ("r-mass" ,r-mass) | ||||
|        ("r-plyr" ,r-plyr) | ||||
|  | @ -661,10 +659,7 @@ variables.") | |||
|        ("r-rlang" ,r-rlang) | ||||
|        ("r-scales" ,r-scales) | ||||
|        ("r-splus2r" ,r-splus2r) | ||||
|        ("r-stringr" ,r-stringr) | ||||
|        ("r-tibble" ,r-tibble) | ||||
|        ("r-xts" ,r-xts) | ||||
|        ("r-zoo" ,r-zoo))) | ||||
|        ("r-tibble" ,r-tibble))) | ||||
|     (native-inputs | ||||
|      `(("r-knitr" ,r-knitr))) | ||||
|     (home-page "https://www.r4photobiology.info/") | ||||
|  | @ -2774,20 +2769,18 @@ including functions for geolocation and routing.") | |||
| (define-public r-haven | ||||
|   (package | ||||
|     (name "r-haven") | ||||
|     (version "2.4.1") | ||||
|     (version "2.4.3") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "haven" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1san6dc7kg2wy6f1jr5p1br28zdrand8wwgg7p6xxnx45h773320")) | ||||
|          "0pr9jcdk1r9pi9iz0xm1g5yy5qyjk5r7hh9467abx4kpwx3hzdwm")) | ||||
|        (modules '((guix build utils))) | ||||
|        (snippet | ||||
|         '(begin | ||||
|             ;; unvendor readstat | ||||
|            (delete-file-recursively "src/readstat") | ||||
|            #t)))) | ||||
|         ;; unvendor readstat | ||||
|         '(delete-file-recursively "src/readstat")))) | ||||
|     (build-system r-build-system) | ||||
|     (arguments | ||||
|      '(#:phases | ||||
|  | @ -2796,8 +2789,7 @@ including functions for geolocation and routing.") | |||
|            (lambda _ | ||||
|              ;; Not required, since we’re not building readstat. | ||||
|              (substitute* "src/Makevars" | ||||
|                (("-lz") "-lreadstat")) | ||||
|              #t))))) | ||||
|                (("-lz") "-lreadstat"))))))) | ||||
|     (inputs | ||||
|      `(("readstat" ,readstat))) | ||||
|     (native-inputs | ||||
|  | @ -2812,10 +2804,10 @@ including functions for geolocation and routing.") | |||
|        ("r-tidyselect" ,r-tidyselect) | ||||
|        ("r-vctrs" ,r-vctrs))) | ||||
|     (home-page "https://haven.tidyverse.org") | ||||
|     (synopsis "Import and Export 'SPSS', 'Stata' and 'SAS' Files") | ||||
|     (synopsis "Import and export SPSS, Stata and SAS files") | ||||
|     (description | ||||
|      "This package lets you mport foreign statistical formats into R via the | ||||
| embedded @url{https://github.com/WizardMac/ReadStat,ReadStat} C library.") | ||||
|      "This package lets you import foreign statistical formats into R via the | ||||
| @url{https://github.com/WizardMac/ReadStat,ReadStat} C library.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public r-amap | ||||
|  | @ -8427,14 +8419,14 @@ hierarchical models using Markov Chain Monte Carlo (MCMC) simulation.") | |||
| (define-public r-rbibutils | ||||
|   (package | ||||
|     (name "r-rbibutils") | ||||
|     (version "2.2.1") | ||||
|     (version "2.2.2") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "rbibutils" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "16z79rvxkgdg0xq21f5aykikg6vjaiw1p9j9q42k2bz8qdswfd3b")))) | ||||
|          "0ks43z6vvdz0d0jv5d2qrm12yb4cwvi7p3kjk6byi4farhh368di")))) | ||||
|     (properties `((upstream-name . "rbibutils"))) | ||||
|     (build-system r-build-system) | ||||
|     (home-page "https://geobosh.github.io/rbibutils/") | ||||
|  | @ -10296,24 +10288,24 @@ analysis.") | |||
| (define-public r-tab | ||||
|   (package | ||||
|     (name "r-tab") | ||||
|     (version "4.1.1") | ||||
|     (version "5.1.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "tab" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0ds8n6gncidb66in7hlqkcmil5yfsf7ihqvmls789hrm2iz9xlfm")))) | ||||
|          "1kg8c1safi9klkx2mdkmsf5dn9piy4jljwd4ma7g4jz2rwl4jzhv")))) | ||||
|     (properties `((upstream-name . "tab"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|      `(("r-dplyr" ,r-dplyr) | ||||
|        ("r-gee" ,r-gee) | ||||
|        ("r-kableextra" ,r-kableextra) | ||||
|        ("r-knitr" ,r-knitr) | ||||
|        ("r-mass" ,r-mass) | ||||
|        ("r-survey" ,r-survey) | ||||
|        ("r-survival" ,r-survival) | ||||
|        ("r-xtable" ,r-xtable))) | ||||
|        ("r-survey" ,r-survey))) | ||||
|     (native-inputs | ||||
|      `(("r-knitr" ,r-knitr))) | ||||
|     (home-page "https://cran.r-project.org/web/packages/tab/") | ||||
|     (synopsis "Create summary tables for statistical reports") | ||||
|     (description | ||||
|  | @ -11723,14 +11715,14 @@ address a bug.") | |||
| (define-public r-rcppannoy | ||||
|   (package | ||||
|     (name "r-rcppannoy") | ||||
|     (version "0.0.18") | ||||
|     (version "0.0.19") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "RcppAnnoy" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0n68cf77gz34iq6w6ad87pbqwqam45nxp1gjzns4g6qhf7qdvrz4")))) | ||||
|          "12k8ny981dmky5js8yl6bih5r5mq3w43f2f9admhkwqn0n80kcl9")))) | ||||
|     (properties `((upstream-name . "RcppAnnoy"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|  | @ -16990,14 +16982,14 @@ package.") | |||
| (define-public r-ggplotify | ||||
|   (package | ||||
|     (name "r-ggplotify") | ||||
|     (version "0.0.7") | ||||
|     (version "0.0.8") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "ggplotify" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1vx2fg91ivssrxr4kzs9737hr8bsfs0q5pvd7lck7ffjpkjbclhh")))) | ||||
|          "08c9vxm8pg6l5g3r7wsfgzsq00xdrc6v4xnn7pd3qcyw7cc8s969")))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|      `(("r-ggplot2" ,r-ggplot2) | ||||
|  | @ -21003,14 +20995,14 @@ provided as well.") | |||
| (define-public r-tuner | ||||
|   (package | ||||
|     (name "r-tuner") | ||||
|     (version "1.3.3") | ||||
|     (version "1.3.3.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "tuneR" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0av978m4h2iqazyfq6n2cgkh4wpllihh7s29lah2nb8ngc0w5hxx")))) | ||||
|          "12nixpqrc5gp7p2clr7ia6jwb0jq2i3brlxiwlp00ixmnm5g1jyd")))) | ||||
|     (properties `((upstream-name . "tuneR"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs `(("r-signal" ,r-signal))) | ||||
|  | @ -25815,14 +25807,14 @@ simple interface for all functions.") | |||
| (define-public r-iml | ||||
|   (package | ||||
|     (name "r-iml") | ||||
|     (version "0.10.0") | ||||
|     (version "0.10.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "iml" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0xm3q42qahq798ilgg050df0mahhbdfd3fx3i7cpx606h38si0x7")))) | ||||
|          "1wz6xqhvqkzj723nw7qrlwb1171wvvpxhv3pa8cq7vcbkiflq37r")))) | ||||
|     (properties `((upstream-name . "iml"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|  | @ -25832,7 +25824,7 @@ simple interface for all functions.") | |||
|        ("r-future" ,r-future) | ||||
|        ("r-future-apply" ,r-future-apply) | ||||
|        ("r-ggplot2" ,r-ggplot2) | ||||
|        ("r-gridextra" ,r-gridextra) | ||||
|        ("r-keras" ,r-keras) | ||||
|        ("r-metrics" ,r-metrics) | ||||
|        ("r-prediction" ,r-prediction) | ||||
|        ("r-r6" ,r-r6))) | ||||
|  | @ -27716,16 +27708,18 @@ data (variant call format, e.g. VCF or BCF) or meta-analysis results in R.") | |||
| (define-public r-maldiquant | ||||
|   (package | ||||
|     (name "r-maldiquant") | ||||
|     (version "1.19.3") | ||||
|     (version "1.20") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "MALDIquant" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0b7kdz3x4sdq413h1q09l1qhcvdnnwv6fqsqwllks1cd3xy34c57")))) | ||||
|          "1h9i158czlzwbn5zakkqd2ggc9g90r73vdspmp6kgfcmy9frvwzz")))) | ||||
|     (properties `((upstream-name . "MALDIquant"))) | ||||
|     (build-system r-build-system) | ||||
|     (native-inputs | ||||
|      `(("r-knitr" ,r-knitr))) | ||||
|     (home-page "https://cran.r-project.org/web/packages/MALDIquant") | ||||
|     (synopsis "Quantitative analysis of mass spectrometry data") | ||||
|     (description | ||||
|  | @ -29957,3 +29951,231 @@ applications.  The OpenCPU server runs either as a single-user development | |||
| server within the interactive R session, or as a multi-user stack based on | ||||
| Apache2.") | ||||
|     (license license:asl2.0))) | ||||
| 
 | ||||
| (define-public r-exactextractr | ||||
|   (package | ||||
|     (name "r-exactextractr") | ||||
|     (version "0.6.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "exactextractr" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1xnccadbj03h7m81ix5qn0hx918xc9hbxnzgv5lr3hf8b26i9wni")))) | ||||
|     (properties `((upstream-name . "exactextractr"))) | ||||
|     (build-system r-build-system) | ||||
|     (inputs `(("geos" ,geos))) | ||||
|     (propagated-inputs | ||||
|      `(("r-raster" ,r-raster) | ||||
|        ("r-rcpp" ,r-rcpp) | ||||
|        ("r-sf" ,r-sf))) | ||||
|     (native-inputs | ||||
|      `(("r-knitr" ,r-knitr))) | ||||
|     (home-page "https://isciences.gitlab.io/exactextractr/") | ||||
|     (synopsis "Fast extraction from raster datasets using polygons") | ||||
|     (description | ||||
|      "This package provides a replacement for the @code{extract} function from | ||||
| the @code{raster} package that is suitable for extracting raster values using | ||||
| @code{sf} polygons.") | ||||
|     (license license:asl2.0))) | ||||
| 
 | ||||
| (define-public r-stringfish | ||||
|   (package | ||||
|     (name "r-stringfish") | ||||
|     (version "0.15.2") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "stringfish" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0m8485p1gb5z2n2g5nyr38zixw4iv8xxm7bxspxlxvx6alhn03pn")))) | ||||
|     (properties `((upstream-name . "stringfish"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|      `(("r-rcpp" ,r-rcpp) | ||||
|        ("r-rcppparallel" ,r-rcppparallel))) | ||||
|     (native-inputs | ||||
|      `(("pkg-config" ,pkg-config) | ||||
|        ("r-knitr" ,r-knitr))) | ||||
|     (home-page "https://github.com/traversc/stringfish") | ||||
|     (synopsis "Alternative string implementation") | ||||
|     (description | ||||
|      "This package provides an extendable, performant and multithreaded | ||||
| @code{alt-string} implementation backed by C++ vectors and strings.") | ||||
|     (license license:gpl3))) | ||||
| 
 | ||||
| (define-public r-rapiserialize | ||||
|   (package | ||||
|     (name "r-rapiserialize") | ||||
|     (version "0.1.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "RApiSerialize" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0gm2j8kh40imhncwwx1sx9kmraaxcxycvgwls53lcyy2ap344k9j")))) | ||||
|     (properties `((upstream-name . "RApiSerialize"))) | ||||
|     (build-system r-build-system) | ||||
|     (home-page | ||||
|      "https://cran.r-project.org/package=RApiSerialize") | ||||
|     (synopsis "R API serialization") | ||||
|     (description | ||||
|      "This package provides other packages with access to the internal R | ||||
| serialization code.  Access to this code is provided at the C function level | ||||
| by using the registration of native function mechanism.  Client packages | ||||
| simply include a single header file RApiSerializeAPI.h provided by this | ||||
| package.") | ||||
|     (license license:gpl2+))) | ||||
| 
 | ||||
| (define-public r-qs | ||||
|   (package | ||||
|     (name "r-qs") | ||||
|     (version "0.25.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "qs" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0qzrhc5jsygj813k956b00h4b6haynz44rk6a4v34fv4ywq9ba7w")))) | ||||
|     (properties `((upstream-name . "qs"))) | ||||
|     (build-system r-build-system) | ||||
|     (inputs `(("zlib" ,zlib))) | ||||
|     (propagated-inputs | ||||
|      `(("r-rapiserialize" ,r-rapiserialize) | ||||
|        ("r-rcpp" ,r-rcpp) | ||||
|        ("r-stringfish" ,r-stringfish))) | ||||
|     (native-inputs | ||||
|      `(("pkg-config" ,pkg-config) | ||||
|        ("r-knitr" ,r-knitr))) | ||||
|     (home-page "https://github.com/traversc/qs") | ||||
|     (synopsis "Quick serialization of R objects") | ||||
|     (description | ||||
|      "This package provides functions for quickly writing and reading any R | ||||
| object to and from disk.") | ||||
|     (license license:gpl3))) | ||||
| 
 | ||||
| (define-public r-rgeos | ||||
|   (package | ||||
|     (name "r-rgeos") | ||||
|     (version "0.5-5") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "rgeos" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "086l0qk3p4jq23bs91c4a65x4qz99z0hy0vsnvfqfvppdzz0vajb")))) | ||||
|     (properties `((upstream-name . "rgeos"))) | ||||
|     (build-system r-build-system) | ||||
|     (inputs | ||||
|      `(("geos" ,geos))) | ||||
|     (propagated-inputs | ||||
|      `(("r-sp" ,r-sp))) | ||||
|     (home-page "https://cran.r-project.org/package=rgeos") | ||||
|     (synopsis "Interface to Geometry Engine (GEOS)") | ||||
|     (description | ||||
|      "This package provides an R interface to Geometry Engine (GEOS) using the | ||||
| C API for topology operations on geometries.") | ||||
|     (license license:gpl2+))) | ||||
| 
 | ||||
| (define-public r-tfruns | ||||
|   (package | ||||
|     (name "r-tfruns") | ||||
|     (version "1.5.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "tfruns" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "04lfckg1if3kfwcl4s4fcc9aw04crwk4m1qr55ag22j2x2jlb2l9")))) | ||||
|     (properties `((upstream-name . "tfruns"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|      `(("r-base64enc" ,r-base64enc) | ||||
|        ("r-config" ,r-config) | ||||
|        ("r-jsonlite" ,r-jsonlite) | ||||
|        ("r-magrittr" ,r-magrittr) | ||||
|        ("r-reticulate" ,r-reticulate) | ||||
|        ("r-rlang" ,r-rlang) | ||||
|        ("r-rstudioapi" ,r-rstudioapi) | ||||
|        ("r-tidyselect" ,r-tidyselect) | ||||
|        ("r-whisker" ,r-whisker) | ||||
|        ("r-yaml" ,r-yaml))) | ||||
|     (native-inputs `(("r-knitr" ,r-knitr))) | ||||
|     (home-page "https://github.com/rstudio/tfruns") | ||||
|     (synopsis "Training run tools for TensorFlow") | ||||
|     (description | ||||
|      "Create and manage unique directories for each TensorFlow training run. | ||||
| This package provides a unique, time stamped directory for each run along with | ||||
| functions to retrieve the directory of the latest run or latest several | ||||
| runs.") | ||||
|     (license license:asl2.0))) | ||||
| 
 | ||||
| (define-public r-tensorflow | ||||
|   (package | ||||
|     (name "r-tensorflow") | ||||
|     (version "2.5.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "tensorflow" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "00g9w4xmdyjl4578kmhng58k7afjkj2vwgcq2ik8rqwljkcz5pph")))) | ||||
|     (properties `((upstream-name . "tensorflow"))) | ||||
|     (build-system r-build-system) | ||||
|     (inputs `(("tensorflow" ,tensorflow))) | ||||
|     (propagated-inputs | ||||
|      `(("r-config" ,r-config) | ||||
|        ("r-jsonlite" ,r-jsonlite) | ||||
|        ("r-processx" ,r-processx) | ||||
|        ("r-reticulate" ,r-reticulate) | ||||
|        ("r-rstudioapi" ,r-rstudioapi) | ||||
|        ("r-tfruns" ,r-tfruns) | ||||
|        ("r-yaml" ,r-yaml))) | ||||
|     (home-page "https://github.com/rstudio/tensorflow") | ||||
|     (synopsis "R interface to TensorFlow") | ||||
|     (description | ||||
|      "R interface to TensorFlow a library for numerical computation using data | ||||
| flow graphs.  Nodes in the graph represent mathematical operations, while the | ||||
| graph edges represent the multidimensional data arrays (tensors) communicated | ||||
| between them.") | ||||
|     (license license:asl2.0))) | ||||
| 
 | ||||
| (define-public r-keras | ||||
|   (package | ||||
|     (name "r-keras") | ||||
|     (version "2.4.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (cran-uri "keras" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "00bw5f5d81md8db1k6bf2a91by4k25xvlwxiwv188y4vw3bfc7md")))) | ||||
|     (properties `((upstream-name . "keras"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|      `(("r-generics" ,r-generics) | ||||
|        ("r-magrittr" ,r-magrittr) | ||||
|        ("r-r6" ,r-r6) | ||||
|        ("r-reticulate" ,r-reticulate) | ||||
|        ("r-rlang" ,r-rlang) | ||||
|        ("r-tensorflow" ,r-tensorflow) | ||||
|        ("r-tfruns" ,r-tfruns) | ||||
|        ("r-zeallot" ,r-zeallot))) | ||||
|     (native-inputs `(("r-knitr" ,r-knitr))) | ||||
|     (home-page "https://keras.rstudio.com") | ||||
|     (synopsis "R Interface to 'Keras'") | ||||
|     (description | ||||
|      "This package provides an interface to Keras, a high-level neural | ||||
| networks API.  Keras was developed with a focus on enabling fast | ||||
| experimentation, supports both convolution based networks and recurrent | ||||
| networks (as well as combinations of the two), and runs seamlessly on both CPU | ||||
| and GPU devices.") | ||||
|     (license license:expat))) | ||||
|  |  | |||
|  | @ -5716,6 +5716,37 @@ programs.") | |||
|         ("rust-parking" ,rust-parking-1) | ||||
|         ("rust-waker-fn" ,rust-waker-fn-1)))))) | ||||
| 
 | ||||
| (define-public rust-boomphf-0.5 | ||||
|   (package | ||||
|     (name "rust-boomphf") | ||||
|     (version "0.5.9") | ||||
|     (source | ||||
|       (origin | ||||
|         (method url-fetch) | ||||
|         (uri (crate-uri "boomphf" version)) | ||||
|         (file-name | ||||
|          (string-append name "-" version ".tar.gz")) | ||||
|         (sha256 | ||||
|          (base32 "0braniw72g9yq5006sfgc1g8d4317bb524c694jw6nggizrvg3sf")))) | ||||
|     (build-system cargo-build-system) | ||||
|     (arguments | ||||
|      `(#:cargo-inputs | ||||
|        (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8) | ||||
|         ("rust-log" ,rust-log-0.4) | ||||
|         ("rust-rayon" ,rust-rayon-1) | ||||
|         ("rust-serde" ,rust-serde-1) | ||||
|         ("rust-wyhash" ,rust-wyhash-0.5)) | ||||
|        #:cargo-development-inputs | ||||
|        (("rust-bencher" ,rust-bencher-0.1) | ||||
|         ("rust-quickcheck" ,rust-quickcheck-1)))) | ||||
|     (home-page "https://github.com/10XGenomics/rust-boomphf") | ||||
|     (synopsis "Scalable and Efficient Minimal Perfect Hash Functions") | ||||
|     (description "This package provides a Rust implementation of | ||||
| @url{https://arxiv.org/abs/1702.03154, fast and scalable minimal perfect hashing | ||||
| for massive key sets}.  It generates an @acronym{MPHF, minimal perfect hash | ||||
| functions} for a collection of hashable objects.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public rust-boxfnonce-0.1 | ||||
|   (package | ||||
|     (name "rust-boxfnonce") | ||||
|  | @ -7746,6 +7777,30 @@ clauses.") | |||
|     (description "Date and time library for Rust.") | ||||
|     (license (list license:expat license:asl2.0)))) | ||||
| 
 | ||||
| (define-public rust-chrono-humanize-0.2 | ||||
|   (package | ||||
|     (name "rust-chrono-humanize") | ||||
|     (version "0.2.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (crate-uri "chrono-humanize" version)) | ||||
|        (file-name | ||||
|         (string-append name "-" version ".tar.gz")) | ||||
|        (sha256 | ||||
|         (base32 "1jvm6fcs3zvz4kcqkp9q5hjy0i2zc17194nb63ckyn0xa0cw3p9f")))) | ||||
|     (build-system cargo-build-system) | ||||
|     (arguments | ||||
|      `(#:skip-build? #t | ||||
|        #:cargo-inputs | ||||
|        (("rust-chrono" ,rust-chrono-0.4)))) | ||||
|     (home-page "https://gitlab.com/imp/chrono-humanize-rs") | ||||
|     (synopsis "Human-friendly time expressions") | ||||
|     (description | ||||
|      "Chrono-Humanize provides human-friendly time expressions, similar to | ||||
| Python arrow.humanize.") | ||||
|     (license (list license:expat license:asl2.0)))) | ||||
| 
 | ||||
| (define-public rust-chrono-tz-0.5 | ||||
|   (package | ||||
|     (name "rust-chrono-tz") | ||||
|  | @ -18586,8 +18641,44 @@ getters and setters on fields.") | |||
|      `(#:cargo-inputs | ||||
|        (("rust-cc" ,rust-cc-1)))))) | ||||
| 
 | ||||
| (define-public rust-gfa-0.10 | ||||
|   (package | ||||
|     (name "rust-gfa") | ||||
|     (version "0.10.0") | ||||
|     (source | ||||
|       (origin | ||||
|         (method url-fetch) | ||||
|         (uri (crate-uri "gfa" version)) | ||||
|         (file-name | ||||
|          (string-append name "-" version ".tar.gz")) | ||||
|         (sha256 | ||||
|          (base32 | ||||
|           "1hadm6vfjwyqw41bqci18wb4wv80rydmrag7a5c02pdp1gid14fw")))) | ||||
|     (build-system cargo-build-system) | ||||
|     (arguments | ||||
|      `(#:cargo-inputs | ||||
|        (("rust-anyhow" ,rust-anyhow-1) | ||||
|         ("rust-bstr" ,rust-bstr-0.2) | ||||
|         ("rust-bytemuck" ,rust-bytemuck-1) | ||||
|         ("rust-fnv" ,rust-fnv-1) | ||||
|         ("rust-lazy-static" ,rust-lazy-static-1) | ||||
|         ("rust-memmap" ,rust-memmap-0.7) | ||||
|         ("rust-nom" ,rust-nom-5) | ||||
|         ("rust-regex" ,rust-regex-1) | ||||
|         ("rust-serde" ,rust-serde-1) | ||||
|         ("rust-serde-json" ,rust-serde-json-1)) | ||||
|        #:cargo-development-inputs | ||||
|        (("rust-criterion" ,rust-criterion-0.3)))) | ||||
|     (home-page "https://github.com/chfi/rs-gfa") | ||||
|     (synopsis "Library for graphs in the GFA (Graphical Fragment Assembly) format") | ||||
|     (description | ||||
|      "This package provides a library for working with graphs in the | ||||
| @acronym{GFA, Graphical Fragment Assembly} format.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public rust-gfa-0.6 | ||||
|   (package | ||||
|     (inherit rust-gfa-0.10) | ||||
|     (name "rust-gfa") | ||||
|     (version "0.6.2") | ||||
|     (source | ||||
|  | @ -18599,7 +18690,6 @@ getters and setters on fields.") | |||
|         (sha256 | ||||
|          (base32 | ||||
|           "0ghmy4r0324s6vvmj9nmh326346nkwm7nybnpcpswnjvf02b85gw")))) | ||||
|     (build-system cargo-build-system) | ||||
|     (arguments | ||||
|      `(#:cargo-inputs | ||||
|        (("rust-bstr" ,rust-bstr-0.2) | ||||
|  | @ -18609,13 +18699,7 @@ getters and setters on fields.") | |||
|         ("rust-regex" ,rust-regex-1) | ||||
|         ("rust-serde" ,rust-serde-1)) | ||||
|        #:cargo-development-inputs | ||||
|        (("rust-criterion" ,rust-criterion-0.3)))) | ||||
|     (home-page "https://github.com/chfi/rs-gfa") | ||||
|     (synopsis "Library for graphs in the GFA (Graphical Fragment Assembly) format") | ||||
|     (description | ||||
|      "This package provides a library for working with graphs in the | ||||
| @acronym{GFA, Graphical Fragment Assembly} format.") | ||||
|     (license license:expat))) | ||||
|        (("rust-criterion" ,rust-criterion-0.3)))))) | ||||
| 
 | ||||
| (define-public rust-ghash-0.3 | ||||
|   (package | ||||
|  | @ -25788,7 +25872,7 @@ parallelize and optimize.") | |||
| (define-public rust-md-5-0.9 | ||||
|   (package | ||||
|     (name "rust-md-5") | ||||
|     (version "0.9.0") | ||||
|     (version "0.9.1") | ||||
|     (source | ||||
|       (origin | ||||
|         (method url-fetch) | ||||
|  | @ -25797,14 +25881,14 @@ parallelize and optimize.") | |||
|          (string-append name "-" version ".tar.gz")) | ||||
|         (sha256 | ||||
|          (base32 | ||||
|           "14x7yxfi4pk4qy3zmn9dj69yc18fg3cyind346kribjd93077qij")))) | ||||
|           "059ajjacz1q3cms7vl6cvhdqs4qdw2nnwj9dq99ryzv0p6djfnkv")))) | ||||
|     (build-system cargo-build-system) | ||||
|     (arguments | ||||
|      `(#:cargo-inputs | ||||
|        (("rust-block-buffer" ,rust-block-buffer-0.8) | ||||
|        (("rust-block-buffer" ,rust-block-buffer-0.9) | ||||
|         ("rust-digest" ,rust-digest-0.9) | ||||
|         ("rust-md5-asm" ,rust-md5-asm-0.4) | ||||
|         ("rust-opaque-debug" ,rust-opaque-debug-0.2)) | ||||
|         ("rust-opaque-debug" ,rust-opaque-debug-0.3)) | ||||
|        #:cargo-development-inputs | ||||
|        (("rust-digest" ,rust-digest-0.9) | ||||
|         ("rust-hex-literal" ,rust-hex-literal-0.2)))) | ||||
|  | @ -34835,6 +34919,27 @@ they were parsed from") | |||
| implementation.") | ||||
|     (license (list license:expat license:asl2.0)))) | ||||
| 
 | ||||
| (define-public rust-quick-csv-0.1 | ||||
|   (package | ||||
|     (name "rust-quick-csv") | ||||
|     (version "0.1.6") | ||||
|     (source | ||||
|       (origin | ||||
|         (method url-fetch) | ||||
|         (uri (crate-uri "quick-csv" version)) | ||||
|         (file-name | ||||
|          (string-append name "-" version ".tar.gz")) | ||||
|         (sha256 | ||||
|          (base32 "131k8zzlplk2h62wz813jbvm0sk7v3mixwhhq34y9lmp3mqbgx7d")))) | ||||
|     (build-system cargo-build-system) | ||||
|     (arguments | ||||
|      `(#:cargo-inputs | ||||
|        (("rust-rustc-serialize" ,rust-rustc-serialize-0.3)))) | ||||
|     (home-page "https://github.com/tafia/quick-csv") | ||||
|     (synopsis "Quick csv reader and decoder") | ||||
|     (description "This package provides a quick csv reader and decoder in Rust.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public rust-quick-error-1 | ||||
|   (package | ||||
|     (name "rust-quick-error") | ||||
|  | @ -45510,6 +45615,30 @@ cryptographic implementations.") | |||
|         (base32 | ||||
|          "1vm80mxbwfj334izwm8x8l65v1xl9hr0kwrg36r1rq565fkaarrd")))))) | ||||
| 
 | ||||
| (define-public rust-succinct-0.5 | ||||
|   (package | ||||
|     (name "rust-succinct") | ||||
|     (version "0.5.2") | ||||
|     (source | ||||
|       (origin | ||||
|         (method url-fetch) | ||||
|         (uri (crate-uri "succinct" version)) | ||||
|         (file-name | ||||
|          (string-append name "-" version ".tar.gz")) | ||||
|         (sha256 | ||||
|          (base32 "0654c9gq50x7djyf25zbzz3d2pc4x3z21wmjj3qbr6d9h4hbd63p")))) | ||||
|     (build-system cargo-build-system) | ||||
|     (arguments | ||||
|      `(#:cargo-inputs | ||||
|        (("rust-byteorder" ,rust-byteorder-1) | ||||
|         ("rust-num-traits" ,rust-num-traits-0.2)) | ||||
|        #:cargo-development-inputs | ||||
|        (("rust-quickcheck" ,rust-quickcheck-0.9)))) | ||||
|     (home-page "https://github.com/tov/succinct-rs") | ||||
|     (synopsis "Succinct data structures for Rust") | ||||
|     (description "This package provides succinct data structures for Rust.") | ||||
|     (license (list license:expat license:asl2.0)))) | ||||
| 
 | ||||
| (define-public rust-surf-2 | ||||
|   (package | ||||
|     (name "rust-surf") | ||||
|  | @ -55620,6 +55749,29 @@ serialization.") | |||
|      "Contains function definitions for the Windows API library ws2_32.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public rust-wyhash-0.5 | ||||
|   (package | ||||
|     (name "rust-wyhash") | ||||
|     (version "0.5.0") | ||||
|     (source | ||||
|       (origin | ||||
|         (method url-fetch) | ||||
|         (uri (crate-uri "wyhash" version)) | ||||
|         (file-name | ||||
|          (string-append name "-" version ".tar.gz")) | ||||
|         (sha256 | ||||
|          (base32 "15f26hvx6nyp4d6iswha7rm3psidxa2k2iab1f1aqgsyq9iy3xms")))) | ||||
|     (build-system cargo-build-system) | ||||
|     (arguments | ||||
|      `(#:cargo-inputs | ||||
|        (("rust-rand-core" ,rust-rand-core-0.6)))) | ||||
|     (home-page "https://github.com/eldruin/wyhash-rs") | ||||
|     (synopsis "Rust implementation of the WyHash algorithm") | ||||
|     (description | ||||
|      "This package provides a Rust implementation of the WyHash fast portable | ||||
| non-cryptographic hashing algorithm and random number generator.") | ||||
|     (license (list license:expat license:asl2.0)))) | ||||
| 
 | ||||
| (define-public rust-wyz-0.2 | ||||
|   (package | ||||
|     (name "rust-wyz") | ||||
|  | @ -56476,7 +56628,7 @@ configuration file and/or environment variables.") | |||
| (define-public rust-svd-parser-0.9 | ||||
|   (package | ||||
|     (name "rust-svd-parser") | ||||
|     (version "0.9.0") | ||||
|     (version "0.10.2") | ||||
|     (source | ||||
|       (origin | ||||
|         (method url-fetch) | ||||
|  | @ -56485,18 +56637,20 @@ configuration file and/or environment variables.") | |||
|           (string-append name "-" version ".tar.gz")) | ||||
|         (sha256 | ||||
|           (base32 | ||||
|             "1qhvdz3k76i3sfypcy8c84hhb8sqixrckba21kalzcpgy6an45ml")))) | ||||
|             "1fbr4m9cla6xvmrib7pad9hv29sn2d5hjbc77pz12lwzmm2pczk9")))) | ||||
|     (build-system cargo-build-system) | ||||
|     (arguments | ||||
|       `(#:cargo-inputs | ||||
|         (("rust-anyhow" ,rust-anyhow-1) | ||||
|          ("rust-either" ,rust-either-1) | ||||
|          ("rust-once-cell" ,rust-once-cell-1) | ||||
|          ("rust-rayon" ,rust-rayon-1) | ||||
|          ("rust-regex" ,rust-regex-1) | ||||
|          ("rust-serde" ,rust-serde-1) | ||||
|          ("rust-thiserror" ,rust-thiserror-1) | ||||
|          ("rust-xmltree" ,rust-xmltree-0.8)) | ||||
|         #:cargo-development-inputs | ||||
|         (("rust-serde-json" ,rust-serde-json-1)))) | ||||
|     (home-page #f) | ||||
|     (home-page "https://github.com/rust-embedded/svd") | ||||
|     (synopsis "A CMSIS-SVD file parser") | ||||
|     (description | ||||
|       "This package provides a CMSIS-SVD file parser") | ||||
|  | @ -56756,10 +56910,39 @@ variant of this library is available separately as @code{im}.") | |||
| (define-public rust-skim-0.7 | ||||
|   (deprecated-package "rust-skim-0.7" skim-0.7)) | ||||
| 
 | ||||
| (define-public rust-clap-conf-0.1 | ||||
|   (package | ||||
|     (name "rust-clap-conf") | ||||
|     (version "0.1.5") | ||||
|     (source | ||||
|       (origin | ||||
|         (method url-fetch) | ||||
|         (uri (crate-uri "clap_conf" version)) | ||||
|         (file-name | ||||
|           (string-append name "-" version ".tar.gz")) | ||||
|         (sha256 | ||||
|           (base32 | ||||
|             "1n29wr6ns660hi63mc30zvs7dhidaycw35am9spzknsal3nrs0sn")))) | ||||
|     (build-system cargo-build-system) | ||||
|     (arguments | ||||
|       `(#:cargo-inputs | ||||
|         (("rust-anyhow" ,rust-anyhow-1) | ||||
|          ("rust-clap" ,rust-clap-2) | ||||
|          ("rust-serde" ,rust-serde-1) | ||||
|          ("rust-thiserror" ,rust-thiserror-1) | ||||
|          ("rust-toml" ,rust-toml-0.5)))) | ||||
|     (home-page | ||||
|       "https://github.com/storyfeet/clap_conf") | ||||
|     (synopsis | ||||
|       "A library to unify commandline arguments with config files and environment variables. And make it easier for users to tell your program how to behave across the three main input sources") | ||||
|     (description | ||||
|       "This package provides a library to unify commandline arguments with config files and environment variables.  And make it easier for users to tell your program how to behave across the three main input sources") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public svd2rust | ||||
|   (package | ||||
|     (name "svd2rust") | ||||
|     (version "0.17.0") | ||||
|     (version "0.19.0") | ||||
|     (source | ||||
|       (origin | ||||
|         (method url-fetch) | ||||
|  | @ -56768,20 +56951,22 @@ variant of this library is available separately as @code{im}.") | |||
|           (string-append name "-" version ".tar.gz")) | ||||
|         (sha256 | ||||
|           (base32 | ||||
|             "0850pn92a5pmrlavdsm4s9wgrgx9gz0vylf9i594nj8sixmddjd9")))) | ||||
|             "0q8slfgjfhpljzlk2myb0i538mfq99q1ljn398jm17r1q2pjjxhv")))) | ||||
|     (build-system cargo-build-system) | ||||
|     (arguments | ||||
|       `(#:cargo-inputs | ||||
|         (("rust-cast" ,rust-cast-0.2) | ||||
|         (("rust-anyhow" ,rust-anyhow-1) | ||||
|          ("rust-cast" ,rust-cast-0.2) | ||||
|          ("rust-clap" ,rust-clap-2) | ||||
|          ("rust-clap-conf" ,rust-clap-conf-0.1) | ||||
|          ("rust-env-logger" ,rust-env-logger-0.7) | ||||
|          ("rust-error-chain" ,rust-error-chain-0.12) | ||||
|          ("rust-inflections" ,rust-inflections-1) | ||||
|          ("rust-log" ,rust-log-0.4) | ||||
|          ("rust-proc-macro2" ,rust-proc-macro2-0.4) | ||||
|          ("rust-quote" ,rust-quote-1) | ||||
|          ("rust-svd-parser" ,rust-svd-parser-0.9) | ||||
|          ("rust-syn" ,rust-syn-1)))) | ||||
|          ("rust-syn" ,rust-syn-1) | ||||
|          ("rust-thiserror" ,rust-thiserror-1)))) | ||||
|     (home-page #f) | ||||
|     (synopsis | ||||
|       "Generate Rust register maps (`struct`s) from SVD files") | ||||
|  |  | |||
|  | @ -1119,7 +1119,7 @@ trivial to build for local use.  Portability is emphasized over performance.") | |||
|          ("automake" ,automake) | ||||
|          ("libtool" ,libtool))) | ||||
|       ;; WARNING: This package might need additional configure flags to run properly. | ||||
|       ;; See https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/libsecp256k1. | ||||
|       ;; See https://github.com/archlinux/svntogit-community/blob/packages/libsecp256k1/trunk/PKGBUILD. | ||||
|       (synopsis "C library for EC operations on curve secp256k1") | ||||
|       (description | ||||
|        "Optimized C library for EC operations on curve secp256k1. | ||||
|  |  | |||
|  | @ -1381,6 +1381,15 @@ including field and record folding."))) | |||
|          (delete 'configure) | ||||
|          ;; The default target is only needed for tests and built on demand. | ||||
|          (delete 'build) | ||||
|          (add-before 'check 'mount-tmp | ||||
|            ;; Use the provided workspace directory for test files. | ||||
|            ;; Otherwise, /tmp is used which is a mount namespace on /gnu/store. | ||||
|            ;; This speeds up the build when the host /tmp is a proper tmpfs or | ||||
|            ;; other fast filesystem, as opposed to /gnu which may be a HDD. | ||||
|            (lambda _ | ||||
|              (let ((test-dir (string-append (getcwd) "/../test"))) | ||||
|                (mkdir test-dir) | ||||
|                (setenv "TEST_TMPDIR" (canonicalize-path test-dir))))) | ||||
|          (add-before 'check 'disable-optimizations | ||||
|            (lambda _ | ||||
|              ;; Prevent the build from passing '-march=native' to the compiler. | ||||
|  | @ -1612,14 +1621,14 @@ changes.") | |||
| (define-public tdb | ||||
|   (package | ||||
|     (name "tdb") | ||||
|     (version "1.4.3") | ||||
|     (version "1.4.5") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "https://www.samba.org/ftp/tdb/tdb-" | ||||
|                                   version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "06waz0k50c7v3chd08mzp2rv7w4k4q9isbxx3vhlfpx1vy9q61f8")))) | ||||
|                 "0h8fkblws3d4vf37yhbrbw2nfxg5vk2v3i5mk04hhcbh9y4fvz5w")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      '(#:phases | ||||
|  |  | |||
|  | @ -1,6 +1,7 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2017, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> | ||||
| ;;; Copyright © 2021 Ryan Prior <rprior@protonmail.com> | ||||
| ;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -20,8 +21,10 @@ | |||
| (define-module (gnu packages digest) | ||||
|   #:use-module ((guix licenses) #:prefix license:) | ||||
|   #:use-module (guix packages) | ||||
|   #:use-module (guix download) | ||||
|   #:use-module (guix git-download) | ||||
|   #:use-module (guix build-system gnu) | ||||
|   #:use-module (guix build-system python) | ||||
|   #:use-module (guix build-system trivial) | ||||
|   #:use-module (guix utils) | ||||
|   #:use-module (ice-9 match)) | ||||
|  | @ -96,3 +99,21 @@ The code is highly portable, and hashes of the same length are identical on all | |||
| platforms (both big and little endian).") | ||||
|     (license (list license:bsd-2        ; xxhash library (xxhash.[ch]) | ||||
|                    license:gpl2+))))    ; xxhsum.c | ||||
| 
 | ||||
| (define-public python-xxhash | ||||
|   (package | ||||
|     (name "python-xxhash") | ||||
|     (version "2.0.2") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (pypi-uri "xxhash" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0jbvz19acznq00544gcsjg05fkvrmwbnwdfgrvwss3i1ys6avgmp")))) | ||||
|     (build-system python-build-system) | ||||
|     (home-page "https://github.com/ifduyue/python-xxhash") | ||||
|     (synopsis "Python binding for xxHash") | ||||
|     (description "This package provides Python bindings for the xxHash hash | ||||
| algorithm.") | ||||
|     (license license:bsd-3))) | ||||
|  |  | |||
|  | @ -947,14 +947,14 @@ synthesis, and on-the-fly re-configuration.") | |||
| (define-public knot-resolver | ||||
|   (package | ||||
|     (name "knot-resolver") | ||||
|     (version "5.3.2") | ||||
|     (version "5.4.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "https://secure.nic.cz/files/knot-resolver/" | ||||
|                                   "knot-resolver-" version ".tar.xz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0dhlq25lig8wmn72ambfmb1njwwp980d98i9q7a24d79bxyl8vwb")))) | ||||
|                 "0pl1l167fqb1lgmrmkx8i140l41wgnfwr6h3awxv4cw4p5qzcjjk")))) | ||||
|     (build-system meson-build-system) | ||||
|     (outputs '("out" "doc")) | ||||
|     (arguments | ||||
|  |  | |||
|  | @ -140,7 +140,7 @@ of categories with some of the activities available in that category. | |||
| (define-public gcompris-qt | ||||
|   (package | ||||
|     (name "gcompris-qt") | ||||
|     (version "1.0") | ||||
|     (version "1.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -148,8 +148,8 @@ of categories with some of the activities available in that category. | |||
|              "https://gcompris.net/download/qt/src/gcompris-qt-" | ||||
|              version ".tar.xz")) | ||||
|        (sha256 | ||||
|         (base32 "08dw1q0h4qz2q0ksa5pbmb9v60hr1zv9skx6z8dlq9b1i7harnds")))) | ||||
|     (build-system cmake-build-system) | ||||
|         (base32 "1bpjwrv83rhikbycpyfpf6dbqr0xfq6amgdpqfgfph6nzr3zka7h")))) | ||||
|     (build-system qt-build-system) | ||||
|     (arguments | ||||
|      `(#:phases | ||||
|        (modify-phases %standard-phases | ||||
|  | @ -160,23 +160,7 @@ of categories with some of the activities available in that category. | |||
|              (setenv "DISPLAY" ":1") | ||||
|              ;; The test suite wants to write to /homeless-shelter | ||||
|              (setenv "HOME" (getcwd)) | ||||
|              #t)) | ||||
|          (add-after 'install 'wrap-executable | ||||
|            (lambda* (#:key inputs outputs #:allow-other-keys) | ||||
|              (let ((out (assoc-ref outputs "out"))) | ||||
|                (wrap-program (string-append out "/bin/gcompris-qt") | ||||
|                  `("QT_PLUGIN_PATH" ":" prefix | ||||
|                    ,(map (lambda (label) | ||||
|                            (string-append (assoc-ref inputs label) | ||||
|                                           "/lib/qt5/plugins")) | ||||
|                          '("qtbase" "qtdeclarative" "qtmultimedia" "qtsvg"))) | ||||
|                  `("QML2_IMPORT_PATH" ":" prefix | ||||
|                    ,(map (lambda (label) | ||||
|                            (string-append (assoc-ref inputs label) | ||||
|                                           "/lib/qt5/qml")) | ||||
|                          '("qtdeclarative" "qtgraphicaleffects" | ||||
|                            "qtmultimedia" "qtquickcontrols")))) | ||||
|                #t)))) | ||||
|              #t))) | ||||
|        #:configure-flags (list "-DQML_BOX2D_MODULE=disabled" | ||||
|                                "-DBUILD_TESTING=TRUE"))) | ||||
|     (native-inputs | ||||
|  |  | |||
|  | @ -138,6 +138,7 @@ | |||
|   #:use-module (gnu packages aspell) | ||||
|   #:use-module (gnu packages audio) | ||||
|   #:use-module (gnu packages bash) | ||||
|   #:use-module (gnu packages chez) | ||||
|   #:use-module (gnu packages cmake) | ||||
|   #:use-module (gnu packages code) | ||||
|   #:use-module (gnu packages cpp) | ||||
|  | @ -209,6 +210,7 @@ | |||
|   #:use-module (gnu packages sphinx) | ||||
|   #:use-module (gnu packages xdisorg) | ||||
|   #:use-module (gnu packages shells) | ||||
|   #:use-module (gnu packages shellutils) | ||||
|   #:use-module (gnu packages sqlite) | ||||
|   #:use-module (gnu packages ghostscript) | ||||
|   #:use-module (gnu packages gnupg) | ||||
|  | @ -408,6 +410,49 @@ a generic Scheme interaction mode for the GNU Emacs editor.") | |||
| a generic Scheme interaction mode for the GNU Emacs editor.") | ||||
|     (license license:bsd-3))) | ||||
| 
 | ||||
| (define-public emacs-geiser-chez | ||||
|   (package | ||||
|     (name "emacs-geiser-chez") | ||||
|     (version "0.16") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|              (url "https://gitlab.com/emacs-geiser/chez") | ||||
|              (commit version))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0cc1z5z5cpvxa5f3n8kvms0wxlybzcg4l1bh3rwv1l1sb0lk1xzx")))) | ||||
|     (build-system emacs-build-system) | ||||
|     (arguments | ||||
|      '(#:include (cons "^src/" %default-include) | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'make-autoloads 'patch-autoloads | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (substitute* (string-append | ||||
|                            (elpa-directory (assoc-ref outputs "out")) | ||||
|                            "/geiser-chez-autoloads.el") | ||||
|                ;; Activating implementations fails when Geiser is not yet | ||||
|                ;; loaded, so let's defer that until it is. | ||||
|                ;; See <https://gitlab.com/emacs-geiser/chez/-/issues/7>. | ||||
|                (("\\(geiser-activate-implementation .*\\)" all) | ||||
|                 (string-append | ||||
|                  "(eval-after-load 'geiser-impl '" all ")")) | ||||
|                (("\\(geiser-implementation-extension .*\\)" all) | ||||
|                 (string-append | ||||
|                  "(eval-after-load 'geiser-impl '" all ")")))))))) | ||||
|     (inputs | ||||
|      `(("chez-scheme" ,chez-scheme))) | ||||
|     (propagated-inputs | ||||
|      `(("emacs-geiser" ,emacs-geiser))) | ||||
|     (home-page "https://nongnu.org/geiser/") | ||||
|     (synopsis "Support for Chez Scheme in Geiser") | ||||
|     (description | ||||
|      "This package adds support for using Chez Scheme in Emacs with Geiser.") | ||||
|     (license license:bsd-3))) | ||||
| 
 | ||||
| (define-public emacs-vc-hgcmd | ||||
|   (package | ||||
|     (name "emacs-vc-hgcmd") | ||||
|  | @ -585,13 +630,13 @@ when typing parentheses directly or commenting out code line by line.") | |||
| (define-public emacs-project | ||||
|   (package | ||||
|     (name "emacs-project") | ||||
|     (version "0.6.0") | ||||
|     (version "0.6.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://elpa.gnu.org/packages/project-" version ".tar")) | ||||
|        (sha256 | ||||
|         (base32 "0m0r1xgz1ffx6mi2gjz1dkgrn89sh4y5ysi0gj6p1w05bf8p0lc0")))) | ||||
|         (base32 "174fli3swbn67qcs9isv70vwrf6r41mak6dbs98gia89rlb71c8v")))) | ||||
|     (build-system emacs-build-system) | ||||
|     (propagated-inputs `(("emacs-xref" ,emacs-xref))) | ||||
|     (home-page "http://elpa.gnu.org/packages/project.html") | ||||
|  | @ -733,7 +778,7 @@ libgit2 bindings for Emacs, intended to boost the performance of Magit.") | |||
| (define-public emacs-magit | ||||
|   (package | ||||
|     (name "emacs-magit") | ||||
|     (version "3.2.0") | ||||
|     (version "3.2.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -742,7 +787,7 @@ libgit2 bindings for Emacs, intended to boost the performance of Magit.") | |||
|              (commit (string-append "v" version)))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "1ig4yzvd9hzvajjc46wk2g4xyg1ign92wgasa4wgn4hh878i3r1y")))) | ||||
|         (base32 "179mgh8l5p7fhfmbg5rz810mhbzsxqsxd66jdb2a68vsazs1jw2m")))) | ||||
|     (build-system emacs-build-system) | ||||
|     (arguments | ||||
|      `(#:emacs ,emacs-no-x             ;module support is required | ||||
|  | @ -2045,14 +2090,14 @@ incrementally confined in Isearch manner.") | |||
| (define emacs-emms-print-metadata | ||||
|   (package | ||||
|     (name "emacs-emms-print-metadata") | ||||
|     (version "7.5") | ||||
|     (version "7.6") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://elpa.gnu.org/packages/" | ||||
|                            "emms-" version ".tar")) | ||||
|        (sha256 | ||||
|         (base32 "0d7nsx2idzbp6d5im5rrsnwppbr2cimvxgx31bhwsm2aq3ya5v2j")))) | ||||
|         (base32 "03cp6mr0kxy41dg4ri5ymbzpkw7bd8zg7hx0a2rb4axiss5qmx7i")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:make-flags '("emms-print-metadata") | ||||
|  | @ -2808,7 +2853,7 @@ of bibliographic references.") | |||
| (define-public emacs-corfu | ||||
|   (package | ||||
|     (name "emacs-corfu") | ||||
|     (version "0.10") | ||||
|     (version "0.11") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -2817,7 +2862,7 @@ of bibliographic references.") | |||
|              (commit version))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "1z61qrwjg1d28vhh39yrbrxsjbmnqws74bs3dwbw7d854d5wsy9q")))) | ||||
|         (base32 "0x4aa5fk1ywlfs8gvwj3v2bycyl4nx7mzz1ci37x69bdjl9wal80")))) | ||||
|     (build-system emacs-build-system) | ||||
|     (home-page "https://github.com/minad/corfu") | ||||
|     (synopsis "Completion overlay region function") | ||||
|  | @ -2841,6 +2886,18 @@ overlay below or above the point.  Corfu can be considered the minimalistic | |||
|        (sha256 | ||||
|         (base32 "0xkqn4604k2imas6azy1www56br8ls4iv9a44pxcd8h94j1fp44d")))) | ||||
|     (build-system emacs-build-system) | ||||
|     (arguments | ||||
|      `(#:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'patch-in-direnv | ||||
|            (lambda* (#:key inputs #:allow-other-keys) | ||||
|              (let* ((direnv-path (assoc-ref inputs "direnv")) | ||||
|                     (direnv-bin (string-append | ||||
|                                  "\"" direnv-path "/bin/direnv\""))) | ||||
|                (substitute* "direnv.el" | ||||
|                  (("\"direnv\"") direnv-bin)))))))) | ||||
|     (inputs | ||||
|      `(("direnv" ,direnv))) | ||||
|     (propagated-inputs | ||||
|      `(("dash" ,emacs-dash) | ||||
|        ("with-editor" ,emacs-with-editor))) | ||||
|  | @ -3687,7 +3744,7 @@ a command.") | |||
| (define-public emacs-olivetti | ||||
|   (package | ||||
|     (name "emacs-olivetti") | ||||
|     (version "1.11.4") | ||||
|     (version "2.0.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -3696,7 +3753,7 @@ a command.") | |||
|              (commit (string-append "v" version)))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "1pw1zc0pdwwi9dv8fypfxgn6xbfvm88qzhss880lspialff1wcxn")))) | ||||
|         (base32 "0c0nkxik74p6s1pbf1l8pix5yy4xgnakqkwrrmf2ic1x1m4xv3hj")))) | ||||
|     (build-system emacs-build-system) | ||||
|     (home-page "https://github.com/rnkn/olivetti") | ||||
|     (synopsis "Emacs minor mode for a nice writing environment") | ||||
|  | @ -3949,7 +4006,7 @@ files and directories.") | |||
| (define-public emacs-fountain-mode | ||||
|   (package | ||||
|     (name "emacs-fountain-mode") | ||||
|     (version "3.5.0") | ||||
|     (version "3.5.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -3958,7 +4015,7 @@ files and directories.") | |||
|              (commit (string-append "v" version)))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "0xlg5b0sa4qbv68sza23fr5khv36860jbhzfbcqcw1d420xllryx")))) | ||||
|         (base32 "0y7dd6qq4b95scj7fay4zzhkf0g0x89npylc4v1hz59b1yyylfqy")))) | ||||
|     (build-system emacs-build-system) | ||||
|     (home-page "https://github.com/rnkn/fountain-mode") | ||||
|     (synopsis "Major mode for screenwriting in Fountain markup") | ||||
|  | @ -4511,15 +4568,16 @@ appropriate console.") | |||
| (define-public emacs-znc | ||||
|   (package | ||||
|     (name "emacs-znc") | ||||
|     (version "0.0.2") | ||||
|     (version "0.4") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://marmalade-repo.org/packages/znc-" | ||||
|                            version ".el")) | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|              (url "https://github.com/sshirokov/ZNC.el") | ||||
|              (commit version))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh")))) | ||||
|         (base32 "1ran86ycnays9s23wk3iczqqgnpbyx0lijiarx65am3jc1yzg5ia")))) | ||||
|     (build-system emacs-build-system) | ||||
|     (home-page "https://github.com/sshirokov/ZNC.el") | ||||
|     (synopsis "Make ERC and ZNC get along better") | ||||
|  | @ -8143,7 +8201,7 @@ style, or as multiple word prefixes.") | |||
| (define-public emacs-consult | ||||
|   (package | ||||
|     (name "emacs-consult") | ||||
|     (version "0.9") | ||||
|     (version "0.10") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -8151,7 +8209,7 @@ style, or as multiple word prefixes.") | |||
|              (url "https://github.com/minad/consult") | ||||
|              (commit version))) | ||||
|        (sha256 | ||||
|         (base32 "0iy6lrqbpi4lv7141rdawpn278rxinfxspwb81n04azyxrk28vlw")) | ||||
|         (base32 "131342149xvmrcr3iwmx05id7358158i6m9an8izdpggsnwhs3i4")) | ||||
|        (file-name (git-file-name name version)))) | ||||
|     (build-system emacs-build-system) | ||||
|     (propagated-inputs | ||||
|  | @ -8191,7 +8249,7 @@ and present results either as single emails or full trees.") | |||
| (define-public emacs-marginalia | ||||
|   (package | ||||
|     (name "emacs-marginalia") | ||||
|     (version "0.7") | ||||
|     (version "0.8") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -8200,7 +8258,7 @@ and present results either as single emails or full trees.") | |||
|              (commit version))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "0yn6dybvsdhr37hnadmbfqi7pf7scxr9z6a6ghsqbrghycddd0mc")))) | ||||
|         (base32 "1d6xbidxcxd5gxs5cjxbx1i1wdcmgdnn3hh7fxz0sgf1gaxyp5kv")))) | ||||
|     (build-system emacs-build-system) | ||||
|     (home-page "https://github.com/minad/marginalia") | ||||
|     (synopsis "Marginalia in the minibuffer completions") | ||||
|  | @ -10087,7 +10145,7 @@ with Elfeed.") | |||
| (define-public emacs-elfeed-score | ||||
|   (package | ||||
|     (name "emacs-elfeed-score") | ||||
|     (version "0.7.9") | ||||
|     (version "0.7.10") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -10096,8 +10154,7 @@ with Elfeed.") | |||
|              (commit version))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "17hf6b5db4d0cm1996z4sl00y4c8gl3rga97xxp2bmwbhdr7kaxw")))) | ||||
|         (base32 "15gjsp4whrdw9yx3mw1517wfynv9yya5yhalqqdb738q5c32p9lm")))) | ||||
|     (build-system emacs-build-system) | ||||
|     (propagated-inputs | ||||
|      `(("emacs-elfeed" ,emacs-elfeed))) | ||||
|  | @ -10467,6 +10524,29 @@ names, e.g., @samp{#0000ff} is displayed in white with a blue background.") | |||
| keybindings in Emacs, and does not come with any predefined bindings.") | ||||
|       (license license:expat)))) | ||||
| 
 | ||||
| (define-public emacs-valign | ||||
|   (package | ||||
|     (name "emacs-valign") | ||||
|     (version "3.1.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|              (url "https://github.com/casouri/valign") | ||||
|              (commit (string-append "v" version)))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "11ks6z532i7vxi6f9g32zhimvikhsqywa2bd5fnnj2ahfx3msa95")))) | ||||
|     (build-system emacs-build-system) | ||||
|     (home-page "https://github.com/casouri/valign") | ||||
|     (synopsis "Pixel-perfect visual alignment for Org and Markdown tables") | ||||
|     (description | ||||
|      "Valign provides visual alignment for Org mode, Markdown and Table.el | ||||
| tables on GUI Emacs.  It can properly align tables containing variable-pitch | ||||
| font, CJK characters and images.  Meanwhile, the text-based alignment | ||||
| generated by Org mode (or Markdown mode) is left untouched.") | ||||
|     (license license:gpl3+))) | ||||
| 
 | ||||
| (define-public emacs-visual-fill-column | ||||
|   (package | ||||
|     (name "emacs-visual-fill-column") | ||||
|  | @ -11309,7 +11389,7 @@ using package inferred style.") | |||
| (define-public emacs-lua-mode | ||||
|   (package | ||||
|     (name "emacs-lua-mode") | ||||
|     (version "20201010") | ||||
|     (version "20210802") | ||||
|     (home-page "https://github.com/immerrr/lua-mode/") | ||||
|     (source | ||||
|      (origin | ||||
|  | @ -11319,7 +11399,7 @@ using package inferred style.") | |||
|              (commit (string-append "v" version)))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "0zf43f7fkrgki6pbc09zak975p4jx1yf3ipfs38hypfl9s5d6xrf")))) | ||||
|         (base32 "0r3svhggdml2n256k3b0zmbjnw51p46gan6dg07bhavpfrqs5196")))) | ||||
|     (build-system emacs-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #t | ||||
|  | @ -13559,13 +13639,13 @@ containing words from the Rime project.") | |||
| (define-public emacs-pyim | ||||
|   (package | ||||
|     (name "emacs-pyim") | ||||
|     (version "3.9.3") | ||||
|     (version "3.9.4") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://elpa.gnu.org/packages/pyim-" version ".tar")) | ||||
|        (sha256 | ||||
|         (base32 "0rjaimvbh0fadbqiq4ggyxr0y4pfzld76wb64v7l5874qczn8dfr")))) | ||||
|         (base32 "0ggnl2jidcklyhqd5av5kk1f855gsq29wq2nhvp1yjzn35hz6xij")))) | ||||
|     (build-system emacs-build-system) | ||||
|     (propagated-inputs | ||||
|      `(("emacs-async" ,emacs-async) | ||||
|  | @ -20887,28 +20967,26 @@ server with @code{M-x pinentry-start}.") | |||
|       (license license:gpl3+)))) | ||||
| 
 | ||||
| (define-public emacs-so-long | ||||
|   (let ((commit "cfae473b1bf65f78ddb015159e667ec0103d881c") | ||||
|         (revision "2")) | ||||
|     (package | ||||
|       (name "emacs-so-long") | ||||
|       (version (git-version "1.0" revision commit)) | ||||
|       (source | ||||
|        (origin | ||||
|          (method git-fetch) | ||||
|          (uri (git-reference | ||||
|                (url "https://git.savannah.gnu.org/git/so-long.git") | ||||
|                (commit commit))) | ||||
|          (file-name (git-file-name name version)) | ||||
|          (sha256 | ||||
|           (base32 | ||||
|            "0g943n5cl9lz5s7hszg6yvp10xd1xvd8mfgxyg0yckmp8fqkswin")))) | ||||
|       (build-system emacs-build-system) | ||||
|       (home-page "https://www.emacswiki.org/emacs/SoLong") | ||||
|       (synopsis "Improve performance in files with long lines") | ||||
|       (description "This package improves the performance of Emacs when | ||||
|   (package | ||||
|     (name "emacs-so-long") | ||||
|     (version "1.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|              (url "https://git.savannah.gnu.org/git/so-long") | ||||
|              (commit version))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1d886fgsbly7wpm6ppll45yq3y87a27wy5c6m0gqxq5jb4q0q7d2")))) | ||||
|     (build-system emacs-build-system) | ||||
|     (home-page "https://www.emacswiki.org/emacs/SoLong") | ||||
|     (synopsis "Improve performance in files with long lines") | ||||
|     (description "This package improves the performance of Emacs when | ||||
| viewing files with long lines.  It is included as standard with Emacs 27 or | ||||
| later.") | ||||
|       (license license:gpl3+)))) | ||||
|     (license license:gpl3+))) | ||||
| 
 | ||||
| (define-public emacs-github-review | ||||
|   (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232") | ||||
|  | @ -25407,40 +25485,37 @@ it forcibly | |||
|       (license license:gpl3+)))) | ||||
| 
 | ||||
| (define-public emacs-elpher | ||||
|   ;; No tagged release upstream, but the commit below corresponds to the 2.10.3 | ||||
|   ;; release. | ||||
|   (let ((commit "b0272de36cea3e1cd41cd15a012c8141b4b04575")) | ||||
|     (package | ||||
|       (name "emacs-elpher") | ||||
|       (version "2.10.3") | ||||
|       (source | ||||
|        (origin | ||||
|          (method git-fetch) | ||||
|          (uri (git-reference | ||||
|                (url "git://thelambdalab.xyz/elpher.git") | ||||
|                (commit commit))) | ||||
|          (file-name (git-file-name name version)) | ||||
|          (sha256 | ||||
|           (base32 "1m6lq47i4j6k76f81vcch6akab9mqph7kna3fn356295fvgm7j7q")))) | ||||
|       (build-system emacs-build-system) | ||||
|       (native-inputs | ||||
|        `(("texinfo" ,texinfo))) | ||||
|       (arguments | ||||
|        `(#:phases | ||||
|          (modify-phases %standard-phases | ||||
|            (add-before 'install 'build-doc | ||||
|              (lambda _ | ||||
|                (invoke "makeinfo" "elpher.texi")))))) | ||||
|       (home-page "gopher://thelambdalab.xyz/1/projects/elpher/") | ||||
|       (synopsis "Gopher and gemini client for Emacs") | ||||
|       (description "Elpher is a full-featured gopher and gemini client for | ||||
|   (package | ||||
|     (name "emacs-elpher") | ||||
|     (version "3.2.2") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|              (url "git://thelambdalab.xyz/elpher.git") | ||||
|              (commit (string-append "v" version)))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "0fzqm5gpadqzsl71r1bq72ki8dw8125v4nmhdd3b4rz9jy1rqm2g")))) | ||||
|     (build-system emacs-build-system) | ||||
|     (native-inputs | ||||
|      `(("texinfo" ,texinfo))) | ||||
|     (arguments | ||||
|      `(#:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-before 'install 'build-doc | ||||
|            (lambda _ | ||||
|              (invoke "makeinfo" "elpher.texi")))))) | ||||
|     (home-page "gopher://thelambdalab.xyz/1/projects/elpher/") | ||||
|     (synopsis "Gopher and gemini client for Emacs") | ||||
|     (description "Elpher is a full-featured gopher and gemini client for | ||||
| Emacs.  Its features include intuitive keyboard and mouse-driven browsing, | ||||
| out-of-the-box compatibility with evil-mode, clickable links in plain text, | ||||
| caching of visited sites, pleasant and configurable visualization of Gopher | ||||
| directories, direct visualisation of image files, jumping directly to links by | ||||
| name (with autocompletion), a simple bookmark management system and | ||||
| connections using TLS encryption.") | ||||
|       (license license:gpl3+)))) | ||||
|     (license license:gpl3+))) | ||||
| 
 | ||||
| (define-public emacs-zerodark-theme | ||||
|   (package | ||||
|  | @ -25675,14 +25750,14 @@ federated microblogging social network.") | |||
| (define-public emacs-ebdb | ||||
|   (package | ||||
|     (name "emacs-ebdb") | ||||
|     (version "0.7") | ||||
|     (version "0.7.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://elpa.gnu.org/packages/" | ||||
|                            "ebdb-" version ".tar")) | ||||
|        (sha256 | ||||
|         (base32 "0q4ywgh87d6hjac3031s21w91gld2hh7s8nbva94dnzwn6y9d0v1")))) | ||||
|         (base32 "1z5lh1mib60mvs5kbdsrw2h4whz4n5ad4qkpphs2xjvaz92jgq6s")))) | ||||
|     (build-system emacs-build-system) | ||||
|     (home-page "https://github.com/girzel/ebdb") | ||||
|     (synopsis "EIEIO port of BBDB, Emacs's contact-management package") | ||||
|  | @ -28912,7 +28987,7 @@ and preferred services can easily be configured.") | |||
| (define-public emacs-vertico | ||||
|   (package | ||||
|     (name "emacs-vertico") | ||||
|     (version "0.13") | ||||
|     (version "0.14") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -28921,7 +28996,7 @@ and preferred services can easily be configured.") | |||
|              (commit version))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "09zrrjbfbvj5lfrgjq21nsavdm69iwdsa0a80618v7xlkfk56wf1")))) | ||||
|         (base32 "0rddk76ih44b574lsr6d6r9wa2l7c9zlb9kcyw5xvly17ciiq16h")))) | ||||
|     (build-system emacs-build-system) | ||||
|     (native-inputs | ||||
|      `(("texinfo" ,texinfo))) | ||||
|  |  | |||
|  | @ -1947,11 +1947,12 @@ parallel computing platforms.  It also supports serial execution.") | |||
|               (patches | ||||
|                (list (origin | ||||
|                        ;; Fix build with GCC 7.  Patch taken from Arch Linux: | ||||
|                        ;; https://git.archlinux.org/svntogit/community.git/tree/trunk?h=packages/freehdl | ||||
|                        ;; https://github.com/archlinux/svntogit-community/tree/packages/freehdl/trunk | ||||
|                        (method url-fetch) | ||||
|                        (uri "https://git.archlinux.org/svntogit/community.git\ | ||||
| /plain/trunk/build-fix.patch?h=packages/freehdl\ | ||||
| &id=3bb90d64dfe6883e26083cd1fa96226d0d59175a") | ||||
|                        (uri (string-append "https://raw.githubusercontent.com" | ||||
|                                            "/archlinux/svntogit-community" | ||||
|                                            "/3bb90d64dfe6883e26083cd1fa96226d0d59175a" | ||||
|                                            "/trunk/build-fix.patch")) | ||||
|                        (file-name "freehdl-c++-namespace.patch") | ||||
|                        (sha256 | ||||
|                         (base32 | ||||
|  |  | |||
|  | @ -1169,16 +1169,16 @@ with the included @command{xfstests-check} helper.") | |||
| (define-public zfs | ||||
|   (package | ||||
|     (name "zfs") | ||||
|     (version "2.0.5") | ||||
|     (version "2.1.0") | ||||
|     (outputs '("out" "module" "src")) | ||||
|     (source | ||||
|       (origin | ||||
|         (method url-fetch) | ||||
|           (uri (string-append "https://github.com/zfsonlinux/zfs/releases" | ||||
|           (uri (string-append "https://github.com/openzfs/zfs/releases" | ||||
|                               "/download/zfs-" version | ||||
|                               "/zfs-" version ".tar.gz")) | ||||
|           (sha256 | ||||
|            (base32 "1jbfm18hh9x4a9s5d7si8lapmq2aniphyriif9flrgsff26lj5rs")))) | ||||
|            (base32 "0kzkggwznp4m3503f2m4lcinbl99jg50j4asrwfpfk1862vdrgb0")))) | ||||
|     (build-system linux-module-build-system) | ||||
|     (arguments | ||||
|      `(;; The ZFS kernel module should not be downloaded since the license | ||||
|  | @ -1209,6 +1209,25 @@ with the included @command{xfstests-check} helper.") | |||
|                    (util-linux (assoc-ref inputs "util-linux")) | ||||
|                    (nfs-utils  (assoc-ref inputs "nfs-utils")) | ||||
|                    (kmod       (assoc-ref inputs "kmod-runtime"))) | ||||
|                ;; New feature "compatibility=" in 2.1.0. | ||||
|                ;; This feature looks up in two locations: | ||||
|                ;;   /etc/zfs/compatibility.d/ | ||||
|                ;;   /usr/share/zfs/compatibility.d/ | ||||
|                ;; The first is intended for system-specific compatibility | ||||
|                ;; sets, while the second is what is installed with the | ||||
|                ;; OpenZFS package, so use the absolute path for the first | ||||
|                ;; (which requires patching in the file) and the store path | ||||
|                ;; for the second (which it gets by default). | ||||
|                (substitute* "include/sys/fs/zfs.h" | ||||
|                  (("#define\tZPOOL_SYSCONF_COMPAT_D.*$") | ||||
|                   ; Use absolute path. | ||||
|                   "#define\tZPOOL_SYSCONF_COMPAT_D\t\"/etc/zfs/compatibility.d\"\n")) | ||||
|                ;; Also update the manual, which uses absolute paths, so that | ||||
|                ;; /usr/share/zfs/compatibility.d/ is referred via the store. | ||||
|                (substitute* '("man/man7/zpoolprops.7" | ||||
|                               "man/man7/zpool-features.7") | ||||
|                  (("/usr/share/zfs/compatibility.d") | ||||
|                   (string-append out "/share/zfs/compatibility.d"))) | ||||
|                (substitute* "etc/Makefile.in" | ||||
|                  ;; This just contains an example configuration file for | ||||
|                  ;; configuring ZFS on traditional init systems, skip it | ||||
|  |  | |||
|  | @ -501,7 +501,7 @@ do so.") | |||
| (define-public electrum | ||||
|   (package | ||||
|     (name "electrum") | ||||
|     (version "4.0.9") | ||||
|     (version "4.1.5") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -509,7 +509,7 @@ do so.") | |||
|                            version "/Electrum-" | ||||
|                            version ".tar.gz")) | ||||
|        (sha256 | ||||
|         (base32 "1fvjiagi78f32nxgr2rx8jas8hxfvpp1c8fpfcalvykmlhdc2gva")) | ||||
|         (base32 "188r4zji985z8pm9b942xhmvv174yndk6jxagxl7ljk03wl2wiwi")) | ||||
|        (modules '((guix build utils))) | ||||
|        (snippet | ||||
|         '(begin | ||||
|  | @ -523,7 +523,7 @@ do so.") | |||
|        ("python-protobuf" ,python-protobuf) | ||||
|        ("python-aiohttp" ,python-aiohttp) | ||||
|        ("python-aiohttp-socks" ,python-aiohttp-socks) | ||||
|        ("python-aiorpcx" ,python-aiorpcx) | ||||
|        ("python-aiorpcx" ,python-aiorpcx-0.18) | ||||
|        ("python-certifi" ,python-certifi) | ||||
|        ("python-bitstring" ,python-bitstring) | ||||
|        ("python-attrs" ,python-attrs) | ||||
|  |  | |||
|  | @ -21,6 +21,7 @@ | |||
| ;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si> | ||||
| ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> | ||||
| ;;; Copyright © 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro> | ||||
| ;;; Copyright © 2021 Dmitry Polyakov <polyakov@liltechdude.xyz> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -1108,7 +1109,7 @@ to create fully featured games and multimedia programs in the python language.") | |||
| 
 | ||||
| (define-public python-pygame-sdl2 | ||||
|   (let ((real-version "2.1.0") | ||||
|         (renpy-version "7.4.6")) | ||||
|         (renpy-version "7.4.8")) | ||||
|     (package | ||||
|       (inherit python-pygame) | ||||
|       (name "python-pygame-sdl2") | ||||
|  | @ -1118,7 +1119,7 @@ to create fully featured games and multimedia programs in the python language.") | |||
|          (method url-fetch) | ||||
|          (uri (string-append "https://www.renpy.org/dl/" renpy-version | ||||
|                              "/pygame_sdl2-" version ".tar.gz")) | ||||
|          (sha256 (base32 "1cay8mb5ww72mkhjp8y467i5alnjinwai2z0xypp78kjapbma9nb")) | ||||
|          (sha256 (base32 "1yyqcg7khac17jif86vi2d4j9l8x2vfg4h5pasrwwsy0g8386zsm")) | ||||
|          (modules '((guix build utils))) | ||||
|          (snippet | ||||
|           '(begin | ||||
|  | @ -1164,13 +1165,13 @@ developed mainly for Ren'py.") | |||
| (define-public python2-renpy | ||||
|   (package | ||||
|     (name "python2-renpy") | ||||
|     (version "7.4.6") | ||||
|     (version "7.4.8") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://www.renpy.org/dl/" version | ||||
|                            "/renpy-" version "-source.tar.bz2")) | ||||
|        (sha256 (base32 "1nnidghwi725n6kizd18fk3fdyh1fx4d48jngg8cnwgnz7i66bd6")) | ||||
|        (sha256 (base32 "1ml3gs87xxk1iflrg5ivffr4q8fi7d65l1cx462bvvpm1rs2sa8d")) | ||||
|        (modules '((guix build utils))) | ||||
|        (patches | ||||
|         (search-patches | ||||
|  | @ -2111,6 +2112,56 @@ upon which people base their games, ports to new platforms, and other | |||
| projects.") | ||||
|       (license license:gpl2)))) | ||||
| 
 | ||||
| (define-public instead | ||||
|   (package | ||||
|     (name "instead") | ||||
|     (version "3.3.5") | ||||
|     (build-system cmake-build-system) | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|              (url "https://github.com/instead-hub/instead") | ||||
|              (commit version))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "02j8cw623j51qmr4991i5hsbrzmnp0qfzds8m6nwwr15sjv3hv1g")) | ||||
|        (patches | ||||
|         (search-patches | ||||
|          "instead-use-games-path.patch")) | ||||
|        (modules '((guix build utils))) | ||||
|        (snippet | ||||
|         '(begin | ||||
|            (delete-file-recursively "src/zlib"))))) | ||||
|     (arguments | ||||
|      '(#:configure-flags | ||||
|        (list (string-append | ||||
|               "-DLUA_INCLUDE_DIR=" | ||||
|               (assoc-ref %build-inputs "luajit") "/include/luajit-2.1/") | ||||
|              "-DWITH_LUAJIT=1" | ||||
|              "-DWITH_GTK3=1") | ||||
|        #:tests? #f)) | ||||
|     (inputs | ||||
|      `(("gtk+",gtk+) | ||||
|        ("lua" ,lua) | ||||
|        ("luajit" ,luajit) | ||||
|        ("pkg-config" ,pkg-config) | ||||
|        ("sdl2-images" ,sdl2-image) | ||||
|        ("sdl2-ttf" ,sdl2-ttf) | ||||
|        ("sdl2-mixer" ,sdl2-mixer) | ||||
|        ("zlib" ,zlib))) | ||||
|     (home-page "https://instead3.syscall.ru/") | ||||
|     (synopsis "Text adventure interpreter") | ||||
|     (description "The STEAD (Simple TExt ADventures) interpreter provides | ||||
| functionality to play games that mix elements of visual novels, interactive | ||||
| fiction and classic point-and-click adventures.") | ||||
|     (native-search-paths | ||||
|      (list (search-path-specification | ||||
|             (variable "INSTEAD_GAMES_PATH") | ||||
|             (separator #f)                        ;single entry | ||||
|             (files '("share/instead/games"))))) | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public openvr | ||||
|   (package | ||||
|     (name "openvr") | ||||
|  |  | |||
|  | @ -63,6 +63,7 @@ | |||
| ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net> | ||||
| ;;; Copyright © 2021 Solene Rapenne <solene@perso.pw> | ||||
| ;;; Copyright © 2021 Noisytoot <noisytoot@disroot.org> | ||||
| ;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -552,6 +553,47 @@ Playing bastet can be a painful experience, especially if you usually make | |||
| canyons and wait for the long I-shaped block to clear four rows at a time.") | ||||
|     (license license:gpl3+))) | ||||
| 
 | ||||
| (define-public tetrinet | ||||
|   (package | ||||
|     (name "tetrinet") | ||||
|     (version "0.11") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append | ||||
|              "http://tetrinet.or.cz/download/tetrinet-" version | ||||
|              ".tar.bz2")) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0b4pddqz6is1771qmvcj8qqlr4in2djdbkk13agvp9yhfah2v8x7")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (inputs | ||||
|      `(("ncurses" ,ncurses))) | ||||
|     (arguments | ||||
|      `(#:tests? #f                      ;no tests | ||||
|        #:make-flags '("CC=gcc") | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (delete 'configure)            ;no configure script | ||||
|          (add-after 'unpack 'fix-install-dir | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let ((out (assoc-ref outputs "out"))) | ||||
|                (mkdir-p (string-append out "/bin")) | ||||
|                (substitute* "Makefile" | ||||
|                  (("/usr/games") (string-append out "/bin")))))) | ||||
|          (add-after 'install 'install-documentation | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out")) | ||||
|                     (doc (string-append out "/share/doc/" ,name "-" ,version))) | ||||
|                (for-each (lambda (file) | ||||
|                            (install-file file doc)) | ||||
|                          (list "README" "tetrinet.txt")))))))) | ||||
|     (home-page "http://tetrinet.or.cz") | ||||
|     (synopsis "Terminal-based multiplayer Tetris clone") | ||||
|     (description "Tetrinet is a multiplayer Tetris-like game with powerups and | ||||
| attacks you can use on opponents.") | ||||
|     (license license:public-domain))) | ||||
| 
 | ||||
| (define-public vitetris | ||||
|   (package | ||||
|     (name "vitetris") | ||||
|  | @ -6530,14 +6572,14 @@ fish.  The whole game is accompanied by quiet, comforting music.") | |||
| (define-public crawl | ||||
|   (package | ||||
|     (name "crawl") | ||||
|     (version "0.26.1") | ||||
|     (version "0.27.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://github.com/crawl/crawl/releases/download/" | ||||
|                            version "/stone_soup-" version "-nodeps.tar.xz")) | ||||
|        (sha256 | ||||
|         (base32 "1d8p2np2q5951wqphq2f4dyvv976m2lh82b0qp7w9pp1h8zzi1ff")) | ||||
|         (base32 "0hzkzpqmydxm1zjkdm7k4w3hldsqin3pwkj7jmfj4jijkr0zg9nq")) | ||||
|        (patches (search-patches "crawl-upgrade-saves.patch")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (inputs | ||||
|  | @ -6917,7 +6959,7 @@ Crowther & Woods, its original authors, in 1995.  It has been known as | |||
| (define-public tome4 | ||||
|   (package | ||||
|     (name "tome4") | ||||
|     (version "1.7.3") | ||||
|     (version "1.7.4") | ||||
|     (synopsis "Single-player, RPG roguelike game set in the world of Eyal") | ||||
|     (source | ||||
|      (origin | ||||
|  | @ -6925,7 +6967,7 @@ Crowther & Woods, its original authors, in 1995.  It has been known as | |||
|        (uri (string-append "https://te4.org/dl/t-engine/t-engine4-src-" | ||||
|                            version ".tar.bz2")) | ||||
|        (sha256 | ||||
|         (base32 "1rik17r01glq3944sdb06xjf0xppgqkjk564wrh22slm4mi3fifz")) | ||||
|         (base32 "197jmd99l3w3sig32pvdlq9fcgdjjx7g9csy08kz174cyhrlyly3")) | ||||
|        (modules '((guix build utils))) | ||||
|        (snippet | ||||
|         '(begin | ||||
|  | @ -6934,8 +6976,7 @@ Crowther & Woods, its original authors, in 1995.  It has been known as | |||
|               (string-append | ||||
|                line " || defined(__GNUC__)"))) | ||||
|            (substitute* '("src/tgl.h") | ||||
|              (("#include <GL/glext.h>") "")) | ||||
|            #t)))) | ||||
|              (("#include <GL/glext.h>") "")))))) | ||||
|     (build-system gnu-build-system) | ||||
|     (native-inputs | ||||
|      `(("unzip" ,unzip))) | ||||
|  | @ -6958,8 +6999,7 @@ Crowther & Woods, its original authors, in 1995.  It has been known as | |||
|                   (delete 'bootstrap) | ||||
|                   (replace 'configure | ||||
|                     (lambda _ | ||||
|                       (invoke "premake4" "gmake") | ||||
|                       #t)) | ||||
|                       (invoke "premake4" "gmake"))) | ||||
|                   (add-after 'set-paths 'set-sdl-paths | ||||
|                     (lambda* (#:key inputs #:allow-other-keys) | ||||
|                       (setenv "CPATH" | ||||
|  | @ -7024,8 +7064,7 @@ Crowther & Woods, its original authors, in 1995.  It has been known as | |||
|                          #:comment ,synopsis | ||||
|                          #:exec ,name | ||||
|                          #:icon icon | ||||
|                          #:categories '("Game" "RolePlaying"))) | ||||
|                       #t))))) | ||||
|                          #:categories '("Game" "RolePlaying")))))))) | ||||
|     (home-page "https://te4.org") | ||||
|     (description "Tales of Maj’Eyal (ToME) RPG, featuring tactical turn-based | ||||
| combat and advanced character building.  Play as one of many unique races and | ||||
|  | @ -7152,15 +7191,26 @@ some graphical niceities, and numerous bug-fixes and other improvements.") | |||
|      `(#:tests? #f | ||||
|        #:make-flags | ||||
|        (list "CC=gcc" | ||||
|              ;; link openAL instead of using dlopen at runtime | ||||
|              "DLOPEN_OPENAL=\"no\"" | ||||
|              ;; an optional directory where it will look for quake2 data files | ||||
|              ;; in addition to the current working directory | ||||
|              ;; An optional directory where it will look for quake2 data files | ||||
|              ;; in addition to the current working directory. | ||||
|              "WITH_SYSTEMWIDE=yes" | ||||
|              "WITH_SYSTEMDIR=\"/opt/quake2\"") | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (delete 'configure) | ||||
|          (add-before 'build 'patch-libraries | ||||
|            (lambda* (#:key inputs #:allow-other-keys) | ||||
|              ;; The game writes paths to openal.so and curl.so to ~/.yq2/... | ||||
|              ;; Workaround: hard-code the compiled paths where it loads them; | ||||
|              ;; this prevents loading old or garbage collected libraries. | ||||
|              (substitute* "src/client/sound/qal.c" | ||||
|                (("al_driver->string") | ||||
|                 (string-append "\"" (assoc-ref inputs "openal") | ||||
|                                "/lib/libopenal.so\""))) | ||||
|              (substitute* "src/client/curl/qcurl.c" | ||||
|                (("cl_libcurl->string") | ||||
|                 (string-append "\"" (assoc-ref inputs "curl") | ||||
|                                "/lib/libcurl.so\""))))) | ||||
|          (replace 'install | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let ((out (assoc-ref outputs "out"))) | ||||
|  | @ -8332,38 +8382,33 @@ your score gets higher, you level up and the blocks fall faster.") | |||
| (define-public endless-sky | ||||
|   (package | ||||
|     (name "endless-sky") | ||||
|     (version "0.9.12") | ||||
|     (version "0.9.14") | ||||
|     (source | ||||
|       (origin | ||||
|         (method git-fetch) | ||||
|         (uri (git-reference | ||||
|                (url "https://github.com/endless-sky/endless-sky") | ||||
|                (commit (string-append "v" version)))) | ||||
|         (file-name (git-file-name name version)) | ||||
|         (sha256 | ||||
|          (base32 "18nkl4s3r5sy3sd9lhbdg9160c7fggklklprx0d5azifc8g6k0wj")))) | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|              (url "https://github.com/endless-sky/endless-sky") | ||||
|              (commit (string-append "v" version)))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "12iganf8dxiyrjznnabsarxjsr0h717j3k4mz15p0k67wxyahhmf")))) | ||||
|     (build-system scons-build-system) | ||||
|     (arguments | ||||
|      `(#:scons ,scons-python2 | ||||
|        #:scons-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) | ||||
|        #:tests? #f ; no tests | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'patch-resource-locations | ||||
|          (add-after 'unpack 'fix-paths | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              ;; Look for resources in the store directory. | ||||
|              (substitute* "source/Files.cpp" | ||||
|                (("/usr/local/") | ||||
|                 (string-append (assoc-ref outputs "out") "/"))) | ||||
|              #t)) | ||||
|          (add-after 'unpack 'patch-scons | ||||
|            (lambda _ | ||||
|                (("/usr/local") (assoc-ref outputs "out"))) | ||||
|              ;; Install game binary into %out/bin. | ||||
|              (substitute* "SConstruct" | ||||
|                ;; Keep environmental variables | ||||
|                (("Environment\\(\\)") | ||||
|                 "Environment(ENV = os.environ)") | ||||
|                ;; Install into %out/bin | ||||
|                (("games\"") "bin\"")) | ||||
|              #t))))) | ||||
|                (("games\"") "bin\"")))) | ||||
|          (add-before 'build 'use-gcc-ar | ||||
|            ;; Use gcc-ar to support LTO. | ||||
|            (lambda _ (setenv "AR" "gcc-ar")))))) | ||||
|     (inputs | ||||
|      `(("glew" ,glew) | ||||
|        ("libjpeg" ,libjpeg-turbo) | ||||
|  | @ -8995,7 +9040,7 @@ fight each other on an arena-like map.") | |||
| (define-public flare-engine | ||||
|   (package | ||||
|     (name "flare-engine") | ||||
|     (version "1.11") | ||||
|     (version "1.12") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|  | @ -9004,7 +9049,7 @@ fight each other on an arena-like map.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1mqr1s72p5bdh4kq2a8hg72dk8lwnddicjnd2cdp1sbfa9lmjym8")))) | ||||
|                 "0h4xxj6r194pw68m3ngrnzkh6xgiblyrsc54z8abwba8m0mqbvmk")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #f                      ;no test | ||||
|  | @ -9023,7 +9068,7 @@ action RPGs.") | |||
| (define-public flare-game | ||||
|   (package | ||||
|     (name "flare-game") | ||||
|     (version "1.11") | ||||
|     (version "1.12") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|  | @ -9032,7 +9077,7 @@ action RPGs.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0bd5g7sd89a9176ilr408hdqzdfv4j7wj0idd685c1n6s01c3h6p")))) | ||||
|                 "0h9i128kq6disppbrplkf13zdmsg4cq23nim53mgwpawc4mqz7ga")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #f                      ;no test | ||||
|  | @ -11996,7 +12041,7 @@ etc.  You can also play games on FICS or against an engine.") | |||
|                                            ,(match (%current-system) | ||||
|                                               ("x86_64-linux" "x86-64") | ||||
|                                               ("i686-linux" "x86-32") | ||||
|                                               ("aarch64-linux" "general-64") | ||||
|                                               ("aarch64-linux" "armv8") | ||||
|                                               ("armhf-linux" "armv7") | ||||
|                                               ("mips64el-linux" "general-64") | ||||
|                                               (_ "general-32")))) | ||||
|  |  | |||
|  | @ -600,14 +600,14 @@ It also includes runtime support libraries for these languages."))) | |||
| (define-public gcc-11 | ||||
|   (package | ||||
|    (inherit gcc-8) | ||||
|    (version "11.1.0") | ||||
|    (version "11.2.0") | ||||
|    (source (origin | ||||
|             (method url-fetch) | ||||
|             (uri (string-append "mirror://gnu/gcc/gcc-" | ||||
|                                 version "/gcc-" version ".tar.xz")) | ||||
|             (sha256 | ||||
|              (base32 | ||||
|               "1pwxrjhsymv90xzh0x42cxfnmhjinf2lnrrf3hj5jq1rm2w6yjjc")) | ||||
|               "12zs6vd2rapp42x154m479hg3h3lsafn3xhg06hp5hsldd9xr3nh")) | ||||
|             (patches (search-patches "gcc-9-strmov-store-file-names.patch" | ||||
|                                      "gcc-5.0-libvtv-runpath.patch")) | ||||
|             (modules '((guix build utils))) | ||||
|  |  | |||
|  | @ -11950,7 +11950,7 @@ integrated profiler via Sysprof, debugging support, and more.") | |||
| (define-public komikku | ||||
|   (package | ||||
|     (name "komikku") | ||||
|     (version "0.29.2") | ||||
|     (version "0.30.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -11960,7 +11960,7 @@ integrated profiler via Sysprof, debugging support, and more.") | |||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0g1whk0y3k1cy6ix20gz226ww1vzpb9hinn5d24z6j38mdgqqa5l")))) | ||||
|          "1l6iqxa497fisn64mn2qgia4y6zryfa5pbnd8609flfi9qmgrzn7")))) | ||||
|     (build-system meson-build-system) | ||||
|     (arguments | ||||
|      `(#:glib-or-gtk? #t | ||||
|  | @ -11998,6 +11998,7 @@ integrated profiler via Sysprof, debugging support, and more.") | |||
|        ("python-keyring" ,python-keyring) | ||||
|        ("python-lxml" ,python-lxml) | ||||
|        ("python-magic" ,python-magic) | ||||
|        ("python-natsort" ,python-natsort) | ||||
|        ("python-pillow" ,python-pillow) | ||||
|        ("python-pure-protobuf" ,python-pure-protobuf) | ||||
|        ("python-pycairo" ,python-pycairo) | ||||
|  |  | |||
|  | @ -691,8 +691,8 @@ from forcing GEXP-PROMISE." | |||
|                       #:system system | ||||
|                       #:guile-for-build guile))) | ||||
| 
 | ||||
| (define %icecat-version "78.12.0-guix0-preview1") | ||||
| (define %icecat-build-id "20210713000000") ;must be of the form YYYYMMDDhhmmss | ||||
| (define %icecat-version "78.13.0-guix0-preview1") | ||||
| (define %icecat-build-id "20210810000000") ;must be of the form YYYYMMDDhhmmss | ||||
| 
 | ||||
| ;; 'icecat-source' is a "computed" origin that generates an IceCat tarball | ||||
| ;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat' | ||||
|  | @ -714,7 +714,7 @@ from forcing GEXP-PROMISE." | |||
|                   "firefox-" upstream-firefox-version ".source.tar.xz")) | ||||
|             (sha256 | ||||
|              (base32 | ||||
|               "043lplq5i4ax6nh4am3b2bm8dbn4rzzcji1zp0yy1pad4nwahmcb")))) | ||||
|               "0v2g5clp9qlsbqfjb6yz614nq8x8c4k1p6m4axyv6g27qbiaky8r")))) | ||||
| 
 | ||||
|          (upstream-icecat-base-version "78.7.0") ; maybe older than base-version | ||||
|          ;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version)) | ||||
|  | @ -1304,11 +1304,11 @@ standards of the IceCat project.") | |||
|        (cpe-version . ,(first (string-split version #\-))))))) | ||||
| 
 | ||||
| ;; Update this together with icecat! | ||||
| (define %icedove-build-id "20210713000000") ;must be of the form YYYYMMDDhhmmss | ||||
| (define %icedove-build-id "20210810000000") ;must be of the form YYYYMMDDhhmmss | ||||
| (define-public icedove | ||||
|   (package | ||||
|     (name "icedove") | ||||
|     (version "78.12.0") | ||||
|     (version "78.13.0") | ||||
|     (source icecat-source) | ||||
|     (properties | ||||
|      `((cpe-name . "thunderbird_esr"))) | ||||
|  | @ -1592,7 +1592,7 @@ standards of the IceCat project.") | |||
|         ;; in the Thunderbird release tarball.  We don't use the release | ||||
|         ;; tarball because it duplicates the Icecat sources and only adds the | ||||
|         ;; "comm" directory, which is provided by this repository. | ||||
|         ,(let ((changeset "6796ff47626a009d169a1e9fd1f307a6c14b7ed5")) | ||||
|         ,(let ((changeset "adcfedf831da719455116546865f9a5faea848a6")) | ||||
|            (origin | ||||
|              (method hg-fetch) | ||||
|              (uri (hg-reference | ||||
|  | @ -1601,7 +1601,7 @@ standards of the IceCat project.") | |||
|              (file-name (string-append "thunderbird-" version "-checkout")) | ||||
|              (sha256 | ||||
|               (base32 | ||||
|                "1nnz90h5w9skpdwm8ilndcwfx9d7k9cn6gzh32y4jil95da13813"))))) | ||||
|                "1dahf3y8bm3kh7amf341wnmh82a2r0ksqihc6dwiakh6x86a94cm"))))) | ||||
|        ("autoconf" ,autoconf-2.13) | ||||
|        ("cargo" ,rust "cargo") | ||||
|        ("clang" ,clang) | ||||
|  |  | |||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							|  | @ -222,14 +222,14 @@ such as elevation, speed, heart rate, power, temperature, and gear shifts.") | |||
| (define-public gpsd | ||||
|   (package | ||||
|     (name "gpsd") | ||||
|     (version "3.21") | ||||
|     (version "3.23") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://download-mirror.savannah.gnu.org" | ||||
|                            "/releases/gpsd/gpsd-" version ".tar.gz")) | ||||
|                            "/releases/gpsd/gpsd-" version ".tar.xz")) | ||||
|        (sha256 | ||||
|         (base32 "14gyqrbrq6jz4y6x59rdpv9d4c3pbn0vh1blq3iwrc6kz0x4ql35")))) | ||||
|         (base32 "1px9im0qfn8k7mnvjcw5myakzd7mad2drwyzji400hpwyswjjr73")))) | ||||
|     (build-system scons-build-system) | ||||
|     (native-inputs | ||||
|      `(("bc" ,bc) | ||||
|  | @ -259,7 +259,8 @@ such as elevation, speed, heart rate, power, temperature, and gear shifts.") | |||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'fix-build | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (substitute* "SConstruct" | ||||
|              (setenv "TAR" "noop") | ||||
|              (substitute* "SConscript" | ||||
|                (("envs = \\{\\}") | ||||
|                 "envs = os.environ")) | ||||
|              #t)) | ||||
|  |  | |||
|  | @ -797,7 +797,7 @@ many more.") | |||
| (define-public ilmbase | ||||
|   (package | ||||
|     (name "ilmbase") | ||||
|     (version "2.5.5") | ||||
|     (version "2.5.7") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|  | @ -806,7 +806,7 @@ many more.") | |||
|               (file-name (git-file-name "ilmbase" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0mjzb3fd8b9pcqmrgy5cdsmvqd70hmlvjnfypi66v59h3fhrmgd8")) | ||||
|                 "1vja0rbilcd1wn184w8nbcmck00n7bfwlddwiaxw8dhj64nx4468")) | ||||
|               (patches (search-patches "ilmbase-fix-tests.patch")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|  |  | |||
|  | @ -2683,14 +2683,14 @@ is no support for parsing block and inline level HTML.") | |||
| (define-public mcron | ||||
|   (package | ||||
|     (name "mcron") | ||||
|     (version "1.2.0") | ||||
|     (version "1.2.1") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "mirror://gnu/mcron/mcron-" | ||||
|                                   version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1midrn15d5kqy4zd2029bj1db6gnfhxg8mcgfy4bkp5p9nl4v4rd")))) | ||||
|                 "0bkn235g2ia4f7ispr9d55c7bc18282r3qd8ldhh5q2kiin75zi0")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      '(#:phases (modify-phases %standard-phases | ||||
|  |  | |||
|  | @ -344,14 +344,14 @@ to @code{cabal repl}).") | |||
| (define-public git-annex | ||||
|   (package | ||||
|     (name "git-annex") | ||||
|     (version "8.20210714") | ||||
|     (version "8.20210803") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://hackage.haskell.org/package/" | ||||
|                            "git-annex/git-annex-" version ".tar.gz")) | ||||
|        (sha256 | ||||
|         (base32 "0pkzqa8qmckv4fcc9pndlplz4w0ndlqkp18hx6pyycckycljdyzy")))) | ||||
|         (base32 "0777q454bgkzr930wacn48xm6ygi4i6rxsizvxjm3a0dlffnv3b2")))) | ||||
|     (build-system haskell-build-system) | ||||
|     (arguments | ||||
|      `(#:configure-flags | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ | |||
| ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> | ||||
| ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> | ||||
| ;;; Copyright © 2018, 2019, 2020 Peng Mei Yu <i@pengmeiyu.com> | ||||
| ;;; Copyright © 2018, 2019, 2020, 2021 Peng Mei Yu <pengmeiyu@riseup.net> | ||||
| ;;; Copyright © 2020 kanichos <kanichos@yandex.ru> | ||||
| ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> | ||||
| ;;; | ||||
|  | @ -356,7 +356,7 @@ Japanese language input in most graphical applications.") | |||
| (define-public librime | ||||
|   (package | ||||
|     (name "librime") | ||||
|     (version "1.6.1") | ||||
|     (version "1.7.3") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -366,7 +366,7 @@ Japanese language input in most graphical applications.") | |||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1avmy2yyag22cl2j8085n5czsk93sxv440pdb3a2diwcxwwmzm9v")) | ||||
|          "0pqk0i3zcii3fx5laj9qzbgd58jvq6wn31j76w4zix2i4b1lqcqv")) | ||||
|        (modules '((guix build utils))) | ||||
|        (snippet | ||||
|         '(begin | ||||
|  | @ -409,38 +409,29 @@ traditional Chinese output.") | |||
| (define-public rime-data | ||||
|   (package | ||||
|     (name "rime-data") | ||||
|     (version "0.38.20200623") | ||||
|     (version "0.38.20210802") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|              (url "https://github.com/rime/plum") | ||||
|              (commit "397d601dd22cfc857613973724724b8f44db9f9c"))) | ||||
|              (commit "0b835e347cad9c2d7038cfe82df5b5d1fe1c0327"))) | ||||
|        (file-name "plum-checkout") | ||||
|        (sha256 | ||||
|         (base32 "06ad5c4m7xsfr4if5ywshfj2aj5g5b5hwzh38dzccn7c1l2ibi0z")))) | ||||
|         (base32 "0mja4wyazxdc6fr7pzij5ah4rzwxv4s12s64vfn5ikx1ias1f8ib")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:modules ((ice-9 match) | ||||
|                   ,@%gnu-build-system-modules) | ||||
|        #:tests? #f                  ; no tests | ||||
|        #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) | ||||
|                           "no_update=1") | ||||
|        #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'patch-source | ||||
|            (lambda _ | ||||
|              ;; Don't build binary Rime schema.  The binary Rime schema files | ||||
|              ;; are platform dependent and contains timestamp information. | ||||
|              ;; Thus they are not reproducible. | ||||
| 
 | ||||
|              ;; Change `.DEFAULT_GOAL' to `all'. | ||||
|              (substitute* "Makefile" | ||||
|                (("^\\.DEFAULT_GOAL := preset") | ||||
|                 ".DEFAULT_GOAL := all")) | ||||
|              ;; Disable git operations. | ||||
|              (substitute* "scripts/install-packages.sh" | ||||
|                ((".*update-package\\.sh.*") "")) | ||||
|                (("^\\s*fetch_or_update_package\\s$") "")) | ||||
|              #t)) | ||||
|          ;; Copy Rime schemas into the "package/rime" directory. | ||||
|          (add-after 'unpack 'copy-rime-schemas | ||||
|  | @ -455,6 +446,12 @@ traditional Chinese output.") | |||
|                          (symlink path (string-append dest-dir "/" schema)))))) | ||||
|                 inputs)) | ||||
|              #t)) | ||||
|          (replace 'build | ||||
|            ;; NOTE: Don't build binary Rime schema.  Binary Rime schema files | ||||
|            ;; are platform dependent and contain timestamp information. | ||||
|            ;; Therefore they are not reproducible. | ||||
|            (lambda* (#:key make-flags #:allow-other-keys) | ||||
|              (apply invoke "make" "all" make-flags))) | ||||
|          (delete 'configure)))) | ||||
|     (inputs | ||||
|      `(("rime-array" | ||||
|  | @ -462,51 +459,51 @@ traditional Chinese output.") | |||
|            (method git-fetch) | ||||
|            (uri (git-reference | ||||
|                  (url "https://github.com/rime/rime-array") | ||||
|                  (commit "93cc99238f120606a076220ec4ddcad164f6396a"))) | ||||
|                  (commit "7a7bfafae966e5f949a23a82ee8594cacf492593"))) | ||||
|            (file-name "rime-array-checkout") | ||||
|            (sha256 | ||||
|             (base32 | ||||
|              "06yxrv3x702751jvx46rfw3ix34jk7jh183rz6bllznzi7lxz7sz")))) | ||||
|              "0kw0wyc5f77bv06fixkfvqnibmm80pyifvrhz8f1h411926ny37r")))) | ||||
|        ("rime-bopomofo" | ||||
|         ,(origin | ||||
|            (method git-fetch) | ||||
|            (uri (git-reference | ||||
|                  (url "https://github.com/rime/rime-bopomofo") | ||||
|                  (commit "ed25098386f5efd3d70b08650f0d1b70c41c11a3"))) | ||||
|                  (commit "c7618f4f5728e1634417e9d02ea50d82b71956ab"))) | ||||
|            (file-name "rime-bopomofo-checkout") | ||||
|            (sha256 | ||||
|             (base32 | ||||
|              "1ip1pbfb1hadf2mcymr5939iagf25ywfl67d9198jahzyr6rdyvc")))) | ||||
|              "0g77nv0jrwqnbqqna0ib0kqcy6l5zl62kh49ny67d6bjwnwz9186")))) | ||||
|        ("rime-cangjie" | ||||
|         ,(origin | ||||
|            (method git-fetch) | ||||
|            (uri (git-reference | ||||
|                  (url "https://github.com/rime/rime-cangjie") | ||||
|                  (commit "5fd8ce6f64039e505ca02655a621f2e830b97c19"))) | ||||
|                  (commit "8dfad9e537f18821b71ba28773315d9c670ae245"))) | ||||
|            (file-name "rime-cangjie-checkout") | ||||
|            (sha256 | ||||
|             (base32 | ||||
|              "1gf6r0q593ixar6v0jyvs56cik2gjp7pf9v799rfd2yydyia3bfg")))) | ||||
|              "029kw9nx6x0acg4f0m8wj1ziqffffhy9yyj51nlx17cnia0qcrby")))) | ||||
|        ("rime-cantonese" | ||||
|         ,(origin | ||||
|            (method git-fetch) | ||||
|            (uri (git-reference | ||||
|                  (url "https://github.com/rime/rime-cantonese") | ||||
|                  (commit "e06fe8e79d7d64db2f2b6339aabc004d8cbc1f67"))) | ||||
|                  (commit "fa7c8ad19d51143c1a470295d56feeb63e92113f"))) | ||||
|            (file-name "rime-cantonese-checkout") | ||||
|            (sha256 | ||||
|             (base32 | ||||
|              "0j6kbhdfj7dx812yzykndzbk53s2v1rsaa2jlyma03hz7qlnnl0s")))) | ||||
|              "0vy5vv6h4r4b2msdvdrsj0zr6wmrv0fxm5zyyvxq8f1ix7ignm4c")))) | ||||
|        ("rime-combo-pinyin" | ||||
|         ,(origin | ||||
|            (method git-fetch) | ||||
|            (uri (git-reference | ||||
|                  (url "https://github.com/rime/rime-combo-pinyin") | ||||
|                  (commit "67b29cdc786928ea46b43a9c660dee3db8f1adff"))) | ||||
|                  (commit "a84065a86b272c76215215bd6f03c506b6e7097c"))) | ||||
|            (file-name "rime-combo-pinyin-checkout") | ||||
|            (sha256 | ||||
|             (base32 | ||||
|              "1v6ax51xll2aizbz1xzjyk6p3lmq8cyzbxkrwcffa723zaj0zz4l")))) | ||||
|              "1f0b4kakw0x26gmx7xi4f94nbjlb8lvi9bks4f92jswa045vnd87")))) | ||||
|        ("rime-double-pinyin" | ||||
|         ,(origin | ||||
|            (method git-fetch) | ||||
|  | @ -522,21 +519,21 @@ traditional Chinese output.") | |||
|            (method git-fetch) | ||||
|            (uri (git-reference | ||||
|                  (url "https://github.com/rime/rime-emoji") | ||||
|                  (commit "c99d34e4a837349e4679a110bb4b94f71fe015ae"))) | ||||
|                  (commit "4c8c51f4a3bc7298c99376eda9bbd86070fc4fa1"))) | ||||
|            (file-name "rime-emoji-checkout") | ||||
|            (sha256 | ||||
|             (base32 | ||||
|              "1wiwlxjjml9xfgg7z1wzaf4b1bsg81dkwvsfff2b61fwxq61zkgw")))) | ||||
|              "0175jqh210fncafqckr9zzaw55qpswmqjrykwms1apmc68l43122")))) | ||||
|        ("rime-essay" | ||||
|         ,(origin | ||||
|            (method git-fetch) | ||||
|            (uri (git-reference | ||||
|                  (url "https://github.com/rime/rime-essay") | ||||
|                  (commit "88055afa3752e4582fa887765d962a30e02bb1fa"))) | ||||
|                  (commit "9db2e77305e75798baf3ec8dcf1f82785b5e1be9"))) | ||||
|            (file-name "rime-essay-checkout") | ||||
|            (sha256 | ||||
|             (base32 | ||||
|              "0ap7xqv6v0x6mdkw2cv93cbr6qhpla3803z04522wb8l9hr7iryg")))) | ||||
|              "03ypkkaadd5qmyg26n24a66cll90xvcimgbmiyv4d33jradiqg22")))) | ||||
|        ("rime-ipa" | ||||
|         ,(origin | ||||
|            (method git-fetch) | ||||
|  | @ -552,51 +549,51 @@ traditional Chinese output.") | |||
|            (method git-fetch) | ||||
|            (uri (git-reference | ||||
|                  (url "https://github.com/rime/rime-jyutping") | ||||
|                  (commit "6fe0d727b3178feabd0f01e6cd82599202764735"))) | ||||
|                  (commit "1e24baa6998815c716c581effe8ec65ee87c4e8c"))) | ||||
|            (file-name "rime-jyutping-checkout") | ||||
|            (sha256 | ||||
|             (base32 | ||||
|              "0wz6d3pmi72ysh2c0nml3rsz9hd2vazsyhnz34gq26yf4j85phfs")))) | ||||
|              "0s2rckpwlrm3n7w1csnqyi5p9mkpp3z87s7mrm2vc9sv06rpv7zl")))) | ||||
|        ("rime-luna-pinyin" | ||||
|         ,(origin | ||||
|            (method git-fetch) | ||||
|            (uri (git-reference | ||||
|                  (url "https://github.com/rime/rime-luna-pinyin") | ||||
|                  (commit "f1268e192ca88b9526467ce04ac3e47c837891ad"))) | ||||
|                  (commit "623adb022b094d540218b287c2e601509eee3347"))) | ||||
|            (file-name "rime-luna-pinyin-checkout") | ||||
|            (sha256 | ||||
|             (base32 | ||||
|              "0nxnjp1ybcrsan1mxnzwbkfhwl99kza6i9k1s7m9wzmhv7x7zahg")))) | ||||
|              "06pcwp09l5wkqv7792gbsl31xnlb3gr9q6bgbp94vvq6m2ycahqz")))) | ||||
|        ("rime-middle-chinese" | ||||
|         ,(origin | ||||
|            (method git-fetch) | ||||
|            (uri (git-reference | ||||
|                  (url "https://github.com/rime/rime-middle-chinese") | ||||
|                  (commit "ed6d44f8d0bedf6e0c1c3183a270f8f01a211a40"))) | ||||
|                  (commit "9fad7a7c0c26167d5e6e85db8df48a15c7f7d4f0"))) | ||||
|            (file-name "rime-middle-chinese-checkout") | ||||
|            (sha256 | ||||
|             (base32 | ||||
|              "09mql88lsrxa99pyllby5z22kaiwwa037ha8gwaxjnnlsjgvz7zx")))) | ||||
|              "0a0bqrlzg0k692xblqnh1rh1fwwqqb205xwxlihgji85n8ibcgph")))) | ||||
|        ("rime-pinyin-simp" | ||||
|         ,(origin | ||||
|            (method git-fetch) | ||||
|            (uri (git-reference | ||||
|                  (url "https://github.com/rime/rime-pinyin-simp") | ||||
|                  (commit "b73df7fc0994912ce785462b3be569ae81258ac2"))) | ||||
|                  (commit "b0e84cda02c613ebdedc127a26131b3800f45a8e"))) | ||||
|            (file-name "rime-pinyin-simp-checkout") | ||||
|            (sha256 | ||||
|             (base32 | ||||
|              "1m9hchnj1xf5s5185qm66ja0g1324drc98b2jjhnqgcp47bwz9fx")))) | ||||
|              "05v804qr3a9xvjzp9yid7231fi2l2yrl47ybbvql61z9k36ab094")))) | ||||
|        ("rime-prelude" | ||||
|         ,(origin | ||||
|            (method git-fetch) | ||||
|            (uri (git-reference | ||||
|                  (url "https://github.com/rime/rime-prelude") | ||||
|                  (commit "8a52b4f86a59f3eb602f9a4cf6a680a67c15df8c"))) | ||||
|                  (commit "3de303ffaa731dba07b0462ce59f4767e1219ad2"))) | ||||
|            (file-name "rime-prelude-checkout") | ||||
|            (sha256 | ||||
|             (base32 | ||||
|              "039fr3996vfxzn2milaq1f5fw08f6zgjsxsql6cfhsc5b55fidm7")))) | ||||
|              "0g7a0bla58rh1v3md59k6adk185pilb4z8i2i0pqdl4nwqp40n2p")))) | ||||
|        ("rime-quick" | ||||
|         ,(origin | ||||
|            (method git-fetch) | ||||
|  | @ -652,21 +649,21 @@ traditional Chinese output.") | |||
|            (method git-fetch) | ||||
|            (uri (git-reference | ||||
|                  (url "https://github.com/rime/rime-terra-pinyin") | ||||
|                  (commit "492aaf914f9de37cc9d26b846dc693116de70ae8"))) | ||||
|                  (commit "ce7b9249612f575d2f43d51fcacd31d1b4e0ef1b"))) | ||||
|            (file-name "rime-terra-pinyin-checkout") | ||||
|            (sha256 | ||||
|             (base32 | ||||
|              "1l4l2w42mc3sf7jwbadx95gzrsq11ld9f6yj2hwaq9accainw3bf")))) | ||||
|              "0vm303f4lrdmdmif5klrp6w29vn9z2vzw33cw0y83pcnz39wiads")))) | ||||
|        ("rime-wubi" | ||||
|         ,(origin | ||||
|            (method git-fetch) | ||||
|            (uri (git-reference | ||||
|                  (url "https://github.com/rime/rime-wubi") | ||||
|                  (commit "dd052ee158a38cb791755318b1aef9b4a3ed0316"))) | ||||
|                  (commit "f1876f08f1d4a9696395be0070c0e8e4353c44cb"))) | ||||
|            (file-name "rime-wubi-checkout") | ||||
|            (sha256 | ||||
|             (base32 | ||||
|              "00xzv3sbwqh2jz4i7s315h7rw17qa2dgj7kflyy3blxk0s2cqiqa")))) | ||||
|              "1d9y9rqssacria9d0hla96czsqv2wkfm6z926m1x269ryv96zxvk")))) | ||||
|        ("rime-wugniu" | ||||
|         ,(origin | ||||
|            (method git-fetch) | ||||
|  | @ -681,12 +678,42 @@ traditional Chinese output.") | |||
|     (synopsis "Schema data of Rime Input Method Engine") | ||||
|     (description "@dfn{rime-data} provides the schema data of Rime Input | ||||
| Method Engine.") | ||||
|     (license lgpl3))) | ||||
|     (license (list | ||||
|               ;; rime-array | ||||
|               ;; rime-combo-pinyin | ||||
|               ;; rime-double-pinyin | ||||
|               ;; rime-middle-chinese | ||||
|               ;; rime-scj | ||||
|               ;; rime-soutzoe | ||||
|               ;; rime-stenotype | ||||
|               ;; rime-wugniu | ||||
|               gpl3 | ||||
| 
 | ||||
|               ;; plum | ||||
|               ;; rime-bopomofo | ||||
|               ;; rime-cangjie | ||||
|               ;; rime-emoji | ||||
|               ;; rime-essay | ||||
|               ;; rime-ipa | ||||
|               ;; rime-jyutping | ||||
|               ;; rime-luna-pinyin | ||||
|               ;; rime-prelude | ||||
|               ;; rime-quick | ||||
|               ;; rime-stroke | ||||
|               ;; rime-terra-pinyin | ||||
|               ;; rime-wubi | ||||
|               lgpl3 | ||||
| 
 | ||||
|               ;; rime-pinyin-simp | ||||
|               asl2.0 | ||||
| 
 | ||||
|               ;; rime-cantonese | ||||
|               cc-by4.0)))) | ||||
| 
 | ||||
| (define-public ibus-rime | ||||
|   (package | ||||
|     (name "ibus-rime") | ||||
|     (version "1.4.0") | ||||
|     (version "1.5.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -695,40 +722,22 @@ Method Engine.") | |||
|              (commit version))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "12y6jdz1amhgrnqa7zjim63dfsz6zyxyahbirfan37wmcfp6gp1d")))) | ||||
|     (build-system gnu-build-system) | ||||
|         (base32 "1vl3m6ydf7mvmalpdqqmrnnmqdi6l8yyac3bv19pp8a5q3qhkwlg")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #f                      ; no tests | ||||
|        #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) | ||||
|        #:configure-flags | ||||
|        (list (string-append "-DRIME_DATA_DIR=" | ||||
|                             (assoc-ref %build-inputs "rime-data") | ||||
|                             "/share/rime-data")) | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'patch-source | ||||
|            (lambda* (#:key inputs outputs #:allow-other-keys) | ||||
|              ;; Define RIME_DATA_DIR. It's required but not used by the code. | ||||
|              (substitute* "Makefile" | ||||
|                (("cmake") | ||||
|                 (string-append "cmake -DRIME_DATA_DIR=" | ||||
|                                (assoc-ref inputs "rime-data") | ||||
|                                "/share/rime-data"))) | ||||
|              ;; rime_config.h defines the actual data directory. | ||||
|              (substitute* "rime_config.h" | ||||
|                (("^#define IBUS_RIME_INSTALL_PREFIX .*$") | ||||
|                 (string-append "#define IBUS_RIME_INSTALL_PREFIX \"" | ||||
|                                (assoc-ref outputs "out") | ||||
|                                "\"\n")) | ||||
|                (("^#define IBUS_RIME_SHARED_DATA_DIR .*$") | ||||
|                 (string-append "#define IBUS_RIME_SHARED_DATA_DIR \"" | ||||
|                                (assoc-ref inputs "rime-data") | ||||
|                                "/share/rime-data\"\n"))) | ||||
|              #t)) | ||||
|          (add-after 'unpack 'fix-file-names | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              ;; IBus uses the component file rime.xml to start the Rime | ||||
|              ;; engine.  It must be patched with appropriate file names. | ||||
|              (substitute* "rime.xml" | ||||
|                (("/usr") (assoc-ref outputs "out"))) | ||||
|              #t)) | ||||
|          (delete 'configure)))) | ||||
|            (lambda _ | ||||
|              (substitute* "CMakeLists.txt" | ||||
|                (("DESTINATION....RIME_DATA_DIR..") | ||||
|                 "DESTINATION \"${CMAKE_INSTALL_DATADIR}/rime-data\"")) | ||||
|              #t))))) | ||||
|     (inputs | ||||
|      `(("gdk-pixbuf" ,gdk-pixbuf) | ||||
|        ("glib" ,glib) | ||||
|  |  | |||
|  | @ -2265,7 +2265,7 @@ focus on speed and slick struct mapping.") | |||
| (define-public julia-lazyarrays | ||||
|   (package | ||||
|     (name "julia-lazyarrays") | ||||
|     (version "0.21.11") | ||||
|     (version "0.21.14") | ||||
|     (source | ||||
|       (origin | ||||
|         (method git-fetch) | ||||
|  | @ -2274,7 +2274,7 @@ focus on speed and slick struct mapping.") | |||
|                (commit (string-append "v" version)))) | ||||
|         (file-name (git-file-name name version)) | ||||
|         (sha256 | ||||
|          (base32 "1vdli4zr94xhrx5bpvrqiysz21nzlcgmqz0zhza1ayw0zjgzihfw")))) | ||||
|          (base32 "130kqyfk0h17s9dr9r1p9n1dgvzzlb1jwn6pj14lwr83s36glpv1")))) | ||||
|     (build-system julia-build-system) | ||||
|     (propagated-inputs | ||||
|      `(("julia-arraylayouts" ,julia-arraylayouts) | ||||
|  |  | |||
|  | @ -32,7 +32,6 @@ | |||
|   #:use-module (gnu packages) | ||||
|   #:use-module (gnu packages algebra) | ||||
|   #:use-module (gnu packages base) | ||||
|   #:use-module (gnu packages certs) | ||||
|   #:use-module (gnu packages compression) | ||||
|   #:use-module (gnu packages curl) | ||||
|   #:use-module (gnu packages elf) | ||||
|  | @ -273,7 +272,7 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.") | |||
| (define-public julia | ||||
|   (package | ||||
|     (name "julia") | ||||
|     (version "1.6.1") | ||||
|     (version "1.6.2") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append | ||||
|  | @ -281,7 +280,7 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.") | |||
|                     version "/julia-" version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1mfzbjyqcmx7wb1sa7qab5fl78yzd7ap088krqbphbwvpn880srn")) | ||||
|                 "0plbj4laifzz8ppk889iv3gaxj1mdddzv7yad6ghml6bfnn24r6m")) | ||||
|               (patches | ||||
|                (search-patches "julia-SOURCE_DATE_EPOCH-mtime.patch")))) | ||||
|     (build-system gnu-build-system) | ||||
|  | @ -341,6 +340,26 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.") | |||
|                (("\\$\\$\\(build_depsbindir\\)/libwhich") | ||||
|                 (search-input-file inputs "/bin/libwhich"))) | ||||
|              #t)) | ||||
|          (add-after 'unpack 'change-number-of-precompile-statements | ||||
|            (lambda _ | ||||
|              ;; Remove nss-certs drops the number of statements below 1200, | ||||
|              ;; causing the build to fail prematurely. | ||||
|              (substitute* "contrib/generate_precompile.jl" | ||||
|                (("1200") "1100")) | ||||
|              #t)) | ||||
|          ;; For some reason libquadmath is unavailable on this architecture. | ||||
|          ;; https://github.com/JuliaLang/julia/issues/41613 | ||||
|          ,@(if (target-aarch64?) | ||||
|              '((add-after 'unpack 'drop-libquadmath-on-aarch64 | ||||
|                  (lambda _ | ||||
|                    (substitute* '("contrib/fixup-libgfortran.sh" | ||||
|                                   "deps/csl.mk" | ||||
|                                   "base/Makefile") | ||||
|                      ((".*libquadmath.*") "")) | ||||
|                    (substitute* "Makefile" | ||||
|                      (("libquadmath ") "")) | ||||
|                    #t))) | ||||
|              '()) | ||||
|          (add-before 'check 'set-home | ||||
|            ;; Some tests require a home directory to be set. | ||||
|            (lambda _ (setenv "HOME" "/tmp") #t)) | ||||
|  | @ -484,9 +503,6 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.") | |||
|                 "@test_broken ispath(ca_roots_path())") | ||||
|                (("@test ca_roots_path\\(\\) \\!= bundled_ca_roots\\(\\)") | ||||
|                 "@test_broken ca_roots_path() != bundled_ca_roots()")) | ||||
|              ;; Some digraphs are too wide for some terminals during testing. | ||||
|              (substitute* "stdlib/Unicode/test/runtests.jl" | ||||
|                (("test collect\\(graphemes") "test_broken collect(grapemes")) | ||||
|              ;; WARNING: failed to select UTF-8 encoding, using ASCII | ||||
|              ;; Using 'setlocale' doesn't affect the test failures. | ||||
|              ;(setlocale LC_ALL "en_US.utf8") | ||||
|  | @ -644,8 +660,7 @@ libraries.  It is also a bit like @code{ldd} and @code{otool -L}.") | |||
|        ("dsfmt" ,dsfmt) | ||||
|        ("libwhich" ,libwhich))) | ||||
|     (native-inputs | ||||
|      `(("nss-certs" ,nss-certs) | ||||
|        ("openssl" ,openssl) | ||||
|      `(("openssl" ,openssl) | ||||
|        ("perl" ,perl) | ||||
|        ("patchelf" ,patchelf) | ||||
|        ("pkg-config" ,pkg-config) | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> | ||||
| ;;; Copyright © 2019–2021 Tobias Geerinckx-Rice <me@tobias.gr> | ||||
| ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> | ||||
| ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> | ||||
| ;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -59,7 +59,7 @@ text editors.") | |||
| (define-public lesspipe | ||||
|   (package | ||||
|     (name "lesspipe") | ||||
|     (version "1.85") | ||||
|     (version "1.86") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|  | @ -68,7 +68,7 @@ text editors.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1v1jdkdq1phc93gdr6mjlk98gipxrkkq4bj8kks0kfdvjgdwkdaa")))) | ||||
|                 "14qsfwvsqn6r0najpfh5p68by4jwlg2hj4250cfi1hx3j9i5nhgn")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      '(#:tests? #f                      ; no tests | ||||
|  |  | |||
|  | @ -225,14 +225,14 @@ implementing @code{javax.usb} (JSR-80).") | |||
| (define-public python-libusb1 | ||||
|   (package | ||||
|     (name "python-libusb1") | ||||
|     (version "1.6.4") | ||||
|     (version "1.9.3") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (pypi-uri "libusb1" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "03b7xrz8vqg8w0za5r503jhcmbd1ls5610jcja1rqz833nf0v4wc")))) | ||||
|          "0j8p7jb7sibiiib18vyv3w5rrk0f4d2dl99bs18nwkq6pqvwxrk0")))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|      `(#:modules ((srfi srfi-1) | ||||
|  | @ -257,7 +257,7 @@ implementing @code{javax.usb} (JSR-80).") | |||
|                                    "^libusb.*\\.so\\..*")) | ||||
|                  "\""))) | ||||
|              #t))))) | ||||
|     (inputs `(("libusb" ,libusb))) | ||||
|     (propagated-inputs `(("libusb" ,libusb))) | ||||
|     (home-page "https://github.com/vpelletier/python-libusb1") | ||||
|     (synopsis "Pure-python wrapper for libusb-1.0") | ||||
|     (description "Libusb is a library that gives applications easy access to | ||||
|  |  | |||
|  | @ -356,7 +356,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." | |||
| 
 | ||||
| ;; The current "stable" kernels. That is, the most recently released major | ||||
| ;; versions that are still supported upstream. | ||||
| (define-public linux-libre-5.13-version "5.13.7") | ||||
| (define-public linux-libre-5.13-version "5.13.9") | ||||
| (define deblob-scripts-5.13 | ||||
|   (linux-libre-deblob-scripts | ||||
|    linux-libre-5.13-version | ||||
|  | @ -364,7 +364,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." | |||
|    (base32 "153jf5l5x4438zgxwggaky2ahjlfl48j438vhpzks6h77lzc51a5"))) | ||||
| (define-public linux-libre-5.13-pristine-source | ||||
|   (let ((version linux-libre-5.13-version) | ||||
|         (hash (base32 "0fg41dv62vsnv2hywym15zz0n08rhdzwqvcarspm9r5gac85c7pr"))) | ||||
|         (hash (base32 "16hm6sb64f1hlr0qmf2w81zv55s6flj1x8jr2q326d9ny30przkj"))) | ||||
|    (make-linux-libre-source version | ||||
|                             (%upstream-linux-source version hash) | ||||
|                             deblob-scripts-5.13))) | ||||
|  | @ -372,7 +372,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." | |||
| ;; The "longterm" kernels — the older releases with long-term upstream support. | ||||
| ;; Here are the support timelines: | ||||
| ;; <https://www.kernel.org/category/releases.html> | ||||
| (define-public linux-libre-5.10-version "5.10.55") | ||||
| (define-public linux-libre-5.10-version "5.10.57") | ||||
| (define deblob-scripts-5.10 | ||||
|   (linux-libre-deblob-scripts | ||||
|    linux-libre-5.10-version | ||||
|  | @ -380,12 +380,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." | |||
|    (base32 "0c9x07gplzajm0h5if3fpw2rvfb7psw3yp7i2n6ws7ggq1dvmki2"))) | ||||
| (define-public linux-libre-5.10-pristine-source | ||||
|   (let ((version linux-libre-5.10-version) | ||||
|         (hash (base32 "12c8zrbj2c578ysz6j72g4azk0wj39z4aay3bjy9b837mlyi30bm"))) | ||||
|         (hash (base32 "0b8lwfjlyd6j0csk71v07bxb5lrrzp545g1wv6kdk0kzq6maxfq0"))) | ||||
|    (make-linux-libre-source version | ||||
|                             (%upstream-linux-source version hash) | ||||
|                             deblob-scripts-5.10))) | ||||
| 
 | ||||
| (define-public linux-libre-5.4-version "5.4.137") | ||||
| (define-public linux-libre-5.4-version "5.4.139") | ||||
| (define deblob-scripts-5.4 | ||||
|   (linux-libre-deblob-scripts | ||||
|    linux-libre-5.4-version | ||||
|  | @ -393,12 +393,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." | |||
|    (base32 "1xghbbnaisjd0k1klbyn1p7r6r4x5a1bpmkm56a3gh2zvw4s7mj8"))) | ||||
| (define-public linux-libre-5.4-pristine-source | ||||
|   (let ((version linux-libre-5.4-version) | ||||
|         (hash (base32 "0z0zlfm9jkwk3wi059q66xjx33qk2zpjk8ndhzlbvn75dhv5x7ph"))) | ||||
|         (hash (base32 "0zx3hj8fc0qpdmkn56cna5438wjxmj42a69msbkxlg4mnz6d0w84"))) | ||||
|    (make-linux-libre-source version | ||||
|                             (%upstream-linux-source version hash) | ||||
|                             deblob-scripts-5.4))) | ||||
| 
 | ||||
| (define-public linux-libre-4.19-version "4.19.200") | ||||
| (define-public linux-libre-4.19-version "4.19.202") | ||||
| (define deblob-scripts-4.19 | ||||
|   (linux-libre-deblob-scripts | ||||
|    linux-libre-4.19-version | ||||
|  | @ -406,12 +406,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." | |||
|    (base32 "1jiaw0as1ippkrjdpd52657w5mz9qczg3y2hlra7m9k0xawwiqlf"))) | ||||
| (define-public linux-libre-4.19-pristine-source | ||||
|   (let ((version linux-libre-4.19-version) | ||||
|         (hash (base32 "06q8ws1lsrvhssp9qwdlq47sbsf7wzzxbp97sdjfnvmlqvchjx1h"))) | ||||
|         (hash (base32 "09ya7n0il8fipp8ksb8cyl894ihny2r75g70vbhclbv20q2pv0pj"))) | ||||
|     (make-linux-libre-source version | ||||
|                              (%upstream-linux-source version hash) | ||||
|                              deblob-scripts-4.19))) | ||||
| 
 | ||||
| (define-public linux-libre-4.14-version "4.14.241") | ||||
| (define-public linux-libre-4.14-version "4.14.243") | ||||
| (define deblob-scripts-4.14 | ||||
|   (linux-libre-deblob-scripts | ||||
|    linux-libre-4.14-version | ||||
|  | @ -419,12 +419,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." | |||
|    (base32 "1qij18inijj6c3ma8hv98yjagnzxdxyn134da9fd23ky8q6hbvky"))) | ||||
| (define-public linux-libre-4.14-pristine-source | ||||
|   (let ((version linux-libre-4.14-version) | ||||
|         (hash (base32 "0zczi2hv6ib67niycn6s2gaw73y0nxz0c75w11xa4jqmf2xh9fxm"))) | ||||
|         (hash (base32 "0wdk93qv91pa6bd3ff1gv7manhkzh190c5blcpl14cbh9m2ms8vz"))) | ||||
|     (make-linux-libre-source version | ||||
|                              (%upstream-linux-source version hash) | ||||
|                              deblob-scripts-4.14))) | ||||
| 
 | ||||
| (define-public linux-libre-4.9-version "4.9.277") | ||||
| (define-public linux-libre-4.9-version "4.9.279") | ||||
| (define deblob-scripts-4.9 | ||||
|   (linux-libre-deblob-scripts | ||||
|    linux-libre-4.9-version | ||||
|  | @ -432,12 +432,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." | |||
|    (base32 "0fxajshb75siq39lj5h8xvhdj8lcmddkslwlyj65rhlwk6g2r4b2"))) | ||||
| (define-public linux-libre-4.9-pristine-source | ||||
|   (let ((version linux-libre-4.9-version) | ||||
|         (hash (base32 "1pkjcz9llc7hkmzfyjcx20b5njnqbkwlzyy1ncc8na71nn6rvsg6"))) | ||||
|         (hash (base32 "01rf3xh2jcz6l2h79g0m02i8f9q51j64wvgvzi8lmq0gx9yvbv91"))) | ||||
|     (make-linux-libre-source version | ||||
|                              (%upstream-linux-source version hash) | ||||
|                              deblob-scripts-4.9))) | ||||
| 
 | ||||
| (define-public linux-libre-4.4-version "4.4.277") | ||||
| (define-public linux-libre-4.4-version "4.4.280") | ||||
| (define deblob-scripts-4.4 | ||||
|   (linux-libre-deblob-scripts | ||||
|    linux-libre-4.4-version | ||||
|  | @ -445,7 +445,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." | |||
|    (base32 "0hhin1jpfkd6nwrb6xqxjzl3hdxy4pn8a15hy2d3d83yw6pflbsf"))) | ||||
| (define-public linux-libre-4.4-pristine-source | ||||
|   (let ((version linux-libre-4.4-version) | ||||
|         (hash (base32 "1m5zkssh523f15fvy80rcvfwqzdkldz3jhny6vbaj8q0zvk3w5r5"))) | ||||
|         (hash (base32 "1b9jx9zkycj0xjmy35890q5phiznayaz730dmsv3mdjg4qgfn18y"))) | ||||
|     (make-linux-libre-source version | ||||
|                              (%upstream-linux-source version hash) | ||||
|                              deblob-scripts-4.4))) | ||||
|  | @ -3568,7 +3568,14 @@ from the module-init-tools project.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "16iyn51xlrsbshc7p5xl2338yyfzknaqc538sa7mamgccqwgyvvq")))) | ||||
|                 "16iyn51xlrsbshc7p5xl2338yyfzknaqc538sa7mamgccqwgyvvq")) | ||||
|               (modules '((guix build utils))) | ||||
|               (snippet | ||||
|                '(begin | ||||
|                   (substitute* "Makefile" | ||||
|                     (("go test -v") | ||||
|                      "GO111MODULE=off go test -v")) | ||||
|                   #t)))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:phases | ||||
|  |  | |||
|  | @ -903,7 +903,7 @@ the HTML documentation of TXR.") | |||
| (define-public txr | ||||
|   (package | ||||
|     (name "txr") | ||||
|     (version "266") | ||||
|     (version "268") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -912,7 +912,7 @@ the HTML documentation of TXR.") | |||
|              (commit (string-append "txr-" version)))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "1k9mj3zaxdsylgnb8g6cq0cmp6420x7fp3nnsqdmds4gh8ib95wn")))) | ||||
|         (base32 "0q97qddbgk9356gx4xp8iip4pwj3ln03dvjfgrny76f3wmmiwsw6")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (native-inputs | ||||
|      ;; Required to build the documentation. | ||||
|  | @ -957,10 +957,7 @@ the HTML documentation of TXR.") | |||
|            (lambda _ | ||||
|              (substitute* (list "tests/017/realpath.tl" | ||||
|                                 "tests/017/realpath.expected") | ||||
|                (("/usr/bin") "/")) | ||||
|              (substitute* "tests/018/path-test.tl" | ||||
|                (("/bin") (dirname (which "sh")))) | ||||
|              #t)) | ||||
|                (("/usr/bin") "/")))) | ||||
|          (replace 'configure | ||||
|            ;; ./configure is a hand-written script that can't handle standard | ||||
|            ;; autotools arguments like CONFIG_SHELL. | ||||
|  |  | |||
|  | @ -1253,6 +1253,45 @@ with that of libgomp, the GNU Offloading and Multi Processing Library.") | |||
|      "This package provides a Python binding to LLVM for use in Numba.") | ||||
|     (license license:bsd-3))) | ||||
| 
 | ||||
| (define-public (clang-python-bindings clang) | ||||
|   "Return a package for the Python bindings of CLANG." | ||||
|   (package | ||||
|     (inherit clang) | ||||
|     (name "python-clang") | ||||
|     (build-system python-build-system) | ||||
|     (outputs '("out")) | ||||
|     (arguments | ||||
|      '(#:phases (modify-phases %standard-phases | ||||
|                   (add-before 'build 'change-directory | ||||
|                     (lambda _ | ||||
|                       (chdir "bindings/python"))) | ||||
|                   (add-before 'build 'create-setup-py | ||||
|                     (lambda _ | ||||
|                       ;; Generate a basic "setup.py", enough so it can be | ||||
|                       ;; built and installed. | ||||
|                       (with-output-to-file "setup.py" | ||||
|                         (lambda () | ||||
|                           (display "from setuptools import setup | ||||
| setup(name=\"clang\", packages=[\"clang\"])\n"))))) | ||||
|                   (add-before 'build 'set-libclang-file-name | ||||
|                     (lambda* (#:key inputs #:allow-other-keys) | ||||
|                       ;; Record the absolute file name of libclang.so. | ||||
|                       (let ((clang (assoc-ref inputs "clang"))) | ||||
|                         (substitute* "clang/cindex.py" | ||||
|                           (("libclang\\.so") | ||||
|                            (string-append clang "/lib/libclang.so"))))))))) | ||||
|     (inputs `(("clang" ,clang))) | ||||
|     (synopsis "Python bindings to libclang"))) | ||||
| 
 | ||||
| (define-public python-clang-10 | ||||
|   (clang-python-bindings clang-10)) | ||||
| 
 | ||||
| (define-public python-clang-11 | ||||
|   (clang-python-bindings clang-11)) | ||||
| 
 | ||||
| (define-public python-clang-12 | ||||
|   (clang-python-bindings clang-12)) | ||||
| 
 | ||||
| (define-public emacs-clang-format | ||||
|   (package | ||||
|     (inherit clang) | ||||
|  |  | |||
|  | @ -56,6 +56,7 @@ | |||
|   #:use-module (gnu packages check) | ||||
|   #:use-module (gnu packages compression) | ||||
|   #:use-module (gnu packages cmake) | ||||
|   #:use-module (gnu packages cpp) | ||||
|   #:use-module (gnu packages cran) | ||||
|   #:use-module (gnu packages databases) | ||||
|   #:use-module (gnu packages dejagnu) | ||||
|  | @ -64,10 +65,12 @@ | |||
|   #:use-module (gnu packages graphviz) | ||||
|   #:use-module (gnu packages gstreamer) | ||||
|   #:use-module (gnu packages image) | ||||
|   #:use-module (gnu packages libffi) | ||||
|   #:use-module (gnu packages linux) | ||||
|   #:use-module (gnu packages llvm) | ||||
|   #:use-module (gnu packages maths) | ||||
|   #:use-module (gnu packages mpi) | ||||
|   #:use-module (gnu packages ninja) | ||||
|   #:use-module (gnu packages ocaml) | ||||
|   #:use-module (gnu packages onc-rpc) | ||||
|   #:use-module (gnu packages parallel) | ||||
|  | @ -86,6 +89,7 @@ | |||
|   #:use-module (gnu packages statistics) | ||||
|   #:use-module (gnu packages sqlite) | ||||
|   #:use-module (gnu packages swig) | ||||
|   #:use-module (gnu packages tls) | ||||
|   #:use-module (gnu packages web) | ||||
|   #:use-module (gnu packages xml) | ||||
|   #:use-module (gnu packages xorg) | ||||
|  | @ -660,6 +664,50 @@ standard data types.") | |||
|   ;; headers, hence the name change. | ||||
|   (deprecated-package "python-onnx" onnx)) | ||||
| 
 | ||||
| (define-public onnx-optimizer | ||||
|   (package | ||||
|     (name "onnx-optimizer") | ||||
|     ;; Note: 0.2.x is *more* recent than 1.5.0. | ||||
|     (version "0.2.6") | ||||
|     (home-page "https://github.com/onnx/optimizer") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url home-page) | ||||
|                     (commit (string-append "v" version)))) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1wkqqdxcxpfbf8zpbdfdd3zz5jkw775g31gyykj11z4y6pp659l6")) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (patches (search-patches "onnx-optimizer-system-library.patch")) | ||||
|               (modules '((guix build utils))) | ||||
|               (snippet '(delete-file-recursively "third_party")))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments (package-arguments onnx))          ;reuse build system tweaks | ||||
|     (native-inputs | ||||
|      `(("cmake" ,cmake) | ||||
|        ("python-pytest" ,python-pytest) | ||||
|        ("python-pytest-runner" ,python-pytest-runner) | ||||
|        ("python-nbval" ,python-nbval) | ||||
|        ("python-coverage" ,python-coverage))) | ||||
|     (inputs | ||||
|      `(("onnx" ,onnx) | ||||
|        ("protobuf" ,protobuf) | ||||
|        ("pybind11" ,pybind11))) | ||||
|     (propagated-inputs | ||||
|      `(("python-numpy" ,python-numpy))) | ||||
|     (synopsis "Library to optimize ONNX models") | ||||
|     (description | ||||
|      "This package provides a C++ and Python library for performing arbitrary | ||||
| optimizations on ONNX models, as well as a growing list of prepackaged | ||||
| optimization passes. | ||||
| 
 | ||||
| Not all possible optimizations can be directly implemented on ONNX graphs--- | ||||
| some will need additional backend-specific information---but many can, and the | ||||
| aim is to provide all such passes along with ONNX so that they can be re-used | ||||
| with a single function call.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public rxcpp | ||||
|   (package | ||||
|     (name "rxcpp") | ||||
|  | @ -701,23 +749,22 @@ synchronization, thread-safety, concurrent data structures, and non-blocking | |||
| I/O.") | ||||
|     (license license:asl2.0))) | ||||
| 
 | ||||
| (define-public gemmlowp-for-tensorflow | ||||
|   ;; The commit hash is taken from "tensorflow/workspace.bzl". | ||||
|   (let ((commit "38ebac7b059e84692f53e5938f97a9943c120d98") | ||||
|         (revision "2")) | ||||
| 
 | ||||
| (define-public gemmlowp | ||||
|   (let ((commit "f9959600daa42992baace8a49544a00a743ce1b6") | ||||
|         (version "0.1") | ||||
|         (revision "1")) | ||||
|     (package | ||||
|       (name "gemmlowp") | ||||
|       (version (git-version "0" revision commit)) | ||||
|       (version (git-version version revision commit)) | ||||
|       (home-page "https://github.com/google/gemmlowp") | ||||
|       (source (origin | ||||
|                 (method url-fetch) | ||||
|                 (uri (string-append "https://mirror.bazel.build/" | ||||
|                                     "github.com/google/gemmlowp/archive/" | ||||
|                                     commit ".zip")) | ||||
|                 (file-name (string-append "gemmlowp-" version ".zip")) | ||||
|                 (method git-fetch) | ||||
|                 (uri (git-reference (url home-page) (commit commit))) | ||||
|                 (file-name (git-file-name name version)) | ||||
|                 (sha256 | ||||
|                  (base32 | ||||
|                   "0n56s2g8hrssm4w8qj1v58gfm56a04n9v992ixkmvk6zjiralzxq")))) | ||||
|       (build-system cmake-build-system) | ||||
|                   "1hzfhlhzcb827aza6a7drydc67dw5fm3qfqilb9ibskan8dsf0c6")))) | ||||
|       (arguments | ||||
|        `(#:configure-flags | ||||
|          (list ,@(match (%current-system) | ||||
|  | @ -737,18 +784,15 @@ I/O.") | |||
|                       (inc (string-append out "/include/"))) | ||||
|                  (install-file "../build/libeight_bit_int_gemm.so" lib) | ||||
|                  (for-each (lambda (dir) | ||||
|                              (let ((target (string-append inc "/" dir))) | ||||
|                                (mkdir-p target) | ||||
|                              (let ((target | ||||
|                                     (string-append inc "/gemmlowp/" dir))) | ||||
|                                (for-each (lambda (h) | ||||
|                                            (install-file h target)) | ||||
|                                          (find-files (string-append "../" dir) | ||||
|                                                      "\\.h$")))) | ||||
|                            '("meta" "profiling" "public" "fixedpoint" | ||||
|                              "eight_bit_int_gemm" "internal")) | ||||
|                  #t)))))) | ||||
|       (native-inputs | ||||
|        `(("unzip" ,unzip))) | ||||
|       (home-page "https://github.com/google/gemmlowp") | ||||
|                              "eight_bit_int_gemm" "internal")))))))) | ||||
|       (build-system cmake-build-system) | ||||
|       (synopsis "Small self-contained low-precision GEMM library") | ||||
|       (description | ||||
|        "This is a small self-contained low-precision @dfn{general matrix | ||||
|  | @ -758,6 +802,46 @@ at most 8 bits.  To avoid overflow, results are internally accumulated on more | |||
| than 8 bits, and at the end only some significant 8 bits are kept.") | ||||
|       (license license:asl2.0)))) | ||||
| 
 | ||||
| (define-public gemmlowp-for-tensorflow | ||||
|   ;; The commit hash is taken from "tensorflow/workspace.bzl". | ||||
|   (let ((commit "38ebac7b059e84692f53e5938f97a9943c120d98") | ||||
|         (revision "2")) | ||||
|     (package | ||||
|       (inherit gemmlowp) | ||||
|       (version (git-version "0" revision commit)) | ||||
|       (source (origin | ||||
|                 (method url-fetch) | ||||
|                 (uri (string-append "https://mirror.bazel.build/" | ||||
|                                     "github.com/google/gemmlowp/archive/" | ||||
|                                     commit ".zip")) | ||||
|                 (file-name (string-append "gemmlowp-" version ".zip")) | ||||
|                 (sha256 | ||||
|                  (base32 | ||||
|                   "0n56s2g8hrssm4w8qj1v58gfm56a04n9v992ixkmvk6zjiralzxq")))) | ||||
|       (arguments | ||||
|        (substitute-keyword-arguments (package-arguments gemmlowp) | ||||
|          ((#:phases phases) | ||||
|           `(modify-phases ,phases | ||||
|              (replace 'install | ||||
|                (lambda* (#:key outputs #:allow-other-keys) | ||||
|                  (let* ((out (assoc-ref outputs "out")) | ||||
|                         (lib (string-append out "/lib/")) | ||||
|                         (inc (string-append out "/include/"))) | ||||
|                    (install-file "../build/libeight_bit_int_gemm.so" lib) | ||||
|                    (for-each (lambda (dir) | ||||
|                                ;; Note: Install headers straight into | ||||
|                                ;; $includedir instead of $includedir/gemmlowp. | ||||
|                                (let ((target (string-append inc "/" dir))) | ||||
|                                  (for-each (lambda (h) | ||||
|                                              (install-file h target)) | ||||
|                                            (find-files (string-append "../" dir) | ||||
|                                                        "\\.h$")))) | ||||
|                              '("meta" "profiling" "public" "fixedpoint" | ||||
|                                "eight_bit_int_gemm" "internal"))))))))) | ||||
|       (native-inputs | ||||
|        `(("unzip" ,unzip))) | ||||
|       (properties '((hidden? . #t)))))) | ||||
| 
 | ||||
| (define-public dlib | ||||
|   (package | ||||
|     (name "dlib") | ||||
|  | @ -2030,6 +2114,175 @@ together building blocks and a subclassing API with an imperative style for | |||
| advanced research.") | ||||
|     (license license:asl2.0))) | ||||
| 
 | ||||
| (define-public tensorflow-lite | ||||
|   (package | ||||
|     (name "tensorflow-lite") | ||||
|     (version "2.5.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|              (url "https://github.com/tensorflow/tensorflow") | ||||
|              (commit (string-append "v" version)))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1jdw2i1rq06zqd6aabh7bbm0avsg4pygnfmd7gviv0blhih9054l")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #false                  ; no "check" target | ||||
|        #:build-type "Release" | ||||
|        #:configure-flags | ||||
|        (list | ||||
|         "-DTFLITE_ENABLE_GPU=OFF" | ||||
|         "-DTFLITE_ENABLE_RUY=OFF" | ||||
| 
 | ||||
|         ;; TODO: The build system attempts to build xnnpack from source.  We | ||||
|         ;; would like to use our xnnpack package here, but this requires more | ||||
|         ;; work. | ||||
|         "-DTFLITE_ENABLE_XNNPACK=OFF" | ||||
| 
 | ||||
|         ;; Pretend we've already fetched abseil.  We won't actually build it | ||||
|         ;; but use the existing package. | ||||
|         "-Dabseil-cpp_POPULATED=TRUE" | ||||
| 
 | ||||
|         ;; Don't fetch the sources.  We have already built flatbuffers. | ||||
|         "-Dflatbuffers_POPULATED=TRUE" | ||||
| 
 | ||||
|         "-DFFT2D_SOURCE_DIR=/tmp/fft2d" | ||||
|         "-Dneon2sse_SOURCE_DIR=/tmp/neon2sse" | ||||
|         "-Dneon2sse_BINARY_DIR=/tmp/neon2sse-bin" | ||||
|         "-DFARMHASH_SOURCE_DIR=/tmp/farmhash" | ||||
|         "-Dgemmlowp_SOURCE_DIR=/tmp/gemmlowp" | ||||
|         (string-append "-DRUY_SOURCE_DIR=" | ||||
|                        (assoc-ref %build-inputs "ruy-src"))) | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'chdir | ||||
|            (lambda _ (chdir "tensorflow/lite"))) | ||||
|          (add-after 'chdir 'copy-sources | ||||
|            (lambda* (#:key inputs #:allow-other-keys) | ||||
|              ;; Use external cmake finders instead of these stubs that won't | ||||
|              ;; find anything but the bundled sources. | ||||
|              (delete-file "tools/cmake/modules/Findabsl.cmake") | ||||
|              (delete-file "tools/cmake/modules/Findeigen.cmake") | ||||
| 
 | ||||
|              (substitute* "CMakeLists.txt" | ||||
|                (("find_package\\(eigen REQUIRED") | ||||
|                 "find_package(eigen REQUIRED NAMES Eigen3")) | ||||
|              (substitute* "tools/cmake/modules/Findflatbuffers.cmake" | ||||
|                (("get_target_property.*") | ||||
|                 (format #false "set(FLATBUFFERS_INCLUDE_DIRS ~a/include)\n" | ||||
|                         (assoc-ref inputs "flatbuffers")))) | ||||
| 
 | ||||
|              ;; Don't fetch source code; we already have everything we need. | ||||
|              (substitute* '("tools/cmake/modules/fft2d.cmake" | ||||
|                             "tools/cmake/modules/ruy.cmake" | ||||
|                             "tools/cmake/modules/farmhash.cmake" | ||||
|                             "tools/cmake/modules/neon2sse.cmake" | ||||
|                             "tools/cmake/modules/gemmlowp.cmake") | ||||
|                (("OverridableFetchContent_Populate.*") "")) | ||||
| 
 | ||||
|              (mkdir-p "/tmp/farmhash") | ||||
|              (with-directory-excursion "/tmp/farmhash" | ||||
|                (invoke "tar" "--strip-components=1" | ||||
|                        "-xf" (assoc-ref inputs "farmhash-src"))) | ||||
| 
 | ||||
|              (mkdir-p "/tmp/fft2d") | ||||
|              (with-directory-excursion "/tmp/fft2d" | ||||
|                (invoke "tar" "--strip-components=1" | ||||
|                        "-xf" (assoc-ref inputs "fft2d-src"))) | ||||
| 
 | ||||
|              (copy-recursively (assoc-ref inputs "neon2sse-src") | ||||
|                                "/tmp/neon2sse/") | ||||
|              (copy-recursively (assoc-ref inputs "gemmlowp-src") | ||||
|                                "/tmp/gemmlowp/"))) | ||||
|          (add-after 'copy-sources 'prepare-shared-library-build | ||||
|            (lambda _ (chdir "c"))) | ||||
|          (replace 'install | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out")) | ||||
|                     (lib (string-append out "/lib")) | ||||
|                     (headers (string-append out "/include/tensorflow/lite"))) | ||||
|                (install-file "../build/libtensorflowlite_c.so" lib) | ||||
|                (with-directory-excursion ".." | ||||
|                  (for-each | ||||
|                   (lambda (file) | ||||
|                     (let ((target-dir (string-append headers "/" (dirname file)))) | ||||
|                       (install-file file target-dir))) | ||||
|                   (find-files "." "\\.h$"))))))))) | ||||
|     (inputs | ||||
|      `(("abseil-cpp" ,abseil-cpp) | ||||
|        ("eigen" ,eigen-for-tensorflow-lite) | ||||
|        ("flatbuffers" ,flatbuffers) | ||||
|        ("python" ,python))) | ||||
|     (native-inputs | ||||
|      `(("pkg-config" ,pkg-config) | ||||
|        ("gemmlowp-src" | ||||
|         ;; The commit hash is taken from | ||||
|         ;; "tensorflow/lite/tools/cmake/modules/gemmlowp.cmake". | ||||
|         ,(let ((commit "fda83bdc38b118cc6b56753bd540caa49e570745")) | ||||
|            (origin | ||||
|              (method git-fetch) | ||||
|              (uri (git-reference | ||||
|                    (url "https://github.com/google/gemmlowp") | ||||
|                    (commit commit))) | ||||
|              (file-name (git-file-name "gemmlowp" (string-take commit 8))) | ||||
|              (sha256 | ||||
|               (base32 | ||||
|                "1sbp8kmr2azwlvfbzryy1frxi99jhsh1nc93bdbxdf8zdgpv0kxl"))))) | ||||
|        ("neon2sse-src" | ||||
|         ,(let ((commit "a1652fd5253afbf3e39357b012974f93511f6108")) | ||||
|            (origin | ||||
|              (method git-fetch) | ||||
|              (uri (git-reference | ||||
|                    (url "https://github.com/intel/ARM_NEON_2_x86_SSE") | ||||
|                    (commit commit))) | ||||
|              (file-name (git-file-name "neon2sse" (string-take commit 8))) | ||||
|              (sha256 | ||||
|               (base32 | ||||
|                "1q8gkxag9wlnwdwad2pclsrkwzrdjy94hyrkayrsvxyj7szb5y8i"))))) | ||||
|        ("farmhash-src" | ||||
|         ,(let ((commit "816a4ae622e964763ca0862d9dbd19324a1eaf45")) | ||||
|            (origin | ||||
|              (method url-fetch) | ||||
|              (uri (string-append | ||||
|                    "https://mirror.bazel.build/github.com/google/farmhash/archive/" | ||||
|                    commit ".tar.gz")) | ||||
|              (file-name (git-file-name "farmhash" (string-take commit 8))) | ||||
|              (sha256 | ||||
|               (base32 | ||||
|                "185b2xdxl4d4cnsnv6abg8s22gxvx8673jq2yaq85bz4cdy58q35"))))) | ||||
|        ("fft2d-src" | ||||
|         ,(origin | ||||
|            (method url-fetch) | ||||
|            (uri (string-append "https://storage.googleapis.com/" | ||||
|                                "mirror.tensorflow.org/" | ||||
|                                "www.kurims.kyoto-u.ac.jp/~ooura/fft2d.tgz")) | ||||
|            (file-name "fft2d.tar.gz") | ||||
|            (sha256 | ||||
|             (base32 | ||||
|              "1jfflzi74fag9z4qmgwvp90aif4dpbr1657izmxlgvf4hy8fk9xd")))) | ||||
|        ("ruy-src" | ||||
|         ,(let ((commit "9c56af3fce210a8a103eda19bd6f47c08a9e3d90")) | ||||
|            (origin | ||||
|              (method git-fetch) | ||||
|              (uri (git-reference | ||||
|                    (url "https://github.com/google/ruy") | ||||
|                    (commit commit) | ||||
|                    (recursive? #true))) | ||||
|              (file-name (git-file-name "ruy" (string-take commit 8))) | ||||
|              (sha256 | ||||
|               (base32 | ||||
|                "1cfd5gk6kaj8kbl3h98gx1ap8czd59y6p8qq8nr28fklpyzf5cis"))))))) | ||||
|     (home-page "https://tensorflow.org") | ||||
|     (synopsis "Machine learning framework") | ||||
|     (description | ||||
|      "TensorFlow is a flexible platform for building and training machine | ||||
| learning models.  This package provides the \"lite\" variant for mobile | ||||
| devices.") | ||||
|     (license license:asl2.0))) | ||||
| 
 | ||||
| (define-public python-iml | ||||
|   (package | ||||
|     (name "python-iml") | ||||
|  | @ -2194,8 +2447,8 @@ that: | |||
| 
 | ||||
| (define-public gloo | ||||
|   (let ((version "0.0.0") ; no proper version tag | ||||
|         (commit "ca528e32fea9ca8f2b16053cff17160290fc84ce") | ||||
|         (revision "0")) | ||||
|         (commit "c22a5cfba94edf8ea4f53a174d38aa0c629d070f") | ||||
|         (revision "1")) | ||||
|     (package | ||||
|       (name "gloo") | ||||
|       (version (git-version version revision commit)) | ||||
|  | @ -2208,18 +2461,20 @@ that: | |||
|          (file-name (git-file-name name version)) | ||||
|          (sha256 | ||||
|           (base32 | ||||
|            "1q9f80zy75f6njrzrqkmhc0g3qxs4gskr7ns2jdqanxa2ww7a99w")))) | ||||
|            "1crmqgybzkgkpbmcx16912gsl5qsj49swa0ikx6mhqgph0chrh11")))) | ||||
|       (build-system cmake-build-system) | ||||
|       (native-inputs | ||||
|        `(("googletest" ,googletest))) | ||||
|       (inputs | ||||
|        `(("openssl" ,openssl))) | ||||
|       (arguments | ||||
|        `(#:configure-flags '("-DBUILD_TEST=1") | ||||
|          #:phases | ||||
|          (modify-phases %standard-phases | ||||
|            (replace 'check | ||||
|              (lambda _ | ||||
|                (invoke "make" "gloo_test") | ||||
|                #t))))) | ||||
|              (lambda* (#:key tests? #:allow-other-keys) | ||||
|                (when tests? | ||||
|                  (invoke "make" "gloo_test"))))))) | ||||
|       (synopsis "Collective communications library") | ||||
|       (description | ||||
|        "Gloo is a collective communications library.  It comes with a | ||||
|  | @ -2265,7 +2520,7 @@ general non-linear dimension reduction.") | |||
|     (package | ||||
|       (name "xnnpack") | ||||
|       (version (git-version version revision commit)) | ||||
|       (home-page "https://github.com/google/XNNPACK") | ||||
|       (home-page "https://github.com/google/XNNPACK") ;fork of QNNPACK | ||||
|       (source (origin | ||||
|                 (method git-fetch) | ||||
|                 (uri (git-reference (url home-page) (commit commit))) | ||||
|  | @ -2305,3 +2560,134 @@ high-level machine learning frameworks, such as TensorFlow Lite, | |||
| TensorFlow.js, PyTorch, and MediaPipe.") | ||||
|       (license license:bsd-3)))) | ||||
| 
 | ||||
| (define-public python-pytorch | ||||
|   (package | ||||
|     (name "python-pytorch") | ||||
|     (version "1.9.0") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url "https://github.com/pytorch/pytorch") | ||||
|                     (commit (string-append "v" version)) | ||||
|                     (recursive? #t))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0cznsh68hwk5761gv7iijb4g6jgjpvs3bbixwpzzmkbkbn2q96c1")) | ||||
|               (patches (search-patches "python-pytorch-system-libraries.patch" | ||||
|                                        "python-pytorch-runpath.patch")) | ||||
|               (modules '((guix build utils))) | ||||
|               (snippet | ||||
|                '(begin | ||||
|                   ;; XXX: Let's be clear: this package is a bundling fest.  We | ||||
|                   ;; delete as much as we can, but there's still a lot left. | ||||
|                   (for-each (lambda (directory) | ||||
|                               (delete-file-recursively | ||||
|                                (string-append "third_party/" directory))) | ||||
|                             '("benchmark" "cpuinfo" "eigen" | ||||
| 
 | ||||
|                               ;; FIXME: QNNPACK (of which XNNPACK is a fork) | ||||
|                               ;; needs these. | ||||
|                               ;; "FP16" "FXdiv" "gemmlowp" "psimd" | ||||
| 
 | ||||
|                               "gloo" "googletest" "ios-cmake" | ||||
|                               "onnx" "protobuf" "pthreadpool" | ||||
|                               "pybind11" "python-enum" "python-peachpy" | ||||
|                               "python-six" "tbb" "XNNPACK" "zstd")) | ||||
| 
 | ||||
|                   ;; Adjust references to the onnx-optimizer headers. | ||||
|                   (substitute* "caffe2/onnx/backend.cc" | ||||
|                     (("onnx/optimizer/") | ||||
|                      "onnxoptimizer/")))))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|      '(#:phases (modify-phases %standard-phases | ||||
|                   (add-before 'build 'use-system-libraries | ||||
|                     (lambda* (#:key outputs #:allow-other-keys) | ||||
|                       ;; Tell 'setup.py' to let 'CMakeLists.txt' know that we | ||||
|                       ;; want to use "system libraries" instead of the bundled | ||||
|                       ;; ones. | ||||
|                       (setenv "USE_SYSTEM_LIBS" "1") | ||||
| 
 | ||||
|                       ;; XXX: Disable that for simplicity for now. | ||||
|                       (setenv "USE_FBGEMM" "0"))) | ||||
|                   (add-before 'build 'make-things-writable | ||||
|                     (lambda _ | ||||
|                       ;; The 'build_caffe2' function in | ||||
|                       ;; 'tools/build_pytorch_libs.py', called from the | ||||
|                       ;; top-level 'setup.py', needs write access to this | ||||
|                       ;; directory. | ||||
|                       (for-each make-file-writable | ||||
|                                 (find-files "caffe2/proto" "." | ||||
|                                             #:directories? #t)))) | ||||
|                   (replace 'check | ||||
|                     (lambda* (#:key inputs outputs tests? #:allow-other-keys) | ||||
|                       ;; Run the test suite following the instructions in | ||||
|                       ;; 'CONTRIBUTING.md'.  XXX: Unfortunately this doesn't | ||||
|                       ;; work, unless you set PYTHONPATH presumably. | ||||
|                       (when tests? | ||||
|                         (let ((python-site (site-packages inputs outputs))) | ||||
|                           (setenv "PYTHONPATH" | ||||
|                                   (string-append python-site ":" | ||||
|                                                  (getenv "PYTHONPATH"))) | ||||
|                           (invoke "python" "test/run_test.py"))))) | ||||
|                   (add-after 'install 'remove-test-executables | ||||
|                     (lambda* (#:key inputs outputs #:allow-other-keys) | ||||
|                       ;; Remove test executables, but keep other executables | ||||
|                       ;; such as 'torch_shm_manager' and and .so files such as | ||||
|                       ;; 'libtorch_global_deps.so'. | ||||
|                       (let ((python-site (site-packages inputs outputs))) | ||||
|                         (for-each delete-file | ||||
|                                   (find-files python-site | ||||
|                                               "(^test_cpp_rpc|_test)$")))))) | ||||
| 
 | ||||
|        ;; XXX: Tests attempt to download data such as | ||||
|        ;; <https://raw.githubusercontent.com/pytorch/test-infra/master/stats/slow-tests.json>. | ||||
|        #:tests? #f)) | ||||
|     (native-inputs | ||||
|      `(("cmake" ,cmake) | ||||
|        ("ninja" ,ninja))) | ||||
|     (inputs | ||||
|      `(("eigen" ,eigen) | ||||
|        ;; ("fmt" ,fmt) | ||||
|        ("fp16" ,fp16) | ||||
|        ("gemmlowp" ,gemmlowp) | ||||
|        ("googletest" ,googletest) | ||||
|        ("googlebenchmark" ,googlebenchmark) | ||||
|        ("gloo" ,gloo) | ||||
|        ("openblas" ,openblas) | ||||
|        ("openmpi" ,openmpi) | ||||
|        ("pthreadpool" ,pthreadpool) | ||||
|        ("protobuf" ,protobuf) | ||||
|        ("pybind11" ,pybind11) | ||||
|        ("sleef" ,sleef) | ||||
|        ("xnnpack" ,xnnpack) | ||||
|        ("zstd" ,zstd))) | ||||
|     (propagated-inputs | ||||
|      `(("python-astunparse" ,python-astunparse) | ||||
|        ("python-numpy" ,python-numpy) | ||||
|        ("python-pyyaml" ,python-pyyaml) | ||||
|        ("python-cffi" ,python-cffi) | ||||
|        ("python-peachpy" ,python-peachpy) | ||||
|        ("python-typing-extensions" ,python-typing-extensions) | ||||
|        ("python-future" ,python-future) | ||||
|        ("python-six" ,python-six) | ||||
|        ("python-requests" ,python-requests) | ||||
|        ("onnx" ,onnx)                       ;propagated for its Python modules | ||||
|        ("onnx-optimizer" ,onnx-optimizer) | ||||
|        ("cpuinfo" ,cpuinfo))) | ||||
|     (home-page "https://pytorch.org/") | ||||
|     (synopsis "Python library for tensor computation and deep neural networks") | ||||
|     (description | ||||
|      "PyTorch is a Python package that provides two high-level features: | ||||
| 
 | ||||
| @itemize | ||||
| @item tensor computation (like NumPy) with strong GPU acceleration; | ||||
| @item deep neural networks (DNNs) built on a tape-based autograd system. | ||||
| @end itemize | ||||
| 
 | ||||
| You can reuse Python packages such as NumPy, SciPy, and Cython to extend | ||||
| PyTorch when needed. | ||||
| 
 | ||||
| Note: currently this package does not provide GPU support.") | ||||
|     (license license:bsd-3))) | ||||
|  |  | |||
|  | @ -499,7 +499,7 @@ to run without any changes.") | |||
| (define-public fetchmail | ||||
|   (package | ||||
|     (name "fetchmail") | ||||
|     (version "6.4.19") | ||||
|     (version "6.4.21") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -507,7 +507,7 @@ to run without any changes.") | |||
|                            (version-major+minor version) "/" | ||||
|                            "fetchmail-" version ".tar.xz")) | ||||
|        (sha256 | ||||
|         (base32 "0pvbknpimf38ws4gskad79wd1cvy62kcsjy65sm0rr83s6ii33fd")))) | ||||
|         (base32 "07cxr5137hvrk8jfgn4wd6sq9361c3d40w8krnjxm8fpmwf9qiba")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (inputs | ||||
|      `(("openssl" ,openssl))) | ||||
|  | @ -1147,7 +1147,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.") | |||
| (define-public mu | ||||
|   (package | ||||
|     (name "mu") | ||||
|     (version "1.4.15") | ||||
|     (version "1.6.2") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "https://github.com/djcb/mu/releases/" | ||||
|  | @ -1155,7 +1155,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.") | |||
|                                   "mu-" version ".tar.xz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0ailz0k5fdgq6gdl5m7jxy315b7qn5ckj6xwd49hsiq9vqblwlpp")))) | ||||
|                 "0jlpkx1486ac8649jc2kxjklzsfaxj9qf2kji4kszy4axd0iwi1p")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (native-inputs | ||||
|      `(("pkg-config" ,pkg-config) | ||||
|  | @ -1164,7 +1164,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.") | |||
|        ("tzdata" ,tzdata-for-tests)))   ; for mu/test/test-mu-query.c | ||||
|     (inputs | ||||
|      `(("xapian" ,xapian) | ||||
|        ("guile" ,guile-2.2) | ||||
|        ("guile" ,guile-3.0) | ||||
|        ("glib" ,glib) | ||||
|        ("gmime" ,gmime))) | ||||
|     (arguments | ||||
|  | @ -1182,29 +1182,20 @@ security functionality including PGP, S/MIME, SSH, and SSL.") | |||
|            ;; the lispdir anyway, so we have to modify "configure.ac". | ||||
|            (lambda _ | ||||
|              (substitute* "configure" | ||||
|                (("^ +lispdir=\"\\$\\{lispdir\\}/mu4e/\".*") "") | ||||
|                ;; Use latest Guile | ||||
|                (("guile-2.0") "guile-2.2")) | ||||
|              (substitute* '("guile/Makefile.in" | ||||
|                             "guile/mu/Makefile.in") | ||||
|                (("share/guile/site/2.0/") "share/guile/site/2.2/")) | ||||
|              #t)) | ||||
|                (("^ +lispdir=\"\\$\\{lispdir\\}/mu4e/\".*") "")))) | ||||
|          (add-after 'unpack 'patch-bin-sh-in-tests | ||||
|            (lambda _ | ||||
|              (substitute* '("guile/tests/test-mu-guile.c" | ||||
|                             "mu/test-mu-cmd.c" | ||||
|                             "mu/test-mu-cmd-cfind.c" | ||||
|                             "mu/test-mu-query.c" | ||||
|                             "mu/test-mu-threads.c") | ||||
|                (("/bin/sh") (which "sh"))) | ||||
|              #t)) | ||||
|              (substitute* '("guile/tests/test-mu-guile.cc" | ||||
|                             "mu/test-mu-cmd.cc" | ||||
|                             "mu/test-mu-cmd-cfind.cc" | ||||
|                             "mu/test-mu-query.cc") | ||||
|                (("/bin/sh") (which "sh"))))) | ||||
|          (add-before 'install 'fix-ffi | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (substitute* "guile/mu.scm" | ||||
|                (("\"libguile-mu\"") | ||||
|                 (format #f "\"~a/lib/libguile-mu\"" | ||||
|                         (assoc-ref outputs "out")))) | ||||
|              #t)) | ||||
|                         (assoc-ref outputs "out")))))) | ||||
|          (add-before 'check 'check-tz-setup | ||||
|            (lambda* (#:key inputs #:allow-other-keys) | ||||
|              ;; For mu/test/test-mu-query.c | ||||
|  | @ -1215,8 +1206,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.") | |||
|              (emacs-generate-autoloads | ||||
|               "mu4e" | ||||
|               (string-append (assoc-ref outputs "out") | ||||
|                              "/share/emacs/site-lisp")) | ||||
|              #t))))) | ||||
|                              "/share/emacs/site-lisp"))))))) | ||||
|     (home-page "https://www.djcbsoftware.nl/code/mu/") | ||||
|     (synopsis "Quickly find emails") | ||||
|     (description | ||||
|  | @ -1634,7 +1624,7 @@ compresses it.") | |||
|              (let* ((mailutils (assoc-ref inputs "mailutils")) | ||||
|                     (inc (string-append mailutils "/bin/mu-mh/inc")) | ||||
|                     (send-mail (assoc-ref inputs "sendmail")) | ||||
|                     (sendmail (string-append send-mail "/usr/sbin/sendmail"))) | ||||
|                     (sendmail (string-append send-mail "/sbin/sendmail"))) | ||||
|                (substitute* "src/common/defs.h" | ||||
|                  (("/usr/bin/mh/inc") inc) | ||||
|                  (("/usr/sbin/sendmail") sendmail))))) | ||||
|  | @ -1873,7 +1863,7 @@ facilities for checking incoming mail.") | |||
|   (package | ||||
|     (name "dovecot") | ||||
|     ;; Also update dovecot-pigeonhole when updating to a new minor version. | ||||
|     (version "2.3.15") | ||||
|     (version "2.3.16") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -1881,7 +1871,7 @@ facilities for checking incoming mail.") | |||
|                            (version-major+minor version) "/" | ||||
|                            "dovecot-" version ".tar.gz")) | ||||
|        (sha256 | ||||
|         (base32 "141manrh54cy8xizr7f8fsa3vdzc2ccfgdz87l9rjylm8mfxvfr1")))) | ||||
|         (base32 "04ngqv5mml5z0i4p7fkchp4xw2awy7x7mq2mim9frnav0m9iv9q3")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (native-inputs | ||||
|      `(("pkg-config" ,pkg-config))) | ||||
|  | @ -1942,7 +1932,7 @@ It supports mbox/Maildir and its own dbox/mdbox formats.") | |||
|   (let ((dovecot-version (version-major+minor (package-version dovecot)))) | ||||
|     (package | ||||
|       (name "dovecot-pigeonhole") | ||||
|       (version "0.5.15") | ||||
|       (version "0.5.16") | ||||
|       (source | ||||
|        (origin | ||||
|          (method url-fetch) | ||||
|  | @ -1950,7 +1940,7 @@ It supports mbox/Maildir and its own dbox/mdbox formats.") | |||
|                "https://pigeonhole.dovecot.org/releases/" dovecot-version "/" | ||||
|                "dovecot-" dovecot-version "-pigeonhole-" version ".tar.gz")) | ||||
|          (sha256 | ||||
|           (base32 "1l2h0p8ddsl3ja2lnwk0mfqplqh8n0iw8k27awd3ak7prr88yjg1")) | ||||
|           (base32 "0f79qsiqnhaxn7mrrfcrnsjyv6357kzb7wa0chhfd69vwa06g8sw")) | ||||
|          (modules '((guix build utils))) | ||||
|          (snippet | ||||
|           '(begin | ||||
|  | @ -2881,6 +2871,13 @@ powerful user customization features.") | |||
|              (substitute* "devtools/bin/Build" | ||||
|                (("SHELL=/bin/sh") (string-append "SHELL=" (which "sh")))) | ||||
|              #t)) | ||||
|          (add-before 'build 'replace-/usr | ||||
|            (lambda _ | ||||
|              (substitute* | ||||
|                '("devtools/OS/Linux" | ||||
|                  "cf/ostype/mklinux.m4" | ||||
|                  "cf/ostype/linux.m4") | ||||
|                (("/usr/sbin") "/sbin")))) | ||||
|          (replace 'configure | ||||
|            (lambda _ | ||||
| 
 | ||||
|  | @ -2892,6 +2889,11 @@ powerful user customization features.") | |||
|              (with-output-to-file "devtools/Site/site.config.m4" | ||||
|                (lambda () | ||||
|                  (format #t " | ||||
| define(`confEBINDIR', `/sbin') | ||||
| define(`confSBINDIR', `/sbin') | ||||
| define(`confMBINDIR', `/sbin') | ||||
| define(`confUBINDIR', `/bin') | ||||
| define(`confLINKS', `') | ||||
| define(`confCC', `gcc') | ||||
| define(`confOPTIMIZE', `-g -O2') | ||||
| define(`confLIBS', `-lresolv') | ||||
|  | @ -2910,13 +2912,21 @@ define(`confINST_DEP', `') | |||
|          (add-before 'install 'pre-install | ||||
|            (lambda _ | ||||
|              (let ((out (assoc-ref %outputs "out"))) | ||||
|                (mkdir-p (string-append out "/usr/bin")) | ||||
|                (mkdir-p (string-append out "/usr/sbin")) | ||||
|                (mkdir-p (string-append out "/bin")) | ||||
|                (mkdir-p (string-append out "/sbin")) | ||||
|                (mkdir-p (string-append out "/etc/mail")) | ||||
|                (setenv "DESTDIR" out) | ||||
|                (with-directory-excursion "cf/cf" | ||||
|                  (invoke "sh" "Build" "install-cf")) | ||||
|                #t)))) | ||||
|                #t))) | ||||
|          (add-after 'install 'post-install | ||||
|            (lambda _ | ||||
|                ;; Make symbolic links manually, because build script uses | ||||
|                ;; absolute paths for them and ignores DESTDIR. | ||||
|                (for-each | ||||
|                  (lambda (name) | ||||
|                    (symlink "../sbin/sendmail" (string-append %output "/bin/" name))) | ||||
|                  '("hoststat" "newaliases" "mailq" "purgestat"))))) | ||||
|        ;; There is no make check.  There are some post installation tests, but those | ||||
|        ;; require root privileges | ||||
|        #:tests? #f)) | ||||
|  |  | |||
|  | @ -124,6 +124,7 @@ | |||
|   #:use-module (gnu packages m4) | ||||
|   #:use-module (gnu packages mpi) | ||||
|   #:use-module (gnu packages multiprecision) | ||||
|   #:use-module (gnu packages ncurses) | ||||
|   #:use-module (gnu packages netpbm) | ||||
|   #:use-module (gnu packages ocaml) | ||||
|   #:use-module (gnu packages onc-rpc) | ||||
|  | @ -141,6 +142,7 @@ | |||
|   #:use-module (gnu packages ruby) | ||||
|   #:use-module (gnu packages tbb) | ||||
|   #:use-module (gnu packages scheme) | ||||
|   #:use-module (gnu packages serialization) | ||||
|   #:use-module (gnu packages shells) | ||||
|   #:use-module (gnu packages sphinx) | ||||
|   #:use-module (gnu packages tcl) | ||||
|  | @ -176,6 +178,39 @@ beginners.") | |||
|     (license license:gpl3+) | ||||
|     (home-page "https://www.gnu.org/software/aris/"))) | ||||
| 
 | ||||
| (define-public bitwise | ||||
|   (package | ||||
|     (name "bitwise") | ||||
|     (version "0.42") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "https://github.com/mellowcandle/bitwise" | ||||
|                                   "/releases/download/v" version | ||||
|                                   "/bitwise-v" version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 "1lniw4bsb5qs5ybf018qllf95pzixb1q3lvybzl4k3xz8zpkrm6k")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (inputs | ||||
|      `(("ncurses" ,ncurses) | ||||
|        ("readline" ,readline))) | ||||
|     (native-inputs | ||||
|      `(("cunit" ,cunit) | ||||
|        ("pkg-config" ,pkg-config))) | ||||
|     (synopsis "Terminal based bit manipulator in ncurses") | ||||
|     (description "Bitwise is a multi base interactive calculator supporting | ||||
| dynamic base conversion and bit manipulation.  It's a handy tool for low level | ||||
| hackers, kernel developers and device drivers developers. | ||||
| 
 | ||||
| Some of the features include: | ||||
| @itemize | ||||
| @item Interactive ncurses interface. | ||||
| @item Command line calculator supporting all bitwise operations. | ||||
| @item Individual bit manipulator. | ||||
| @item Bitwise operations such as NOT, OR, AND, XOR, and shifts. | ||||
| @end itemize") | ||||
|     (license license:gpl3+) | ||||
|     (home-page "https://github.com/mellowcandle/bitwise/"))) | ||||
| 
 | ||||
| (define-public c-graph | ||||
|   (package | ||||
|    (name "c-graph") | ||||
|  | @ -4610,6 +4645,154 @@ specifications.") | |||
| revised simplex and the branch-and-bound methods.") | ||||
|     (license license:lgpl2.1+))) | ||||
| 
 | ||||
| ;; Private Trilinos package for dealii-openmpi (similar to | ||||
| ;; trilinos-serial-xyce and trilinos-parallel-xyce). | ||||
| ;; This version is the latest known to be compatible with deal.II [1]. | ||||
| ;; Since the latest version of Trilinos is not necessarily supported by | ||||
| ;; deal.II, it may be worth keeping this package even if and when Trilinos | ||||
| ;; gets packaged separately for Guix (unless various versions of Trilinos are | ||||
| ;; packaged). | ||||
| ;; | ||||
| ;; An insightful source of information for building Trilinos for deal.II lies | ||||
| ;; in the Trilinos package for candi [2], which is a source-based installer | ||||
| ;; for deal.II and its dependencies. | ||||
| ;; | ||||
| ;; [1]: https://www.dealii.org/current/external-libs/trilinos.html | ||||
| ;; [2]: https://github.com/dealii/candi/blob/master/deal.II-toolchain/packages/trilinos.package | ||||
| (define trilinos-for-dealii-openmpi | ||||
|   (package | ||||
|     (name "trilinos-for-dealii-openmpi") | ||||
|     (version "12.18.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|              (url "https://github.com/trilinos/Trilinos/") | ||||
|              (commit | ||||
|               (string-append "trilinos-release-" | ||||
|                              (string-replace-substring version "." "-"))))) | ||||
|        (file-name (git-file-name "trilinos" version)) | ||||
|        (sha256 | ||||
|         (base32 "0fnwlhzsh85qj38cq3igbs8nm1b2jdgr2z734sapmyyzsy21mkgp")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (native-inputs | ||||
|      `(("gfortran" ,gfortran) | ||||
|        ;; Trilinos's repository contains several C-shell scripts, but adding | ||||
|        ;; tcsh to the native inputs does not result in the check phase running | ||||
|        ;; any more tests than without it (nor is tcsh required to build | ||||
|        ;; Trilinos). | ||||
|        ;; It seems that Trilinos has replaced its use of C-shell test scripts | ||||
|        ;; with CMake's testing facilities. | ||||
|        ;; For example, | ||||
|        ;; packages/zoltan/doc/Zoltan_html/dev_html/dev_test_script.html [1] | ||||
|        ;; states that Zoltan's C-shell test script | ||||
|        ;; packages/zoltan/test/test_zoltan has been obsoleted by the tests now | ||||
|        ;; performed through CMake. | ||||
|        ;; | ||||
|        ;; Perl is required for some Zoltan tests and Python 2 for one ML test. | ||||
|        ;; | ||||
|        ;; [1]: https://cs.sandia.gov/zoltan/dev_html/dev_test_script.html | ||||
|        ("perl" ,perl) | ||||
|        ("python" ,python-2))) | ||||
|     (inputs | ||||
|      `(("blas" ,openblas) | ||||
|        ("lapack" ,lapack) | ||||
|        ("mumps" ,mumps-openmpi) | ||||
|        ("scalapack" ,scalapack))) | ||||
|     (propagated-inputs | ||||
|      `(("mpi" ,openmpi))) | ||||
|     (arguments | ||||
|      `(#:build-type "Release" | ||||
|        #:configure-flags | ||||
|        `("-DBUILD_SHARED_LIBS=ON" | ||||
|          ;; Obtain the equivalent of RelWithDebInfo but with -O3 (the Release | ||||
|          ;; default) rather than -O2 (the RelWithDebInfo default), to conform | ||||
|          ;; to candi's trilinos.package's compilation flags, which are -g -O3. | ||||
|          "-DCMAKE_C_FLAGS=-g" | ||||
|          "-DCMAKE_CXX_FLAGS=-g" | ||||
|          "-DCMAKE_Fortran_FLAGS=-g" | ||||
| 
 | ||||
|          ;; Trilinos libraries that deal.II can interface with. | ||||
|          "-DTrilinos_ENABLE_Amesos=ON" | ||||
|          "-DTrilinos_ENABLE_AztecOO=ON" | ||||
|          "-DTrilinos_ENABLE_Epetra=ON" | ||||
|          "-DTrilinos_ENABLE_EpetraExt=ON" | ||||
|          "-DTrilinos_ENABLE_Ifpack=ON" | ||||
|          "-DTrilinos_ENABLE_ML=ON" | ||||
|          "-DTrilinos_ENABLE_MueLu=ON" | ||||
|          "-DTrilinos_ENABLE_ROL=ON" | ||||
|          ;; Optional; required for deal.II's GridIn::read_exodusii, but | ||||
|          ;; depends on netcdf. | ||||
|          ;; Enable if and when someone needs it. | ||||
|          ;;"-DTrilinos_ENABLE_SEACAS=ON" | ||||
|          "-DTrilinos_ENABLE_Sacado=ON" | ||||
|          "-DTrilinos_ENABLE_Teuchos=ON" | ||||
|          "-DTrilinos_ENABLE_Tpetra=ON" | ||||
|          "-DTrilinos_ENABLE_Zoltan=ON" | ||||
| 
 | ||||
|          ;; Third-party libraries (TPLs) that Trilinos can interface with. | ||||
|          "-DBLAS_LIBRARY_NAMES=openblas" | ||||
|          "-DTPL_ENABLE_MPI=ON" | ||||
|          "-DTPL_ENABLE_MUMPS=ON" | ||||
|          "-DTPL_ENABLE_SCALAPACK=ON" | ||||
| 
 | ||||
|          ;; Enable the tests but not the examples (which are enabled by | ||||
|          ;; default when enabling tests). | ||||
|          ;; Although some examples are run as tests, they are otherwise | ||||
|          ;; unnecessary since this is a private package meant for | ||||
|          ;; dealii-openmpi. | ||||
|          ;; Besides, some MueLu and ROL examples require a lot of memory to | ||||
|          ;; compile. | ||||
|          ;; | ||||
|          ;; (For future reference, note that some ROL and SEACAS examples | ||||
|          ;; require removing gfortran from CPLUS_INCLUDE_PATH as in the | ||||
|          ;; dune-istl, dune-localfunctions and dune-alugrid packages.) | ||||
|          "-DTrilinos_ENABLE_TESTS=ON" | ||||
|          "-DTrilinos_ENABLE_EXAMPLES=OFF" | ||||
|          ;; MueLu tests require considerably more time and memory to compile | ||||
|          ;; than the rest of the tests. | ||||
|          "-DMueLu_ENABLE_TESTS=OFF" | ||||
| 
 | ||||
|          ;; The following options were gleaned from candi's trilinos.package. | ||||
|          ;; (We do not enable the complex instantiations, which are anyway | ||||
|          ;; provided only as an option in trilinos.package, because they are | ||||
|          ;; costly in compilation time and memory usage, and disk space [1].) | ||||
|          ;; | ||||
|          ;; [1]: https://www.docs.trilinos.org/files/TrilinosBuildReference.html#enabling-float-and-complex-scalar-types | ||||
|          "-DTrilinos_ENABLE_Ifpack2=OFF" | ||||
|          "-DTeuchos_ENABLE_FLOAT=ON" | ||||
|          "-DTpetra_INST_INT_LONG=ON" | ||||
|          "-DTPL_ENABLE_Boost=OFF") | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'configure 'fix-kokkos-config | ||||
|            (lambda _ | ||||
|              ;; GNU Make 4.3 accidentally leaves the backslash preceding the | ||||
|              ;; number sign in strings containing a literal backslash–number | ||||
|              ;; sign (\#) [1, 2]. | ||||
|              ;; This is still an issue in Trilinos 13.0.1, but should be fixed | ||||
|              ;; in the following version. | ||||
|              ;; (The latest versions of Kokkos incorporate the fix [2].) | ||||
|              ;; | ||||
|              ;; [1]: https://github.com/GEOSX/thirdPartyLibs/issues/136 | ||||
|              ;; [2]: https://github.com/kokkos/kokkos/blob/3.4.00/Makefile.kokkos#L441 | ||||
|              (substitute* "KokkosCore_config.h" | ||||
|                (("\\\\#") "#")) | ||||
|              #t)) | ||||
|          (add-before 'check 'mpi-setup | ||||
|            ,%openmpi-setup)))) | ||||
|     (home-page "https://trilinos.github.io/") | ||||
|     (synopsis "Algorithms for engineering and scientific problems") | ||||
|     (description | ||||
|      "The Trilinos Project is an effort to develop algorithms and enabling | ||||
| technologies within an object-oriented software framework for the solution of | ||||
| large-scale, complex multi-physics engineering and scientific problems. | ||||
| A unique design feature of Trilinos is its focus on packages.") | ||||
|     ;; The packages are variously licensed under more than just BSD-3 and | ||||
|     ;; LGPL-2.1+, but all the licenses are either BSD- or LGPL-compatible. | ||||
|     ;; See https://trilinos.github.io/license.html. | ||||
|     (license (list license:bsd-3 license:lgpl2.1+)))) | ||||
| 
 | ||||
| (define-public dealii | ||||
|   (package | ||||
|     (name "dealii") | ||||
|  | @ -4705,6 +4888,7 @@ in finite element programs.") | |||
|        ("p4est" ,p4est-openmpi) | ||||
|        ("petsc" ,petsc-openmpi) | ||||
|        ("slepc" ,slepc-openmpi) | ||||
|        ("trilinos" ,trilinos-for-dealii-openmpi) | ||||
|        ,@(alist-delete "hdf5" (package-propagated-inputs dealii)))) | ||||
|     (arguments | ||||
|      (substitute-keyword-arguments (package-arguments dealii) | ||||
|  | @ -6735,3 +6919,103 @@ when an application performs repeated divisions by the same divisor.") | |||
|        "This header-only C++ library implements conversion to and from | ||||
| half-precision floating point formats.") | ||||
|       (license license:expat)))) | ||||
| 
 | ||||
| (define-public optizelle | ||||
|   (let ((commit "ed4160b5287518448caeb34789d92dc6a0b7e2cc")) | ||||
|    (package | ||||
|     (name "optizelle") | ||||
|     (version (git-version "1.3.0" "0" commit)) | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|              (url "https://github.com/OptimoJoe/Optizelle") | ||||
|              (commit commit))) | ||||
|        (file-name (git-file-name "optizelle" commit)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0rjrs5sdmd33a9f4xm8an7p0953aa0bxsmr4hs3ss1aad9k181vq")) | ||||
|        (modules '((guix build utils))) | ||||
|        (snippet | ||||
|         '(begin | ||||
|            ;; Reduce the stopping tolerance in one test so that the | ||||
|            ;; convergence check returns the correct stopping | ||||
|            ;; condition. | ||||
|            (substitute* | ||||
|             "src/unit/linear_algebra/tcg_loss_of_orthogonality.cpp" | ||||
|             (("1e-13") "5e-14")) | ||||
|            ;; Skip one set of python tests.  See | ||||
|            ;; https://github.com/OptimoJoe/Optizelle/issues/2. | ||||
|            (substitute* | ||||
|             "src/examples/inequality_scaling/CMakeLists.txt" | ||||
|             (("add_unit(.*)\\$\\{interfaces\\}(.*)$" all middle end) | ||||
|              (string-append "add_unit" middle "\"cpp\"" end))) | ||||
|            ;; Install the licence for Optizelle, without also | ||||
|            ;; including the licences for the dependencies. | ||||
|            (substitute* "licenses/CMakeLists.txt" | ||||
|                         (("file.*package.*$" all) | ||||
|                          (string-append "# " all)) | ||||
|                         ((".*[^l].[.]txt\\)\n") "") | ||||
|                         (("add_license.*\"\n") "")) | ||||
|            #t)))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:imported-modules ((guix build python-build-system) | ||||
|                            ,@%cmake-build-system-modules) | ||||
|        #:modules (((guix build python-build-system) #:select | ||||
|                    (python-version)) | ||||
|                   (guix build cmake-build-system) | ||||
|                   (guix build utils)) | ||||
|        #:configure-flags `("-DCMAKE_CXX_FLAGS:STRING=-pthread" | ||||
|                            "-DENABLE_CPP_UNIT:BOOL=ON" | ||||
|                            "-DENABLE_CPP_EXAMPLES:BOOL=ON" | ||||
|                            "-DENABLE_PYTHON:BOOL=ON" | ||||
|                            "-DENABLE_PYTHON_UNIT:BOOL=ON" | ||||
|                            "-DENABLE_PYTHON_EXAMPLES:BOOL=ON" | ||||
|                            ,(string-append "-DBLAS_LIBRARY:FILEPATH=" | ||||
|                                            (assoc-ref %build-inputs | ||||
|                                                       "blas/lapack") | ||||
|                                            "/lib/libopenblas.so") | ||||
|                            ,(string-append "-DLAPACK_LIBRARY:FILEPATH=" | ||||
|                                            (assoc-ref %build-inputs | ||||
|                                                       "fortran:lib") | ||||
|                                            "/lib/libgfortran.so;" | ||||
|                                            (assoc-ref %build-inputs | ||||
|                                                       "fortran:lib") | ||||
|                                            "/lib/libquadmath.so")) | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'set-numpy-path ; Needed for the unit tests. | ||||
|            (lambda* (#:key inputs #:allow-other-keys) | ||||
|              (let* ((pyver (python-version (assoc-ref inputs "python"))) | ||||
|                     (npdir (string-append (assoc-ref inputs "numpy") | ||||
|                                           "/lib/python" pyver | ||||
|                                           "/site-packages"))) | ||||
|                 (substitute* "src/cmake/Modules/Optizelle.cmake" | ||||
|                   (("PYTHONPATH=") | ||||
|                    (string-append "LD_LIBRARY_PATH=$ENV{LIBRARY_PATH};" | ||||
|                                   "PYTHONPATH=" npdir ":")))))) | ||||
|          (delete 'install-license-files)))) ; LICENSE.txt is installed. | ||||
|     (inputs | ||||
|      `(("blas/lapack" ,openblas) | ||||
|        ("fortran:lib" ,gfortran "lib") | ||||
|        ("jsoncpp" ,jsoncpp) | ||||
|        ("numpy" ,python-numpy) | ||||
|        ("python" ,python))) | ||||
|     (native-inputs | ||||
|      `(("fortran" ,gfortran) | ||||
|        ("pkg-config" ,pkg-config))) | ||||
|     (home-page "https://www.optimojoe.com/products/optizelle/") | ||||
|     (synopsis "Mathematical optimization library") | ||||
|     (description "@code{optizelle} is a software library designed to | ||||
| solve nonlinear optimization problems.  Four types of problem are | ||||
| considered: unconstrained, equality constrained, inequality | ||||
| constrained and constrained.  Constraints may be applied as values of | ||||
| functions or sets of partial differential equations (PDEs). | ||||
| 
 | ||||
| Solution algorithms such as the preconditioned nonlinear conjugate | ||||
| gradient method, sequential quadratic programming (SQP) and the | ||||
| primal-dual interior-point method are made available.  Interfaces are | ||||
| provided for applications written in C++ and Python.  Parallel | ||||
| computation is supported via MPI.") | ||||
|     (license license:bsd-2)))) | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> | ||||
| ;;; Copyright © 2014, 2015, 2017, 2020, 2021 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> | ||||
| ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2016, 2021 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> | ||||
| ;;; Copyright © 2017, 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com> | ||||
| ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> | ||||
|  | @ -372,7 +372,7 @@ This package contains the binary.") | |||
| (define-public mpg123 | ||||
|   (package | ||||
|     (name "mpg123") | ||||
|     (version "1.26.5") | ||||
|     (version "1.28.2") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -382,7 +382,7 @@ This package contains the binary.") | |||
|                    "https://www.mpg123.org/download/mpg123-" | ||||
|                    version ".tar.bz2"))) | ||||
|        (sha256 | ||||
|         (base32 "01pgcqjbbi2r7nlg5118bkivl0gkv0hq0cw7v4vpxgimv7h9fajh")))) | ||||
|         (base32 "006v44nz4nkpgvxz1k2vbbrfpa2m47hyydscs0wf3iysiyvd9vvy")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments '(#:configure-flags '("--with-default-audio=pulse"))) | ||||
|     (native-inputs | ||||
|  |  | |||
|  | @ -105,7 +105,7 @@ interfacing MPD in the C, C++ & Objective C languages.") | |||
| (define-public mpd | ||||
|   (package | ||||
|     (name "mpd") | ||||
|     (version "0.22.9") | ||||
|     (version "0.22.10") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri | ||||
|  | @ -114,7 +114,7 @@ interfacing MPD in the C, C++ & Objective C languages.") | |||
|                               "/mpd-" version ".tar.xz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0r5w282klk3d9pgsjjr8lnc77cbsxqvvkx39lpa0n962jwr40dzr")))) | ||||
|                 "0576z57rgwmnm5djd7rwbc93aikji0n6b3lx1553v74rx4sjbj07")))) | ||||
|     (build-system meson-build-system) | ||||
|     (arguments | ||||
|      `(#:configure-flags '("-Ddocumentation=enabled"))) | ||||
|  |  | |||
|  | @ -40,6 +40,7 @@ | |||
| ;;; Copyright © 2021 Frank Pursel <frank.pursel@gmail.com> | ||||
| ;;; Copyright © 2021 Rovanion Luckey <rovanion.luckey@gmail.com> | ||||
| ;;; Copyright © 2021 Justin Veilleux <terramorpha@cock.li> | ||||
| ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -177,18 +178,19 @@ | |||
| (define-public audacious | ||||
|   (package | ||||
|     (name "audacious") | ||||
|     (version "4.0.5") | ||||
|     (version "4.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://distfiles.audacious-media-player.org/" | ||||
|                            "audacious-" version ".tar.bz2")) | ||||
|        (sha256 | ||||
|         (base32 "028zjgz0p7ys15lk2a30m5zcv9xrx3ga50wjsh4m4zxilgkakbji")))) | ||||
|         (base32 "0p734psjjvjcmla2hg5h6a9v1prvy63jj9xm2g2ngs49jy7qan0z")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:configure-flags | ||||
|        (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")) | ||||
|        (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib") | ||||
|              "--disable-gtk") | ||||
|        #:tests? #f                      ; no check target | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|  | @ -228,7 +230,7 @@ | |||
|            (uri (string-append "https://distfiles.audacious-media-player.org/" | ||||
|                                "audacious-plugins-" version ".tar.bz2")) | ||||
|            (sha256 | ||||
|             (base32 "0ny5w1agr9jaz5w3wyyxf1ygmzmd1sivaf97lcm4z4w6529520lz")))) | ||||
|             (base32 "0k0xnqmxi5lna034i2cnzvfzrykxmv4fbs1nkrc9sd2ma1igrmns")))) | ||||
|        ("gettext" ,gettext-minimal) | ||||
|        ("glib:bin" ,glib "bin")         ; for gdbus-codegen | ||||
|        ("pkg-config" ,pkg-config))) | ||||
|  | @ -248,9 +250,9 @@ | |||
|        ("libcddb" ,libcddb) | ||||
|        ("libcdio-paranoia" ,libcdio-paranoia) | ||||
|        ("libcue" ,libcue) | ||||
|        ("libmodplug" ,libmodplug) | ||||
|        ("libnotify" ,libnotify) | ||||
|        ("libogg" ,libogg) | ||||
|        ("libopenmpt" ,libopenmpt) | ||||
|        ("libsamplerate" ,libsamplerate) | ||||
|        ("libsndfile" ,libsndfile) | ||||
|        ("libvorbis" ,libvorbis) | ||||
|  |  | |||
|  | @ -13,7 +13,7 @@ | |||
| ;;; Copyright © 2016 Benz Schenk <benz.schenk@uzh.ch> | ||||
| ;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl> | ||||
| ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> | ||||
| ;;; Copyright © 2017, 2020 Leo Famulari <leo@famulari.name> | ||||
| ;;; Copyright © 2017, 2020, 2021 Leo Famulari <leo@famulari.name> | ||||
| ;;; Copyright © 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com> | ||||
| ;;; Copyright © 2017, 2019 Gábor Boskovits <boskovits@gmail.com> | ||||
|  | @ -3826,22 +3826,31 @@ some traces for unprivileged users.") | |||
|                    license:lgpl2.1+)))) ;for the libsupp subdirectory | ||||
| 
 | ||||
| (define-public vde2 | ||||
|   (let ((commit "8c65ebc464b2f986d5f1f4e6ae829ef4480c9d5a") | ||||
|         (revision "0")) | ||||
|   (package | ||||
|     (name "vde2") | ||||
|     (version "2.3.2") | ||||
|     (version (git-version "2.3.2" revision commit)) | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri "mirror://sourceforge/vde/vde2/2.3.2/vde2-2.3.2.tar.gz") | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|               (url "https://github.com/virtualsquare/vde-2") | ||||
|               (commit commit))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "14xga0ib6p1wrv3hkl4sa89yzjxv7f1vfqaxsch87j6scdm59pr2")))) | ||||
|         (base32 "0l5xf71sv9zm5zw0wg8xgip58c0wh8zck2bazyc2a8gb67gc3s8y")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:parallel-build? #f))           ; Build fails if #t. | ||||
|     (native-inputs | ||||
|      `(("autoconf" ,autoconf) | ||||
|        ("automake" ,automake) | ||||
|        ("libtool" ,libtool))) | ||||
|     (inputs | ||||
|      `(("python" ,python) | ||||
|        ("libpcap" ,libpcap) | ||||
|        ("openssl" ,openssl-1.0)))       ; Build fails with 1.1. | ||||
|        ("wolfssl" ,wolfssl))) | ||||
|     (home-page "https://github.com/virtualsquare/vde-2") | ||||
|     (synopsis "Virtual Distributed Ethernet") | ||||
|     (description "VDE is a set of programs to provide virtual software-defined | ||||
|  | @ -3853,7 +3862,7 @@ cables.") | |||
|                    license:lgpl2.1       ; libvdeplug | ||||
|                    (license:non-copyleft ; slirpvde | ||||
|                     "file://COPYING.slirpvde" | ||||
|                     "See COPYING.slirpvde in the distribution."))))) | ||||
|                     "See COPYING.slirpvde in the distribution.")))))) | ||||
| 
 | ||||
| (define-public haproxy | ||||
|   (package | ||||
|  |  | |||
|  | @ -4479,12 +4479,7 @@ than the first one.") | |||
|     `(#:phases | ||||
|       (modify-phases %standard-phases | ||||
|         (add-before 'build 'make-writable | ||||
|           (lambda _ | ||||
|             (for-each | ||||
|               (lambda (file) | ||||
|                 (chmod file #o644)) | ||||
|               (find-files "." ".")) | ||||
|             #t))))) | ||||
|           (lambda _ (for-each make-file-writable (find-files "." "."))))))) | ||||
|    (inputs | ||||
|     `(("ocaml-easy-format" ,ocaml-easy-format))) | ||||
|    (native-inputs | ||||
|  | @ -6543,7 +6538,7 @@ combinators.") | |||
| (define-public ocaml-bisect-ppx | ||||
|   (package | ||||
|     (name "ocaml-bisect-ppx") | ||||
|     (version "1.4.2") | ||||
|     (version "2.6.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -6553,24 +6548,14 @@ combinators.") | |||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0900vli5kw7s5kdam0n4cqsfsfqb7mdb3azn3i55595gilg1vyn8")))) | ||||
|          "1knglw1b2kjr9jnd8cpfzmm581abxxdcx9l3cd2balg6gnac7qk1")))) | ||||
|     (build-system dune-build-system) | ||||
|     (propagated-inputs | ||||
|      `(("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree-1) | ||||
|        ("ocaml-ppx-tools-versioned" ,ocaml-ppx-tools-versioned) | ||||
|        ("ocaml-ounit" ,ocaml-ounit))) | ||||
|      `(("ocaml-ppxlib" ,ocaml-ppxlib) | ||||
|        ("ocaml-cmdliner" ,ocaml-cmdliner))) | ||||
|     (arguments | ||||
|      `(#:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-before 'build 'fix-deprecated | ||||
|            (lambda _ | ||||
|              ;; Fixed upstream in 22dd1ad9a0c9629f60599c22d82c6488394d6d32, but | ||||
|              ;; not in a release yet. | ||||
|              (substitute* "src/ppx/instrument.ml" | ||||
|                (("module Ast = Ast_405") | ||||
|                 "module Ast = Migrate_parsetree.Ast_405 | ||||
| module Ast_405 = Ast")) | ||||
|              #t))))) | ||||
|      ;; Tests require ocamlformat which would lead to circular dependencies | ||||
|      '(#:tests? #f)) | ||||
|     (home-page "https://github.com/aantron/bisect_ppx") | ||||
|     (synopsis "Code coverage for OCaml") | ||||
|     (description "Bisect_ppx helps you test thoroughly.  It is a small | ||||
|  | @ -6975,6 +6960,196 @@ provides support to program with time varying values: declarative events and | |||
| client chooses the concrete timeline.") | ||||
|     (license license:lgpl2.1+))) | ||||
| 
 | ||||
| (define-public ocaml-uucd | ||||
|   (package | ||||
|     (name "ocaml-uucd") | ||||
|     (version "13.0.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://erratique.ch/software/uucd/releases/" | ||||
|                            "uucd-" version ".tbz")) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1fg77hg4ibidkv1x8hhzl8z3rzmyymn8m4i35jrdibb8adigi8v2")))) | ||||
|     (build-system ocaml-build-system) | ||||
|     (arguments | ||||
|      '(#:build-flags '("build" "--tests" "true") | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (delete 'configure)))) | ||||
|     (propagated-inputs | ||||
|      `(("ocaml-xmlm" ,ocaml-xmlm))) | ||||
|     (native-inputs | ||||
|      `(("opam" ,opam) | ||||
|        ("ocaml-findlib" ,ocaml-findlib) | ||||
|        ("ocamlbuild" ,ocamlbuild) | ||||
|        ("ocaml-topkg" ,ocaml-topkg))) | ||||
|     (home-page "https://erratique.ch/software/uucd") | ||||
|     (synopsis "Unicode character database decoder for OCaml") | ||||
|     (description "Uucd is an OCaml module to decode the data of the Unicode | ||||
| character database from its XML representation.  It provides high-level (but | ||||
| not necessarily efficient) access to the data so that efficient | ||||
| representations can be extracted.") | ||||
|     (license license:isc))) | ||||
| 
 | ||||
| (define-public ocaml-uucp | ||||
|   (package | ||||
|     (name "ocaml-uucp") | ||||
|     (version "13.0.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://erratique.ch/software/uucp/releases/" | ||||
|                            "uucp-" version ".tbz")) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "19kf8ypxaakacgg1dwwfzkc2zicaj88cmw11fw2z7zl24dn4gyiq")))) | ||||
|     (build-system ocaml-build-system) | ||||
|     (arguments | ||||
|      '(#:build-flags '("build" "--tests" "true") | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (delete 'configure)))) | ||||
|     (native-inputs | ||||
|      `(("opam" ,opam) | ||||
|        ("ocaml-findlib" ,ocaml-findlib) | ||||
|        ("ocamlbuild" ,ocamlbuild) | ||||
|        ("ocaml-topkg" ,ocaml-topkg) | ||||
|        ("ocaml-uucd" ,ocaml-uucd) | ||||
|        ("ocaml-uunf" ,ocaml-uunf) | ||||
|        ("ocaml-uutf" ,ocaml-uutf))) | ||||
|     (home-page "https://erratique.ch/software/uucp") | ||||
|     (synopsis "Unicode character properties for OCaml") | ||||
|     (description "Uucp is an OCaml library providing efficient access to a | ||||
| selection of character properties of the Unicode character database.") | ||||
|     (license license:isc))) | ||||
| 
 | ||||
| (define-public ocaml-uuseg | ||||
|   (package | ||||
|     (name "ocaml-uuseg") | ||||
|     (version "13.0.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://erratique.ch/software/uuseg/releases/" | ||||
|                            "uuseg-" version ".tbz")) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1a635j8ra6p27g1ivfln3387lhwqmf6vq4r6bn7b6n1qsqyi1rls")))) | ||||
|     (build-system ocaml-build-system) | ||||
|     (arguments | ||||
|      '(#:build-flags '("build" "--tests" "true") | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (delete 'configure)))) | ||||
|     (propagated-inputs | ||||
|      `(("ocaml-uucp" ,ocaml-uucp) | ||||
|        ("ocaml-uutf" ,ocaml-uutf) | ||||
|        ("ocaml-cmdliner" ,ocaml-cmdliner))) | ||||
|     (native-inputs | ||||
|      `(("opam" ,opam) | ||||
|        ("ocaml-findlib" ,ocaml-findlib) | ||||
|        ("ocamlbuild" ,ocamlbuild) | ||||
|        ("ocaml-topkg" ,ocaml-topkg))) | ||||
|     (home-page "https://erratique.ch/software/uuseg") | ||||
|     (synopsis "Unicode text segmentation for OCaml") | ||||
|     (description "Uuseg is an OCaml library for segmenting Unicode text.  It | ||||
| implements the locale independent Unicode text segmentation algorithms to | ||||
| detect grapheme cluster, word and sentence boundaries and the Unicode line | ||||
| breaking algorithm to detect line break opportunities. | ||||
| 
 | ||||
| The library is independent from any IO mechanism or Unicode text data | ||||
| structure and it can process text without a complete in-memory | ||||
| representation.") | ||||
|     (license license:isc))) | ||||
| 
 | ||||
| (define-public ocaml-fix | ||||
|   (package | ||||
|     (name "ocaml-fix") | ||||
|     (version "20201120") | ||||
|     (source | ||||
|       (origin | ||||
|         (method git-fetch) | ||||
|         (uri (git-reference | ||||
|               (url "https://gitlab.inria.fr/fpottier/fix") | ||||
|               (commit version))) | ||||
|         (file-name (git-file-name name version)) | ||||
|         (sha256 | ||||
|           (base32 | ||||
|             "1j40mg1gy03c0djzx3nzmpvnl984s14n04zwcmp2xnlidq48kvs4")))) | ||||
|     (build-system dune-build-system) | ||||
|     (arguments | ||||
|      ;; No tests. | ||||
|      '(#:tests? #f)) | ||||
|     (home-page "https://gitlab.inria.fr/fpottier/fix") | ||||
|     (synopsis "Facilities for memoization and fixed points") | ||||
|     (description "This package provides helpers with various constructions | ||||
| that involve memoization and recursion.") | ||||
|     (license license:lgpl2.0))) | ||||
| 
 | ||||
| (define-public ocaml-dune-build-info | ||||
|   (package | ||||
|     (inherit dune) | ||||
|     (name "ocaml-dune-build-info") | ||||
|     (build-system dune-build-system) | ||||
|     (arguments | ||||
|      '(#:package "dune-build-info" | ||||
|        ;; No separate test suite from dune. | ||||
|        #:tests? #f)) | ||||
|     (propagated-inputs | ||||
|      `(("ocaml-odoc" ,ocaml-odoc))) | ||||
|     (synopsis "Embed build informations inside executable") | ||||
|     (description "This package allows one to access information about how the | ||||
| executable was built, such as the version of the project at which it was built | ||||
| or the list of statically linked libraries with their versions.  It supports | ||||
| reporting the version from the version control system during development to | ||||
| get an precise reference of when the executable was built."))) | ||||
| 
 | ||||
| (define-public ocamlformat | ||||
|   (package | ||||
|     (name "ocamlformat") | ||||
|     (version "0.18.0") | ||||
|     (source | ||||
|       (origin | ||||
|         (method git-fetch) | ||||
|         (uri (git-reference | ||||
|               (url "https://github.com/ocaml-ppx/ocamlformat") | ||||
|               (commit version))) | ||||
|         (file-name (git-file-name name version)) | ||||
|         (sha256 | ||||
|           (base32 | ||||
|             "0n6363km8xr81pvyk453n6h2mb0256c5yxw3p1li4dn83f3lwxr1")))) | ||||
|     (build-system dune-build-system) | ||||
|     (arguments | ||||
|      '(#:package "ocamlformat" | ||||
|        ;; FIXME: The expected format is slightly different than what the | ||||
|        ;; produced format is for test/cli/stdin.t | ||||
|        #:tests? #f)) | ||||
|     (propagated-inputs | ||||
|       `(("ocaml-version" ,ocaml-version) | ||||
|         ("ocaml-base" ,ocaml-base) | ||||
|         ("ocaml-cmdliner" ,ocaml-cmdliner) | ||||
|         ("ocaml-dune-build-info" ,ocaml-dune-build-info) | ||||
|         ("ocaml-fix" ,ocaml-fix) | ||||
|         ("ocaml-fpath" ,ocaml-fpath) | ||||
|         ("ocaml-menhir" ,ocaml-menhir) | ||||
|         ("ocaml-odoc" ,ocaml-odoc) | ||||
|         ("ocaml-ppxlib" ,ocaml-ppxlib) | ||||
|         ("ocaml-re" ,ocaml-re) | ||||
|         ("ocaml-stdio" ,ocaml-stdio) | ||||
|         ("ocaml-uuseg" ,ocaml-uuseg) | ||||
|         ("ocaml-uutf" ,ocaml-uutf))) | ||||
|     (native-inputs | ||||
|       `(("ocaml-alcotest" ,ocaml-alcotest) | ||||
|         ("ocaml-ocp-indent" ,ocaml-ocp-indent) | ||||
|         ("ocaml-bisect-ppx" ,ocaml-bisect-ppx))) | ||||
|     (home-page "https://github.com/ocaml-ppx/ocamlformat") | ||||
|     (synopsis "Auto-formatter for OCaml code") | ||||
|     (description "OCamlFormat is a tool to automatically format OCaml code in | ||||
| a uniform style.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public ocaml-bigstringaf | ||||
|   (package | ||||
|     (name "ocaml-bigstringaf") | ||||
|  |  | |||
							
								
								
									
										32
									
								
								gnu/packages/patches/instead-use-games-path.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								gnu/packages/patches/instead-use-games-path.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,32 @@ | |||
| From 8b350daa847dd8e131d9e6b5b4434ce68a7903d0 Mon Sep 17 00:00:00 2001 | ||||
| From: Dmitry Polyakov <polyakov@liltechdude.xyz> | ||||
| Date: Wed, 4 Aug 2021 15:46:33 +0500 | ||||
| Subject: [PATCH] Add support for INSTEAD_GAMES_PATH | ||||
| 
 | ||||
| In some setups, users might prefer to determine on their own the path in | ||||
| which games are located.  This patch enables them to do so by setting | ||||
| the “INSTEAD_GAMES_PATH” environmnent variable. | ||||
| ---
 | ||||
|  src/main.c | 6 ++++++ | ||||
|  1 file changed, 6 insertions(+) | ||||
| 
 | ||||
| diff --git a/src/main.c b/src/main.c
 | ||||
| index ba0ada1d..b05497b8 100644
 | ||||
| --- a/src/main.c
 | ||||
| +++ b/src/main.c
 | ||||
| @@ -394,6 +394,12 @@ int instead_main(int argc, char *argv[])
 | ||||
|  	setdir(game_cwd); | ||||
|  	profile_load(NULL); | ||||
|   | ||||
| +	char *gamespath_env = NULL;
 | ||||
| +
 | ||||
| +	if (gamespath_env = getenv("INSTEAD_GAMES_PATH"), gamespath_env != NULL) {
 | ||||
| +	  games_sw = strdup(gamespath_env);
 | ||||
| +	}
 | ||||
| +
 | ||||
|  	for (i = 1; i < argc; i++) { | ||||
|  		if (lua_sw) /* during load profile */ | ||||
|  			break; | ||||
| -- 
 | ||||
| 2.32.0 | ||||
| 
 | ||||
							
								
								
									
										22
									
								
								gnu/packages/patches/llvm-roc-3.0.0-add_libraries.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								gnu/packages/patches/llvm-roc-3.0.0-add_libraries.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,22 @@ | |||
| Taken from https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-devel/llvm-roc/files | ||||
| 
 | ||||
| diff -Naur a/clang/lib/Basic/CMakeLists.txt b/clang/lib/Basic/CMakeLists.txt
 | ||||
| --- a/clang/lib/Basic/CMakeLists.txt	2019-12-28 07:42:49.119055933 +0100
 | ||||
| +++ b/clang/lib/Basic/CMakeLists.txt	2019-12-28 07:42:13.265056070 +0100
 | ||||
| @@ -2,6 +2,7 @@
 | ||||
|    Core | ||||
|    MC | ||||
|    Support | ||||
| +  Option
 | ||||
|    ) | ||||
|   | ||||
|  find_first_existing_vc_file("${LLVM_MAIN_SRC_DIR}" llvm_vc) | ||||
| diff -Naur a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt
 | ||||
| --- a/clang/lib/Driver/CMakeLists.txt	2019-12-28 07:41:39.521056199 +0100
 | ||||
| +++ b/clang/lib/Driver/CMakeLists.txt	2019-12-28 07:40:23.998056487 +0100
 | ||||
| @@ -79,4 +79,5 @@
 | ||||
|    LINK_LIBS | ||||
|    clangBasic | ||||
|    ${system_libs} | ||||
| +  pthread
 | ||||
|    ) | ||||
|  | @ -0,0 +1,29 @@ | |||
| Author: Wilfried (justxi) Holzke | ||||
| 
 | ||||
| Adopted from https://github.com/justxi/rocm/blob/master/sys-devel/llvm-roc/files/llvm-roc-4.0.0-remove-isystem-usr-include.patch | ||||
| 
 | ||||
| Index: llvm-project-rocm-4.0.0/clang/lib/Driver/ToolChains/AMDGPU.cpp
 | ||||
| ===================================================================
 | ||||
| --- llvm-project-rocm-4.0.0.orig/clang/lib/Driver/ToolChains/AMDGPU.cpp
 | ||||
| +++ llvm-project-rocm-4.0.0/clang/lib/Driver/ToolChains/AMDGPU.cpp
 | ||||
| @@ -326,11 +326,6 @@ void RocmInstallationDetector::AddHIPInc
 | ||||
|      // | ||||
|      // ROCm 3.5 does not fully support the wrapper headers. Therefore it needs | ||||
|      // a workaround. | ||||
| -    SmallString<128> P(D.ResourceDir);
 | ||||
| -    if (UsesRuntimeWrapper)
 | ||||
| -      llvm::sys::path::append(P, "include", "cuda_wrappers");
 | ||||
| -    CC1Args.push_back("-internal-isystem");
 | ||||
| -    CC1Args.push_back(DriverArgs.MakeArgString(P));
 | ||||
|    } | ||||
|   | ||||
|    if (DriverArgs.hasArg(options::OPT_nogpuinc)) | ||||
| @@ -341,8 +336,6 @@ void RocmInstallationDetector::AddHIPInc
 | ||||
|      return; | ||||
|    } | ||||
|   | ||||
| -  CC1Args.push_back("-internal-isystem");
 | ||||
| -  CC1Args.push_back(DriverArgs.MakeArgString(getIncludePath()));
 | ||||
|    if (UsesRuntimeWrapper) | ||||
|      CC1Args.append({"-include", "__clang_hip_runtime_wrapper.h"}); | ||||
|  } | ||||
							
								
								
									
										13
									
								
								gnu/packages/patches/llvm-roc-4.2.0-add_Object.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								gnu/packages/patches/llvm-roc-4.2.0-add_Object.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | |||
| Taken from https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-devel/llvm-roc/files | ||||
| 
 | ||||
| diff --color -uprN orig/lib/Target/AMDGPU/Disassembler/CMakeLists.txt llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt
 | ||||
| --- a/llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt	2021-06-14 11:57:54.222796911 +0800
 | ||||
| +++ b/llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt	2021-06-14 11:58:35.206796875 +0800
 | ||||
| @@ -11,6 +11,7 @@ add_llvm_component_library(LLVMAMDGPUDis
 | ||||
|    MC | ||||
|    MCDisassembler | ||||
|    Support | ||||
| +  Object
 | ||||
|   | ||||
|    ADD_TO_COMPONENT | ||||
|    AMDGPU | ||||
							
								
								
									
										53
									
								
								gnu/packages/patches/onnx-optimizer-system-library.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								gnu/packages/patches/onnx-optimizer-system-library.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,53 @@ | |||
| Arrange so that onnx-optimizer (1) uses our own ONNX build,  | ||||
| (2) builds as a shared library, and (3) links against the shared | ||||
| libraries of ONNX. | ||||
| 
 | ||||
| diff --git a/CMakeLists.txt b/CMakeLists.txt
 | ||||
| index c2e48b35..8af51076 100644
 | ||||
| --- a/CMakeLists.txt
 | ||||
| +++ b/CMakeLists.txt
 | ||||
| @@ -9,8 +9,6 @@ endif(NOT MSVC)
 | ||||
|   | ||||
|  set(CMAKE_POSITION_INDEPENDENT_CODE ON) | ||||
|   | ||||
| -set(ONNX_ROOT ${PROJECT_SOURCE_DIR}/third_party/onnx)
 | ||||
| -add_subdirectory(${ONNX_ROOT})
 | ||||
|   | ||||
|  file(READ "${PROJECT_SOURCE_DIR}/VERSION_NUMBER" ONNX_OPTIMIZER_VERSION) | ||||
|  string(STRIP "${ONNX_OPTIMIZER_VERSION}" ONNX_OPTIMIZER_VERSION) | ||||
| @@ -21,14 +19,18 @@ file(GLOB_RECURSE onnx_opt_srcs "onnxoptimizer/*.cc"
 | ||||
|  list(REMOVE_ITEM onnx_opt_srcs "${PROJECT_SOURCE_DIR}/onnxoptimizer/cpp2py_export.cc") | ||||
|   | ||||
|  add_library(onnx_optimizer ${onnx_opt_srcs}) | ||||
| -target_link_libraries(onnx_optimizer PUBLIC onnx)
 | ||||
| +target_link_libraries(onnx_optimizer PUBLIC onnx onnx_proto)
 | ||||
|  target_include_directories(onnx_optimizer PUBLIC | ||||
|      $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}> | ||||
|      $<INSTALL_INTERFACE:include> | ||||
|      ) | ||||
|   | ||||
| +# These cpp macros must be defined so the ONNX headers behave
 | ||||
| +# correctly.
 | ||||
| +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DONNX_ML=1 -DONNX_NAMESPACE=onnx")
 | ||||
| +
 | ||||
|  add_executable(onnx_optimizer_exec examples/onnx_optimizer_exec.cpp) | ||||
| -target_link_libraries(onnx_optimizer_exec onnx_optimizer)
 | ||||
| +target_link_libraries(onnx_optimizer_exec onnx_optimizer protobuf)
 | ||||
|   | ||||
|  if(BUILD_ONNX_PYTHON) | ||||
|    if("${PY_EXT_SUFFIX}" STREQUAL "") | ||||
| @@ -79,11 +81,10 @@ if(BUILD_ONNX_PYTHON)
 | ||||
|                            PRIVATE $<TARGET_OBJECTS:onnx_optimizer>) | ||||
|    else() | ||||
|      # Assume everything else is like gcc | ||||
| -    target_link_libraries(onnx_opt_cpp2py_export
 | ||||
| -                          PRIVATE "-Wl,--whole-archive" $<TARGET_FILE:onnx_optimizer>
 | ||||
| -                                  "-Wl,--no-whole-archive")
 | ||||
| +    target_link_libraries(onnx_opt_cpp2py_export PRIVATE onnx_optimizer)
 | ||||
|      set_target_properties(onnx_opt_cpp2py_export | ||||
| -                          PROPERTIES LINK_FLAGS "-Wl,--exclude-libs,ALL")
 | ||||
| +                          PROPERTIES LINK_FLAGS
 | ||||
| +			  "-Wl,-rpath=${CMAKE_INSTALL_PREFIX}/lib")
 | ||||
|    endif() | ||||
|   | ||||
|    target_link_libraries(onnx_opt_cpp2py_export PRIVATE onnx_optimizer) | ||||
|  | @ -1,278 +0,0 @@ | |||
| Fix a few testcases. Adapted from python-3-fix-tests.patch. | ||||
| 
 | ||||
| diff -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/ctypes/test/test_callbacks.py pypy3.6-v7.3.1-src/lib-python/3/ctypes/test/test_callbacks.py
 | ||||
| --- pypy3.6-v7.3.1-src.orig/lib-python/3/ctypes/test/test_callbacks.py	1970-01-01 01:00:01.000000000 +0100
 | ||||
| +++ pypy3.6-v7.3.1-src/lib-python/3/ctypes/test/test_callbacks.py	2020-05-21 14:19:14.827288853 +0200
 | ||||
| @@ -4,6 +4,7 @@
 | ||||
|  from ctypes import * | ||||
|  from ctypes.test import need_symbol | ||||
|  import _ctypes_test | ||||
| +import platform
 | ||||
|   | ||||
|  class Callbacks(unittest.TestCase): | ||||
|      functype = CFUNCTYPE | ||||
| @@ -178,6 +179,8 @@
 | ||||
|   | ||||
|          self.assertLess(diff, 0.01, "%s not less than 0.01" % diff) | ||||
|   | ||||
| +    @unittest.skipIf(platform.machine() in ['mips64'],
 | ||||
| +                     "This test fails on this platform")
 | ||||
|      def test_issue_8959_a(self): | ||||
|          from ctypes.util import find_library | ||||
|          libc_path = find_library("c") | ||||
| diff -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/ctypes/test/test_libc.py pypy3.6-v7.3.1-src/lib-python/3/ctypes/test/test_libc.py
 | ||||
| --- pypy3.6-v7.3.1-src.orig/lib-python/3/ctypes/test/test_libc.py	1970-01-01 01:00:01.000000000 +0100
 | ||||
| +++ pypy3.6-v7.3.1-src/lib-python/3/ctypes/test/test_libc.py	2020-05-21 14:19:14.827288853 +0200
 | ||||
| @@ -2,6 +2,7 @@
 | ||||
|   | ||||
|  from ctypes import * | ||||
|  import _ctypes_test | ||||
| +import platform
 | ||||
|   | ||||
|  lib = CDLL(_ctypes_test.__file__) | ||||
|   | ||||
| @@ -17,6 +18,8 @@
 | ||||
|          import math | ||||
|          self.assertEqual(lib.my_sqrt(2.0), math.sqrt(2.0)) | ||||
|   | ||||
| +    @unittest.skipIf(platform.machine() in ['mips64'],
 | ||||
| +                     "This test fails on this platform")
 | ||||
|      def test_qsort(self): | ||||
|          comparefunc = CFUNCTYPE(c_int, POINTER(c_char), POINTER(c_char)) | ||||
|          lib.my_qsort.argtypes = c_void_p, c_size_t, c_size_t, comparefunc | ||||
| diff -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/distutils/tests/test_archive_util.py pypy3.6-v7.3.1-src/lib-python/3/distutils/tests/test_archive_util.py
 | ||||
| --- pypy3.6-v7.3.1-src.orig/lib-python/3/distutils/tests/test_archive_util.py	1970-01-01 01:00:01.000000000 +0100
 | ||||
| +++ pypy3.6-v7.3.1-src/lib-python/3/distutils/tests/test_archive_util.py	2020-05-21 14:19:14.827288853 +0200
 | ||||
| @@ -333,6 +333,7 @@
 | ||||
|          self.assertEqual(os.path.basename(res), 'archive.tar.xz') | ||||
|          self.assertEqual(self._tarinfo(res), self._created_files) | ||||
|   | ||||
| +    @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix")
 | ||||
|      def test_make_archive_owner_group(self): | ||||
|          # testing make_archive with owner and group, with various combinations | ||||
|          # this works even if there's not gid/uid support | ||||
| @@ -362,6 +363,7 @@
 | ||||
|   | ||||
|      @unittest.skipUnless(ZLIB_SUPPORT, "Requires zlib") | ||||
|      @unittest.skipUnless(UID_GID_SUPPORT, "Requires grp and pwd support") | ||||
| +    @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix")
 | ||||
|      def test_tarfile_root_owner(self): | ||||
|          tmpdir =  self._create_files() | ||||
|          base_name = os.path.join(self.mkdtemp(), 'archive') | ||||
| diff -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/distutils/tests/test_sdist.py pypy3.6-v7.3.1-src/lib-python/3/distutils/tests/test_sdist.py
 | ||||
| --- pypy3.6-v7.3.1-src.orig/lib-python/3/distutils/tests/test_sdist.py	1970-01-01 01:00:01.000000000 +0100
 | ||||
| +++ pypy3.6-v7.3.1-src/lib-python/3/distutils/tests/test_sdist.py	2020-05-21 14:19:14.827288853 +0200
 | ||||
| @@ -443,6 +443,7 @@
 | ||||
|                       "The tar command is not found") | ||||
|      @unittest.skipIf(find_executable('gzip') is None, | ||||
|                       "The gzip command is not found") | ||||
| +    @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix")
 | ||||
|      def test_make_distribution_owner_group(self): | ||||
|          # now building a sdist | ||||
|          dist, cmd = self.get_cmd() | ||||
| diff -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_asyncio/test_base_events.py pypy3.6-v7.3.1-src/lib-python/3/test/test_asyncio/test_base_events.py
 | ||||
| --- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_asyncio/test_base_events.py	1970-01-01 01:00:01.000000000 +0100
 | ||||
| +++ pypy3.6-v7.3.1-src/lib-python/3/test/test_asyncio/test_base_events.py	2020-05-21 14:19:14.827288853 +0200
 | ||||
| @@ -1296,6 +1296,8 @@
 | ||||
|          self._test_create_connection_ip_addr(m_socket, False) | ||||
|   | ||||
|      @patch_socket | ||||
| +    @unittest.skipUnless(support.is_resource_enabled('network'),
 | ||||
| +                         'network is not enabled')
 | ||||
|      def test_create_connection_service_name(self, m_socket): | ||||
|          m_socket.getaddrinfo = socket.getaddrinfo | ||||
|          sock = m_socket.socket.return_value | ||||
| diff -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_generators.py pypy3.6-v7.3.1-src/lib-python/3/test/test_generators.py
 | ||||
| --- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_generators.py	1970-01-01 01:00:01.000000000 +0100
 | ||||
| +++ pypy3.6-v7.3.1-src/lib-python/3/test/test_generators.py	2020-05-21 14:19:14.827288853 +0200
 | ||||
| @@ -35,6 +35,7 @@
 | ||||
|          else: | ||||
|              return "FAILED" | ||||
|   | ||||
| +    @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment')
 | ||||
|      def test_raise_and_yield_from(self): | ||||
|          gen = self.generator1() | ||||
|          gen.send(None) | ||||
| diff -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/_test_multiprocessing.py pypy3.6-v7.3.1-src/lib-python/3/test/_test_multiprocessing.py
 | ||||
| --- pypy3.6-v7.3.1-src.orig/lib-python/3/test/_test_multiprocessing.py	1970-01-01 01:00:01.000000000 +0100
 | ||||
| +++ pypy3.6-v7.3.1-src/lib-python/3/test/_test_multiprocessing.py	2020-05-21 14:19:14.827288853 +0200
 | ||||
| @@ -1212,6 +1212,7 @@
 | ||||
|          if pid is not None: | ||||
|              os.kill(pid, signal.SIGINT) | ||||
|   | ||||
| +    @unittest.skipIf(True, "This fails for unknown reasons on Guix")
 | ||||
|      def test_wait_result(self): | ||||
|          if isinstance(self, ProcessesMixin) and sys.platform != 'win32': | ||||
|              pid = os.getpid() | ||||
| diff -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_normalization.py pypy3.6-v7.3.1-src/lib-python/3/test/test_normalization.py
 | ||||
| --- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_normalization.py	1970-01-01 01:00:01.000000000 +0100
 | ||||
| +++ pypy3.6-v7.3.1-src/lib-python/3/test/test_normalization.py	2020-05-21 14:19:14.827288853 +0200
 | ||||
| @@ -2,6 +2,7 @@
 | ||||
|  import unittest | ||||
|   | ||||
|  from http.client import HTTPException | ||||
| +from urllib.error import URLError
 | ||||
|  import sys | ||||
|  from unicodedata import normalize, unidata_version | ||||
|   | ||||
| @@ -43,6 +44,8 @@
 | ||||
|          except PermissionError: | ||||
|              self.skipTest(f"Permission error when downloading {TESTDATAURL} " | ||||
|                            f"into the test data directory") | ||||
| +        except URLError:
 | ||||
| +            self.skipTest("DNS lookups are not enabled.")
 | ||||
|          except (OSError, HTTPException): | ||||
|              self.fail(f"Could not retrieve {TESTDATAURL}") | ||||
|   | ||||
| diff -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_pathlib.py pypy3.6-v7.3.1-src/lib-python/3/test/test_pathlib.py
 | ||||
| --- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_pathlib.py	1970-01-01 01:00:01.000000000 +0100
 | ||||
| +++ pypy3.6-v7.3.1-src/lib-python/3/test/test_pathlib.py	2020-05-21 14:19:14.827288853 +0200
 | ||||
| @@ -2130,8 +2130,7 @@
 | ||||
|          self.assertEqual(given, expect) | ||||
|          self.assertEqual(set(p.rglob("FILEd*")), set()) | ||||
|   | ||||
| -    @unittest.skipUnless(hasattr(pwd, 'getpwall'),
 | ||||
| -                         'pwd module does not expose getpwall()')
 | ||||
| +    @unittest.skipIf(True, "Guix builder home is '/' which causes trouble for these tests")
 | ||||
|      def test_expanduser(self): | ||||
|          P = self.cls | ||||
|          support.import_module('pwd') | ||||
| diff -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_pdb.py pypy3.6-v7.3.1-src/lib-python/3/test/test_pdb.py
 | ||||
| --- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_pdb.py	1970-01-01 01:00:01.000000000 +0100
 | ||||
| +++ pypy3.6-v7.3.1-src/lib-python/3/test/test_pdb.py	2020-05-21 14:20:24.377203281 +0200
 | ||||
| @@ -1136,11 +1136,11 @@
 | ||||
|      > <doctest test.test_pdb.test_pdb_issue_20766[0]>(6)test_function() | ||||
|      -> print('pdb %d: %s' % (i, sess._previous_sigint_handler)) | ||||
|      (Pdb) continue | ||||
| -    pdb 1: <built-in function default_int_handler>
 | ||||
| +    pdb 1: Handlers.SIG_IGN
 | ||||
|      > <doctest test.test_pdb.test_pdb_issue_20766[0]>(6)test_function() | ||||
|      -> print('pdb %d: %s' % (i, sess._previous_sigint_handler)) | ||||
|      (Pdb) continue | ||||
| -    pdb 2: <built-in function default_int_handler>
 | ||||
| +    pdb 2: Handlers.SIG_IGN
 | ||||
|      """ | ||||
|   | ||||
|  class PdbTestCase(unittest.TestCase): | ||||
| diff -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_regrtest.py pypy3.6-v7.3.1-src/lib-python/3/test/test_regrtest.py
 | ||||
| --- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_regrtest.py	1970-01-01 01:00:01.000000000 +0100
 | ||||
| +++ pypy3.6-v7.3.1-src/lib-python/3/test/test_regrtest.py	2020-05-21 14:19:14.827288853 +0200
 | ||||
| @@ -766,6 +766,7 @@
 | ||||
|          output = self.run_tests('--fromfile', filename) | ||||
|          self.check_executed_tests(output, tests) | ||||
|   | ||||
| +    @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment.')
 | ||||
|      def test_interrupted(self): | ||||
|          code = TEST_INTERRUPTED | ||||
|          test = self.create_test('sigint', code=code) | ||||
| diff -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_resource.py pypy3.6-v7.3.1-src/lib-python/3/test/test_resource.py
 | ||||
| --- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_resource.py	1970-01-01 01:00:01.000000000 +0100
 | ||||
| +++ pypy3.6-v7.3.1-src/lib-python/3/test/test_resource.py	2020-05-21 14:19:14.827288853 +0200
 | ||||
| @@ -146,6 +146,7 @@
 | ||||
|   | ||||
|      @unittest.skipUnless(hasattr(resource, 'prlimit'), 'no prlimit') | ||||
|      @support.requires_linux_version(2, 6, 36) | ||||
| +    @unittest.skipIf(True, "Bug: the PermissionError is not raised")
 | ||||
|      def test_prlimit(self): | ||||
|          self.assertRaises(TypeError, resource.prlimit) | ||||
|          self.assertRaises(ProcessLookupError, resource.prlimit, | ||||
| diff -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_shutil.py pypy3.6-v7.3.1-src/lib-python/3/test/test_shutil.py
 | ||||
| --- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_shutil.py	1970-01-01 01:00:01.000000000 +0100
 | ||||
| +++ pypy3.6-v7.3.1-src/lib-python/3/test/test_shutil.py	2020-05-21 14:19:14.827288853 +0200
 | ||||
| @@ -1138,6 +1138,7 @@
 | ||||
|          self.assertRaises(ValueError, make_archive, base_name, 'xxx') | ||||
|   | ||||
|      @support.requires_zlib | ||||
| +    @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix")
 | ||||
|      def test_make_archive_owner_group(self): | ||||
|          # testing make_archive with owner and group, with various combinations | ||||
|          # this works even if there's not gid/uid support | ||||
| @@ -1166,6 +1167,7 @@
 | ||||
|   | ||||
|   | ||||
|      @support.requires_zlib | ||||
| +    @unittest.skipIf(True, "getgrgid(0)[0] raises a KeyError on Guix")
 | ||||
|      @unittest.skipUnless(UID_GID_SUPPORT, "Requires grp and pwd support") | ||||
|      def test_tarfile_root_owner(self): | ||||
|          root_dir, base_dir = self._create_files() | ||||
| diff -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_socket.py pypy3.6-v7.3.1-src/lib-python/3/test/test_socket.py
 | ||||
| --- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_socket.py	1970-01-01 01:00:01.000000000 +0100
 | ||||
| +++ pypy3.6-v7.3.1-src/lib-python/3/test/test_socket.py	2020-05-21 14:19:14.827288853 +0200
 | ||||
| @@ -815,6 +815,8 @@
 | ||||
|          if not fqhn in all_host_names: | ||||
|              self.fail("Error testing host resolution mechanisms. (fqdn: %s, all: %s)" % (fqhn, repr(all_host_names))) | ||||
|   | ||||
| +    @unittest.skipUnless(support.is_resource_enabled('network'),
 | ||||
| +                         'network is not enabled')
 | ||||
|      def test_host_resolution(self): | ||||
|          for addr in [support.HOST, '10.0.0.1', '255.255.255.255']: | ||||
|              self.assertEqual(socket.gethostbyname(addr), addr) | ||||
| @@ -934,6 +936,8 @@
 | ||||
|              self.assertRaises(OverflowError, socket.htonl, k) | ||||
|              self.assertRaises(OverflowError, socket.htons, k) | ||||
|   | ||||
| +    @unittest.skipUnless(os.path.exists("/etc/services"),
 | ||||
| +                         "getservbyname uses /etc/services, which is not in the chroot")
 | ||||
|      def testGetServBy(self): | ||||
|          eq = self.assertEqual | ||||
|          # Find one service that exists, then check all the related interfaces. | ||||
| @@ -1278,6 +1282,8 @@
 | ||||
|              raise | ||||
|          self.assertRaises(TypeError, s.ioctl, socket.SIO_LOOPBACK_FAST_PATH, None) | ||||
|   | ||||
| +    @unittest.skipUnless(os.path.exists("/etc/gai.conf"),
 | ||||
| +                         "getaddrinfo() will fail")
 | ||||
|      def testGetaddrinfo(self): | ||||
|          try: | ||||
|              socket.getaddrinfo('localhost', 80) | ||||
| @@ -1357,6 +1363,8 @@
 | ||||
|          # only IP addresses are allowed | ||||
|          self.assertRaises(OSError, socket.getnameinfo, ('mail.python.org',0), 0) | ||||
|   | ||||
| +    @unittest.skipUnless(os.path.exists("/etc/gai.conf"),
 | ||||
| +                         "getaddrinfo() will fail")
 | ||||
|      @unittest.skipUnless(support.is_resource_enabled('network'), | ||||
|                           'network is not enabled') | ||||
|      def test_idna(self): | ||||
| diff -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_spwd.py pypy3.6-v7.3.1-src/lib-python/3/test/test_spwd.py
 | ||||
| --- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_spwd.py	1970-01-01 01:00:01.000000000 +0100
 | ||||
| +++ pypy3.6-v7.3.1-src/lib-python/3/test/test_spwd.py	2020-05-21 14:19:14.827288853 +0200
 | ||||
| @@ -5,8 +5,7 @@
 | ||||
|  spwd = support.import_module('spwd') | ||||
|   | ||||
|   | ||||
| -@unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() == 0,
 | ||||
| -                     'root privileges required')
 | ||||
| +@unittest.skipUnless(os.path.exists("/etc/shadow"), 'spwd tests require /etc/shadow')
 | ||||
|  class TestSpwdRoot(unittest.TestCase): | ||||
|   | ||||
|      def test_getspall(self): | ||||
| @@ -56,8 +55,7 @@
 | ||||
|              self.assertRaises(TypeError, spwd.getspnam, bytes_name) | ||||
|   | ||||
|   | ||||
| -@unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() != 0,
 | ||||
| -                     'non-root user required')
 | ||||
| +@unittest.skipUnless(os.path.exists("/etc/shadow"), 'spwd tests require /etc/shadow')
 | ||||
|  class TestSpwdNonRoot(unittest.TestCase): | ||||
|   | ||||
|      def test_getspnam_exception(self): | ||||
| diff -Naur pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_tarfile.py pypy3.6-v7.3.1-src/lib-python/3/test/test_tarfile.py
 | ||||
| --- pypy3.6-v7.3.1-src.orig/lib-python/3/test/test_tarfile.py	1970-01-01 01:00:01.000000000 +0100
 | ||||
| +++ pypy3.6-v7.3.1-src/lib-python/3/test/test_tarfile.py	2020-05-21 14:19:14.827288853 +0200
 | ||||
| @@ -2491,9 +2491,12 @@
 | ||||
|          import pwd, grp | ||||
|      except ImportError: | ||||
|          return False | ||||
| -    if pwd.getpwuid(0)[0] != 'root':
 | ||||
| -        return False
 | ||||
| -    if grp.getgrgid(0)[0] != 'root':
 | ||||
| +    try:
 | ||||
| +        if pwd.getpwuid(0)[0] != 'root':
 | ||||
| +            return False
 | ||||
| +        if grp.getgrgid(0)[0] != 'root':
 | ||||
| +            return False
 | ||||
| +    except KeyError:
 | ||||
|          return False | ||||
|      return True | ||||
|   | ||||
							
								
								
									
										25
									
								
								gnu/packages/patches/python-pytorch-runpath.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								gnu/packages/patches/python-pytorch-runpath.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,25 @@ | |||
| Libraries (such as 'libtorch_cpu.so') and executables (such as 'torch_shm_manager') | ||||
| get installed, quite surprisingly, to 'lib/python3.8/site-packages/{bin,lib}'. | ||||
| Make sure RUNPATH matches that. | ||||
| 
 | ||||
| --- a/cmake/Dependencies.cmake
 | ||||
| +++ b/cmake/Dependencies.cmake
 | ||||
| @@ -4,7 +4,7 @@ if(APPLE)
 | ||||
|    set(CMAKE_MACOSX_RPATH ON) | ||||
|    set(_rpath_portable_origin "@loader_path") | ||||
|  else() | ||||
| -  set(_rpath_portable_origin $ORIGIN)
 | ||||
| +  set(_rpath_portable_origin $ORIGIN/../lib)
 | ||||
|  endif(APPLE) | ||||
|  # Use separate rpaths during build and install phases | ||||
|  set(CMAKE_SKIP_BUILD_RPATH  FALSE) | ||||
| 
 | ||||
| --- a/caffe2/CMakeLists.txt
 | ||||
| +++ b/caffe2/CMakeLists.txt
 | ||||
| @@ -1797,5 +1797,5 @@ if(BUILD_PYTHON)
 | ||||
|    if(${BUILDING_WITH_TORCH_LIBS}) | ||||
|      # site-packages/caffe2/python/caffe2_pybind11_state | ||||
|      # site-packages/torch/lib | ||||
| -    set(caffe2_pybind11_rpath "${_rpath_portable_origin}/../../torch/lib")
 | ||||
| +    set(caffe2_pybind11_rpath $ORIGIN/../../torch/lib)
 | ||||
|    endif(${BUILDING_WITH_TORCH_LIBS}) | ||||
							
								
								
									
										131
									
								
								gnu/packages/patches/python-pytorch-system-libraries.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										131
									
								
								gnu/packages/patches/python-pytorch-system-libraries.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,131 @@ | |||
| Use our own googletest rather than the bundled one. | ||||
| Get NNPACK to use our own PeachPy rather than the bundled one. | ||||
| 
 | ||||
| diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
 | ||||
| index 5d57b9ca78..620cca4e60 100644
 | ||||
| --- a/cmake/Dependencies.cmake
 | ||||
| +++ b/cmake/Dependencies.cmake
 | ||||
| @@ -644,11 +644,6 @@ if(BUILD_TEST OR BUILD_MOBILE_BENCHMARK OR BUILD_MOBILE_TEST)
 | ||||
|    # this shouldn't be necessary anymore. | ||||
|    get_property(INC_DIR_temp DIRECTORY PROPERTY INCLUDE_DIRECTORIES) | ||||
|    set_property(DIRECTORY PROPERTY INCLUDE_DIRECTORIES "") | ||||
| -  add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../third_party/googletest)
 | ||||
| -  set_property(DIRECTORY PROPERTY INCLUDE_DIRECTORIES ${INC_DIR_temp})
 | ||||
| -
 | ||||
| -  include_directories(BEFORE SYSTEM ${CMAKE_CURRENT_LIST_DIR}/../third_party/googletest/googletest/include)
 | ||||
| -  include_directories(BEFORE SYSTEM ${CMAKE_CURRENT_LIST_DIR}/../third_party/googletest/googlemock/include)
 | ||||
|   | ||||
|    # We will not need to test benchmark lib itself. | ||||
|    set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "Disable benchmark testing as we don't need it.") | ||||
| @@ -1485,7 +1480,7 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX)
 | ||||
|      endif() | ||||
|      set_property(TARGET onnx_proto PROPERTY IMPORTED_LOCATION ${ONNX_PROTO_LIBRARY}) | ||||
|      message("-- Found onnx: ${ONNX_LIBRARY} ${ONNX_PROTO_LIBRARY}") | ||||
| -    list(APPEND Caffe2_DEPENDENCY_LIBS onnx_proto onnx)
 | ||||
| +    list(APPEND Caffe2_DEPENDENCY_LIBS onnx_proto onnx onnx_optimizer)
 | ||||
|    endif() | ||||
|    include_directories(${FOXI_INCLUDE_DIRS}) | ||||
|    list(APPEND Caffe2_DEPENDENCY_LIBS foxi_loader) | ||||
| 
 | ||||
| diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt
 | ||||
| index 50ebb224ce..5953d9ddf7 100644
 | ||||
| --- a/caffe2/CMakeLists.txt
 | ||||
| +++ b/caffe2/CMakeLists.txt
 | ||||
| @@ -1632,7 +1632,7 @@ if(BUILD_TEST)
 | ||||
|          if(NOT MSVC) | ||||
|            add_executable(${test_name}_${CPU_CAPABILITY} "${test_src}" ../aten/src/ATen/native/quantized/affine_quantizer_base.cpp) | ||||
|            # TODO: Get rid of c10 dependency (which is only needed for the implementation of AT_ERROR) | ||||
| -          target_link_libraries(${test_name}_${CPU_CAPABILITY} c10 sleef gtest_main)
 | ||||
| +          target_link_libraries(${test_name}_${CPU_CAPABILITY} c10 sleef gtest_main gtest)
 | ||||
|            if(USE_FBGEMM) | ||||
|              target_link_libraries(${test_name}_${CPU_CAPABILITY} fbgemm) | ||||
|            endif() | ||||
| @@ -1655,7 +1655,7 @@ if(BUILD_TEST)
 | ||||
|    foreach(test_src ${Caffe2_CPU_TEST_SRCS}) | ||||
|      get_filename_component(test_name ${test_src} NAME_WE) | ||||
|      add_executable(${test_name} "${test_src}") | ||||
| -    target_link_libraries(${test_name} torch_library gtest_main)
 | ||||
| +    target_link_libraries(${test_name} torch_library gtest_main gtest)
 | ||||
|      target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>) | ||||
|      target_include_directories(${test_name} PRIVATE $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>) | ||||
|      target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE}) | ||||
| @@ -1673,7 +1673,7 @@ if(BUILD_TEST)
 | ||||
|      foreach(test_src ${Caffe2_GPU_TEST_SRCS}) | ||||
|        get_filename_component(test_name ${test_src} NAME_WE) | ||||
|        cuda_add_executable(${test_name} "${test_src}") | ||||
| -      target_link_libraries(${test_name} torch_library gtest_main)
 | ||||
| +      target_link_libraries(${test_name} torch_library gtest_main gtest)
 | ||||
|        target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>) | ||||
|        target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE}) | ||||
|        add_test(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}>) | ||||
| @@ -1691,7 +1691,7 @@ if(BUILD_TEST)
 | ||||
|      foreach(test_src ${Caffe2_VULKAN_TEST_SRCS}) | ||||
|        get_filename_component(test_name ${test_src} NAME_WE) | ||||
|        add_executable(${test_name} "${test_src}") | ||||
| -      target_link_libraries(${test_name} torch_library gtest_main)
 | ||||
| +      target_link_libraries(${test_name} torch_library gtest_main gtest)
 | ||||
|        target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>) | ||||
|        target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE}) | ||||
|        add_test(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}>) | ||||
| @@ -1709,7 +1709,7 @@ if(BUILD_TEST)
 | ||||
|      foreach(test_src ${Caffe2_HIP_TEST_SRCS}) | ||||
|        get_filename_component(test_name ${test_src} NAME_WE) | ||||
|        add_executable(${test_name} "${test_src}") | ||||
| -      target_link_libraries(${test_name} torch_library gtest_main)
 | ||||
| +      target_link_libraries(${test_name} torch_library gtest_main gtest)
 | ||||
|        target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>) | ||||
|        target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE} ${Caffe2_HIP_INCLUDE}) | ||||
|        target_compile_options(${test_name} PRIVATE ${HIP_CXX_FLAGS}) | ||||
| 
 | ||||
| diff --git a/torch/lib/c10d/test/CMakeLists.txt b/torch/lib/c10d/test/CMakeLists.txt
 | ||||
| index b74d4b65f7..fc7c207505 100644
 | ||||
| --- a/torch/lib/c10d/test/CMakeLists.txt
 | ||||
| +++ b/torch/lib/c10d/test/CMakeLists.txt
 | ||||
| @@ -16,25 +16,25 @@ function(c10d_add_test test_src)
 | ||||
|    add_test(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}>) | ||||
|  endfunction() | ||||
|   | ||||
| -c10d_add_test(FileStoreTest.cpp c10d gtest_main)
 | ||||
| -c10d_add_test(TCPStoreTest.cpp c10d gtest_main)
 | ||||
| +c10d_add_test(FileStoreTest.cpp c10d gtest_main gtest)
 | ||||
| +c10d_add_test(TCPStoreTest.cpp c10d gtest_main gtest)
 | ||||
|  if(NOT WIN32) | ||||
| -  c10d_add_test(HashStoreTest.cpp c10d gtest_main)
 | ||||
| +  c10d_add_test(HashStoreTest.cpp c10d gtest_main gtest)
 | ||||
|  endif() | ||||
|   | ||||
|  if(USE_CUDA) | ||||
|    if(USE_C10D_GLOO) | ||||
| -    c10d_add_test(ProcessGroupGlooTest.cpp c10d c10d_cuda_test gtest_main)
 | ||||
| -    c10d_add_test(ProcessGroupGlooAsyncTest.cpp c10d c10d_cuda_test gtest_main)
 | ||||
| +    c10d_add_test(ProcessGroupGlooTest.cpp c10d c10d_cuda_test gtest_main gtest)
 | ||||
| +    c10d_add_test(ProcessGroupGlooAsyncTest.cpp c10d c10d_cuda_test gtest_main gtest)
 | ||||
|    endif() | ||||
|    if(USE_C10D_NCCL) | ||||
| -    c10d_add_test(ProcessGroupNCCLTest.cpp c10d c10d_cuda_test gtest_main)
 | ||||
| +    c10d_add_test(ProcessGroupNCCLTest.cpp c10d c10d_cuda_test gtest_main gtest)
 | ||||
|      c10d_add_test(ProcessGroupNCCLErrorsTest.cpp c10d c10d_cuda_test | ||||
| -        gtest_main)
 | ||||
| +        gtest_main gtest)
 | ||||
|    endif() | ||||
|  else() | ||||
|    if(USE_C10D_GLOO) | ||||
| -    c10d_add_test(ProcessGroupGlooTest.cpp c10d gtest_main)
 | ||||
| +    c10d_add_test(ProcessGroupGlooTest.cpp c10d gtest_main gtest)
 | ||||
|    endif() | ||||
|  endif() | ||||
|   | ||||
| diff --git a/CMakeLists.txt b/CMakeLists.txt
 | ||||
| index 5ecd2df..24feae3 100644
 | ||||
| --- a/third_party/NNPACK/CMakeLists.txt
 | ||||
| +++ b/third_party/NNPACK/CMakeLists.txt
 | ||||
| @@ -427,8 +427,7 @@ IF(NNPACK_BACKEND STREQUAL "x86-64")
 | ||||
|        FILE(MAKE_DIRECTORY ${obj_dir}) | ||||
|        ADD_CUSTOM_COMMAND( | ||||
|          OUTPUT ${obj} | ||||
| -        COMMAND "PYTHONPATH=${PEACHPY_PYTHONPATH}"
 | ||||
| -          ${PYTHON_EXECUTABLE} -m peachpy.x86_64
 | ||||
| +        COMMAND ${PYTHON_EXECUTABLE} -m peachpy.x86_64
 | ||||
|              -mabi=sysv -g4 -mimage-format=${PEACHPY_IMAGE_FORMAT} | ||||
|              "-I${PROJECT_SOURCE_DIR}/src" "-I${PROJECT_SOURCE_DIR}/src/x86_64-fma" "-I${FP16_SOURCE_DIR}/include" | ||||
|              -o ${obj} "${PROJECT_SOURCE_DIR}/${src}" | ||||
|  | @ -16,3 +16,51 @@ index 422a5240..d4039716 100644 | |||
|  #endif | ||||
|   | ||||
|  #ifdef _MSC_VER | ||||
| 
 | ||||
| Cast destination pointers to avoid a GCC error about memmove writing to | ||||
| a different type. | ||||
| 
 | ||||
| Adapted from this upstream commit: | ||||
| https://github.com/Tencent/rapidjson/commit/fa5963a2f5b231ee2babff771f169ccca22870ed | ||||
| 
 | ||||
| diff --git a/include/rapidjson/document.h b/include/rapidjson/document.h
 | ||||
| --- a/include/rapidjson/document.h
 | ||||
| +++ b/include/rapidjson/document.h
 | ||||
| @@ -1425,7 +1425,7 @@ public:
 | ||||
|          MemberIterator pos = MemberBegin() + (first - MemberBegin()); | ||||
|          for (MemberIterator itr = pos; itr != last; ++itr) | ||||
|              itr->~Member(); | ||||
| -        std::memmove(&*pos, &*last, static_cast<size_t>(MemberEnd() - last) * sizeof(Member));
 | ||||
| +        std::memmove(static_cast<void*>(&*pos), &*last, static_cast<size_t>(MemberEnd() - last) * sizeof(Member));
 | ||||
|          data_.o.size -= static_cast<SizeType>(last - first); | ||||
|          return pos; | ||||
|      } | ||||
| @@ -1628,8 +1628,8 @@ public:
 | ||||
|          RAPIDJSON_ASSERT(last <= End()); | ||||
|          ValueIterator pos = Begin() + (first - Begin()); | ||||
|          for (ValueIterator itr = pos; itr != last; ++itr) | ||||
| -            itr->~GenericValue();       
 | ||||
| -        std::memmove(pos, last, static_cast<size_t>(End() - last) * sizeof(GenericValue));
 | ||||
| +            itr->~GenericValue();
 | ||||
| +        std::memmove(static_cast<void*>(pos), last, static_cast<size_t>(End() - last) * sizeof(GenericValue));
 | ||||
|          data_.a.size -= static_cast<SizeType>(last - first); | ||||
|          return pos; | ||||
|      } | ||||
| @@ -1936,7 +1936,7 @@ private:
 | ||||
|          if (count) { | ||||
|              GenericValue* e = static_cast<GenericValue*>(allocator.Malloc(count * sizeof(GenericValue))); | ||||
|              SetElementsPointer(e); | ||||
| -            std::memcpy(e, values, count * sizeof(GenericValue));
 | ||||
| +            std::memcpy(static_cast<void*>(e), values, count * sizeof(GenericValue));
 | ||||
|          } | ||||
|          else | ||||
|              SetElementsPointer(0); | ||||
| @@ -1949,7 +1949,7 @@ private:
 | ||||
|          if (count) { | ||||
|              Member* m = static_cast<Member*>(allocator.Malloc(count * sizeof(Member))); | ||||
|              SetMembersPointer(m); | ||||
| -            std::memcpy(m, members, count * sizeof(Member));
 | ||||
| +            std::memcpy(static_cast<void*>(m), members, count * sizeof(Member));
 | ||||
|          } | ||||
|          else | ||||
|              SetMembersPointer(0); | ||||
|  |  | |||
							
								
								
									
										51
									
								
								gnu/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								gnu/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,51 @@ | |||
| This cherry-picked patch fixes tests for Go >= 1.15. Restic v0.10 (which | ||||
| includes this patch) requires go module support from the Go build system. | ||||
| Original patch follows. | ||||
| 
 | ||||
| ---
 | ||||
| From 97950ab81a18de06b95384da6d8646fef87c9d97 Mon Sep 17 00:00:00 2001 | ||||
| From: Alexander Neumann <alexander@bumpern.de> | ||||
| Date: Sat, 12 Sep 2020 17:36:44 +0200 | ||||
| Subject: [PATCH] options: Fix test for Go >= 1.15 | ||||
| 
 | ||||
| ---
 | ||||
|  internal/options/options_test.go | 12 +++++++++--- | ||||
|  1 file changed, 9 insertions(+), 3 deletions(-) | ||||
| 
 | ||||
| diff --git a/internal/options/options_test.go b/internal/options/options_test.go
 | ||||
| index de94fc90a1..8d268992a3 100644
 | ||||
| --- a/internal/options/options_test.go
 | ||||
| +++ b/internal/options/options_test.go
 | ||||
| @@ -3,6 +3,7 @@ package options
 | ||||
|  import ( | ||||
|  	"fmt" | ||||
|  	"reflect" | ||||
| +	"regexp"
 | ||||
|  	"testing" | ||||
|  	"time" | ||||
|  ) | ||||
| @@ -199,7 +200,7 @@ var invalidSetTests = []struct {
 | ||||
|  			"timeout": "2134", | ||||
|  		}, | ||||
|  		"ns", | ||||
| -		`time: missing unit in duration 2134`,
 | ||||
| +		`time: missing unit in duration "?2134"?`,
 | ||||
|  	}, | ||||
|  } | ||||
|   | ||||
| @@ -212,8 +213,13 @@ func TestOptionsApplyInvalid(t *testing.T) {
 | ||||
|  				t.Fatalf("expected error %v not found", test.err) | ||||
|  			} | ||||
|   | ||||
| -			if err.Error() != test.err {
 | ||||
| -				t.Fatalf("expected error %q, got %q", test.err, err.Error())
 | ||||
| +			matched, err := regexp.MatchString(test.err, err.Error())
 | ||||
| +			if err != nil {
 | ||||
| +				t.Fatal(err)
 | ||||
| +			}
 | ||||
| +
 | ||||
| +			if !matched {
 | ||||
| +				t.Fatalf("expected error to match %q, got %q", test.err, err.Error())
 | ||||
|  			} | ||||
|  		}) | ||||
|  	} | ||||
							
								
								
									
										52
									
								
								gnu/packages/patches/rocm-comgr-3.1.0-dependencies.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								gnu/packages/patches/rocm-comgr-3.1.0-dependencies.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,52 @@ | |||
| https://github.com/RadeonOpenCompute/ROCm-CompilerSupport/pull/25 | ||||
| 
 | ||||
| From c65cba2e73f9118e128b9ab7e655ee0f8a7798e7 Mon Sep 17 00:00:00 2001 | ||||
| From: Craig Andrews <candrews@integralblue.com> | ||||
| Date: Sun, 1 Mar 2020 19:24:22 -0500 | ||||
| Subject: [PATCH] Link additional required LLVM libraries | ||||
| 
 | ||||
| Without these additional required dependencies, linking fails with errors such as: | ||||
| `undefined reference to llvm::errs()'` | ||||
| ---
 | ||||
|  CMakeLists.txt | 20 ++++++++++++++++++-- | ||||
|  1 file changed, 18 insertions(+), 2 deletions(-) | ||||
| 
 | ||||
| diff --git a/CMakeLists.txt b/CMakeLists.txt
 | ||||
| index 1794a07..c7b852a 100644
 | ||||
| --- a/lib/comgr/CMakeLists.txt
 | ||||
| +++ b/lib/comgr/CMakeLists.txt
 | ||||
| @@ -207,7 +207,11 @@ install(FILES
 | ||||
|    DESTINATION "${AMD_COMGR_PACKAGE_PREFIX}") | ||||
|   | ||||
|  set(CLANG_LIBS | ||||
| -  clangFrontendTool)
 | ||||
| +  clangFrontendTool
 | ||||
| +  clangFrontend
 | ||||
| +  clangBasic
 | ||||
| +  clangDriver
 | ||||
| +  clangSerialization)
 | ||||
|   | ||||
|  set(LLD_LIBS | ||||
|    lldELF | ||||
| @@ -218,8 +222,20 @@ if (LLVM_LINK_LLVM_DYLIB)
 | ||||
|  else() | ||||
|    llvm_map_components_to_libnames(LLVM_LIBS | ||||
|      ${LLVM_TARGETS_TO_BUILD} | ||||
| +    Option
 | ||||
|      DebugInfoDWARF | ||||
| -    Symbolize)
 | ||||
| +    Symbolize
 | ||||
| +    Support
 | ||||
| +    Object
 | ||||
| +    BitWriter
 | ||||
| +    MC
 | ||||
| +    MCParser
 | ||||
| +    MCDisassembler
 | ||||
| +    Core
 | ||||
| +    IRReader
 | ||||
| +    CodeGen
 | ||||
| +    Linker
 | ||||
| +    BinaryFormat)
 | ||||
|  endif() | ||||
|   | ||||
|  target_link_libraries(amd_comgr | ||||
|  | @ -0,0 +1,14 @@ | |||
| Add missing include dirs for ROCclr. | ||||
| 
 | ||||
| --- a/amdocl/CMakeLists.txt	2020-12-05 22:05:55.838529158 +0100
 | ||||
| +++ b/amdocl/CMakeLists.txt	2020-12-05 22:07:35.677524507 +0100
 | ||||
| @@ -23,6 +23,9 @@
 | ||||
|  include_directories(${CMAKE_CURRENT_LIST_DIR}/../khronos) | ||||
|  include_directories(${CMAKE_CURRENT_LIST_DIR}/../khronos/headers) | ||||
|  include_directories(${CMAKE_CURRENT_LIST_DIR}/../khronos/headers/opencl2.2) | ||||
| +include_directories(${ROCclr_DIR}/../../../include)
 | ||||
| +include_directories(${ROCclr_DIR}/../../../include/compiler/lib/include/)
 | ||||
| +include_directories(${ROCclr_DIR}/../../../include/elf/)
 | ||||
|   | ||||
|  if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR | ||||
|     (CMAKE_${COMPILER}_COMPILER_ID MATCHES "Clang")) | ||||
							
								
								
									
										28
									
								
								gnu/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								gnu/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,28 @@ | |||
| Do not build and install clinfo. | ||||
| 
 | ||||
| diff --git a/CMakeLists.txt.orig b/CMakeLists.txt
 | ||||
| index 76847d3..3f62bfe 100644
 | ||||
| --- a/CMakeLists.txt.orig
 | ||||
| +++ b/CMakeLists.txt
 | ||||
| @@ -72,7 +72,7 @@ find_package(ROCclr REQUIRED CONFIG
 | ||||
|   | ||||
|  add_subdirectory(khronos/icd) | ||||
|  add_subdirectory(amdocl) | ||||
| -add_subdirectory(tools/clinfo)
 | ||||
| +#add_subdirectory(tools/clinfo)
 | ||||
|  add_subdirectory(tools/cltrace) | ||||
|  if(BUILD_TESTS) | ||||
|    add_subdirectory(tests/ocltst) | ||||
| @@ -108,9 +108,9 @@ endif()
 | ||||
|  ###--- Packaging ------------------------------------------------------------### | ||||
|   | ||||
|  # MAIN package | ||||
| -install(PROGRAMS $<TARGET_FILE:clinfo>
 | ||||
| -        DESTINATION bin
 | ||||
| -        COMPONENT MAIN)
 | ||||
| +#install(PROGRAMS $<TARGET_FILE:clinfo>
 | ||||
| +#        DESTINATION bin
 | ||||
| +#        COMPONENT MAIN)
 | ||||
|  install(PROGRAMS $<TARGET_FILE:cltrace> | ||||
|          DESTINATION lib | ||||
|          COMPONENT MAIN) | ||||
							
								
								
									
										25
									
								
								gnu/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								gnu/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,25 @@ | |||
| Do not build and install cltrace. | ||||
| 
 | ||||
| diff --git a/CMakeLists.txt.orig b/CMakeLists.txt
 | ||||
| index c449db4..9cff673 100644
 | ||||
| --- a/CMakeLists.txt.orig
 | ||||
| +++ b/CMakeLists.txt
 | ||||
| @@ -73,7 +73,7 @@ find_package(ROCclr REQUIRED CONFIG
 | ||||
|  #add_subdirectory(khronos/icd) | ||||
|  add_subdirectory(amdocl) | ||||
|  #add_subdirectory(tools/clinfo) | ||||
| -add_subdirectory(tools/cltrace)
 | ||||
| +#add_subdirectory(tools/cltrace)
 | ||||
|  if(BUILD_TESTS) | ||||
|    add_subdirectory(tests/ocltst) | ||||
|  endif() | ||||
| @@ -108,9 +108,6 @@ endif()
 | ||||
|  #install(PROGRAMS $<TARGET_FILE:clinfo> | ||||
|  #        DESTINATION bin | ||||
|  #        COMPONENT MAIN) | ||||
| -install(PROGRAMS $<TARGET_FILE:cltrace>
 | ||||
| -        DESTINATION lib
 | ||||
| -        COMPONENT MAIN)
 | ||||
|  install(PROGRAMS $<TARGET_FILE:amdocl64> | ||||
|          DESTINATION lib | ||||
|          COMPONENT MAIN) | ||||
							
								
								
									
										63
									
								
								gnu/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								gnu/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,63 @@ | |||
| Do not build and install libOpenCL. | ||||
| 
 | ||||
| --- b/CMakeLists.txt
 | ||||
| +++ b/CMakeLists.txt
 | ||||
| @@ -70,7 +70,7 @@
 | ||||
|      ${ROCclr_DIR} | ||||
|      ${LIBROCclr_STATIC_DIR}) | ||||
|   | ||||
| -add_subdirectory(khronos/icd)
 | ||||
| +#add_subdirectory(khronos/icd)
 | ||||
|  add_subdirectory(amdocl) | ||||
|  #add_subdirectory(tools/clinfo) | ||||
|  add_subdirectory(tools/cltrace) | ||||
| @@ -93,9 +93,6 @@
 | ||||
|      OUTPUT_VARIABLE OPENCL_VERSION_GITDATE | ||||
|      OUTPUT_STRIP_TRAILING_WHITESPACE) | ||||
|   | ||||
| -get_target_property(OPENCL_LIB_VERSION_MAJOR OpenCL SOVERSION)
 | ||||
| -get_target_property(OPENCL_LIB_VERSION_STRING OpenCL VERSION)
 | ||||
| -
 | ||||
|  find_package(ROCM QUIET CONFIG PATHS /opt/rocm) | ||||
|   | ||||
|  if(ROCM_FOUND) | ||||
| @@ -117,25 +114,6 @@
 | ||||
|  install(PROGRAMS $<TARGET_FILE:amdocl64> | ||||
|          DESTINATION lib | ||||
|          COMPONENT MAIN) | ||||
| -install(PROGRAMS $<TARGET_FILE:OpenCL>
 | ||||
| -        DESTINATION lib
 | ||||
| -        COMPONENT MAIN)
 | ||||
| -install(PROGRAMS $<TARGET_SONAME_FILE:OpenCL>
 | ||||
| -        DESTINATION lib
 | ||||
| -        COMPONENT MAIN)
 | ||||
| -
 | ||||
| -# DEV package
 | ||||
| -install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/khronos/headers/opencl2.2/CL"
 | ||||
| -        DESTINATION include
 | ||||
| -        COMPONENT DEV
 | ||||
| -        USE_SOURCE_PERMISSIONS
 | ||||
| -        PATTERN cl_d3d10.h EXCLUDE
 | ||||
| -        PATTERN cl_d3d11.h EXCLUDE
 | ||||
| -        PATTERN cl_dx9_media_sharing.h EXCLUDE
 | ||||
| -        PATTERN cl_egl.h EXCLUDE)
 | ||||
| -install(PROGRAMS $<TARGET_LINKER_FILE:OpenCL>
 | ||||
| -        DESTINATION lib
 | ||||
| -        COMPONENT DEV)
 | ||||
|   | ||||
|  ############################# | ||||
|  # Packaging steps | ||||
| --- a/khronos/icd/CMakeLists.txt	2020-06-07 16:05:32.425022904 +0200
 | ||||
| +++ b/khronos/icd/CMakeLists.txt	2020-06-07 16:06:03.273022786 +0200
 | ||||
| @@ -132,7 +132,7 @@
 | ||||
|      add_subdirectory (test) | ||||
|  endif() | ||||
|   | ||||
| -install (TARGETS OpenCL
 | ||||
| -    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 | ||||
| -    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
 | ||||
| -    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
 | ||||
| +#install (TARGETS OpenCL
 | ||||
| +#    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 | ||||
| +#    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
 | ||||
| +#    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
 | ||||
|  | @ -1,55 +0,0 @@ | |||
| From 454ccd986b61799908a6898a55d0480911f15306 Mon Sep 17 00:00:00 2001 | ||||
| From: Ralph Boehme <slow@samba.org> | ||||
| Date: Mon, 21 Sep 2020 07:48:43 +0200 | ||||
| Subject: [PATCH] s3: fix fcntl waf configure check | ||||
| 
 | ||||
| RN: Fix fcntl waf configure check | ||||
| BUG: https://bugzilla.samba.org/show_bug.cgi?id=14503 | ||||
| 
 | ||||
| Signed-off-by: Ralph Boehme <slow@samba.org> | ||||
| Reviewed-by: Volker Lendecke <vl@samba.org> | ||||
| 
 | ||||
| Autobuild-User(master): Volker Lendecke <vl@samba.org> | ||||
| Autobuild-Date(master): Mon Sep 21 07:26:54 UTC 2020 on sn-devel-184 | ||||
| ---
 | ||||
|  source3/wscript | 10 +++++----- | ||||
|  1 file changed, 5 insertions(+), 5 deletions(-) | ||||
| 
 | ||||
| diff --git a/source3/wscript b/source3/wscript
 | ||||
| index 840ed430c0f..d3ef346eecd 100644
 | ||||
| --- a/source3/wscript
 | ||||
| +++ b/source3/wscript
 | ||||
| @@ -1244,7 +1244,7 @@ err:
 | ||||
|   | ||||
|  int main(void) | ||||
|  { | ||||
| -        uint64_t *hint, get_hint;
 | ||||
| +        uint64_t hint, get_hint;
 | ||||
|          int fd; | ||||
|   | ||||
|          fd = open(DATA, O_RDONLY | O_CREAT | O_EXCL); | ||||
| @@ -1252,8 +1252,8 @@ int main(void)
 | ||||
|              goto err; | ||||
|          } | ||||
|   | ||||
| -        *hint = RWH_WRITE_LIFE_SHORT;
 | ||||
| -        int ret = fcntl(fd, F_SET_RW_HINT, hint);
 | ||||
| +        hint = RWH_WRITE_LIFE_SHORT;
 | ||||
| +        int ret = fcntl(fd, F_SET_RW_HINT, &hint);
 | ||||
|          if (ret == -1) { | ||||
|              goto err; | ||||
|          } | ||||
| @@ -1267,8 +1267,8 @@ int main(void)
 | ||||
|              goto err; | ||||
|          } | ||||
|   | ||||
| -        *hint = RWH_WRITE_LIFE_EXTREME;
 | ||||
| -        ret = fcntl(fd, F_SET_FILE_RW_HINT, hint);
 | ||||
| +        hint = RWH_WRITE_LIFE_EXTREME;
 | ||||
| +        ret = fcntl(fd, F_SET_FILE_RW_HINT, &hint);
 | ||||
|          if (ret == -1) { | ||||
|              goto err; | ||||
|          } | ||||
| -- 
 | ||||
| 2.28.0 | ||||
| 
 | ||||
|  | @ -30,8 +30,8 @@ Index: u-boot/configs/qemu-riscv64_smode_defconfig | |||
| +CONFIG_PREBOOT="setenv fdt_addr ${fdtcontroladdr}; fdt addr ${fdtcontroladdr};"
 | ||||
| Index: u-boot/configs/sifive_fu540_defconfig
 | ||||
| ===================================================================
 | ||||
| --- u-boot.orig/configs/sifive_fu540_defconfig
 | ||||
| +++ u-boot/configs/sifive_fu540_defconfig
 | ||||
| --- u-boot.orig/configs/sifive_unleashed_defconfig
 | ||||
| +++ u-boot/configs/sifive_unleashed_defconfig
 | ||||
| @@ -27,3 +27,5 @@ CONFIG_SPL_DM_SEQ_ALIAS=y
 | ||||
|  CONFIG_SPL_CLK=y | ||||
|  CONFIG_DM_MTD=y | ||||
|  |  | |||
|  | @ -0,0 +1,16 @@ | |||
| Description: prevent relocating initrd & fdt, that results in failure to boot | ||||
| Author: Heinrich Schuchardt (xypron) | ||||
| Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/u-boot/+bug/1937246 | ||||
| Index: u-boot-2021.07~rc4+dfsg/include/configs/sifive-unmatched.h
 | ||||
| ===================================================================
 | ||||
| --- u-boot-2021.07~rc4+dfsg.orig/include/configs/sifive-unmatched.h
 | ||||
| +++ u-boot-2021.07~rc4+dfsg/include/configs/sifive-unmatched.h
 | ||||
| @@ -62,6 +62,8 @@
 | ||||
|  	"name=system,size=-,bootable,type=${type_guid_gpt_system};" | ||||
|   | ||||
|  #define CONFIG_EXTRA_ENV_SETTINGS \ | ||||
| +	"fdt_high=0xffffffffffffffff\0" \
 | ||||
| +	"initrd_high=0xffffffffffffffff\0" \
 | ||||
|  	"kernel_addr_r=0x84000000\0" \ | ||||
|  	"fdt_addr_r=0x88000000\0" \ | ||||
|  	"scriptaddr=0x88100000\0" \ | ||||
|  | @ -486,6 +486,24 @@ photographic equipment.") | |||
|                            "-DBUILD_TESTING=On") | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'libOpenCL-path | ||||
|            (lambda* (#:key inputs #:allow-other-keys) | ||||
|              ;; Statically link to libOpenCL. | ||||
|              (substitute* "./src/common/dlopencl.c" | ||||
|                (("\"libOpenCL\"") | ||||
|                 (string-append "\"" (assoc-ref inputs "ocl-icd") "/lib/libOpenCL.so\""))) | ||||
|              #t)) | ||||
|          ;; The use of inline is wrong and darktable cannot compile its kernels | ||||
|          ;; with ROCm. See upstream commit | ||||
|          ;; https://github.com/darktable-org/darktable/commit/f0d8710f5ef34eb7e33b4064e022ebf3057b9e53 | ||||
|          (add-after 'unpack 'opencl-inline | ||||
|            (lambda* (#:key inputs #:allow-other-keys) | ||||
|              ;; This is a feature of OpenCL 1.2 and later. | ||||
|              (substitute* "data/kernels/CMakeLists.txt" | ||||
|                (("CL1\\.1") "CL1.2")) | ||||
|              (substitute* (find-files "data/kernels" "\\.(cl|h)$") | ||||
|                (("inline") "static inline")) | ||||
|              #t)) | ||||
|          (add-before 'configure 'prepare-build-environment | ||||
|            (lambda* (#:key inputs #:allow-other-keys) | ||||
|              ;; Rawspeed fails to build with GCC due to OpenMP error: | ||||
|  | @ -516,11 +534,7 @@ photographic equipment.") | |||
|                ;; For GtkFileChooserDialog. | ||||
|                `("GSETTINGS_SCHEMA_DIR" = | ||||
|                  (,(string-append (assoc-ref inputs "gtk+") | ||||
|                                   "/share/glib-2.0/schemas"))) | ||||
|                ;; For libOpenCL.so. | ||||
|                `("LD_LIBRARY_PATH" = | ||||
|                  (,(string-append (assoc-ref inputs "ocl-icd") | ||||
|                                   "/lib")))) | ||||
|                                   "/share/glib-2.0/schemas")))) | ||||
|              #t))))) | ||||
|     (native-inputs | ||||
|      `(("clang" ,clang-11) | ||||
|  | @ -769,7 +783,7 @@ a complete panorama and stitch any series of overlapping pictures.") | |||
|     (version "5.8") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "http://rawtherapee.com/shared/source/" | ||||
|               (uri (string-append "https://rawtherapee.com/shared/source/" | ||||
|                                   "rawtherapee-" version ".tar.xz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|  | @ -809,7 +823,7 @@ a complete panorama and stitch any series of overlapping pictures.") | |||
|        ("libsigc++" ,libsigc++) | ||||
|        ("libtiff" ,libtiff) | ||||
|        ("zlib" ,zlib))) | ||||
|     (home-page "http://rawtherapee.com") | ||||
|     (home-page "https://rawtherapee.com") | ||||
|     (synopsis "Raw image developing and processing") | ||||
|     (description "RawTherapee is a raw image processing suite.  It comprises a | ||||
| subset of image editing operations specifically aimed at non-destructive raw | ||||
|  |  | |||
|  | @ -2,6 +2,7 @@ | |||
| ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> | ||||
| ;;; Copyright © 2013 Mark H Weaver <mhw@netris.org> | ||||
| ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> | ||||
| ;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -42,7 +43,7 @@ | |||
| (define-public gprolog | ||||
|   (package | ||||
|     (name "gprolog") | ||||
|     (version "1.4.5") | ||||
|     (version "1.5.0") | ||||
|     (source | ||||
|       (origin | ||||
|         (method url-fetch) | ||||
|  | @ -53,7 +54,7 @@ | |||
|                                   ".tar.gz"))) | ||||
|         (sha256 | ||||
|          (base32 | ||||
|           "0z4cc42n3k6i35b8mr816iwsvrpxshw6d7dgz6s2h1hy0l7g1p5z")))) | ||||
|           "009ca4wn2q6xdmb0js0vz647cw5ygsqyyqc9svmjgahg7js441k7")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:configure-flags | ||||
|  | @ -61,13 +62,9 @@ | |||
|               "--with-install-dir=" %output "/share/gprolog")) | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-before 'configure 'change-dir-n-fix-shells | ||||
|          (add-before 'configure 'change-dir | ||||
|            (lambda _ | ||||
|              (chdir "src") | ||||
|              (substitute* "configure" | ||||
|                (("-/bin/sh")  (string-append "-"  (which "sh"))) | ||||
|                (("= /bin/sh") (string-append "= " (which "sh")))) | ||||
|              #t))))) | ||||
|              (chdir "src")))))) | ||||
|     (home-page "https://www.gnu.org/software/gprolog/") | ||||
|     (synopsis "Prolog compiler") | ||||
|     (description | ||||
|  |  | |||
|  | @ -116,7 +116,7 @@ are useful when writing automated tests in Python.") | |||
| (define-public python-coveralls | ||||
|   (package | ||||
|     (name "python-coveralls") | ||||
|     (version "3.1.0") | ||||
|     (version "3.2.0") | ||||
|     (home-page "https://github.com/coveralls-clients/coveralls-python") | ||||
|     (source | ||||
|      (origin | ||||
|  | @ -126,7 +126,7 @@ are useful when writing automated tests in Python.") | |||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1rpdv7rhs4xy6q4s63krrfhwihli9vla0qsw64vls0naail9yjn3")))) | ||||
|          "1915ab77nfb1rfw4i2ps0zy19wpf20lwxn81qxxbwyd2gy7m0fn8")))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|      '(#:phases (modify-phases %standard-phases | ||||
|  |  | |||
|  | @ -138,9 +138,6 @@ on the Blowfish password hashing algorithm, as described in | |||
| Password Scheme\"} by Niels Provos and David Mazieres.") | ||||
|     (license license:asl2.0))) | ||||
| 
 | ||||
| (define-public python2-bcrypt | ||||
|   (package-with-python2 python-bcrypt)) | ||||
| 
 | ||||
| (define-public python-passlib | ||||
|   (package | ||||
|     (name "python-passlib") | ||||
|  | @ -260,9 +257,6 @@ extension for low level cryptography (PyCrypto), Paramiko itself is a pure | |||
| Python interface around SSH networking concepts.") | ||||
|     (license license:lgpl2.1+))) | ||||
| 
 | ||||
| (define-public python2-paramiko | ||||
|   (package-with-python2 python-paramiko)) | ||||
| 
 | ||||
| (define-public python-ecdsa | ||||
|   (package | ||||
|     (name "python-ecdsa") | ||||
|  | @ -839,9 +833,6 @@ Networking and Cryptography library.  These libraries have a stated goal | |||
| of improving usability, security and speed.") | ||||
|     (license license:asl2.0))) | ||||
| 
 | ||||
| (define-public python2-pynacl | ||||
|   (package-with-python2 python-pynacl)) | ||||
| 
 | ||||
| (define-public python-blurhash | ||||
|   (package | ||||
|     (name "python-blurhash") | ||||
|  |  | |||
|  | @ -282,14 +282,14 @@ using @url{https://github.com/saghul/pycares,pycares}.") | |||
| (define-public python-aiorpcx | ||||
|   (package | ||||
|     (name "python-aiorpcx") | ||||
|     (version "0.18.3") | ||||
|     (version "0.22.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (pypi-uri "aiorpcX" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0k545hc7wl6sh1svydzbv6x7sx5pig2pqkl3yxs9riwmvzawx9xp")))) | ||||
|          "0lx54bcinp44fmr8q4bbffsqbkg8kdcwykf9i5jj0bj3sfzgf9k0")))) | ||||
|     (build-system python-build-system) | ||||
|     (propagated-inputs | ||||
|      `(("python-attrs" ,python-attrs))) | ||||
|  | @ -304,6 +304,18 @@ The package includes a module with full coverage of JSON RPC versions 1.0 and | |||
| comes with a SOCKS proxy client.") | ||||
|     (license (list license:expat license:bsd-2)))) | ||||
| 
 | ||||
| (define-public python-aiorpcx-0.18 | ||||
|   (package | ||||
|     (inherit python-aiorpcx) | ||||
|     (version "0.18.7") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (pypi-uri "aiorpcX" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1rswrspv27x33xa5bnhrkjqzhv0sknv5kd7pl1vidw9d2z4rx2l0")))))) | ||||
| 
 | ||||
| (define-public python-asgiref | ||||
|   (package | ||||
|     (name "python-asgiref") | ||||
|  | @ -6142,3 +6154,43 @@ your code non-blocking and speedy.") | |||
|      "Socks is a library providing core proxy (SOCKS4, SOCKS5, HTTP tunneling) | ||||
|  functionality.") | ||||
|     (license license:asl2.0))) | ||||
| 
 | ||||
| (define-public python-azure-nspkg | ||||
|   (package | ||||
|     (name "python-azure-nspkg") | ||||
|     (version "3.0.2") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (pypi-uri "azure-nspkg" version ".zip")) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1l4xwdh0fcnvrv0mzig4g2kgqkfbsy64zjm1ggc6grk3mykcxlz7")))) | ||||
|     (build-system python-build-system) | ||||
|     (native-inputs `(("unzip" ,unzip))) | ||||
|     (home-page "https://github.com/Azure/azure-sdk-for-python") | ||||
|     (synopsis "Azure namespace internals") | ||||
|     (description | ||||
|      "This package is an internal Azure namespace package.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public python-azure-storage-nspkg | ||||
|   (package | ||||
|     (name "python-azure-storage-nspkg") | ||||
|     (version "3.1.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (pypi-uri "azure-storage-nspkg" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "049qcmgshz7dj9yaqma0fwcgbxwddgwyfcw4gmv45xfmaa3bwfvg")))) | ||||
|     (build-system python-build-system) | ||||
|     (propagated-inputs | ||||
|      `(("python-azure-nspkg" ,python-azure-nspkg))) | ||||
|     (home-page "https://github.com/Azure/azure-storage-python") | ||||
|     (synopsis "Microsoft Azure Storage Namespace package") | ||||
|     (description | ||||
|      "This project provides a client library in Python that makes it easy to | ||||
| communicate with Microsoft Azure Storage services.") | ||||
|     (license license:expat))) | ||||
|  |  | |||
|  | @ -8516,13 +8516,13 @@ interfaces in an easy and portable manner.") | |||
| (define-public python-networkx | ||||
|   (package | ||||
|     (name "python-networkx") | ||||
|     (version "2.5.1") | ||||
|     (version "2.6.2") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (pypi-uri "networkx" version)) | ||||
|        (sha256 | ||||
|         (base32 "0ni3pdisdr8vfp5m9sw8jzr7jwzgqqmc9hq327vrf4n4ra2xb70h")))) | ||||
|         (base32 "1fqrq7gc0nn4rd4zqibw96cap75vb5nlixapkajwawp71jaz21i3")))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|      '(#:phases (modify-phases %standard-phases | ||||
|  | @ -17377,39 +17377,6 @@ applications in seconds while maintaining all the flexibility.") | |||
| older Pythons because it was not part of the standard library back then.") | ||||
|     (license license:psfl))) | ||||
| 
 | ||||
| (define-public python-fudge | ||||
|   (package | ||||
|     (name "python-fudge") | ||||
|     ;; 0.9.6 is the latest version suitable for testing the "fabric" Python 2 | ||||
|     ;; package, which is currently the only use of this package. | ||||
|     (version "0.9.6") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (pypi-uri "fudge" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "185ia3vr3qk4f2s1a9hdxb8ci4qc0x0xidrad96pywg8j930qs9l")))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #f))     ;XXX: Tests require the NoseJS Python package. | ||||
|     (home-page "https://github.com/fudge-py/fudge") | ||||
|     (synopsis "Replace real objects with fakes/mocks/stubs while testing") | ||||
|     (description | ||||
|      "Fudge is a Python module for using fake objects (mocks and stubs) to | ||||
| test real ones. | ||||
| 
 | ||||
| In readable Python code, you declare the methods available on your fake object | ||||
| and how they should be called.  Then you inject that into your application and | ||||
| start testing.  This declarative approach means you don’t have to record and | ||||
| playback actions and you don’t have to inspect your fakes after running code. | ||||
| If the fake object was used incorrectly then you’ll see an informative | ||||
| exception message with a traceback that points to the culprit.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public python2-fudge | ||||
|   (package-with-python2 python-fudge)) | ||||
| 
 | ||||
| (define-public python-mwclient | ||||
|   (package | ||||
|     (name "python-mwclient") | ||||
|  | @ -26041,3 +26008,77 @@ enabling you to write CommonMark inside of Docutils & Sphinx projects.") | |||
| Qhull} for the computation of the convex hull, Delaunay triangulation, and | ||||
| Voronoi diagram.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public python-opcodes | ||||
|   ;; There are no tags in this repo, but 'opcodes/__init__.py' specifies a | ||||
|   ;; version number, which is what we use here. | ||||
|   (let ((commit "0f7c7d63f5e13ce5a89d9acc3934f1b6e247ec1f")) | ||||
|     (package | ||||
|       (name "python-opcodes") | ||||
|       (version "0.3.14")                          ;from 'opcodes/__init__.py' | ||||
|       (home-page "https://github.com/Maratyszcza/Opcodes") | ||||
|       (source (origin | ||||
|                 (method git-fetch) | ||||
|                 (uri (git-reference (url home-page) (commit commit))) | ||||
|                 (file-name (git-file-name name version)) | ||||
|                 (sha256 | ||||
|                  (base32 | ||||
|                   "1fvxkr83gfl9f0ikd2wl2lzazzya2qz1hk4yn2a0pq742brbwpys")))) | ||||
|       (build-system python-build-system) | ||||
|       (synopsis "Database of processor instructions and opcodes") | ||||
|       (description | ||||
|        "This project documents instruction sets in a format convenient for | ||||
| tools development.  An instruction set is represented by three files: | ||||
| 
 | ||||
| @itemize | ||||
| @item an XML file that describes instructions; | ||||
| @item an XSD file that describes the structure of the XML file; | ||||
| @item a Python module that reads the XML file and represents it as a set of | ||||
| Python objects; | ||||
| @end itemize | ||||
| 
 | ||||
| It currently provides descriptions for most user-mode x86, x86_64, and k1om | ||||
| instructions up to AVX-512 and SHA (including 3dnow!+, XOP, FMA3, FMA4, TBM | ||||
| and BMI2).") | ||||
|       (license license:bsd-2)))) | ||||
| 
 | ||||
| (define-public python-peachpy | ||||
|   ;; There is no tag in this repo. | ||||
|   (let ((commit "906d578266dc7188bf61e4cdbc9f8ea7d69edec0") | ||||
|         (version "0.2.0")                         ;from 'peachpy/__init__.py' | ||||
|         (revision "1")) | ||||
|     (package | ||||
|       (name "python-peachpy") | ||||
|       (version (git-version version revision commit)) | ||||
|       (home-page "https://github.com/Maratyszcza/PeachPy") | ||||
|       (source (origin | ||||
|                 (method git-fetch) | ||||
|                 (uri (git-reference (url home-page) (commit commit))) | ||||
|                 (file-name (git-file-name name version)) | ||||
|                 (sha256 | ||||
|                  (base32 | ||||
|                   "1yy62k3cjr6556nbp651w6v4hzl7kz4y75wy2dfqgndgbnixskx2")))) | ||||
|       (build-system python-build-system) | ||||
|       (arguments | ||||
|        '(#:phases (modify-phases %standard-phases | ||||
|                     (replace 'check | ||||
|                       (lambda* (#:key tests? #:allow-other-keys) | ||||
|                         (when tests? | ||||
|                           (invoke "python" "setup.py" "nosetests"))))))) | ||||
|       (native-inputs | ||||
|        `(("python-nose" ,python-nose) | ||||
|          ("python-rednose" ,python-rednose))) | ||||
|       (propagated-inputs | ||||
|        `(("python-six" ,python-six) | ||||
|          ("python-opcodes" ,python-opcodes))) | ||||
|       (synopsis "Efficient assembly code generation in Python") | ||||
|       (description | ||||
|        "PeachPy is a Python framework for writing high-performance assembly kernels. | ||||
| PeachPy aims to simplify writing optimized assembly kernels while preserving | ||||
| all optimization opportunities of traditional assembly. | ||||
| 
 | ||||
| PeachPy can generate ELF, MS-COFF, Mach-O object files, and assembly listings | ||||
| for the Go language tool chain; it adapts to different calling conventions and | ||||
| application binary interfaces (ABIs); it takes care of register allocation; it | ||||
| supports x86_64 instructions up to AVX-512 and SHA.") | ||||
|       (license license:bsd-2)))) | ||||
|  |  | |||
|  | @ -748,15 +748,14 @@ ease from the desktop to a microcontroller or embedded system.") | |||
| (define-public pypy3 | ||||
|   (package | ||||
|     (name "pypy3") | ||||
|     (version "7.3.1") | ||||
|     (version "7.3.5") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "https://bitbucket.org/pypy/pypy/downloads/" ; | ||||
|                                   "pypy3.6-v" version "-src.tar.bz2")) | ||||
|               (uri (string-append "https://downloads.python.org/pypy/" | ||||
|                                   "pypy3.7-v" version "-src.tar.bz2")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "10zsk8jby8j6visk5mzikpb1cidvz27qq4pfpa26jv53klic6b0c")) | ||||
|               (patches (search-patches "pypy3-7.3.1-fix-tests.patch")))) | ||||
|                 "18lrdmpcczlbk3cfarkgwqdmilrybz56i1dafk8dkjlyk90gw86r")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (native-inputs | ||||
|      `(("python-2" ,python-2) | ||||
|  | @ -778,10 +777,9 @@ ease from the desktop to a microcontroller or embedded system.") | |||
|        ("tcl" ,tcl) | ||||
|        ("tk" ,tk) | ||||
|        ("glibc" ,glibc) | ||||
|        ("bash-minimal" ,bash-minimal)   ; Used as /bin/sh | ||||
|        ("xz" ,xz)))                     ; liblzma | ||||
|     (arguments | ||||
|      `(#:tests? #f     ;FIXME: Disabled for now, there are many tests failing. | ||||
|      `(#:tests? #f                     ;FIXME: 43 out of 364 tests are failing | ||||
|        #:modules ((ice-9 ftw) (ice-9 match) | ||||
|                   (guix build utils) (guix build gnu-build-system)) | ||||
|        #:phases (modify-phases %standard-phases | ||||
|  | @ -810,6 +808,12 @@ ease from the desktop to a microcontroller or embedded system.") | |||
|                       (substitute* '("lib_pypy/_curses_build.py") | ||||
|                         ;; Find curses | ||||
|                         (("/usr/local") (assoc-ref inputs "ncurses"))) | ||||
|                       (substitute* '("lib_pypy/_dbm.py") | ||||
|                         ;; Use gdbm compat library, so we don’t need to pull | ||||
|                         ;; in bdb. | ||||
|                         (("ctypes.util.find_library\\('db'\\)") | ||||
|                          (format #f "'~a/lib/libgdbm_compat.so'" | ||||
|                                  (assoc-ref inputs "gdbm")))) | ||||
|                       (substitute* '("lib_pypy/_sqlite3_build.py") | ||||
|                         ;; Always use search paths | ||||
|                         (("sys\\.platform\\.startswith\\('freebsd'\\)") "True") | ||||
|  | @ -825,8 +829,7 @@ ease from the desktop to a microcontroller or embedded system.") | |||
|                          (search-input-file inputs "/bin/sh"))) | ||||
|                       (substitute* '("lib-python/3/distutils/unixccompiler.py") | ||||
|                         ;; gcc-toolchain does not provide symlink cc -> gcc | ||||
|                         (("\"cc\"") "\"gcc\"")) | ||||
|                       #t)) | ||||
|                         (("\"cc\"") "\"gcc\"")))) | ||||
|                   (add-after | ||||
|                       'unpack 'set-source-file-times-to-1980 | ||||
|                     ;; copied from python package, required by zip testcase | ||||
|  | @ -834,8 +837,7 @@ ease from the desktop to a microcontroller or embedded system.") | |||
|                       (let ((circa-1980 (* 10 366 24 60 60))) | ||||
|                         (ftw "." (lambda (file stat flag) | ||||
|                                    (utime file circa-1980 circa-1980) | ||||
|                                    #t)) | ||||
|                         #t))) | ||||
|                                    #t))))) | ||||
|                   (replace 'build | ||||
|                     (lambda* (#:key inputs #:allow-other-keys) | ||||
|                       (with-directory-excursion "pypy/goal" | ||||
|  | @ -845,7 +847,8 @@ ease from the desktop to a microcontroller or embedded system.") | |||
|                                 (string-append "--make-jobs=" | ||||
|                                                (number->string (parallel-job-count))) | ||||
|                                 "-Ojit" | ||||
|                                 "targetpypystandalone")) | ||||
|                                 "targetpypystandalone" | ||||
|                                 "--allworkingmodules")) | ||||
|                       ;; Build c modules and package everything, so tests work. | ||||
|                       (with-directory-excursion "pypy/tool/release" | ||||
|                         (invoke "python2" "package.py" | ||||
|  | @ -864,44 +867,45 @@ ease from the desktop to a microcontroller or embedded system.") | |||
|                              "pypy/test_all.py" | ||||
|                              "--pypy=pypy/tool/release/pypy-dist/bin/pypy3" | ||||
|                              "lib-python")) | ||||
|                           (format #t "test suite not run~%")) | ||||
|                       #t)) | ||||
|                           (format #t "test suite not run~%")))) | ||||
|                   (replace 'install | ||||
|                     (lambda* (#:key inputs outputs #:allow-other-keys) | ||||
|                       (with-directory-excursion "pypy/tool/release" | ||||
|                         ;; Delete test data. | ||||
|                         (for-each | ||||
|                          (lambda (x) | ||||
|                            (delete-file-recursively (string-append | ||||
|                                                      "pypy-dist/lib-python/3/" x))) | ||||
|                          '("tkinter/test" | ||||
|                            "test" | ||||
|                            "sqlite3/test" | ||||
|                            "lib2to3/tests" | ||||
|                            "idlelib/idle_test" | ||||
|                            "distutils/tests" | ||||
|                            "ctypes/test" | ||||
|                            "unittest/test")) | ||||
|                         ;; Patch shebang referencing python2 | ||||
|                         (substitute* '("pypy-dist/lib-python/3/cgi.py" | ||||
|                                        "pypy-dist/lib-python/3/encodings/rot_13.py") | ||||
|                           (("#!.+/bin/python") | ||||
|                            (string-append "#!" (assoc-ref outputs "out") "/bin/pypy3"))) | ||||
|                         (with-fluids ((%default-port-encoding "ISO-8859-1")) | ||||
|                           (substitute* '("pypy-dist/lib_pypy/_md5.py" | ||||
|                                          "pypy-dist/lib_pypy/_sha1.py") | ||||
|                             (("#!.+/bin/python") | ||||
|                              (string-append "#!" (assoc-ref outputs "out") "/bin/pypy3")))) | ||||
|                         (copy-recursively "pypy-dist" (assoc-ref outputs "out"))) | ||||
|                       #t))))) | ||||
|                       (let* ((out (assoc-ref outputs "out")) | ||||
|                              (bin-pypy3 (string-append out "/bin/pypy3")) | ||||
|                              (shebang-match-python "#!.+/bin/python") | ||||
|                              (shebang-pypy3 (string-append "#!" bin-pypy3)) | ||||
|                              (dist-dir "pypy/tool/release/pypy-dist")) | ||||
|                         (with-directory-excursion dist-dir | ||||
|                           ;; Delete test data. | ||||
|                           (for-each | ||||
|                            (lambda (x) | ||||
|                              (delete-file-recursively (string-append | ||||
|                                                        "lib-python/3/" x))) | ||||
|                            '("tkinter/test" | ||||
|                              "test" | ||||
|                              "sqlite3/test" | ||||
|                              "lib2to3/tests" | ||||
|                              "idlelib/idle_test" | ||||
|                              "distutils/tests" | ||||
|                              "ctypes/test" | ||||
|                              "unittest/test")) | ||||
|                           ;; Patch shebang referencing python2 | ||||
|                           (substitute* '("lib-python/3/cgi.py" | ||||
|                                          "lib-python/3/encodings/rot_13.py") | ||||
|                             ((shebang-match-python) shebang-pypy3)) | ||||
|                           (with-fluids ((%default-port-encoding "ISO-8859-1")) | ||||
|                             (substitute* '("lib_pypy/_md5.py" | ||||
|                                            "lib_pypy/_sha1.py") | ||||
|                               ((shebang-match-python) shebang-pypy3)))) | ||||
|                         (copy-recursively dist-dir out))))))) | ||||
|     (home-page "https://www.pypy.org/") | ||||
|     (synopsis "Python implementation with just-in-time compilation") | ||||
|     (description "PyPy is a faster, alternative implementation of the Python | ||||
| programming language employing a just-in-time compiler.  It supports most | ||||
| Python code natively, including C extensions.") | ||||
|     (license (list license:expat        ; pypy itself; _pytest/ | ||||
|                    license:psfl ; python standard library in lib-python/ | ||||
|                    license:asl2.0 ; dotviewer/font/ and some of lib-python/ | ||||
|     (license (list license:expat     ; pypy itself; _pytest/ | ||||
|                    license:psfl      ; python standard library in lib-python/ | ||||
|                    license:asl2.0    ; dotviewer/font/ and some of lib-python/ | ||||
|                    license:gpl3+ ; ./rpython/rlib/rvmprof/src/shared/libbacktrace/dwarf2.* | ||||
|                    license:bsd-3 ; lib_pypy/cffi/_pycparser/ply/ | ||||
|                    (license:non-copyleft | ||||
|  |  | |||
|  | @ -872,7 +872,7 @@ using GNU Radio and the Qt GUI toolkit.") | |||
| (define-public fldigi | ||||
|   (package | ||||
|     (name "fldigi") | ||||
|     (version "4.1.19") | ||||
|     (version "4.1.20") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -881,7 +881,7 @@ using GNU Radio and the Qt GUI toolkit.") | |||
|              (commit (string-append "v" version)))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "08rmc7vb2irb67g3sry7md653n9ac0x0b44az729lj6sljqvw3bv")))) | ||||
|         (base32 "0y43241s3p8qzn7x6x28v5v2bf934riznj14bb7m6k6vgd849qzl")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (native-inputs | ||||
|      `(("autoconf" ,autoconf) | ||||
|  |  | |||
							
								
								
									
										365
									
								
								gnu/packages/rocm.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										365
									
								
								gnu/packages/rocm.scm
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,365 @@ | |||
| ;;; | ||||
| ;;; Copyright © 2021 Lars-Dominik Braun <lars@6xq.net> | ||||
| ;;; | ||||
| ;;; This program 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. | ||||
| ;;; | ||||
| ;;; This program 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 this program.  If not, see <http://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| (define-module (gnu packages rocm) | ||||
|   #:use-module ((guix licenses) #:prefix license:) | ||||
|   #:use-module (guix packages) | ||||
|   #:use-module (guix download) | ||||
|   #:use-module (guix utils) | ||||
|   #:use-module (guix git-download) | ||||
|   #:use-module (guix build-system cmake) | ||||
|   #:use-module (gnu packages) | ||||
|   #:use-module (gnu packages elf) | ||||
|   #:use-module (gnu packages gl) | ||||
|   #:use-module (gnu packages linux) | ||||
|   #:use-module (gnu packages llvm) | ||||
|   #:use-module (gnu packages opencl) | ||||
|   #:use-module (gnu packages version-control) | ||||
|   #:use-module (gnu packages vim)) | ||||
| 
 | ||||
| ;; The components are tightly integrated and can only be upgraded as a unit. If | ||||
| ;; you want to upgrade ROCm, bump this version number and update hashes below. | ||||
| (define %rocm-version "4.3.0") | ||||
| 
 | ||||
| (define-public rocm-cmake | ||||
|   (package | ||||
|     (name "rocm-cmake") | ||||
|     (version %rocm-version) | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url "https://github.com/RadeonOpenCompute/rocm-cmake.git") | ||||
|                     (commit (string-append "rocm-" version)))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0sic2zxmzl2pb2865vvq55mbpcr8pby8v19pjdlm08pypqw5h6h6")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments `(#:tests? #f)) ; Tests try to use git commit | ||||
|     (native-inputs `(("git" ,git))) | ||||
|     (home-page "https://github.com/RadeonOpenCompute/rocm-cmake") | ||||
|     (synopsis "ROCm cmake modules") | ||||
|     (description "ROCm cmake modules provides cmake modules for common build | ||||
| tasks needed for the ROCM software stack.") | ||||
|     (license license:ncsa))) | ||||
| 
 | ||||
| (define-public llvm-for-rocm | ||||
|   (hidden-package | ||||
|    (package | ||||
|      ;; Actually based on LLVM 13 as of v4.3, but llvm-12 works just fine. | ||||
|      (inherit llvm-12) | ||||
|      (name "llvm-for-rocm") | ||||
|      (version %rocm-version) | ||||
|      (source (origin | ||||
|                (method git-fetch) | ||||
|                (uri (git-reference | ||||
|                      (url "https://github.com/RadeonOpenCompute/llvm-project.git") | ||||
|                      (commit (string-append "rocm-" version)))) | ||||
|                (file-name (git-file-name name version)) | ||||
|                (sha256 | ||||
|                 (base32 | ||||
|                  "0p75nr1qpmy6crymdax5hm40wkimman4lnglz4x5cnbiqindya7s")) | ||||
|                (patches | ||||
|                 (search-patches "llvm-roc-4.2.0-add_Object.patch" | ||||
|                                 "llvm-roc-3.0.0-add_libraries.patch" | ||||
|                                 "llvm-roc-4.0.0-remove-isystem-usr-include.patch")))) | ||||
|      (arguments | ||||
|       (substitute-keyword-arguments (package-arguments llvm-12) | ||||
|         ((#:phases phases '%standard-phases) | ||||
|          `(modify-phases ,phases | ||||
|             (add-after 'unpack 'chdir | ||||
|               (lambda _ | ||||
|                 (chdir "llvm"))))) | ||||
|         ((#:configure-flags flags) | ||||
|          ''("-DLLVM_ENABLE_PROJECTS=llvm;clang;lld" | ||||
|             "-DLLVM_TARGETS_TO_BUILD=AMDGPU;X86" | ||||
|             "-DCMAKE_SKIP_BUILD_RPATH=FALSE" | ||||
|             "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE" | ||||
|             "-DBUILD_SHARED_LIBS:BOOL=TRUE" | ||||
|             "-DLLVM_VERSION_SUFFIX="))))))) | ||||
| 
 | ||||
| (define-public rocm-device-libs | ||||
|   (package | ||||
|     (name "rocm-device-libs") | ||||
|     (version %rocm-version) | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url "https://github.com/RadeonOpenCompute/ROCm-Device-Libs.git") | ||||
|                     (commit (string-append "rocm-" version)))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1f8xsylfajpxqjk6ayjnrry53y8b0a6lh9d72pd41nffxfyzvw3w")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:configure-flags | ||||
|        (list "-DCMAKE_SKIP_BUILD_RPATH=FALSE" | ||||
|              "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE"))) | ||||
|     (inputs `(("llvm" ,llvm-for-rocm))) | ||||
|     (home-page "https://github.com/RadeonOpenCompute/ROCm-Device-Libs") | ||||
|     (synopsis "ROCm Device libraries") | ||||
|     (description "AMD-specific device-side language runtime libraries, namely | ||||
| oclc, ocml, ockl, opencl, hip and hc.") | ||||
|     (license license:ncsa))) | ||||
| 
 | ||||
| (define-public rocm-comgr | ||||
|   (package | ||||
|     (name "rocm-comgr") | ||||
|     (version %rocm-version) | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport.git") | ||||
|                     (commit (string-append "rocm-" version)))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0bakbm7shr0l67lph44b5cnc9psd6rivg1mp79qizaawkn380x60")) | ||||
|               (patches | ||||
|                (search-patches "rocm-comgr-3.1.0-dependencies.patch")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'chdir | ||||
|            (lambda _ | ||||
|              (chdir "lib/comgr")))))) | ||||
|     (inputs | ||||
|      `(("rocm-device-libs" ,rocm-device-libs) | ||||
|        ("llvm" ,llvm-for-rocm) | ||||
|        ("lld" ,lld))) | ||||
|     (home-page "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport") | ||||
|     (synopsis "ROCm Code Object Manager") | ||||
|     (description "The Comgr library provides APIs for compiling and inspecting | ||||
| AMDGPU code objects.") | ||||
|     (license license:ncsa))) | ||||
| 
 | ||||
| (define-public roct-thunk-interface | ||||
|   (package | ||||
|     (name "roct-thunk-interface") | ||||
|     (version %rocm-version) | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface.git") | ||||
|                     (commit (string-append "rocm-" version)))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0ffqhrrscmcydfqf61dk58d7nnxk6n2k68jhqfj7a4hvhlphb74f")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments `(#:tests? #f)) ; Not sure how to run tests. | ||||
|     (inputs `(("numactl" ,numactl))) | ||||
|     (home-page "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface") | ||||
|     (synopsis "Radeon Open Compute Thunk Interface") | ||||
|     (description "User-mode API interfaces used to interact with the ROCk | ||||
| driver.") | ||||
|     (license license:ncsa))) | ||||
| 
 | ||||
| (define-public rocr-runtime | ||||
|   (package | ||||
|     (name "rocr-runtime") | ||||
|     (version %rocm-version) | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url "https://github.com/RadeonOpenCompute/ROCR-Runtime.git") | ||||
|                     (commit (string-append "rocm-" version)))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0jqfqf5ymwlbpac065bhigmkgsk7mbyimdgvca7ymn38wpf80ka7")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:configure-flags | ||||
|        `(,(string-append | ||||
|            "-DBITCODE_DIR=" | ||||
|            (assoc-ref %build-inputs "rocm-device-libs") | ||||
|            "/amdgcn/bitcode/")) | ||||
|        #:tests? #f ; No tests. | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'chdir | ||||
|            (lambda _ | ||||
|              (chdir "src")))))) | ||||
|     (inputs | ||||
|      `(("libelf" ,libelf) | ||||
|        ("numactl" ,numactl) | ||||
|        ("llvm" ,llvm-for-rocm) | ||||
|        ("roct-thunk-interface" ,roct-thunk-interface) | ||||
|        ("rocm-device-libs" ,rocm-device-libs))) ; For bitcode. | ||||
|     (native-inputs `(("xxd" ,xxd))) | ||||
|     (home-page "https://github.com/RadeonOpenCompute/ROCR-Runtime") | ||||
|     (synopsis "ROCm Platform Runtime") | ||||
|     (description "User-mode API interfaces and libraries necessary for host | ||||
| applications to launch compute kernels to available HSA ROCm kernel agents.") | ||||
|     (license license:ncsa))) | ||||
| 
 | ||||
| (define-public rocclr | ||||
|   (package | ||||
|     (name "rocclr") | ||||
|     (version %rocm-version) | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url "https://github.com/ROCm-Developer-Tools/ROCclr.git") | ||||
|                     (commit (string-append "rocm-" version)))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1pm1y020zriz7zmi95w0rcpka0jrsc7wwh81sssnysi8wxk3nnfy")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #f ; No tests. | ||||
|        #:configure-flags | ||||
|        `(,(string-append | ||||
|            "-DOPENCL_DIR=" | ||||
|            (assoc-ref %build-inputs "rocm-opencl-runtime-src"))))) | ||||
|     (inputs | ||||
|      `(("mesa" ,mesa) | ||||
|        ("rocm-comgr" ,rocm-comgr) | ||||
|        ("llvm" ,llvm-for-rocm) | ||||
|        ("rocm-device-libs" ,rocm-device-libs) | ||||
|        ("rocr-runtime" ,rocr-runtime) | ||||
|        ("rocm-cmake" ,rocm-cmake) | ||||
|        ;; rocclr depends on a few headers provided by rocm-opencl-runtime. | ||||
|        ("rocm-opencl-runtime-src" | ||||
|         ,(origin | ||||
|            (method git-fetch) | ||||
|            (uri (git-reference | ||||
|                  (url "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime.git") | ||||
|                  (commit (string-append "rocm-" version)))) | ||||
|            (file-name (git-file-name name version)) | ||||
|            (sha256 | ||||
|             (base32 | ||||
|              "1cglpiaj3ny1z74ssmy6j63vj92sfy4q38ix6qsga0mg3b2wvqz3")))))) | ||||
|     (home-page "https://github.com/ROCm-Developer-Tools/ROCclr") | ||||
|     (synopsis "Radeon Open Compute Common Language Runtime") | ||||
|     (description "ROCclr is a virtual device interface that compute runtimes | ||||
| interact with to different backends such as ROCr or PAL.  This abstraction | ||||
| allows runtimes to work on Windows as well as on Linux without much effort.") | ||||
|     (license license:ncsa))) | ||||
| 
 | ||||
| (define-public rocm-opencl-runtime | ||||
|   (package | ||||
|     (name "rocm-opencl-runtime") | ||||
|     (version %rocm-version) | ||||
|     (home-page "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url home-page) | ||||
|                     (commit (string-append "rocm-" version)))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1cglpiaj3ny1z74ssmy6j63vj92sfy4q38ix6qsga0mg3b2wvqz3")) | ||||
|               (patches | ||||
|                (search-patches | ||||
|                 "rocm-opencl-runtime-3.10.0-includes.patch" | ||||
|                 ;; Do not install libOpenCL, which ocl-icd provides. | ||||
|                 "rocm-opencl-runtime-4.3-noopencl.patch" | ||||
|                 ;; Guix includes a program clinfo already. | ||||
|                 "rocm-opencl-runtime-4.3-noclinfo.patch" | ||||
|                 ;; cltrace linking fails, remove it. | ||||
|                 "rocm-opencl-runtime-4.3-nocltrace.patch")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #f ; Not sure how to run them. | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'install 'create-icd | ||||
|            ;; Manually install ICD, which simply consists of dumping | ||||
|            ;; the path of the .so into the correct file. | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out")) | ||||
|                     (vendors (string-append out "/etc/OpenCL/vendors")) | ||||
|                     (sopath (string-append out "/lib/libamdocl64.so"))) | ||||
|                (mkdir-p vendors) | ||||
|                (with-output-to-file (string-append vendors "/amdocl64.icd") | ||||
|                  (lambda _ (display sopath))))))))) | ||||
|     (inputs | ||||
|      `(("mesa" ,mesa) | ||||
|        ("rocm-comgr" ,rocm-comgr) | ||||
|        ("rocr-runtime" ,rocr-runtime) | ||||
|        ("rocclr" ,rocclr) | ||||
|        ("ocl-icd" ,ocl-icd) | ||||
|        ("glew" ,glew))) | ||||
|     (native-inputs `()) | ||||
|     (synopsis "ROCm OpenCL Runtime") | ||||
|     (description "OpenCL 2.0 compatible language runtime, supporting offline | ||||
| and in-process/in-memory compilation.") | ||||
|     (license license:ncsa))) | ||||
| 
 | ||||
| (define-public rocminfo | ||||
|   (package | ||||
|     (name "rocminfo") | ||||
|     (version %rocm-version) | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url "https://github.com/RadeonOpenCompute/rocminfo.git") | ||||
|                     (commit (string-append "rocm-" version)))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0pcm308vwkjrwnrk507iya20mkil8j0vx699w9jk2gas4n4jvkcz")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #f ; No tests. | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'patch-binary-paths | ||||
|            (lambda* (#:key inputs #:allow-other-keys) | ||||
|              (substitute* "rocminfo.cc" | ||||
|                (("lsmod") | ||||
|                 (string-append (assoc-ref inputs "kmod") "/bin/lsmod")) | ||||
|                (("grep") (which "grep")))))))) | ||||
|     (inputs | ||||
|      `(("rocr-runtime" ,rocr-runtime) | ||||
|        ("kmod" ,kmod))) | ||||
|     (home-page "https://github.com/RadeonOpenCompute/rocminfo") | ||||
|     (synopsis "ROCm Application for Reporting System Info") | ||||
|     (description "List @acronym{HSA,Heterogeneous System Architecture} Agents | ||||
| available to ROCm and show their properties.") | ||||
|     (license license:ncsa))) | ||||
| 
 | ||||
| (define-public rocm-bandwidth-test | ||||
|   (package | ||||
|     (name "rocm-bandwidth-test") | ||||
|     (version %rocm-version) | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url "https://github.com/RadeonOpenCompute/rocm_bandwidth_test.git") | ||||
|                     (commit (string-append "rocm-" version)))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0a14kwkjpiyljgzxblh031qibn6xgbxp6m12zdy1pmwb2c44jjmm")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments `(#:tests? #f)) ; No tests. | ||||
|     (inputs `(("rocr-runtime" ,rocr-runtime))) | ||||
|     (home-page "https://github.com/RadeonOpenCompute/rocm_bandwidth_test") | ||||
|     (synopsis "Bandwidth test for ROCm") | ||||
|     (description "RocBandwidthTest is designed to capture the performance | ||||
| characteristics of buffer copying and kernel read/write operations. The help | ||||
| screen of the benchmark shows various options one can use in initiating | ||||
| cop/read/writer operations.  In addition one can also query the topology of the | ||||
| system in terms of memory pools and their agents.") | ||||
|     (license license:ncsa))) | ||||
| 
 | ||||
|  | @ -154,21 +154,16 @@ a focus on simplicity and productivity.") | |||
| (define-public ruby-2.7 | ||||
|   (package | ||||
|     (inherit ruby-2.6) | ||||
|     (version "2.7.2") | ||||
|     (version "2.7.4") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (inherit (package-source ruby-2.6)) | ||||
|        (uri (string-append "https://cache.ruby-lang.org/pub/ruby/" | ||||
|                            (version-major+minor version) | ||||
|                            "/ruby-" version ".tar.gz")) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1m63461mxi3fg4y3bspbgmb0ckbbb1ldgf9xi0piwkpfsk80cmvf")) | ||||
|        (modules '((guix build utils))) | ||||
|        (snippet `(begin | ||||
|                    ;; Remove bundled libffi | ||||
|                    (delete-file-recursively "ext/fiddle/libffi-3.2.1") | ||||
|                    #t)))) | ||||
|          "0nxwkxh7snmjqf787qsp4i33mxd1rbf9yzyfiky5k230i680jhrh")))) | ||||
|     (arguments | ||||
|      `(#:test-target "test" | ||||
|        #:configure-flags '("--enable-shared") ; dynamic linking | ||||
|  | @ -197,7 +192,7 @@ a focus on simplicity and productivity.") | |||
| (define-public ruby-3.0 | ||||
|   (package | ||||
|     (inherit ruby-2.7) | ||||
|     (version "3.0.0") | ||||
|     (version "3.0.2") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -206,12 +201,12 @@ a focus on simplicity and productivity.") | |||
|                            "/ruby-" version ".tar.xz")) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1cbcixwnr0y8q0lg67wjgplp06kjd6p6hjjh680csv3v0bpsxgv8")))))) | ||||
|          "0h2w2ms4gx2s96v3lzdr3add94bd2qqkhdjzaycmaqhg21rpf3jp")))))) | ||||
| 
 | ||||
| (define-public ruby-2.5 | ||||
|   (package | ||||
|     (inherit ruby-2.6) | ||||
|     (version "2.5.8") | ||||
|     (version "2.5.9") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -220,12 +215,7 @@ a focus on simplicity and productivity.") | |||
|                            "/ruby-" version ".tar.xz")) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0vad5ah1lrdhxsyqr5iqc8c7r7qczpmm76cz8rsf4crimpzv5483")) | ||||
|        (modules '((guix build utils))) | ||||
|        (snippet `(begin | ||||
|                    ;; Remove bundled libffi | ||||
|                    (delete-file-recursively "ext/fiddle/libffi-3.2.1") | ||||
|                    #t)))))) | ||||
|          "1w2qncacm7h3f3il1whghdabwnv9fvwmz9f1a9vcg32006ljyzx8")))))) | ||||
| 
 | ||||
| (define-public ruby-2.4 | ||||
|   (package | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2013, 2015, 2017 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> | ||||
| ;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2016, 2017, 2019, 2021 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org> | ||||
| ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> | ||||
| ;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com> | ||||
|  | @ -172,15 +172,14 @@ external dependencies.") | |||
| (define-public samba | ||||
|   (package | ||||
|     (name "samba") | ||||
|     (version "4.13.4") | ||||
|     (version "4.13.10") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://download.samba.org/pub/samba/stable/" | ||||
|                            "samba-" version ".tar.gz")) | ||||
|        (sha256 | ||||
|         (base32 "0y2wc7njhyhg055krp878xfv9c3wbhrhzn02d5ich30hyxilrcx1")) | ||||
|        (patches (search-patches "samba-fix-fcntl-hint-detection.patch")) | ||||
|         (base32 "00q5hf2r71dyma785dckcyksv3082mqfgyy9q6k6rc6kqjwkirzh")) | ||||
|        (modules '((guix build utils))) | ||||
|        (snippet | ||||
|         '(begin | ||||
|  | @ -281,14 +280,14 @@ Desktops into Active Directory environments using the winbind daemon.") | |||
| (define-public talloc | ||||
|   (package | ||||
|     (name "talloc") | ||||
|     (version "2.3.2") | ||||
|     (version "2.3.3") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "https://www.samba.org/ftp/talloc/talloc-" | ||||
|                                   version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1mvv57srpzcc1qh6vjjyjhgpdlcw4bmmsxfz4j8pfk9qkvwkx817")))) | ||||
|                 "1ala3l6v8qk2pwq97z1zdkj1isnfnrp1923srp2g22mxd0impsbb")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      '(#:phases | ||||
|  | @ -348,14 +347,14 @@ destructors.  It is the core memory allocator used in Samba.") | |||
| (define-public tevent | ||||
|   (package | ||||
|     (name "tevent") | ||||
|     (version "0.10.2") | ||||
|     (version "0.11.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "https://www.samba.org/ftp/tevent/tevent-" | ||||
|                                   version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "15k6i8ad5lpxfjsjyq9h64zlyws8d3cm0vwdnaw8z1xjwli7hhpq")))) | ||||
|                 "1fl2pj4p8p5fa2laykwf1sfjdw7pkw9slklj3vzc5ah8x348d6pf")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      '(#:phases | ||||
|  | @ -368,7 +367,8 @@ destructors.  It is the core memory allocator used in Samba.") | |||
|                        (string-append "--prefix=" out) | ||||
|                        "--bundled-libraries=NONE"))))))) | ||||
|     (native-inputs | ||||
|      `(("pkg-config" ,pkg-config) | ||||
|      `(("cmocka" ,cmocka) | ||||
|        ("pkg-config" ,pkg-config) | ||||
|        ("python" ,python) | ||||
|        ("which" ,which))) | ||||
|     (propagated-inputs | ||||
|  | @ -384,14 +384,14 @@ many event types, including timers, signals, and the classic file descriptor eve | |||
| (define-public ldb | ||||
|   (package | ||||
|     (name "ldb") | ||||
|     (version "1.5.6") | ||||
|     (version "2.4.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "https://www.samba.org/ftp/ldb/ldb-" | ||||
|                                   version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0nwpkqidsna4yz3vhjzzadm4hpviwnyk80yml8ay82gi1d6lg0pz")) | ||||
|                 "10rd1z2llqz8xdx6m7yyxb9a118gx2xxwri18bhkkab9n1w55rvn")) | ||||
|               (modules '((guix build utils))) | ||||
|               (snippet | ||||
|                '(begin | ||||
|  |  | |||
|  | @ -23,14 +23,18 @@ | |||
| (define-module (gnu packages scanner) | ||||
|   #:use-module (gnu packages) | ||||
|   #:use-module (gnu packages autotools) | ||||
|   #:use-module (gnu packages compression) | ||||
|   #:use-module (gnu packages freedesktop) | ||||
|   #:use-module (gnu packages gettext) | ||||
|   #:use-module (gnu packages ghostscript) | ||||
|   #:use-module (gnu packages glib) | ||||
|   #:use-module (gnu packages gtk) | ||||
|   #:use-module (gnu packages image) | ||||
|   #:use-module (gnu packages libusb) | ||||
|   #:use-module (gnu packages linux) | ||||
|   #:use-module (gnu packages pkg-config) | ||||
|   #:use-module (gnu packages python) | ||||
|   #:use-module (gnu packages textutils) | ||||
|   #:use-module (gnu packages xml) | ||||
|   #:use-module (guix build-system gnu) | ||||
|   #:use-module (guix download) | ||||
|  | @ -190,6 +194,66 @@ proving access to any raster image scanner hardware (flatbed scanner, | |||
| hand-held scanner, video- and still-cameras, frame-grabbers, etc.).  The | ||||
| package contains the library and drivers."))) | ||||
| 
 | ||||
| (define-public scanbd | ||||
|   (package | ||||
|     (name "scanbd") | ||||
|     (version "1.5.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "mirror://sourceforge/scanbd/releases/" | ||||
|                            "scanbd-" version ".tgz")) | ||||
|        (sha256 | ||||
|         (base32 "0pvy4qirfjdfm8aj6x5rkbgl7hk3jfa2s21qkk8ic5dqfjjab75n")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:configure-flags | ||||
|        (list "--disable-debug" | ||||
|              "--sysconfdir=/etc") | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (replace 'install | ||||
|            (lambda* (#:key make-flags outputs #:allow-other-keys) | ||||
|              (let* ((out  (assoc-ref outputs "out")) | ||||
|                     (conf (string-append out "/etc/scanbd"))) | ||||
|                (apply invoke "make" "install" | ||||
|                       ;; Install example configuration to the store, not /etc. | ||||
|                       ;; These don't inherit from each other, so we need both. | ||||
|                       (string-append "scanbdconfdir="  conf) | ||||
|                       (string-append "scannerconfdir=" conf "/scanner.d") | ||||
|                       make-flags)))) | ||||
|          (add-after 'install 'install-extra-documentation | ||||
|            ;; The README provides more detailed set-up instructions than the | ||||
|            ;; man page. | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out")) | ||||
|                     (doc (string-append out "/share/doc/" | ||||
|                                         ,name "-" ,version))) | ||||
|                (install-file "doc/README.txt" doc))))))) | ||||
|     (native-inputs | ||||
|      `(("pkg-config" ,pkg-config))) | ||||
|     (inputs | ||||
|      `(("dbus" ,dbus) | ||||
|        ("libconfuse" ,libconfuse) | ||||
|        ("sane-backends" ,sane-backends) | ||||
|        ("udev" ,eudev) | ||||
|        ("zlib" ,zlib))) | ||||
|     (home-page "https://scanbd.sourceforge.io") | ||||
|     (synopsis "Configurable scanner button monitor") | ||||
|     (description "Scanbd stands for scanner button daemon.  It regulary polls | ||||
| scanners for pressed buttons, function knob changes, or other events such | ||||
| as (un)plugging the scanner or inserting and removing paper.  Then it performs | ||||
| the desired action(s) such as saving, copying, or e-mailing the image. | ||||
| 
 | ||||
| Actions can be fully customized through scripts, based on any combination of | ||||
| switch or knob settings.  Events are also signaled over D-Bus and scans can | ||||
| even be triggered over D-Bus from foreign applications. | ||||
| 
 | ||||
| Scanbd talks to scanners through the @acronym{SANE, Scanner Access Now Easy} | ||||
| back-end library.  This means that it supports almost all existing scanners, | ||||
| provided the driver also exposes the buttons.") | ||||
|     (license license:gpl2+))) | ||||
| 
 | ||||
| (define-public xsane | ||||
|   (package | ||||
|     (name "xsane") | ||||
|  |  | |||
|  | @ -90,7 +90,7 @@ | |||
| (define-public mit-scheme | ||||
|   (package | ||||
|     (name "mit-scheme") | ||||
|     (version "10.1.3") | ||||
|     (version "11.2") | ||||
|     (source #f)                                   ; see below | ||||
|     (outputs '("out" "doc")) | ||||
|     (build-system gnu-build-system) | ||||
|  | @ -173,11 +173,14 @@ | |||
|        ("autoconf" ,autoconf) | ||||
|        ("automake" ,automake) | ||||
|        ("libtool" ,libtool) | ||||
|        ("texlive" ,(texlive-updmap.cfg (list texlive-tex-texinfo))) | ||||
|        ("texlive" ,(texlive-updmap.cfg (list texlive-tex-texinfo | ||||
|                                              texlive-epsf))) | ||||
|        ("texinfo" ,texinfo) | ||||
|        ("ghostscript" ,ghostscript) | ||||
|        ("m4" ,m4))) | ||||
|     (inputs | ||||
|      `(("libx11" ,libx11) | ||||
|        ("ncurses" ,ncurses) | ||||
| 
 | ||||
|        ("source" | ||||
| 
 | ||||
|  | @ -193,8 +196,8 @@ | |||
|                               (match (%current-system) | ||||
|                                 ("x86_64-linux" | ||||
|                                  (string-append version "-x86-64")) | ||||
|                                 ("i686-linux" | ||||
|                                  (string-append version "-i386")) | ||||
|                                 ("aarch64-linux" | ||||
|                                  (string-append version "-aarch64le")) | ||||
|                                 (_ | ||||
|                                  (string-append "c-" version))) | ||||
|                               ".tar.gz")) | ||||
|  | @ -202,10 +205,10 @@ | |||
|            (match (%current-system) | ||||
|              ("x86_64-linux" | ||||
|               (base32 | ||||
|                "03m7cc035w3avs91j2pcz9f15ssgvgp3rm045d1vbydqrkzfyw8k")) | ||||
|              ("i686-linux" | ||||
|                "17822hs9y07vcviv2af17p3va7qh79dird49nj50bwi9rz64ia3w")) | ||||
|              ("aarch64-linux" | ||||
|               (base32 | ||||
|                "05sjyz90xxfnmi87qv8x0yx0fcallnzl1dciygdafp317pn489is")) | ||||
|                "11maixldk20wqb5js5p4imq221zz9nf27649v9pqkdf8fv7rnrs9")) | ||||
|              (_ | ||||
|               (base32 | ||||
|                "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")))))))) | ||||
|  |  | |||
|  | @ -621,22 +621,28 @@ to generate and parse.  The two primary functions are @code{cbor.loads} and | |||
| (define-public flatbuffers | ||||
|   (package | ||||
|     (name "flatbuffers") | ||||
|     (version "1.10.0") | ||||
|     (version "2.0.0") | ||||
|     (source | ||||
|       (origin | ||||
|         (method url-fetch) | ||||
|         (uri (string-append "https://github.com/google/flatbuffers/archive/v" | ||||
|                             version ".tar.gz")) | ||||
|         (file-name (string-append name "-" version ".tar.gz")) | ||||
|         (method git-fetch) | ||||
|         (uri (git-reference | ||||
|               (url "https://github.com/google/flatbuffers") | ||||
|               (commit (string-append "v" version)))) | ||||
|         (file-name (git-file-name name version)) | ||||
|         (sha256 | ||||
|          (base32 | ||||
|           "0z4swldxs0s31hnkqdhsbfmc8vx3p7zsvmqaw4l31r2iikdy651p")))) | ||||
|           "1zbf6bdpps8369r1ql00irxrp58jnalycc8jcapb8iqg654vlfz8")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      '(#:build-type "Release" | ||||
|        #:configure-flags | ||||
|        (list (string-append "-DCMAKE_INSTALL_LIBDIR=" | ||||
|                             (assoc-ref %outputs "out") "/lib")))) | ||||
|        (list "-DFLATBUFFERS_BUILD_SHAREDLIB=ON" | ||||
|              (string-append "-DCMAKE_INSTALL_LIBDIR=" | ||||
|                             (assoc-ref %outputs "out") "/lib")) | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'make-writable | ||||
|            (lambda _ (for-each make-file-writable (find-files "."))))))) | ||||
|     (home-page "https://google.github.io/flatbuffers/") | ||||
|     (synopsis "Memory-efficient serialization library") | ||||
|     (description "FlatBuffers is a cross-platform serialization library for C++, | ||||
|  |  | |||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							|  | @ -351,8 +351,8 @@ resolution scaling on graphical console window resize.") | |||
|     (build-system meson-build-system) | ||||
|     (propagated-inputs | ||||
|      `(("glib" ,glib)                   ; Requires: in the pkg-config file | ||||
|        ("nss" ,nss)))                   ; Requires.private: in the pkg-config | ||||
|                                         ; file | ||||
|        ("nss" ,nss)                     ; Requires.private: in the pkg-config | ||||
|        ("pcsc-lite" ,pcsc-lite)))       ; file | ||||
|     (native-inputs | ||||
|      `(("openssl" ,openssl) | ||||
|        ("nss" ,nss "bin") | ||||
|  |  | |||
|  | @ -14,6 +14,7 @@ | |||
| ;;; Copyright © 2020 Tim Howes <timhowes@lavabit.com> | ||||
| ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||||
| ;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com> | ||||
| ;;; Copyright © 2021 Lars-Dominik Braun <lars@6xq.net> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -6300,3 +6301,35 @@ the machinery described in the paper \"Learning interactions via hierarchical | |||
| group-lasso regularization\" (JCGS 2015, Volume 24, Issue 3). | ||||
| Michael Lim & Trevor Hastie (2015)") | ||||
|     (license license:gpl2))) | ||||
| 
 | ||||
| (define-public r-datasaurus | ||||
|   (package | ||||
|     (name "r-datasaurus") | ||||
|     (version "0.1.4") | ||||
|     (source | ||||
|       (origin | ||||
|         (method url-fetch) | ||||
|         (uri (cran-uri "datasauRus" version)) | ||||
|         (sha256 | ||||
|           (base32 | ||||
|             "1w1yhwwrmh95bklacz44wjwynxd8cj3z8b9zvsnzmk18m5a4k0fl")))) | ||||
|     (properties `((upstream-name . "datasauRus"))) | ||||
|     (build-system r-build-system) | ||||
|     (native-inputs `(("r-knitr" ,r-knitr))) | ||||
|     (home-page | ||||
|       "https://github.com/lockedata/datasauRus") | ||||
|     (synopsis "Datasets from the Datasaurus Dozen") | ||||
|     (description | ||||
|      "The Datasaurus Dozen is a set of datasets with the same summary | ||||
| statistics.  They retain the same summary statistics despite having radically | ||||
| different distributions.  The datasets represent a larger and quirkier object | ||||
| lesson that is typically taught via Anscombe's Quartet (available in the | ||||
| 'datasets' package).  Anscombe's Quartet contains four very different | ||||
| distributions with the same summary statistics and as such highlights the value | ||||
| of visualisation in understanding data, over and above summary statistics.  As | ||||
| well as being an engaging variant on the Quartet, the data is generated in a | ||||
| novel way.  The simulated annealing process used to derive datasets from the | ||||
| original Datasaurus is detailed in \"Same Stats, Different Graphs: Generating | ||||
| Datasets with Varied Appearance and Identical Statistics through Simulated | ||||
| Annealing\" @url{doi:10.1145/3025453.3025912}.") | ||||
|     (license license:expat))) | ||||
|  |  | |||
|  | @ -8,6 +8,7 @@ | |||
| ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> | ||||
| ;;; Copyright © 2017 Alex Griffin <a@ajgrf.com> | ||||
| ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> | ||||
| ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -49,6 +50,78 @@ | |||
|   #:use-module (guix utils) | ||||
|   #:use-module (guix packages)) | ||||
| 
 | ||||
| (define-public slscroll | ||||
|   (package | ||||
|     (name "slscroll") | ||||
|     (version "0.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://dl.suckless.org/tools/scroll-" | ||||
|                            version ".tar.gz")) | ||||
|        (sha256 | ||||
|         (base32 "1mpfrvn122lnaqid1pi99ckpxd6x679b0w91pl003xmdwsfdbcly")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #f                      ; no check target | ||||
|        #:make-flags | ||||
|        (list | ||||
|         (string-append "CC=" ,(cc-for-target)) | ||||
|         (string-append "PREFIX=" %output)) | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (delete 'configure))))         ; no configure script | ||||
|     (home-page "https://tools.suckless.org/scroll/") | ||||
|     (synopsis "Scroll-back buffer program for st") | ||||
|     (description "Scroll is a program that provides a scroll back buffer for | ||||
| terminal like @code{st}.") | ||||
|     (license license:isc))) | ||||
| 
 | ||||
| (define-public tabbed | ||||
|   (package | ||||
|     (name "tabbed") | ||||
|     (version "0.6") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://dl.suckless.org/tools/tabbed-" | ||||
|                            version ".tar.gz")) | ||||
|        (sha256 | ||||
|         (base32 "0hhwckyzvsj9aim2l6m69wmvl2n7gzd6b1ly8qjnlpgcrcxfllbn")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #f                      ; no check target | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'patch | ||||
|            (lambda* (#:key inputs outputs #:allow-other-keys) | ||||
|              (substitute* "config.mk" | ||||
|                (("/usr/local") | ||||
|                 (assoc-ref outputs "out")) | ||||
|                (("/usr/X11R6") | ||||
|                 (assoc-ref inputs "libx11")) | ||||
|                (("/usr/include/freetype2") | ||||
|                 (string-append (assoc-ref inputs "freetype") | ||||
|                                "/include/freetype2")) | ||||
|                (("CC = cc") | ||||
|                 (string-append "CC = " ,(cc-for-target)))))) | ||||
|          (delete 'configure))))         ; no configure script | ||||
|     (inputs | ||||
|      `(("fontconfig" ,fontconfig) | ||||
|        ("freetype" ,freetype) | ||||
|        ("libx11" ,libx11) | ||||
|        ("libxft" ,libxft))) | ||||
|     (home-page "https://tools.suckless.org/tabbed/") | ||||
|     (synopsis "Tab interface for application supporting Xembed") | ||||
|     (description "Tabbed is a generic tabbed frontend to xembed-aware | ||||
| applications.  It was originally designed for surf but also usable with many | ||||
| other applications, i.e. st, uzbl, urxvt and xterm.") | ||||
|     (license | ||||
|      ;; Dual-licensed. | ||||
|      (list | ||||
|       license:expat | ||||
|       license:x11)))) | ||||
| 
 | ||||
| (define-public slstatus | ||||
|   ;; No release tarballs yet. | ||||
|   (let ((commit "84a2f117a32f0796045941260cdc4b69852b41e0") | ||||
|  |  | |||
|  | @ -474,9 +474,10 @@ a simple interface that makes it easy to organize and browse feeds.") | |||
|      `(#:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (replace 'check | ||||
|            (lambda* (#:key inputs outputs #:allow-other-keys) | ||||
|            (lambda* (#:key tests? inputs outputs #:allow-other-keys) | ||||
|              (add-installed-pythonpath inputs outputs) | ||||
|              (invoke "pytest")))))) | ||||
|              (when tests? | ||||
|                (invoke "pytest"))))))) | ||||
|     (inputs | ||||
|      `(("python-beautifulsoup4" ,python-beautifulsoup4) | ||||
|        ("python-decorator" ,python-decorator) | ||||
|  |  | |||
|  | @ -1,5 +1,6 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at> | ||||
| ;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -19,8 +20,14 @@ | |||
| (define-module (gnu packages task-runners) | ||||
|   #:use-module ((guix licenses) #:prefix license:) | ||||
|   #:use-module (guix packages) | ||||
|   #:use-module (guix download) | ||||
|   #:use-module (guix git-download) | ||||
|   #:use-module (guix utils) | ||||
|   #:use-module (gnu packages bash) | ||||
|   #:use-module (gnu packages compression) | ||||
|   #:use-module (gnu packages golang) | ||||
|   #:use-module (gnu packages mail) | ||||
|   #:use-module (guix build-system gnu) | ||||
|   #:use-module (guix build-system go)) | ||||
| 
 | ||||
| (define-public run | ||||
|  | @ -47,3 +54,60 @@ | |||
| using a Runfile.") | ||||
|     (home-page "https://github.com/TekWizely/run") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public task-spooler | ||||
|   (package | ||||
|     (name "task-spooler") | ||||
|     (version "1.0.1") | ||||
|     (source | ||||
|       (origin | ||||
|         (method url-fetch) | ||||
|         (uri (string-append | ||||
|                "https://vicerveza.homeunix.net/~viric/soft/ts/ts-" version ".tar.gz")) | ||||
|         (sha256 (base32 "0y32sm2i2jxs88c307h76449fynk75p9qfw1k11l5ixrn03z67pl")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|       `(#:make-flags | ||||
|         (let ((c-flags "-g -O2")) | ||||
|           (list (string-append "PREFIX=" (assoc-ref %outputs "out")) | ||||
|                 ,(string-append "CC=" (cc-for-target)) | ||||
|                 (string-append "CFLAGS=" c-flags))) | ||||
|         #:phases | ||||
|         (modify-phases %standard-phases | ||||
|           (delete 'configure) ;; no configuration script | ||||
|           (add-after 'unpack 'rename-and-patch-paths | ||||
|             (lambda _ | ||||
|               ;; Rename "ts" to "tsp" to not interfere with "ts" command | ||||
|               ;; from moreutils package. | ||||
|               (rename-file "ts.1" "tsp.1"); | ||||
|               (substitute* '("Makefile" "testbench.sh") | ||||
|                 (("\\bts\\b") "tsp")) | ||||
|               ;; Patch gzip/sendmail/shell paths. | ||||
|               (substitute* "execute.c" | ||||
|                 (("execlp\\(\"gzip\"") | ||||
|                  (format #f "execlp(\"~a/bin/gzip\"" | ||||
|                          (assoc-ref %build-inputs "gzip")))) | ||||
|               (substitute* "list.c" | ||||
|                 (("/bin/sh\\b") (which "sh"))) | ||||
|               (substitute* "env.c" | ||||
|                 (("execlp\\(\"/bin/sh\"") | ||||
|                  (format #f "execlp(\"~a/bin/sh\"" | ||||
|                          (assoc-ref %build-inputs "bash")))) | ||||
|               (substitute* "mail.c" | ||||
|                 (("execl\\(\"/usr/sbin/sendmail\"") | ||||
|                  (format #f "execl(\"~a/sbin/sendmail\"" | ||||
|                          (assoc-ref %build-inputs "sendmail")))))) | ||||
|           (replace 'check | ||||
|             (lambda* (#:key tests? #:allow-other-keys) | ||||
|               (when tests? | ||||
|                 (setenv "PATH" (string-join (list (getenv "PATH") (getcwd)) ":")) | ||||
|                 (invoke "./testbench.sh"))))))) | ||||
|     (inputs | ||||
|       `(("bash" ,bash-minimal) | ||||
|         ("gzip" ,gzip) | ||||
|         ("sendmail" ,sendmail))) | ||||
|     (synopsis "UNIX task queue system") | ||||
|     (description "Task spooler lets users run shell commands asynchronously | ||||
| one after the other in a separate process.") | ||||
|     (home-page "https://vicerveza.homeunix.net/~viric/soft/ts/") | ||||
|     (license license:gpl2+))) | ||||
|  |  | |||
|  | @ -4,13 +4,13 @@ | |||
| ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net> | ||||
| ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr> | ||||
| ;;; Copyright © 2015 David Thompson <davet@gnu.org> | ||||
| ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Leo Famulari <leo@famulari.name> | ||||
| ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Leo Famulari <leo@famulari.name> | ||||
| ;;; Copyright © 2016, 2017, 2019, 2021 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2016, 2017, 2018 Nikita <nikita@n0.is> | ||||
| ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> | ||||
| ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> | ||||
| ;;; Copyright © 2017, 2018, 2019, 2020, 2021 Marius Bakke <marius@gnu.org> | ||||
| ;;; Copyright © 2017–2019, 2021 Tobias Geerinckx-Rice <me@tobias.gr> | ||||
| ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr> | ||||
| ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> | ||||
| ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> | ||||
| ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> | ||||
|  | @ -51,6 +51,7 @@ | |||
|   #:use-module (guix build-system trivial) | ||||
|   #:use-module (gnu packages compression) | ||||
|   #:use-module (gnu packages) | ||||
|   #:use-module (gnu packages autotools) | ||||
|   #:use-module (gnu packages bash) | ||||
|   #:use-module (gnu packages check) | ||||
|   #:use-module (gnu packages curl) | ||||
|  | @ -1034,6 +1035,14 @@ coding footprint.") | |||
|     (native-inputs | ||||
|      `(("gzip" ,gzip) | ||||
|        ("tar" ,tar))) | ||||
|     ;; The following definition is copied from the cURL package to prevent a | ||||
|     ;; cycle between the curl and tls modules. | ||||
|     (native-search-paths | ||||
|      (list (search-path-specification | ||||
|             (variable "CURL_CA_BUNDLE") | ||||
|             (file-type 'regular) | ||||
|             (separator #f) | ||||
|             (files '("etc/ssl/certs/ca-certificates.crt"))))) | ||||
|     (home-page "https://dehydrated.io/") | ||||
|     (synopsis "Let's Encrypt/ACME client implemented as a shell script") | ||||
|     (description "Dehydrated is a client for signing certificates with an | ||||
|  | @ -1099,3 +1108,34 @@ default set of preferences.  Remaining on a specific version for backwards | |||
| compatibility is also supported.") | ||||
|     (home-page "https://github.com/awslabs/s2n") | ||||
|     (license license:asl2.0))) | ||||
| 
 | ||||
| (define-public wolfssl | ||||
|   (package | ||||
|     (name "wolfssl") | ||||
|     (version "4.8.0") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                      (url "https://github.com/wolfSSL/wolfssl") | ||||
|                      (commit (string-append "v" version "-stable")))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1w9gs9cq2yhj5s3diz3x1l15pgrc1pbm00jccizvcjyibmwyyf2h")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      '(#:configure-flags | ||||
|        '("--enable-reproducible-build"))) | ||||
|     (native-inputs | ||||
|      `(("autoconf" ,autoconf) | ||||
|        ("automake" ,automake) | ||||
|        ("libtool" ,libtool))) | ||||
|     (synopsis "SSL/TLS implementation") | ||||
|     (description "The wolfSSL embedded SSL library (formerly CyaSSL) is an | ||||
| SSL/TLS library written in ANSI C and targeted for embedded, RTOS, and | ||||
| resource-constrained environments - primarily because of its small size, speed, | ||||
| and feature set.  wolfSSL supports industry standards up to the current TLS 1.3 | ||||
| and DTLS 1.2, is up to 20 times smaller than OpenSSL, and offers progressive | ||||
| ciphers such as ChaCha20, Curve25519, NTRU, and Blake2b.") | ||||
|     (home-page "https://www.wolfssl.com/") | ||||
|     (license license:gpl2+))) ; Audit | ||||
|  |  | |||
|  | @ -1,5 +1,6 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -17,10 +18,13 @@ | |||
| ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| (define-module (gnu packages uucp) | ||||
|   #:use-module (gnu packages golang) | ||||
|   #:use-module (gnu packages texinfo) | ||||
|   #:use-module (guix licenses) | ||||
|   #:use-module (guix packages) | ||||
|   #:use-module (guix download) | ||||
|   #:use-module (guix build-system gnu)) | ||||
|   #:use-module (guix build-system gnu) | ||||
|   #:use-module (guix build-system go)) | ||||
| 
 | ||||
| (define-public uucp | ||||
|   (package | ||||
|  | @ -54,3 +58,115 @@ | |||
| set of utilities for remotely transferring files, email and net news | ||||
| between computers.") | ||||
|     (license gpl2+))) | ||||
| 
 | ||||
| (define-public nncp | ||||
|   (package | ||||
|     (name "nncp") | ||||
|     (version "7.5.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "http://www.nncpgo.org/download/nncp-" | ||||
|                            version ".tar.xz")) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1r1zgj7gpkdmdm3wf31m0xi8y313kzd4dbyp4r4y8khnp32jvn8l")) | ||||
|        (modules '((ice-9 ftw) | ||||
|                   (guix build utils))) | ||||
|        (snippet | ||||
|         '(begin | ||||
|            ;; Unbundle dependencies. | ||||
|            ;; TODO: go.cypherpunks.ru was down at the time of | ||||
|            ;; packaging. Unbundle go.cypherpunks dependencies as well once it | ||||
|            ;; comes back online. | ||||
|            (for-each (lambda (file) | ||||
|                        (unless (member file (list "." ".." "go.cypherpunks.ru")) | ||||
|                          (delete-file-recursively (string-append "src/vendor/" file)))) | ||||
|                      (scandir "src/vendor")) | ||||
|            ;; Delete built documentation. | ||||
|            (delete-file "doc/nncp.info") | ||||
|            #t)))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:modules ((guix build gnu-build-system) | ||||
|                   ((guix build go-build-system) #:prefix go:) | ||||
|                   (guix build utils)) | ||||
|        #:imported-modules ,%go-build-system-modules | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-before 'unpack 'setup-go-environment | ||||
|            (assoc-ref go:%standard-phases 'setup-go-environment)) | ||||
|          (add-after 'unpack 'go-unpack | ||||
|            (lambda* (#:key source #:allow-other-keys) | ||||
|              ;; Copy source to GOPATH. | ||||
|              (copy-recursively "src" "../src/go.cypherpunks.ru/nncp/v7") | ||||
|              ;; Move bundled dependencies to GOPATH. | ||||
|              (for-each (lambda (dependency) | ||||
|                          (rename-file (string-append "src/vendor/go.cypherpunks.ru/" | ||||
|                                                      dependency) | ||||
|                                       (string-append "../src/go.cypherpunks.ru/" | ||||
|                                                      dependency))) | ||||
|                        (list "balloon" "recfile")) | ||||
|              ;; Delete empty bundled dependencies directory. | ||||
|              (delete-file-recursively "src/vendor"))) | ||||
|          (replace 'configure | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let ((out (assoc-ref outputs "out"))) | ||||
|                ;; Set configuration path. | ||||
|                (setenv "CFGPATH" "/etc/nncp.hjson") | ||||
|                ;; Set output directories. | ||||
|                (setenv "BINDIR" (string-append out "/bin")) | ||||
|                (setenv "INFODIR" (string-append out "/share/info")) | ||||
|                (setenv "DOCDIR" (string-append out "/share/doc/nncp"))) | ||||
|              ;; Set absolute store paths to sh and cat. | ||||
|              (substitute* (list "src/pipe.go" "src/toss_test.go") | ||||
|                (("/bin/sh") (which "sh"))) | ||||
|              (substitute* "src/toss_test.go" | ||||
|                (("; cat") (string-append "; " (which "cat")))) | ||||
|              ;; Remove module flags. | ||||
|              (substitute* (list "bin/default.do" "bin/hjson-cli.do" "test.do") | ||||
|                ((" -mod=vendor") "") | ||||
|                ((" -m") "")) | ||||
|              ;; Use the correct module path. `go list` does not report the | ||||
|              ;; correct module path since we have moved the source files. | ||||
|              (substitute* "bin/default.do" | ||||
|                (("^mod=[^\n]*" all) "mod=go.cypherpunks.ru/nncp/v7")) | ||||
|              ;; Disable timeout in tests. Tests can take longer than the | ||||
|              ;; default timeout on spinning disks. | ||||
|              (substitute* "test.do" | ||||
|                (("test") "test -timeout 0")))) | ||||
|          (replace 'check | ||||
|            (lambda* (#:key tests? #:allow-other-keys) | ||||
|              (when tests? | ||||
|                (invoke "contrib/do" "-c" "test")))) | ||||
|          (add-after 'install 'remove-go-references | ||||
|            (assoc-ref go:%standard-phases 'remove-go-references))))) | ||||
|     (inputs | ||||
|      `(("go-github-com-davecgh-go-xdr" ,go-github-com-davecgh-go-xdr) | ||||
|        ("go-github-com-dustin-go-humanize" ,go-github-com-dustin-go-humanize) | ||||
|        ("go-github-com-flynn-noise" ,go-github-com-flynn-noise) | ||||
|        ("go-github-com-gorhill-cronexpr" ,go-github-com-gorhill-cronexpr) | ||||
|        ("go-github-com-hjson-hjson-go" ,go-github-com-hjson-hjson-go) | ||||
|        ("go-github-com-klauspost-compress" ,go-github-com-klauspost-compress) | ||||
|        ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) | ||||
|        ("go-golang-org-x-net" ,go-golang-org-x-net) | ||||
|        ("go-golang-org-x-term" ,go-golang-org-x-term) | ||||
|        ("go-lukechampine-com-blake3" ,go-lukechampine-com-blake3))) | ||||
|     (native-inputs | ||||
|      `(("go" ,go) | ||||
|        ("texinfo" ,texinfo))) | ||||
|     (home-page "http://www.nncpgo.org/") | ||||
|     (synopsis "Store and forward utilities") | ||||
|     (description "NNCP (Node to Node copy) is a collection of utilities | ||||
| simplifying secure store-and-forward files, mail and command exchanging. | ||||
| These utilities are intended to help build up small size (dozens of nodes) | ||||
| ad-hoc friend-to-friend (F2F) statically routed darknet delay-tolerant | ||||
| networks for fire-and-forget secure reliable files, file requests, Internet | ||||
| mail and commands transmission.  All packets are integrity checked, end-to-end | ||||
| encrypted, explicitly authenticated by known participants public keys.  Onion | ||||
| encryption is applied to relayed packets.  Each node acts both as a client and | ||||
| server, can use push and poll behaviour model.  Multicasting areas, offline | ||||
| sneakernet/floppynet, dead drops, sequential and append-only CD-ROM/tape | ||||
| storages, air-gapped computers and online TCP daemon with full-duplex | ||||
| resumable data transmission exists are all supported.") | ||||
|     (license gpl3))) | ||||
|  |  | |||
|  | @ -1036,7 +1036,7 @@ a built-in cache to decrease server I/O pressure.") | |||
|                                "'")) | ||||
|                (("/usr/sbin/sendmail") | ||||
|                 (search-input-file inputs | ||||
|                                    "/usr/sbin/sendmail")))))))) | ||||
|                                    "/sbin/sendmail")))))))) | ||||
|     (inputs | ||||
|      `(("git" ,git) | ||||
|        ("sendmail" ,sendmail))) | ||||
|  | @ -1603,7 +1603,7 @@ execution of any hook written in any language before every commit.") | |||
| (define-public mercurial | ||||
|   (package | ||||
|     (name "mercurial") | ||||
|     (version "5.8") | ||||
|     (version "5.8.1") | ||||
|     (source (origin | ||||
|              (method url-fetch) | ||||
|              (uri (string-append "https://www.mercurial-scm.org/" | ||||
|  | @ -1611,7 +1611,7 @@ execution of any hook written in any language before every commit.") | |||
|              (patches (search-patches "mercurial-hg-extension-path.patch")) | ||||
|              (sha256 | ||||
|               (base32 | ||||
|                "17rhlmmkqz5ll3k68jfzpcifg3nndbcbc2nx7kw8xn3qcj7nlpgw")))) | ||||
|                "16xi4bmjqzi7ig8sfa5mnypfpbbbiyafmmqrs4nxmgc743za7fl1")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:make-flags | ||||
|  |  | |||
|  | @ -781,7 +781,7 @@ television and DVD.  It is also known as AC-3.") | |||
| (define-public libaom | ||||
|   (package | ||||
|     (name "libaom") | ||||
|     (version "3.1.1") | ||||
|     (version "3.1.2") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|  | @ -790,7 +790,7 @@ television and DVD.  It is also known as AC-3.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "11fy2xw35ladkjcz71samhcpqlqr3y0n1n17nk90i13aydrll66f")))) | ||||
|                 "1c7yrhb56qj5c3lz54n1f9cbrvdr32g2yrrdiiy72sib8ycq9hz2")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (native-inputs | ||||
|      `(("perl" ,perl) | ||||
|  | @ -4752,7 +4752,7 @@ and audio capture, network stream playback, and many more.") | |||
| (define-public dav1d | ||||
|   (package | ||||
|     (name "dav1d") | ||||
|     (version "0.9.0") | ||||
|     (version "0.9.1") | ||||
|     (source | ||||
|       (origin | ||||
|         (method git-fetch) | ||||
|  | @ -4761,7 +4761,7 @@ and audio capture, network stream playback, and many more.") | |||
|                (commit version))) | ||||
|         (file-name (git-file-name name version)) | ||||
|         (sha256 | ||||
|          (base32 "0ki3wlyaqr80gl1srbbd18dd5bs1sl9icxym8ar62abpvgzxl5yk")))) | ||||
|          (base32 "15ngaqyjbwkj0rd9mvxaqf3i9vzsnlrqgr50cnxxjqnpf7xdmslj")))) | ||||
|     (build-system meson-build-system) | ||||
|     (native-inputs `(("nasm" ,nasm))) | ||||
|     (home-page "https://code.videolan.org/videolan/dav1d") | ||||
|  |  | |||
|  | @ -303,7 +303,7 @@ and the GTK+ toolkit.") | |||
| (define-public lynx | ||||
|   (package | ||||
|     (name "lynx") | ||||
|     (version "2.9.0dev.6") | ||||
|     (version "2.9.0dev.9") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append | ||||
|  | @ -311,7 +311,7 @@ and the GTK+ toolkit.") | |||
|                     "/lynx" version ".tar.bz2")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1cjkpwxc1r8x8q73bgh9a4skaph1bwa0anml6f6lvf7lh5zvxw3q")))) | ||||
|                 "06jhv8ibfw1xkf8d8zrnkc2aw4d462s77hlp6f6xa6k8awzxvmkg")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (native-inputs `(("pkg-config" ,pkg-config) | ||||
|                      ("perl" ,perl))) | ||||
|  | @ -490,7 +490,7 @@ interface.") | |||
| (define-public qutebrowser | ||||
|   (package | ||||
|     (name "qutebrowser") | ||||
|     (version "2.2.2") | ||||
|     (version "2.3.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -498,7 +498,7 @@ interface.") | |||
|                            "qutebrowser/releases/download/v" version "/" | ||||
|                            "qutebrowser-" version ".tar.gz")) | ||||
|        (sha256 | ||||
|         (base32 "11vjp20gzmdjj09b7wxzn7ar6viih0bk76y618yqsyqqkffylmbq")))) | ||||
|         (base32 "05n64mw9lzzxpxr7lhakbkm9ir3x8p0rwk6vbbg01aqg5iaanyj0")))) | ||||
|     (build-system python-build-system) | ||||
|     (native-inputs | ||||
|      `(("python-attrs" ,python-attrs))) ; for tests | ||||
|  |  | |||
|  | @ -1382,8 +1382,7 @@ current version of any major web browser.") | |||
|                '(begin | ||||
|                   ;; Remove code using the problematic JSON license (see | ||||
|                   ;; <https://www.gnu.org/licenses/license-list.html#JSON>). | ||||
|                   (delete-file-recursively "bin/jsonchecker") | ||||
|                   #t)))) | ||||
|                   (delete-file-recursively "bin/jsonchecker"))))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      (if (string-prefix? "aarch64" (or (%current-target-system) | ||||
|  | @ -1393,10 +1392,8 @@ current version of any major web browser.") | |||
|              (add-after 'unpack 'patch-aarch-march-detection | ||||
|                (lambda _ | ||||
|                  (substitute* (find-files "." "^CMakeLists\\.txt$") | ||||
|                    (("native") "armv8-a")) | ||||
|                  #t)))) | ||||
|          ;; Disable CPU optimization for reproducibility. | ||||
|          '(#:configure-flags '("-DRAPIDJSON_ENABLE_INSTRUMENTATION_OPT=OFF")))) | ||||
|                    (("native") "armv8-a")))))) | ||||
|          '())) | ||||
|     (home-page "https://github.com/Tencent/rapidjson") | ||||
|     (synopsis "JSON parser/generator for C++ with both SAX/DOM style API") | ||||
|     (description | ||||
|  |  | |||
|  | @ -50,6 +50,7 @@ | |||
| ;;; Copyright © 2021 Paul A. Patience <paul@apatience.com> | ||||
| ;;; Copyright © 2021 Niklas Eklund <niklas.eklund@posteo.net> | ||||
| ;;; Copyright © 2021 Nikita Domnitskii <nikita@domnitskii.me> | ||||
| ;;; Copyright © 2021 ikasero <ahmed@ikasero.com> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -101,6 +102,7 @@ | |||
|   #:use-module (gnu packages haskell-xyz) | ||||
|   #:use-module (gnu packages icu4c) | ||||
|   #:use-module (gnu packages image) | ||||
|   #:use-module (gnu packages libevent) | ||||
|   #:use-module (gnu packages linux) | ||||
|   #:use-module (gnu packages m4) | ||||
|   #:use-module (gnu packages man) | ||||
|  | @ -912,6 +914,55 @@ xedit, for example.  The human factors crowd would agree it should make | |||
| things less distracting.") | ||||
|     (license license:public-domain))) | ||||
| 
 | ||||
| (define-public unclutter-xfixes | ||||
|   (package | ||||
|     (name "unclutter-xfixes") | ||||
|     (version "1.5") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|              (url "https://github.com/Airblader/unclutter-xfixes") | ||||
|              (commit (string-append "v" version)))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "148m4wx8v57s3l2wb69y9imb00y8ca2li27hsxibwnl1wrkb7z4b")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments `(#:tests? #f | ||||
|                  #:make-flags | ||||
|                  (list ,(string-append "CC=" (cc-for-target)) | ||||
|                        (string-append "PREFIX=" (assoc-ref %outputs "out"))) | ||||
|                  #:phases | ||||
|                  (modify-phases %standard-phases | ||||
|                    (delete 'configure)))) | ||||
|     (inputs | ||||
|      `(("libx11" ,libx11) | ||||
|        ("libev" ,libev) | ||||
|        ("libxfixes" ,libxfixes) | ||||
|        ("libxi" ,libxi))) | ||||
|     (native-inputs | ||||
|      `(("asciidoc" ,asciidoc) | ||||
|        ("pkg-config" ,pkg-config))) | ||||
|     (home-page "https://github.com/Airblader/unclutter-xfixes") | ||||
|     (synopsis "Hide idle mouse cursor") | ||||
|     (description | ||||
|      "unclutter-xfixes is a rewrite of the popular tool unclutter, but | ||||
| using the x11-xfixes extension.  This means that this rewrite doesn't | ||||
| use fake windows or pointer grabbing and hence causes less problems | ||||
| with window managers and/or applications. | ||||
| 
 | ||||
| Unclutter is a program which runs permanently in the background of an | ||||
| X11 session.  It checks on the X11 pointer (cursor) position every few | ||||
| seconds, and when it finds it has not moved (and no buttons are pressed | ||||
| on the mouse, and the cursor is not in the root window) it creates a | ||||
| small sub-window as a child of the window the cursor is in.  The new | ||||
| window installs a cursor of size 1x1 but a mask of all 0, i.e. an | ||||
| invisible cursor.  This allows you to see all the text in an xterm or | ||||
| xedit, for example.  The human factors crowd would agree it should make | ||||
| things less distracting.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public xautomation | ||||
|   (package | ||||
|     (name "xautomation") | ||||
|  |  | |||
|  | @ -1243,7 +1243,7 @@ of data to either CD/DVD/BD.") | |||
| (define-public mousepad | ||||
|   (package | ||||
|     (name "mousepad") | ||||
|     (version "0.5.5") | ||||
|     (version "0.5.6") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "https://archive.xfce.org/src/apps/mousepad/" | ||||
|  | @ -1251,7 +1251,7 @@ of data to either CD/DVD/BD.") | |||
|                                   version ".tar.bz2")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1qdbch7g8ppwn1rsm8nq9rbvabvx02lvn3dxb45ga3g1w005zhs0")))) | ||||
|                 "03rmjraxb6a3w7gknmf6mdzkfc0m8shs1vkb2chvv28xn1irhma2")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      '(#:configure-flags '(;; Use the GSettings keyfile backend rather than | ||||
|  |  | |||
Some files were not shown because too many files have changed in this diff Show more
		Reference in a new issue