Merge tracking branch 'master' into gnome-team.
This commit is contained in:
		
						commit
						baf5b07454
					
				
					 90 changed files with 21109 additions and 1188 deletions
				
			
		
							
								
								
									
										57
									
								
								Makefile.am
									
										
									
									
									
								
							
							
						
						
									
										57
									
								
								Makefile.am
									
										
									
									
									
								
							|  | @ -7,7 +7,7 @@ | |||
| # Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> | ||||
| # Copyright © 2017 Leo Famulari <leo@famulari.name> | ||||
| # Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> | ||||
| # Copyright © 2017, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> | ||||
| # Copyright © 2017, 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org> | ||||
| # Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> | ||||
| # Copyright © 2018 Nikita <nikita@n0.is> | ||||
| # Copyright © 2018 Julien Lepiller <julien@lepiller.eu> | ||||
|  | @ -698,8 +698,7 @@ EXTRA_DIST +=						\ | |||
|   build-aux/compile-all.scm				\ | ||||
|   build-aux/compile-as-derivation.scm			\ | ||||
|   build-aux/config.rpath				\ | ||||
|   build-aux/convert-xref.scm			\ | ||||
|   build-aux/cuirass/hurd-manifest.scm			\ | ||||
|   build-aux/convert-xref.scm				\ | ||||
|   build-aux/generate-authors.scm			\ | ||||
|   build-aux/test-driver.scm				\ | ||||
|   build-aux/update-NEWS.scm				\ | ||||
|  | @ -709,6 +708,7 @@ EXTRA_DIST +=						\ | |||
|   etc/guix-install.sh					\ | ||||
|   etc/historical-authorizations				\ | ||||
|   etc/news.scm						\ | ||||
|   etc/hurd-manifest.scm					\ | ||||
|   etc/kernels-manifest.scm				\ | ||||
|   etc/release-manifest.scm				\ | ||||
|   etc/source-manifest.scm				\ | ||||
|  | @ -776,15 +776,30 @@ endef | |||
| # in <https://issues.guix.gnu.org/48963>.  Each 'eval' call below creates a | ||||
| # 'make-*-go' phony target that builds the corresponding subset. | ||||
| 
 | ||||
| first_half :=								\ | ||||
|   gnu/packages/a% gnu/packages/b% gnu/packages/c% gnu/packages/d%	\ | ||||
|   gnu/packages/e% gnu/packages/f% gnu/packages/g% gnu/packages/h%	\ | ||||
|   gnu/packages/i% gnu/packages/j% gnu/packages/k% gnu/packages/l% | ||||
| first_fifth :=								\ | ||||
|   gnu/packages/a% gnu/packages/b% gnu/packages/c% | ||||
| 
 | ||||
| second_fifth :=								\ | ||||
|   gnu/packages/d% gnu/packages/e% gnu/packages/f% | ||||
| 
 | ||||
| third_fifth :=								\ | ||||
|   gnu/packages/g%  gnu/packages/h% gnu/packages/i% | ||||
| 
 | ||||
| fourth_fifth :=								\ | ||||
|   gnu/packages/j% gnu/packages/k% gnu/packages/l% gnu/packages/m% 	\ | ||||
|   gnu/packages/n% gnu/packages/o% | ||||
| 
 | ||||
| MODULES_CORE      := guix.scm $(filter-out guix/scripts/%,$(filter guix/%,$(MODULES))) | ||||
| MODULES_PACKAGES1 := $(filter $(first_half),$(MODULES)) | ||||
| MODULES_PACKAGES2 := $(filter-out $(first_half),$(filter gnu/packages/%,$(MODULES))) | ||||
| MODULES_PACKAGES  := $(MODULES_PACKAGES1) $(MODULES_PACKAGES2) | ||||
| MODULES_PACKAGES1 := $(filter $(first_fifth),$(MODULES)) | ||||
| MODULES_PACKAGES2 := $(filter $(second_fifth),$(MODULES)) | ||||
| MODULES_PACKAGES3 := $(filter $(third_fifth),$(MODULES)) | ||||
| MODULES_PACKAGES4 := $(filter $(fourth_fifth),$(MODULES)) | ||||
| MODULES_PACKAGES5 := $(filter-out $(first_fifth) $(second_fifth)	\ | ||||
| 			$(third_fifth) $(fourth_fifth),			\ | ||||
| 			$(filter gnu/packages/%,$(MODULES))) | ||||
| MODULES_PACKAGES  := $(MODULES_PACKAGES1) $(MODULES_PACKAGES2)		\ | ||||
| 			$(MODULES_PACKAGES3) $(MODULES_PACKAGES4)	\ | ||||
| 			$(MODULES_PACKAGES5) | ||||
| MODULES_SYSTEM    := gnu.scm $(filter-out gnu/packages/%,$(filter gnu/%,$(MODULES))) | ||||
| MODULES_CLI       := $(filter guix/scripts/%,$(MODULES)) | ||||
| MODULES_PO        := guix/build/po.scm | ||||
|  | @ -804,7 +819,27 @@ $(eval $(call guile-compilation-rule,make-packages2-go,	\ | |||
|   $(words $(MODULES_CORE) $(MODULES_PACKAGES1)))) | ||||
| .PHONY: make-packages2-go | ||||
| 
 | ||||
| make-packages-go: make-packages1-go make-packages2-go | ||||
| $(eval $(call guile-compilation-rule,make-packages3-go,				\ | ||||
|   $(MODULES_PACKAGES3) make-core-go make-packages1-go make-packages2-go,	\ | ||||
|   $(words $(MODULES_CORE) $(MODULES_PACKAGES1) $(MODULES_PACKAGES2)))) | ||||
| .PHONY: make-packages3-go | ||||
| 
 | ||||
| $(eval $(call guile-compilation-rule,make-packages4-go,			\ | ||||
|   $(MODULES_PACKAGES4) make-core-go make-packages1-go make-packages2-go	\ | ||||
|     make-packages3-go,							\ | ||||
|   $(words $(MODULES_CORE) $(MODULES_PACKAGES1) $(MODULES_PACKAGES2)	\ | ||||
|     $(MODULES_PACKAGES3)))) | ||||
| .PHONY: make-packages4-go | ||||
| 
 | ||||
| $(eval $(call guile-compilation-rule,make-packages5-go,			\ | ||||
|   $(MODULES_PACKAGES5) make-core-go make-packages1-go make-packages2-go	\ | ||||
|     make-packages3-go make-packages4-go,				\ | ||||
|   $(words $(MODULES_CORE) $(MODULES_PACKAGES1) $(MODULES_PACKAGES2)	\ | ||||
|     $(MODULES_PACKAGES3) $(MODULES_PACKAGES4)))) | ||||
| .PHONY: make-packages5-go | ||||
| 
 | ||||
| make-packages-go: make-packages1-go make-packages2-go \ | ||||
|   make-packages3-go make-packages4-go make-packages5-go | ||||
| .PHONY: make-packages-go | ||||
| 
 | ||||
| $(eval $(call guile-compilation-rule,make-system-go,	\ | ||||
|  |  | |||
|  | @ -2019,17 +2019,23 @@ One can run: | |||
| mathieu@@cervin:~$ guix system --list-image-types | ||||
| The available image types are: | ||||
| 
 | ||||
|    - unmatched-raw | ||||
|    - rock64-raw | ||||
|    - pinebook-pro-raw | ||||
|    - pine64-raw | ||||
|    - novena-raw | ||||
|    - hurd-raw | ||||
|    - hurd-qcow2 | ||||
|    - qcow2 | ||||
|    - uncompressed-iso9660 | ||||
|    - efi-raw | ||||
|    - arm64-raw | ||||
|    - arm32-raw | ||||
|    - iso9660 | ||||
|    - uncompressed-iso9660 | ||||
|    - tarball | ||||
|    - efi-raw | ||||
|    - mbr-raw | ||||
|    - docker | ||||
|    - wsl2 | ||||
|    - raw-with-offset | ||||
|    - efi32-raw | ||||
| @end example | ||||
| 
 | ||||
| and by writing an @code{operating-system} file based on | ||||
|  |  | |||
							
								
								
									
										150
									
								
								doc/guix.texi
									
										
									
									
									
								
							
							
						
						
									
										150
									
								
								doc/guix.texi
									
										
									
									
									
								
							|  | @ -96,7 +96,7 @@ Copyright @copyright{} 2021 Domagoj Stolfa@* | |||
| Copyright @copyright{} 2021 Hui Lu@* | ||||
| Copyright @copyright{} 2021 pukkamustard@* | ||||
| Copyright @copyright{} 2021 Alice Brenon@* | ||||
| Copyright @copyright{} 2021, 2022 Josselin Poiret@* | ||||
| Copyright @copyright{} 2021-2023 Josselin Poiret@* | ||||
| Copyright @copyright{} 2021, 2023 muradm@* | ||||
| Copyright @copyright{} 2021, 2022 Andrew Tropin@* | ||||
| Copyright @copyright{} 2021 Sarah Morgensen@* | ||||
|  | @ -450,6 +450,8 @@ Home Services | |||
| * Mail: Mail Home Services.     Services for managing mail. | ||||
| * Messaging: Messaging Home Services.  Services for managing messaging. | ||||
| * Media: Media Home Services.   Services for managing media. | ||||
| * Networking: Networking Home Services.  Networking services. | ||||
| * Miscellaneous: Miscellaneous Home Services.  More services. | ||||
| 
 | ||||
| Platforms | ||||
| 
 | ||||
|  | @ -1405,7 +1407,7 @@ The system types the remote machine supports---e.g., @code{(list | |||
| "x86_64-linux" "i686-linux")}. | ||||
| 
 | ||||
| @item user | ||||
| The user account to use when connecting to the remote machine over SSH. | ||||
| The user account on the remote machine to use when connecting over SSH. | ||||
| Note that the SSH key pair must @emph{not} be passphrase-protected, to | ||||
| allow non-interactive logins. | ||||
| 
 | ||||
|  | @ -1499,6 +1501,11 @@ archives of files from the store (@pxref{Invoking guix archive}): | |||
| # guix archive --generate-key | ||||
| @end example | ||||
| 
 | ||||
| @quotation Note | ||||
| This key pair is not related to the SSH key pair that was previously | ||||
| mentioned in the description of the @code{build-machine} data type. | ||||
| @end quotation | ||||
| 
 | ||||
| @noindent | ||||
| Each build machine must authorize the key of the master machine so that | ||||
| it accepts store items it receives from the master: | ||||
|  | @ -6264,6 +6271,14 @@ building or downloading any missing package, and runs the | |||
| guix shell python python-numpy -- python3 | ||||
| @end example | ||||
| 
 | ||||
| Note that it is necessary to include the main @code{python} package in | ||||
| this command even if it is already installed into your environment. | ||||
| This is so that the shell environment knows to set @env{PYTHONPATH} and | ||||
| other related variables.  The shell environment cannot check the | ||||
| previously installed environment, because then it would be | ||||
| non-deterministic.  This is true for most libraries: their corresponding | ||||
| language package should be included in the shell invocation. | ||||
| 
 | ||||
| @quotation Note | ||||
| @cindex shebang, for @command{guix shell} | ||||
| @command{guix shell} can be also be used as a script interpreter, also | ||||
|  | @ -18042,6 +18057,10 @@ administrator's choice; reconfiguring does @emph{not} change their name. | |||
| @item @code{home-directory} | ||||
| This is the name of the home directory for the account. | ||||
| 
 | ||||
| @item @code{home-directory-permissions} (default: @code{#o700}) | ||||
| The permission bits for the home directory.  By default, full access is | ||||
| granted to the user account and all other access is denied. | ||||
| 
 | ||||
| @item @code{create-home-directory?} (default: @code{#t}) | ||||
| Indicates whether the home directory of this account should be created | ||||
| if it does not exist yet. | ||||
|  | @ -21303,6 +21322,8 @@ client. | |||
| @end table | ||||
| @end deftp | ||||
| 
 | ||||
| @cindex Syncthing, file synchronization service | ||||
| @cindex backup service, Syncthing | ||||
| The @code{(gnu services syncthing)} module provides the following services: | ||||
| @cindex syncthing | ||||
| 
 | ||||
|  | @ -21320,7 +21341,14 @@ syncthing} daemon, The value for this service type is a | |||
|          (syncthing-configuration (user "alice"))) | ||||
| @end lisp | ||||
| 
 | ||||
| @quotation Note | ||||
| This service is also available for Guix Home, where it runs directly | ||||
| with your user privileges (@pxref{Networking Home Services, | ||||
| @code{home-syncthing-service-type}}). | ||||
| @end quotation | ||||
| 
 | ||||
| See below for details about @code{syncthing-configuration}. | ||||
| @end defvar | ||||
| 
 | ||||
| @deftp {Data Type} syncthing-configuration | ||||
| Data type representing the configuration for @code{syncthing-service-type}. | ||||
|  | @ -21350,7 +21378,6 @@ directory is @file{$HOME} of the specified Syncthing @code{user}. | |||
| 
 | ||||
| @end table | ||||
| @end deftp | ||||
| @end defvar | ||||
| 
 | ||||
| Furthermore, @code{(gnu services ssh)} provides the following services. | ||||
| @cindex SSH | ||||
|  | @ -25084,12 +25111,11 @@ String or G-exp denoting an mcron schedule for the periodic | |||
| @command{updatedb} job (@pxref{Guile Syntax,,, mcron, GNU@tie{}mcron}). | ||||
| 
 | ||||
| @item @code{excluded-directories} (default @code{%default-file-database-excluded-directories}) | ||||
| List of directories to ignore when building the file database.  By | ||||
| default, this includes @file{/tmp} and @file{/gnu/store}, which should | ||||
| instead be indexed by @command{guix locate} (@pxref{Invoking guix | ||||
| locate}).  This list is passed to the @option{--prunepaths} option of | ||||
| @command{updatedb} (@pxref{Invoking updatedb,,, find, | ||||
| GNU@tie{}Findutils}). | ||||
| List of regular expressions of directories to ignore when building the | ||||
| file database.  By default, this includes @file{/tmp} and @file{/gnu/store}; | ||||
| the latter should instead be indexed by @command{guix locate} (@pxref{Invoking | ||||
| guix locate}).  This list is passed to the @option{--prunepaths} option of | ||||
| @command{updatedb} (@pxref{Invoking updatedb,,, find, GNU@tie{}Findutils}). | ||||
| @end table | ||||
| @end deftp | ||||
| 
 | ||||
|  | @ -39082,6 +39108,12 @@ implementation of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual}). | |||
| You can add @command{open localhost} to your @file{~/.dico} file to make | ||||
| @code{localhost} the default server for @command{dico} client | ||||
| (@pxref{Initialization File,,, dico, GNU Dico Manual}). | ||||
| 
 | ||||
| @quotation Note | ||||
| This service is also available for Guix Home, where it runs directly | ||||
| with your user privileges (@pxref{Miscellaneous Home Services, | ||||
| @code{home-dicod-service-type}}). | ||||
| @end quotation | ||||
| @end defvar | ||||
| 
 | ||||
| @deftp {Data Type} dicod-configuration | ||||
|  | @ -40864,7 +40896,7 @@ QEMU monitor and the VM. | |||
| @cindex image, creating disk images | ||||
| The @code{image} command can produce various image types.  The image | ||||
| type can be selected using the @option{--image-type} option.  It | ||||
| defaults to @code{efi-raw}.  When its value is @code{iso9660}, the | ||||
| defaults to @code{mbr-raw}.  When its value is @code{iso9660}, the | ||||
| @option{--label} option can be used to specify a volume ID with | ||||
| @code{image}.  By default, the root file system of a disk image is | ||||
| mounted non-volatile; the @option{--volatile} option can be provided to | ||||
|  | @ -40883,7 +40915,7 @@ qemu-system-x86_64 -enable-kvm -hda /tmp/my-image.qcow2 -m 1000 \ | |||
|                    -bios $(guix build ovmf)/share/firmware/ovmf_x64.bin | ||||
| @end example | ||||
| 
 | ||||
| When using the @code{efi-raw} image type, a raw disk image is produced; | ||||
| When using the @code{mbr-raw} image type, a raw disk image is produced; | ||||
| it can be copied as is to a USB stick, for instance.  Assuming | ||||
| @code{/dev/sdc} is the device corresponding to a USB stick, one can copy | ||||
| the image to it using the following command: | ||||
|  | @ -41021,7 +41053,7 @@ of the image. | |||
| For the @code{image} action, create an image with given @var{type}. | ||||
| 
 | ||||
| When this option is omitted, @command{guix system} uses the | ||||
| @code{efi-raw} image type. | ||||
| @code{mbr-raw} image type. | ||||
| 
 | ||||
| @cindex ISO-9660 format | ||||
| @cindex CD image format | ||||
|  | @ -42972,15 +43004,17 @@ services)}. | |||
| * Mail: Mail Home Services.     Services for managing mail. | ||||
| * Messaging: Messaging Home Services.  Services for managing messaging. | ||||
| * Media: Media Home Services.   Services for managing media. | ||||
| * Networking: Networking Home Services.  Networking services. | ||||
| * Miscellaneous: Miscellaneous Home Services.  More services. | ||||
| @end menu | ||||
| @c In addition to that Home Services can provide | ||||
| 
 | ||||
| @node Essential Home Services | ||||
| @subsection Essential Home Services | ||||
| There are a few essential home services defined in | ||||
| @code{(gnu services)}, they are mostly for internal use and are required | ||||
| to build a home environment, but some of them will be useful for the end | ||||
| user. | ||||
| @code{(gnu home services)}, they are mostly for internal use and are | ||||
| required to build a home environment, but some of them will be useful | ||||
| for the end user. | ||||
| 
 | ||||
| @cindex environment variables | ||||
| 
 | ||||
|  | @ -44561,6 +44595,82 @@ kodi} for more information. | |||
| @end table | ||||
| @end deftp | ||||
| 
 | ||||
| @node Networking Home Services | ||||
| @subsection Networking Home Services | ||||
| 
 | ||||
| This section lists services somewhat networking-related that you may use | ||||
| with Guix Home. | ||||
| 
 | ||||
| @cindex Syncthing, file synchronization service | ||||
| @cindex backup service, Syncthing | ||||
| The @code{(gnu home services syncthing)} module provides a service to | ||||
| set up the @uref{Syncthing, https://syncthing.net} continuous file | ||||
| backup service. | ||||
| 
 | ||||
| @defvar home-syncthing-service-type | ||||
| This is the service type for the @command{syncthing} daemon; it is the | ||||
| Home counterpart of the @code{syncthing-service-type} system service | ||||
| (@pxref{Networking Services, @code{syncthing-service-type}}).  The value | ||||
| for this service type is a @command{syncthing-configuration}. | ||||
| 
 | ||||
| Here is how you would set it up with the default configuration: | ||||
| 
 | ||||
| @lisp | ||||
| (service home-syncthing-service-type) | ||||
| @end lisp | ||||
| 
 | ||||
| For a custom configuration, wrap you @code{syncthing-configuration} in | ||||
| @code{for-home}, as in this example: | ||||
| 
 | ||||
| @lisp | ||||
| (service home-syncthing-service-type | ||||
|          (for-home | ||||
|           (syncthing-configuration (logflags 5)))) | ||||
| @end lisp | ||||
| 
 | ||||
| For details about @code{syncthing-configuration}, check out the | ||||
| documentation of the system service (@pxref{Networking Services, | ||||
| @code{syncthing-service-type}}). | ||||
| @end defvar | ||||
| 
 | ||||
| 
 | ||||
| @node Miscellaneous Home Services | ||||
| @subsection Miscellaneous Home Services | ||||
| 
 | ||||
| This section lists Home services that lack a better place. | ||||
| 
 | ||||
| @subsubheading Dictionary Service | ||||
| 
 | ||||
| @cindex dictionary service, for Home | ||||
| The @code{(gnu home services dict)} module provides the following service: | ||||
| 
 | ||||
| @defvar home-dicod-service-type | ||||
| This is the type of the service that runs the @command{dicod} daemon, an | ||||
| implementation of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual}). | ||||
| 
 | ||||
| You can add @command{open localhost} to your @file{~/.dico} file to make | ||||
| @code{localhost} the default server for @command{dico} client | ||||
| (@pxref{Initialization File,,, dico, GNU Dico Manual}). | ||||
| @end defvar | ||||
| 
 | ||||
| This service is a direct mapping of the @code{dicod-service-type} system | ||||
| service (@pxref{Miscellaneous Services, Dictionary Service}).  You can | ||||
| use it like this: | ||||
| 
 | ||||
| @lisp | ||||
| (service home-dicod-service-type) | ||||
| @end lisp | ||||
| 
 | ||||
| You may specify a custom configuration by providing a | ||||
| @code{dicod-configuration} record, exactly like for | ||||
| @code{dicod-service-type}, but wrapping it in @code{for-home}: | ||||
| 
 | ||||
| @lisp | ||||
| (service home-dicod-service-type | ||||
|          (for-home | ||||
|           (dicod-configuration @dots{}))) | ||||
| @end lisp | ||||
| 
 | ||||
| @node Invoking guix home | ||||
| @section Invoking @command{guix home} | ||||
| 
 | ||||
|  | @ -45095,7 +45205,7 @@ then directly boot from it, without any kind of installation procedure. | |||
| 
 | ||||
| The @command{guix system image} command is able to turn an operating | ||||
| system definition into a bootable image.  This command supports | ||||
| different image types, such as @code{efi-raw}, @code{iso9660} and | ||||
| different image types, such as @code{mbr-raw}, @code{iso9660} and | ||||
| @code{docker}.  Any modern @code{x86_64} machine will probably be able | ||||
| to boot from an @code{iso9660} image.  However, there are a few machines | ||||
| out there that require specific image types.  Those machines, in general | ||||
|  | @ -45447,6 +45557,10 @@ record. | |||
| There are several @code{image-type} records provided by the @code{(gnu | ||||
| system image)} and the @code{(gnu system images @dots{})} modules. | ||||
| 
 | ||||
| @defvar mbr-raw-image-type | ||||
| Build an image based on the @code{mbr-disk-image} image. | ||||
| @end defvar | ||||
| 
 | ||||
| @defvar efi-raw-image-type | ||||
| Build an image based on the @code{efi-disk-image} image. | ||||
| @end defvar | ||||
|  | @ -45456,7 +45570,7 @@ Build an image based on the @code{efi32-disk-image} image. | |||
| @end defvar | ||||
| 
 | ||||
| @defvar qcow2-image-type | ||||
| Build an image based on the @code{efi-disk-image} image but with the | ||||
| Build an image based on the @code{mbr-disk-image} image but with the | ||||
| @code{compressed-qcow2} image format. | ||||
| @end defvar | ||||
| 
 | ||||
|  | @ -45527,7 +45641,7 @@ wsl -d Guix | |||
| 
 | ||||
| So, if we get back to the @code{guix system image} command taking an | ||||
| @code{operating-system} declaration as argument.  By default, the | ||||
| @code{efi-raw-image-type} is used to turn the provided | ||||
| @code{mbr-raw-image-type} is used to turn the provided | ||||
| @code{operating-system} into an actual bootable image. | ||||
| 
 | ||||
| To use a different @code{image-type}, the @code{--image-type} option can | ||||
|  |  | |||
|  | @ -229,8 +229,8 @@ $(srcdir)/%D%/guix.1: scripts/guix.in $(sub_commands_mans) | |||
| # The 'case' ensures the man pages are only generated if the corresponding
 | ||||
| # source script (the first prerequisite) has been changed.  The $(GOBJECTS)
 | ||||
| # prerequisite is solely meant to force these docs to be made only after all
 | ||||
| # Guile modules have been compiled.
 | ||||
| $(srcdir)/%D%/guix-%.1: guix/scripts/%.scm $(GOBJECTS) | ||||
| # Guile modules have been compiled.  We also need the guix script to exist.
 | ||||
| $(srcdir)/%D%/guix-%.1: scripts/guix guix/scripts/%.scm $(GOBJECTS) | ||||
| 	-@case '$?' in \
 | ||||
| 	  *$<*) $(AM_V_P) && set -x || echo "  HELP2MAN $@"; \
 | ||||
| 	        $(gen_man) --output="$@" "guix $*";; \
 | ||||
|  |  | |||
							
								
								
									
										50
									
								
								etc/teams/qt/common.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								etc/teams/qt/common.scm
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,50 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2023 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/>. | ||||
| 
 | ||||
| ;;; This file returns a manifest of packages related to linux-libre. | ||||
| ;;; Simplistically, it selects packages whose names begin with "linux-libre". | ||||
| ;;; It is used to assist continuous integration of the kernel packages. | ||||
| 
 | ||||
| (use-modules (guix packages) | ||||
|              (guix profiles) | ||||
|              (guix utils) | ||||
|              (gnu packages)) | ||||
| 
 | ||||
| (define* (qt-packages-manifest #:key major-version negate-version-test?) | ||||
|   "Return a manifest of Qt packages for MAJOR-VERSION, or any version if left | ||||
| unspecified.  If NEGATE-VERSION-TEST? is true, select all the Qt packages | ||||
| *not* matching MAJOR-VERSION." | ||||
|   (manifest | ||||
|    (map package->manifest-entry | ||||
|         (fold-packages | ||||
|          (lambda (package lst) | ||||
|            (let ((uri (and=> (package-source package) | ||||
|                              (lambda (x) | ||||
|                                (and (origin? x) | ||||
|                                     (origin-uri x)))))) | ||||
|              (if (and uri | ||||
|                       (string? uri) | ||||
|                       (string-prefix? "mirror://qt/" uri) | ||||
|                       (if major-version | ||||
|                           ((if negate-version-test? not identity) | ||||
|                            (string=? major-version (version-major | ||||
|                                                     (package-version package)))) | ||||
|                           #t)) | ||||
|                  (cons package lst) | ||||
|                  lst))) | ||||
|          '())))) | ||||
							
								
								
									
										34
									
								
								etc/teams/qt/qt-manifest.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								etc/teams/qt/qt-manifest.scm
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,34 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2023 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/>. | ||||
| 
 | ||||
| ;;; This file returns a manifest of packages related to linux-libre. | ||||
| ;;; Simplistically, it selects packages whose names begin with "linux-libre". | ||||
| ;;; It is used to assist continuous integration of the kernel packages. | ||||
| 
 | ||||
| (load "common.scm") | ||||
| 
 | ||||
| ;;; Commentary: | ||||
| ;;; | ||||
| ;;; This manifest can be used to update the latest Qt packages collection, via | ||||
| ;;; e.g.: | ||||
| ;;; | ||||
| ;;; ./pre-inst-env guix refresh -u -m etc/teams/qt/qt-manifest.scm | ||||
| ;;; | ||||
| ;;; Code: | ||||
| 
 | ||||
| (qt-packages-manifest #:major-version "5" #:negate-version-test? #t) | ||||
							
								
								
									
										34
									
								
								etc/teams/qt/qt5-manifest.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								etc/teams/qt/qt5-manifest.scm
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,34 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2023 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/>. | ||||
| 
 | ||||
| ;;; This file returns a manifest of packages related to linux-libre. | ||||
| ;;; Simplistically, it selects packages whose names begin with "linux-libre". | ||||
| ;;; It is used to assist continuous integration of the kernel packages. | ||||
| 
 | ||||
| (load "common.scm") | ||||
| 
 | ||||
| ;;; Commentary: | ||||
| ;;; | ||||
| ;;; This manifest can be used to update the Qt 5 packages collection, via | ||||
| ;;; e.g.: | ||||
| ;;; | ||||
| ;;; ./pre-inst-env guix refresh -u -m etc/teams/qt/qt5-manifest.scm --target-version=5.15.10 | ||||
| ;;; | ||||
| ;;; Code: | ||||
| 
 | ||||
| (qt-packages-manifest #:major-version "5") | ||||
|  | @ -162,14 +162,14 @@ owner-writable in HOME." | |||
| group records) are all available." | ||||
|   (define (make-home-directory user) | ||||
|     (let ((home (user-account-home-directory user)) | ||||
|           (home-permissions (user-account-home-directory-permissions user)) | ||||
|           (pwd  (getpwnam (user-account-name user)))) | ||||
|       (mkdir-p home) | ||||
| 
 | ||||
|       ;; Always set ownership and permissions for home directories of system | ||||
|       ;; accounts.  If a service needs looser permissions on its home | ||||
|       ;; directories, it can always chmod it in an activation snippet. | ||||
|       ;; accounts. | ||||
|       (chown home (passwd:uid pwd) (passwd:gid pwd)) | ||||
|       (chmod home #o700))) | ||||
|       (chmod home home-permissions))) | ||||
| 
 | ||||
|   (define system-accounts | ||||
|     (filter (lambda (user) | ||||
|  |  | |||
							
								
								
									
										23
									
								
								gnu/ci.scm
									
										
									
									
									
								
							
							
						
						
									
										23
									
								
								gnu/ci.scm
									
										
									
									
									
								
							|  | @ -421,9 +421,9 @@ valid.  Append SUFFIX to the job name." | |||
|               (map channel-url channels))) | ||||
|        arguments)) | ||||
| 
 | ||||
| (define (manifests->jobs store manifests) | ||||
| (define (manifests->jobs store manifests systems) | ||||
|   "Return the list of jobs for the entries in MANIFESTS, a list of file | ||||
| names." | ||||
| names, for each one of SYSTEMS." | ||||
|   (define (load-manifest manifest) | ||||
|     (save-module-excursion | ||||
|      (lambda () | ||||
|  | @ -434,11 +434,12 @@ names." | |||
|     (string-append (manifest-entry-name entry) "-" | ||||
|                    (manifest-entry-version entry))) | ||||
| 
 | ||||
|   (define (manifest-entry->job entry) | ||||
|   (define (manifest-entry->job entry system) | ||||
|     (let* ((obj (manifest-entry-item entry)) | ||||
|            (drv (parameterize ((%graft? #f)) | ||||
|                   (run-with-store store | ||||
|                     (lower-object obj)))) | ||||
|                     (lower-object obj system) | ||||
|                     #:system system))) | ||||
|            (max-silent-time (or (and (package? obj) | ||||
|                                      (assoc-ref (package-properties obj) | ||||
|                                                 'max-silent-time)) | ||||
|  | @ -450,11 +451,13 @@ names." | |||
|                        #:max-silent-time max-silent-time | ||||
|                        #:timeout timeout))) | ||||
| 
 | ||||
|   (map manifest-entry->job | ||||
|        (delete-duplicates | ||||
|         (append-map (compose manifest-entries load-manifest) | ||||
|                     manifests) | ||||
|         manifest-entry=?))) | ||||
|   (let ((entries (delete-duplicates | ||||
|                   (append-map (compose manifest-entries load-manifest) | ||||
|                               manifests) | ||||
|                   manifest-entry=?))) | ||||
|     (append-map (lambda (system) | ||||
|                   (map (cut manifest-entry->job <> system) entries)) | ||||
|                 systems))) | ||||
| 
 | ||||
| (define (arguments->systems arguments) | ||||
|   "Return the systems list from ARGUMENTS." | ||||
|  | @ -576,7 +579,7 @@ names." | |||
|          (('manifests . rest) | ||||
|           ;; Build packages in the list of manifests. | ||||
|           (let ((manifests (arguments->manifests rest channels))) | ||||
|             (manifests->jobs store manifests))) | ||||
|             (manifests->jobs store manifests systems))) | ||||
|          (else | ||||
|           (error "unknown subset" subset)))) | ||||
|      systems))) | ||||
|  |  | |||
|  | @ -33,6 +33,7 @@ | |||
|   #:use-module (guix diagnostics) | ||||
|   #:use-module (guix i18n) | ||||
|   #:use-module (guix modules) | ||||
|   #:use-module (guix memoization) | ||||
|   #:use-module (srfi srfi-1) | ||||
|   #:use-module (srfi srfi-9) | ||||
|   #:use-module (ice-9 match) | ||||
|  | @ -63,11 +64,16 @@ | |||
|             lookup-home-service-types | ||||
|             home-provenance | ||||
| 
 | ||||
|             define-service-type-mapping | ||||
|             system->home-service-type | ||||
| 
 | ||||
|             %initialize-gettext) | ||||
| 
 | ||||
|   #:re-export (service | ||||
|                service-type | ||||
|                service-extension)) | ||||
|                service-extension | ||||
|                for-home | ||||
|                for-home?)) | ||||
| 
 | ||||
| ;;; Comment: | ||||
| ;;; | ||||
|  | @ -513,6 +519,67 @@ directory.  @command{activate} script automatically called during | |||
| reconfiguration or generation switching.  This service can be extended | ||||
| with one gexp, but many times, and all gexps must be idempotent."))) | ||||
| 
 | ||||
|  | ||||
| ;;; | ||||
| ;;; Service type graph rewriting. | ||||
| ;;; | ||||
| 
 | ||||
| (define (service-type-mapping proc) | ||||
|   "Return a procedure that applies PROC to map a service type graph to another | ||||
| one." | ||||
|   (define (rewrite extension) | ||||
|     (match (proc (service-extension-target extension)) | ||||
|       (#f #f) | ||||
|       (target | ||||
|        (service-extension target | ||||
|                           (service-extension-compute extension))))) | ||||
| 
 | ||||
|   (define replace | ||||
|     (mlambdaq (type) | ||||
|       (service-type | ||||
|        (inherit type) | ||||
|        (name (symbol-append 'home- (service-type-name type))) | ||||
|        (location (service-type-location type)) | ||||
|        (extensions (filter-map rewrite (service-type-extensions type)))))) | ||||
| 
 | ||||
|   replace) | ||||
| 
 | ||||
| (define %system/home-service-type-mapping | ||||
|   ;; Mapping of System to Home services. | ||||
|   (make-hash-table)) | ||||
| 
 | ||||
| (define system->home-service-type | ||||
|   ;; Map the given System service type to the corresponding Home service type. | ||||
|   (let () | ||||
|     (define (replace type) | ||||
|       (define replacement | ||||
|         (hashq-ref %system/home-service-type-mapping type | ||||
|                    *unspecified*)) | ||||
| 
 | ||||
|       (if (eq? replacement *unspecified*) | ||||
|           type | ||||
|           replacement)) | ||||
| 
 | ||||
|     (service-type-mapping replace))) | ||||
| 
 | ||||
| (define-syntax define-service-type-mapping | ||||
|   (syntax-rules (=>) | ||||
|     ((_ system-type => home-type) | ||||
|      (hashq-set! %system/home-service-type-mapping | ||||
|                  system-type home-type)))) | ||||
| 
 | ||||
| (define-syntax define-service-type-mappings | ||||
|   (syntax-rules (=>) | ||||
|     ((_ (system-type => home-type) ...) | ||||
|      (begin | ||||
|        (define-service-type-mapping system-type => home-type) | ||||
|        ...)))) | ||||
| 
 | ||||
| (define-service-type-mappings | ||||
|   (system-service-type => home-service-type) | ||||
|   (activation-service-type => home-activation-service-type) | ||||
|   (profile-service-type => home-profile-service-type)) | ||||
| 
 | ||||
|  | ||||
| ;;; | ||||
| ;;; On-change. | ||||
|  |  | |||
							
								
								
									
										32
									
								
								gnu/home/services/dict.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								gnu/home/services/dict.scm
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,32 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2023 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
| ;;; GNU Guix is free software; you can redistribute it and/or modify it | ||||
| ;;; under the terms of the GNU General Public License as published by | ||||
| ;;; the Free Software Foundation; either version 3 of the License, or (at | ||||
| ;;; your option) any later version. | ||||
| ;;; | ||||
| ;;; GNU Guix is distributed in the hope that it will be useful, but | ||||
| ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| ;;; GNU General Public License for more details. | ||||
| ;;; | ||||
| ;;; You should have received a copy of the GNU General Public License | ||||
| ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| (define-module (gnu home services dict) | ||||
|   #:use-module (gnu home services) | ||||
|   #:use-module (gnu services) | ||||
|   #:use-module (gnu services dict) | ||||
|   #:use-module ((gnu system shadow) #:select (account-service-type)) | ||||
|   #:export (home-dicod-service-type) | ||||
|   #:re-export (dicod-configuration)) | ||||
| 
 | ||||
| (define home-dicod-service-type | ||||
|   (service-type | ||||
|    (inherit (system->home-service-type | ||||
|              (remove-service-extensions dicod-service-type | ||||
|                                         (list account-service-type)))) | ||||
|    (default-value (for-home (dicod-configuration))))) | ||||
|  | @ -2,6 +2,7 @@ | |||
| ;;; Copyright © 2021, 2023 Andrew Tropin <andrew@trop.in> | ||||
| ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> | ||||
| ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||||
| ;;; Copyright © 2023 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -19,16 +20,9 @@ | |||
| ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| (define-module (gnu home services mcron) | ||||
|   #:use-module (gnu packages guile-xyz) | ||||
|   #:use-module (gnu home services) | ||||
|   #:use-module (gnu services configuration) | ||||
|   #:use-module (gnu services shepherd) | ||||
|   #:use-module (gnu home services shepherd) | ||||
|   #:use-module (guix records) | ||||
|   #:use-module (guix gexp) | ||||
|   #:use-module (srfi srfi-1) | ||||
|   #:use-module (ice-9 match) | ||||
| 
 | ||||
|   #:use-module (gnu services mcron)               ;for the service mapping | ||||
|   #:export (home-mcron-configuration | ||||
|             home-mcron-service-type)) | ||||
| 
 | ||||
|  | @ -55,86 +49,16 @@ | |||
| ;; | ||||
| ;;; Code: | ||||
| 
 | ||||
| (define list-of-gexps? | ||||
|   (list-of gexp?)) | ||||
| 
 | ||||
| (define-configuration/no-serialization home-mcron-configuration | ||||
|   (mcron (file-like mcron) "The mcron package to use.") | ||||
|   (jobs | ||||
|    (list-of-gexps '()) | ||||
|    "This is a list of gexps (@pxref{G-Expressions}), where each gexp | ||||
| corresponds to an mcron job specification (@pxref{Syntax, mcron job | ||||
| specifications,, mcron, GNU@tie{}mcron}).") | ||||
|   (log? (boolean #t) "Log messages to standard output.") | ||||
|   (log-format | ||||
|    (string "~1@*~a ~a: ~a~%") | ||||
|    "@code{(ice-9 format)} format string for log messages.  The default value | ||||
| produces messages like \"@samp{@var{pid} @var{name}: | ||||
| @var{message}\"} (@pxref{Invoking mcron, Invoking,, mcron, GNU@tie{}mcron}). | ||||
| Each message is also prefixed by a timestamp by GNU Shepherd.")) | ||||
| 
 | ||||
| (define job-files (@@ (gnu services mcron) job-files)) | ||||
| (define shepherd-schedule-action | ||||
|   (@@ (gnu services mcron) shepherd-schedule-action)) | ||||
| 
 | ||||
| (define (home-mcron-shepherd-services config) | ||||
|   (match-record config <home-mcron-configuration> | ||||
|     (mcron jobs log? log-format) | ||||
|     (if (null? jobs) | ||||
|         '()                                       ;no jobs to run | ||||
|         (let ((files (job-files mcron jobs))) | ||||
|           (list (shepherd-service | ||||
|                  (documentation "User cron jobs.") | ||||
|                  (provision '(mcron)) | ||||
|                  (modules `((srfi srfi-1) | ||||
|                             (srfi srfi-26) | ||||
|                             (ice-9 popen)         ;for the 'schedule' action | ||||
|                             (ice-9 rdelim) | ||||
|                             (ice-9 match) | ||||
|                             ,@%default-modules)) | ||||
|                  (start #~(make-forkexec-constructor | ||||
|                            (list (string-append #$mcron "/bin/mcron") | ||||
|                                  #$@(if log? | ||||
|                                         #~("--log" "--log-format" #$log-format) | ||||
|                                         #~()) | ||||
|                                  #$@files) | ||||
|                            #:log-file (string-append | ||||
|                                        (or (getenv "XDG_STATE_HOME") | ||||
|                                            (format #f "~a/.local/state" | ||||
|                                                    (getenv "HOME"))) | ||||
|                                        "/log/mcron.log"))) | ||||
|                  (stop #~(make-kill-destructor)) | ||||
|                  (actions | ||||
|                   (list (shepherd-schedule-action mcron files))))))))) | ||||
| 
 | ||||
| (define home-mcron-profile (compose list home-mcron-configuration-mcron)) | ||||
| 
 | ||||
| (define (home-mcron-extend config jobs) | ||||
|   (home-mcron-configuration | ||||
|    (inherit config) | ||||
|    (jobs (append (home-mcron-configuration-jobs config) | ||||
|                  jobs)))) | ||||
| (define-syntax-rule (home-mcron-configuration fields ...) | ||||
|   ;; Macro provided for backward compatibility. | ||||
|   (for-home (mcron-configuration fields ...))) | ||||
| 
 | ||||
| (define home-mcron-service-type | ||||
|   (service-type (name 'home-mcron) | ||||
|                 (extensions | ||||
|                  (list (service-extension | ||||
|                         home-shepherd-service-type | ||||
|                         home-mcron-shepherd-services) | ||||
|                        (service-extension | ||||
|                         home-profile-service-type | ||||
|                         home-mcron-profile))) | ||||
|                 (compose concatenate) | ||||
|                 (extend home-mcron-extend) | ||||
|                 (default-value (home-mcron-configuration)) | ||||
|                 (description | ||||
|                  "Install and configure the GNU mcron cron job manager."))) | ||||
|   (service-type | ||||
|    (inherit (system->home-service-type mcron-service-type)) | ||||
|    (default-value (for-home (mcron-configuration))))) | ||||
| 
 | ||||
|  | ||||
| ;;; | ||||
| ;;; Generate documentation. | ||||
| ;;; | ||||
| (define (generate-doc) | ||||
|   (configuration->documentation 'home-mcron-configuration)) | ||||
| (define-service-type-mapping | ||||
|   mcron-service-type => home-mcron-service-type) | ||||
| 
 | ||||
| ;;; mcron.scm ends here | ||||
|  |  | |||
|  | @ -141,7 +141,7 @@ as shepherd package." | |||
| (define (shepherd-xdg-configuration-files config) | ||||
|   `(("shepherd/init.scm" ,(home-shepherd-configuration-file config)))) | ||||
| 
 | ||||
| (define-public home-shepherd-service-type | ||||
| (define home-shepherd-service-type | ||||
|   (service-type (name 'home-shepherd) | ||||
|                 (extensions | ||||
|                  (list (service-extension | ||||
|  | @ -168,4 +168,6 @@ as shepherd package." | |||
|                 (default-value (home-shepherd-configuration)) | ||||
|                 (description "Configure and install userland Shepherd."))) | ||||
| 
 | ||||
| (define-service-type-mapping | ||||
|   shepherd-root-service-type => home-shepherd-service-type) | ||||
| 
 | ||||
|  |  | |||
|  | @ -203,6 +203,9 @@ | |||
|                                           first)))) | ||||
|         (memq keyword ssh-match-keywords)))) | ||||
| 
 | ||||
| (define (serialize-match-criteria _ value) | ||||
|   (string-append "Match " value "\n")) | ||||
| 
 | ||||
| (define-maybe match-criteria) | ||||
| 
 | ||||
| (define-configuration openssh-host | ||||
|  | @ -214,7 +217,7 @@ top-level options.") | |||
|   (host-name | ||||
|    maybe-string | ||||
|    "Host name---e.g., @code{\"foo.example.org\"} or @code{\"192.168.1.2\"}.") | ||||
|   (match-criteria ;TODO implement stricter match-criteria rules | ||||
|   (match-criteria | ||||
|    maybe-match-criteria | ||||
|    "When specified, this string denotes the set of hosts to which the entry | ||||
| applies, superseding the @code{host-name} field.  Its first element must be | ||||
|  | @ -288,8 +291,7 @@ through before connecting to the server.") | |||
|              (G_ "define either 'name' or 'match-criteria', not both"))) | ||||
|            (string-append "Host " (openssh-host-name config) "\n")) | ||||
|        (if (maybe-value-set? (openssh-host-match-criteria config)) | ||||
|            (string-append | ||||
|             "Match " (string-join (openssh-host-match-criteria config) " ") "\n") | ||||
|            (serialize-match-criteria #t (openssh-host-match-criteria config)) | ||||
|            (raise | ||||
|             (formatted-message | ||||
|              (G_ "define either 'name' or 'match-criteria' once"))))) | ||||
|  |  | |||
							
								
								
									
										30
									
								
								gnu/home/services/syncthing.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								gnu/home/services/syncthing.scm
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,30 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2023 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
| ;;; GNU Guix is free software; you can redistribute it and/or modify it | ||||
| ;;; under the terms of the GNU General Public License as published by | ||||
| ;;; the Free Software Foundation; either version 3 of the License, or (at | ||||
| ;;; your option) any later version. | ||||
| ;;; | ||||
| ;;; GNU Guix is distributed in the hope that it will be useful, but | ||||
| ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| ;;; GNU General Public License for more details. | ||||
| ;;; | ||||
| ;;; You should have received a copy of the GNU General Public License | ||||
| ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| (define-module (gnu home services syncthing) | ||||
|   #:use-module (gnu services) | ||||
|   #:use-module (gnu home services) | ||||
|   #:use-module (gnu services syncthing) | ||||
|   #:export (home-syncthing-service-type) | ||||
|   #:re-export (syncthing-configuration | ||||
|                syncthing-configuration?)) | ||||
| 
 | ||||
| (define home-syncthing-service-type | ||||
|   (service-type | ||||
|    (inherit (system->home-service-type syncthing-service-type)) | ||||
|    (default-value (for-home (syncthing-configuration))))) | ||||
|  | @ -92,6 +92,7 @@ GNU_SYSTEM_MODULES =				\ | |||
|   %D%/home.scm					\
 | ||||
|   %D%/home/services.scm			\
 | ||||
|   %D%/home/services/desktop.scm			\
 | ||||
|   %D%/home/services/dict.scm			\
 | ||||
|   %D%/home/services/symlink-manager.scm		\
 | ||||
|   %D%/home/services/fontutils.scm		\
 | ||||
|   %D%/home/services/gnupg.scm			\
 | ||||
|  | @ -104,6 +105,7 @@ GNU_SYSTEM_MODULES =				\ | |||
|   %D%/home/services/shepherd.scm		\
 | ||||
|   %D%/home/services/sound.scm			\
 | ||||
|   %D%/home/services/ssh.scm			\
 | ||||
|   %D%/home/services/syncthing.scm		\
 | ||||
|   %D%/home/services/mcron.scm			\
 | ||||
|   %D%/home/services/utils.scm			\
 | ||||
|   %D%/home/services/xdg.scm			\
 | ||||
|  | @ -1598,7 +1600,6 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/mcrypt-CVE-2012-4527.patch			\
 | ||||
|   %D%/packages/patches/libmemcached-build-with-gcc7.patch	\
 | ||||
|   %D%/packages/patches/libmhash-hmac-fix-uaf.patch		\
 | ||||
|   %D%/packages/patches/libsigrokdecode-python3.9-fix.patch	\
 | ||||
|   %D%/packages/patches/maturin-no-cross-compile.patch		\
 | ||||
|   %D%/packages/patches/mecab-variable-param.patch		\
 | ||||
|   %D%/packages/patches/memtest86+-build-reproducibly.patch	\
 | ||||
|  | @ -1728,11 +1729,12 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/python-pypdf-annotate-tests-appropriately.patch	\
 | ||||
|   %D%/packages/patches/python-sip-include-dirs.patch	\
 | ||||
|   %D%/packages/patches/python-sgmllib3k-assertions.patch	\
 | ||||
|   %D%/packages/patches/python-shiboken-2-compat.patch		\
 | ||||
|   %D%/packages/patches/python-telingo-fix-comparison.patch	\
 | ||||
|   %D%/packages/patches/python-typeguard-python3.10.patch	\
 | ||||
|   %D%/packages/patches/python-w3lib-fix-test-failure.patch	\
 | ||||
|   %D%/packages/patches/python-wxwidgets-type-errors.patch	\
 | ||||
|   %D%/packages/patches/qtdeclarative-5-disable-qmlcache.patch	\
 | ||||
|   %D%/packages/patches/qtdeclarative-disable-qmlcache.patch	\
 | ||||
|   %D%/packages/patches/quodlibet-fix-invalid-glob.patch	\
 | ||||
|   %D%/packages/patches/quodlibet-fix-mtime-tests.patch		\
 | ||||
|   %D%/packages/patches/qxlsx-fix-include-directory.patch	\
 | ||||
|  | @ -1878,7 +1880,6 @@ dist_patch_DATA =						\ | |||
|   %D%/packages/patches/quagga-reproducible-build.patch          \
 | ||||
|   %D%/packages/patches/quickswitch-fix-dmenu-check.patch	\
 | ||||
|   %D%/packages/patches/quilt-grep-compat.patch 			\
 | ||||
|   %D%/packages/patches/qtwayland-gcc-11.patch			\
 | ||||
|   %D%/packages/patches/qtwayland-dont-recreate-callbacks.patch	\
 | ||||
|   %D%/packages/patches/qtwayland-cleanup-callbacks.patch	\
 | ||||
|   %D%/packages/patches/ragel-char-signedness.patch		\
 | ||||
|  |  | |||
|  | @ -60,6 +60,7 @@ | |||
| ;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream> | ||||
| ;;; Copyright © 2023 Alexey Abramov <levenson@mmer.org> | ||||
| ;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu> | ||||
| ;;; Copyright © 2023 Tobias Kortkamp <tobias.kortkamp@gmail.com> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -97,7 +98,9 @@ | |||
|   #:use-module (guix packages) | ||||
|   #:use-module (guix utils) | ||||
|   #:use-module (gnu packages) | ||||
|   #:use-module (gnu packages acl) | ||||
|   #:use-module (gnu packages algebra) | ||||
|   #:use-module (gnu packages attr) | ||||
|   #:use-module (gnu packages autogen) | ||||
|   #:use-module (gnu packages autotools) | ||||
|   #:use-module (gnu packages base) | ||||
|  | @ -174,6 +177,7 @@ | |||
|   #:use-module (gnu packages tcl) | ||||
|   #:use-module (gnu packages terminals) | ||||
|   #:use-module (gnu packages texinfo) | ||||
|   #:use-module (gnu packages textutils) | ||||
|   #:use-module (gnu packages time) | ||||
|   #:use-module (gnu packages tls) | ||||
|   #:use-module (gnu packages version-control) | ||||
|  | @ -5914,3 +5918,39 @@ Discover other RouterOS devices or @command{mactelnetd} hosts. | |||
|            ;; Note: applies to src/md5.{c,h} | ||||
|            ;; This file is likely to be gone in the next release. | ||||
|            license:zlib)))) | ||||
| 
 | ||||
| (define-public bfs | ||||
|   (package | ||||
|     (name "bfs") | ||||
|     (version "3.0.1") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url "https://github.com/tavianator/bfs") | ||||
|                     (commit version))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1ffma9p82bl0ai4h439cnhvcyyy8x593m27xlf16gsg6knpldm58")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      (list #:make-flags #~(list (string-append "CC=" | ||||
|                                                #$(cc-for-target)) | ||||
|                                 (string-append "PREFIX=" | ||||
|                                                #$output) "bfs") | ||||
|            #:phases #~(modify-phases %standard-phases | ||||
|                         (delete 'configure) | ||||
|                         (add-before 'check 'disable-exec-no-path-test | ||||
|                           (lambda _ | ||||
|                             ;; This test unsets PATH. It then probably cannot find | ||||
|                             ;; echo since it's not inside _PATH_STDPATH (?). We | ||||
|                             ;; delete the test to disable it. | ||||
|                             (delete-file "tests/posix/exec_nopath.sh")))))) | ||||
|     (inputs (list acl attr libcap oniguruma)) | ||||
|     (synopsis "Breadth-first search for your files") | ||||
|     (description | ||||
|      "Bfs is a variant of the UNIX @command{find} command that operates | ||||
| breadth-first rather than depth-first.  It is otherwise compatible with many | ||||
| versions of command{find}, including POSIX, GNU, and *BSD find.") | ||||
|     (home-page "https://tavianator.com/projects/bfs.html") | ||||
|     (license license:bsd-0))) | ||||
|  |  | |||
|  | @ -45,6 +45,7 @@ | |||
| ;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com> | ||||
| ;;; Copyright © 2023 Gabriel Wicki <gabriel@erlikon.ch> | ||||
| ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> | ||||
| ;;; Copyright © 2023 Parnikkapore <poomklao@yahoo.com> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -116,7 +117,9 @@ | |||
|   #:use-module (gnu packages pulseaudio)  ;libsndfile, libsamplerate | ||||
|   #:use-module (gnu packages python) | ||||
|   #:use-module (gnu packages python-build) | ||||
|   #:use-module (gnu packages python-crypto) | ||||
|   #:use-module (gnu packages python-science) | ||||
|   #:use-module (gnu packages python-web) | ||||
|   #:use-module (gnu packages python-xyz) | ||||
|   #:use-module (gnu packages qt) | ||||
|   #:use-module (gnu packages rdf) | ||||
|  | @ -4691,6 +4694,45 @@ flavors EBU R128, ATSC A/85, and ReplayGain 2.0.  It helps normalizing the | |||
| loudness of audio and video files to the same level.") | ||||
|     (license license:gpl2+))) | ||||
| 
 | ||||
| (define-public r128gain | ||||
|   (package | ||||
|     (name "r128gain") | ||||
|     (version "1.0.7") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url "https://github.com/desbma/r128gain.git") | ||||
|                     (commit version))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0zqclskkjb9hfdw9gq6iq4bs9dl1wj9nr8v1jz6s885379q9l8i7")))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|        (list | ||||
|         #:phases | ||||
|         #~(modify-phases %standard-phases | ||||
|             (add-after 'unpack 'hardcode-ffmpeg | ||||
|               (lambda* (#:key inputs #:allow-other-keys) | ||||
|                 (substitute* "r128gain/__init__.py" | ||||
|                   (("ffmpeg_path or \"ffmpeg\"") | ||||
|                    (string-append "ffmpeg_path or \"" | ||||
|                                   (search-input-file inputs "bin/ffmpeg") | ||||
|                                   "\"")))))))) | ||||
|     (inputs (list python-crcmod python-ffmpeg-python python-mutagen | ||||
|                   python-tqdm ffmpeg)) | ||||
|     (native-inputs (list python-future python-requests)) | ||||
|     (home-page "https://github.com/desbma/r128gain") | ||||
|     (synopsis "Fast audio loudness scanner & tagger") | ||||
|     (description | ||||
|      "r128gain is a multi platform command line tool to scan your audio | ||||
| files and tag them with loudness metadata (ReplayGain v2 or Opus R128 gain | ||||
| format), to allow playback of several tracks or albums at a similar | ||||
| loudness level. r128gain can also be used as a Python module from other | ||||
| Python projects to scan and/or tag audio files.") | ||||
|     ;; 'setup.py' claims LGPL2+, 'LICENSE' is LGPLv2.1. | ||||
|     (license license:lgpl2.1+))) | ||||
| 
 | ||||
| (define-public filteraudio | ||||
|   (let ((revision "1") | ||||
|         (commit "2fc669581e2a0ff87fba8de85861b49133306094")) | ||||
|  |  | |||
|  | @ -967,6 +967,10 @@ the store.") | |||
|                      ;; library is empty by some criterion (such as their file | ||||
|                      ;; size equaling eight bytes) rather than hardcoding them | ||||
|                      ;; by name. | ||||
| 
 | ||||
|                      ;; XXX: We forgot librt.a for the current version!  In | ||||
|                      ;; the meantime, gcc-toolchain provides it, but remove | ||||
|                      ;; that fix once librt.a is added here. | ||||
|                      (define empty-static-libraries | ||||
|                        '("libpthread.a" "libdl.a" "libutil.a" "libanl.a")) | ||||
|                      (define (empty-static-library? file) | ||||
|  |  | |||
|  | @ -978,7 +978,7 @@ generation.") | |||
| (define-public googlebenchmark | ||||
|   (package | ||||
|     (name "googlebenchmark") | ||||
|     (version "1.5.3") | ||||
|     (version "1.8.2") | ||||
|     (home-page "https://github.com/google/benchmark") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|  | @ -987,7 +987,7 @@ generation.") | |||
|               (file-name (git-file-name "google-benchmark" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1hls0aqqj5cfldn9jfpvzjhpxkhrydrz9crp477rwllwjsybdxw7")))) | ||||
|                 "1p72bw7xcd88d8268fmmzji59408f552fbiv37jmsixml5dmq9wv")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      '(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON" | ||||
|  |  | |||
|  | @ -87,7 +87,6 @@ | |||
|     (native-inputs | ||||
|      (list eigen | ||||
|            mmtf-cpp | ||||
|            msgpack | ||||
|            googletest | ||||
|            pkg-config | ||||
|            pybind11)) | ||||
|  | @ -248,7 +247,7 @@ molecules.") | |||
| (define-public mmtf-cpp | ||||
|   (package | ||||
|     (name "mmtf-cpp") | ||||
|     (version "1.0.0") | ||||
|     (version "1.1.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -258,11 +257,13 @@ molecules.") | |||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "17ylramda69plf5w0v5hxbl4ggkdi5s15z55cv0pljl12yvyva8l")))) | ||||
|          "0rs2f1ppgqz663c3m22p8wsq6z839bj59zy29chci46ypfhwv6ph")))) | ||||
|     (build-system cmake-build-system) | ||||
|     ;; Tests require the soon-to-be-deprecated version 1 of the catch-framework. | ||||
|     (arguments | ||||
|      '(#:tests? #f)) | ||||
|     (arguments '(#:tests? #f)) | ||||
|     ;; There is no support for modern msgpack versions yet (see: | ||||
|     ;; https://github.com/rcsb/mmtf-cpp/issues/44). | ||||
|     (propagated-inputs (list msgpack))  ;included by mmtf/structure_data.hpp | ||||
|     (home-page "https://mmtf.rcsb.org/") | ||||
|     (synopsis "C++ API for the Macromolecular Transmission Format") | ||||
|     (description "This package is a library for the | ||||
|  | @ -574,7 +575,6 @@ symmetries written in C.  Spglib can be used to: | |||
|            glew | ||||
|            libxml2 | ||||
|            mmtf-cpp | ||||
|            msgpack | ||||
|            python-pyqt | ||||
|            glm | ||||
|            netcdf)) | ||||
|  |  | |||
|  | @ -3561,6 +3561,13 @@ COREUTILS-FINAL vs. COREUTILS, etc." | |||
|                        (union-build (assoc-ref %outputs "static") | ||||
|                                     (list (assoc-ref %build-inputs | ||||
|                                                      "libc-static"))) | ||||
|                        ;; XXX Remove once an empty librt.a is added to | ||||
|                        ;; libc:out. | ||||
|                        (copy-file | ||||
|                         (string-append (assoc-ref %outputs "out") | ||||
|                                        "/lib/libpthread.a") | ||||
|                         (string-append (assoc-ref %outputs "out") | ||||
|                                        "/lib/librt.a")) | ||||
|                        #t)))) | ||||
| 
 | ||||
|       (native-search-paths | ||||
|  |  | |||
|  | @ -530,6 +530,44 @@ which respectively make and check MS-DOS FAT file systems.") | |||
| and a @command{fsck.vfat} compatibility symlink for use in an initrd.") | ||||
|     (license (package-license dosfstools)))) | ||||
| 
 | ||||
| (define-public hdparm | ||||
|   (package | ||||
|     (name "hdparm") | ||||
|     (version "9.65") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "mirror://sourceforge/hdparm/hdparm/" | ||||
|                                   "hdparm-" version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0jssagggg52ssl9kg99m88afghj7bm1854vyf4p96q6h23wjjjfi")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      (list #:make-flags | ||||
|            #~(list (string-append "binprefix=" #$output) | ||||
|                    (string-append "manprefix=" #$output) | ||||
|                    (string-append "CC=" #$(cc-for-target)) | ||||
|                    ;; Let Guix strip binaries and not break cross-compilation. | ||||
|                    "STRIP=true") | ||||
|            #:phases | ||||
|            #~(modify-phases %standard-phases | ||||
|                (delete 'configure))     ; no configure script | ||||
|            #:tests? #f))                ; no test suite | ||||
|     (home-page "https://sourceforge.net/projects/hdparm/") | ||||
|     (synopsis "View and tune ATA disk drive parameters") | ||||
|     (description | ||||
|      "@command{hdparm} is a command-line utility to control ATA controllers and | ||||
| disk drives.  It can increase performance and/or reliability by careful tuning | ||||
| of hardware settings like power and acoustic management, DMA modes, and caching. | ||||
| It can also display detailed device information, or be used as a simple | ||||
| performance benchmarking tool. | ||||
| 
 | ||||
| @command{hdparm} provides a command line interface to various Linux kernel | ||||
| interfaces provided by the SATA/ATA/SAS @code{libata} subsystem, and the older | ||||
| IDE driver subsystem.  Many external USB drive enclosures with SCSI-ATA Command | ||||
| Translation (@dfn{SAT}) are also supported.") | ||||
|     (license (license:non-copyleft "file://LICENSE.TXT")))) | ||||
| 
 | ||||
| (define-public sdparm | ||||
|   (package | ||||
|     (name "sdparm") | ||||
|  |  | |||
|  | @ -79,49 +79,48 @@ to take care of the OS-specific details when writing software that uses serial p | |||
|     (license license:lgpl3+))) | ||||
| 
 | ||||
| (define-public libsigrokdecode | ||||
|   (package | ||||
|     (name "libsigrokdecode") | ||||
|     (version "0.5.3") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append | ||||
|                     "http://sigrok.org/download/source/libsigrokdecode/libsigrokdecode-" | ||||
|                     version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1h1zi1kpsgf6j2z8j8hjpv1q7n49i3fhqjn8i178rka3cym18265")) | ||||
|               (patches | ||||
|                (search-patches "libsigrokdecode-python3.9-fix.patch")))) | ||||
|     (outputs '("out" "doc")) | ||||
|     (arguments | ||||
|      `(#:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (replace 'bootstrap | ||||
|            (lambda _ | ||||
|              (invoke "autoconf") | ||||
|              (invoke "aclocal") | ||||
|              (invoke "automake" "-ac"))) | ||||
|          (add-after 'build 'build-doc | ||||
|            (lambda _ | ||||
|              (invoke "doxygen") | ||||
|              #t)) | ||||
|          (add-after 'install 'install-doc | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (copy-recursively "doxy/html-api" | ||||
|                                (string-append (assoc-ref outputs "doc") | ||||
|                                               "/share/doc/libsigrokdecode")) | ||||
|              #t))))) | ||||
|     (native-inputs | ||||
|      (list check doxygen graphviz pkg-config automake autoconf)) | ||||
|     ;; libsigrokdecode.pc lists "python" in Requires.private, and "glib" in Requires. | ||||
|     (propagated-inputs | ||||
|      (list glib python)) | ||||
|     (build-system gnu-build-system) | ||||
|     (home-page "https://www.sigrok.org/wiki/Libsigrokdecode") | ||||
|     (synopsis "Library providing (streaming) protocol decoding functionality") | ||||
|     (description "Libsigrokdecode is a shared library written in C, which provides | ||||
|   (let ((commit "e6962b3fe8260382bb9932a1cfdd7ee7090ce267") | ||||
|         (revision "0")) | ||||
|     (package | ||||
|       (name "libsigrokdecode") | ||||
|       (version (git-version "0.5.3" revision commit)) | ||||
|       (source (origin | ||||
|                 (method git-fetch) | ||||
|                 (uri (git-reference | ||||
|                       (url "https://github.com/sigrokproject/libsigrokdecode") | ||||
|                       (commit commit))) | ||||
|                 (file-name (git-file-name name version)) | ||||
|                 (sha256 | ||||
|                  (base32 | ||||
|                   "0ik93p6k8hpv8ahchjnmir8paz2w718y1j8pnmrmagjx8vvqd9y6")))) | ||||
|       (outputs '("out" "doc")) | ||||
|       (arguments | ||||
|        `(#:phases | ||||
|          (modify-phases %standard-phases | ||||
|            (add-after 'build 'build-doc | ||||
|              (lambda _ | ||||
|                (invoke "doxygen") | ||||
|                #t)) | ||||
|            (add-after 'install 'install-doc | ||||
|              (lambda* (#:key outputs #:allow-other-keys) | ||||
|                (copy-recursively "doxy/html-api" | ||||
|                                  (string-append (assoc-ref outputs "doc") | ||||
|                                                 "/share/doc/libsigrokdecode")) | ||||
|                #t))))) | ||||
|       (native-inputs | ||||
|        (list check doxygen graphviz pkg-config automake autoconf libtool)) | ||||
|       ;; libsigrokdecode.pc lists "python" in Requires.private, and "glib" in | ||||
|       ;; Requires. | ||||
|       (propagated-inputs | ||||
|        (list glib python)) | ||||
|       (build-system gnu-build-system) | ||||
|       (home-page "https://www.sigrok.org/wiki/Libsigrokdecode") | ||||
|       (synopsis | ||||
|        "Library providing (streaming) protocol decoding functionality") | ||||
|       (description | ||||
|        "Libsigrokdecode is a shared library written in C, which provides | ||||
| (streaming) protocol decoding functionality.") | ||||
|     (license license:gpl3+))) | ||||
|       (license license:gpl3+)))) | ||||
| 
 | ||||
| (define-public sigrok-firmware-fx2lafw | ||||
|   (package | ||||
|  |  | |||
|  | @ -11290,39 +11290,38 @@ interface.") | |||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public emacs-orderless | ||||
|   (let ((commit "004cee6b8e01f8eb0cb1c683d0a637b14890600f")) | ||||
|     (package | ||||
|       (name "emacs-orderless") | ||||
|       (version "1.0") | ||||
|       (source | ||||
|        (origin | ||||
|          (method git-fetch) | ||||
|          (uri (git-reference | ||||
|                (url "https://github.com/oantolin/orderless") | ||||
|                (commit commit))) | ||||
|          (sha256 | ||||
|           (base32 "115bwqi2yc44bgvcl7lha8p2s6jgh5hksn4wa9s0kpfxhi14jwmy")) | ||||
|          (file-name (git-file-name name version)))) | ||||
|       (build-system emacs-build-system) | ||||
|       (arguments | ||||
|        (list | ||||
|         #:phases | ||||
|         #~(modify-phases %standard-phases | ||||
|             (add-after 'install 'makeinfo | ||||
|               (lambda _ | ||||
|                 (invoke "makeinfo" "orderless.texi") | ||||
|                 (install-file "orderless.info" | ||||
|                               (string-append #$output "/share/info"))))))) | ||||
|       (native-inputs | ||||
|        (list texinfo)) | ||||
|       (home-page "https://github.com/oantolin/orderless") | ||||
|       (synopsis "Emacs completion style that matches multiple regexps in any order") | ||||
|       (description "This package provides an orderless completion style that | ||||
|   (package | ||||
|     (name "emacs-orderless") | ||||
|     (version "1.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|              (url "https://github.com/oantolin/orderless") | ||||
|              (commit version))) | ||||
|        (sha256 | ||||
|         (base32 "1jmwyici90v82gqjq44n0scrwhmg05pi9yplkn4bpss80c83dxp4")) | ||||
|        (file-name (git-file-name name version)))) | ||||
|     (build-system emacs-build-system) | ||||
|     (arguments | ||||
|      (list | ||||
|       #:phases | ||||
|       #~(modify-phases %standard-phases | ||||
|           (add-after 'install 'makeinfo | ||||
|             (lambda _ | ||||
|               (invoke "makeinfo" "orderless.texi") | ||||
|               (install-file "orderless.info" | ||||
|                             (string-append #$output "/share/info"))))))) | ||||
|     (native-inputs | ||||
|      (list texinfo)) | ||||
|     (home-page "https://github.com/oantolin/orderless") | ||||
|     (synopsis "Emacs completion style that matches multiple regexps in any order") | ||||
|     (description "This package provides an orderless completion style that | ||||
| divides the pattern into space-separated components, and matches candidates | ||||
| that match all of the components in any order.  Each component can match in | ||||
| any one of several ways: literally, as a regexp, as an initialism, in the flex | ||||
| style, or as multiple word prefixes.") | ||||
|       (license license:gpl3+)))) | ||||
|     (license license:gpl3+))) | ||||
| 
 | ||||
| (define-public emacs-consult | ||||
|   (package | ||||
|  | @ -24410,31 +24409,29 @@ downloading manager for Emacs.") | |||
|       (license license:gpl3+)))) | ||||
| 
 | ||||
| (define-public emacs-helpful | ||||
|   (let ((commit "1c98f6f06a85def5d34c735f8cd407f20cebddf9") | ||||
|         (revision "1")) | ||||
|     (package | ||||
|       (name "emacs-helpful") | ||||
|       (version (git-version "0.19" revision commit)) | ||||
|       (source | ||||
|        (origin | ||||
|          (method git-fetch) | ||||
|          (uri (git-reference | ||||
|                (url "https://github.com/Wilfred/helpful") | ||||
|                (commit commit))) | ||||
|          (file-name (git-file-name name version)) | ||||
|          (sha256 | ||||
|           (base32 "18b5hjfji51zxjrxhkklxx3j9svk295awmxv8n95mp8ilas2kd3l")))) | ||||
|       (build-system emacs-build-system) | ||||
|       (propagated-inputs | ||||
|        (list emacs-dash emacs-elisp-refs emacs-f emacs-s)) | ||||
|       (native-inputs | ||||
|        (list emacs-ert-runner emacs-undercover)) | ||||
|       (arguments | ||||
|        `(#:tests? #t | ||||
|          #:test-command '("ert-runner"))) | ||||
|       (home-page "https://github.com/Wilfred/helpful") | ||||
|       (synopsis "More contextual information in Emacs help") | ||||
|       (description "@code{helpful} is an alternative to the built-in Emacs help | ||||
|   (package | ||||
|     (name "emacs-helpful") | ||||
|     (version "0.21") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|              (url "https://github.com/Wilfred/helpful") | ||||
|              (commit version))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "03afgdbs5nmhw833svrqky7fmfs1zlvqzcj7j5g29sakivs60xqc")))) | ||||
|     (build-system emacs-build-system) | ||||
|     (propagated-inputs | ||||
|      (list emacs-dash emacs-elisp-refs emacs-f emacs-s)) | ||||
|     (native-inputs | ||||
|      (list emacs-ert-runner emacs-undercover)) | ||||
|     (arguments | ||||
|      `(#:tests? #t | ||||
|        #:test-command '("ert-runner"))) | ||||
|     (home-page "https://github.com/Wilfred/helpful") | ||||
|     (synopsis "More contextual information in Emacs help") | ||||
|     (description "@code{helpful} is an alternative to the built-in Emacs help | ||||
| that provides much more contextual information. | ||||
| 
 | ||||
| @itemize | ||||
|  | @ -24453,7 +24450,7 @@ functions. | |||
| @item Trace, disassemble functions from inside Helpful.  This is discoverable | ||||
| and doesn't require memorisation of commands. | ||||
| @end itemize\n") | ||||
|       (license license:gpl3+)))) | ||||
|     (license license:gpl3+))) | ||||
| 
 | ||||
| (define-public emacs-logview | ||||
|   (package | ||||
|  | @ -32445,6 +32442,29 @@ simple but powerful Org contents.") | |||
| on the HTML back-end.") | ||||
|       (license license:gpl3+)))) | ||||
| 
 | ||||
| (define-public emacs-ox-html-stable-ids | ||||
|   (package | ||||
|     (name "emacs-ox-html-stable-ids") | ||||
|     (version "0.1.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|        (uri (git-reference | ||||
|              (url "https://codeberg.org/jkreeftmeijer/ox-html-stable-ids.el") | ||||
|              (commit version))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1slfc1hx6mgx6rb0h0hz7200dmpqr04sz8009r6cy7msp2b91hg7")))) | ||||
|     (build-system emacs-build-system) | ||||
|     (license license:gpl3) | ||||
|     (home-page "https://jeffkreeftmeijer.com/ox-html-stable-ids") | ||||
|     (synopsis "Stable IDs for ox-html.el") | ||||
|     (description | ||||
|      "Ox-html-stable-ids is an Org export extension package that generates | ||||
|  HTML with stable ID attributes instead of the random IDs Org's exporter uses | ||||
| by default."))) | ||||
| 
 | ||||
| (define-public emacs-wc-mode | ||||
|   (package | ||||
|     (name "emacs-wc-mode") | ||||
|  | @ -34171,25 +34191,28 @@ shift-reduce parser function.") | |||
|     (license license:gpl3+))) | ||||
| 
 | ||||
| (define-public emacs-hide-mode-line | ||||
|   (package | ||||
|     (name "emacs-hide-mode-line") | ||||
|     (version "1.0.2") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url "https://github.com/hlissner/emacs-hide-mode-line") | ||||
|                     (commit (string-append "v" version)))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp")))) | ||||
|     (build-system emacs-build-system) | ||||
|     (synopsis "Emacs plugin that hides the mode-line") | ||||
|     (description "A minor mode that hides the mode-line in your current | ||||
| buffer.  It can be used to toggle an alternative mode-line, toggle its visibility, | ||||
| or simply disable the mode-line in buffers where it is not very useful.") | ||||
|     (home-page "https://github.com/hlissner/emacs-hide-mode-line") | ||||
|     (license license:expat))) | ||||
|   ;; XXX: Commit below refers to the un-tagged latest release. | ||||
|   (let ((commit "bc5d293576c5e08c29e694078b96a5ed85631942")) | ||||
|     (package | ||||
|       (name "emacs-hide-mode-line") | ||||
|       (version "1.0.3") | ||||
|       (source (origin | ||||
|                 (method git-fetch) | ||||
|                 (uri (git-reference | ||||
|                       (url "https://github.com/hlissner/emacs-hide-mode-line") | ||||
|                       (commit commit))) | ||||
|                 (file-name (git-file-name name version)) | ||||
|                 (sha256 | ||||
|                  (base32 | ||||
|                   "12mfhg0r3gvy59ijy44vsircn251nmisp04k9vvgd2yhykpsr1j6")))) | ||||
|       (build-system emacs-build-system) | ||||
|       (home-page "https://github.com/hlissner/emacs-hide-mode-line") | ||||
|       (synopsis "Emacs plugin that hides the mode-line") | ||||
|       (description | ||||
|        "A minor mode that hides the mode-line in your current buffer.  It can be | ||||
| used to toggle an alternative mode-line, toggle its visibility, or simply | ||||
| disable the mode-line in buffers where it is not very useful.") | ||||
|       (license license:expat)))) | ||||
| 
 | ||||
| (define-public emacs-helm-cider | ||||
|   (package | ||||
|  |  | |||
|  | @ -1460,19 +1460,20 @@ debugging them, and more.") | |||
| (define-public ebusd | ||||
|   (package | ||||
|     (name "ebusd") | ||||
|     (version "3.4") | ||||
|     (version "23.2") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                      (url "https://github.com/john30/ebusd") | ||||
|                      (commit (string-append "v" version)))) | ||||
|                      (commit version))) | ||||
|               (file-name (string-append name "-" version "-checkout")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0iva70bam7wdx60bpd3an9kxr28zxlvp3vprivgqshwwdhqa0hzp")))) | ||||
|                 "1zqnxk6vgszlf410pypsjjliiy9wawy585fm7v25mka47i6iqafq")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:phases | ||||
|      `(#:configure-flags '("--localstatedir=/var") | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'install 'install-config | ||||
|            (lambda* (#:key inputs outputs #:allow-other-keys) | ||||
|  |  | |||
|  | @ -4214,7 +4214,7 @@ form, numpad. | |||
| (define-public rizin | ||||
|   (package | ||||
|     (name "rizin") | ||||
|     (version "0.5.2") | ||||
|     (version "0.6.1") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append | ||||
|  | @ -4222,7 +4222,7 @@ form, numpad. | |||
|                     version "/rizin-src-v" version ".tar.xz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "18zca3iwdif200wiivm065fs0a5g520q6380205cijca7ky81avi")))) | ||||
|                 "14bcmjx64pgi9zj4zb7yppx69l1ykjwgf2q41s5672m7z354f1kn")))) | ||||
|     (build-system meson-build-system) | ||||
|     (arguments | ||||
|      (list | ||||
|  | @ -4250,13 +4250,10 @@ form, numpad. | |||
|             (lambda _ | ||||
|               ;; Skip integration tests, which require prebuilt binaries at: | ||||
|               ;; <https://github.com/rizinorg/rizin-testbins>. | ||||
|               ;; And 2 of them are failing, reported upstream: | ||||
|               ;; <https://github.com/rizinorg/rizin/issues/2905>. | ||||
|               (substitute* "test/meson.build" | ||||
|                 (("subdir\\('integration'\\)") "")) | ||||
|               ;;; Skip failing tests. | ||||
|               (substitute* "test/unit/meson.build" | ||||
|                 (("'analysis_var',\n") "") | ||||
|                 (("'bin_mach0',\n") "") | ||||
|                 (("'hash',\n") ""))))))) | ||||
|     (native-inputs (list pkg-config)) | ||||
|  |  | |||
|  | @ -87,7 +87,7 @@ client.") | |||
| (define-public fcitx5 | ||||
|   (package | ||||
|     (name "fcitx5") | ||||
|     (version "5.0.23") | ||||
|     (version "5.1.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -95,13 +95,10 @@ client.") | |||
|              "https://download.fcitx-im.org/fcitx5/fcitx5/fcitx5-" | ||||
|              version "_dict.tar.xz")) | ||||
|        (sha256 | ||||
|         (base32 "1w26v0a8qizv8flpkmg04b42kwym6ca1a1chng7j2j1xizjhiw0p")))) | ||||
|     (build-system cmake-build-system) | ||||
|         (base32 "1a1d3bcxddv3hsmffgf608arhamia17bq82q932sy5zl9j8s423y")))) | ||||
|     (arguments | ||||
|      `(#:configure-flags | ||||
|        (list (string-append "-DCLDR_DIR=" | ||||
|                             (assoc-ref %build-inputs "unicode-cldr-common") | ||||
|                             "/share/unicode/cldr")))) | ||||
|      (list #:configure-flags #~(list "-DUSE_SYSTEMD=OFF"))) | ||||
|     (build-system cmake-build-system) | ||||
|     (inputs | ||||
|      `(("cairo" ,cairo) | ||||
|        ("cairo-xcb" ,cairo-xcb) | ||||
|  | @ -115,16 +112,11 @@ client.") | |||
|        ("iso-codes" ,iso-codes) | ||||
|        ("json-c" ,json-c) | ||||
|        ("libevent" ,libevent) | ||||
|        ("libpthread-stubs" ,libpthread-stubs) | ||||
|        ("libuuid" ,util-linux "lib") | ||||
|        ("libx11" ,libx11) | ||||
|        ("libxcb" ,libxcb) | ||||
|        ("libxfixes" ,libxfixes) | ||||
|        ("libxinerama" ,libxinerama) | ||||
|        ("libxkbcommon" ,libxkbcommon) | ||||
|        ("libxkbfile" ,libxkbfile) | ||||
|        ("pango" ,pango) | ||||
|        ("unicode-cldr-common" ,unicode-cldr-common) | ||||
|        ("wayland" ,wayland) | ||||
|        ("wayland-protocols" ,wayland-protocols) | ||||
|        ("xcb-imdkit" ,xcb-imdkit) | ||||
|  | @ -172,14 +164,14 @@ client.") | |||
| (define-public libime | ||||
|   (package | ||||
|     (name "libime") | ||||
|     (version "1.0.17") | ||||
|     (version "1.1.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://download.fcitx-im.org/fcitx5/libime/libime-" | ||||
|                            version "_dict.tar.xz")) | ||||
|        (sha256 | ||||
|         (base32 "00d191nghqkcxky5i2j5v8105ckhfh0bdjbkk8swyndjp35bn54f")))) | ||||
|         (base32 "0jqr9riwygr3c9qzs8hx46smhgys68bf6m70fmam819903a9gpf0")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (inputs | ||||
|      (list fcitx5 boost)) | ||||
|  | @ -194,7 +186,7 @@ editors.") | |||
| (define-public fcitx5-gtk | ||||
|   (package | ||||
|     (name "fcitx5-gtk") | ||||
|     (version "5.0.23") | ||||
|     (version "5.1.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -202,7 +194,7 @@ editors.") | |||
|                            "/fcitx5-gtk/fcitx5-gtk-" | ||||
|                            version ".tar.xz")) | ||||
|        (sha256 | ||||
|         (base32 "0s08j8y7bxn9hjz9xkza2fal24r9az2p7js7v86nbjmvy7klq4md")))) | ||||
|         (base32 "0rc4iwqb7ydysm95qpncfd8kvyzk36cfxwg1h0cjn98v3fxjf8kw")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      (list | ||||
|  | @ -312,7 +304,7 @@ IM module for GTK+3 applications. | |||
| (define-public fcitx5-qt | ||||
|   (package | ||||
|     (name "fcitx5-qt") | ||||
|     (version "5.0.17") | ||||
|     (version "5.1.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -320,7 +312,7 @@ IM module for GTK+3 applications. | |||
|                            "/fcitx5-qt/fcitx5-qt-" | ||||
|                            version ".tar.xz")) | ||||
|        (sha256 | ||||
|         (base32 "1x4iks052jn6dcwd1lv1i9cpwh3l3qnnd3phryfsg4kn4yhyfs22")))) | ||||
|         (base32 "02gnzwf0mlshmh1hw8c1866643qmdqazwjz339jq0c3ll61f8m7h")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:configure-flags | ||||
|  | @ -347,7 +339,7 @@ for Qt based application.") | |||
| (define-public fcitx5-anthy | ||||
|   (package | ||||
|     (name "fcitx5-anthy") | ||||
|     (version "5.0.14") | ||||
|     (version "5.1.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -355,7 +347,7 @@ for Qt based application.") | |||
|                            "/fcitx5-anthy/fcitx5-anthy-" | ||||
|                            version ".tar.xz")) | ||||
|        (sha256 | ||||
|         (base32 "1dx7ajygdy244lwyv3fv14b4wdg3csppxhk8p0g2zwjfvxq4v1qa")))) | ||||
|         (base32 "0hzk3v36ph6f2nnlqqyw08w3qakbcb71y572ff09cy5b20vb29dp")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #f)) ;; no tests | ||||
|  | @ -371,7 +363,7 @@ the Anthy input method.") | |||
| (define-public fcitx5-chinese-addons | ||||
|   (package | ||||
|     (name "fcitx5-chinese-addons") | ||||
|     (version "5.0.17") | ||||
|     (version "5.1.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -379,7 +371,7 @@ the Anthy input method.") | |||
|                            "/fcitx5-chinese-addons/fcitx5-chinese-addons-" | ||||
|                            version "_dict.tar.xz")) | ||||
|        (sha256 | ||||
|         (base32 "0vilq49q02hrim0dg4z3rm6p3ma8v4smh0r5q5rrj6bkyf1apivx")))) | ||||
|         (base32 "1akf4qqvck7m93i0183ffb7jfsz0rq4f3bkf89vfxlqp4i7lfw5l")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:configure-flags | ||||
|  | @ -435,7 +427,7 @@ including input methods previous bundled inside Fcitx 4: | |||
| (define-public fcitx5-configtool | ||||
|   (package | ||||
|     (name "fcitx5-configtool") | ||||
|     (version "5.0.17") | ||||
|     (version "5.1.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -443,7 +435,7 @@ including input methods previous bundled inside Fcitx 4: | |||
|              "https://download.fcitx-im.org/fcitx5" | ||||
|              "/fcitx5-configtool/fcitx5-configtool-" version ".tar.xz")) | ||||
|        (sha256 | ||||
|         (base32 "1mc6axvkv2i396v7hyqllpiv5rdnf8vvqg9bkb66ljni4dnikdpq")))) | ||||
|         (base32 "0xv5kckm6bsbavw0s2iqg128fv7j8sh49lpwc0acqrdmwj49x1pz")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:configure-flags | ||||
|  | @ -545,7 +537,7 @@ for Fcitx 5 with following color variants: | |||
| (define-public fcitx5-rime | ||||
|   (package | ||||
|     (name "fcitx5-rime") | ||||
|     (version "5.0.16") | ||||
|     (version "5.1.1") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "https://download.fcitx-im.org/fcitx5" | ||||
|  | @ -553,7 +545,7 @@ for Fcitx 5 with following color variants: | |||
|                                   ".tar.xz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0d3qikdcm55p7qjfgiidx1a0zij3sv4s6j7vxxmxwyynjl5xjxjh")))) | ||||
|                 "1h6vh5pkak8l528l2d2nw5gy6zqa2sy3ris3xzkakb8kmgyjd3da")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      '(#:tests? #f ;no tests | ||||
|  |  | |||
|  | @ -1730,7 +1730,7 @@ Dropbox API v2.") | |||
|          #~(begin (use-modules (guix build utils)) | ||||
|                   ;; Don't check for package updates. | ||||
|                   (substitute* "dbxfs/main.py" | ||||
|                     (("if version") "if false")))))) | ||||
|                     (("if version") "if False")))))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|      '(#:tests? #f)) ; tests requires safefs | ||||
|  |  | |||
|  | @ -430,7 +430,7 @@ mouse and joystick control, and original music.") | |||
|      `(#:tests? #f                      ; no check target | ||||
|        #:make-flags | ||||
|        (list "CC=gcc" | ||||
|              "CFLAGS=-D_FILE_OFFSET_BITS=64" | ||||
|              "CFLAGS=-D_FILE_OFFSET_BITS=64 -fcommon" | ||||
|              (string-append "PREFIX=" (assoc-ref %outputs "out"))) | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|  | @ -713,7 +713,8 @@ canyons and wait for the long I-shaped block to clear four rows at a time.") | |||
|      (list ncurses)) | ||||
|     (arguments | ||||
|      `(#:tests? #f                      ;no tests | ||||
|        #:make-flags '("CC=gcc") | ||||
|        #:make-flags '("CC=gcc" | ||||
|                       "CFLAGS=-O2 -DHAVE_IPV6 -g -Wall -fcommon") | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (delete 'configure)            ;no configure script | ||||
|  | @ -1541,7 +1542,7 @@ effects and music to make a completely free game.") | |||
| (define-public freedroidrpg | ||||
|   (package | ||||
|     (name "freedroidrpg") | ||||
|     (version "1.0rc2") | ||||
|     (version "1.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -1552,7 +1553,7 @@ effects and music to make a completely free game.") | |||
|                              "freedroidRPG-" major+minor "/" | ||||
|                              "freedroidRPG-" version ".tar.gz"))) | ||||
|        (sha256 | ||||
|         (base32 "10jknaad2ph9j5bs4jxvpnl8rq5yjlq0nasv98f4mki2hh8yiczy")))) | ||||
|         (base32 "1kxvyg70r9x8q40kn5lr3h1q60d6jx9mkvxls4aflj22b45vg5br")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      (list | ||||
|  | @ -1890,7 +1891,13 @@ built-in level editor.") | |||
|                                   version "_src.tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "18vp2ygvn0s0jz8rm585jqf6hjqkam1ximq81k0r9hpmfj7wb88f")))) | ||||
|                 "18vp2ygvn0s0jz8rm585jqf6hjqkam1ximq81k0r9hpmfj7wb88f")) | ||||
|               (modules '((guix build utils))) | ||||
|               (snippet | ||||
|                ;; Fix a missing include for std::map. | ||||
|                #~(substitute* "src/shared/impl/lua_func_wrapper.cpp" | ||||
|                    (("#include \"misc[.]hpp\"" x) | ||||
|                     (string-append "#include <map>\n" x)))))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      '(#:make-flags | ||||
|  | @ -2011,7 +2018,7 @@ such as chess or stockfish.") | |||
| (define-public gnubg | ||||
|   (package | ||||
|     (name "gnubg") | ||||
|     (version "1.06.002") | ||||
|     (version "1.07.001") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -2019,10 +2026,10 @@ such as chess or stockfish.") | |||
|                            version "-sources.tar.gz")) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "11xwhcli1h12k6rnhhyq4jphzrhfik7i8ah3k32pqw803460n6yf")))) | ||||
|          "07l2srlm05c99l4pppba8l54bnh000ns2rih5h8rzbcw84lrffbj")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (inputs (list ;; XXX: Build with an older Pango for 'pango_font_get_hb_font' and | ||||
|                   ;; 'pango_coverage_get_type'.  Try removing this for versions > 1.06.002. | ||||
|                   ;; 'pango_coverage_get_type'.  Try removing this for versions > 1.07.001. | ||||
|                   pango-1.42 | ||||
|                   glib | ||||
|                   readline | ||||
|  | @ -2376,7 +2383,7 @@ Every puzzle has a complete solution, although there may be more than one.") | |||
|                 #t)))) | ||||
|    (build-system gnu-build-system) | ||||
|    (arguments | ||||
|     '(#:configure-flags '("--disable-cpu-opt") | ||||
|     '(#:configure-flags '("--disable-cpu-opt" "CFLAGS=-fcommon") | ||||
|       #:make-flags `(,(string-append "gamesdir=" | ||||
|                                      (assoc-ref %outputs "out") "/bin")) | ||||
|       #:phases | ||||
|  | @ -6508,7 +6515,7 @@ emerges from a sewer hole and pulls her below ground.") | |||
| (define-public cdogs-sdl | ||||
|   (package | ||||
|     (name "cdogs-sdl") | ||||
|     (version "1.4.0") | ||||
|     (version "1.5.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -6517,13 +6524,21 @@ emerges from a sewer hole and pulls her below ground.") | |||
|              (commit version))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "1505z8rli59i1ych4rzwbf4dvhv72icdj22n1xarb8xfyz0wyp3b")))) | ||||
|         (base32 "1i1akay3ad2bkiqa7vfkh3qyhiqax8ikp1v6lfjysvxg65wkqdvc")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      `(#:configure-flags | ||||
|        (list (string-append "-DCDOGS_DATA_DIR=" | ||||
|                             (assoc-ref %outputs "out") | ||||
|                             "/share/cdogs-sdl/")))) | ||||
|      (list | ||||
|       #:configure-flags | ||||
|       #~(list (string-append "-DCDOGS_DATA_DIR=" #$output | ||||
|                              "/share/cdogs-sdl/")) | ||||
|       #:phases | ||||
|       #~(modify-phases %standard-phases | ||||
|           (add-after 'unpack 'patch-install-directory | ||||
|             (lambda _ | ||||
|               (substitute* "CMakeLists.txt" | ||||
|                 (("set\\(DATA_INSTALL_DIR \".\"\\)") | ||||
|                  (string-append "set(DATA_INSTALL_DIR \"" | ||||
|                                 #$output "/share/cdogs-sdl\")")))))))) | ||||
|     (native-inputs | ||||
|      (list pkg-config)) | ||||
|     (inputs | ||||
|  | @ -8242,7 +8257,8 @@ ncurses for text display.") | |||
|            physfs | ||||
|            python | ||||
|            python-pyyaml | ||||
|            (sdl-union (list sdl2 sdl2-image sdl2-mixer)) | ||||
|            sdl2 | ||||
|            sdl2-image | ||||
|            suitesparse)) | ||||
|     (home-page "https://naev.org/") | ||||
|     (synopsis "Game about space exploration, trade and combat") | ||||
|  |  | |||
|  | @ -2434,7 +2434,7 @@ track your position right from your laptop.") | |||
|        ("gdal" ,gdal) | ||||
|        ("proj" ,proj) | ||||
|        ("qtbase" ,qtbase-5) | ||||
|        ("qtimageformats" ,qtimageformats) | ||||
|        ("qtimageformats" ,qtimageformats-5) | ||||
|        ("qtlocation" ,qtlocation) | ||||
|        ("qtsensors" ,qtsensors) | ||||
|        ("zlib" ,zlib))) | ||||
|  |  | |||
|  | @ -1238,6 +1238,46 @@ Some codes examples can be find at: | |||
|     (home-page "https://dbus-cxx.github.io/") | ||||
|     (license license:gpl3))) | ||||
| 
 | ||||
| (define-public sdbus-c++ | ||||
|   ;; Use the latest commit, which includes unreleased fixes to the pkg-config | ||||
|   ;; file. | ||||
|   (package | ||||
|     (name "sdbus-c++") | ||||
|     (version "1.3.0") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url "https://github.com/Kistler-Group/sdbus-cpp") | ||||
|                     (commit (string-append "v" version)))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "03maivi3nj4g5wcydk9ih703ivmqkc93yip47wlyjni6dhikzzsb")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      (list | ||||
|       ;; Avoid the integration test, which requires a system bus. | ||||
|       #:test-target "sdbus-c++-unit-tests" | ||||
|       #:configure-flags #~(list "-DBUILD_CODE_GEN=ON" | ||||
|                                 "-DBUILD_TESTS=ON" | ||||
|                                 ;; Do not install tests. | ||||
|                                 "-DTESTS_INSTALL_PATH=/tmp" | ||||
|                                 "-DCMAKE_VERBOSE_MAKEFILE=ON") | ||||
|       #:phases #~(modify-phases %standard-phases | ||||
|                    (add-after 'unpack 'do-not-install-tests | ||||
|                      (lambda _ | ||||
|                        (substitute* "tests/CMakeLists.txt" | ||||
|                          (("/etc/dbus-1/system.d") "/tmp"))))))) | ||||
|     (native-inputs (list googletest pkg-config)) | ||||
|     (inputs (list expat)) | ||||
|     (propagated-inputs (list elogind)) ;required by sdbus-c++.pc | ||||
|     (home-page "https://github.com/Kistler-Group/sdbus-cpp") | ||||
|     (synopsis "High-level C++ D-Bus library") | ||||
|     (description "@code{sdbus-c++} is a high-level C++ D-Bus library designed | ||||
| to provide easy-to-use yet powerful API in modern C++.  It adds another layer | ||||
| of abstraction on top of @code{sd-bus}, the C D-Bus implementation by systemd.") | ||||
|     (license license:lgpl2.1+))) | ||||
| 
 | ||||
| (define-public appstream-glib | ||||
|   (package | ||||
|     (name "appstream-glib") | ||||
|  |  | |||
|  | @ -349,7 +349,7 @@ Chinese pinyin input methods.") | |||
| (define-public ibus-anthy | ||||
|   (package | ||||
|     (name "ibus-anthy") | ||||
|     (version "1.5.14") | ||||
|     (version "1.5.15") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append | ||||
|  | @ -357,13 +357,13 @@ Chinese pinyin input methods.") | |||
|                     version "/ibus-anthy-" version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "16vd0k8wm13s38869jqs3dnwmjvywgn0snnpyi41m28binhlssf8")) | ||||
|                 "12yrgqiq6mqc8jr49dgkk3d7mdnyqic4xs597biwjjkahgaydi2q")) | ||||
|               (patches (search-patches "ibus-anthy-fix-tests.patch")))) | ||||
|     (build-system glib-or-gtk-build-system) | ||||
|     (arguments | ||||
|      (list | ||||
|       ;; The test suite hangs (see: | ||||
|       ;; https://github.com/ibus/ibus-anthy/issues/28). | ||||
|       ;; https://github.com/ibus/ibus-anthy/pull/35). | ||||
|       #:tests? #f | ||||
|       #:configure-flags | ||||
|       ;; Use absolute exec path in the anthy.xml. | ||||
|  |  | |||
|  | @ -730,7 +730,7 @@ Poppler-Qt5 binding, PDF documents.") | |||
|     (native-inputs | ||||
|      (list qttools-5)) | ||||
|     (inputs | ||||
|      (list qtbase-5 qtimageformats qtsvg-5)) | ||||
|      (list qtbase-5 qtimageformats-5 qtsvg-5)) | ||||
|     (home-page "https://interversehq.com/qview/") | ||||
|     (synopsis "Convenient and minimal image viewer") | ||||
|     (description "qView is a Qt image viewer designed with visually | ||||
|  |  | |||
|  | @ -341,14 +341,14 @@ many probes which instrument numerous interesting parts of Linux.") | |||
| (define-public lttng-ust | ||||
|   (package | ||||
|     (name "lttng-ust") | ||||
|     (version "2.13.4") | ||||
|     (version "2.13.6") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "https://lttng.org/files/lttng-ust/" | ||||
|                                   "lttng-ust-" version ".tar.bz2")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "165kz3zsklynkxdkcbkwhw7cccdgmgmld35h1cf9hvn5bpn853v9")))) | ||||
|                 "1mffy0fmr8h8kfghjadxa7nhzfwxjh7h1k97kslpmb3kvnb4bq77")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (inputs | ||||
|      (list numactl)) | ||||
|  |  | |||
|  | @ -264,14 +264,14 @@ Conferencing} and @acronym{ICB, Internet Citizen's Band}.") | |||
| (define-public weechat | ||||
|   (package | ||||
|     (name "weechat") | ||||
|     (version "4.0.2") | ||||
|     (version "4.0.4") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "https://weechat.org/files/src/weechat-" | ||||
|                                   version ".tar.xz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0g026j47140h8kqyh3l0367fq9194wdx8q7f4na0kj14s3h8wr0f")))) | ||||
|                 "1xmnks152ixn0ycs0h6dzvir3vl1wkvxahg7hjdk785dnmwljpxf")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (outputs '("out" "doc")) | ||||
|     (native-inputs | ||||
|  | @ -484,14 +484,14 @@ highlighted. | |||
| (define-public sic | ||||
|   (package | ||||
|     (name "sic") | ||||
|     (version "1.2") | ||||
|     (version "1.3") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "http://dl.suckless.org/tools/" | ||||
|                                   name "-" version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "11aiavxp44yayibc58bvimi8mrxvbw1plbci8cnbl4syk42zj1xc")))) | ||||
|                 "1lk57mrrqgky37bjsnp72s8libywzsrbbjq8bpmz4xdw7smqyirh")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #f ; no tests | ||||
|  |  | |||
|  | @ -561,14 +561,14 @@ over USB.") | |||
| (define-public libmtp | ||||
|   (package | ||||
|     (name "libmtp") | ||||
|     (version "1.1.20") | ||||
|     (version "1.1.21") | ||||
|     (source (origin | ||||
|              (method url-fetch) | ||||
|              (uri (string-append "mirror://sourceforge/libmtp/libmtp/" version | ||||
|                                  "/libmtp-" version ".tar.gz")) | ||||
|              (sha256 | ||||
|               (base32 | ||||
|                "1l2npk3b5v9cxhs2g01w3b13mxvin881cr085r0cyi2p5yn1s6f9")))) | ||||
|                "19vj10la88lrhdfdcpkad7aiii01q59y5wj700dwjj4gijmsbzy4")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (native-inputs | ||||
|      (list pkg-config)) | ||||
|  |  | |||
|  | @ -113,6 +113,7 @@ | |||
|   #:use-module (gnu packages databases) | ||||
|   #:use-module (gnu packages datastructures) | ||||
|   #:use-module (gnu packages dbm) | ||||
|   #:use-module (gnu packages disk) | ||||
|   #:use-module (gnu packages docbook) | ||||
|   #:use-module (gnu packages documentation) | ||||
|   #:use-module (gnu packages elf) | ||||
|  | @ -487,7 +488,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-6.4-version "6.4.10") | ||||
| (define-public linux-libre-6.4-version "6.4.11") | ||||
| (define-public linux-libre-6.4-gnu-revision "gnu") | ||||
| (define deblob-scripts-6.4 | ||||
|   (linux-libre-deblob-scripts | ||||
|  | @ -497,7 +498,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." | |||
|    (base32 "1rwm09anyn4py1g877f9vh6ya86y2hfvlqx51bpa53dci5k0b0ds"))) | ||||
| (define-public linux-libre-6.4-pristine-source | ||||
|   (let ((version linux-libre-6.4-version) | ||||
|         (hash (base32 "0fgjym6y0zj7wz1byqhxmv3pc3wq412vm1dxbj4gv23pm6r3y2wq"))) | ||||
|         (hash (base32 "0609lhgc42j9id2vvdpv8n7djabp46p2mridf9s0sg3x16snhssl"))) | ||||
|    (make-linux-libre-source version | ||||
|                             (%upstream-linux-source version hash) | ||||
|                             deblob-scripts-6.4))) | ||||
|  | @ -505,7 +506,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-6.1-version "6.1.45") | ||||
| (define-public linux-libre-6.1-version "6.1.46") | ||||
| (define-public linux-libre-6.1-gnu-revision "gnu") | ||||
| (define deblob-scripts-6.1 | ||||
|   (linux-libre-deblob-scripts | ||||
|  | @ -515,12 +516,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." | |||
|    (base32 "1c73516nbhnz0cxjz38b5794dxygb8sznv9idiibw7ablmjbhd11"))) | ||||
| (define-public linux-libre-6.1-pristine-source | ||||
|   (let ((version linux-libre-6.1-version) | ||||
|         (hash (base32 "14piy4cwv18a0yqp4gkrvr51z4zccyhab29n9ybxinkxdqwl68xx"))) | ||||
|         (hash (base32 "15m228bllks2p8gpsmvplx08yxzp7bij9fnmnafqszylrk7ppxpm"))) | ||||
|    (make-linux-libre-source version | ||||
|                             (%upstream-linux-source version hash) | ||||
|                             deblob-scripts-6.1))) | ||||
| 
 | ||||
| (define-public linux-libre-5.15-version "5.15.126") | ||||
| (define-public linux-libre-5.15-version "5.15.127") | ||||
| (define-public linux-libre-5.15-gnu-revision "gnu") | ||||
| (define deblob-scripts-5.15 | ||||
|   (linux-libre-deblob-scripts | ||||
|  | @ -530,12 +531,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." | |||
|    (base32 "1c3lm0j401lv2lk39dmr4mlf5ic173snm7cc0cckl6czyvxr5ysy"))) | ||||
| (define-public linux-libre-5.15-pristine-source | ||||
|   (let ((version linux-libre-5.15-version) | ||||
|         (hash (base32 "0vzdncrvwqxzjkpgf3gjxvl8iwz92szfyzc33cayx28ghjwsmx5d"))) | ||||
|         (hash (base32 "09lgj9hs1cjxg84hb7avras4rlsx18igr69mx433l9hv6issbl5d"))) | ||||
|    (make-linux-libre-source version | ||||
|                             (%upstream-linux-source version hash) | ||||
|                             deblob-scripts-5.15))) | ||||
| 
 | ||||
| (define-public linux-libre-5.10-version "5.10.190") | ||||
| (define-public linux-libre-5.10-version "5.10.191") | ||||
| (define-public linux-libre-5.10-gnu-revision "gnu1") | ||||
| (define deblob-scripts-5.10 | ||||
|   (linux-libre-deblob-scripts | ||||
|  | @ -545,12 +546,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." | |||
|    (base32 "0nnp46mn32yk436swd2qh34igmzinfgkwvbzp3lqyy45f06hbc2j"))) | ||||
| (define-public linux-libre-5.10-pristine-source | ||||
|   (let ((version linux-libre-5.10-version) | ||||
|         (hash (base32 "15zmz9pg91gph2dhigjf1z3w6gkv1kwslki5dpzhgzs03pq3swi9"))) | ||||
|         (hash (base32 "1hk2x5dgvfq9v6161v25wz5qpzgyvqbx34xbm7ww8z4ish76cm6b"))) | ||||
|    (make-linux-libre-source version | ||||
|                             (%upstream-linux-source version hash) | ||||
|                             deblob-scripts-5.10))) | ||||
| 
 | ||||
| (define-public linux-libre-5.4-version "5.4.253") | ||||
| (define-public linux-libre-5.4-version "5.4.254") | ||||
| (define-public linux-libre-5.4-gnu-revision "gnu1") | ||||
| (define deblob-scripts-5.4 | ||||
|   (linux-libre-deblob-scripts | ||||
|  | @ -560,12 +561,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." | |||
|    (base32 "0sw67b2pk3lng4y67diqqnhxaggnp3nbkx8dxc5fs27rinfxr4m1"))) | ||||
| (define-public linux-libre-5.4-pristine-source | ||||
|   (let ((version linux-libre-5.4-version) | ||||
|         (hash (base32 "1rr6mnkbw6gwdm9bqjhf4z2xqr458fn2qdv5b4mgm65a15gvmchz"))) | ||||
|         (hash (base32 "1iyrm2xql15ifhy2b939ywrrc44yd41b79sjjim4vqxmc6lqsq2i"))) | ||||
|    (make-linux-libre-source version | ||||
|                             (%upstream-linux-source version hash) | ||||
|                             deblob-scripts-5.4))) | ||||
| 
 | ||||
| (define-public linux-libre-4.19-version "4.19.291") | ||||
| (define-public linux-libre-4.19-version "4.19.292") | ||||
| (define-public linux-libre-4.19-gnu-revision "gnu1") | ||||
| (define deblob-scripts-4.19 | ||||
|   (linux-libre-deblob-scripts | ||||
|  | @ -575,12 +576,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." | |||
|    (base32 "1425mhkfxn18vxn05bb4h3li7x1jl7l1hf1zi8xhnqv3wa31h9wl"))) | ||||
| (define-public linux-libre-4.19-pristine-source | ||||
|   (let ((version linux-libre-4.19-version) | ||||
|         (hash (base32 "0cxmq8mrkw179jb8sqvad3dskllwn579g2lxcjn21jyqsf85nwz6"))) | ||||
|         (hash (base32 "0dr12v4jqmzxcqdghqqjny5zp3g4dx9lxqrl9d4fxz23s79ji5rl"))) | ||||
|     (make-linux-libre-source version | ||||
|                              (%upstream-linux-source version hash) | ||||
|                              deblob-scripts-4.19))) | ||||
| 
 | ||||
| (define-public linux-libre-4.14-version "4.14.322") | ||||
| (define-public linux-libre-4.14-version "4.14.323") | ||||
| (define-public linux-libre-4.14-gnu-revision "gnu1") | ||||
| (define deblob-scripts-4.14 | ||||
|   (linux-libre-deblob-scripts | ||||
|  | @ -590,7 +591,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." | |||
|    (base32 "1faagsj4i31z2bp83hflx3q9vrddjnn37a3ah2b47iaplva7z1nd"))) | ||||
| (define-public linux-libre-4.14-pristine-source | ||||
|   (let ((version linux-libre-4.14-version) | ||||
|         (hash (base32 "1r71g5p0cnbi0nixv91nyhv24dqmvh49rqb2lnbhsdq81fqm8ssm"))) | ||||
|         (hash (base32 "1g2fh0mn1sv0kq2hh3pynmx2fjai7hdwhf4fnaspl7j5n88902kg"))) | ||||
|     (make-linux-libre-source version | ||||
|                              (%upstream-linux-source version hash) | ||||
|                              deblob-scripts-4.14))) | ||||
|  | @ -3121,27 +3122,6 @@ early boot when entropy may be low, especially in virtualised environments.") | |||
|     (license (list license:bsd-3        ; or | ||||
|                    license:gpl2+)))) | ||||
| 
 | ||||
| (define-public lsscsi | ||||
|   (package | ||||
|     (name "lsscsi") | ||||
|     (version "0.32") | ||||
|     (source (origin | ||||
|              (method url-fetch) | ||||
|              (uri (string-append | ||||
|                    "http://sg.danny.cz/scsi/lsscsi-" version ".tar.xz")) | ||||
|              (sha256 | ||||
|               (base32 | ||||
|                "0jp458m2b3wckr18qkln69i01152qlwz33zm49103lq8fgx0n6d4")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (synopsis "Lists information about SCSI or NVMe devices in Linux") | ||||
|     (home-page "https://sg.danny.cz/scsi/lsscsi.html") | ||||
|     (description | ||||
|      "@command{lsscsi} lists SCSI logical units or SCSI targets.  It can | ||||
| also list NVMe namespaces or controllers and show the relationship between a | ||||
| device's primary node name, its SCSI generic (sg) node name and its kernel | ||||
| name.") | ||||
|     (license license:gpl2))) | ||||
| 
 | ||||
| (define-public ebtables | ||||
|   (package | ||||
|     (name "ebtables") | ||||
|  | @ -5149,44 +5129,6 @@ existing Docker images.  Singularity requires kernel support for container | |||
| isolation or root privileges.") | ||||
|     (license license:bsd-3))) | ||||
| 
 | ||||
| (define-public hdparm | ||||
|   (package | ||||
|     (name "hdparm") | ||||
|     (version "9.65") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "mirror://sourceforge/hdparm/hdparm/" | ||||
|                                   "hdparm-" version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0jssagggg52ssl9kg99m88afghj7bm1854vyf4p96q6h23wjjjfi")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      (list #:make-flags | ||||
|            #~(list (string-append "binprefix=" #$output) | ||||
|                    (string-append "manprefix=" #$output) | ||||
|                    (string-append "CC=" #$(cc-for-target)) | ||||
|                    ;; Let Guix strip binaries and not break cross-compilation. | ||||
|                    "STRIP=true") | ||||
|            #:phases | ||||
|            #~(modify-phases %standard-phases | ||||
|                (delete 'configure))     ; no configure script | ||||
|            #:tests? #f))                ; no test suite | ||||
|     (home-page "https://sourceforge.net/projects/hdparm/") | ||||
|     (synopsis "View and tune ATA disk drive parameters") | ||||
|     (description | ||||
|      "@command{hdparm} is a command-line utility to control ATA controllers and | ||||
| disk drives.  It can increase performance and/or reliability by careful tuning | ||||
| of hardware settings like power and acoustic management, DMA modes, and caching. | ||||
| It can also display detailed device information, or be used as a simple | ||||
| performance benchmarking tool. | ||||
| 
 | ||||
| @command{hdparm} provides a command line interface to various Linux kernel | ||||
| interfaces provided by the SATA/ATA/SAS @code{libata} subsystem, and the older | ||||
| IDE driver subsystem.  Many external USB drive enclosures with SCSI-ATA Command | ||||
| Translation (@dfn{SAT}) are also supported.") | ||||
|     (license (license:non-copyleft "file://LICENSE.TXT")))) | ||||
| 
 | ||||
| (define-public libnvme | ||||
|   (package | ||||
|     (name "libnvme") | ||||
|  | @ -10146,7 +10088,7 @@ with the value and the symbolic name.") | |||
| (define-public tp-smapi-module | ||||
|   (package | ||||
|     (name "tp-smapi-module") | ||||
|     (version "0.43") | ||||
|     (version "0.44") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|  | @ -10155,7 +10097,7 @@ with the value and the symbolic name.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1rjb0njckczc2mj05cagvj0lkyvmyk6bw7wkiinv81lw8m90g77g")))) | ||||
|                 "0kzbks07bh5jbi1n311zp9cbp1xxyzi7nys8wq1k0k5ig81h9w6k")))) | ||||
|     (build-system linux-module-build-system) | ||||
|     (arguments | ||||
|      `(#:tests? #f))                    ;there are none. | ||||
|  |  | |||
|  | @ -5487,25 +5487,25 @@ client and server.") | |||
|   (sbcl-package->cl-source-package sbcl-trivial-arguments)) | ||||
| 
 | ||||
| (define-public sbcl-trivial-clipboard | ||||
|   (let ((commit "13b53720306c0e6a13eccf4674d28ee5361127ae")) | ||||
|   (let ((commit "6ddf8d5dff8f5c2102af7cd1a1751cbe6408377b") | ||||
|         (revision "6")) | ||||
|     (package | ||||
|       (name "sbcl-trivial-clipboard") | ||||
|       (version (git-version "0.0.0.0" "5" commit)) | ||||
|       (version (git-version "0.0.0" revision commit)) | ||||
|       (source | ||||
|        (origin | ||||
|          (method git-fetch) | ||||
|          (uri (git-reference | ||||
|                (url "https://github.com/snmsts/trivial-clipboard") | ||||
|                (commit commit))) | ||||
|          (file-name (git-file-name "trivial-clipboard" version)) | ||||
|          (file-name (git-file-name "cl-trivial-clipboard" version)) | ||||
|          (sha256 | ||||
|           (base32 | ||||
|            "0l198m1gg2ixc43lqjq1ffd80s1sjxhqf1w83qqa1cn51rra2jp8")))) | ||||
|           (base32 "04qmm69zyx8rs23pfhgzgxn0j108byv3b7skfdv0h01a76wlhplz")))) | ||||
|       (build-system asdf-build-system/sbcl) | ||||
|       (inputs | ||||
|        ;; Pick xsel instead of xclip because its closure size is slightly | ||||
|        ;; smaller. | ||||
|        (list xsel)) | ||||
|        (list wl-clipboard xsel)) | ||||
|       (native-inputs | ||||
|        (list sbcl-fiveam)) | ||||
|       (arguments | ||||
|  | @ -5515,7 +5515,15 @@ client and server.") | |||
|              (lambda* (#:key inputs #:allow-other-keys) | ||||
|                (substitute* "src/text.lisp" | ||||
|                  (("\"xsel\"") | ||||
|                   (string-append "\"" (assoc-ref inputs "xsel") "/bin/xsel\"")))))))) | ||||
|                   (string-append "\"" (assoc-ref inputs "xsel") "/bin/xsel\"")) | ||||
|                  (("\"wl-copy\"") | ||||
|                   (string-append "\"" | ||||
|                                  (assoc-ref inputs "wl-clipboard") | ||||
|                                  "/bin/wl-copy\"")) | ||||
|                  (("\"wl-paste\"") | ||||
|                   (string-append "\"" | ||||
|                                  (assoc-ref inputs "wl-clipboard") | ||||
|                                  "/bin/wl-paste\"")))))))) | ||||
|       (home-page "https://github.com/snmsts/trivial-clipboard") | ||||
|       (synopsis "Access system clipboard in Common Lisp") | ||||
|       (description | ||||
|  |  | |||
|  | @ -647,7 +647,7 @@ operating systems.") | |||
| (define-public neomutt | ||||
|   (package | ||||
|     (name "neomutt") | ||||
|     (version "20220429") | ||||
|     (version "20230517") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -656,7 +656,7 @@ operating systems.") | |||
|              (commit version))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "106m6al48m22gl8848z8d0hsg2qiaz74vgy4f37hycl4v5d3n5ic")))) | ||||
|         (base32 "0kjllp2scgmpkl8yd0hwz6jmm98hr2r7qkb75ps9753fl96i4bfn")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (inputs | ||||
|      (list cyrus-sasl | ||||
|  |  | |||
|  | @ -1553,26 +1553,6 @@ extremely large and complex data collections.") | |||
|         (base32 "14gih7kmjx4h3lc7pg4fwcl28hf1qqkf2x7rljpxqvzkjrqbxi00")) | ||||
|        (patches (search-patches "hdf5-config-date.patch")))))) | ||||
| 
 | ||||
| (define-public hdf5-1.12 | ||||
|   (package | ||||
|     (inherit hdf5-1.8) | ||||
|     (version "1.12.2") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (list (string-append "https://support.hdfgroup.org/ftp/HDF5/releases/" | ||||
|                                  "hdf5-" (version-major+minor version) | ||||
|                                  "/hdf5-" version "/src/hdf5-" | ||||
|                                  version ".tar.bz2") | ||||
|                   (string-append "https://support.hdfgroup.org/ftp/HDF5/" | ||||
|                                  "current" | ||||
|                                  (apply string-append | ||||
|                                         (take (string-split version #\.) 2)) | ||||
|                                  "/src/hdf5-" version ".tar.bz2"))) | ||||
|        (sha256 | ||||
|         (base32 "1zlawdzb0gsvcxif14fwr5ap2gk4b6j02wirr2hcx8hkcbivp20s")) | ||||
|        (patches (search-patches "hdf5-config-date.patch")))))) | ||||
| 
 | ||||
| (define-public hdf5-1.14 | ||||
|   (package | ||||
|     (inherit hdf5-1.8) | ||||
|  |  | |||
|  | @ -615,7 +615,7 @@ mpdevil loads all tags and covers on demand.") | |||
| (define-public mympd | ||||
|   (package | ||||
|     (name "mympd") | ||||
|     (version "11.0.2") | ||||
|     (version "11.0.4") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|  | @ -624,7 +624,7 @@ mpdevil loads all tags and covers on demand.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0n6dyy6znzicm5v9mkcghm3lwi6zwysnpr0drvacqprr0r5l596a")))) | ||||
|                 "0ki9az71x35548mnl5assb0hgli3bvrbzv0fb5dfli4q5i1z8fmq")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments | ||||
|      (list | ||||
|  |  | |||
|  | @ -3780,15 +3780,15 @@ event-based scripts for scrobbling, notifications, etc.") | |||
| (define-public picard | ||||
|   (package | ||||
|     (name "picard") | ||||
|     (version "2.9") | ||||
|     (version "2.9.1") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append | ||||
|                     "https://musicbrainz.osuosl.org/pub/musicbrainz/" | ||||
|                     "https://data.musicbrainz.org/pub/musicbrainz/" | ||||
|                     "picard/picard-" version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0afiziaq49sq1dx5r3qis4ymhhkrqlrkfnb6f7gcksj0kwljvsw9")))) | ||||
|                 "1f1nf53xm94jam8w86a8hx69ilzddjibf29c7f1i353fr6k6bqvs")))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|      (list | ||||
|  | @ -3806,12 +3806,10 @@ event-based scripts for scrobbling, notifications, etc.") | |||
|                  (string-append | ||||
|                   "pyfpcalc', '" | ||||
|                   (assoc-ref inputs "chromaprint") "/bin/fpcalc"))))) | ||||
|           (add-before 'check 'delete-failing-test | ||||
|           ;; pipe tests require writable $HOME. | ||||
|           (add-before 'check 'set-HOME | ||||
|             (lambda _ | ||||
|               ;; FIXME: This test fails in build environment. | ||||
|               ;; util/pipe.read_from_pipe:244: pipe reader exception: | ||||
|               ;; ERROR: Pipe doesn't exist | ||||
|               (delete-file "test/test_util_pipe.py")))))) | ||||
|               (setenv "HOME" "/tmp")))))) | ||||
|     (native-inputs | ||||
|      (list gettext-minimal python-dateutil)) | ||||
|     (inputs | ||||
|  |  | |||
|  | @ -4502,7 +4502,7 @@ on hub/switched networks.  It is based on @acronym{ARP} packets, it will send | |||
| (define-public phantomsocks | ||||
|   (package | ||||
|     (name "phantomsocks") | ||||
|     (version "0.0.0-20230405135900-a54ae9f3611e") | ||||
|     (version "0.0.0-20230811053544-53b995bdab83") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|  | @ -4511,7 +4511,7 @@ on hub/switched networks.  It is based on @acronym{ARP} packets, it will send | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1qgv8dcrsyzjzppvdk0n5kkyaypcjm1hcn9lb29ahvbhm70cpm6a")))) | ||||
|                 "1jc9qldi4f9s6n4ggaphyilxjymrz95hwd060jhj260x2hkdywl9")))) | ||||
|     (build-system go-build-system) | ||||
|     (arguments | ||||
|      (list #:install-source? #f | ||||
|  | @ -4519,13 +4519,12 @@ on hub/switched networks.  It is based on @acronym{ARP} packets, it will send | |||
|            #:build-flags #~'("-tags" #$(if (target-linux?) | ||||
|                                            "rawsocket" | ||||
|                                            "pcap")))) | ||||
|     (propagated-inputs | ||||
|      (list go-github-com-google-gopacket | ||||
|            go-github-com-macronut-go-tproxy)) | ||||
|     (inputs | ||||
|      (if (target-linux?) | ||||
|          '() | ||||
|          (list libpcap))) | ||||
|      (append (if (target-linux?) | ||||
|                  '() | ||||
|                  (list libpcap)) | ||||
|              (list go-github-com-google-gopacket | ||||
|                    go-github-com-macronut-go-tproxy))) | ||||
|     (home-page "https://github.com/macronut/phantomsocks") | ||||
|     (synopsis "Internet censorship circumvention tool") | ||||
|     (description | ||||
|  |  | |||
|  | @ -174,8 +174,8 @@ | |||
|   ;; Note: the 'update-guix-package.scm' script expects this definition to | ||||
|   ;; start precisely like this. | ||||
|   (let ((version "1.4.0") | ||||
|         (commit "44bbfc24e4bcc48d0e3343cd3d83452721af8c36") | ||||
|         (revision 7)) | ||||
|         (commit "4dfdd822102690b5687acf28365ab707b68d9476") | ||||
|         (revision 10)) | ||||
|     (package | ||||
|       (name "guix") | ||||
| 
 | ||||
|  | @ -191,7 +191,7 @@ | |||
|                       (commit commit))) | ||||
|                 (sha256 | ||||
|                  (base32 | ||||
|                   "08gq04pphapr3i0gzdilp8l87rpxlh2p768qrn1fw92fmw727xf7")) | ||||
|                   "1p21gz2lr7iqvma1m83k2r04w201rzvk31d5kfn2qkr9l0gds4cx")) | ||||
|                 (file-name (string-append "guix-" version "-checkout")))) | ||||
|       (build-system gnu-build-system) | ||||
|       (arguments | ||||
|  | @ -263,6 +263,46 @@ $(prefix)/etc/openrc\n"))) | |||
|                               (substitute* "tests/gexp.scm" | ||||
|                                 (("2\\.0") "3.0"))))) | ||||
|                         '()) | ||||
|                     ,@(if (system-hurd?) | ||||
|                           `((add-after 'unpack 'disable-tests/hurd | ||||
|                               (lambda _ | ||||
|                                 (substitute* "Makefile.am" | ||||
|                                   (("tests/derivations.scm") "") | ||||
|                                   (("tests/grafts.scm") "") | ||||
|                                   (("tests/graph.scm") "") | ||||
|                                   (("tests/lint.scm") "") | ||||
|                                   (("tests/nar.scm") "") | ||||
|                                   (("tests/offload.scm") "") | ||||
|                                   (("tests/pack.scm") "") | ||||
|                                   (("tests/packages.scm") "") | ||||
|                                   (("tests/processes.scm") "") | ||||
|                                   (("tests/publish.scm") "") | ||||
|                                   (("tests/pypi.scm") "") | ||||
|                                   (("tests/size.scm") "") | ||||
|                                   (("tests/store.scm") "") | ||||
|                                   (("tests/substitute.scm") "") | ||||
|                                   (("tests/syscalls.scm") "") | ||||
|                                   (("tests/union.scm") "") | ||||
|                                   (("tests/guix-build.sh") "") | ||||
|                                   (("tests/guix-build-branch.sh") "") | ||||
|                                   (("tests/guix-hash.sh") "") | ||||
|                                   (("tests/guix-locate.sh") "") | ||||
|                                   (("tests/guix-pack.sh") "") | ||||
|                                   (("tests/guix-pack-relocatable.sh") "") | ||||
|                                   (("tests/guix-package-aliases.sh") "") | ||||
|                                   (("tests/guix-package-net.sh") "") | ||||
|                                   (("tests/guix-home.sh") "") | ||||
|                                   (("tests/guix-archive.sh") "") | ||||
|                                   (("tests/guix-environment.sh") "") | ||||
|                                   (("tests/guix-package.sh") "") | ||||
|                                   (("tests/guix-refresh.sh") "") | ||||
|                                   (("tests/guix-shell.sh") "") | ||||
|                                   (("tests/guix-shell-export-manifest.sh") "") | ||||
|                                   (("tests/guix-system.sh") "") | ||||
|                                   (("tests/guix-graph.sh") "") | ||||
|                                   (("tests/guix-gc.sh") "") | ||||
|                                   (("tests/guix-daemon.sh") ""))))) | ||||
|                         '()) | ||||
|                     (add-before 'build 'use-host-compressors | ||||
|                       (lambda* (#:key inputs target #:allow-other-keys) | ||||
|                         (when target | ||||
|  | @ -1410,8 +1450,8 @@ environments.") | |||
|                   "0k9zkdyyzir3fvlbcfcqy17k28b51i20rpbjwlx2i1mwd2pw9cxc"))))))) | ||||
| 
 | ||||
| (define-public guix-build-coordinator | ||||
|   (let ((commit "f39f16000469429745bd8aff3cd4d59b7c489fa1") | ||||
|         (revision "86")) | ||||
|   (let ((commit "06a44693c4f25109f945e5aa6c7c4670df72b690") | ||||
|         (revision "87")) | ||||
|     (package | ||||
|       (name "guix-build-coordinator") | ||||
|       (version (git-version "0" revision commit)) | ||||
|  | @ -1422,7 +1462,7 @@ environments.") | |||
|                       (commit commit))) | ||||
|                 (sha256 | ||||
|                  (base32 | ||||
|                   "1lmbwbza87xzbvmzw44sgpscmqjfl5kpgfl79n7hzwa1icqqb7mg")) | ||||
|                   "1g9dq7nzndrws82dajxapajhd2c7zmk7kmi7fbga9qd414pwfv92")) | ||||
|                 (file-name (string-append name "-" version "-checkout")))) | ||||
|       (build-system gnu-build-system) | ||||
|       (arguments | ||||
|  |  | |||
|  | @ -1,17 +1,14 @@ | |||
| Submitted upstream: https://github.com/ibus/ibus-anthy/pull/35 | ||||
| 
 | ||||
| diff --git a/tests/test-build.sh b/tests/test-build.sh
 | ||||
| index e83b78f..a0efe32 100755
 | ||||
| index e83b78f..bbfa7e1 100755
 | ||||
| --- a/tests/test-build.sh
 | ||||
| +++ b/tests/test-build.sh
 | ||||
| @@ -63,26 +63,27 @@ parse_args()
 | ||||
| @@ -63,26 +63,33 @@ parse_args()
 | ||||
|      done; | ||||
|  } | ||||
|   | ||||
| +maybe_install_pycotap() {
 | ||||
| +    # Check if pycotap is already available.
 | ||||
| +    python3 -m pycotap >/dev/null && return 0
 | ||||
| +
 | ||||
| +    # Red Hat specific hint.
 | ||||
| +    if test -f /etc/redhat-release ; then
 | ||||
| +        if ! rpm -q --quiet python3-pycotap; then
 | ||||
|  | @ -19,6 +16,15 @@ index e83b78f..a0efe32 100755 | |||
| +            exit -1
 | ||||
| +        fi
 | ||||
| +    fi;
 | ||||
| +
 | ||||
| +    # Check if pycotap is already available.
 | ||||
| +    if ! python3 -m pycotap >/dev/null; then
 | ||||
| +        echo "pycotap not found; installing via pip"
 | ||||
| +        if ! pip install pycotap --user; then
 | ||||
| +            echo "failed to install pycotap"
 | ||||
| +            exit -1
 | ||||
| +        fi
 | ||||
| +    fi
 | ||||
| +}
 | ||||
| +
 | ||||
|  init_environment() | ||||
|  |  | |||
|  | @ -1,19 +0,0 @@ | |||
| From: Dan Horák <dan@danny.cz> | ||||
| Subject: Add support for Python 3.9 | ||||
| 
 | ||||
| Origin: upstream, https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=commitdiff;h=9b0ad5177bd692f7556a4756bdbd2da81d9c34ce | ||||
| Bug-Debian: https://bugs.debian.org/972769 | ||||
| 
 | ||||
| diff --git a/configure.ac b/configure.ac
 | ||||
| index f9958b3..2917cb3 100644
 | ||||
| --- a/configure.ac
 | ||||
| +++ b/configure.ac
 | ||||
| @@ -100,7 +100,7 @@ SR_PKG_CHECK_SUMMARY([srd_pkglibs_summary])
 | ||||
|  # first, since usually only that variant will add "-lpython3.8". | ||||
|  # https://docs.python.org/3/whatsnew/3.8.html#debug-build-uses-the-same-abi-as-release-build | ||||
|  SR_PKG_CHECK([python3], [SRD_PKGLIBS], | ||||
| -	[python-3.8-embed], [python-3.8 >= 3.8], [python-3.7 >= 3.7], [python-3.6 >= 3.6], [python-3.5 >= 3.5], [python-3.4 >= 3.4], [python-3.3 >= 3.3], [python-3.2 >= 3.2], [python3 >= 3.2])
 | ||||
| +	[python-3.9-embed], [python-3.8-embed], [python-3.8 >= 3.8], [python-3.7 >= 3.7], [python-3.6 >= 3.6], [python-3.5 >= 3.5], [python-3.4 >= 3.4], [python-3.3 >= 3.3], [python-3.2 >= 3.2], [python3 >= 3.2])
 | ||||
|  AS_IF([test "x$sr_have_python3" = xno], | ||||
|  	[AC_MSG_ERROR([Cannot find Python 3 development headers.])]) | ||||
|   | ||||
|  | @ -1,15 +0,0 @@ | |||
| Backport a fix from 5.15.9, mentioned in [1]. | ||||
| 
 | ||||
| [1] https://bugreports.qt.io/browse/PYSIDE-2176 | ||||
| 
 | ||||
| --- pyside-setup-opensource-src-5.15.8/sources/shiboken2/libshiboken/pep384impl.cpp	2023-04-24 11:05:48.770934499 +0200
 | ||||
| +++ pyside-setup-opensource-src-5.15.8/sources/shiboken2/libshiboken/pep384impl.cpp	2023-04-24 11:04:51.566943936 +0200
 | ||||
| @@ -751,7 +751,7 @@
 | ||||
|  #endif // IS_PY2 | ||||
|      Shiboken::AutoDecRef privateobj(PyObject_GetAttr( | ||||
|          reinterpret_cast<PyObject *>(Py_TYPE(self)), Shiboken::PyMagicName::name())); | ||||
| -#ifndef Py_LIMITED_API
 | ||||
| +#ifdef IS_PY2
 | ||||
|      return _Py_Mangle(privateobj, name); | ||||
|  #else | ||||
|      // PYSIDE-1436: _Py_Mangle is no longer exposed; implement it always. | ||||
							
								
								
									
										16
									
								
								gnu/packages/patches/qtdeclarative-5-disable-qmlcache.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								gnu/packages/patches/qtdeclarative-5-disable-qmlcache.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,16 @@ | |||
| Retrieved from | ||||
| https://github.com/NixOS/nixpkgs/raw/master/pkgs/development/libraries/qt-5/5.15/qtdeclarative-default-disable-qmlcache.patch | ||||
| 
 | ||||
| diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp
 | ||||
| index 1d66e75..827567a 100644
 | ||||
| --- a/src/qml/qml/qqmltypeloader.cpp
 | ||||
| +++ b/src/qml/qml/qqmltypeloader.cpp
 | ||||
| @@ -727,7 +727,7 @@ bool QQmlTypeLoader::Blob::isDebugging() const
 | ||||
|   | ||||
|  bool QQmlTypeLoader::Blob::diskCacheEnabled() const | ||||
|  { | ||||
| -    return (!disableDiskCache() && !isDebugging()) || forceDiskCache();
 | ||||
| +    return forceDiskCache();
 | ||||
|  } | ||||
|   | ||||
|  bool QQmlTypeLoader::Blob::qmldirDataAvailable(const QQmlRefPointer<QQmlQmldirData> &data, QList<QQmlError> *errors) | ||||
							
								
								
									
										16
									
								
								gnu/packages/patches/qtdeclarative-disable-qmlcache.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								gnu/packages/patches/qtdeclarative-disable-qmlcache.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,16 @@ | |||
| Retrieved from | ||||
| https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/development/libraries/qt-6/patches/qtdeclarative-default-disable-qmlcache.patch | ||||
| 
 | ||||
| diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp
 | ||||
| index 852cde9e..165f1b57 100644
 | ||||
| --- a/src/qml/jsruntime/qv4engine.cpp
 | ||||
| +++ b/src/qml/jsruntime/qv4engine.cpp
 | ||||
| @@ -2093,7 +2093,7 @@ void ExecutionEngine::registerModule(const QString &_name, const QJSValue &modul
 | ||||
|   | ||||
|  bool ExecutionEngine::diskCacheEnabled() const | ||||
|  { | ||||
| -    return (!disableDiskCache() && !debugger()) || forceDiskCache();
 | ||||
| +    return forceDiskCache();
 | ||||
|  } | ||||
|   | ||||
|  void ExecutionEngine::callInContext(QV4::Function *function, QObject *self, | ||||
|  | @ -1,18 +0,0 @@ | |||
| Add missing import for newer libstdc++. | ||||
| 
 | ||||
| Taken from upstream: | ||||
| 
 | ||||
|   https://github.com/qt/qtwayland/commit/1aa6ec2c778504d96543f6cdc2b9199a7b066fc1 | ||||
| 
 | ||||
| diff --git a/tests/auto/client/shared/corecompositor.cpp b/tests/auto/client/shared/corecompositor.cpp
 | ||||
| index 5c6c83baa..fa9b7662a 100644
 | ||||
| --- a/tests/auto/client/shared/corecompositor.cpp
 | ||||
| +++ b/tests/auto/client/shared/corecompositor.cpp
 | ||||
| @@ -27,6 +27,7 @@
 | ||||
|  ****************************************************************************/ | ||||
|   | ||||
|  #include "corecompositor.h" | ||||
| +#include <thread>
 | ||||
|   | ||||
|  namespace MockCompositor { | ||||
|   | ||||
|  | @ -567,7 +567,8 @@ developer.  It manages your digital negatives in a database, lets you view | |||
| them through a zoomable lighttable and enables you to develop raw images | ||||
| and enhance them.") | ||||
|     ;; See src/is_supported_platform.h for supported platforms. | ||||
|     (supported-systems '("x86_64-linux" "aarch64-linux" "powerpc64le-linux")) | ||||
|     (supported-systems '("x86_64-linux" "aarch64-linux" "powerpc64le-linux" | ||||
|                          "riscv64-linux")) | ||||
|     (properties | ||||
|      '((release-monitoring-url . "https://github.com/darktable-org/darktable/releases"))) | ||||
|     (license (list license:gpl3+        ;Darktable itself | ||||
|  |  | |||
|  | @ -3,6 +3,7 @@ | |||
| ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> | ||||
| ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> | ||||
| ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||||
| ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -171,14 +172,14 @@ exec ~a \"$@\"" | |||
| (define-public pkgconf | ||||
|   (package | ||||
|     (name "pkgconf") | ||||
|     (version "1.9.3") | ||||
|     (version "2.0.2") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append  "https://distfiles.dereferenced.org/" | ||||
|                                    name "/" name "-" version ".tar.xz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "17b9cl2s99pzgblaj0yg49k3m0by5x78vwg4879vckymhys5bcsz")))) | ||||
|                 "00a4cv1f8cxsb4jhpgxxrwrl92b1zdsirqn0gqvva7i5izpjanpa")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments (list #:tests? #f))      ;TODO: package kyua | ||||
|     (home-page "http://pkgconf.org/") | ||||
|  |  | |||
|  | @ -735,7 +735,7 @@ ECB and OFB).") | |||
| (define-public python-asn1crypto | ||||
|   (package | ||||
|     (name "python-asn1crypto") | ||||
|     (version "1.4.0") | ||||
|     (version "1.5.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -745,18 +745,20 @@ ECB and OFB).") | |||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "19abibn6jw20mzi1ln4n9jjvpdka8ygm4m439hplyrdfqbvgm01r")))) | ||||
|          "1qsg06qrqnzixmrm65ibg503y2gffd675h1si4jgh92s315w1jrk")))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|      '(#:phases (modify-phases %standard-phases | ||||
|                   (replace 'check | ||||
|                     (lambda _ | ||||
|                       (invoke "python" "run.py" "tests")))))) | ||||
|                     (lambda* (#:key tests? #:allow-other-keys) | ||||
|                       (when tests? | ||||
|                         (invoke "python" "run.py" "tests"))))))) | ||||
|     (home-page "https://github.com/wbond/asn1crypto") | ||||
|     (synopsis "ASN.1 parser and serializer in Python") | ||||
|     (description "asn1crypto is an ASN.1 parser and serializer with definitions | ||||
| for private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7, | ||||
| PKCS#8, PKCS#12, PKCS#5, X.509 and TSP.") | ||||
|     (description | ||||
|      "@code{asn1crypto} is an ASN.1 parser and serializer with definitions for | ||||
| private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7, PKCS#8, | ||||
| PKCS#12, PKCS#5, X.509 and TSP.") | ||||
|     (license license:expat))) | ||||
| 
 | ||||
| (define-public python-pynacl | ||||
|  |  | |||
|  | @ -5008,7 +5008,7 @@ for URL parsing and changing.") | |||
| (define-public python-canvasapi | ||||
|   (package | ||||
|     (name "python-canvasapi") | ||||
|     (version "2.2.0") | ||||
|     (version "3.2.0") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|  | @ -5017,9 +5017,9 @@ for URL parsing and changing.") | |||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0i13wrq2czcaz3h98pvnsl237104v611y9636jf32b1nn76sbp0p")))) | ||||
|     (build-system python-build-system) | ||||
|     (propagated-inputs (list python-pytz python-requests)) | ||||
|                 "1vbd3ndhmxi8scxgxs6sc7r0rdaliqd80384n06nyb3haqz25inm")))) | ||||
|     (build-system pyproject-build-system) | ||||
|     (propagated-inputs (list python-arrow python-pytz python-requests)) | ||||
|     (native-inputs (list python-requests-mock)) | ||||
|     (home-page "https://github.com/ucfopen/canvasapi") | ||||
|     (synopsis "API wrapper for the Canvas LMS") | ||||
|  |  | |||
|  | @ -139,6 +139,7 @@ | |||
| ;;; Copyright © 2023 Dominik Delgado Steuter <d@delgado.nrw> | ||||
| ;;; Copyright © 2023 Ivan Vilata-i-Balaguer <ivan@selidor.net> | ||||
| ;;; Copyright © 2023 Ontje Lünsdorf <ontje.luensdorf@dlr.de> | ||||
| ;;; Copyright © 2023 Parnikkapore <poomklao@yahoo.com> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -8940,6 +8941,53 @@ converting, and viewing many of the proprietary file formats used to store | |||
| experimental data and metadata at the Laboratory for Fluorescence Dynamics.") | ||||
|     (license license:bsd-3))) | ||||
| 
 | ||||
| (define-public python-ffmpeg-python | ||||
|   ;; The latest release (0.2.0) is old and its test suite crashs on Python 3.10. | ||||
|   (let ((commit "df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6") (revision "0")) | ||||
|     (package | ||||
|       (name "python-ffmpeg-python") | ||||
|       (version (git-version "0.2.0" revision commit)) | ||||
|       (source (origin | ||||
|                 (method git-fetch) | ||||
|                 (uri (git-reference | ||||
|                       (url "https://github.com/kkroening/ffmpeg-python.git") | ||||
|                       (commit commit))) | ||||
|                 (file-name (git-file-name name version)) | ||||
|                 (sha256 | ||||
|                  (base32 | ||||
|                   "1zj4ac37n4igfj21zy405mdlvbpv6jyb12wfpszf8zkhhj2qby4c")))) | ||||
|       (build-system python-build-system) | ||||
|       (arguments | ||||
|        (list | ||||
|         #:phases | ||||
|         #~(modify-phases %standard-phases | ||||
|             (add-after 'unpack 'hardcode-ffmpeg | ||||
|               (lambda* (#:key inputs #:allow-other-keys) | ||||
|                 (define ffmpeg (search-input-file inputs "bin/ffmpeg")) | ||||
|                 (substitute* "ffmpeg/_run.py" | ||||
|                   (("cmd='ffmpeg'") | ||||
|                    (string-append "cmd='" ffmpeg "'"))) | ||||
|                 (substitute* "ffmpeg/tests/test_ffmpeg.py" | ||||
|                   (("out_file.compile\\(\\) == \\['ffmpeg'") | ||||
|                    (string-append "out_file.compile() == ['" ffmpeg "'"))))) | ||||
|             ;; Some tests fail with ffmpeg 5+ | ||||
|             (replace 'check | ||||
|               (lambda* (#:key tests? #:allow-other-keys) | ||||
|                 (when tests? | ||||
|                   (invoke "pytest" "-vv" | ||||
|                           "-k" "not test_pipe and not test__probe"))))))) | ||||
|       (inputs (list ffmpeg)) | ||||
|       (propagated-inputs (list python-future)) | ||||
|       (native-inputs (list python-future python-numpy python-pytest | ||||
|                            python-pytest-mock python-pytest-runner)) | ||||
|       (home-page "https://github.com/kkroening/ffmpeg-python") | ||||
|       (synopsis "Python bindings for FFmpeg with complex filtering support") | ||||
|       (description | ||||
|        "ffmpeg-python allows you to write FFmpeg filtergraphs in familiar | ||||
| Python terms, taking care of running ffmpeg with the correct command-line | ||||
| arguments.  It handles arbitrarily large (directed-acyclic) signal graphs.") | ||||
|       (license license:asl2.0)))) | ||||
| 
 | ||||
| (define-public python-imageio-ffmpeg | ||||
|   (package | ||||
|    (name "python-imageio-ffmpeg") | ||||
|  |  | |||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							|  | @ -43,14 +43,14 @@ | |||
| (define-public screen | ||||
|   (package | ||||
|     (name "screen") | ||||
|     (version "4.9.0") | ||||
|     (version "4.9.1") | ||||
|     (source (origin | ||||
|              (method url-fetch) | ||||
|              (uri (string-append "mirror://gnu/screen/screen-" | ||||
|                                  version ".tar.gz")) | ||||
|              (patches (search-patches "screen-hurd-path-max.patch")) | ||||
|              (sha256 | ||||
|               (base32 "1x1hqy4h47i7hk85f779lkwkm7gkq8h8mxwd0znkh5adpf0m4czr")))) | ||||
|               (base32 "0sdc0ms6qxm4gbx0caw7pwghj5aw1h8syvxdhkac0w95qkiz7ki6")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (native-inputs | ||||
|      (list autoconf automake texinfo)) | ||||
|  |  | |||
|  | @ -19,8 +19,7 @@ | |||
| ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| (define-module (gnu packages scsi) | ||||
|   #:use-module ((guix licenses) | ||||
|                 #:select (gpl2+ bsd-2 bsd-3 lgpl2.1+)) | ||||
|   #:use-module ((guix licenses) #:prefix license:) | ||||
|   #:use-module (guix packages) | ||||
|   #:use-module (guix download) | ||||
|   #:use-module (guix git-download) | ||||
|  | @ -70,7 +69,7 @@ used in C and C++ programs to interact with SCSI devices.") | |||
|     ;;   "3 clause" to the newer "2 clause" version on 20180119. To save space | ||||
|     ;;   various source code files refer to a file called "BSD_LICENSE" [...]." | ||||
|     ;; Some files (like sg_compare_and_write.c) retain their 3-clause headers! | ||||
|     (license (list gpl2+ bsd-2 bsd-3)))) | ||||
|     (license (list license:gpl2+ license:bsd-2 license:bsd-3)))) | ||||
| 
 | ||||
| (define-public libiscsi | ||||
|   (package | ||||
|  | @ -97,6 +96,27 @@ synchronous layer is also provided for ease of use for simpler applications.") | |||
|     (license (list | ||||
|               ;; For the src, examples and test-tool directories, except | ||||
|               ;; src/ld_iscsi.c. | ||||
|               gpl2+ | ||||
|               license:gpl2+ | ||||
|               ;; For the lib and include directories. | ||||
|               lgpl2.1+)))) | ||||
|               license:lgpl2.1+)))) | ||||
| 
 | ||||
| (define-public lsscsi | ||||
|   (package | ||||
|     (name "lsscsi") | ||||
|     (version "0.32") | ||||
|     (source (origin | ||||
|              (method url-fetch) | ||||
|              (uri (string-append | ||||
|                    "http://sg.danny.cz/scsi/lsscsi-" version ".tar.xz")) | ||||
|              (sha256 | ||||
|               (base32 | ||||
|                "0jp458m2b3wckr18qkln69i01152qlwz33zm49103lq8fgx0n6d4")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (synopsis "Lists information about SCSI or NVMe devices in Linux") | ||||
|     (home-page "https://sg.danny.cz/scsi/lsscsi.html") | ||||
|     (description | ||||
|      "@command{lsscsi} lists SCSI logical units or SCSI targets.  It can | ||||
| also list NVMe namespaces or controllers and show the relationship between a | ||||
| device's primary node name, its SCSI generic (sg) node name and its kernel | ||||
| name.") | ||||
|     (license license:gpl2))) | ||||
|  |  | |||
|  | @ -46,7 +46,7 @@ | |||
| (define-public syncthing | ||||
|   (package | ||||
|     (name "syncthing") | ||||
|     (version "1.23.4") | ||||
|     (version "1.23.6") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "https://github.com/syncthing/syncthing" | ||||
|  | @ -54,83 +54,72 @@ | |||
|                                   "/syncthing-source-v" version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1yi9adlp30myizlmv7a118cwrm6w1qfv09b0z7x1b7n4i8pqi8h6")))) | ||||
|                 "03myinspq61aiis29mq0xjigj5rh5jd8m0d9xakf43vi7pqgwjbc")))) | ||||
|     (build-system go-build-system) | ||||
|     ;; The primary Syncthing executable goes to "out", while the auxiliary | ||||
|     ;; server programs and utility tools go to "utils".  This reduces the size | ||||
|     ;; of "out" by ~144 MiB. | ||||
|     (outputs '("out" "utils")) | ||||
|     (arguments | ||||
|      `(#:modules ((srfi srfi-26) ; for cut | ||||
|                   (guix build utils) | ||||
|                   (guix build go-build-system)) | ||||
|        #:go ,go-1.19 | ||||
|        #:import-path "github.com/syncthing/syncthing" | ||||
|        ;; We don't need to install the source code for end-user applications. | ||||
|        #:install-source? #f | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-before 'build 'increase-test-timeout | ||||
|            (lambda _ | ||||
|              (substitute* "src/github.com/syncthing/syncthing/build.go" | ||||
|                (("120s") "999s")) | ||||
|              #t)) | ||||
|      (list #:modules '((srfi srfi-26) ; for cut | ||||
|                        (guix build utils) | ||||
|                        (guix build go-build-system)) | ||||
|            #:go go-1.19 | ||||
|            #:import-path "github.com/syncthing/syncthing" | ||||
|            ;; We don't need to install the source code for end-user applications. | ||||
|            #:install-source? #f | ||||
|            #:phases | ||||
|            #~(modify-phases %standard-phases | ||||
|                (add-before 'build 'increase-test-timeout | ||||
|                  (lambda _ | ||||
|                    (substitute* "src/github.com/syncthing/syncthing/build.go" | ||||
|                      (("120s") "999s")))) | ||||
| 
 | ||||
|          (replace 'build | ||||
|            (lambda _ | ||||
|              (with-directory-excursion "src/github.com/syncthing/syncthing" | ||||
|                ;; XXX The only way to build Syncthing without its automatic | ||||
|                ;; updater and to build the utilities is to "build all" and then | ||||
|                ;; "build syncthing" again with -no-upgrade. | ||||
|                ;; https://github.com/syncthing/syncthing/issues/6118 | ||||
|                (invoke "go" "run" "build.go") | ||||
|                (delete-file "bin/syncthing") | ||||
|                (invoke "go" "run" "build.go" "-no-upgrade" "build" "syncthing")))) | ||||
|                (replace 'build | ||||
|                  (lambda _ | ||||
|                    (with-directory-excursion "src/github.com/syncthing/syncthing" | ||||
|                      ;; XXX The only way to build Syncthing without its automatic | ||||
|                      ;; updater and to build the utilities is to "build all" and then | ||||
|                      ;; "build syncthing" again with -no-upgrade. | ||||
|                      ;; https://github.com/syncthing/syncthing/issues/6118 | ||||
|                      (invoke "go" "run" "build.go") | ||||
|                      (delete-file "bin/syncthing") | ||||
|                      (invoke "go" "run" "build.go" "-no-upgrade" "build" "syncthing")))) | ||||
| 
 | ||||
|          (replace 'check | ||||
|            (lambda* (#:key tests? #:allow-other-keys) | ||||
|              (when tests? | ||||
|                (with-directory-excursion "src/github.com/syncthing/syncthing" | ||||
|                  (invoke "go" "run" "build.go" "test"))) | ||||
|              #t)) | ||||
|              (replace 'check | ||||
|                (lambda* (#:key tests? #:allow-other-keys) | ||||
|                  (when tests? | ||||
|                    (with-directory-excursion "src/github.com/syncthing/syncthing" | ||||
|                      (invoke "go" "run" "build.go" "test"))))) | ||||
| 
 | ||||
|          (replace 'install | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let ((out (assoc-ref outputs "out")) | ||||
|                    (utils (assoc-ref outputs "utils"))) | ||||
|                (with-directory-excursion "src/github.com/syncthing/syncthing/bin" | ||||
|                  (install-file "../syncthing" (string-append out "/bin")) | ||||
|                  (for-each (cut install-file <> (string-append utils "/bin/")) | ||||
|                            '("stcompdirs" "stcrashreceiver" | ||||
|                              "stdisco" "stdiscosrv" "stevents" "stfileinfo" | ||||
|                              "stfinddevice" "stfindignored" "stgenfiles" | ||||
|                              "strelaypoolsrv" "strelaysrv" "stsigtool" | ||||
|                              "stvanity" "stwatchfile" "uraggregate" "ursrv")) | ||||
|                  #t)))) | ||||
|              (replace 'install | ||||
|                (lambda _ | ||||
|                  (with-directory-excursion "src/github.com/syncthing/syncthing/bin" | ||||
|                    (install-file "../syncthing" (string-append #$output "/bin")) | ||||
|                    (for-each (cut install-file <> (string-append #$output:utils "/bin/")) | ||||
|                              '("stcompdirs" "stcrashreceiver" | ||||
|                                "stdisco" "stdiscosrv" "stevents" "stfileinfo" | ||||
|                                "stfinddevice" "stfindignored" "stgenfiles" | ||||
|                                "strelaypoolsrv" "strelaysrv" "stsigtool" | ||||
|                                "stvanity" "stwatchfile" "uraggregate" "ursrv"))))) | ||||
| 
 | ||||
|          (add-after 'install 'install-docs | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out")) | ||||
|                     (utils (assoc-ref outputs "utils")) | ||||
|                     (man "/share/man") | ||||
|                     (man-section (string-append man "/man")) | ||||
|                     (src "src/github.com/syncthing/syncthing/man/")) | ||||
|            (lambda _ | ||||
|              (let ((man (string-append #$output "/share/man")) | ||||
|                    (man:utils (string-append #$output:utils "/share/man"))) | ||||
|                ;; Install all the man pages to "out". | ||||
|                (for-each | ||||
|                  (lambda (file) | ||||
|                    (install-file file | ||||
|                                  (string-append out man-section | ||||
|                                                 (string-take-right file 1)))) | ||||
|                  (find-files src "\\.[1-9]")) | ||||
|                 (lambda (file) | ||||
|                   (install-file file | ||||
|                                 (string-append man "/man" (string-take-right file 1)))) | ||||
|                 (find-files "src/github.com/syncthing/syncthing/man" "\\.[1-9]")) | ||||
|                ;; Copy all the man pages to "utils" | ||||
|                (copy-recursively (string-append out man) | ||||
|                                  (string-append utils man)) | ||||
|                (copy-recursively man man:utils) | ||||
|                ;; Delete extraneous man pages from "out" and "utils", | ||||
|                ;; respectively. | ||||
|                (delete-file (string-append out man "/man1/stdiscosrv.1")) | ||||
|                (delete-file (string-append out man "/man1/strelaysrv.1")) | ||||
|                (delete-file (string-append utils man "/man1/syncthing.1")) | ||||
|              #t)))))) | ||||
|                (delete-file (string-append man "/man1/stdiscosrv.1")) | ||||
|                (delete-file (string-append man "/man1/strelaysrv.1")) | ||||
|                (delete-file (string-append man:utils  "/man1/syncthing.1")))))))) | ||||
|     (synopsis "Decentralized continuous file system synchronization") | ||||
|     (description "Syncthing is a peer-to-peer file synchronization tool that | ||||
| supports a wide variety of computing platforms.  It uses the Block Exchange | ||||
|  |  | |||
|  | @ -517,7 +517,7 @@ Telegram project, for its use in telegram desktop client.") | |||
|            qrcodegen-cpp | ||||
|            qtbase-5 | ||||
|            qtdeclarative-5 | ||||
|            qtimageformats | ||||
|            qtimageformats-5 | ||||
|            qtsvg-5 | ||||
|            qtwayland-5 | ||||
|            range-v3 | ||||
|  |  | |||
|  | @ -33,6 +33,7 @@ | |||
| ;;; Copyright © 2022 Felipe Balbi <balbi@kernel.org> | ||||
| ;;; Copyright © 2022 ( <paren@disroot.org> | ||||
| ;;; Copyright © 2022 jgart <jgart@dismail.de> | ||||
| ;;; Copyright © 2023 Aaron Covrig <aaron.covrig.us@ieee.org> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -1339,50 +1340,54 @@ while also supporting native scrolling and @command{tmux} control mode | |||
|   (deprecated-package "wterm" foot)) | ||||
| 
 | ||||
| (define-public tilix | ||||
|   (package | ||||
|     (name "tilix") | ||||
|     (version "1.9.5") | ||||
|     (source | ||||
|       (origin | ||||
|         (method git-fetch) | ||||
|         (uri (git-reference | ||||
|                (url "https://github.com/gnunn1/tilix") | ||||
|                (commit version))) | ||||
|         (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "1ij3ix6yhi8hicxvglrxjyyv8bch9birrgsr8ml6jfh3hvk4pxdh")))) | ||||
|     (build-system meson-build-system) | ||||
|     (arguments | ||||
|      `(#:glib-or-gtk? #t | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'set-env-variables | ||||
|            (lambda _ | ||||
|              (setenv "CC" ,(cc-for-target)))) | ||||
|          (add-after 'unpack 'skip-gtk-update-icon-cache | ||||
|            (lambda _ | ||||
|              (substitute* "meson_post_install.py" | ||||
|                (("gtk-update-icon-cache") (which "true")) | ||||
|                (("update-desktop-database") (which "true")))))))) | ||||
|     (inputs | ||||
|      (list dbus | ||||
|            dconf | ||||
|            gsettings-desktop-schemas | ||||
|            gtk+ | ||||
|            gtkd | ||||
|            ldc | ||||
|            libsecret | ||||
|            libunwind | ||||
|            vte)) | ||||
|     (native-inputs | ||||
|      (list appstream | ||||
|            gettext-minimal | ||||
|            (list glib "bin") | ||||
|            ldc | ||||
|            pkg-config)) | ||||
|     (home-page "https://gnunn1.github.io/tilix-web/") | ||||
|     (synopsis "Tiling terminal emulator") | ||||
|     (description "Tilix is a tiling terminal emulator following the | ||||
|   (let ((commit "8726e9e9426e6b05c8cadfe7fe5205e8cbc910e3") | ||||
|         (revision "0")) | ||||
|     (package | ||||
|       (name "tilix") | ||||
|       ;; No release in over a year so include commits that fix glibc related | ||||
|       ;; build issues. | ||||
|       (version (git-version "1.9.5" revision commit)) | ||||
|       (source (origin | ||||
|                 (method git-fetch) | ||||
|                 (uri (git-reference | ||||
|                       (url "https://github.com/gnunn1/tilix") | ||||
|                       (commit commit))) | ||||
|                 (file-name (git-file-name name version)) | ||||
|                 (sha256 | ||||
|                  (base32 | ||||
|                   "0vbjfk6zn9r56nxhlgy77szv7ai061ds53hsz9zba0v9kyzzcdml")))) | ||||
|       (build-system meson-build-system) | ||||
|       (arguments | ||||
|        `(#:glib-or-gtk? #t | ||||
|          #:phases | ||||
|          (modify-phases %standard-phases | ||||
|            (add-after 'unpack 'set-env-variables | ||||
|              (lambda _ | ||||
|                (setenv "CC" ,(cc-for-target)))) | ||||
|            (add-after 'unpack 'skip-gtk-update-icon-cache | ||||
|              (lambda _ | ||||
|                (substitute* "meson_post_install.py" | ||||
|                  (("gtk-update-icon-cache") (which "true")) | ||||
|                  (("update-desktop-database") (which "true")))))))) | ||||
|       (inputs | ||||
|        (list dbus | ||||
|              dconf | ||||
|              gsettings-desktop-schemas | ||||
|              gtk+ | ||||
|              gtkd | ||||
|              ldc | ||||
|              libsecret | ||||
|              libunwind | ||||
|              vte)) | ||||
|       (native-inputs | ||||
|        (list appstream | ||||
|              gettext-minimal | ||||
|              (list glib "bin") | ||||
|              ldc | ||||
|              pkg-config)) | ||||
|       (home-page "https://gnunn1.github.io/tilix-web/") | ||||
|       (synopsis "Tiling terminal emulator") | ||||
|       (description "Tilix is a tiling terminal emulator following the | ||||
| Gnome Human Interface Guidelines.  Its features include: | ||||
| @enumerate | ||||
| @item Layout terminals in any fashion by splitting them horizontally or | ||||
|  | @ -1394,7 +1399,7 @@ windows. | |||
| terminal are replicated to the others. | ||||
| @item Supports notifications when processes are completed out of view. | ||||
| @end enumerate") | ||||
|     (license license:mpl2.0))) | ||||
|     (license license:mpl2.0)))) | ||||
| 
 | ||||
| (define-public tio | ||||
|   (package | ||||
|  |  | |||
							
								
								
									
										18934
									
								
								gnu/packages/tex.scm
									
										
									
									
									
								
							
							
						
						
									
										18934
									
								
								gnu/packages/tex.scm
									
										
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							|  | @ -3,7 +3,7 @@ | |||
| ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> | ||||
| ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> | ||||
| ;;; Copyright © 2016 Roel Janssen <roel@gnu.org> | ||||
| ;;; Copyright © 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2016, 2018-2021, 2023 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch> | ||||
| ;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be> | ||||
| ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net> | ||||
|  | @ -313,8 +313,9 @@ This package contains the binaries.") | |||
|                      (texlive-bin (assoc-ref inputs "texlive-bin")) | ||||
|                      (texbin (string-append texlive-bin "/bin")) | ||||
|                      (tlpkg (string-append texlive-bin "/share/tlpkg"))) | ||||
|                 ;; LuaJIT is not ported to powerpc64* yet. | ||||
|                 (if ,(target-ppc64le?) | ||||
|                 ;; LuaJIT is not ported to some systems yet. | ||||
|                 (if ,(or (target-ppc64le?) | ||||
|                          (target-riscv64?)) | ||||
|                     (substitute* fmtutilcnf | ||||
|                       (("^(luajittex|luajithbtex|mfluajit)" m) | ||||
|                        (string-append "#! " m)))) | ||||
|  |  | |||
|  | @ -5,6 +5,7 @@ | |||
| ;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org> | ||||
| ;;; Copyright © 2023 Andrew Tropin <andrew@trop.in> | ||||
| ;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr> | ||||
| ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -358,6 +359,13 @@ will be used in description and synopsis." | |||
|        #:commit commit | ||||
|        #:inputs (list tree-sitter-c)))) | ||||
| 
 | ||||
| (define-public tree-sitter-cmake | ||||
|   (tree-sitter-grammar | ||||
|    "cmake" "CMake" | ||||
|    "1z49jdachwxwbzrrapskpi2kxq3ydihfj45ab9892gbamfij2zp5" | ||||
|    "0.4.1" | ||||
|    #:repository-url "https://github.com/uyha/tree-sitter-cmake")) | ||||
| 
 | ||||
| (define-public tree-sitter-elixir | ||||
|   ;; No tags at all, version in the source code is 0.19.0 | ||||
|   (let ((commit "b20eaa75565243c50be5e35e253d8beb58f45d56") | ||||
|  | @ -390,6 +398,13 @@ will be used in description and synopsis." | |||
|    "054fmpf47cwh59gbg00sc0nl237ba4rnxi73miz39yqzcs87055r" | ||||
|    "0.19.1")) | ||||
| 
 | ||||
| (define-public tree-sitter-dockerfile | ||||
|   (tree-sitter-grammar | ||||
|    "dockerfile" "Dockerfile" | ||||
|    "0kf4c4xs5naj8lpcmr3pbdvwj526wl9p6zphxxpimbll7qv6qfnd" | ||||
|    "0.1.2" | ||||
|    #:repository-url "https://github.com/camdencheek/tree-sitter-dockerfile")) | ||||
| 
 | ||||
| (define-public tree-sitter-elm | ||||
|   (tree-sitter-grammar | ||||
|    "elm" "Elm" | ||||
|  | @ -528,6 +543,18 @@ will be used in description and synopsis." | |||
|    "0.7.1" | ||||
|    #:repository-url "https://github.com/ikatyang/tree-sitter-markdown")) | ||||
| 
 | ||||
| (define-public tree-sitter-meson | ||||
|   ;; tag 1.2 is Aug 24,2022  this commit is Feb 28,2023 | ||||
|   (let ((commit "3d6dfbdb2432603bc84ca7dc009bb39ed9a8a7b1") | ||||
|         (revision "0")) | ||||
|     (tree-sitter-grammar | ||||
|      "meson" "Meson" | ||||
|      "1rn7r76h65d41354czyccm59d1j9nzybcrjvjh934lpr59qrw61m" | ||||
|      (git-version "1.2" revision commit) | ||||
|      #:repository-url "https://github.com/Decodetalkers/tree-sitter-meson" | ||||
|      #:commit commit | ||||
|      #:license license:expat))) | ||||
| 
 | ||||
| (define-public tree-sitter-org | ||||
|   ;; There are a lot of additions, the last tag was placed a while ago | ||||
|   (let ((commit "081179c52b3e8175af62b9b91dc099d010c38770") | ||||
|  |  | |||
|  | @ -1701,6 +1701,11 @@ operate properly.") | |||
|       ;;   --enable-libzvbi         enable teletext support via libzvbi [no] | ||||
|       ;;   --enable-opencl          enable OpenCL code | ||||
|       #~(list | ||||
|          #$@(if (target-powerpc?) | ||||
|                 ;; These tests fail on powerpc64-le (see: | ||||
|                 ;; https://trac.ffmpeg.org/ticket/9604). | ||||
|                 '("--ignore-tests=checkasm-sw_scale,filter-scale2ref_keep_aspect") | ||||
|                 '()) | ||||
|          "--enable-gpl"                 ;enable optional gpl licensed parts | ||||
|          "--enable-shared" | ||||
|          "--enable-frei0r" | ||||
|  |  | |||
|  | @ -275,7 +275,7 @@ program.") | |||
| (define-public autorandr | ||||
|   (package | ||||
|     (name "autorandr") | ||||
|     (version "1.10.1") | ||||
|     (version "1.14") | ||||
|     (home-page "https://github.com/phillipberndt/autorandr") | ||||
|     (source | ||||
|      (origin | ||||
|  | @ -285,7 +285,7 @@ program.") | |||
|              (commit version))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "0msw9b1hdy3gbq9w5d04mfizhyirz1c648x84mlcbzl8salm7vpg")))) | ||||
|         (base32 "0yb0rnv37xymjhg54mk7zw3h9501f45ykc1754mxy1q3bm0fgva6")))) | ||||
|     (build-system python-build-system) | ||||
|     (native-inputs | ||||
|      (list pkg-config)) | ||||
|  | @ -1117,7 +1117,7 @@ shows it again when the mouse cursor moves or a mouse button is pressed.") | |||
| (define-public xlockmore | ||||
|   (package | ||||
|     (name "xlockmore") | ||||
|     (version "5.68") | ||||
|     (version "5.72") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (list (string-append "http://sillycycle.com/xlock/" | ||||
|  | @ -1128,7 +1128,7 @@ shows it again when the mouse cursor moves or a mouse button is pressed.") | |||
|                                         "xlockmore-" version ".tar.xz"))) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0vndfwccnvkaaraprjam8pmx0aj55va0ag64q6snxw83nbf1ywrh")))) | ||||
|                 "0wn77ri29rhk1w3wik2hpqb8lks1pyqzdk6d583mawxfcxcrf4fm")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      (list | ||||
|  | @ -2661,14 +2661,14 @@ temperature of the screen.") | |||
| (define-public xsecurelock | ||||
|   (package | ||||
|     (name "xsecurelock") | ||||
|     (version "1.7.0") | ||||
|     (version "1.8.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append | ||||
|                     "https://github.com/google/xsecurelock/releases" | ||||
|                     "/download/v" version "/xsecurelock-" version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 "0s2q69g1xhvs18q2jhcval5vpa9j0kkrdv02r176vvxvdms7hhc7")))) | ||||
|                (base32 "1i7vhzysirr5kra15vd501b79k0jgs11lkb9ck3hx6vicxm204d3")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      '(#:configure-flags | ||||
|  | @ -3552,7 +3552,7 @@ light filter or night light.") | |||
| (define-public ydotool | ||||
|   (package | ||||
|     (name "ydotool") | ||||
|     (version "1.0.1") | ||||
|     (version "1.0.4") | ||||
|     (source | ||||
|      (origin | ||||
|        (method git-fetch) | ||||
|  | @ -3561,7 +3561,7 @@ light filter or night light.") | |||
|              (commit (string-append "v" version)))) | ||||
|        (file-name (git-file-name name version)) | ||||
|        (sha256 | ||||
|         (base32 "1h19dh7kai0iikssr7sq0wfkh0sb18dylyfg7c3dkwc158cdg9cr")))) | ||||
|         (base32 "0y2n1r6hx0ar1yn636a7j4ywm17qqji84ryhdina3kriwx3sgmij")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments '(#:tests? #f))          ; no tests | ||||
|     (native-inputs (list scdoc)) | ||||
|  |  | |||
|  | @ -891,6 +891,34 @@ GIT integration to Thunar, it adds Subversion and GIT actions to the context | |||
| menu.") | ||||
|     (license gpl2+))) | ||||
| 
 | ||||
| (define-public thunarx-python | ||||
|   (package | ||||
|     (name "thunarx-python") | ||||
|     (version "0.5.2") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://archive.xfce.org/src/bindings/" | ||||
|                            name "/" (version-major+minor version) | ||||
|                            "/" name "-" version ".tar.bz2")) | ||||
|        (sha256 | ||||
|         (base32 "08lz9pvx006a2fypg2q38p61jbhy0yswz8cizlxpiwfcqsvhpnln")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (native-inputs | ||||
|      (list pkg-config which)) | ||||
|     (inputs | ||||
|      (list exo | ||||
|            thunar | ||||
|            python | ||||
|            python-pygobject | ||||
|            libxfce4ui | ||||
|            gtk+)) | ||||
|     (home-page "https://gitlab.xfce.org/bindings/thunarx-python") | ||||
|     (synopsis "Python Bindings for Thunar") | ||||
|     (description | ||||
|      "These bindings allow one to create python plugins for Thunar.") | ||||
|     (license gpl2+))) | ||||
| 
 | ||||
| (define-public xfwm4 | ||||
|   (package | ||||
|     (name "xfwm4") | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2015-2022 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; Copyright © 2015-2023 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> | ||||
| ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> | ||||
| ;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net> | ||||
|  | @ -86,6 +86,10 @@ | |||
|             instantiate-missing-services | ||||
|             fold-services | ||||
| 
 | ||||
|             remove-service-extensions | ||||
|             for-home | ||||
|             for-home? | ||||
| 
 | ||||
|             service-error? | ||||
|             missing-value-service-error? | ||||
|             missing-value-service-error-type | ||||
|  | @ -1225,4 +1229,23 @@ TARGET-TYPE; return the root service adjusted accordingly." | |||
|                            (G_ "more than one target service of type '~a'") | ||||
|                            (service-type-name target-type))))))))) | ||||
| 
 | ||||
| (define (remove-service-extensions type lst) | ||||
|   "Return TYPE, a service type, without any of the service extensions | ||||
| targeting one of the types in LST." | ||||
|   (service-type | ||||
|    (inherit type) | ||||
|    (extensions (remove (lambda (extension) | ||||
|                          (memq (service-extension-target extension) lst)) | ||||
|                        (service-type-extensions type))))) | ||||
| 
 | ||||
| (define-syntax-parameter for-home? | ||||
|   ;; Whether the configuration being defined is for a Home service. | ||||
|   (identifier-syntax #f)) | ||||
| 
 | ||||
| (define-syntax-rule (for-home exp ...) | ||||
|   "Mark EXP, which typically defines a service configuration, as targeting a | ||||
| Home service rather than a System service." | ||||
|   (syntax-parameterize ((for-home? (identifier-syntax #t))) | ||||
|     exp ...)) | ||||
| 
 | ||||
| ;;; services.scm ends here. | ||||
|  |  | |||
|  | @ -22,7 +22,7 @@ | |||
| (define-module (gnu services admin) | ||||
|   #:use-module (gnu packages admin) | ||||
|   #:use-module ((gnu packages base) | ||||
|                 #:select (canonical-package findutils)) | ||||
|                 #:select (canonical-package findutils coreutils sed)) | ||||
|   #:use-module (gnu packages certs) | ||||
|   #:use-module (gnu packages package-management) | ||||
|   #:use-module (gnu services) | ||||
|  | @ -290,7 +290,7 @@ Old log files are removed or compressed according to the configuration.") | |||
|   "10 23 * * 0") | ||||
| 
 | ||||
| (define %default-file-database-excluded-directories | ||||
|   ;; Directories excluded from the 'locate' database. | ||||
|   ;; Regexps of directories excluded from the 'locate' database. | ||||
|   (list (%store-prefix) | ||||
|         "/tmp" "/var/tmp" "/var/cache" ".*/\\.cache" | ||||
|         "/run/udev")) | ||||
|  | @ -319,10 +319,10 @@ is taken.") | |||
| @command{updatedb} job (@pxref{Guile Syntax,,, mcron, GNU@tie{}mcron}).") | ||||
|   (excluded-directories | ||||
|    (string-list %default-file-database-excluded-directories) | ||||
|    "List of directories to ignore when building the file database.  By | ||||
| default, this includes @file{/tmp} and @file{/gnu/store}, which should instead | ||||
| be indexed by @command{guix locate} (@pxref{Invoking guix locate}).  This list | ||||
| is passed to the @option{--prunepaths} option of | ||||
|    "List of regular expressions of directories to ignore when building the | ||||
| file database.  By default, this includes @file{/tmp} and @file{/gnu/store}; | ||||
| the latter should instead be indexed by @command{guix locate} (@pxref{Invoking | ||||
| guix locate}).  This list is passed to the @option{--prunepaths} option of | ||||
| @command{updatedb} (@pxref{Invoking updatedb,,, find, GNU@tie{}Findutils}).")) | ||||
| 
 | ||||
| (define (file-database-mcron-jobs configuration) | ||||
|  | @ -330,11 +330,20 @@ is passed to the @option{--prunepaths} option of | |||
|     (package schedule excluded-directories) | ||||
|     (let ((updatedb (program-file | ||||
|                      "updatedb" | ||||
|                      #~(execl #$(file-append package "/bin/updatedb") | ||||
|                               "updatedb" | ||||
|                               #$(string-append "--prunepaths=" | ||||
|                                                (string-join | ||||
|                                                 excluded-directories)))))) | ||||
|                      #~(begin | ||||
|                          ;; 'updatedb' is a shell script that expects various | ||||
|                          ;; commands in $PATH. | ||||
|                          (setenv "PATH" | ||||
|                                  (string-append #$package "/bin:" | ||||
|                                                 #$(canonical-package coreutils) | ||||
|                                                 "/bin:" | ||||
|                                                 #$(canonical-package sed) | ||||
|                                                 "/bin")) | ||||
|                          (execl #$(file-append package "/bin/updatedb") | ||||
|                                 "updatedb" | ||||
|                                 #$(string-append "--prunepaths=" | ||||
|                                                  (string-join | ||||
|                                                   excluded-directories))))))) | ||||
|       (list #~(job #$schedule #$updatedb))))) | ||||
| 
 | ||||
| (define file-database-service-type | ||||
|  |  | |||
|  | @ -56,7 +56,9 @@ | |||
|   (handlers    dicod-configuration-handlers       ;list of <dicod-handler> | ||||
|                (default '())) | ||||
|   (databases   dicod-configuration-databases      ;list of <dicod-database> | ||||
|                (default (list %dicod-database:gcide)))) | ||||
|                (default (list %dicod-database:gcide))) | ||||
|   (home-service? dicod-configuration-home-service? ;boolean | ||||
|                  (default for-home?) (innate))) | ||||
| 
 | ||||
| (define-record-type* <dicod-handler> | ||||
|   dicod-handler make-dicod-handler | ||||
|  | @ -73,12 +75,24 @@ | |||
|   (complex?    dicod-database-complex?       (default #f)) | ||||
|   (options     dicod-database-options        (default '()))) | ||||
| 
 | ||||
| (define %dicod-gcide-index | ||||
|   ;; The GCIDE pre-built index.  The Dico 'gcide' module can build it lazily; | ||||
|   ;; do it upfront so there's no need for a writable directory at run-time. | ||||
|   (computed-file "dicod-gcide-index" | ||||
|                  (with-imported-modules '((guix build utils)) | ||||
|                    #~(begin | ||||
|                        (use-modules (guix build utils)) | ||||
|                        (mkdir #$output) | ||||
|                        (invoke #+(file-append dico "/libexec/idxgcide") | ||||
|                                #+(file-append gcide "/share/gcide") | ||||
|                                #$output))))) | ||||
| 
 | ||||
| (define %dicod-database:gcide | ||||
|   (dicod-database | ||||
|    (name "gcide") | ||||
|    (handler "gcide") | ||||
|    (options (list #~(string-append "dbdir=" #$gcide "/share/gcide") | ||||
|                   "idxdir=/var/run/dicod")))) | ||||
|                   #~(string-append "idxdir=" #$%dicod-gcide-index))))) | ||||
| 
 | ||||
| (define %dicod-accounts | ||||
|   (list (user-group | ||||
|  | @ -137,55 +151,43 @@ database { | |||
| 
 | ||||
|   (apply mixed-text-file "dicod.conf" (configuration->text config))) | ||||
| 
 | ||||
| (define %dicod-activation | ||||
|   #~(begin | ||||
|       (use-modules (guix build utils)) | ||||
|       (let ((user   (getpwnam "dicod")) | ||||
|             (rundir "/var/run/dicod")) | ||||
|         (mkdir-p rundir) | ||||
|         (chown rundir (passwd:uid user) (passwd:gid user))))) | ||||
| 
 | ||||
| (define (dicod-shepherd-service config) | ||||
|   (let* ((dicod.conf (dicod-configuration-file config)) | ||||
|          (interfaces (dicod-configuration-interfaces config)) | ||||
|          (home-service? (dicod-configuration-home-service? config)) | ||||
|          (mappings  `(,@(if home-service? | ||||
|                             '() | ||||
|                             (list (file-system-mapping | ||||
|                                    (source "/dev/log") | ||||
|                                    (target source)))) | ||||
|                       ,(file-system-mapping | ||||
|                         (source dicod.conf) | ||||
|                         (target source)))) | ||||
|          (dicod      (least-authority-wrapper | ||||
|                       (file-append (dicod-configuration-dico config) | ||||
|                                    "/bin/dicod") | ||||
|                       #:name "dicod" | ||||
|                       #:mappings (list (file-system-mapping | ||||
|                                         (source "/var/run/dicod") | ||||
|                                         (target source) | ||||
|                                         (writable? #t)) | ||||
|                                        (file-system-mapping | ||||
|                                         (source "/dev/log") | ||||
|                                         (target source)) | ||||
|                                        (file-system-mapping | ||||
|                                         (source dicod.conf) | ||||
|                                         (target source))) | ||||
|                       #:mappings mappings | ||||
|                       #:namespaces (delq 'net %namespaces)))) | ||||
|     (list (shepherd-service | ||||
|            (provision '(dicod)) | ||||
|            (requirement '(user-processes)) | ||||
|            (requirement (if home-service? | ||||
|                             '() | ||||
|                             '(user-processes))) | ||||
|            (documentation "Run the dicod daemon.") | ||||
|            (start #~(if (defined? 'make-inetd-constructor) | ||||
|                         (make-inetd-constructor | ||||
|                          (list #$dicod "--inetd" "--foreground" | ||||
|                                (string-append "--config=" #$dicod.conf)) | ||||
|                          (map (lambda (interface) | ||||
|                                 (endpoint | ||||
|                                  (addrinfo:addr | ||||
|                                   (car (getaddrinfo interface "dict"))))) | ||||
|                               '#$interfaces) | ||||
|                          #:requirements '#$requirement | ||||
|                          #:user "dicod" #:group "dicod" | ||||
|                          #:service-name-stem "dicod") | ||||
|                         (make-forkexec-constructor | ||||
|                          (list #$dicod "--foreground" | ||||
|                                (string-append "--config=" #$dicod.conf)) | ||||
|                          #:user "dicod" #:group "dicod"))) | ||||
|            (stop #~(if (defined? 'make-inetd-destructor) | ||||
|                        (make-inetd-destructor) | ||||
|                        (make-kill-destructor))) | ||||
|            (start #~(make-inetd-constructor | ||||
|                      (list #$dicod "--inetd" "--foreground" | ||||
|                            (string-append "--config=" #$dicod.conf)) | ||||
|                      (map (lambda (interface) | ||||
|                             (endpoint | ||||
|                              (addrinfo:addr | ||||
|                               (car (getaddrinfo interface "dict"))))) | ||||
|                           '#$interfaces) | ||||
|                      #:requirements '#$requirement | ||||
|                      #:user #$(and (not home-service?) "dicod") | ||||
|                      #:group #$(and (not home-service?) "dicod") | ||||
|                      #:service-name-stem "dicod")) | ||||
|            (stop #~(make-inetd-destructor)) | ||||
|            (actions (list (shepherd-configuration-action dicod.conf))))))) | ||||
| 
 | ||||
| (define dicod-service-type | ||||
|  | @ -194,8 +196,6 @@ database { | |||
|    (extensions | ||||
|     (list (service-extension account-service-type | ||||
|                              (const %dicod-accounts)) | ||||
|           (service-extension activation-service-type | ||||
|                              (const %dicod-activation)) | ||||
|           (service-extension shepherd-root-service-type | ||||
|                              dicod-shepherd-service))) | ||||
|    (default-value (dicod-configuration)) | ||||
|  |  | |||
|  | @ -365,6 +365,7 @@ | |||
|                               #:guile guile)) | ||||
|                      #:user #$user | ||||
|                      #:group #$group | ||||
|                      #:directory "/var/lib/guix-build-coordinator" | ||||
|                      #:pid-file "/var/run/guix-build-coordinator/pid" | ||||
|                      ;; Allow time for migrations to run | ||||
|                      #:pid-file-timeout 60 | ||||
|  | @ -440,7 +441,7 @@ | |||
|      (shepherd-service | ||||
|       (documentation "Guix Build Coordinator Agent") | ||||
|       (provision '(guix-build-coordinator-agent)) | ||||
|       (requirement '(networking)) | ||||
|       (requirement '(networking user-processes)) | ||||
|       (start | ||||
|        #~(lambda _ | ||||
|            (parameterize ((%current-logfile-date-format "")) | ||||
|  | @ -697,6 +698,7 @@ ca-certificates.crt file in the system profile." | |||
| 
 | ||||
|                 #:user #$user | ||||
|                 #:group #$group | ||||
|                 #:directory "/var/lib/guix-data-service" | ||||
|                 #:pid-file "/var/run/guix-data-service/pid" | ||||
|                 #:environment-variables | ||||
|                 `(,(string-append | ||||
|  | @ -716,6 +718,7 @@ ca-certificates.crt file in the system profile." | |||
|                  #$@extra-process-jobs-options) | ||||
|                 #:user #$user | ||||
|                 #:group #$group | ||||
|                 #:directory "/var/lib/guix-data-service" | ||||
|                 #:environment-variables | ||||
|                 `("HOME=/var/lib/guix-data-service" | ||||
|                   "GIT_SSL_CAINFO=/etc/ssl/certs/ca-certificates.crt" | ||||
|  | @ -972,6 +975,7 @@ ca-certificates.crt file in the system profile." | |||
|                              '())) | ||||
|                 #:user #$user | ||||
|                 #:group #$group | ||||
|                 #:directory "/var/lib/nar-herder" | ||||
|                 #:pid-file "/var/run/nar-herder/pid" | ||||
|                 #:environment-variables | ||||
|                 `(,(string-append | ||||
|  |  | |||
|  | @ -174,6 +174,7 @@ representation." | |||
|   (shepherd-service | ||||
|    (documentation "Run the Early OOM daemon.") | ||||
|    (provision '(earlyoom)) | ||||
|    (requirement '(user-processes)) | ||||
|    (start #~(make-forkexec-constructor | ||||
|              '#$(earlyoom-configuration->command-line-args config) | ||||
|              #:log-file "/var/log/earlyoom.log")) | ||||
|  | @ -192,7 +193,8 @@ representation." | |||
|                              (compose list earlyoom-shepherd-service)) | ||||
|           (service-extension rottlog-service-type | ||||
|                              (const %earlyoom-log-rotation)))) | ||||
|    (description "Run @command{earlyoom}, the Early OOM daemon."))) | ||||
|    (description "Run @command{earlyoom}, a daemon that quickly responds to | ||||
| @acronym{OOM, out-of-memory} conditions by terminating relevant processes."))) | ||||
| 
 | ||||
|  | ||||
| ;;; | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; Copyright © 2016-2020, 2023 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||||
| ;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu> | ||||
| ;;; | ||||
|  | @ -20,10 +20,8 @@ | |||
| 
 | ||||
| (define-module (gnu services mcron) | ||||
|   #:use-module (gnu services) | ||||
|   #:use-module (gnu services configuration) | ||||
|   #:use-module (gnu services shepherd) | ||||
|   #:use-module (gnu packages guile-xyz) | ||||
|   #:use-module (guix deprecation) | ||||
|   #:use-module (guix records) | ||||
|   #:use-module (guix gexp) | ||||
|   #:use-module (srfi srfi-1) | ||||
|  | @ -37,6 +35,7 @@ | |||
|             mcron-configuration-log-file | ||||
|             mcron-configuration-log-format | ||||
|             mcron-configuration-date-format | ||||
|             mcron-configuration-home-service? | ||||
| 
 | ||||
|             mcron-service-type)) | ||||
| 
 | ||||
|  | @ -55,40 +54,34 @@ | |||
| ;;; | ||||
| ;;; Code: | ||||
| 
 | ||||
| (define list-of-gexps? | ||||
|   (list-of gexp?)) | ||||
| ;; Configuration of mcron. | ||||
| ;; XXX: 'define-configuration' cannot be used here due to the need for | ||||
| ;; 'thunked' and 'innate' fields as well as 'this-mcron-configuration'. | ||||
| (define-record-type* <mcron-configuration> mcron-configuration | ||||
|   make-mcron-configuration | ||||
|   mcron-configuration? | ||||
|   this-mcron-configuration | ||||
| 
 | ||||
| (define-maybe/no-serialization string) | ||||
|   (mcron       mcron-configuration-mcron          ;file-like | ||||
|                (default mcron)) | ||||
|   (jobs        mcron-configuration-jobs           ;list of gexps | ||||
|                (default '())) | ||||
|   (log?        mcron-configuration-log?           ;Boolean | ||||
|                (default #t)) | ||||
|   (log-file    mcron-configuration-log-file       ;string | gexp | ||||
|                (thunked) | ||||
|                (default | ||||
|                  (if (mcron-configuration-home-service? | ||||
|                       this-mcron-configuration) | ||||
|                      #~(string-append %user-log-dir "/mcron.log") | ||||
|                      "/var/log/mcron.log"))) | ||||
|   (log-format  mcron-configuration-log-format     ;string | ||||
|                (default "~1@*~a ~a: ~a~%")) | ||||
|   (date-format mcron-configuration-date-format    ;string | #f | ||||
|                (default #f)) | ||||
| 
 | ||||
| (define-configuration/no-serialization mcron-configuration | ||||
|   (mcron | ||||
|    (file-like mcron) | ||||
|    "The mcron package to use.") | ||||
| 
 | ||||
|   (jobs | ||||
|    (list-of-gexps '()) | ||||
|    "This is a list of gexps (@pxref{G-Expressions}), where each gexp | ||||
| corresponds to an mcron job specification (@pxref{Syntax, mcron job | ||||
| specifications,, mcron, GNU@tie{}mcron}).") | ||||
| 
 | ||||
|   (log? | ||||
|    (boolean #t) | ||||
|    "Log messages to standard output.") | ||||
| 
 | ||||
|   (log-file | ||||
|    (string "/var/log/mcron.log") | ||||
|    "Log file location.") | ||||
| 
 | ||||
|   (log-format | ||||
|    (string "~1@*~a ~a: ~a~%") | ||||
|    "@code{(ice-9 format)} format string for log messages.  The default value | ||||
| produces messages like @samp{@var{pid} @var{name}: @var{message}} | ||||
| (@pxref{Invoking mcron, Invoking,, mcron, GNU@tie{}mcron}). | ||||
| Each message is also prefixed by a timestamp by GNU Shepherd.") | ||||
| 
 | ||||
|   (date-format | ||||
|    maybe-string | ||||
|    "@code{(srfi srfi-19)} format string for date.")) | ||||
|   (home-service? mcron-configuration-home-service? | ||||
|                  (default for-home?) (innate))) | ||||
| 
 | ||||
| (define (job-files mcron jobs) | ||||
|   "Return a list of file-like object for JOBS, a list of gexps." | ||||
|  | @ -158,24 +151,27 @@ files." | |||
| 
 | ||||
| (define (mcron-shepherd-services config) | ||||
|   (match-record config <mcron-configuration> | ||||
|     (mcron jobs log? log-file log-format date-format) | ||||
|     (mcron jobs log? log-file log-format date-format home-service?) | ||||
|     (if (eq? jobs '()) | ||||
|         '()                             ;nothing to do | ||||
|         (let ((files (job-files mcron jobs))) | ||||
|           (list (shepherd-service | ||||
|                  (provision '(mcron)) | ||||
|                  (requirement '(user-processes)) | ||||
|                  (requirement (if home-service? | ||||
|                                   '() | ||||
|                                   '(user-processes))) | ||||
|                  (modules `((srfi srfi-1) | ||||
|                             (srfi srfi-26) | ||||
|                             (ice-9 popen) ;for the 'schedule' action | ||||
|                             (ice-9 rdelim) | ||||
|                             (ice-9 match) | ||||
|                             ((shepherd support) #:select (%user-log-dir)) | ||||
|                             ,@%default-modules)) | ||||
|                  (start #~(make-forkexec-constructor | ||||
|                            (list #$(file-append mcron "/bin/mcron") | ||||
|                                  #$@(if log? | ||||
|                                         `("--log" "--log-format" ,log-format | ||||
|                                           ,@(if (maybe-value-set? date-format) | ||||
|                                           ,@(if date-format | ||||
|                                                 (list "--date-format" | ||||
|                                                       date-format) | ||||
|                                                 '())) | ||||
|  | @ -209,15 +205,10 @@ files." | |||
|                 (extend (lambda (config jobs) | ||||
|                           (mcron-configuration | ||||
|                            (inherit config) | ||||
|                            (home-service? | ||||
|                             (mcron-configuration-home-service? config)) | ||||
|                            (jobs (append (mcron-configuration-jobs config) | ||||
|                                          jobs))))) | ||||
|                 (default-value (mcron-configuration)))) ;empty job list | ||||
| 
 | ||||
|  | ||||
| ;;; | ||||
| ;;; Generate documentation. | ||||
| ;;; | ||||
| (define (generate-doc) | ||||
|   (configuration->documentation 'mcron-configuration)) | ||||
| 
 | ||||
| ;;; mcron.scm ends here | ||||
|  |  | |||
|  | @ -49,35 +49,41 @@ | |||
|   (group     syncthing-configuration-group     ;string | ||||
|              (default "users")) | ||||
|   (home      syncthing-configuration-home      ;string | ||||
|              (default #f))) | ||||
|              (default #f)) | ||||
|   (home-service? syncthing-configuration-home-service? | ||||
|                  (default for-home?) (innate))) | ||||
| 
 | ||||
| (define syncthing-shepherd-service | ||||
|   (match-lambda | ||||
|     (($ <syncthing-configuration> syncthing arguments logflags user group home) | ||||
|      (list | ||||
|       (shepherd-service | ||||
|        (provision (list (string->symbol (string-append "syncthing-" user)))) | ||||
|        (documentation "Run syncthing.") | ||||
|        (requirement '(loopback)) | ||||
|        (start #~(make-forkexec-constructor | ||||
|                  (append (list (string-append #$syncthing "/bin/syncthing") | ||||
|                                "--no-browser" | ||||
|                                "--no-restart" | ||||
|                                (string-append "--logflags=" (number->string #$logflags))) | ||||
|                          '#$arguments) | ||||
|                  #:user #$user | ||||
|                  #:group #$group | ||||
|                  #:environment-variables | ||||
|                  (append (list (string-append "HOME=" (or #$home (passwd:dir (getpw #$user)))) | ||||
|                                "SSL_CERT_DIR=/etc/ssl/certs" | ||||
|                                "SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt") | ||||
|                          (remove (lambda (str) | ||||
|   (match-record-lambda <syncthing-configuration> | ||||
|       (syncthing arguments logflags user group home home-service?) | ||||
|     (list | ||||
|      (shepherd-service | ||||
|       (provision (if home-service? | ||||
|                      '(syncthing) | ||||
|                      (list (string->symbol | ||||
|                             (string-append "syncthing-" user))))) | ||||
|       (documentation "Run syncthing.") | ||||
|       (requirement (if home-service? '() '(loopback))) | ||||
|       (start #~(make-forkexec-constructor | ||||
|                 (append (list (string-append #$syncthing "/bin/syncthing") | ||||
|                               "--no-browser" | ||||
|                               "--no-restart" | ||||
|                               (string-append "--logflags=" (number->string #$logflags))) | ||||
|                         '#$arguments) | ||||
|                 #:user #$(and (not home-service?) user) | ||||
|                 #:group #$(and (not home-service?) group) | ||||
|                 #:environment-variables | ||||
|                 (append (list (string-append "HOME=" (or #$home (passwd:dir (getpw #$user)))) | ||||
|                               "SSL_CERT_DIR=/etc/ssl/certs" | ||||
|                               "SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt") | ||||
|                         (filter (negate       ;XXX: 'remove' is not in (guile) | ||||
|                                  (lambda (str) | ||||
|                                    (or (string-prefix? "HOME=" str) | ||||
|                                        (string-prefix? "SSL_CERT_DIR=" str) | ||||
|                                        (string-prefix? "SSL_CERT_FILE=" str))) | ||||
|                                  (environ))))) | ||||
|        (respawn? #f) | ||||
|        (stop #~(make-kill-destructor))))))) | ||||
|                                        (string-prefix? "SSL_CERT_FILE=" str)))) | ||||
|                                 (environ))))) | ||||
|       (respawn? #f) | ||||
|       (stop #~(make-kill-destructor)))))) | ||||
| 
 | ||||
| (define syncthing-service-type | ||||
|   (service-type (name 'syncthing) | ||||
|  |  | |||
|  | @ -29,6 +29,7 @@ | |||
|             user-account-supplementary-groups | ||||
|             user-account-comment | ||||
|             user-account-home-directory | ||||
|             user-account-home-directory-permissions | ||||
|             user-account-create-home-directory? | ||||
|             user-account-shell | ||||
|             user-account-system? | ||||
|  | @ -70,6 +71,8 @@ | |||
|   (comment        user-account-comment (default "")) | ||||
|   (home-directory user-account-home-directory (thunked) | ||||
|                   (default (default-home-directory this-record))) | ||||
|   (home-directory-permissions user-account-home-directory-permissions | ||||
|                               (default #o700)) | ||||
|   (create-home-directory? user-account-create-home-directory? ;Boolean | ||||
|                           (default #t)) | ||||
|   (shell          user-account-shell              ; gexp | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| ;; This is an operating system configuration template | ||||
| ;; for a "desktop" setup with Plasma. | ||||
| 
 | ||||
| (use-modules (gnu) (gnu system nss)) | ||||
| (use-modules (gnu) (gnu system nss) (srfi srfi-1)) | ||||
| (use-service-modules desktop sddm xorg ssh) | ||||
| (use-package-modules certs gnome ssh admin fonts) | ||||
| (use-package-modules qt xorg tmux linux) | ||||
|  | @ -57,8 +57,13 @@ | |||
|              (service sddm-service-type | ||||
|                       (sddm-configuration | ||||
|                        (theme "breeze"))) | ||||
|              (modify-services %desktop-services | ||||
|                (delete gdm-service-type)))) | ||||
| 
 | ||||
|              ;; Remove GDM if it's among %DESKTOP-SERVICES; on other | ||||
|              ;; architectures, %DESKTOP-SERVICES contains SDDM instead. | ||||
|              (remove (lambda (service) | ||||
|                        (memq (service-kind service) | ||||
|                              (list gdm-service-type sddm-service-type))) | ||||
|                      %desktop-services))) | ||||
|   ;; Allow resolution of '.local' host names with mDNS. | ||||
|   (name-service-switch %mdns-host-lookup-nss)) | ||||
| 
 | ||||
|  |  | |||
|  | @ -76,6 +76,7 @@ | |||
|             esp32-partition | ||||
|             root-partition | ||||
| 
 | ||||
|             mbr-disk-image | ||||
|             efi-disk-image | ||||
|             iso9660-image | ||||
|             docker-image | ||||
|  | @ -84,6 +85,7 @@ | |||
|             raw-with-offset-disk-image | ||||
| 
 | ||||
|             image-with-os | ||||
|             mbr-raw-image-type | ||||
|             efi-raw-image-type | ||||
|             efi32-raw-image-type | ||||
|             qcow2-image-type | ||||
|  | @ -145,6 +147,15 @@ parent image record." | |||
|    (flags '(boot)) | ||||
|    (initializer (gexp initialize-root-partition)))) | ||||
| 
 | ||||
| (define mbr-disk-image | ||||
|   (image-without-os | ||||
|    (format 'disk-image) | ||||
|    (partition-table-type 'mbr) | ||||
|    (partitions | ||||
|     (list (partition | ||||
|            (inherit root-partition) | ||||
|            (offset root-offset)))))) | ||||
| 
 | ||||
| (define efi-disk-image | ||||
|   (image-without-os | ||||
|    (format 'disk-image) | ||||
|  | @ -201,6 +212,11 @@ set to the given OS." | |||
|    (inherit base-image) | ||||
|    (operating-system os))) | ||||
| 
 | ||||
| (define mbr-raw-image-type | ||||
|   (image-type | ||||
|    (name 'mbr-raw) | ||||
|    (constructor (cut image-with-os mbr-disk-image <>)))) | ||||
| 
 | ||||
| (define efi-raw-image-type | ||||
|   (image-type | ||||
|    (name 'efi-raw) | ||||
|  | @ -216,8 +232,7 @@ set to the given OS." | |||
|    (name 'qcow2) | ||||
|    (constructor (cut image-with-os | ||||
|                  (image | ||||
|                   (inherit efi-disk-image) | ||||
|                   (partition-table-type 'mbr) | ||||
|                   (inherit mbr-disk-image) | ||||
|                   (name 'image.qcow2) | ||||
|                   (format 'compressed-qcow2)) | ||||
|                  <>)))) | ||||
|  |  | |||
|  | @ -229,7 +229,7 @@ reboot\n") | |||
|                                                 (gnu installer tests) | ||||
|                                                 (guix combinators)))) | ||||
|                       (uefi-support? #f) | ||||
|                       (installation-image-type 'efi-raw) | ||||
|                       (installation-image-type 'mbr-raw) | ||||
|                       (install-size 'guess) | ||||
|                       (target-size (* 2200 MiB)) | ||||
|                       (number-of-disks 1)) | ||||
|  | @ -291,7 +291,7 @@ such as for RAID systems." | |||
|                        '("-bios" #$uefi-firmware) | ||||
|                        '()) | ||||
|                  #$@(cond | ||||
|                      ((eq? 'efi-raw installation-image-type) | ||||
|                      ((eq? 'mbr-raw installation-image-type) | ||||
|                       #~("-drive" | ||||
|                          ,(string-append "file=" #$image | ||||
|                                          ",if=virtio,readonly"))) | ||||
|  |  | |||
|  | @ -51,7 +51,10 @@ | |||
| ;;; Code: | ||||
| 
 | ||||
| (define %mirrors | ||||
|   ;; Mirror lists used when `mirror://' URLs are passed. | ||||
|   ;; Mirror lists used when `mirror://' URLs are passed.  The first mirror | ||||
|   ;; entry of each set should ideally be the most authoritative one, as that's | ||||
|   ;; what the generic HTML updater will pick to look for updates, with | ||||
|   ;; possible exceptions when the authoritative mirror is too slow. | ||||
|   (let* ((gnu-mirrors | ||||
|           '(;; This one redirects to a (supposedly) nearby and (supposedly) | ||||
|             ;; up-to-date mirror. | ||||
|  | @ -358,7 +361,15 @@ | |||
|        "https://mirror.esc7.net/pub/OpenBSD/") | ||||
|       (mate | ||||
|        "https://pub.mate-desktop.org/releases/" | ||||
|        "http://pub.mate-desktop.org/releases/")))) | ||||
|        "http://pub.mate-desktop.org/releases/") | ||||
|       (qt | ||||
|        "https://mirrors.ocf.berkeley.edu/qt/official_releases/" | ||||
|        "https://ftp.jaist.ac.jp/pub/qtproject/official_releases/" | ||||
|        "https://ftp.nluug.nl/languages/qt/official_releases/" | ||||
|        "https://mirrors.cloud.tencent.com/qt/official_releases/" | ||||
|        "https://mirrors.sjtug.sjtu.edu.cn/qt/official_releases/" | ||||
|        "https://qtproject.mirror.liquidtelecom.com/official_releases/" | ||||
|        "https://download.qt.io/official_releases/")))) ;slow | ||||
| 
 | ||||
| (define %mirror-file | ||||
|   ;; Copy of the list of mirrors to a file.  This allows us to keep a single | ||||
|  |  | |||
|  | @ -3,6 +3,7 @@ | |||
| ;;; Copyright © 2012, 2013 Nikita Karetnikov <nikita@karetnikov.org> | ||||
| ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com> | ||||
| ;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be> | ||||
| ;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -26,6 +27,7 @@ | |||
|   #:use-module (ice-9 regex) | ||||
|   #:use-module (ice-9 match) | ||||
|   #:use-module (srfi srfi-1) | ||||
|   #:use-module (srfi srfi-2) | ||||
|   #:use-module (srfi srfi-11) | ||||
|   #:use-module (srfi srfi-26) | ||||
|   #:use-module (rnrs io ports) | ||||
|  | @ -61,6 +63,7 @@ | |||
|             gnu-package? | ||||
| 
 | ||||
|             uri-mirror-rewrite | ||||
|             rewrite-url | ||||
| 
 | ||||
|             release-file? | ||||
|             releases | ||||
|  | @ -255,8 +258,7 @@ network to check in GNU's database." | |||
|   (make-regexp "^.*-.*[0-9](-|~|\\.)?(alpha|beta|rc|RC|cvs|svn|git)-?[0-9\\.]*\\.tar\\.")) | ||||
| 
 | ||||
| (define (release-file? project file) | ||||
|   "Return #f if FILE is not a release tarball of PROJECT, otherwise return | ||||
| true." | ||||
|   "Return true if FILE is a release tarball of PROJECT." | ||||
|   (and (not (member (file-extension file) | ||||
|                     '("sig" "sign" "asc" | ||||
|                       "md5sum" "sha1sum" "sha256sum"))) | ||||
|  | @ -265,12 +267,21 @@ true." | |||
|                 ;; Filter out unrelated files, like `guile-www-1.1.1'. | ||||
|                 ;; Case-insensitive for things like "TeXmacs" vs. "texmacs". | ||||
|                 ;; The "-src" suffix is for "freefont-src-20120503.tar.gz". | ||||
|                 ;; The '-everywhere-src' suffix is for Qt modular components. | ||||
|                 (and=> (match:substring match 1) | ||||
|                        (lambda (name) | ||||
|                          (or (string-ci=? name project) | ||||
|                              (string-ci=? name | ||||
|                                           (string-append project | ||||
|                                                          "-src"))))))) | ||||
|                              (string-ci=? name (string-append project "-src")) | ||||
|                              (string-ci=? | ||||
|                               name (string-append project "-everywhere-src")) | ||||
|                              ;; For older Qt releases such as version 5. | ||||
|                              (string-ci=? | ||||
|                               name (string-append | ||||
|                                     project "-everywhere-opensource-src")) | ||||
|                              ;; For Qt Creator. | ||||
|                              (string-ci=? | ||||
|                               name (string-append | ||||
|                                     project "-opensource-src"))))))) | ||||
|        (not (regexp-exec %alpha-tarball-rx file)) | ||||
|        (let ((s (tarball-sans-extension file))) | ||||
|          (regexp-exec %package-name-rx s)))) | ||||
|  | @ -483,14 +494,133 @@ hosted on ftp.gnu.org, or not under that name (this is the case for | |||
|       (_ | ||||
|        links)))) | ||||
| 
 | ||||
| (define* (import-html-release package | ||||
| (define (url->links url) | ||||
|   "Return the unique links on the HTML page accessible at URL." | ||||
|   (let* ((uri   (string->uri url)) | ||||
|          (port  (http-fetch/cached uri #:ttl 3600)) | ||||
|          (sxml  (html->sxml port))) | ||||
|     (close-port port) | ||||
|     (delete-duplicates (html-links sxml)))) | ||||
| 
 | ||||
| (define (canonicalize-url url base-url) | ||||
|   "Make relative URL absolute, by appending URL to BASE-URL as required.  If | ||||
| URL is a directory instead of a file, it should be suffixed with a slash (/)." | ||||
|   (cond ((and=> (string->uri url) uri-scheme) | ||||
|          ;; Fully specified URL. | ||||
|          url) | ||||
|         ((string-prefix? "//" url) | ||||
|          ;; Full URL lacking a URI scheme.  Reuse the URI scheme of the | ||||
|          ;; document that contains the URL. | ||||
|          (string-append (symbol->string (uri-scheme (string->uri base-url))) | ||||
|                         ":" url)) | ||||
|         ((string-prefix? "/" url) | ||||
|          ;; Absolute URL. | ||||
|          (let ((uri (string->uri base-url))) | ||||
|            (uri->string | ||||
|             (build-uri (uri-scheme uri) | ||||
|                        #:host (uri-host uri) | ||||
|                        #:port (uri-port uri) | ||||
|                        #:path url)))) | ||||
|         ;; URL is relative to BASE-URL, which is assumed to be a directory. | ||||
|         ((string-suffix? "/" base-url) | ||||
|          (string-append base-url url)) | ||||
|         (else | ||||
|          ;; URL is relative to BASE-URL, which is assumed to denote a file | ||||
|          ;; within a directory. | ||||
|          (string-append (dirname base-url) "/" url)))) | ||||
| 
 | ||||
| (define (strip-trailing-slash s) | ||||
|   "Strip any trailing slash from S, a string." | ||||
|   (if (string-suffix? "/" s) | ||||
|       (string-drop-right s 1) | ||||
|       s)) | ||||
| 
 | ||||
| ;;; TODO: Extend to support the RPM and GNOME version schemes? | ||||
| (define %version-rx "[0-9.]+") | ||||
| 
 | ||||
| (define* (rewrite-url url version #:key to-version) | ||||
|   "Rewrite URL so that the URL path components matching the current VERSION or | ||||
| VERSION-MAJOR.VERSION-MINOR are updated with that of the latest version found | ||||
| by crawling the corresponding URL directories.  Alternatively, when TO-VERSION | ||||
| is specified, rewrite version matches directly to it without crawling URL. | ||||
| 
 | ||||
| For example, the URL | ||||
| \"https://dist.libuv.org/dist/v1.45.0/libuv-v1.45.0.tar.gz\" could be | ||||
| rewritten to something like | ||||
| \"https://dist.libuv.org/dist/v1.46.0/libuv-v1.46.0.tar.gz\"." | ||||
|   ;; XXX: major-minor may be #f if version is not a triplet but a single | ||||
|   ;; number such as "2". | ||||
|   (let* ((major-minor (false-if-exception (version-major+minor version))) | ||||
|          (to-major-minor (false-if-exception | ||||
|                           (and=> to-version version-major+minor))) | ||||
|          (uri (string->uri url)) | ||||
|          (url-prefix (string-drop-right url (string-length (uri-path uri)))) | ||||
|          (url-prefix-components (string-split url-prefix #\/)) | ||||
|          (path (uri-path uri)) | ||||
|          ;; Strip a forward slash on the path to avoid a double slash when | ||||
|          ;; string-joining later. | ||||
|          (path (if (string-prefix? "/" path) | ||||
|                    (string-drop path 1) | ||||
|                    path)) | ||||
|          (path-components (string-split path #\/))) | ||||
|     (string-join | ||||
|      (reverse | ||||
|       (fold | ||||
|        (lambda (s parents) | ||||
|          (if to-version | ||||
|              ;; Direct rewrite case; the archive is assumed to exist. | ||||
|              (let ((u (string-replace-substring s version to-version))) | ||||
|                (cons (if (and major-minor to-major-minor) | ||||
|                          (string-replace-substring u major-minor to-major-minor) | ||||
|                          u) | ||||
|                      parents)) | ||||
|              ;; More involved HTML crawl case. | ||||
|              (let* ((pattern (if major-minor | ||||
|                                  (format #f "(~a|~a)" version major-minor) | ||||
|                                  (format #f "(~a)" version))) | ||||
|                     (m (string-match pattern s))) | ||||
|                (if m | ||||
|                    ;; Crawl parent and rewrite current component. | ||||
|                    (let* ((parent-url (string-join (reverse parents) "/")) | ||||
|                           (links (url->links parent-url)) | ||||
|                           ;; The pattern matching the version. | ||||
|                           (pattern (string-append "^" (match:prefix m) | ||||
|                                                   "(" %version-rx ")" | ||||
|                                                   (match:suffix m) "$")) | ||||
|                           (candidates (filter-map | ||||
|                                        (lambda (l) | ||||
|                                          ;; Links may be followed by a | ||||
|                                          ;; trailing '/' in the case of | ||||
|                                          ;; directories. | ||||
|                                          (and-let* | ||||
|                                              ((l (strip-trailing-slash l)) | ||||
|                                               (m (string-match pattern l)) | ||||
|                                               (v (match:substring m 1))) | ||||
|                                            (cons v l))) | ||||
|                                        links))) | ||||
|                      ;; Retrieve the item having the largest version. | ||||
|                      (if (null? candidates) | ||||
|                          (error "no candidates found in rewrite-url") | ||||
|                          (cons (cdr (first (sort candidates | ||||
|                                                  (lambda (x y) | ||||
|                                                    (version>? (car x) | ||||
|                                                               (car y)))))) | ||||
|                                parents))) | ||||
|                    ;; No version found in path component; continue. | ||||
|                    (cons s parents))))) | ||||
|        (reverse url-prefix-components) | ||||
|        path-components)) | ||||
|      "/"))) | ||||
| 
 | ||||
| (define* (import-html-release base-url package | ||||
|                               #:key | ||||
|                               (version #f) | ||||
|                               (base-url "https://kernel.org/pub") | ||||
|                               (directory (string-append "/" package)) | ||||
|                               rewrite-url? | ||||
|                               version | ||||
|                               (directory (string-append | ||||
|                                           "/" (package-upstream-name package))) | ||||
|                               file->signature) | ||||
|   "Return an <upstream-source> for the latest release of PACKAGE (a string) on | ||||
| SERVER under DIRECTORY, or #f. Optionally include a VERSION string to fetch a | ||||
|   "Return an <upstream-source> for the latest release of PACKAGE under | ||||
| DIRECTORY at BASE-URL, or #f.  Optionally include a VERSION string to fetch a | ||||
| specific version. | ||||
| 
 | ||||
| BASE-URL should be the URL of an HTML page, typically a directory listing as | ||||
|  | @ -499,14 +629,23 @@ found on 'https://kernel.org/pub'. | |||
| When FILE->SIGNATURE is omitted or #f, guess the detached signature file name, | ||||
| if any.  Otherwise, FILE->SIGNATURE must be a procedure; it is passed a source | ||||
| file URL and must return the corresponding signature URL, or #f it signatures | ||||
| are unavailable." | ||||
|   (let* ((uri   (string->uri (if (string-null? directory) | ||||
|                                  base-url | ||||
|                                  (string-append base-url directory "/")))) | ||||
|          (port  (http-fetch/cached uri #:ttl 3600)) | ||||
|          (sxml  (html->sxml port)) | ||||
|          (links (delete-duplicates (html-links sxml)))) | ||||
| are unavailable. | ||||
| 
 | ||||
| When REWRITE-URL? is #t, versioned components in BASE-URL and/or DIRECTORY are | ||||
| also updated to the latest version, as explained in the doc of the | ||||
| \"rewrite-url\" procedure used." | ||||
|   (let* ((current-version (package-version package)) | ||||
|          (name (package-upstream-name package)) | ||||
|          (url (if (string-null? directory) | ||||
|                   base-url | ||||
|                   (string-append base-url directory "/"))) | ||||
|          (url (if rewrite-url? | ||||
|                   (rewrite-url url current-version #:to-version version) | ||||
|                   url)) | ||||
|          (links (map (cut canonicalize-url <> url) (url->links url)))) | ||||
| 
 | ||||
|     (define (file->signature/guess url) | ||||
|       "Return the first link that matches a signature extension, else #f." | ||||
|       (let ((base (basename url))) | ||||
|         (any (lambda (link) | ||||
|                (any (lambda (extension) | ||||
|  | @ -517,41 +656,13 @@ are unavailable." | |||
|              links))) | ||||
| 
 | ||||
|     (define (url->release url) | ||||
|       (let* ((base (basename url)) | ||||
|              (base-url (string-append base-url directory)) | ||||
|              (url  (cond ((and=> (string->uri url) uri-scheme) ;full URL? | ||||
|                           url) | ||||
|                          ;; full URL, except for URI scheme.  Reuse the URI | ||||
|                          ;; scheme of the document that contains the link. | ||||
|                          ((string-prefix? "//" url) | ||||
|                           (string-append | ||||
|                            (symbol->string (uri-scheme (string->uri base-url))) | ||||
|                            ":" url)) | ||||
|                          ((string-prefix? "/" url) ;absolute path? | ||||
|                           (let ((uri (string->uri base-url))) | ||||
|                             (uri->string | ||||
|                              (build-uri (uri-scheme uri) | ||||
|                                         #:host (uri-host uri) | ||||
|                                         #:port (uri-port uri) | ||||
|                                         #:path url)))) | ||||
| 
 | ||||
|                          ;; URL is a relative path and BASE-URL may or may not | ||||
|                          ;; end in slash. | ||||
|                          ((string-suffix? "/" base-url) | ||||
|                           (string-append base-url url)) | ||||
|                          (else | ||||
|                           ;; If DIRECTORY is non-empty, assume BASE-URL | ||||
|                           ;; denotes a directory; otherwise, assume BASE-URL | ||||
|                           ;; denotes a file within a directory, and that URL | ||||
|                           ;; is relative to that directory. | ||||
|                           (string-append (if (string-null? directory) | ||||
|                                              (dirname base-url) | ||||
|                                              base-url) | ||||
|                                          "/" url))))) | ||||
|         (and (release-file? package base) | ||||
|       "Return an <upstream-source> object if a release file was found at URL, | ||||
| else #f.  URL is assumed to fully specified." | ||||
|       (let ((base (basename url))) | ||||
|         (and (release-file? name base) | ||||
|              (let ((version (tarball->version base))) | ||||
|                (upstream-source | ||||
|                 (package package) | ||||
|                 (package name) | ||||
|                 (version version) | ||||
|                 ;; uri-mirror-rewrite: Don't turn nice mirror:// URIs into ftp:// | ||||
|                 ;; URLs during "guix refresh -u". | ||||
|  | @ -563,22 +674,21 @@ are unavailable." | |||
|     (define candidates | ||||
|       (filter-map url->release links)) | ||||
| 
 | ||||
|     (close-port port) | ||||
|     (match candidates | ||||
|       (() #f) | ||||
|       ((first . _) | ||||
|        (if version | ||||
|            ;; find matching release version and return it | ||||
|            ;; Find matching release version and return it. | ||||
|            (find (lambda (upstream) | ||||
|                    (string=? (upstream-source-version upstream) version)) | ||||
|                  (coalesce-sources candidates)) | ||||
|            ;; Select the most recent release and return it. | ||||
|            (reduce (lambda (r1 r2) | ||||
|                          (if (version>? (upstream-source-version r1) | ||||
|                                         (upstream-source-version r2)) | ||||
|                              r1 r2)) | ||||
|                        first | ||||
|                        (coalesce-sources candidates))))))) | ||||
|                      (if (version>? (upstream-source-version r1) | ||||
|                                     (upstream-source-version r2)) | ||||
|                          r1 r2)) | ||||
|                    first | ||||
|                    (coalesce-sources candidates))))))) | ||||
| 
 | ||||
|  | ||||
| ;;; | ||||
|  | @ -652,20 +762,20 @@ list available from %GNU-FILE-LIST-URI over HTTP(S)." | |||
|            (tarballs (filter (lambda (file) | ||||
|                                (string=? version (tarball->version file))) | ||||
|                              relevant))) | ||||
|     (match tarballs | ||||
|            (() #f) | ||||
|            (_ | ||||
|             (upstream-source | ||||
|              (package name) | ||||
|              (version version) | ||||
|              (urls (map (lambda (file) | ||||
|                           (string-append "mirror://gnu/" | ||||
|                                          (string-drop file | ||||
|                                                       (string-length "/gnu/")))) | ||||
|                        ;; Sort so that the tarball with the same compression | ||||
|                        ;; format as currently used in PACKAGE comes first. | ||||
|                        (sort tarballs better-tarball?))) | ||||
|              (signature-urls (map (cut string-append <> ".sig") urls)))))))) | ||||
|       (match tarballs | ||||
|         (() #f) | ||||
|         (_ | ||||
|          (upstream-source | ||||
|           (package name) | ||||
|           (version version) | ||||
|           (urls (map (lambda (file) | ||||
|                        (string-append "mirror://gnu/" | ||||
|                                       (string-drop file | ||||
|                                                    (string-length "/gnu/")))) | ||||
|                      ;; Sort so that the tarball with the same compression | ||||
|                      ;; format as currently used in PACKAGE comes first. | ||||
|                      (sort tarballs better-tarball?))) | ||||
|           (signature-urls (map (cut string-append <> ".sig") urls)))))))) | ||||
| 
 | ||||
| (define %package-name-rx | ||||
|   ;; Regexp for a package name, e.g., "foo-X.Y".  Since TeXmacs uses | ||||
|  | @ -726,13 +836,11 @@ to fetch a specific version." | |||
|                      (match (origin-uri (package-source package)) | ||||
|                        ((? string? uri) uri) | ||||
|                        ((uri mirrors ...) uri)))) | ||||
|          (package   (package-upstream-name package)) | ||||
|          (directory (dirname (uri-path uri)))) | ||||
|     ;; Note: We use the default 'file->signature', which adds ".sig", ".asc", | ||||
|     ;; or whichever detached signature naming scheme PACKAGE uses. | ||||
|     (import-html-release package | ||||
|     (import-html-release %savannah-base package | ||||
|                          #:version version | ||||
|                          #:base-url %savannah-base | ||||
|                          #:directory directory))) | ||||
| 
 | ||||
| (define* (latest-sourceforge-release package #:key (version #f)) | ||||
|  | @ -808,7 +916,7 @@ to fetch a specific version." | |||
|       (string-append "/pub/xorg/" (dirname (uri-path uri))))))) | ||||
| 
 | ||||
| (define* (import-kernel.org-release package #:key (version #f)) | ||||
|   "Return the latest release of PACKAGE, the name of a kernel.org package. | ||||
|   "Return the latest release of PACKAGE, a Linux kernel package. | ||||
| Optionally include a VERSION string to fetch a specific version." | ||||
|   (define %kernel.org-base | ||||
|     ;; This URL and sub-directories thereof are nginx-generated directory | ||||
|  | @ -822,35 +930,49 @@ Optionally include a VERSION string to fetch a specific version." | |||
|                      (match (origin-uri (package-source package)) | ||||
|                        ((? string? uri) uri) | ||||
|                        ((uri mirrors ...) uri)))) | ||||
|          (package   (package-upstream-name package)) | ||||
|          (directory (dirname (uri-path uri)))) | ||||
|     (import-html-release package | ||||
|     (import-html-release %kernel.org-base package | ||||
|                          #:version version | ||||
|                          #:base-url %kernel.org-base | ||||
|                          #:directory directory | ||||
|                          #:file->signature file->signature))) | ||||
| 
 | ||||
| (define html-updatable-package? | ||||
|   ;; Return true if the given package may be handled by the generic HTML | ||||
|   ;; updater. | ||||
|   (let ((hosting-sites '("github.com" "github.io" "gitlab.com" | ||||
|                          "notabug.org" "sr.ht" "gitlab.inria.fr" | ||||
|                          "ftp.gnu.org" "download.savannah.gnu.org" | ||||
|                          "pypi.org" "crates.io" "rubygems.org" | ||||
|                          "bioconductor.org"))) | ||||
|     (define http-url? | ||||
|       (url-predicate (lambda (url) | ||||
|                        (match (string->uri url) | ||||
|                          (#f #f) | ||||
|                          (uri | ||||
|                           (let ((scheme (uri-scheme uri)) | ||||
|                                 (host   (uri-host uri))) | ||||
|                             (and (memq scheme '(http https)) | ||||
|                                  (not (member host hosting-sites))))))))) | ||||
| ;;; These sites are disallowed for the generic HTML updater as there are | ||||
| ;;; better means to query them. | ||||
| (define %disallowed-hosting-sites | ||||
|   '("github.com" "github.io" "gitlab.com" | ||||
|     "notabug.org" "sr.ht" "gitlab.inria.fr" | ||||
|     "ftp.gnu.org" "download.savannah.gnu.org" | ||||
|     "pypi.org" "crates.io" "rubygems.org" | ||||
|     "bioconductor.org")) | ||||
| 
 | ||||
|     (lambda (package) | ||||
|       (or (assoc-ref (package-properties package) 'release-monitoring-url) | ||||
|           (http-url? package))))) | ||||
| (define (http-url? url) | ||||
|   "Return URL if URL has HTTP or HTTPS as its protocol.  If URL uses the | ||||
| special mirror:// protocol, substitute it with the first HTTP or HTTPS URL | ||||
| prefix from its set." | ||||
|   (match (string->uri url) | ||||
|     (#f #f) | ||||
|     (uri | ||||
|      (let ((scheme (uri-scheme uri)) | ||||
|            (host   (uri-host uri))) | ||||
|        (or (and (memq scheme '(http https)) | ||||
|                 ;; HOST may contain prefixes, e.g. "profanity-im.github.io", | ||||
|                 ;; hence the suffix-based test below. | ||||
|                 (not (any (cut string-suffix? <> host) | ||||
|                           %disallowed-hosting-sites)) | ||||
|                 url) | ||||
|            (and (eq? scheme 'mirror) | ||||
|                 (and=> (find http-url? | ||||
|                              (assoc-ref %mirrors | ||||
|                                         (string->symbol host))) | ||||
|                        (lambda (url) | ||||
|                          (string-append (strip-trailing-slash url) | ||||
|                                         (uri-path uri)))))))))) | ||||
| 
 | ||||
| (define (html-updatable-package? package) | ||||
|   "Return true if the given package may be handled by the generic HTML | ||||
| updater." | ||||
|   (or (assoc-ref (package-properties package) 'release-monitoring-url) | ||||
|       ((url-predicate http-url?) package))) | ||||
| 
 | ||||
| (define* (import-html-updatable-release package #:key (version #f)) | ||||
|   "Return the latest release of PACKAGE.  Do that by crawling the HTML page of | ||||
|  | @ -858,6 +980,9 @@ the directory containing its source tarball.  Optionally include a VERSION | |||
| string to fetch a specific version." | ||||
|   (let* ((uri       (string->uri | ||||
|                      (match (origin-uri (package-source package)) | ||||
|                        ((? (cut string-prefix? "mirror://" <>) url) | ||||
|                         ;; Retrieve the authoritative HTTP URL from a mirror. | ||||
|                         (http-url? url)) | ||||
|                        ((? string? url) url) | ||||
|                        ((url _ ...) url)))) | ||||
|          (custom    (assoc-ref (package-properties package) | ||||
|  | @ -867,12 +992,11 @@ string to fetch a specific version." | |||
|                                        "://" (uri-host uri)))) | ||||
|          (directory (if custom | ||||
|                         "" | ||||
|                         (dirname (uri-path uri)))) | ||||
|          (package   (package-upstream-name package))) | ||||
|                         (dirname (uri-path uri))))) | ||||
|     (false-if-networking-error | ||||
|      (import-html-release package | ||||
|      (import-html-release base package | ||||
|                           #:rewrite-url? #t | ||||
|                           #:version version | ||||
|                           #:base-url base | ||||
|                           #:directory directory)))) | ||||
| 
 | ||||
| (define %gnu-updater | ||||
|  |  | |||
|  | @ -29,6 +29,7 @@ | |||
|   #:use-module (srfi srfi-26) | ||||
|   #:use-module (srfi srfi-34) | ||||
|   #:use-module (ice-9 match) | ||||
|   #:use-module (ice-9 string-fun) | ||||
|   #:use-module (ice-9 vlist) | ||||
|   #:export (node-type | ||||
|             node-type? | ||||
|  | @ -49,6 +50,7 @@ | |||
|             %graph-backends | ||||
|             %d3js-backend | ||||
|             %graphviz-backend | ||||
|             %graphml-backend | ||||
|             lookup-backend | ||||
| 
 | ||||
|             graph-backend? | ||||
|  | @ -328,6 +330,37 @@ nodeArray.push(nodes[\"~a\"]);~%" | |||
|                  emit-cypher-prologue emit-cypher-epilogue | ||||
|                  emit-cypher-node emit-cypher-edge)) | ||||
| 
 | ||||
|  | ||||
| ;;; | ||||
| ;;; GraphML export. | ||||
| ;;; | ||||
| 
 | ||||
| (define (emit-graphml-prologue name port) | ||||
|   (format port "<?xml version=\"1.0\" encoding=\"UTF-8\"?> | ||||
| <graphml xmlns=\"http://graphml.graphdrawing.org/xmlns\" | ||||
|     xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" | ||||
|     xsi:schemaLocation=\"http://graphml.graphdrawing.org/xmlns | ||||
|      http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd\"> | ||||
|   <graph id=\"G\" edgedefault=\"directed\">~%")) | ||||
| 
 | ||||
| (define (emit-graphml-epilogue port) | ||||
|   (format port "  </graph> | ||||
| </graphml>")) | ||||
| 
 | ||||
| (define (emit-graphml-node id label port) | ||||
|   (format port "    <node id=\"~a\"/>~%" | ||||
|           (string-replace-substring (object->string id) "\"" "\\\""))) | ||||
| 
 | ||||
| (define (emit-graphml-edge id1 id2 port) | ||||
|   (format port "    <edge source=\"~a\" target=\"~a\"/>~%" | ||||
|           (string-replace-substring (object->string id1) "\"" "\\\"") | ||||
|           (string-replace-substring (object->string id2) "\"" "\\\""))) | ||||
| 
 | ||||
| (define %graphml-backend | ||||
|   (graph-backend "graphml" | ||||
|                  "Generate GraphML." | ||||
|                  emit-graphml-prologue emit-graphml-epilogue | ||||
|                  emit-graphml-node emit-graphml-edge)) | ||||
| 
 | ||||
|  | ||||
| ;;; | ||||
|  | @ -337,7 +370,8 @@ nodeArray.push(nodes[\"~a\"]);~%" | |||
| (define %graph-backends | ||||
|   (list %graphviz-backend | ||||
|         %d3js-backend | ||||
|         %cypher-backend)) | ||||
|         %cypher-backend | ||||
|         %graphml-backend)) | ||||
| 
 | ||||
| (define (lookup-backend name) | ||||
|   "Return the graph backend called NAME.  Raise an error if it is not found." | ||||
|  |  | |||
|  | @ -1786,7 +1786,7 @@ MANIFEST." | |||
|        (if (string-prefix? "texlive-" name) | ||||
|            (cons (gexp-input thing output) | ||||
|                  (append-map entry->texlive-input deps)) | ||||
|            '())))) | ||||
|            (append-map entry->texlive-input deps))))) | ||||
|   (define texlive-scripts-entry? | ||||
|     (match-lambda | ||||
|       (($ <manifest-entry> name version output thing deps) | ||||
|  |  | |||
|  | @ -1169,7 +1169,7 @@ Some ACTIONS support additional ARGS.\n")) | |||
|     (debug . 0) | ||||
|     (verbosity . #f)                              ;default | ||||
|     (validate-reconfigure . ,ensure-forward-reconfigure) | ||||
|     (image-type . efi-raw) | ||||
|     (image-type . mbr-raw) | ||||
|     (image-size . guess) | ||||
|     (install-bootloader? . #t) | ||||
|     (label . #f) | ||||
|  |  | |||
|  | @ -175,8 +175,9 @@ to SSH server at '~a'") | |||
|              (disconnect! session) | ||||
|              (raise (condition | ||||
|                      (&message | ||||
|                       (message (format #f (G_ "SSH authentication failed for '~a': ~a~%") | ||||
|                                        host (get-error session))))))))))) | ||||
|                       (message (format #f (G_ "SSH authentication failed for '~a@~a': ~a~%") | ||||
|                                        (session-get session 'user) host | ||||
|                                        (get-error session))))))))))) | ||||
|       (x | ||||
|        ;; Connection failed or timeout expired. | ||||
|        (raise (formatted-message (G_ "SSH connection to '~a' failed: ~a~%") | ||||
|  |  | |||
|  | @ -40,7 +40,10 @@ | |||
|                 ("exiv2" "exiv2-0.27.3-Source.tar.gz") | ||||
|                 ("mpg321" "mpg321_0.3.2.orig.tar.gz") | ||||
|                 ("bvi" "bvi-1.4.1.src.tar.gz") | ||||
|                 ("hostscope" "hostscope-V2.1.tgz"))) | ||||
|                 ("hostscope" "hostscope-V2.1.tgz") | ||||
|                 ("qtbase" "qtbase-everywhere-src-6.5.2.tar.xz") | ||||
|                 ("qtbase" "qtbase-everywhere-opensource-src-5.15.10.tar.xz") | ||||
|                 ("qt-creator" "qt-creator-opensource-src-11.0.1.tar.xz"))) | ||||
|        (every (lambda (project+file) | ||||
|                 (not (apply release-file? project+file))) | ||||
|               '(("guile" "guile-www-1.1.1.tar.gz") | ||||
|  | @ -147,4 +150,47 @@ | |||
|            (equal? (list expected-signature-url) | ||||
|                    (upstream-source-signature-urls update)))))) | ||||
| 
 | ||||
| (test-equal "rewrite-url, to-version specified" | ||||
|   "https://download.qt.io/official_releases/qt/6.5/6.5.2/\ | ||||
| submodules/qtbase-everywhere-src-6.5.2.tar.xz" | ||||
|   (rewrite-url "https://download.qt.io/official_releases/qt/6.3/6.3.2/\ | ||||
| submodules/qtbase-everywhere-src-6.3.2.tar.xz" "6.3.2" #:to-version "6.5.2")) | ||||
| 
 | ||||
| (test-equal "rewrite-url, without to-version" | ||||
|   "https://dist.libuv.org/dist/v1.46.0/libuv-v1.46.0.tar.gz" | ||||
|   (with-http-server | ||||
|       ;; First reply, crawling https://dist.libuv.org/dist/. | ||||
|       `((200 "\ | ||||
| <!DOCTYPE html> | ||||
| <html> | ||||
| <head><title>Index of dist</title></head> | ||||
| <body> | ||||
| <a href=\"../\">../</a> | ||||
| <a href=\"v1.44.0/\" title=\"v1.44.0/\">v1.44.0/</a> | ||||
| <a href=\"v1.44.1/\" title=\"v1.44.1/\">v1.44.1/</a> | ||||
| <a href=\"v1.44.2/\" title=\"v1.44.2/\">v1.44.2/</a> | ||||
| <a href=\"v1.45.0/\" title=\"v1.45.0/\">v1.45.0/</a> | ||||
| <a href=\"v1.46.0/\" title=\"v1.46.0/\">v1.46.0/</a> | ||||
| </body> | ||||
| </html>") | ||||
|         ;; Second reply, crawling https://dist.libuv.org/dist/v1.46.0/. | ||||
|         (200 "\ | ||||
| <!DOCTYPE html> | ||||
| <html> | ||||
| <head><title>Index of dist/v1.46.0</title></head> | ||||
| <body> | ||||
| <a href=\"../\">../</a> | ||||
| <a href=\"libuv-v1.46.0-dist.tar.gz\" title=\"libuv-v1.46.0-dist.tar.gz\"> | ||||
|    libuv-v1.46.0-dist.tar.gz</a> | ||||
| <a href=\"libuv-v1.46.0-dist.tar.gz.sign\" | ||||
|    title=\"libuv-v1.46.0-dist.tar.gz.sign\">libuv-v1.46.0-dist.tar.gz.sign</a> | ||||
| <a href=\"libuv-v1.46.0.tar.gz\" title=\"libuv-v1.46.0.tar.gz\"> | ||||
|    libuv-v1.46.0.tar.gz</a> | ||||
| <a href=\"libuv-v1.46.0.tar.gz.sign\" title=\"libuv-v1.46.0.tar.gz.sign\"> | ||||
|    libuv-v1.46.0.tar.gz.sign</a> | ||||
| </body> | ||||
| </html>")) | ||||
|     (rewrite-url "https://dist.libuv.org/dist/v1.45.0/libuv-v1.45.0.tar.gz" | ||||
|                  "1.45.0"))) | ||||
| 
 | ||||
| (test-end) | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2015-2022 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; Copyright © 2015-2023 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -377,7 +377,8 @@ edges." | |||
|                               (((labels packages _ ...) ...) | ||||
|                                packages))))))))) | ||||
| 
 | ||||
| (test-assert "node-transitive-edges + node-back-edges" | ||||
| (test-equal "node-transitive-edges + node-back-edges" | ||||
|   '() | ||||
|   (run-with-store %store | ||||
|     (let ((packages   (fold-packages cons '())) | ||||
|           (bootstrap? (lambda (package) | ||||
|  | @ -386,17 +387,22 @@ edges." | |||
|                          "bootstrap.scm"))) | ||||
|           (trivial?   (lambda (package) | ||||
|                         (eq? (package-build-system package) | ||||
|                              trivial-build-system)))) | ||||
|                              trivial-build-system))) | ||||
|           (system-specific? (lambda (package) | ||||
|                               (memq #:system (package-arguments package))))) | ||||
|       (mlet %store-monad ((edges (node-back-edges %bag-node-type packages))) | ||||
|         (let* ((glibc      (canonical-package glibc)) | ||||
|                (dependents (node-transitive-edges (list glibc) edges)) | ||||
|                (diff       (lset-difference eq? packages dependents))) | ||||
|           ;; All the packages depend on libc, except bootstrap packages and | ||||
|           ;; some that use TRIVIAL-BUILD-SYSTEM. | ||||
|           (return (null? (remove (lambda (package) | ||||
|                                    (or (trivial? package) | ||||
|                                        (bootstrap? package))) | ||||
|                                  diff)))))))) | ||||
|           ;; All the packages depend on libc, except bootstrap packages, some | ||||
|           ;; packages that use TRIVIAL-BUILD-SYSTEM, and some that target a | ||||
|           ;; specific system and thus may depend on a different libc package | ||||
|           ;; object. | ||||
|           (return (remove (lambda (package) | ||||
|                             (or (trivial? package) | ||||
|                                 (bootstrap? package) | ||||
|                                 (system-specific? package))) | ||||
|                           diff))))))) | ||||
| 
 | ||||
| (test-assert "node-transitive-edges, no duplicates" | ||||
|   (run-with-store %store | ||||
|  |  | |||
|  | @ -224,5 +224,5 @@ EOF | |||
|     # | ||||
| 
 | ||||
|     guix home search mcron | grep "^name: home-mcron" | ||||
|     guix home search job manager | grep "^name: home-mcron" | ||||
|     guix home search scheduling daemon | grep "^name: home-mcron" | ||||
| ) | ||||
|  |  | |||
|  | @ -48,7 +48,7 @@ guix shell -s armhf-linux intelmetool -n && false | |||
| # opens a couple of extra FDs. | ||||
| initial_fd_list="$(echo /proc/$$/fd/*)" | ||||
| fd_list="$(guix shell --bootstrap guile-bootstrap -- \ | ||||
| 		 "$SHELL" -c 'echo /proc/$$/fd/*')" | ||||
| 		 bash -c 'echo /proc/$$/fd/*')" | ||||
| test "$(echo $fd_list | wc -w)" -le "$(echo $initial_fd_list | wc -w)" | ||||
| 
 | ||||
| # Ignoring unauthorized files. | ||||
|  |  | |||
		Reference in a new issue