Merge remote-tracking branch core-updates-frozen into core-updates
This commit is contained in:
		
						commit
						0cccc2f52c
					
				
					 506 changed files with 305419 additions and 215120 deletions
				
			
		| 
						 | 
					@ -148,6 +148,8 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   (eval . (put 'with-paginated-output-port 'scheme-indent-function 1))
 | 
					   (eval . (put 'with-paginated-output-port 'scheme-indent-function 1))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   (eval . (put 'with-shepherd-action 'scheme-indent-function 3))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   ;; This notably allows '(' in Paredit to not insert a space when the
 | 
					   ;; This notably allows '(' in Paredit to not insert a space when the
 | 
				
			||||||
   ;; preceding symbol is one of these.
 | 
					   ;; preceding symbol is one of these.
 | 
				
			||||||
   (eval . (modify-syntax-entry ?~ "'"))
 | 
					   (eval . (modify-syntax-entry ?~ "'"))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -78,7 +78,7 @@
 | 
				
			||||||
  ("CA4F 8CF4 37D7 478F DA05  5FD4 4213 7701 1A37 8446"
 | 
					  ("CA4F 8CF4 37D7 478F DA05  5FD4 4213 7701 1A37 8446"
 | 
				
			||||||
   (name "lbraun (professional)"))
 | 
					   (name "lbraun (professional)"))
 | 
				
			||||||
  ("ACC2 3BA0 59F7 CCF4 08F0  43AD 442A 84B8 C70E 2F87"
 | 
					  ("ACC2 3BA0 59F7 CCF4 08F0  43AD 442A 84B8 C70E 2F87"
 | 
				
			||||||
   (name "leoprikler"))
 | 
					   (name "lilyp"))
 | 
				
			||||||
  ("45E5 75FA 53EA 8BD6 1BCE  0B4E 3ADC 75F0 13D6 78F9"
 | 
					  ("45E5 75FA 53EA 8BD6 1BCE  0B4E 3ADC 75F0 13D6 78F9"
 | 
				
			||||||
   (name "leungbk"))
 | 
					   (name "leungbk"))
 | 
				
			||||||
  (;; primary: "4F71 6F9A 8FA2 C80E F1B5  E1BA 5E35 F231 DE1A C5E0"
 | 
					  (;; primary: "4F71 6F9A 8FA2 C80E F1B5  E1BA 5E35 F231 DE1A C5E0"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										7
									
								
								.mailmap
									
										
									
									
									
								
							
							
						
						
									
										7
									
								
								.mailmap
									
										
									
									
									
								
							| 
						 | 
					@ -15,6 +15,7 @@ Ben Woodcroft <donttrustben@gmail.com>
 | 
				
			||||||
Ben Woodcroft <donttrustben@gmail.com> <b.woodcroft@uq.edu.au>
 | 
					Ben Woodcroft <donttrustben@gmail.com> <b.woodcroft@uq.edu.au>
 | 
				
			||||||
Ben Woodcroft <donttrustben@gmail.com> <donttrustben near gmail.com>
 | 
					Ben Woodcroft <donttrustben@gmail.com> <donttrustben near gmail.com>
 | 
				
			||||||
Brett Gilio <brettg@gnu.org> <brettg@posteo.net>
 | 
					Brett Gilio <brettg@gnu.org> <brettg@posteo.net>
 | 
				
			||||||
 | 
					Christine Lemmer-Webber <cwebber@dustycloud.org>
 | 
				
			||||||
Claes Wallin (韋嘉誠) <claes.wallin@greatsinodevelopment.com>
 | 
					Claes Wallin (韋嘉誠) <claes.wallin@greatsinodevelopment.com>
 | 
				
			||||||
Cyprien Nicolas <cyprien@nicolas.tf> <c.nicolas+gitorious@gmail.com>
 | 
					Cyprien Nicolas <cyprien@nicolas.tf> <c.nicolas+gitorious@gmail.com>
 | 
				
			||||||
Daniel Pimentel <d4n1@d4n1.org> <d4n1@member.fsf.org>
 | 
					Daniel Pimentel <d4n1@d4n1.org> <d4n1@member.fsf.org>
 | 
				
			||||||
| 
						 | 
					@ -40,9 +41,13 @@ Joshua Grant <tadni@riseup.net> <tadnimi@gmail.com>
 | 
				
			||||||
Joshua Grant <tadni@riseup.net> <youlysses@riseup.net>
 | 
					Joshua Grant <tadni@riseup.net> <youlysses@riseup.net>
 | 
				
			||||||
Kei Kebreau <kkebreau@posteo.net>
 | 
					Kei Kebreau <kkebreau@posteo.net>
 | 
				
			||||||
Leo Famulari <leo@famulari.name> <lfamular@gmail.com>
 | 
					Leo Famulari <leo@famulari.name> <lfamular@gmail.com>
 | 
				
			||||||
 | 
					Liliana Prikler <liliana.prikler@gmail.com> Leo Prikler <leo.prikler@student.tugraz.at>
 | 
				
			||||||
Ludovic Courtès <ludo@gnu.org> <ludovic.courtes@inria.fr>
 | 
					Ludovic Courtès <ludo@gnu.org> <ludovic.courtes@inria.fr>
 | 
				
			||||||
Marek Benc <dusxmt@gmx.com> <merkur32@gmail.com>
 | 
					Marek Benc <dusxmt@gmx.com> <merkur32@gmail.com>
 | 
				
			||||||
Marius Bakke <mbakke@fastmail.com> <m.bakke@warwick.ac.uk>
 | 
					Marius Bakke <marius@gnu.org> <mbakke@fastmail.com>
 | 
				
			||||||
 | 
					Marius Bakke <marius@gnu.org> <m.bakke@warwick.ac.uk>
 | 
				
			||||||
 | 
					Marius Bakke <marius@gnu.org> <marius.bakke@usit.uio.no>
 | 
				
			||||||
 | 
					Marius Bakke <marius@gnu.org> <mbakke@berlin.guixsd.org>
 | 
				
			||||||
Mathieu Lirzin <mthl@gnu.org> <mthl@openmailbox.org>
 | 
					Mathieu Lirzin <mthl@gnu.org> <mthl@openmailbox.org>
 | 
				
			||||||
Mathieu Lirzin <mthl@gnu.org> <mathieu.lirzin@openmailbox.org>
 | 
					Mathieu Lirzin <mthl@gnu.org> <mathieu.lirzin@openmailbox.org>
 | 
				
			||||||
Mathieu Othacehe <m.othacehe@gmail.com>
 | 
					Mathieu Othacehe <m.othacehe@gmail.com>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								Makefile.am
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								Makefile.am
									
										
									
									
									
								
							| 
						 | 
					@ -141,6 +141,7 @@ MODULES =					\
 | 
				
			||||||
  guix/build-system/go.scm			\
 | 
					  guix/build-system/go.scm			\
 | 
				
			||||||
  guix/build-system/meson.scm			\
 | 
					  guix/build-system/meson.scm			\
 | 
				
			||||||
  guix/build-system/minify.scm			\
 | 
					  guix/build-system/minify.scm			\
 | 
				
			||||||
 | 
					  guix/build-system/minetest.scm		\
 | 
				
			||||||
  guix/build-system/asdf.scm			\
 | 
					  guix/build-system/asdf.scm			\
 | 
				
			||||||
  guix/build-system/copy.scm			\
 | 
					  guix/build-system/copy.scm			\
 | 
				
			||||||
  guix/build-system/glib-or-gtk.scm		\
 | 
					  guix/build-system/glib-or-gtk.scm		\
 | 
				
			||||||
| 
						 | 
					@ -203,6 +204,7 @@ MODULES =					\
 | 
				
			||||||
  guix/build/gnu-dist.scm			\
 | 
					  guix/build/gnu-dist.scm			\
 | 
				
			||||||
  guix/build/guile-build-system.scm		\
 | 
					  guix/build/guile-build-system.scm		\
 | 
				
			||||||
  guix/build/maven-build-system.scm		\
 | 
					  guix/build/maven-build-system.scm		\
 | 
				
			||||||
 | 
					  guix/build/minetest-build-system.scm		\
 | 
				
			||||||
  guix/build/node-build-system.scm		\
 | 
					  guix/build/node-build-system.scm		\
 | 
				
			||||||
  guix/build/perl-build-system.scm		\
 | 
					  guix/build/perl-build-system.scm		\
 | 
				
			||||||
  guix/build/python-build-system.scm		\
 | 
					  guix/build/python-build-system.scm		\
 | 
				
			||||||
| 
						 | 
					@ -260,6 +262,7 @@ MODULES =					\
 | 
				
			||||||
  guix/import/json.scm				\
 | 
					  guix/import/json.scm				\
 | 
				
			||||||
  guix/import/kde.scm				\
 | 
					  guix/import/kde.scm				\
 | 
				
			||||||
  guix/import/launchpad.scm   			\
 | 
					  guix/import/launchpad.scm   			\
 | 
				
			||||||
 | 
					  guix/import/minetest.scm   			\
 | 
				
			||||||
  guix/import/opam.scm				\
 | 
					  guix/import/opam.scm				\
 | 
				
			||||||
  guix/import/print.scm				\
 | 
					  guix/import/print.scm				\
 | 
				
			||||||
  guix/import/pypi.scm				\
 | 
					  guix/import/pypi.scm				\
 | 
				
			||||||
| 
						 | 
					@ -303,6 +306,7 @@ MODULES =					\
 | 
				
			||||||
  guix/scripts/import/go.scm			\
 | 
					  guix/scripts/import/go.scm			\
 | 
				
			||||||
  guix/scripts/import/hackage.scm		\
 | 
					  guix/scripts/import/hackage.scm		\
 | 
				
			||||||
  guix/scripts/import/json.scm  		\
 | 
					  guix/scripts/import/json.scm  		\
 | 
				
			||||||
 | 
					  guix/scripts/import/minetest.scm  		\
 | 
				
			||||||
  guix/scripts/import/opam.scm			\
 | 
					  guix/scripts/import/opam.scm			\
 | 
				
			||||||
  guix/scripts/import/pypi.scm			\
 | 
					  guix/scripts/import/pypi.scm			\
 | 
				
			||||||
  guix/scripts/import/stackage.scm		\
 | 
					  guix/scripts/import/stackage.scm		\
 | 
				
			||||||
| 
						 | 
					@ -367,14 +371,14 @@ AUX_FILES =						\
 | 
				
			||||||
  gnu/packages/aux-files/chromium/master-preferences.json		\
 | 
					  gnu/packages/aux-files/chromium/master-preferences.json		\
 | 
				
			||||||
  gnu/packages/aux-files/emacs/guix-emacs.el		\
 | 
					  gnu/packages/aux-files/emacs/guix-emacs.el		\
 | 
				
			||||||
  gnu/packages/aux-files/guix.vim			\
 | 
					  gnu/packages/aux-files/guix.vim			\
 | 
				
			||||||
 | 
					  gnu/packages/aux-files/linux-libre/5.14-arm.conf	\
 | 
				
			||||||
 | 
					  gnu/packages/aux-files/linux-libre/5.14-arm64.conf	\
 | 
				
			||||||
 | 
					  gnu/packages/aux-files/linux-libre/5.14-i686.conf	\
 | 
				
			||||||
 | 
					  gnu/packages/aux-files/linux-libre/5.14-x86_64.conf	\
 | 
				
			||||||
  gnu/packages/aux-files/linux-libre/5.13-arm.conf	\
 | 
					  gnu/packages/aux-files/linux-libre/5.13-arm.conf	\
 | 
				
			||||||
  gnu/packages/aux-files/linux-libre/5.13-arm64.conf	\
 | 
					  gnu/packages/aux-files/linux-libre/5.13-arm64.conf	\
 | 
				
			||||||
  gnu/packages/aux-files/linux-libre/5.13-i686.conf	\
 | 
					  gnu/packages/aux-files/linux-libre/5.13-i686.conf	\
 | 
				
			||||||
  gnu/packages/aux-files/linux-libre/5.13-x86_64.conf	\
 | 
					  gnu/packages/aux-files/linux-libre/5.13-x86_64.conf	\
 | 
				
			||||||
  gnu/packages/aux-files/linux-libre/5.12-arm.conf	\
 | 
					 | 
				
			||||||
  gnu/packages/aux-files/linux-libre/5.12-arm64.conf	\
 | 
					 | 
				
			||||||
  gnu/packages/aux-files/linux-libre/5.12-i686.conf	\
 | 
					 | 
				
			||||||
  gnu/packages/aux-files/linux-libre/5.12-x86_64.conf	\
 | 
					 | 
				
			||||||
  gnu/packages/aux-files/linux-libre/5.10-arm.conf	\
 | 
					  gnu/packages/aux-files/linux-libre/5.10-arm.conf	\
 | 
				
			||||||
  gnu/packages/aux-files/linux-libre/5.10-arm64.conf	\
 | 
					  gnu/packages/aux-files/linux-libre/5.10-arm64.conf	\
 | 
				
			||||||
  gnu/packages/aux-files/linux-libre/5.10-i686.conf	\
 | 
					  gnu/packages/aux-files/linux-libre/5.10-i686.conf	\
 | 
				
			||||||
| 
						 | 
					@ -475,6 +479,7 @@ SCM_TESTS =					\
 | 
				
			||||||
  tests/import-utils.scm			\
 | 
					  tests/import-utils.scm			\
 | 
				
			||||||
  tests/inferior.scm				\
 | 
					  tests/inferior.scm				\
 | 
				
			||||||
  tests/lint.scm				\
 | 
					  tests/lint.scm				\
 | 
				
			||||||
 | 
					  tests/minetest.scm				\
 | 
				
			||||||
  tests/modules.scm				\
 | 
					  tests/modules.scm				\
 | 
				
			||||||
  tests/monads.scm				\
 | 
					  tests/monads.scm				\
 | 
				
			||||||
  tests/nar.scm				\
 | 
					  tests/nar.scm				\
 | 
				
			||||||
| 
						 | 
					@ -496,6 +501,7 @@ SCM_TESTS =					\
 | 
				
			||||||
  tests/services/file-sharing.scm		\
 | 
					  tests/services/file-sharing.scm		\
 | 
				
			||||||
  tests/services/configuration.scm		\
 | 
					  tests/services/configuration.scm		\
 | 
				
			||||||
  tests/services/linux.scm			\
 | 
					  tests/services/linux.scm			\
 | 
				
			||||||
 | 
					  tests/services/telephony.scm			\
 | 
				
			||||||
  tests/sets.scm				\
 | 
					  tests/sets.scm				\
 | 
				
			||||||
  tests/size.scm				\
 | 
					  tests/size.scm				\
 | 
				
			||||||
  tests/status.scm				\
 | 
					  tests/status.scm				\
 | 
				
			||||||
| 
						 | 
					@ -519,6 +525,8 @@ SCM_TESTS =					\
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if HAVE_GUILE_LIB
 | 
					if HAVE_GUILE_LIB
 | 
				
			||||||
SCM_TESTS += tests/go.scm
 | 
					SCM_TESTS += tests/go.scm
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					EXTRA_DIST += tests/go.scm
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if BUILD_DAEMON_OFFLOAD
 | 
					if BUILD_DAEMON_OFFLOAD
 | 
				
			||||||
| 
						 | 
					@ -620,9 +628,11 @@ EXTRA_DIST +=						\
 | 
				
			||||||
  .guix-authorizations					\
 | 
					  .guix-authorizations					\
 | 
				
			||||||
  .guix-channel						\
 | 
					  .guix-channel						\
 | 
				
			||||||
  scripts/guix.in					\
 | 
					  scripts/guix.in					\
 | 
				
			||||||
 | 
					  etc/disarchive-manifest.scm				\
 | 
				
			||||||
  etc/guix-install.sh					\
 | 
					  etc/guix-install.sh					\
 | 
				
			||||||
  etc/news.scm						\
 | 
					  etc/news.scm						\
 | 
				
			||||||
  etc/release-manifest.scm				\
 | 
					  etc/release-manifest.scm				\
 | 
				
			||||||
 | 
					  etc/source-manifest.scm				\
 | 
				
			||||||
  etc/system-tests.scm					\
 | 
					  etc/system-tests.scm					\
 | 
				
			||||||
  etc/historical-authorizations				\
 | 
					  etc/historical-authorizations				\
 | 
				
			||||||
  build-aux/build-self.scm				\
 | 
					  build-aux/build-self.scm				\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										2
									
								
								THANKS
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								THANKS
									
										
									
									
									
								
							| 
						 | 
					@ -43,7 +43,7 @@ infrastructure help:
 | 
				
			||||||
	     Alen Skondro <askondro@gmail.com>
 | 
						     Alen Skondro <askondro@gmail.com>
 | 
				
			||||||
              Jan Synáček <jan.synacek@gmail.com>
 | 
					              Jan Synáček <jan.synacek@gmail.com>
 | 
				
			||||||
	 Matthias Wachs <wachs@net.in.tum.de>
 | 
						 Matthias Wachs <wachs@net.in.tum.de>
 | 
				
			||||||
Christopher Allan Webber <cwebber@dustycloud.org>
 | 
					        Christine Lemmer-Webber <cwebber@dustycloud.org>
 | 
				
			||||||
           Philip Woods <elzairthesorcerer@gmail.com>
 | 
					           Philip Woods <elzairthesorcerer@gmail.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GNU Guix also includes non-software works.  Thanks to the following
 | 
					GNU Guix also includes non-software works.  Thanks to the following
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,7 +16,7 @@ Copyright @copyright{} 2020 Matthew Brooks@*
 | 
				
			||||||
Copyright @copyright{} 2020 Marcin Karpezo@*
 | 
					Copyright @copyright{} 2020 Marcin Karpezo@*
 | 
				
			||||||
Copyright @copyright{} 2020 Brice Waegeneire@*
 | 
					Copyright @copyright{} 2020 Brice Waegeneire@*
 | 
				
			||||||
Copyright @copyright{} 2020 André Batista@*
 | 
					Copyright @copyright{} 2020 André Batista@*
 | 
				
			||||||
Copyright @copyright{} 2020 Christopher Lemmer Webber
 | 
					Copyright @copyright{} 2020 Christine Lemmer-Webber@*
 | 
				
			||||||
Copyright @copyright{} 2021 Joshua Branson@*
 | 
					Copyright @copyright{} 2021 Joshua Branson@*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Permission is granted to copy, distribute and/or modify this document
 | 
					Permission is granted to copy, distribute and/or modify this document
 | 
				
			||||||
| 
						 | 
					@ -591,7 +591,7 @@ packages.
 | 
				
			||||||
Guix makes it possible to streamline the process by adding as many ``package
 | 
					Guix makes it possible to streamline the process by adding as many ``package
 | 
				
			||||||
declaration directories'' as you want.
 | 
					declaration directories'' as you want.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Create a directory, say @file{~./guix-packages} and add it to the @samp{GUIX_PACKAGE_PATH}
 | 
					Create a directory, say @file{~/guix-packages} and add it to the @samp{GUIX_PACKAGE_PATH}
 | 
				
			||||||
environment variable:
 | 
					environment variable:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@example
 | 
					@example
 | 
				
			||||||
| 
						 | 
					@ -1714,7 +1714,7 @@ operating-system dedicated to the @b{Pine A64 LTS} board.
 | 
				
			||||||
   (locale "en_US.utf8")
 | 
					   (locale "en_US.utf8")
 | 
				
			||||||
   (bootloader (bootloader-configuration
 | 
					   (bootloader (bootloader-configuration
 | 
				
			||||||
                (bootloader u-boot-pine64-lts-bootloader)
 | 
					                (bootloader u-boot-pine64-lts-bootloader)
 | 
				
			||||||
                (target "/dev/vda")))
 | 
					                (targets '("/dev/vda"))))
 | 
				
			||||||
   (initrd-modules '())
 | 
					   (initrd-modules '())
 | 
				
			||||||
   (kernel linux-libre-arm64-generic)
 | 
					   (kernel linux-libre-arm64-generic)
 | 
				
			||||||
   (file-systems (cons (file-system
 | 
					   (file-systems (cons (file-system
 | 
				
			||||||
| 
						 | 
					@ -2046,10 +2046,12 @@ Copy into it the output of:
 | 
				
			||||||
cat ~/.ssh/<username>_rsa.pub
 | 
					cat ~/.ssh/<username>_rsa.pub
 | 
				
			||||||
@end example
 | 
					@end example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Power the Linode down. In the Linode's Disks/Configurations tab, resize
 | 
					Power the Linode down.
 | 
				
			||||||
the Debian disk to be smaller. 30 GB is recommended.
 | 
					
 | 
				
			||||||
 | 
					In the Linode's Storage tab, resize the Debian disk to be smaller.
 | 
				
			||||||
 | 
					30 GB free space is recommended.  Then click "Add a disk", and fill
 | 
				
			||||||
 | 
					out the form with the following:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
In the Linode settings, "Add a disk", with the following:
 | 
					 | 
				
			||||||
@itemize @bullet
 | 
					@itemize @bullet
 | 
				
			||||||
@item
 | 
					@item
 | 
				
			||||||
Label: "Guix"
 | 
					Label: "Guix"
 | 
				
			||||||
| 
						 | 
					@ -2061,9 +2063,9 @@ Filesystem: ext4
 | 
				
			||||||
Set it to the remaining size
 | 
					Set it to the remaining size
 | 
				
			||||||
@end itemize
 | 
					@end itemize
 | 
				
			||||||
 | 
					
 | 
				
			||||||
On the "configuration" field that comes with the default image, press
 | 
					In the Configurations tab, press "Edit" on the default Debian profile.
 | 
				
			||||||
"..." and select "Edit", then on that menu add to @file{/dev/sdc} the "Guix"
 | 
					Under "Block Device Assignment" click "Add a Device". It should be
 | 
				
			||||||
label.
 | 
					@file{/dev/sdc} and you can select the "Guix" disk. Save Changes.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Now "Add a Configuration", with the following:
 | 
					Now "Add a Configuration", with the following:
 | 
				
			||||||
@itemize @bullet
 | 
					@itemize @bullet
 | 
				
			||||||
| 
						 | 
					@ -2089,8 +2091,8 @@ Root device: @file{/dev/sda}
 | 
				
			||||||
Turn off all the filesystem/boot helpers
 | 
					Turn off all the filesystem/boot helpers
 | 
				
			||||||
@end itemize
 | 
					@end itemize
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Now power it back up, picking the Debian configuration.  Once it's
 | 
					Now power it back up, booting with the Debian configuration.  Once it's
 | 
				
			||||||
booted up, ssh in your server via @code{ssh
 | 
					running, ssh to your server via @code{ssh
 | 
				
			||||||
root@@@var{<your-server-IP-here>}}. (You can find your server IP address in
 | 
					root@@@var{<your-server-IP-here>}}. (You can find your server IP address in
 | 
				
			||||||
your Linode Summary section.) Now you can run the "install guix from
 | 
					your Linode Summary section.) Now you can run the "install guix from
 | 
				
			||||||
@pxref{Binary Installation,,, guix, GNU Guix}" steps:
 | 
					@pxref{Binary Installation,,, guix, GNU Guix}" steps:
 | 
				
			||||||
| 
						 | 
					@ -2179,19 +2181,20 @@ Replace the following fields in the above configuration:
 | 
				
			||||||
@end lisp
 | 
					@end lisp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The last line in the above example lets you log into the server as root
 | 
					The last line in the above example lets you log into the server as root
 | 
				
			||||||
and set the initial root password.  After you have done this, you may
 | 
					and set the initial root password (see the note at the end of this
 | 
				
			||||||
 | 
					recipe about root login).  After you have done this, you may
 | 
				
			||||||
delete that line from your configuration and reconfigure to prevent root
 | 
					delete that line from your configuration and reconfigure to prevent root
 | 
				
			||||||
login.
 | 
					login.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Save your ssh public key (eg: @file{~/.ssh/id_rsa.pub}) as
 | 
					Copy your ssh public key (eg: @file{~/.ssh/id_rsa.pub}) as
 | 
				
			||||||
@file{@var{<your-username-here>}_rsa.pub} and your
 | 
					@file{@var{<your-username-here>}_rsa.pub} and put
 | 
				
			||||||
@file{guix-config.scm} in the same directory.  In a new terminal run
 | 
					@file{guix-config.scm} in the same directory.  In a new terminal run
 | 
				
			||||||
these commands.
 | 
					these commands.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@example
 | 
					@example
 | 
				
			||||||
sftp root@@<remote server ip address>
 | 
					sftp root@@<remote server ip address>
 | 
				
			||||||
put /home/<username>/ssh/id_rsa.pub .
 | 
					put /path/to/files/<username>_rsa.pub .
 | 
				
			||||||
put /path/to/linode/guix-config.scm .
 | 
					put /path/to/files/guix-config.scm .
 | 
				
			||||||
@end example
 | 
					@end example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
In your first terminal, mount the guix drive:
 | 
					In your first terminal, mount the guix drive:
 | 
				
			||||||
| 
						 | 
					@ -2201,9 +2204,9 @@ mkdir /mnt/guix
 | 
				
			||||||
mount /dev/sdc /mnt/guix
 | 
					mount /dev/sdc /mnt/guix
 | 
				
			||||||
@end example
 | 
					@end example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Due to the way we set things up above, we do not install GRUB
 | 
					Due to the way we set up the bootloader section of the guix-config.scm,
 | 
				
			||||||
completely.  Instead we install only our grub configuration file.  So we
 | 
					only the grub configuration file will be installed.  So, we need to copy
 | 
				
			||||||
need to copy over some of the other GRUB stuff that is already there:
 | 
					over some of the other GRUB stuff already installed on the Debian system:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@example
 | 
					@example
 | 
				
			||||||
mkdir -p /mnt/guix/boot/grub
 | 
					mkdir -p /mnt/guix/boot/grub
 | 
				
			||||||
| 
						 | 
					@ -2256,7 +2259,7 @@ still need to set your root and user password initially by clicking on
 | 
				
			||||||
the ``Launch Console'' option in your linode.  Choose the ``Glish''
 | 
					the ``Launch Console'' option in your linode.  Choose the ``Glish''
 | 
				
			||||||
instead of ``Weblish''.  Now you should be able to ssh into the machine.
 | 
					instead of ``Weblish''.  Now you should be able to ssh into the machine.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Horray!  At this point you can shut down the server, delete the
 | 
					Hooray!  At this point you can shut down the server, delete the
 | 
				
			||||||
Debian disk, and resize the Guix to the rest of the size.
 | 
					Debian disk, and resize the Guix to the rest of the size.
 | 
				
			||||||
Congratulations!
 | 
					Congratulations!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										627
									
								
								doc/guix.texi
									
										
									
									
									
								
							
							
						
						
									
										627
									
								
								doc/guix.texi
									
										
									
									
									
								
							| 
						 | 
					@ -46,8 +46,8 @@ Copyright @copyright{} 2017 Federico Beffa@*
 | 
				
			||||||
Copyright @copyright{} 2017, 2018 Carlo Zancanaro@*
 | 
					Copyright @copyright{} 2017, 2018 Carlo Zancanaro@*
 | 
				
			||||||
Copyright @copyright{} 2017 Thomas Danckaert@*
 | 
					Copyright @copyright{} 2017 Thomas Danckaert@*
 | 
				
			||||||
Copyright @copyright{} 2017 humanitiesNerd@*
 | 
					Copyright @copyright{} 2017 humanitiesNerd@*
 | 
				
			||||||
Copyright @copyright{} 2017, 2021 Christopher Lemmer Webber@*
 | 
					Copyright @copyright{} 2017, 2021 Christine Lemmer-Webber@*
 | 
				
			||||||
Copyright @copyright{} 2017, 2018, 2019, 2020 Marius Bakke@*
 | 
					Copyright @copyright{} 2017, 2018, 2019, 2020, 2021 Marius Bakke@*
 | 
				
			||||||
Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@*
 | 
					Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@*
 | 
				
			||||||
Copyright @copyright{} 2017, 2019, 2020, 2021 Maxim Cournoyer@*
 | 
					Copyright @copyright{} 2017, 2019, 2020, 2021 Maxim Cournoyer@*
 | 
				
			||||||
Copyright @copyright{} 2017, 2018, 2019, 2020, 2021 Tobias Geerinckx-Rice@*
 | 
					Copyright @copyright{} 2017, 2018, 2019, 2020, 2021 Tobias Geerinckx-Rice@*
 | 
				
			||||||
| 
						 | 
					@ -94,6 +94,8 @@ Copyright @copyright{} 2021 Xinglu Chen@*
 | 
				
			||||||
Copyright @copyright{} 2021 Raghav Gururajan@*
 | 
					Copyright @copyright{} 2021 Raghav Gururajan@*
 | 
				
			||||||
Copyright @copyright{} 2021 Domagoj Stolfa@*
 | 
					Copyright @copyright{} 2021 Domagoj Stolfa@*
 | 
				
			||||||
Copyright @copyright{} 2021 Hui Lu@*
 | 
					Copyright @copyright{} 2021 Hui Lu@*
 | 
				
			||||||
 | 
					Copyright @copyright{} 2021 pukkamustard@*
 | 
				
			||||||
 | 
					Copyright @copyright{} 2021 Alice Brenon@*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Permission is granted to copy, distribute and/or modify this document
 | 
					Permission is granted to copy, distribute and/or modify this document
 | 
				
			||||||
under the terms of the GNU Free Documentation License, Version 1.3 or
 | 
					under the terms of the GNU Free Documentation License, Version 1.3 or
 | 
				
			||||||
| 
						 | 
					@ -2568,14 +2570,15 @@ in particular:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@itemize
 | 
					@itemize
 | 
				
			||||||
@item
 | 
					@item
 | 
				
			||||||
Make sure the @code{bootloader-configuration} form refers to the target
 | 
					Make sure the @code{bootloader-configuration} form refers to the targets
 | 
				
			||||||
you want to install GRUB on.  It should mention @code{grub-bootloader} if
 | 
					you want to install GRUB on.  It should mention @code{grub-bootloader}
 | 
				
			||||||
you are installing GRUB in the legacy way, or @code{grub-efi-bootloader}
 | 
					if you are installing GRUB in the legacy way, or
 | 
				
			||||||
for newer UEFI systems.  For legacy systems, the @code{target} field
 | 
					@code{grub-efi-bootloader} for newer UEFI systems.  For legacy systems,
 | 
				
			||||||
names a device, like @code{/dev/sda}; for UEFI systems it names a path
 | 
					the @code{targets} field contain the names of the devices, like
 | 
				
			||||||
to a mounted EFI partition, like @code{/boot/efi}; do make sure the path is
 | 
					@code{(list "/dev/sda")}; for UEFI systems it names the paths to mounted
 | 
				
			||||||
currently mounted and a @code{file-system} entry is specified in your
 | 
					EFI partitions, like @code{(list "/boot/efi")}; do make sure the paths
 | 
				
			||||||
configuration.
 | 
					are currently mounted and a @code{file-system} entry is specified in
 | 
				
			||||||
 | 
					your configuration.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item
 | 
					@item
 | 
				
			||||||
Be sure that your file system labels match the value of their respective
 | 
					Be sure that your file system labels match the value of their respective
 | 
				
			||||||
| 
						 | 
					@ -7056,9 +7059,10 @@ retrieve.
 | 
				
			||||||
The URL of the Git repository to clone.
 | 
					The URL of the Git repository to clone.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item @code{commit}
 | 
					@item @code{commit}
 | 
				
			||||||
This string denotes either the commit to fetch (a hexadecimal string,
 | 
					This string denotes either the commit to fetch (a hexadecimal string),
 | 
				
			||||||
either the full SHA1 commit or a ``short'' commit string; the latter is
 | 
					or the tag to fetch.  You can also use a ``short'' commit ID or a
 | 
				
			||||||
not recommended) or the tag to fetch.
 | 
					@command{git describe} style identifier such as
 | 
				
			||||||
 | 
					@code{v1.0.1-10-g58d7909c97}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item @code{recursive?} (default: @code{#f})
 | 
					@item @code{recursive?} (default: @code{#f})
 | 
				
			||||||
This Boolean indicates whether to recursively fetch Git sub-modules.
 | 
					This Boolean indicates whether to recursively fetch Git sub-modules.
 | 
				
			||||||
| 
						 | 
					@ -7801,6 +7805,7 @@ The @code{#:package} parameter can be passed to specify a package name, which
 | 
				
			||||||
is useful when a package contains multiple packages and you want to build
 | 
					is useful when a package contains multiple packages and you want to build
 | 
				
			||||||
only one of them.  This is equivalent to passing the @code{-p} argument to
 | 
					only one of them.  This is equivalent to passing the @code{-p} argument to
 | 
				
			||||||
@code{dune}.
 | 
					@code{dune}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@end defvr
 | 
					@end defvr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@defvr {Scheme Variable} go-build-system
 | 
					@defvr {Scheme Variable} go-build-system
 | 
				
			||||||
| 
						 | 
					@ -7824,6 +7829,13 @@ Packages that provide Go libraries should install their source code into
 | 
				
			||||||
the built output.  The key @code{#:install-source?}, which defaults to
 | 
					the built output.  The key @code{#:install-source?}, which defaults to
 | 
				
			||||||
@code{#t}, controls whether or not the source code is installed.  It can
 | 
					@code{#t}, controls whether or not the source code is installed.  It can
 | 
				
			||||||
be set to @code{#f} for packages that only provide executable files.
 | 
					be set to @code{#f} for packages that only provide executable files.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Packages can be cross-built, and if a specific architecture or operating
 | 
				
			||||||
 | 
					system is desired then the keywords @code{#:goarch} and @code{#:goos}
 | 
				
			||||||
 | 
					can be used to force the package to be built for that architecture and
 | 
				
			||||||
 | 
					operating system.  The combinations known to Go can be found
 | 
				
			||||||
 | 
					@url{"https://golang.org/doc/install/source#environment", in their
 | 
				
			||||||
 | 
					documentation}.
 | 
				
			||||||
@end defvr
 | 
					@end defvr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@defvr {Scheme Variable} glib-or-gtk-build-system
 | 
					@defvr {Scheme Variable} glib-or-gtk-build-system
 | 
				
			||||||
| 
						 | 
					@ -7965,6 +7977,14 @@ declaration.  Its default value is @code{(default-maven-plugins)} which is
 | 
				
			||||||
also exported.
 | 
					also exported.
 | 
				
			||||||
@end defvr
 | 
					@end defvr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@defvr {Scheme Variable} minetest-mod-build-system
 | 
				
			||||||
 | 
					This variable is exported by @code{(guix build-system minetest)}.  It
 | 
				
			||||||
 | 
					implements a build procedure for @uref{https://www.minetest.net, Minetest}
 | 
				
			||||||
 | 
					mods, which consists of copying Lua code, images and other resources to
 | 
				
			||||||
 | 
					the location Minetest searches for mods.  The build system also minimises
 | 
				
			||||||
 | 
					PNG images and verifies that Minetest can load the mod without errors.
 | 
				
			||||||
 | 
					@end defvr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@defvr {Scheme Variable} minify-build-system
 | 
					@defvr {Scheme Variable} minify-build-system
 | 
				
			||||||
This variable is exported by @code{(guix build-system minify)}.  It
 | 
					This variable is exported by @code{(guix build-system minify)}.  It
 | 
				
			||||||
implements a minification procedure for simple JavaScript packages.
 | 
					implements a minification procedure for simple JavaScript packages.
 | 
				
			||||||
| 
						 | 
					@ -10743,7 +10763,8 @@ guix build --with-branch=guile-sqlite3=master cuirass
 | 
				
			||||||
@item --with-commit=@var{package}=@var{commit}
 | 
					@item --with-commit=@var{package}=@var{commit}
 | 
				
			||||||
This is similar to @option{--with-branch}, except that it builds from
 | 
					This is similar to @option{--with-branch}, except that it builds from
 | 
				
			||||||
@var{commit} rather than the tip of a branch.  @var{commit} must be a valid
 | 
					@var{commit} rather than the tip of a branch.  @var{commit} must be a valid
 | 
				
			||||||
Git commit SHA1 identifier or a tag.
 | 
					Git commit SHA1 identifier, a tag, or a @command{git describe} style
 | 
				
			||||||
 | 
					identifier such as @code{1.0-3-gabc123}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item --with-patch=@var{package}=@var{file}
 | 
					@item --with-patch=@var{package}=@var{file}
 | 
				
			||||||
Add @var{file} to the list of patches applied to @var{package}, where
 | 
					Add @var{file} to the list of patches applied to @var{package}, where
 | 
				
			||||||
| 
						 | 
					@ -11410,6 +11431,38 @@ and generate package expressions for all those packages that are not yet
 | 
				
			||||||
in Guix.
 | 
					in Guix.
 | 
				
			||||||
@end table
 | 
					@end table
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item minetest
 | 
				
			||||||
 | 
					@cindex minetest
 | 
				
			||||||
 | 
					@cindex ContentDB
 | 
				
			||||||
 | 
					Import metadata from @uref{https://content.minetest.net, ContentDB}.
 | 
				
			||||||
 | 
					Information is taken from the JSON-formatted metadata provided through
 | 
				
			||||||
 | 
					@uref{https://content.minetest.net/help/api/, ContentDB's API} and
 | 
				
			||||||
 | 
					includes most relevant information, including dependencies.  There are
 | 
				
			||||||
 | 
					some caveats, however.  The license information is often incomplete.
 | 
				
			||||||
 | 
					The commit hash is sometimes missing.  The descriptions are in the
 | 
				
			||||||
 | 
					Markdown format, but Guix uses Texinfo instead.  Texture packs and
 | 
				
			||||||
 | 
					subgames are unsupported.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The command below imports metadata for the Mesecons mod by Jeija:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@example
 | 
				
			||||||
 | 
					guix import minetest Jeija/mesecons
 | 
				
			||||||
 | 
					@end example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The author name can also be left out:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@example
 | 
				
			||||||
 | 
					guix import minetest mesecons
 | 
				
			||||||
 | 
					@end example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@table @code
 | 
				
			||||||
 | 
					@item --recursive
 | 
				
			||||||
 | 
					@itemx -r
 | 
				
			||||||
 | 
					Traverse the dependency graph of the given upstream package recursively
 | 
				
			||||||
 | 
					and generate package expressions for all those packages that are not yet
 | 
				
			||||||
 | 
					in Guix.
 | 
				
			||||||
 | 
					@end table
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item cpan
 | 
					@item cpan
 | 
				
			||||||
@cindex CPAN
 | 
					@cindex CPAN
 | 
				
			||||||
Import metadata from @uref{https://www.metacpan.org/, MetaCPAN}.
 | 
					Import metadata from @uref{https://www.metacpan.org/, MetaCPAN}.
 | 
				
			||||||
| 
						 | 
					@ -11660,6 +11713,10 @@ contained in the GnuPG keyring at
 | 
				
			||||||
@code{emacs} package (@pxref{Package Installation, ELPA package
 | 
					@code{emacs} package (@pxref{Package Installation, ELPA package
 | 
				
			||||||
signatures,, emacs, The GNU Emacs Manual}).
 | 
					signatures,, emacs, The GNU Emacs Manual}).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item
 | 
				
			||||||
 | 
					@uref{https://elpa.nongnu.org/nongnu/, NonGNU}, selected by the
 | 
				
			||||||
 | 
					@code{nongnu} identifier.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item
 | 
					@item
 | 
				
			||||||
@uref{https://stable.melpa.org/packages, MELPA-Stable}, selected by the
 | 
					@uref{https://stable.melpa.org/packages, MELPA-Stable}, selected by the
 | 
				
			||||||
@code{melpa-stable} identifier.
 | 
					@code{melpa-stable} identifier.
 | 
				
			||||||
| 
						 | 
					@ -11716,14 +11773,31 @@ Traverse the dependency graph of the given upstream package recursively
 | 
				
			||||||
and generate package expressions for all those packages that are not yet
 | 
					and generate package expressions for all those packages that are not yet
 | 
				
			||||||
in Guix.
 | 
					in Guix.
 | 
				
			||||||
@item --repo
 | 
					@item --repo
 | 
				
			||||||
Select the given repository (a repository name).  Possible values include:
 | 
					By default, packages are searched in the official OPAM repository.  This
 | 
				
			||||||
 | 
					option, which can be used more than once, lets you add other repositories
 | 
				
			||||||
 | 
					which will be searched for packages.  It accepts as valid arguments:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@itemize
 | 
					@itemize
 | 
				
			||||||
@item @code{opam}, the default opam repository,
 | 
					@item the name of a known repository - can be one of @code{opam},
 | 
				
			||||||
@item @code{coq} or @code{coq-released}, the stable repository for coq packages,
 | 
					      @code{coq} (equivalent to @code{coq-released}),
 | 
				
			||||||
@item @code{coq-core-dev}, the repository that contains development versions of coq,
 | 
						  @code{coq-core-dev}, @code{coq-extra-dev} or @code{grew}.
 | 
				
			||||||
@item @code{coq-extra-dev}, the repository that contains development versions
 | 
					@item the URL of a repository as expected by the
 | 
				
			||||||
      of coq packages.
 | 
					      @code{opam repository add} command (for instance, the URL equivalent
 | 
				
			||||||
 | 
						  of the above @code{opam} name would be
 | 
				
			||||||
 | 
						  @uref{https://opam.ocaml.org}).
 | 
				
			||||||
 | 
					@item the path to a local copy of a repository (a directory containing a
 | 
				
			||||||
 | 
					      @file{packages/} sub-directory).
 | 
				
			||||||
@end itemize
 | 
					@end itemize
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Repositories are assumed to be passed to this option by order of
 | 
				
			||||||
 | 
					preference.  The additional repositories will not replace the default
 | 
				
			||||||
 | 
					@code{opam} repository, which is always kept as a fallback.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Also, please note that versions are not compared accross repositories.
 | 
				
			||||||
 | 
					The first repository (from left to right) that has at least one version
 | 
				
			||||||
 | 
					of a given package will prevail over any others, and the version
 | 
				
			||||||
 | 
					imported will be the latest one found @emph{in this repository only}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@end table
 | 
					@end table
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item go
 | 
					@item go
 | 
				
			||||||
| 
						 | 
					@ -13681,7 +13755,7 @@ the @code{bootloader} field should contain something along these lines:
 | 
				
			||||||
@lisp
 | 
					@lisp
 | 
				
			||||||
(bootloader-configuration
 | 
					(bootloader-configuration
 | 
				
			||||||
  (bootloader grub-efi-bootloader)
 | 
					  (bootloader grub-efi-bootloader)
 | 
				
			||||||
  (target "/boot/efi"))
 | 
					  (targets '("/boot/efi")))
 | 
				
			||||||
@end lisp
 | 
					@end lisp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@xref{Bootloader Configuration}, for more information on the available
 | 
					@xref{Bootloader Configuration}, for more information on the available
 | 
				
			||||||
| 
						 | 
					@ -14108,8 +14182,8 @@ Linux @dfn{pluggable authentication module} (PAM) services.
 | 
				
			||||||
@c FIXME: Add xref to PAM services section.
 | 
					@c FIXME: Add xref to PAM services section.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item @code{setuid-programs} (default: @code{%setuid-programs})
 | 
					@item @code{setuid-programs} (default: @code{%setuid-programs})
 | 
				
			||||||
List of string-valued G-expressions denoting setuid programs.
 | 
					List of @code{<setuid-program>}.  @xref{Setuid Programs}, for more
 | 
				
			||||||
@xref{Setuid Programs}.
 | 
					information.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item @code{sudoers-file} (default: @code{%sudoers-specification})
 | 
					@item @code{sudoers-file} (default: @code{%sudoers-specification})
 | 
				
			||||||
@cindex sudoers file
 | 
					@cindex sudoers file
 | 
				
			||||||
| 
						 | 
					@ -14896,7 +14970,7 @@ configuration would look like:
 | 
				
			||||||
  (keyboard-layout (keyboard-layout "tr"))  ;for the console
 | 
					  (keyboard-layout (keyboard-layout "tr"))  ;for the console
 | 
				
			||||||
  (bootloader (bootloader-configuration
 | 
					  (bootloader (bootloader-configuration
 | 
				
			||||||
                (bootloader grub-efi-bootloader)
 | 
					                (bootloader grub-efi-bootloader)
 | 
				
			||||||
                (target "/boot/efi")
 | 
					                (targets '("/boot/efi"))
 | 
				
			||||||
                (keyboard-layout keyboard-layout))) ;for GRUB
 | 
					                (keyboard-layout keyboard-layout))) ;for GRUB
 | 
				
			||||||
  (services (cons (set-xorg-configuration
 | 
					  (services (cons (set-xorg-configuration
 | 
				
			||||||
                    (xorg-configuration             ;for Xorg
 | 
					                    (xorg-configuration             ;for Xorg
 | 
				
			||||||
| 
						 | 
					@ -16122,7 +16196,8 @@ gexps to introduce job definitions that are passed to mcron
 | 
				
			||||||
         (lambda ()
 | 
					         (lambda ()
 | 
				
			||||||
           (execl (string-append #$findutils "/bin/updatedb")
 | 
					           (execl (string-append #$findutils "/bin/updatedb")
 | 
				
			||||||
                  "updatedb"
 | 
					                  "updatedb"
 | 
				
			||||||
                  "--prunepaths=/tmp /var/tmp /gnu/store"))))
 | 
					                  "--prunepaths=/tmp /var/tmp /gnu/store"))
 | 
				
			||||||
 | 
					         "updatedb"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define garbage-collector-job
 | 
					(define garbage-collector-job
 | 
				
			||||||
  ;; Collect garbage 5 minutes after midnight every day.
 | 
					  ;; Collect garbage 5 minutes after midnight every day.
 | 
				
			||||||
| 
						 | 
					@ -16151,6 +16226,14 @@ gexps to introduce job definitions that are passed to mcron
 | 
				
			||||||
                  %base-services)))
 | 
					                  %base-services)))
 | 
				
			||||||
@end lisp
 | 
					@end lisp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@quotation Tip
 | 
				
			||||||
 | 
					When providing the action of a job specification as a procedure, you
 | 
				
			||||||
 | 
					should provide an explicit name for the job via the optional 3rd
 | 
				
			||||||
 | 
					argument as done in the @code{updatedb-job} example above.  Otherwise,
 | 
				
			||||||
 | 
					the job would appear as ``Lambda function'' in the output of
 | 
				
			||||||
 | 
					@command{herd schedule mcron}, which is not nearly descriptive enough!
 | 
				
			||||||
 | 
					@end quotation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
For more complex jobs defined in Scheme where you need control over the top
 | 
					For more complex jobs defined in Scheme where you need control over the top
 | 
				
			||||||
level, for instance to introduce a @code{use-modules} form, you can move your
 | 
					level, for instance to introduce a @code{use-modules} form, you can move your
 | 
				
			||||||
code to a separate program using the @code{program-file} procedure of the
 | 
					code to a separate program using the @code{program-file} procedure of the
 | 
				
			||||||
| 
						 | 
					@ -18259,6 +18342,14 @@ Data type representing the configuration of @code{slim-service-type}.
 | 
				
			||||||
@item @code{allow-empty-passwords?} (default: @code{#t})
 | 
					@item @code{allow-empty-passwords?} (default: @code{#t})
 | 
				
			||||||
Whether to allow logins with empty passwords.
 | 
					Whether to allow logins with empty passwords.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{gnupg?} (default: @code{#f})
 | 
				
			||||||
 | 
					If enabled, @code{pam-gnupg} will attempt to automatically unlock the
 | 
				
			||||||
 | 
					user's GPG keys with the login password via @code{gpg-agent}.  The
 | 
				
			||||||
 | 
					keygrips of all keys to be unlocked should be written to
 | 
				
			||||||
 | 
					@file{~/.pam-gnupg}, and can be queried with @code{gpg -K
 | 
				
			||||||
 | 
					--with-keygrip}.  Presetting passphrases must be enabled by adding
 | 
				
			||||||
 | 
					@code{allow-preset-passphrase} in @file{~/.gnupg/gpg-agent.conf}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item @code{auto-login?} (default: @code{#f})
 | 
					@item @code{auto-login?} (default: @code{#f})
 | 
				
			||||||
@itemx @code{default-user} (default: @code{""})
 | 
					@itemx @code{default-user} (default: @code{""})
 | 
				
			||||||
When @code{auto-login?} is false, SLiM presents a log-in screen.
 | 
					When @code{auto-login?} is false, SLiM presents a log-in screen.
 | 
				
			||||||
| 
						 | 
					@ -22735,6 +22826,234 @@ and Error.
 | 
				
			||||||
@node Telephony Services
 | 
					@node Telephony Services
 | 
				
			||||||
@subsection Telephony Services
 | 
					@subsection Telephony Services
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@cindex telephony, services
 | 
				
			||||||
 | 
					The @code{(gnu services telephony)} module contains Guix service
 | 
				
			||||||
 | 
					definitions for telephony services.  Currently it provides the following
 | 
				
			||||||
 | 
					services:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@subsubheading Jami
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@cindex jami, service
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This section describes how to configure a Jami server that can be used
 | 
				
			||||||
 | 
					to host video (or audio) conferences, among other uses.  The following
 | 
				
			||||||
 | 
					example demonstrates how to specify Jami account archives (backups) to
 | 
				
			||||||
 | 
					be provisioned automatically:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@lisp
 | 
				
			||||||
 | 
					(service jami-service-type
 | 
				
			||||||
 | 
					         (jami-configuration
 | 
				
			||||||
 | 
					          (accounts
 | 
				
			||||||
 | 
					           (list (jami-account
 | 
				
			||||||
 | 
					                  (archive "/etc/jami/unencrypted-account-1.gz"))
 | 
				
			||||||
 | 
					                 (jami-account
 | 
				
			||||||
 | 
					                  (archive "/etc/jami/unencrypted-account-2.gz"))))))
 | 
				
			||||||
 | 
					@end lisp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					When the accounts field is specified, the Jami account files of the
 | 
				
			||||||
 | 
					service found under @file{/var/lib/jami} are recreated every time the
 | 
				
			||||||
 | 
					service starts.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Jami accounts and their corresponding backup archives can be generated
 | 
				
			||||||
 | 
					using either the @code{jami-qt} or @code{jami-gnome} Jami clients.  The
 | 
				
			||||||
 | 
					accounts should not be password-protected, but it is wise to ensure
 | 
				
			||||||
 | 
					their files are only readable by @samp{root}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The next example shows how to declare that only some contacts should be
 | 
				
			||||||
 | 
					allowed to communicate with a given account:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@lisp
 | 
				
			||||||
 | 
					(service jami-service-type
 | 
				
			||||||
 | 
					         (jami-configuration
 | 
				
			||||||
 | 
					          (accounts
 | 
				
			||||||
 | 
					           (list (jami-account
 | 
				
			||||||
 | 
					                  (archive "/etc/jami/unencrypted-account-1.gz")
 | 
				
			||||||
 | 
					                  (peer-discovery? #t)
 | 
				
			||||||
 | 
					                  (rendezvous-point? #t)
 | 
				
			||||||
 | 
					                  (allowed-contacts
 | 
				
			||||||
 | 
					                   '("1dbcb0f5f37324228235564b79f2b9737e9a008f"
 | 
				
			||||||
 | 
					                     "2dbcb0f5f37324228235564b79f2b9737e9a008f")))))))
 | 
				
			||||||
 | 
					@end lisp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In this mode, only the declared @code{allowed-contacts} can initiate
 | 
				
			||||||
 | 
					communication with the Jami account.  This can be used, for example,
 | 
				
			||||||
 | 
					with rendezvous point accounts to create a private video conferencing
 | 
				
			||||||
 | 
					space.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To put the system administrator in full control of the conferences
 | 
				
			||||||
 | 
					hosted on their system, the Jami service supports the following actions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@example sh
 | 
				
			||||||
 | 
					# herd doc jami list-actions
 | 
				
			||||||
 | 
					(list-accounts
 | 
				
			||||||
 | 
					 list-account-details
 | 
				
			||||||
 | 
					 list-banned-contacts
 | 
				
			||||||
 | 
					 list-contacts
 | 
				
			||||||
 | 
					 list-moderators
 | 
				
			||||||
 | 
					 add-moderator
 | 
				
			||||||
 | 
					 ban-contact
 | 
				
			||||||
 | 
					 enable-account
 | 
				
			||||||
 | 
					 disable-account)
 | 
				
			||||||
 | 
					@end example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The above actions aim to provide the most valuable actions for
 | 
				
			||||||
 | 
					moderation purposes, not to cover the whole Jami API.  Users wanting to
 | 
				
			||||||
 | 
					interact with the Jami daemon from Guile may be interested in
 | 
				
			||||||
 | 
					experimenting with the @code{(gnu build jami-service)} module, which
 | 
				
			||||||
 | 
					powers the above Shepherd actions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@c TODO: This should be auto-generated from the doc already defined on
 | 
				
			||||||
 | 
					@c the shepherd-actions themselves in (gnu services telephony).
 | 
				
			||||||
 | 
					The @code{add-moderator} and @code{ban-contact} actions accept a contact
 | 
				
			||||||
 | 
					@emph{fingerprint} (40 characters long hash) as first argument and an
 | 
				
			||||||
 | 
					account fingerprint or username as second argument:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@example sh
 | 
				
			||||||
 | 
					# herd add-moderator jami 1dbcb0f5f37324228235564b79f2b9737e9a008f \
 | 
				
			||||||
 | 
					  f3345f2775ddfe07a4b0d95daea111d15fbc1199
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# herd list-moderators jami
 | 
				
			||||||
 | 
					Moderators for account f3345f2775ddfe07a4b0d95daea111d15fbc1199:
 | 
				
			||||||
 | 
					  - 1dbcb0f5f37324228235564b79f2b9737e9a008f
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@end example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In the case of @code{ban-contact}, the second username argument is
 | 
				
			||||||
 | 
					optional; when omitted, the account is banned from all Jami accounts:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@example sh
 | 
				
			||||||
 | 
					# herd ban-contact jami 1dbcb0f5f37324228235564b79f2b9737e9a008f
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# herd list-banned-contacts jami
 | 
				
			||||||
 | 
					Banned contacts for account f3345f2775ddfe07a4b0d95daea111d15fbc1199:
 | 
				
			||||||
 | 
					  - 1dbcb0f5f37324228235564b79f2b9737e9a008f
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@end example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Banned contacts are also stripped from their moderation privileges.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The @code{disable-account} action allows to completely disconnect an
 | 
				
			||||||
 | 
					account from the network, making it unreachable, while
 | 
				
			||||||
 | 
					@code{enable-account} does the inverse.  They accept a single account
 | 
				
			||||||
 | 
					username or fingerprint as first argument:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@example sh
 | 
				
			||||||
 | 
					# herd disable-account jami f3345f2775ddfe07a4b0d95daea111d15fbc1199
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# herd list-accounts jami
 | 
				
			||||||
 | 
					The following Jami accounts are available:
 | 
				
			||||||
 | 
					  - f3345f2775ddfe07a4b0d95daea111d15fbc1199 (dummy) [disabled]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@end example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The @code{list-account-details} action prints the detailed parameters of
 | 
				
			||||||
 | 
					each accounts in the Recutils format, which means the @command{recsel}
 | 
				
			||||||
 | 
					command can be used to select accounts of interest (@pxref{Selection
 | 
				
			||||||
 | 
					Expressions,,,recutils, GNU recutils manual}).  Note that period
 | 
				
			||||||
 | 
					characters (@samp{.}) found in the account parameter keys are mapped to
 | 
				
			||||||
 | 
					underscores (@samp{_}) in the output, to meet the requirements of the
 | 
				
			||||||
 | 
					Recutils format.  The following example shows how to print the account
 | 
				
			||||||
 | 
					fingerprints for all accounts operating in the rendezvous point mode:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@example sh
 | 
				
			||||||
 | 
					# herd list-account-details jami | \
 | 
				
			||||||
 | 
					  recsel -p Account.username -e 'Account.rendezVous ~ "true"'
 | 
				
			||||||
 | 
					Account_username: f3345f2775ddfe07a4b0d95daea111d15fbc1199
 | 
				
			||||||
 | 
					@end example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The remaining actions should be self-explanatory.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The complete set of available configuration options is detailed below.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@c TODO: Ideally, the following fragments would be auto-generated at
 | 
				
			||||||
 | 
					@c build time, so that they needn't be manually duplicated.
 | 
				
			||||||
 | 
					@c Auto-generated via (configuration->documentation 'jami-configuration)
 | 
				
			||||||
 | 
					@deftp {Data Type} jami-configuration
 | 
				
			||||||
 | 
					Available @code{jami-configuration} fields are:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@table @asis
 | 
				
			||||||
 | 
					@item @code{jamid} (default: @code{libring}) (type: package)
 | 
				
			||||||
 | 
					The Jami daemon package to use.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{dbus} (default: @code{dbus}) (type: package)
 | 
				
			||||||
 | 
					The D-Bus package to use to start the required D-Bus session.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{nss-certs} (default: @code{nss-certs}) (type: package)
 | 
				
			||||||
 | 
					The nss-certs package to use to provide TLS certificates.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{enable-logging?} (default: @code{#t}) (type: boolean)
 | 
				
			||||||
 | 
					Whether to enable logging to syslog.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{debug?} (default: @code{#f}) (type: boolean)
 | 
				
			||||||
 | 
					Whether to enable debug level messages.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{auto-answer?} (default: @code{#f}) (type: boolean)
 | 
				
			||||||
 | 
					Whether to force automatic answer to incoming calls.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{accounts} (default: @code{disabled}) (type: maybe-jami-account-list)
 | 
				
			||||||
 | 
					A list of Jami accounts to be (re-)provisioned every time the Jami
 | 
				
			||||||
 | 
					daemon service starts.  When providing this field, the account
 | 
				
			||||||
 | 
					directories under @file{/var/lib/jami/} are recreated every time the
 | 
				
			||||||
 | 
					service starts, ensuring a consistent state.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@end table
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@end deftp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@c Auto-generated via (configuration->documentation 'jami-account)
 | 
				
			||||||
 | 
					@deftp {Data Type} jami-account
 | 
				
			||||||
 | 
					Available @code{jami-account} fields are:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@table @asis
 | 
				
			||||||
 | 
					@item @code{archive} (type: string-or-computed-file)
 | 
				
			||||||
 | 
					The account archive (backup) file name of the account.  This is used to
 | 
				
			||||||
 | 
					provision the account when the service starts.  The account archive
 | 
				
			||||||
 | 
					should @emph{not} be encrypted.  It is highly recommended to make it
 | 
				
			||||||
 | 
					readable only to the @samp{root} user (i.e., not in the store), to guard
 | 
				
			||||||
 | 
					against leaking the secret key material of the Jami account it contains.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{allowed-contacts} (default: @code{disabled}) (type: maybe-account-fingerprint-list)
 | 
				
			||||||
 | 
					The list of allowed contacts for the account, entered as their 40
 | 
				
			||||||
 | 
					characters long fingerprint.  Messages or calls from accounts not in
 | 
				
			||||||
 | 
					that list will be rejected.  When unspecified, the configuration of the
 | 
				
			||||||
 | 
					account archive is used as-is with respect to contacts and public
 | 
				
			||||||
 | 
					inbound calls/messaging allowance, which typically defaults to allow any
 | 
				
			||||||
 | 
					contact to communicate with the account.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{moderators} (default: @code{disabled}) (type: maybe-account-fingerprint-list)
 | 
				
			||||||
 | 
					The list of contacts that should have moderation privileges (to ban,
 | 
				
			||||||
 | 
					mute, etc.  other users) in rendezvous conferences, entered as their 40
 | 
				
			||||||
 | 
					characters long fingerprint.  When unspecified, the configuration of the
 | 
				
			||||||
 | 
					account archive is used as-is with respect to moderation, which
 | 
				
			||||||
 | 
					typically defaults to allow anyone to moderate.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{rendezvous-point?} (default: @code{disabled}) (type: maybe-boolean)
 | 
				
			||||||
 | 
					Whether the account should operate in the rendezvous mode.  In this
 | 
				
			||||||
 | 
					mode, all the incoming audio/video calls are mixed into a conference.
 | 
				
			||||||
 | 
					When left unspecified, the value from the account archive prevails.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{peer-discovery?} (default: @code{disabled}) (type: maybe-boolean)
 | 
				
			||||||
 | 
					Whether peer discovery should be enabled.  Peer discovery is used to
 | 
				
			||||||
 | 
					discover other OpenDHT nodes on the local network, which can be useful
 | 
				
			||||||
 | 
					to maintain communication between devices on such network even when the
 | 
				
			||||||
 | 
					connection to the the Internet has been lost.  When left unspecified,
 | 
				
			||||||
 | 
					the value from the account archive prevails.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{bootstrap-hostnames} (default: @code{disabled}) (type: maybe-string-list)
 | 
				
			||||||
 | 
					A list of hostnames or IPs pointing to OpenDHT nodes, that should be
 | 
				
			||||||
 | 
					used to initially join the OpenDHT network.  When left unspecified, the
 | 
				
			||||||
 | 
					value from the account archive prevails.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{name-server-uri} (default: @code{disabled}) (type: maybe-string)
 | 
				
			||||||
 | 
					The URI of the name server to use, that can be used to retrieve the
 | 
				
			||||||
 | 
					account fingerprint for a registered username.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@end table
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@end deftp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@subsubheading Murmur (VoIP server)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@cindex Murmur (VoIP server)
 | 
					@cindex Murmur (VoIP server)
 | 
				
			||||||
@cindex VoIP server
 | 
					@cindex VoIP server
 | 
				
			||||||
This section describes how to set up and run a Murmur server.  Murmur is
 | 
					This section describes how to set up and run a Murmur server.  Murmur is
 | 
				
			||||||
| 
						 | 
					@ -25042,6 +25361,7 @@ of strings and G-expressions.
 | 
				
			||||||
@end table
 | 
					@end table
 | 
				
			||||||
@end deffn
 | 
					@end deffn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@anchor{NGINX}
 | 
				
			||||||
@subsubheading NGINX
 | 
					@subsubheading NGINX
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@deffn {Scheme Variable} nginx-service-type
 | 
					@deffn {Scheme Variable} nginx-service-type
 | 
				
			||||||
| 
						 | 
					@ -27861,6 +28181,11 @@ Use @var{cache} directory to cache build log files.
 | 
				
			||||||
Once a substitute is successfully fetched, trigger substitute baking at
 | 
					Once a substitute is successfully fetched, trigger substitute baking at
 | 
				
			||||||
@var{trigger-url}.
 | 
					@var{trigger-url}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{publish?} (default: @code{#t})
 | 
				
			||||||
 | 
					If set to false, do not start a publish server and ignore the
 | 
				
			||||||
 | 
					@code{publish-port} argument.  This can be useful if there is already a
 | 
				
			||||||
 | 
					standalone publish server standing next to the remote server.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item @code{public-key}
 | 
					@item @code{public-key}
 | 
				
			||||||
@item @code{private-key}
 | 
					@item @code{private-key}
 | 
				
			||||||
Use the specific @var{file}s as the public/private key pair used to sign
 | 
					Use the specific @var{file}s as the public/private key pair used to sign
 | 
				
			||||||
| 
						 | 
					@ -27895,6 +28220,9 @@ Location of the log file.
 | 
				
			||||||
@item @code{publish-port} (default: @code{5558})
 | 
					@item @code{publish-port} (default: @code{5558})
 | 
				
			||||||
The TCP port of the publish server.  It defaults to @code{5558}.
 | 
					The TCP port of the publish server.  It defaults to @code{5558}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{substitute-urls} (default: @code{%default-substitute-urls})
 | 
				
			||||||
 | 
					The list of URLs where to look for substitutes by default.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item @code{public-key}
 | 
					@item @code{public-key}
 | 
				
			||||||
@item @code{private-key}
 | 
					@item @code{private-key}
 | 
				
			||||||
Use the specific @var{file}s as the public/private key pair used to sign
 | 
					Use the specific @var{file}s as the public/private key pair used to sign
 | 
				
			||||||
| 
						 | 
					@ -31407,6 +31735,19 @@ A value like @code{#o0027} will give read access to the group used by Gitolite
 | 
				
			||||||
(by default: @code{git}).  This is necessary when using Gitolite with software
 | 
					(by default: @code{git}).  This is necessary when using Gitolite with software
 | 
				
			||||||
like cgit or gitweb.
 | 
					like cgit or gitweb.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{unsafe-pattern} (default: @code{#f})
 | 
				
			||||||
 | 
					An optional Perl regular expression for catching unsafe configurations in
 | 
				
			||||||
 | 
					the configuration file.  See
 | 
				
			||||||
 | 
					@uref{https://gitolite.com/gitolite/git-config.html#compensating-for-unsafe_patt,
 | 
				
			||||||
 | 
					Gitolite's documentation} for more information.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					When the value is not @code{#f}, it should be a string containing a Perl
 | 
				
			||||||
 | 
					regular expression, such as @samp{"[`~#\$\&()|;<>]"}, which is the default
 | 
				
			||||||
 | 
					value used by gitolite.  It rejects any special character in configuration
 | 
				
			||||||
 | 
					that might be interpreted by a shell, which is useful when sharing the
 | 
				
			||||||
 | 
					administration burden with other people that do not otherwise have shell
 | 
				
			||||||
 | 
					access on the server.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item @code{git-config-keys} (default: @code{""})
 | 
					@item @code{git-config-keys} (default: @code{""})
 | 
				
			||||||
Gitolite allows you to set git config values using the @samp{config}
 | 
					Gitolite allows you to set git config values using the @samp{config}
 | 
				
			||||||
keyword.  This setting allows control over the config keys to accept.
 | 
					keyword.  This setting allows control over the config keys to accept.
 | 
				
			||||||
| 
						 | 
					@ -31421,6 +31762,137 @@ This setting controls the commands and features to enable within Gitolite.
 | 
				
			||||||
@end deftp
 | 
					@end deftp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@subsubheading Gitile Service
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@cindex Gitile service
 | 
				
			||||||
 | 
					@cindex Git, forge
 | 
				
			||||||
 | 
					@uref{https://git.lepiller.eu/gitile, Gitile} is a Git forge for viewing
 | 
				
			||||||
 | 
					public git repository contents from a web browser.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Gitile works best in collaboration with Gitolite, and will serve the public
 | 
				
			||||||
 | 
					repositories from Gitolite by default.  The service should listen only on
 | 
				
			||||||
 | 
					a local port, and a webserver should be configured to serve static resources.
 | 
				
			||||||
 | 
					The gitile service provides an easy way to extend the Nginx service for
 | 
				
			||||||
 | 
					that purpose (@pxref{NGINX}).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The following example will configure Gitile to serve repositories from a
 | 
				
			||||||
 | 
					custom location, with some default messages for the home page and the
 | 
				
			||||||
 | 
					footers.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@lisp
 | 
				
			||||||
 | 
					(service gitile-service-type
 | 
				
			||||||
 | 
					         (gitile-configuration
 | 
				
			||||||
 | 
					           (repositories "/srv/git")
 | 
				
			||||||
 | 
					           (base-git-url "https://myweb.site/git")
 | 
				
			||||||
 | 
					           (index-title "My git repositories")
 | 
				
			||||||
 | 
					           (intro '((p "This is all my public work!")))
 | 
				
			||||||
 | 
					           (footer '((p "This is the end")))
 | 
				
			||||||
 | 
					           (nginx-server-block
 | 
				
			||||||
 | 
					             (nginx-server-configuration
 | 
				
			||||||
 | 
					               (ssl-certificate
 | 
				
			||||||
 | 
					                 "/etc/letsencrypt/live/myweb.site/fullchain.pem")
 | 
				
			||||||
 | 
					               (ssl-certificate-key
 | 
				
			||||||
 | 
					                 "/etc/letsencrypt/live/myweb.site/privkey.pem")
 | 
				
			||||||
 | 
					               (listen '("443 ssl http2" "[::]:443 ssl http2"))
 | 
				
			||||||
 | 
					               (locations
 | 
				
			||||||
 | 
					                 (list
 | 
				
			||||||
 | 
					                   ;; Allow for https anonymous fetch on /git/ urls.
 | 
				
			||||||
 | 
					                   (git-http-nginx-location-configuration
 | 
				
			||||||
 | 
					                     (git-http-configuration
 | 
				
			||||||
 | 
					                       (uri-path "/git/")
 | 
				
			||||||
 | 
					                       (git-root "/var/lib/gitolite/repositories")))))))))
 | 
				
			||||||
 | 
					@end lisp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In addition to the configuration record, you should configure your git
 | 
				
			||||||
 | 
					repositories to contain some optional information.  First, your public
 | 
				
			||||||
 | 
					repositories need to contain the @file{git-daemon-export-ok} magic file
 | 
				
			||||||
 | 
					that allows Git to export the repository.  Gitile uses the presence of this
 | 
				
			||||||
 | 
					file to detect public repositories it should make accessible.  To do so with
 | 
				
			||||||
 | 
					Gitolite for instance, modify your @file{conf/gitolite.conf} to include
 | 
				
			||||||
 | 
					this in the repositories you want to make public:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@example
 | 
				
			||||||
 | 
					repo foo
 | 
				
			||||||
 | 
					    R = daemon
 | 
				
			||||||
 | 
					@end example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In addition, Gitile can read the repository configuration to display more
 | 
				
			||||||
 | 
					infomation on the repository.  Gitile uses the gitweb namespace for its
 | 
				
			||||||
 | 
					configuration.  As an example, you can use the following in your
 | 
				
			||||||
 | 
					@file{conf/gitolite.conf}:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@example
 | 
				
			||||||
 | 
					repo foo
 | 
				
			||||||
 | 
					    R = daemon
 | 
				
			||||||
 | 
					    desc = A long description, optionally with <i>HTML</i>, shown on the index page
 | 
				
			||||||
 | 
					    config gitweb.name = The Foo Project
 | 
				
			||||||
 | 
					    config gitweb.synopsis = A short description, shown on the main page of the project
 | 
				
			||||||
 | 
					@end example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Do not forget to commit and push these changes once you are satisfied.  You
 | 
				
			||||||
 | 
					may need to change your gitolite configuration to allow the previous
 | 
				
			||||||
 | 
					configuration options to be set.  One way to do that is to add the
 | 
				
			||||||
 | 
					following service definition:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@lisp
 | 
				
			||||||
 | 
					(service gitolite-service-type
 | 
				
			||||||
 | 
					          (gitolite-configuration
 | 
				
			||||||
 | 
					            (admin-pubkey (local-file "key.pub"))
 | 
				
			||||||
 | 
					            (rc-file
 | 
				
			||||||
 | 
					              (gitolite-rc-file
 | 
				
			||||||
 | 
					                (umask #o0027)
 | 
				
			||||||
 | 
					                ;; Allow to set any configuration key
 | 
				
			||||||
 | 
					                (git-config-keys ".*")
 | 
				
			||||||
 | 
					                ;; Allow any text as a valid configuration value
 | 
				
			||||||
 | 
					                (unsafe-patt "^$")))))
 | 
				
			||||||
 | 
					@end lisp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@deftp {Data Type} gitile-configuration
 | 
				
			||||||
 | 
					Data type representing the configuration for @code{gitile-service-type}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@table @asis
 | 
				
			||||||
 | 
					@item @code{package} (default: @var{gitile})
 | 
				
			||||||
 | 
					Gitile package to use.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{host} (default: @code{"localhost"})
 | 
				
			||||||
 | 
					The host on which gitile is listening.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{port} (default: @code{8080})
 | 
				
			||||||
 | 
					The port on which gitile is listening.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{database} (default: @code{"/var/lib/gitile/gitile-db.sql"})
 | 
				
			||||||
 | 
					The location of the database.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{repositories} (default: @code{"/var/lib/gitolite/repositories"})
 | 
				
			||||||
 | 
					The location of the repositories.  Note that only public repositories will
 | 
				
			||||||
 | 
					be shown by Gitile.  To make a repository public, add an empty
 | 
				
			||||||
 | 
					@file{git-daemon-export-ok} file at the root of that repository.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{base-git-url}
 | 
				
			||||||
 | 
					The base git url that will be used to show clone commands.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{index-title} (default: @code{"Index"})
 | 
				
			||||||
 | 
					The page title for the index page that lists all the available repositories.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{intro} (default: @code{'()})
 | 
				
			||||||
 | 
					The intro content, as a list of sxml expressions.  This is shown above the list
 | 
				
			||||||
 | 
					of repositories, on the index page.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{footer} (default: @code{'()})
 | 
				
			||||||
 | 
					The footer content, as a list of sxml expressions.  This is shown on every
 | 
				
			||||||
 | 
					page served by Gitile.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{nginx-server-block}
 | 
				
			||||||
 | 
					An nginx server block that will be extended and used as a reverse proxy by
 | 
				
			||||||
 | 
					Gitile to serve its pages, and as a normal web server to serve its assets.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can use this block to add more custom URLs to your domain, such as a
 | 
				
			||||||
 | 
					@code{/git/} URL for anonymous clones, or serving any other files you would
 | 
				
			||||||
 | 
					like to serve.
 | 
				
			||||||
 | 
					@end table
 | 
				
			||||||
 | 
					@end deftp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@node Game Services
 | 
					@node Game Services
 | 
				
			||||||
@subsection Game Services
 | 
					@subsection Game Services
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -32598,20 +33070,47 @@ the store, we let the system administrator @emph{declare} which programs
 | 
				
			||||||
should be setuid root.
 | 
					should be setuid root.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The @code{setuid-programs} field of an @code{operating-system}
 | 
					The @code{setuid-programs} field of an @code{operating-system}
 | 
				
			||||||
declaration contains a list of G-expressions denoting the names of
 | 
					declaration contains a list of @code{<setuid-program>} denoting the
 | 
				
			||||||
programs to be setuid-root (@pxref{Using the Configuration System}).
 | 
					names of programs to have a setuid or setgid bit set (@pxref{Using the
 | 
				
			||||||
For instance, the @command{passwd} program, which is part of the Shadow
 | 
					Configuration System}).  For instance, the @command{passwd} program,
 | 
				
			||||||
package, can be designated by this G-expression (@pxref{G-Expressions}):
 | 
					which is part of the Shadow package, with a setuid root can be
 | 
				
			||||||
 | 
					designated like this:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@example
 | 
					@example
 | 
				
			||||||
#~(string-append #$shadow "/bin/passwd")
 | 
					(setuid-program
 | 
				
			||||||
 | 
					  (program (file-append #$shadow "/bin/passwd")))
 | 
				
			||||||
@end example
 | 
					@end example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@deftp {Data Type} setuid-program
 | 
				
			||||||
 | 
					This data type represents a program with a setuid or setgid bit set.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@table @asis
 | 
				
			||||||
 | 
					@item @code{program}
 | 
				
			||||||
 | 
					A file-like object having its setuid and/or setgid bit set.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{setuid?} (default: @code{#t})
 | 
				
			||||||
 | 
					Whether to set user setuid bit.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{setgid?} (default: @code{#f})
 | 
				
			||||||
 | 
					Whether to set group setgid bit.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{user} (default: @code{0})
 | 
				
			||||||
 | 
					UID (integer) or user name (string) for the user owner of the program,
 | 
				
			||||||
 | 
					defaults to root.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{group} (default: @code{0})
 | 
				
			||||||
 | 
					GID (integer) goup name (string) for the group owner of the program,
 | 
				
			||||||
 | 
					defaults to root.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@end table
 | 
				
			||||||
 | 
					@end deftp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
A default set of setuid programs is defined by the
 | 
					A default set of setuid programs is defined by the
 | 
				
			||||||
@code{%setuid-programs} variable of the @code{(gnu system)} module.
 | 
					@code{%setuid-programs} variable of the @code{(gnu system)} module.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@defvr {Scheme Variable} %setuid-programs
 | 
					@defvr {Scheme Variable} %setuid-programs
 | 
				
			||||||
A list of G-expressions denoting common programs that are setuid-root.
 | 
					A list of @code{<setuid-program>} denoting common programs that are
 | 
				
			||||||
 | 
					setuid-root.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The list includes commands such as @command{passwd}, @command{ping},
 | 
					The list includes commands such as @command{passwd}, @command{ping},
 | 
				
			||||||
@command{su}, and @command{sudo}.
 | 
					@command{su}, and @command{sudo}.
 | 
				
			||||||
| 
						 | 
					@ -33052,11 +33551,11 @@ in ``legacy'' BIOS mode.
 | 
				
			||||||
through TFTP@.  In combination with an NFS root file system this allows you to
 | 
					through TFTP@.  In combination with an NFS root file system this allows you to
 | 
				
			||||||
build a diskless Guix system.
 | 
					build a diskless Guix system.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The installation of the @code{grub-efi-netboot-bootloader} generates the content
 | 
					The installation of the @code{grub-efi-netboot-bootloader} generates the
 | 
				
			||||||
of the TFTP root directory at @code{target}
 | 
					content of the TFTP root directory at @code{targets} (@pxref{Bootloader
 | 
				
			||||||
(@pxref{Bootloader Configuration, @code{target}}), to be served by a TFTP server.
 | 
					Configuration, @code{targets}}), to be served by a TFTP server.  You may
 | 
				
			||||||
 You may want to mount your TFTP server directory onto @code{target} to move the
 | 
					want to mount your TFTP server directories onto the @code{targets} to
 | 
				
			||||||
required files to the TFTP server automatically.
 | 
					move the required files to the TFTP server automatically.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
If you plan to use an NFS root file system as well (actually if you mount the
 | 
					If you plan to use an NFS root file system as well (actually if you mount the
 | 
				
			||||||
store from an NFS share), then the TFTP server needs to serve the file
 | 
					store from an NFS share), then the TFTP server needs to serve the file
 | 
				
			||||||
| 
						 | 
					@ -33067,22 +33566,25 @@ files from the store will be accessed by GRUB through TFTP with their normal
 | 
				
			||||||
store path, for example as
 | 
					store path, for example as
 | 
				
			||||||
@file{tftp://tftp-server/gnu/store/…-initrd/initrd.cpio.gz}.
 | 
					@file{tftp://tftp-server/gnu/store/…-initrd/initrd.cpio.gz}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Two symlinks are created to make this possible.  The first symlink is
 | 
					Two symlinks are created to make this possible.  For each target in the
 | 
				
			||||||
@code{target}@file{/efi/Guix/boot/grub/grub.cfg} pointing to
 | 
					@code{targets} field, the first symlink is
 | 
				
			||||||
@file{../../../boot/grub/grub.cfg},
 | 
					@samp{target}@file{/efi/Guix/boot/grub/grub.cfg} pointing to
 | 
				
			||||||
where @code{target} may be @file{/boot}.  In this case the link is not leaving
 | 
					@file{../../../boot/grub/grub.cfg}, where @samp{target} may be
 | 
				
			||||||
the served TFTP root directory, but otherwise it does.  The second link is
 | 
					@file{/boot}.  In this case the link is not leaving the served TFTP root
 | 
				
			||||||
@code{target}@file{/gnu/store} and points to @file{../gnu/store}.  This link
 | 
					directory, but otherwise it does.  The second link is
 | 
				
			||||||
is leaving the served TFTP root directory.
 | 
					@samp{target}@file{/gnu/store} and points to @file{../gnu/store}.  This
 | 
				
			||||||
 | 
					link is leaving the served TFTP root directory.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The assumption behind all this is that you have an NFS server exporting the root
 | 
					The assumption behind all this is that you have an NFS server exporting
 | 
				
			||||||
file system for your Guix system, and additionally a TFTP server exporting your
 | 
					the root file system for your Guix system, and additionally a TFTP
 | 
				
			||||||
@code{target} directory—usually @file{/boot}—from that same root file system for
 | 
					server exporting your @code{targets} directories—usually a single
 | 
				
			||||||
your Guix system.  In this constellation the symlinks will work.
 | 
					@file{/boot}—from that same root file system for your Guix system.  In
 | 
				
			||||||
 | 
					this constellation the symlinks will work.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
For other constellations you will have to program your own bootloader installer,
 | 
					For other constellations you will have to program your own bootloader
 | 
				
			||||||
which then takes care to make necessary files from the store accessible through
 | 
					installer, which then takes care to make necessary files from the store
 | 
				
			||||||
TFTP, for example by copying them into the TFTP root directory at @code{target}.
 | 
					accessible through TFTP, for example by copying them into the TFTP root
 | 
				
			||||||
 | 
					directory to your @code{targets}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
It is important to note that symlinks pointing outside the TFTP root directory
 | 
					It is important to note that symlinks pointing outside the TFTP root directory
 | 
				
			||||||
may need to be allowed in the configuration of your TFTP server.  Further the
 | 
					may need to be allowed in the configuration of your TFTP server.  Further the
 | 
				
			||||||
| 
						 | 
					@ -33094,18 +33596,19 @@ NFS servers, you also need a properly configured DHCP server to make the booting
 | 
				
			||||||
over netboot possible.  For all this we can currently only recommend you to look
 | 
					over netboot possible.  For all this we can currently only recommend you to look
 | 
				
			||||||
for instructions about @acronym{PXE, Preboot eXecution Environment}.
 | 
					for instructions about @acronym{PXE, Preboot eXecution Environment}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item @code{target}
 | 
					@item @code{targets}
 | 
				
			||||||
This is a string denoting the target onto which to install the
 | 
					This is a list of strings denoting the targets onto which to install the
 | 
				
			||||||
bootloader.
 | 
					bootloader.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The interpretation depends on the bootloader in question.  For
 | 
					The interpretation of targets depends on the bootloader in question.
 | 
				
			||||||
@code{grub-bootloader}, for example, it should be a device name understood by
 | 
					For @code{grub-bootloader}, for example, they should be device names
 | 
				
			||||||
the bootloader @command{installer} command, such as @code{/dev/sda} or
 | 
					understood by the bootloader @command{installer} command, such as
 | 
				
			||||||
@code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU GRUB Manual}).  For
 | 
					@code{/dev/sda} or @code{(hd0)} (@pxref{Invoking grub-install,,, grub,
 | 
				
			||||||
@code{grub-efi-bootloader}, it should be the mount point of the EFI file
 | 
					GNU GRUB Manual}).  For @code{grub-efi-bootloader}, they should be mount
 | 
				
			||||||
system, usually @file{/boot/efi}.  For @code{grub-efi-netboot-bootloader},
 | 
					points of the EFI file system, usually @file{/boot/efi}.  For
 | 
				
			||||||
@code{target} should be the mount point corresponding to the TFTP root
 | 
					@code{grub-efi-netboot-bootloader}, @code{targets} should be the mount
 | 
				
			||||||
directory of your TFTP server.
 | 
					points corresponding to TFTP root directories served by your TFTP
 | 
				
			||||||
 | 
					server.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item @code{menu-entries} (default: @code{()})
 | 
					@item @code{menu-entries} (default: @code{()})
 | 
				
			||||||
A possibly empty list of @code{menu-entry} objects (see below), denoting
 | 
					A possibly empty list of @code{menu-entry} objects (see below), denoting
 | 
				
			||||||
| 
						 | 
					@ -33521,7 +34024,7 @@ files, packages, and so on.  It also creates other essential files
 | 
				
			||||||
needed for the system to operate correctly---e.g., the @file{/etc},
 | 
					needed for the system to operate correctly---e.g., the @file{/etc},
 | 
				
			||||||
@file{/var}, and @file{/run} directories, and the @file{/bin/sh} file.
 | 
					@file{/var}, and @file{/run} directories, and the @file{/bin/sh} file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This command also installs bootloader on the target specified in
 | 
					This command also installs bootloader on the targets specified in
 | 
				
			||||||
@file{my-os-config}, unless the @option{--no-bootloader} option was
 | 
					@file{my-os-config}, unless the @option{--no-bootloader} option was
 | 
				
			||||||
passed.
 | 
					passed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33917,7 +34420,7 @@ evaluates to.  As an example, @var{file} might contain a definition like this:
 | 
				
			||||||
   (timezone "Etc/UTC")
 | 
					   (timezone "Etc/UTC")
 | 
				
			||||||
   (bootloader (bootloader-configuration
 | 
					   (bootloader (bootloader-configuration
 | 
				
			||||||
                (bootloader grub-bootloader)
 | 
					                (bootloader grub-bootloader)
 | 
				
			||||||
                (target "/dev/vda")
 | 
					                (targets '("/dev/vda"))
 | 
				
			||||||
                (terminal-outputs '(console))))
 | 
					                (terminal-outputs '(console))))
 | 
				
			||||||
   (file-systems (cons (file-system
 | 
					   (file-systems (cons (file-system
 | 
				
			||||||
                        (mount-point "/")
 | 
					                        (mount-point "/")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,7 +23,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# If adding a language, update the following variables, and info_TEXINFOS.
 | 
					# If adding a language, update the following variables, and info_TEXINFOS.
 | 
				
			||||||
MANUAL_LANGUAGES = de es fa fr it ko pt_BR ru sk zh_CN
 | 
					MANUAL_LANGUAGES = de es fa fr it ko pt_BR ru sk zh_CN
 | 
				
			||||||
COOKBOOK_LANGUAGES = de fa fr ko zh_Hans
 | 
					COOKBOOK_LANGUAGES = de fa fr ko ru sk zh_Hans
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Arg1: A list of languages codes.
 | 
					# Arg1: A list of languages codes.
 | 
				
			||||||
# Arg2: The file name stem.
 | 
					# Arg2: The file name stem.
 | 
				
			||||||
| 
						 | 
					@ -47,6 +47,8 @@ info_TEXINFOS = %D%/guix.texi			\
 | 
				
			||||||
  %D%/guix-cookbook.fa.texi			\
 | 
					  %D%/guix-cookbook.fa.texi			\
 | 
				
			||||||
  %D%/guix-cookbook.fr.texi			\
 | 
					  %D%/guix-cookbook.fr.texi			\
 | 
				
			||||||
  %D%/guix-cookbook.ko.texi			\
 | 
					  %D%/guix-cookbook.ko.texi			\
 | 
				
			||||||
 | 
					  %D%/guix-cookbook.ru.texi			\
 | 
				
			||||||
 | 
					  %D%/guix-cookbook.sk.texi			\
 | 
				
			||||||
  %D%/guix-cookbook.zh_Hans.texi
 | 
					  %D%/guix-cookbook.zh_Hans.texi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
%C%_guix_TEXINFOS = \
 | 
					%C%_guix_TEXINFOS = \
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,6 +4,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
 | 
					;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -36,7 +37,9 @@
 | 
				
			||||||
        (ice-9 popen)
 | 
					        (ice-9 popen)
 | 
				
			||||||
        (ice-9 match)
 | 
					        (ice-9 match)
 | 
				
			||||||
        (ice-9 rdelim)
 | 
					        (ice-9 rdelim)
 | 
				
			||||||
        (ice-9 textual-ports))
 | 
					        (ice-9 regex)
 | 
				
			||||||
 | 
					        (ice-9 textual-ports)
 | 
				
			||||||
 | 
					        (guix gexp))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define* (break-string str #:optional (max-line-length 70))
 | 
					(define* (break-string str #:optional (max-line-length 70))
 | 
				
			||||||
  "Break the string STR into lines that are no longer than MAX-LINE-LENGTH.
 | 
					  "Break the string STR into lines that are no longer than MAX-LINE-LENGTH.
 | 
				
			||||||
| 
						 | 
					@ -65,6 +68,13 @@ Return a single string."
 | 
				
			||||||
           (string-join (reverse (cons (restore-line last-words) lines))
 | 
					           (string-join (reverse (cons (restore-line last-words) lines))
 | 
				
			||||||
                        "\n"))))))
 | 
					                        "\n"))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define* (break-string-with-newlines str #:optional (max-line-length 70))
 | 
				
			||||||
 | 
					  "Break the lines of string STR into lines that are no longer than
 | 
				
			||||||
 | 
					MAX-LINE-LENGTH. Return a single string."
 | 
				
			||||||
 | 
					  (string-join (map (cut break-string <> max-line-length)
 | 
				
			||||||
 | 
					                    (string-split str #\newline))
 | 
				
			||||||
 | 
					               "\n"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (read-excursion port)
 | 
					(define (read-excursion port)
 | 
				
			||||||
  "Read an expression from PORT and reset the port position before returning
 | 
					  "Read an expression from PORT and reset the port position before returning
 | 
				
			||||||
the expression."
 | 
					the expression."
 | 
				
			||||||
| 
						 | 
					@ -252,6 +262,32 @@ corresponding to the top-level definition containing the staged changes."
 | 
				
			||||||
          "gnu: Add ~a.~%~%* ~a (~a): New variable.~%"
 | 
					          "gnu: Add ~a.~%~%* ~a (~a): New variable.~%"
 | 
				
			||||||
          variable-name file-name variable-name))
 | 
					          variable-name file-name variable-name))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define* (custom-commit-message file-name variable-name message changelog
 | 
				
			||||||
 | 
					                                #:optional (port (current-output-port)))
 | 
				
			||||||
 | 
					  "Print custom commit message for a change to VARIABLE-NAME in FILE-NAME, using
 | 
				
			||||||
 | 
					MESSAGE as the commit message and CHANGELOG as the body of the ChangeLog
 | 
				
			||||||
 | 
					entry. If CHANGELOG is #f, the commit message is reused. If CHANGELOG already
 | 
				
			||||||
 | 
					contains ': ', no colon is inserted between the location and body of the
 | 
				
			||||||
 | 
					ChangeLog entry."
 | 
				
			||||||
 | 
					  (define (trim msg)
 | 
				
			||||||
 | 
					    (string-trim-right (string-trim-both msg) (char-set #\.)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (define (changelog-has-location? changelog)
 | 
				
			||||||
 | 
					    (->bool (string-match "^[[:graph:]]+:[[:blank:]]" changelog)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (let* ((message (trim message))
 | 
				
			||||||
 | 
					         (changelog (if changelog (trim changelog) message))
 | 
				
			||||||
 | 
					         (message/f (format #f "gnu: ~a: ~a." variable-name message))
 | 
				
			||||||
 | 
					         (changelog/f (if (changelog-has-location? changelog)
 | 
				
			||||||
 | 
					                          (format #f "* ~a (~a)~a."
 | 
				
			||||||
 | 
					                                  file-name variable-name changelog)
 | 
				
			||||||
 | 
					                          (format #f "* ~a (~a): ~a."
 | 
				
			||||||
 | 
					                                  file-name variable-name changelog))))
 | 
				
			||||||
 | 
					    (format port
 | 
				
			||||||
 | 
					            "~a~%~%~a~%"
 | 
				
			||||||
 | 
					            (break-string-with-newlines message/f 72)
 | 
				
			||||||
 | 
					            (break-string-with-newlines changelog/f 72))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (group-hunks-by-sexp hunks)
 | 
					(define (group-hunks-by-sexp hunks)
 | 
				
			||||||
  "Return a list of pairs associating all hunks with the S-expression they are
 | 
					  "Return a list of pairs associating all hunks with the S-expression they are
 | 
				
			||||||
modifying."
 | 
					modifying."
 | 
				
			||||||
| 
						 | 
					@ -280,6 +316,15 @@ modifying."
 | 
				
			||||||
(define %delay 1000)
 | 
					(define %delay 1000)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (main . args)
 | 
					(define (main . args)
 | 
				
			||||||
 | 
					  (define* (change-commit-message* file-name old new #:rest rest)
 | 
				
			||||||
 | 
					    (let ((changelog #f))
 | 
				
			||||||
 | 
					      (match args
 | 
				
			||||||
 | 
					        ((or (message changelog) (message))
 | 
				
			||||||
 | 
					         (apply custom-commit-message
 | 
				
			||||||
 | 
					                file-name (second old) message changelog rest))
 | 
				
			||||||
 | 
					        (_
 | 
				
			||||||
 | 
					         (apply change-commit-message file-name old new rest)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  (match (diff-info)
 | 
					  (match (diff-info)
 | 
				
			||||||
    (()
 | 
					    (()
 | 
				
			||||||
     (display "Nothing to be done.\n" (current-error-port)))
 | 
					     (display "Nothing to be done.\n" (current-error-port)))
 | 
				
			||||||
| 
						 | 
					@ -325,11 +370,10 @@ modifying."
 | 
				
			||||||
                                    (error "Cannot apply")))
 | 
					                                    (error "Cannot apply")))
 | 
				
			||||||
                                (usleep %delay))
 | 
					                                (usleep %delay))
 | 
				
			||||||
                              hunks)
 | 
					                              hunks)
 | 
				
			||||||
                    (change-commit-message (hunk-file-name (first hunks))
 | 
					                    (change-commit-message* (hunk-file-name (first hunks))
 | 
				
			||||||
                                           old new
 | 
					                                            old new)
 | 
				
			||||||
                                           (current-output-port))
 | 
					 | 
				
			||||||
                    (let ((port (open-pipe* OPEN_WRITE "git" "commit" "-F" "-")))
 | 
					                    (let ((port (open-pipe* OPEN_WRITE "git" "commit" "-F" "-")))
 | 
				
			||||||
                      (change-commit-message (hunk-file-name (first hunks))
 | 
					                      (change-commit-message* (hunk-file-name (first hunks))
 | 
				
			||||||
                                              old new
 | 
					                                              old new
 | 
				
			||||||
                                              port)
 | 
					                                              port)
 | 
				
			||||||
                      (usleep %delay)
 | 
					                      (usleep %delay)
 | 
				
			||||||
| 
						 | 
					@ -339,4 +383,4 @@ modifying."
 | 
				
			||||||
                 ;; insertions lead to offsets.
 | 
					                 ;; insertions lead to offsets.
 | 
				
			||||||
                 (new+old+hunks (diff-info)))))))
 | 
					                 (new+old+hunks (diff-info)))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(main)
 | 
					(apply main (cdr (command-line)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,6 +2,8 @@
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# GNU Guix --- Functional package management for GNU
 | 
					# GNU Guix --- Functional package management for GNU
 | 
				
			||||||
# Copyright © 2016 Eric Le Bihan <eric.le.bihan.dev@free.fr>
 | 
					# Copyright © 2016 Eric Le Bihan <eric.le.bihan.dev@free.fr>
 | 
				
			||||||
 | 
					# Copyright © 2021 Noah Evans <noah@nevans.me>
 | 
				
			||||||
 | 
					# Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# This file is part of GNU Guix.
 | 
					# This file is part of GNU Guix.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -68,21 +70,24 @@ _guix_list_installed_packages()
 | 
				
			||||||
(( $+functions[_guix_build] )) || _guix_build()
 | 
					(( $+functions[_guix_build] )) || _guix_build()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    _arguments \
 | 
					    _arguments \
 | 
				
			||||||
        '--expression=[build the package matching EXPR]:EXPR' \
 | 
					        {-e,--expression=}'[build the package or derivation EXPR evaluates to]:EXPR' \
 | 
				
			||||||
        '--file=[build the package matching code evaluated from FILE]:FILE:_files' \
 | 
					        {-f,--file=}'[build the package or derivation that the code within FILE evaluates to]:FILE:_files' \
 | 
				
			||||||
        '--source[build the packages source derivations]' \
 | 
					        {-m,--manifest=}'[build the packages that the manifest given in FILE evaluates to]:FILE:_files' \
 | 
				
			||||||
        '--sources=[build source derivations]:TYPE:(all package transitive)' \
 | 
					        {-S,--source}'[build the packages source derivations]' \
 | 
				
			||||||
        '--system=[attempt to build for SYSTEM (e.g. "i686-linux")]:SYSTEM' \
 | 
					        '--sources=[build source derivations]:TYPE:(package all transitive)' \
 | 
				
			||||||
 | 
					        {-s,--system=}'[attempt to build for SYSTEM (e.g. "i686-linux")]:SYSTEM' \
 | 
				
			||||||
        '--target=[cross-build for TRIPLET (e.g. "armel-linux-gnu")]:TRIPLET' \
 | 
					        '--target=[cross-build for TRIPLET (e.g. "armel-linux-gnu")]:TRIPLET' \
 | 
				
			||||||
        '--derivations[return the derivation paths of the given packages]' \
 | 
					        {-d,--derivations}'[return the derivation paths of the given packages]' \
 | 
				
			||||||
        '--check[rebuild items to check for non-determinism issues]' \
 | 
					        '--check[rebuild items to check for non-determinism issues]' \
 | 
				
			||||||
        '--root=[symlink result to FILE and register it as GC root]:FILE:_files' \
 | 
					        '--repair[repair the specified items]' \
 | 
				
			||||||
        '--quiet[do not show the build log]' \
 | 
					        {-r,--root=}'[make FILE a symlink to the result, and register it as a GC root]:FILE:_files' \
 | 
				
			||||||
 | 
					        {-v,--verbosity=}'[use the given verbosity LEVEL]:LEVEL' \
 | 
				
			||||||
 | 
					        {-q,--quiet}'[do not show the build log]' \
 | 
				
			||||||
        '--log-file[return the log file names for the given derivations]' \
 | 
					        '--log-file[return the log file names for the given derivations]' \
 | 
				
			||||||
        '--load-path=[prepend DIR to the package module search path]:DIR:_dirs' \
 | 
					        {-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -\' \
 | 
				
			||||||
        '--keep-failed[keep build tree of failed builds]' \
 | 
					        {-K,--keep-failed}'[keep build tree of failed builds]' \
 | 
				
			||||||
        '--keep-going[keep going when some of the derivations fail]' \
 | 
					        {-k,--keep-going}'[keep going when some of the derivations fail]' \
 | 
				
			||||||
        '--dry-run[do not build the derivations]' \
 | 
					        {-n,--dry-run}'[do not build the derivations]' \
 | 
				
			||||||
        '--fallback[fall back to building when the substituter fails]' \
 | 
					        '--fallback[fall back to building when the substituter fails]' \
 | 
				
			||||||
        '--no-substitutes[build instead of resorting to pre-built substitutes]' \
 | 
					        '--no-substitutes[build instead of resorting to pre-built substitutes]' \
 | 
				
			||||||
        '--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
 | 
					        '--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
 | 
				
			||||||
| 
						 | 
					@ -90,12 +95,12 @@ _guix_list_installed_packages()
 | 
				
			||||||
        '--no-offload[do not attempt to offload builds]' \
 | 
					        '--no-offload[do not attempt to offload builds]' \
 | 
				
			||||||
        '--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
 | 
					        '--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
 | 
				
			||||||
        '--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
 | 
					        '--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
 | 
				
			||||||
        '--verbosity=[use the given verbosity LEVEL]:LEVEL' \
 | 
					 | 
				
			||||||
        '--rounds=[build N times in a row to detect non-determinism]:N' \
 | 
					        '--rounds=[build N times in a row to detect non-determinism]:N' \
 | 
				
			||||||
        '--cores=[allow the use of up to N CPU cores for the build]:N' \
 | 
					        {-c,--cores=}'[allow the use of up to N CPU cores for the build]:N' \
 | 
				
			||||||
        '--max-jobs=[allow at most N build jobs]:N' \
 | 
					        {-M,--max-jobs=}'[allow at most N build jobs]:N' \
 | 
				
			||||||
        '--with-source=[use SOURCE when building the corresponding package]:SOURCE' \
 | 
					        '--debug=[produce debugging output at LEVEL]:LEVEL' \
 | 
				
			||||||
        '--with-input=[replace dependency PACKAGE by REPLACEMENT]:PACKAGE=REPLACEMENT' \
 | 
					        '--help-transform[list package transformation options not shown here]' \
 | 
				
			||||||
 | 
					        {-V,--version}'[display version information and exit]' \
 | 
				
			||||||
        '*:package:->packages'
 | 
					        '*:package:->packages'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if [[ "$state" = packages ]]; then
 | 
					    if [[ "$state" = packages ]]; then
 | 
				
			||||||
| 
						 | 
					@ -107,7 +112,10 @@ _guix_list_installed_packages()
 | 
				
			||||||
(( $+functions[_guix_challenge] )) || _guix_challenge()
 | 
					(( $+functions[_guix_challenge] )) || _guix_challenge()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    _arguments \
 | 
					    _arguments \
 | 
				
			||||||
        '--substitute-urls=[fetch substitute from URLS if they are authorized]:URL:_urls' \
 | 
					        '--substitute-urls=[compare build results with those at URLS]:URLS:_urls' \
 | 
				
			||||||
 | 
					        '--diff=[show differences according to MODE]:MODE' \
 | 
				
			||||||
 | 
					        {-v,--verbose}'[show details about successful comparisons]' \
 | 
				
			||||||
 | 
					        {-V,--version}'[display version information and exit]' \
 | 
				
			||||||
        '*:package:->packages'
 | 
					        '*:package:->packages'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if [[ "$state" = packages ]]; then
 | 
					    if [[ "$state" = packages ]]; then
 | 
				
			||||||
| 
						 | 
					@ -126,7 +134,11 @@ _guix_list_installed_packages()
 | 
				
			||||||
(( $+functions[_guix_download] )) || _guix_download()
 | 
					(( $+functions[_guix_download] )) || _guix_download()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    _arguments \
 | 
					    _arguments \
 | 
				
			||||||
        '--format=[write the hash in the given format]:FMT:(nix-base32 base16 base32 hex)' \
 | 
					        {-f,--format=}'[write the hash in the given format]:FMT:(nix-base32 base16 base32 hex)' \
 | 
				
			||||||
 | 
					        {-H,--hash=}'[use the given hash ALGORITHM]:ALGORITHM' \
 | 
				
			||||||
 | 
					        '--no-check-certificate[do not validate the certificate of HTTPS servers ]' \
 | 
				
			||||||
 | 
					        {-o,--output=}'[download to FILE]:FILE:_files' \
 | 
				
			||||||
 | 
					        {-V,--version}'[display version information and exit]' \
 | 
				
			||||||
        '1:URL:_urls'
 | 
					        '1:URL:_urls'
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -139,21 +151,29 @@ _guix_list_installed_packages()
 | 
				
			||||||
(( $+functions[_guix_environment] )) || _guix_environment()
 | 
					(( $+functions[_guix_environment] )) || _guix_environment()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    _arguments \
 | 
					    _arguments \
 | 
				
			||||||
        '--expression=[create environment for the package evaluated from EXPR]:EXPR' \
 | 
					        {-e,--expression=}'[create environment for the package that EXPR evaluates to]:EXPR' \
 | 
				
			||||||
        '--load=[create environment for the package evaluated from FILE]:FILE:_files' \
 | 
					        {-l,--load=}'[create environment for the package that the code within FILE evaluates to]:FILE:_files' \
 | 
				
			||||||
        '--ad-hoc[include all specified packages, not only their inputs]' \
 | 
					        {-m,--manifest=}'[create environment with the manifest from FILE]:FILE:_files' \
 | 
				
			||||||
 | 
					        {-p,--profile=}'[create environment from profile at PATH]:PATH:_files -/' \
 | 
				
			||||||
 | 
					        '--ad-hoc[include all specified packages in the environment instead of only their inputs]' \
 | 
				
			||||||
        '--pure[unset existing environment variables]' \
 | 
					        '--pure[unset existing environment variables]' \
 | 
				
			||||||
 | 
					        {-E,--preserve=}'[preserve environment variables that match REGEXP]:REGEXP' \
 | 
				
			||||||
        '--search-paths[display needed environment variable definitions]' \
 | 
					        '--search-paths[display needed environment variable definitions]' \
 | 
				
			||||||
        '--system=[attempt to build for SYSTEM (e.g. "i686-linux")]:SYSTEM' \
 | 
					        {-s,--system=}'[attempt to build for SYSTEM (e.g. "i686-linux")]:SYSTEM' \
 | 
				
			||||||
        '--container[run command within an isolated container]' \
 | 
					        {-r,--root=}'[make FILE a symlink to the result, and register it as a GC root]:FILE:_files' \
 | 
				
			||||||
        '--network[allow containers to access the network]' \
 | 
					        {-C,--container}'[run command within an isolated container]' \
 | 
				
			||||||
        '--share=[share writable host file system according to SPEC]:SPEC' \
 | 
					        {-N,--network}'[allow containers to access the network]' \
 | 
				
			||||||
        '--expose=[expose read-only host file system according to SPEC]:SPEC' \
 | 
					        {-P,--link-profile}'[link environment profile to ~/.guix-profile within an isolated container]' \
 | 
				
			||||||
 | 
					        {-u,--user=}'[instead of copying the name and home of the current user into an isolated container, use the name USER with home directory /home/USER]:USER:_users' \
 | 
				
			||||||
 | 
					        '--no-cwd[do not share current working directory with an isolated container]' \
 | 
				
			||||||
 | 
					        '--share=[for containers, share writable host file system according to SPEC]:SPEC' \
 | 
				
			||||||
 | 
					        '--expose=[for containers, expose read-only host file system according to SPEC]:SPEC' \
 | 
				
			||||||
 | 
					        {-v,--verbosity=}'[use the given verbosity LEVEL]:LEVEL' \
 | 
				
			||||||
        '--bootstrap[use bootstrap binaries to build the environment]' \
 | 
					        '--bootstrap[use bootstrap binaries to build the environment]' \
 | 
				
			||||||
        '--load-path=[prepend DIR to the package module search path]:DIR:_dirs' \
 | 
					        {-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -/' \
 | 
				
			||||||
        '--keep-failed[keep build tree of failed builds]' \
 | 
					        {-K,--keep-failed}'[keep build tree of failed builds]' \
 | 
				
			||||||
        '--keep-going[keep going when some of the derivations fail]' \
 | 
					        {-k,--keep-going}'[keep going when some of the derivations fail]' \
 | 
				
			||||||
        '--dry-run[do not build the derivations]' \
 | 
					        {-n,--dry-run}'[do not build the derivations]' \
 | 
				
			||||||
        '--fallback[fall back to building when the substituter fails]' \
 | 
					        '--fallback[fall back to building when the substituter fails]' \
 | 
				
			||||||
        '--no-substitutes[build instead of resorting to pre-built substitutes]' \
 | 
					        '--no-substitutes[build instead of resorting to pre-built substitutes]' \
 | 
				
			||||||
        '--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
 | 
					        '--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
 | 
				
			||||||
| 
						 | 
					@ -161,10 +181,12 @@ _guix_list_installed_packages()
 | 
				
			||||||
        '--no-offload[do not attempt to offload builds]' \
 | 
					        '--no-offload[do not attempt to offload builds]' \
 | 
				
			||||||
        '--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
 | 
					        '--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
 | 
				
			||||||
        '--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
 | 
					        '--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
 | 
				
			||||||
        '--verbosity=[use the given verbosity LEVEL]:LEVEL' \
 | 
					 | 
				
			||||||
        '--rounds=[build N times in a row to detect non-determinism]:N' \
 | 
					        '--rounds=[build N times in a row to detect non-determinism]:N' \
 | 
				
			||||||
        '--cores=[allow the use of up to N CPU cores for the build]:N' \
 | 
					        {-c,--cores=}'[allow the use of up to N CPU cores for the build]:N' \
 | 
				
			||||||
        '--max-jobs=[allow at most N build jobs]:N' \
 | 
					        {-M,--max-jobs=}'[allow at most N build jobs]:N' \
 | 
				
			||||||
 | 
					        '--debug=[produce debugging output at LEVEL]:LEVEL' \
 | 
				
			||||||
 | 
					        '--help-transform[list package transformation options not shown here]' \
 | 
				
			||||||
 | 
					        {-V,--version}'[display version information and exit]' \
 | 
				
			||||||
        '*:package:->packages'
 | 
					        '*:package:->packages'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if [[ "$state" = packages ]]; then
 | 
					    if [[ "$state" = packages ]]; then
 | 
				
			||||||
| 
						 | 
					@ -177,27 +199,39 @@ _guix_list_installed_packages()
 | 
				
			||||||
(( $+functions[_guix_gc] )) || _guix_gc()
 | 
					(( $+functions[_guix_gc] )) || _guix_gc()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    _arguments \
 | 
					    _arguments \
 | 
				
			||||||
        '--collect-garbage=[collect at least MIN bytes of garbage]:MIN' \
 | 
					        {-C,--collect-garbage=}'[collect at least MIN bytes of garbage]:MIN' \
 | 
				
			||||||
        '--free-space=[attempt to reach FREE available space in the store]:FREE' \
 | 
					        {-F,--free-space=}'[attempt to reach FREE available space in the store]:FREE' \
 | 
				
			||||||
        '--delete[attempt to delete PATHS]' \
 | 
					        {-d,--delete-generations=}'[delete profile generations matching PATTERN]:PATTERN' \
 | 
				
			||||||
 | 
					        {-D,--delete}'[attempt to delete PATHS]' \
 | 
				
			||||||
 | 
					        '--list-roots[list the users GC roots]' \
 | 
				
			||||||
 | 
					        '--list-busy[list store items used by running processes]' \
 | 
				
			||||||
        '--optimize[optimize the store by deduplicating identical files]' \
 | 
					        '--optimize[optimize the store by deduplicating identical files]' \
 | 
				
			||||||
        '--list-dead[list dead paths]' \
 | 
					        '--list-dead[list dead paths]' \
 | 
				
			||||||
        '--list-live[list live paths]' \
 | 
					        '--list-live[list live paths]' \
 | 
				
			||||||
        '--references[list the references of PATHS]' \
 | 
					        '--references[list the references of PATHS]' \
 | 
				
			||||||
        '--requisites[list the requisites of PATHS]' \
 | 
					        {-R,--requisites}'[list the requisites of PATHS]' \
 | 
				
			||||||
        '--referrers[list the referrers of PATHS]' \
 | 
					        '--referrers[list the referrers of PATHS]' \
 | 
				
			||||||
 | 
					        '--derivers[list the derivers of PATHS]' \
 | 
				
			||||||
        '--verify=[verify the integrity of the store]:OPTS:(contents repair)' \
 | 
					        '--verify=[verify the integrity of the store]:OPTS:(contents repair)' \
 | 
				
			||||||
        '--list-failures[list cached build failures]' \
 | 
					        '--list-failures[list cached build failures]' \
 | 
				
			||||||
        '--clear-failures[remove PATHS from the set of cached failures]' \
 | 
					        '--clear-failures[remove PATHS from the set of cached failures]' \
 | 
				
			||||||
        '1:PATH:_dirs'
 | 
					        {-V,--version}'[display version information and exit]:V' \
 | 
				
			||||||
 | 
					        '1:PATH:_files -/'
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(( $+functions[_guix_graph] )) || _guix_graph()
 | 
					(( $+functions[_guix_graph] )) || _guix_graph()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    _arguments \
 | 
					    _arguments \
 | 
				
			||||||
        '--type=[represent nodes of the given TYPE]:TYPE:->types' \
 | 
					        {-b,--backend=}'[produce a graph with the given backend TYPE]:TYPE:->types' \
 | 
				
			||||||
 | 
					        '--list-backends[list the available graph backends]' \
 | 
				
			||||||
 | 
					        {-t,--type=}'[represent nodes of the given TYPE]:TYPE:->types' \
 | 
				
			||||||
        '--list-types[list the available graph types]' \
 | 
					        '--list-types[list the available graph types]' \
 | 
				
			||||||
        '--expression=[consider the package EXPR evaluates to]:EXPR' \
 | 
					        '--path[display the shortest path between the given nodes]' \
 | 
				
			||||||
 | 
					        {-e,--expression=}'[consider the package EXPR evaluates to]:EXPR' \
 | 
				
			||||||
 | 
					        {-s,--system=}'[consider the graph for SYSTEM (e.g. "i686-linux")]:SYSTEM' \
 | 
				
			||||||
 | 
					        {-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -/' \
 | 
				
			||||||
 | 
					        '--help-transform[list package transformation options not shown here]' \
 | 
				
			||||||
 | 
					        {-V,--version}'[display version information and exit]' \
 | 
				
			||||||
        '1:PACKAGE:->packages'
 | 
					        '1:PACKAGE:->packages'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    case "$state" in
 | 
					    case "$state" in
 | 
				
			||||||
| 
						 | 
					@ -216,14 +250,18 @@ _guix_list_installed_packages()
 | 
				
			||||||
(( $+functions[_guix_hash] )) || _guix_hash()
 | 
					(( $+functions[_guix_hash] )) || _guix_hash()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    _arguments \
 | 
					    _arguments \
 | 
				
			||||||
        '--format=[write the hash in the given format]:FMT:(nix-base32 base16 base32 hex)' \
 | 
					        {-x,--exclude-vcs}'[exclude version control directories]' \
 | 
				
			||||||
        '--recursive[compute the hash on FILE recursively]'\
 | 
					        {-H,--hash=}'[use the given hash ALGORITHM]:ALGORITHM' \
 | 
				
			||||||
 | 
					        {-f,--format=}'[write the hash in the given format]:FMT:(nix-base32 base16 base32 hex)' \
 | 
				
			||||||
 | 
					        {-r,--recursive}'[compute the hash on FILE recursively]' \
 | 
				
			||||||
 | 
					        {-V,--version}'[display version information and exit]' \
 | 
				
			||||||
        '1:FILE:_files'
 | 
					        '1:FILE:_files'
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(( $+functions[_guix_import] )) || _guix_import()
 | 
					(( $+functions[_guix_import] )) || _guix_import()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    _arguments \
 | 
					    _arguments \
 | 
				
			||||||
 | 
					        {-V,--version}'[display version information and exit]' \
 | 
				
			||||||
        '1:IMPORTER:->importer' \
 | 
					        '1:IMPORTER:->importer' \
 | 
				
			||||||
        '*:args:'
 | 
					        '*:args:'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -236,8 +274,12 @@ _guix_list_installed_packages()
 | 
				
			||||||
(( $+functions[_guix_lint] )) || _guix_lint()
 | 
					(( $+functions[_guix_lint] )) || _guix_lint()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    _arguments \
 | 
					    _arguments \
 | 
				
			||||||
        '--checkers=[only run the specified checkers]:CHECKERS:->checkers' \
 | 
					        {-c,--checkers=}'[only run the specified checkers]:CHECKERS:->checkers' \
 | 
				
			||||||
        '--list-checkers[display the list of available lint checkers]' \
 | 
					        {-x,--exclude=}'[exclude the specified checkers]:CHECKERSS:->checkers' \
 | 
				
			||||||
 | 
					        {-n,--no-network}'[only run checkers that do not access the network]' \
 | 
				
			||||||
 | 
					        {-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -/' \
 | 
				
			||||||
 | 
					        {-l,--list-checkers}'[display the list of available lint checkers]' \
 | 
				
			||||||
 | 
					        {-V,--version}'[display version information and exit]' \
 | 
				
			||||||
        '1:PACKAGE:->packages'
 | 
					        '1:PACKAGE:->packages'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    case "$state" in
 | 
					    case "$state" in
 | 
				
			||||||
| 
						 | 
					@ -255,29 +297,32 @@ _guix_list_installed_packages()
 | 
				
			||||||
(( $+functions[_guix_package] )) || _guix_package()
 | 
					(( $+functions[_guix_package] )) || _guix_package()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    _arguments \
 | 
					    _arguments \
 | 
				
			||||||
        '--install[install one or more packages]: :->install' \
 | 
					        {-i,--install}'[install one or more packages]: :->install' \
 | 
				
			||||||
        '--install-from-expression=[install the package EXP evaluates to]:EXP' \
 | 
					        {-e,--install-from-expression=}'[install the package EXP evaluates to]:EXP' \
 | 
				
			||||||
        '--install-from-file=[install the package evaluated from FILE]:FILE:_files' \
 | 
					        {-f,--install-from-file=}'[install the package evaluated from FILE]:FILE:_files' \
 | 
				
			||||||
        '--remove[remove one or more packages]: :->remove' \
 | 
					        {-r,--remove}'[remove one or more packages]: :->remove' \
 | 
				
			||||||
        '--upgrade=[upgrade all the installed packages matching REGEXP]:REGEXP' \
 | 
					        {-u,--upgrade=}'[upgrade all the installed packages matching REGEXP]:REGEXP' \
 | 
				
			||||||
        '--manifest=[create a new profile generation from FILE]:FILE:_files' \
 | 
					        {-m,--manifest=}'[create a new profile generation from FILE]:FILE:_files' \
 | 
				
			||||||
        '--do-not-upgrade=[do not upgrade any packages matching REGEXP]:REGEXP' \
 | 
					        '--do-not-upgrade=[do not upgrade any packages matching REGEXP]:REGEXP' \
 | 
				
			||||||
        '--roll-back[roll back to the previous generation]' \
 | 
					        '--roll-back[roll back to the previous generation]' \
 | 
				
			||||||
        '--search-paths=[display needed environment variable definitions]:KINDS' \
 | 
					        '--search-paths=[display needed environment variable definitions]:KINDS' \
 | 
				
			||||||
        '--list-generations=[list generations matching PATTERN]:PATTERN' \
 | 
					        {-l,--list-generations=}'[list generations matching PATTERN]:PATTERN' \
 | 
				
			||||||
        '--delete-generations=[delete generations matching PATTERN]:PATTERN' \
 | 
					        {-d,--delete-generations=}'[delete generations matching PATTERN]:PATTERN' \
 | 
				
			||||||
        '--switch-generation=[switch to a generation matching PATTERN]:PATTERN' \
 | 
					        {-S,--switch-generation=}'[switch to a generation matching PATTERN]:PATTERN' \
 | 
				
			||||||
        '--profile=[use PROFILE instead of the default profile]:PROFILE' \
 | 
					        '--export-manifest[print a manifest for the chosen profile]' \
 | 
				
			||||||
 | 
					        '--export-channels[print channels for the chosen profile]' \
 | 
				
			||||||
 | 
					        {-p,--profile}'[use PROFILE instead of the default profile]:PROFILE:_files -/' \
 | 
				
			||||||
 | 
					        '--list-profiles[list the profiles]' \
 | 
				
			||||||
 | 
					        '--allow-collisions[do not treat collisions in the profile as an error]' \
 | 
				
			||||||
        '--bootstrap[use the bootstrap Guile to build the profile]' \
 | 
					        '--bootstrap[use the bootstrap Guile to build the profile]' \
 | 
				
			||||||
        '--verbose[produce verbose output]' \
 | 
					        {-s,--search=}'[search in synopsis and description using REGEXP]:REGEXP' \
 | 
				
			||||||
        '--search=[search in synopsis and description using REGEXP]:REGEXP' \
 | 
					        {-I,--list-installed=}'[list installed packages matching REGEXP]:REGEXP' \
 | 
				
			||||||
        '--list-installed=[list installed packages matching REGEXP]:REGEXP' \
 | 
					        {-A,--list-available=}'[list available packages matching REGEXP]:REGEXP' \
 | 
				
			||||||
        '--list-available=[list available packages matching REGEXP]:REGEXP' \
 | 
					 | 
				
			||||||
        '--show=[show details about a package]: :->show' \
 | 
					        '--show=[show details about a package]: :->show' \
 | 
				
			||||||
        '--load-path=[prepend DIR to the package module search path]:DIR:_dirs' \
 | 
					        {-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -/' \
 | 
				
			||||||
        '--keep-failed[keep build tree of failed builds]' \
 | 
					        {-K,--keep-failed}'[keep build tree of failed builds]' \
 | 
				
			||||||
        '--keep-going[keep going when some of the derivations fail]' \
 | 
					        {-k,--keep-going}'[keep going when some of the derivations fail]' \
 | 
				
			||||||
        '--dry-run[do not build the derivations]' \
 | 
					        {-n,--dry-run}'[do not build the derivations]' \
 | 
				
			||||||
        '--fallback[fall back to building when the substituter fails]' \
 | 
					        '--fallback[fall back to building when the substituter fails]' \
 | 
				
			||||||
        '--no-substitutes[build instead of resorting to pre-built substitutes]' \
 | 
					        '--no-substitutes[build instead of resorting to pre-built substitutes]' \
 | 
				
			||||||
        '--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
 | 
					        '--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
 | 
				
			||||||
| 
						 | 
					@ -285,12 +330,13 @@ _guix_list_installed_packages()
 | 
				
			||||||
        '--no-offload[do not attempt to offload builds]' \
 | 
					        '--no-offload[do not attempt to offload builds]' \
 | 
				
			||||||
        '--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
 | 
					        '--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
 | 
				
			||||||
        '--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
 | 
					        '--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
 | 
				
			||||||
        '--verbosity=[use the given verbosity LEVEL]:LEVEL' \
 | 
					 | 
				
			||||||
        '--rounds=[build N times in a row to detect non-determinism]:N' \
 | 
					        '--rounds=[build N times in a row to detect non-determinism]:N' \
 | 
				
			||||||
        '--cores=[allow the use of up to N CPU cores for the build]:N' \
 | 
					        {-c,--cores=}'[allow the use of up to N CPU cores for the build]:N' \
 | 
				
			||||||
        '--max-jobs=[allow at most N build jobs]:N' \
 | 
					        {-M,--max-jobs=}'[allow at most N build jobs]:N' \
 | 
				
			||||||
        '--with-source=[use SOURCE when building the corresponding package]:SOURCE' \
 | 
					        '--debug=[produce debugging output at LEVEL]' \
 | 
				
			||||||
        '--with-input=[replace dependency PACKAGE by REPLACEMENT]:PACKAGE=REPLACEMENT'
 | 
					        '--help-transform[list package transformation options not shown here]' \
 | 
				
			||||||
 | 
					        {-v,--verbosity=}'[use the given verbosity LEVEL]' \
 | 
				
			||||||
 | 
					        {-V,--version}'[display version information and exit]'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    case "$state" in
 | 
					    case "$state" in
 | 
				
			||||||
        install|show)
 | 
					        install|show)
 | 
				
			||||||
| 
						 | 
					@ -304,37 +350,165 @@ _guix_list_installed_packages()
 | 
				
			||||||
        esac
 | 
					        esac
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(( $+functions[_guix_install] )) || _guix_install()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    _arguments \
 | 
				
			||||||
 | 
					        {-p,--profile=}'[use PROFILE instead of the users default profile]:PROFILE:_files -/' \
 | 
				
			||||||
 | 
					        {-v,--verbosity=}'[use the given verbosity LEVEL]:LEVEL' \
 | 
				
			||||||
 | 
					        {-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -/' \
 | 
				
			||||||
 | 
					        {-K,--keep-failed}'[keep build tree of failed builds]' \
 | 
				
			||||||
 | 
					        {-k,--keep-going}'[keep going when some of the derivations fail]' \
 | 
				
			||||||
 | 
					        {-n,--dry-run}'[do not build the derivations]' \
 | 
				
			||||||
 | 
					        '--fallback[fall back to building when the substituter fails]' \
 | 
				
			||||||
 | 
					        '--no-substitutes[build instead of resorting to pre-built substitutes]' \
 | 
				
			||||||
 | 
					        '--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
 | 
				
			||||||
 | 
					        '--no-grafts[do not graft packages]' \
 | 
				
			||||||
 | 
					        '--no-offload[do not attempt to offload builds]' \
 | 
				
			||||||
 | 
					        '--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
 | 
				
			||||||
 | 
					        '--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
 | 
				
			||||||
 | 
					        '--rounds=[build N times in a row to detect non-determinism]:N' \
 | 
				
			||||||
 | 
					        {-c,--cores=}'[allow the use of up to N CPU cores for the build]:N' \
 | 
				
			||||||
 | 
					        {-M,--max-jobs=}'[allow at most N build jobs]:N' \
 | 
				
			||||||
 | 
					        '--debug=[produce debugging output at LEVEL]:LEVEL' \
 | 
				
			||||||
 | 
					        '--help-transform[list package transformation options not shown here]' \
 | 
				
			||||||
 | 
					        {-V,--version}'[display version information and exit]' \
 | 
				
			||||||
 | 
					        '*:package:->packages'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if [[ "$state" = packages ]]; then
 | 
				
			||||||
 | 
					        _guix_list_available_packages
 | 
				
			||||||
 | 
					        compadd -a -- _guix_available_packages
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(( $+functions[_guix_remove] )) || _guix_remove()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    _arguments \
 | 
				
			||||||
 | 
					        {-p,--profile=}'[use PROFILE instead of the users default profile]:PROFILE:_files -/' \
 | 
				
			||||||
 | 
					        {-v,--verbosity=}'[use the given verbosity LEVEL]:LEVEL' \
 | 
				
			||||||
 | 
					        {-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -/' \
 | 
				
			||||||
 | 
					        {-K,--keep-failed}'[keep build tree of failed builds]' \
 | 
				
			||||||
 | 
					        {-k,--keep-going}'[keep going when some of the derivations fail]' \
 | 
				
			||||||
 | 
					        {-n,--dry-run}'[do not build the derivations]' \
 | 
				
			||||||
 | 
					        '--fallback[fall back to building when the substituter fails]' \
 | 
				
			||||||
 | 
					        '--no-substitutes[build instead of resorting to pre-built substitutes]' \
 | 
				
			||||||
 | 
					        '--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
 | 
				
			||||||
 | 
					        '--no-grafts[do not graft packages]' \
 | 
				
			||||||
 | 
					        '--no-offload[do not attempt to offload builds]' \
 | 
				
			||||||
 | 
					        '--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
 | 
				
			||||||
 | 
					        '--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
 | 
				
			||||||
 | 
					        '--rounds=[build N times in a row to detect non-determinism]:N' \
 | 
				
			||||||
 | 
					        {-c,--cores=}'[allow the use of up to N CPU cores for the build]:N' \
 | 
				
			||||||
 | 
					        {-M,--max-jobs=}'[allow at most N build jobs]:N' \
 | 
				
			||||||
 | 
					        '--debug=[produce debugging output at LEVEL]:LEVEL' \
 | 
				
			||||||
 | 
					        {-V,--version}'[display version information and exit]' \
 | 
				
			||||||
 | 
					        '*:package:->packages'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if [[ "$state" = packages ]]; then
 | 
				
			||||||
 | 
					        _guix_list_installed_packages
 | 
				
			||||||
 | 
					        compadd -a -- _guix_installed_packages
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(( $+functions[_guix_upgrade] )) || _guix_upgrade()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    _arguments \
 | 
				
			||||||
 | 
					        {-p,--profile=}'[use PROFILE instead of the users default profile]:PROFILE:_files -/' \
 | 
				
			||||||
 | 
					        {-v,--verbosity=}'[use the given verbosity LEVEL]:LEVEL' \
 | 
				
			||||||
 | 
					        '--do-not-upgrade=[do not upgrade any packages matching REGEXP]:REGEXP' \
 | 
				
			||||||
 | 
					        {-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -/' \
 | 
				
			||||||
 | 
					        {-K,--keep-failed}'[keep build tree of failed builds]' \
 | 
				
			||||||
 | 
					        {-k,--keep-going}'[keep going when some of the derivations fail]' \
 | 
				
			||||||
 | 
					        {-n,--dry-run}'[do not build the derivations]' \
 | 
				
			||||||
 | 
					        '--fallback[fall back to building when the substituter fails]' \
 | 
				
			||||||
 | 
					        '--no-substitutes[build instead of resorting to pre-built substitutes]' \
 | 
				
			||||||
 | 
					        '--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
 | 
				
			||||||
 | 
					        '--no-grafts[do not graft packages]' \
 | 
				
			||||||
 | 
					        '--no-offload[do not attempt to offload builds]' \
 | 
				
			||||||
 | 
					        '--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
 | 
				
			||||||
 | 
					        '--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
 | 
				
			||||||
 | 
					        '--rounds=[build N times in a row to detect non-determinism]:N' \
 | 
				
			||||||
 | 
					        {-c,--cores=}'[allow the use of up to N CPU cores for the build]:N' \
 | 
				
			||||||
 | 
					        {-M,--max-jobs=}'[allow at most N build jobs]:N' \
 | 
				
			||||||
 | 
					        '--debug=[produce debugging output at LEVEL]:LEVEL' \
 | 
				
			||||||
 | 
					        '--help-transform[list package transformation options not shown here]' \
 | 
				
			||||||
 | 
					        {-V,--version}'[display version information and exit]' \
 | 
				
			||||||
 | 
					        '*:regexp'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(( $+functions[_guix_publish] )) || _guix_publish()
 | 
					(( $+functions[_guix_publish] )) || _guix_publish()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    _arguments \
 | 
					    _arguments \
 | 
				
			||||||
        '--port=[listen on PORT]:PORT:' \
 | 
					        {-p,--port=}'[listen on PORT]:PORT' \
 | 
				
			||||||
        '--listen=[listen on the network interface for HOST]:HOST:_hosts' \
 | 
					        '--listen=[listen on the network interface for HOST]:HOST_hosts' \
 | 
				
			||||||
        '--user=[change privileges to USER as soon as possible]:USER:_users' \
 | 
					        {-u,--user=}'[change privileges to USER as soon as possible]:USER_users' \
 | 
				
			||||||
        '--compression=[compress archives at LEVEL]:LEVEL' \
 | 
					        {-a,--advertise}'[advertise on the local network]' \
 | 
				
			||||||
 | 
					        {-C,--compression=}'[compress archives with METHOD at LEVEL]:METHOD' \
 | 
				
			||||||
 | 
					        {-c,--cache=}'[cache published items to DIRECTORY]:DIRECTORY:_files -/' \
 | 
				
			||||||
 | 
					        '--cache-bypass-threshold=[serve store items below SIZE even when not cached]:SIZE' \
 | 
				
			||||||
 | 
					        '--workers=[use N workers to bake items]:N' \
 | 
				
			||||||
        '--ttl=[announce narinfos can be cached for TTL seconds]:TTL' \
 | 
					        '--ttl=[announce narinfos can be cached for TTL seconds]:TTL' \
 | 
				
			||||||
        '--repl=[spawn REPL server on PORT]:PORT'
 | 
					        '--negative-ttl=[announce missing narinfos can be cached for TTL seconds]:TTL' \
 | 
				
			||||||
 | 
					        '--nar-path=[use PATH as the prefix for nar URLs]:PATH' \
 | 
				
			||||||
 | 
					        '--public-key=[use FILE as the public key for signatures]:FILE:_files' \
 | 
				
			||||||
 | 
					        '--private-key=[use FILE as the private key for signatures]:FILE:_files' \
 | 
				
			||||||
 | 
					        {-r,--repl=}'[spawn REPL server on PORT]:PORT' \
 | 
				
			||||||
 | 
					        {-V,--version}'[display version information and exit]' \
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(( $+functions[_guix_pull] )) || _guix_pull()
 | 
					(( $+functions[_guix_pull] )) || _guix_pull()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    _arguments \
 | 
					    _arguments \
 | 
				
			||||||
        '--verbose[produce verbose output]' \
 | 
					        {-C,--channels=}'[deploy the channels defined in FILE]:FILE:_files' \
 | 
				
			||||||
        '--url=[download the Guix tarball from URL]:URL:_urls' \
 | 
					        '--url=[download from the Git repository at URL]:URL:_urls' \
 | 
				
			||||||
        '--bootstrap[use the bootstrap Guile to build the new Guix]'
 | 
					        '--commit=[download the specified COMMIT]:COMMIT' \
 | 
				
			||||||
 | 
					        '--branch=[download the tip of the specified BRANCH]:BRANCH' \
 | 
				
			||||||
 | 
					        '--allow-downgrades[allow downgrades to earlier channel revisions]' \
 | 
				
			||||||
 | 
					        '--disable-authentication[disable channel authentication]' \
 | 
				
			||||||
 | 
					        {-N,--news}'[display news compared to the previous generation]' \
 | 
				
			||||||
 | 
					        {-l,--list-generations=}'[list generations matching PATTERN]:PATTERN' \
 | 
				
			||||||
 | 
					        '--roll-back[roll back to the previous generation]' \
 | 
				
			||||||
 | 
					        {-d,--delete-generations=}'[delete generations matching PATTERN]:PATTERN' \
 | 
				
			||||||
 | 
					        {-S,--switch-generation=}'[switch to a generation matching PATTERN]:PATTERN' \
 | 
				
			||||||
 | 
					        {-p,--profile=}'[use PROFILE instead of ~/.config/guix/current]:PROFILE:_files -/' \
 | 
				
			||||||
 | 
					        {-v,--verbosity=}'[use the given verbosity LEVEL]:LEVEL' \
 | 
				
			||||||
 | 
					        {-s,--system=}'[attempt to build for SYSTEM (e.g. "i686-linux")]:SYSTEM' \
 | 
				
			||||||
 | 
					        '--bootstrap[use the bootstrap Guile to build the new Guix]' \
 | 
				
			||||||
 | 
					        {-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -/' \
 | 
				
			||||||
 | 
					        {-K,--keep-failed}'[keep build tree of failed builds]' \
 | 
				
			||||||
 | 
					        {-k,--keep-going}'[keep going when some of the derivations fail]' \
 | 
				
			||||||
 | 
					        {-n,--dry-run}'[do not build the derivations]' \
 | 
				
			||||||
 | 
					        '--fallback[fall back to building when the substituter fails]' \
 | 
				
			||||||
 | 
					        '--no-substitutes[build instead of resorting to pre-built substitutes]' \
 | 
				
			||||||
 | 
					        '--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
 | 
				
			||||||
 | 
					        '--no-grafts[do not graft packages]' \
 | 
				
			||||||
 | 
					        '--no-offload[do not attempt to offload builds]' \
 | 
				
			||||||
 | 
					        '--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
 | 
				
			||||||
 | 
					        '--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
 | 
				
			||||||
 | 
					        '--rounds=[build N times in a row to detect non-determinism]:N' \
 | 
				
			||||||
 | 
					        {-c,--cores=}'[allow the use of up to N CPU cores for the build]:N' \
 | 
				
			||||||
 | 
					        {-M,--max-jobs=}'[allow at most N build jobs]:N' \
 | 
				
			||||||
 | 
					        '--debug=[produce debugging output at LEVEL]:LEVEL' \
 | 
				
			||||||
 | 
					        {-V,--version}'[display version information and exit]'
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(( $+functions[_guix_refresh] )) || _guix_refresh()
 | 
					(( $+functions[_guix_refresh] )) || _guix_refresh()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    _arguments \
 | 
					    _arguments \
 | 
				
			||||||
        '--expression=[consider the package EXPR evaluates to]:EXPR' \
 | 
					        {-e,--expression=}'[consider the package EXPR evaluates to]:EXPR' \
 | 
				
			||||||
        '--update[update source files in place]' \
 | 
					        {-u,--update}'[update source files in place]' \
 | 
				
			||||||
        '--select=[select all the packages in SUBSET]:SUBSET:(core non-core)' \
 | 
					        {-s,--select=}'[select all the packages in SUBSET, one of]:SUBSET:(core non-core)' \
 | 
				
			||||||
        '--type=[restrict to updates from the specified updaters]:UPDATER:->updaters' \
 | 
					        {-m,--manifest=}'[select all the packages from the manifest in FILE]:FILE:_files' \
 | 
				
			||||||
        '--list-updaters[list available updaters and exit]' \
 | 
					        {-t,--type=}'[restrict to updates from the specified updaters]:UPDATER:-.updaters' \
 | 
				
			||||||
        '--list-dependent[list top-level dependent packages]' \
 | 
					        {-L,--list-updaters}'[list available updaters and exit]' \
 | 
				
			||||||
        '--key-server=[use HOST as the OpenPGP key server]:HOST:_hosts' \
 | 
					        {-l,--list-dependent}'[list top-level dependent packages that would need to be rebuilt as a result of upgrading PACKAGE...]' \
 | 
				
			||||||
 | 
					        {-r,--recursive}'[check the PACKAGE and its inputs for upgrades]' \
 | 
				
			||||||
 | 
					        '--list-transitive[list all the packages that PACKAGE depends on]' \
 | 
				
			||||||
 | 
					        '--keyring=[use FILE as the keyring of upstream OpenPGP keys]:FILE:_files' \
 | 
				
			||||||
 | 
					        '--key-server=[use HOST as the OpenPGP key server]:HOST_hosts' \
 | 
				
			||||||
        '--gpg=[use COMMAND as the GnuPG 2.x command]:COMMAND' \
 | 
					        '--gpg=[use COMMAND as the GnuPG 2.x command]:COMMAND' \
 | 
				
			||||||
        '--key-download=[policy to handle missing OpenPGP keys]:POLICY:(always interactive never)' \
 | 
					        '--key-download=[handle missing OpenPGP keys according to POLICY:]:POLICY:(always interactive never)' \
 | 
				
			||||||
 | 
					        '--load-path=[prepend DIR to the package module search path]:DIR:_files -/' \
 | 
				
			||||||
 | 
					        {-V,--version}'[display version information and exit]' \
 | 
				
			||||||
        '*:package:->packages'
 | 
					        '*:package:->packages'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    case "$state" in
 | 
					    case "$state" in
 | 
				
			||||||
| 
						 | 
					@ -352,9 +526,12 @@ _guix_list_installed_packages()
 | 
				
			||||||
(( $+functions[_guix_size] )) || _guix_size()
 | 
					(( $+functions[_guix_size] )) || _guix_size()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    _arguments \
 | 
					    _arguments \
 | 
				
			||||||
        '--substitute-urls=[fetch substitute from URLS if they are authorized]:URL:_urls' \
 | 
					        '--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
 | 
				
			||||||
        '-system=[consider packages for SYSTEM--e.g., "i686-linux"]:SYSTEM' \
 | 
					        {-s,--system=}'[consider packages for SYSTEM (e.g. "i686-linux")]:SYSTEM' \
 | 
				
			||||||
        '--map-file=[write to FILE a graphical map of disk usage]:FILE:_files' \
 | 
					        '--sort=[sort according to KEY]:KEY:(closure self)' \
 | 
				
			||||||
 | 
					        {-m,--map-file=}'[write to FILE a graphical map of disk usage]:FILE:_files' \
 | 
				
			||||||
 | 
					        {-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -/' \
 | 
				
			||||||
 | 
					        {-V,--version}'[display version information and exit]' \
 | 
				
			||||||
        '*:package:->packages'
 | 
					        '*:package:->packages'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if [[ "$state" = packages ]]; then
 | 
					        if [[ "$state" = packages ]]; then
 | 
				
			||||||
| 
						 | 
					@ -366,28 +543,42 @@ _guix_list_installed_packages()
 | 
				
			||||||
(( $+functions[_guix_system] )) || _guix_system()
 | 
					(( $+functions[_guix_system] )) || _guix_system()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    _arguments \
 | 
					    _arguments \
 | 
				
			||||||
        '--load-path=[prepend DIR to the package module search path]:DIR:_dirs' \
 | 
					        {-L,--load-path=}'[prepend DIR to the package module search path]:DIR:_files -/' \
 | 
				
			||||||
        '--keep-failed[keep build tree of failed builds]' \
 | 
					        {-K,--keep-failed}'[keep build tree of failed builds]' \
 | 
				
			||||||
        '--keep-going[keep going when some of the derivations fail]' \
 | 
					        {-k,--keep-going}'[keep going when some of the derivations fail]' \
 | 
				
			||||||
        '--dry-run[do not build the derivations]' \
 | 
					        {-n,--dry-run}'[do not build the derivations]' \
 | 
				
			||||||
        '--fallback[fall back to building when the substituter fails]' \
 | 
					        '--fallback[fall back to building when the substituter fails]' \
 | 
				
			||||||
        '--no-substitutes[build instead of resorting to pre-built substitutes]' \
 | 
					        '--no-substitutes[build instead of resorting to pre-built substitutes]' \
 | 
				
			||||||
        '--substitute-urls=[fetch substitute from URLS if they are authorized]:URL:_urls' \
 | 
					        '--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
 | 
				
			||||||
        '--no-grafts[do not graft packages]' \
 | 
					        '--no-grafts[do not graft packages]' \
 | 
				
			||||||
        '--no-offload[do not attempt to offload builds]' \
 | 
					        '--no-offload[do not attempt to offload builds]' \
 | 
				
			||||||
        '--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
 | 
					        '--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
 | 
				
			||||||
        '--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
 | 
					        '--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
 | 
				
			||||||
        '--verbosity=[use the given verbosity LEVEL]:LEVEL' \
 | 
					 | 
				
			||||||
        '--rounds=[build N times in a row to detect non-determinism]:N' \
 | 
					        '--rounds=[build N times in a row to detect non-determinism]:N' \
 | 
				
			||||||
        '--cores=[allow the use of up to N CPU cores for the build]:N' \
 | 
					        {-c,--cores=}'[allow the use of up to N CPU cores for the build]:N' \
 | 
				
			||||||
        '--max-jobs=[allow at most N build jobs]:N' \
 | 
					        {-M,--max-jobs=}'[allow at most N build jobs]:N' \
 | 
				
			||||||
        '--derivation[return the derivation of the given system]' \
 | 
					        '--debug=[produce debugging output at LEVEL]:LEVEL' \
 | 
				
			||||||
        '--on-error=[apply STRATEGY when an error occurs while reading FILE]:STRATEGY' \
 | 
					        {-d,--derivation}'[return the derivation of the given system]' \
 | 
				
			||||||
        '--image-size=[for "image", produce an image of SIZE]:SIZE' \
 | 
					        {-e,--expression=}'[consider the operating-system EXPR evaluates to instead of reading FILE, when applicable]:EXPR' \
 | 
				
			||||||
        '--no-grub[for "init", do not install GRUB]' \
 | 
					        '--allow-downgrades[for reconfigure, allow downgrades to earlier channel revisions]' \
 | 
				
			||||||
        '--share=[for "vm", share host file system according to SPEC]:SPEC' \
 | 
					        '--on-error=[apply STRATEGY  when an error occurs while reading FILE]:STRATEGY:(nothing-special backtrace debug)' \
 | 
				
			||||||
        '--expose=[for "vm", expose host file system according to SPEC]:SPEC' \
 | 
					        '--list-image-types[list available image types]' \
 | 
				
			||||||
        '--full-boot[for "vm", make a full boot sequence]' \
 | 
					        {-t,--image-type=}'[for image, produce an image of TYPE]:TYPE' \
 | 
				
			||||||
 | 
					        '--image-size=[for image, produce an image of SIZE]:SIZE' \
 | 
				
			||||||
 | 
					        '--no-bootloader[for init, do not install a bootloader]' \
 | 
				
			||||||
 | 
					        '--volatile[for image, make the root file system volatile]' \
 | 
				
			||||||
 | 
					        '--label=[for image, label disk image with LABEL]:LABEL' \
 | 
				
			||||||
 | 
					        '--save-provenance[save provenance information]' \
 | 
				
			||||||
 | 
					        '--share=[for vm and container, share host file system with read/write access according to SPEC]:SPEC' \
 | 
				
			||||||
 | 
					        '--expose=[for vm and container, expose host file system directory as read-only according to SPEC]:SPEC' \
 | 
				
			||||||
 | 
					        {-N,--network}'[for container, allow containers to access the network]' \
 | 
				
			||||||
 | 
					        {-r,--root=}'[for vm, image, container and build, make FILE a symlink to the result, and register it as a GC root]:FILE:_files' \
 | 
				
			||||||
 | 
					        '--full-boot[for vm, make a full boot sequence]' \
 | 
				
			||||||
 | 
					        '--skip-checks[skip file system and initrd module safety checks]' \
 | 
				
			||||||
 | 
					        '--target=[cross-build for TRIPLET (e.g. "armel-linux-gnu")]:TRIPLET' \
 | 
				
			||||||
 | 
					        {-v,--verbosity=}'[use the given verbosity LEVEL]:LEVEL' \
 | 
				
			||||||
 | 
					        '--graph-backend=[use BACKEND for extension-graphs and shepherd-graph]:BACKEND' \
 | 
				
			||||||
 | 
					        {-V,--version}'[display version information and exit]' \
 | 
				
			||||||
        '1:action:->actions' \
 | 
					        '1:action:->actions' \
 | 
				
			||||||
        '*:file:_files'
 | 
					        '*:file:_files'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -405,20 +596,35 @@ _guix_list_installed_packages()
 | 
				
			||||||
        "build:Build a given package"
 | 
					        "build:Build a given package"
 | 
				
			||||||
        "challenge:Challenge the substitutes for a package"
 | 
					        "challenge:Challenge the substitutes for a package"
 | 
				
			||||||
        "container:Build and manipulate Linux containers"
 | 
					        "container:Build and manipulate Linux containers"
 | 
				
			||||||
 | 
					        "copy:Copy store items remotely over SSH"
 | 
				
			||||||
 | 
					        "deploy:Deploy operating systems on a set of machines"
 | 
				
			||||||
 | 
					        "describe:Describe the channel revisions currently used"
 | 
				
			||||||
        "download:Download the file at given URL and add it to the store"
 | 
					        "download:Download the file at given URL and add it to the store"
 | 
				
			||||||
        "edit:Edit the definitions of a package"
 | 
					        "edit:Edit the definitions of a package"
 | 
				
			||||||
        "environment:Build an environment with a package and its dependencies"
 | 
					        "environment:Build an environment with a package and its dependencies"
 | 
				
			||||||
        "gc:Invoke the garbage collector"
 | 
					        "gc:Invoke the garbage collector"
 | 
				
			||||||
 | 
					        "git:Operate on Git repositories"
 | 
				
			||||||
        "graph:Emit a DOT representation of the dependencies of a package"
 | 
					        "graph:Emit a DOT representation of the dependencies of a package"
 | 
				
			||||||
        "hash:Return the cryptographic hash of a file"
 | 
					        "hash:Return the cryptographic hash of a file"
 | 
				
			||||||
        "import:Run an importer"
 | 
					        "import:Run an importer"
 | 
				
			||||||
 | 
					        "install:Install packages"
 | 
				
			||||||
        "lint:Run a set of checkers on a package"
 | 
					        "lint:Run a set of checkers on a package"
 | 
				
			||||||
 | 
					        "offload:Set up and operate build offloading"
 | 
				
			||||||
 | 
					        "pack:Create application bundles"
 | 
				
			||||||
        "package:Install, remove, or upgrade packages"
 | 
					        "package:Install, remove, or upgrade packages"
 | 
				
			||||||
 | 
					        "processes:List currently running sessions"
 | 
				
			||||||
        "publish:Publish /gnu/store over HTTP."
 | 
					        "publish:Publish /gnu/store over HTTP."
 | 
				
			||||||
        "pull:Download and deploy the latest version of Guix"
 | 
					        "pull:Download and deploy the latest version of Guix"
 | 
				
			||||||
        "refresh:Update package definitions to match the latest version"
 | 
					        "refresh:Update package definitions to match the latest version"
 | 
				
			||||||
 | 
					        "remove:Remove packages"
 | 
				
			||||||
 | 
					        "repl:Read-eval-print loop (REPL) for interactive programming"
 | 
				
			||||||
 | 
					        "search:Search for packages"
 | 
				
			||||||
 | 
					        "show:Show information about packages"
 | 
				
			||||||
        "size:Report the size of a package and its dependencies"
 | 
					        "size:Report the size of a package and its dependencies"
 | 
				
			||||||
        "system:Build the operating system"
 | 
					        "system:Build the operating system"
 | 
				
			||||||
 | 
					        "time-machine:Run commands from a different revision"
 | 
				
			||||||
 | 
					        "upgrade:Upgrade packages"
 | 
				
			||||||
 | 
					        "weather:Report on the availability of pre-built package binaries"
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (( CURRENT == 1 )); then
 | 
					    if (( CURRENT == 1 )); then
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										112
									
								
								etc/disarchive-manifest.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								etc/disarchive-manifest.scm
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,112 @@
 | 
				
			||||||
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
 | 
					;;; Copyright © 2021 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/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; This file returns a manifest that builds a directory containing Disarchive
 | 
				
			||||||
 | 
					;;; metadata for all the tarballs packages refer to.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(use-modules (srfi srfi-1) (ice-9 match)
 | 
				
			||||||
 | 
					             (guix packages) (guix gexp) (guix profiles)
 | 
				
			||||||
 | 
					             (guix base16)
 | 
				
			||||||
 | 
					             (gnu packages))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(include "source-manifest.scm")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (tarball-origin? origin)
 | 
				
			||||||
 | 
					  (match (origin-actual-file-name origin)
 | 
				
			||||||
 | 
					    (#f #f)
 | 
				
			||||||
 | 
					    ((? string? file)
 | 
				
			||||||
 | 
					     ;; As of version 0.2.1, Disarchive can only deal with raw tarballs and
 | 
				
			||||||
 | 
					     ;; gzip-compressed tarballs.
 | 
				
			||||||
 | 
					     (and (origin-hash origin)
 | 
				
			||||||
 | 
					          (or (string-suffix? ".tar.gz" file)
 | 
				
			||||||
 | 
					              (string-suffix? ".tgz" file)
 | 
				
			||||||
 | 
					              (string-suffix? ".tar" file))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (origin->disarchive origin)
 | 
				
			||||||
 | 
					  "Return a directory containing Disarchive metadata for ORIGIN, a tarball, or
 | 
				
			||||||
 | 
					an empty directory if ORIGIN could not be disassembled."
 | 
				
			||||||
 | 
					  (define file-name
 | 
				
			||||||
 | 
					    (let ((hash (origin-hash origin)))
 | 
				
			||||||
 | 
					      (string-append (symbol->string (content-hash-algorithm hash))
 | 
				
			||||||
 | 
					                     "/"
 | 
				
			||||||
 | 
					                     (bytevector->base16-string
 | 
				
			||||||
 | 
					                      (content-hash-value hash)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (define disarchive
 | 
				
			||||||
 | 
					    (specification->package "disarchive"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (define build
 | 
				
			||||||
 | 
					    (with-imported-modules '((guix build utils))
 | 
				
			||||||
 | 
					      #~(begin
 | 
				
			||||||
 | 
					          (use-modules (guix build utils)
 | 
				
			||||||
 | 
					                       (srfi srfi-34))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          (define tarball
 | 
				
			||||||
 | 
					            #+(upstream-origin origin))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          (define file-name
 | 
				
			||||||
 | 
					            (string-append #$output "/" #$file-name))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          (define profile
 | 
				
			||||||
 | 
					            #+(profile (content (packages->manifest (list disarchive)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          (mkdir-p (dirname file-name))
 | 
				
			||||||
 | 
					          (setenv "PATH" (string-append profile "/bin"))
 | 
				
			||||||
 | 
					          (setenv "GUILE_LOAD_PATH"
 | 
				
			||||||
 | 
					                  (string-append profile "/share/guile/site/"
 | 
				
			||||||
 | 
					                                 (effective-version)))
 | 
				
			||||||
 | 
					          (setenv "GUILE_LOAD_COMPILED_PATH"
 | 
				
			||||||
 | 
					                  (string-append profile "/lib/guile/" (effective-version)
 | 
				
			||||||
 | 
					                                 "/site-ccache"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          (guard (c ((invoke-error? c)
 | 
				
			||||||
 | 
					                     ;; Sometimes Disarchive fails with "could not find Gzip
 | 
				
			||||||
 | 
					                     ;; compressor".  When that happens, produce an empty
 | 
				
			||||||
 | 
					                     ;; directory instead of failing.
 | 
				
			||||||
 | 
					                     (report-invoke-error c)
 | 
				
			||||||
 | 
					                     (delete-file file-name)))
 | 
				
			||||||
 | 
					            (with-output-to-file file-name
 | 
				
			||||||
 | 
					              (lambda ()
 | 
				
			||||||
 | 
					                ;; Disarchive records the tarball name in its output.  Thus,
 | 
				
			||||||
 | 
					                ;; strip the hash from TARBALL.
 | 
				
			||||||
 | 
					                (let ((short-name (strip-store-file-name tarball)))
 | 
				
			||||||
 | 
					                  (symlink tarball short-name)
 | 
				
			||||||
 | 
					                  (invoke "disarchive" "disassemble" short-name))))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (computed-file (match (origin-actual-file-name origin)
 | 
				
			||||||
 | 
					                   ((? string? str) (string-append str ".dis"))
 | 
				
			||||||
 | 
					                   (#f "anonymous-tarball.dis"))
 | 
				
			||||||
 | 
					                 build))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (disarchive-collection origins)
 | 
				
			||||||
 | 
					  "Return a directory containing all the Disarchive metadata for ORIGINS."
 | 
				
			||||||
 | 
					  (directory-union "disarchive-collection"
 | 
				
			||||||
 | 
					                   (filter-map (lambda (origin)
 | 
				
			||||||
 | 
					                                 (and (tarball-origin? origin)
 | 
				
			||||||
 | 
					                                      (origin->disarchive origin)))
 | 
				
			||||||
 | 
					                               origins)
 | 
				
			||||||
 | 
					                   #:copy? #t))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; The manifest containing Disarchive data.
 | 
				
			||||||
 | 
					(let ((origins (all-origins)))
 | 
				
			||||||
 | 
					  (manifest
 | 
				
			||||||
 | 
					   (list (manifest-entry
 | 
				
			||||||
 | 
					           (name "disarchive-collection")
 | 
				
			||||||
 | 
					           (version (length origins))
 | 
				
			||||||
 | 
					           (item (disarchive-collection origins))))))
 | 
				
			||||||
							
								
								
									
										66
									
								
								etc/source-manifest.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								etc/source-manifest.scm
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,66 @@
 | 
				
			||||||
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
 | 
					;;; Copyright © 2021 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/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; This file returns a manifest containing origins of all the packages.  The
 | 
				
			||||||
 | 
					;;; main purpose is to allow continuous integration services to keep upstream
 | 
				
			||||||
 | 
					;;; source code around.  It can also be passed to 'guix weather -m'.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(use-modules (srfi srfi-1) (srfi srfi-26)
 | 
				
			||||||
 | 
					             (ice-9 match) (ice-9 vlist)
 | 
				
			||||||
 | 
					             (guix packages) (guix profiles)
 | 
				
			||||||
 | 
					             (gnu packages))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (all-packages)
 | 
				
			||||||
 | 
					  "Return the list of all the packages, public or private, omitting only
 | 
				
			||||||
 | 
					superseded packages."
 | 
				
			||||||
 | 
					  (fold-packages (lambda (package lst)
 | 
				
			||||||
 | 
					                   (match (package-replacement package)
 | 
				
			||||||
 | 
					                     (#f (cons package lst))
 | 
				
			||||||
 | 
					                     (replacement
 | 
				
			||||||
 | 
					                      (append (list replacement package) lst))))
 | 
				
			||||||
 | 
					                 '()
 | 
				
			||||||
 | 
					                 #:select? (negate package-superseded)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (upstream-origin source)
 | 
				
			||||||
 | 
					  "Return SOURCE without any patches or snippet."
 | 
				
			||||||
 | 
					  (origin (inherit source)
 | 
				
			||||||
 | 
					          (snippet #f) (patches '())))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (all-origins)
 | 
				
			||||||
 | 
					  "Return the list of origins referred to by all the packages."
 | 
				
			||||||
 | 
					  (let loop ((packages (all-packages))
 | 
				
			||||||
 | 
					             (origins  '())
 | 
				
			||||||
 | 
					             (visited   vlist-null))
 | 
				
			||||||
 | 
					    (match packages
 | 
				
			||||||
 | 
					      ((head . tail)
 | 
				
			||||||
 | 
					       (let ((new (remove (cut vhash-assq <> visited)
 | 
				
			||||||
 | 
					                          (package-direct-sources head))))
 | 
				
			||||||
 | 
					         (loop tail (append new origins)
 | 
				
			||||||
 | 
					               (fold (cut vhash-consq <> #t <>)
 | 
				
			||||||
 | 
					                     visited new))))
 | 
				
			||||||
 | 
					      (()
 | 
				
			||||||
 | 
					       origins))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; Return a manifest containing all the origins.
 | 
				
			||||||
 | 
					(manifest (map (lambda (origin)
 | 
				
			||||||
 | 
					                 (manifest-entry
 | 
				
			||||||
 | 
					                   (name (or (origin-actual-file-name origin)
 | 
				
			||||||
 | 
					                             "origin"))
 | 
				
			||||||
 | 
					                   (version "0")
 | 
				
			||||||
 | 
					                   (item (upstream-origin origin))))
 | 
				
			||||||
 | 
					               (all-origins)))
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
;;; Copyright © 2017 David Craven <david@craven.ch>
 | 
					;;; Copyright © 2017 David Craven <david@craven.ch>
 | 
				
			||||||
;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 | 
					;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 | 
				
			||||||
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 | 
					;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 | 
				
			||||||
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 | 
					;;; Copyright © 2019, 2021 Ludovic Courtès <ludo@gnu.org>
 | 
				
			||||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 | 
					;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
| 
						 | 
					@ -25,7 +25,10 @@
 | 
				
			||||||
  #:use-module (guix gexp)
 | 
					  #:use-module (guix gexp)
 | 
				
			||||||
  #:use-module (guix profiles)
 | 
					  #:use-module (guix profiles)
 | 
				
			||||||
  #:use-module (guix records)
 | 
					  #:use-module (guix records)
 | 
				
			||||||
  #:use-module (guix ui)
 | 
					  #:use-module (guix deprecation)
 | 
				
			||||||
 | 
					  #:use-module ((guix ui) #:select (warn-about-load-error))
 | 
				
			||||||
 | 
					  #:use-module (guix diagnostics)
 | 
				
			||||||
 | 
					  #:use-module (guix i18n)
 | 
				
			||||||
  #:use-module (srfi srfi-1)
 | 
					  #:use-module (srfi srfi-1)
 | 
				
			||||||
  #:use-module (ice-9 match)
 | 
					  #:use-module (ice-9 match)
 | 
				
			||||||
  #:export (menu-entry
 | 
					  #:export (menu-entry
 | 
				
			||||||
| 
						 | 
					@ -55,7 +58,8 @@
 | 
				
			||||||
            bootloader-configuration
 | 
					            bootloader-configuration
 | 
				
			||||||
            bootloader-configuration?
 | 
					            bootloader-configuration?
 | 
				
			||||||
            bootloader-configuration-bootloader
 | 
					            bootloader-configuration-bootloader
 | 
				
			||||||
            bootloader-configuration-target
 | 
					            bootloader-configuration-target ;deprecated
 | 
				
			||||||
 | 
					            bootloader-configuration-targets
 | 
				
			||||||
            bootloader-configuration-menu-entries
 | 
					            bootloader-configuration-menu-entries
 | 
				
			||||||
            bootloader-configuration-default-entry
 | 
					            bootloader-configuration-default-entry
 | 
				
			||||||
            bootloader-configuration-timeout
 | 
					            bootloader-configuration-timeout
 | 
				
			||||||
| 
						 | 
					@ -179,12 +183,17 @@ record."
 | 
				
			||||||
;; The <bootloader-configuration> record contains bootloader independant
 | 
					;; The <bootloader-configuration> record contains bootloader independant
 | 
				
			||||||
;; configuration used to fill bootloader configuration file.
 | 
					;; configuration used to fill bootloader configuration file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-syntax-rule (warn-target-field-deprecation value)
 | 
				
			||||||
 | 
					  (%warn-target-field-deprecation value (current-source-location)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-record-type* <bootloader-configuration>
 | 
					(define-record-type* <bootloader-configuration>
 | 
				
			||||||
  bootloader-configuration make-bootloader-configuration
 | 
					  bootloader-configuration make-bootloader-configuration
 | 
				
			||||||
  bootloader-configuration?
 | 
					  bootloader-configuration?
 | 
				
			||||||
  (bootloader         bootloader-configuration-bootloader) ;<bootloader>
 | 
					  (bootloader         bootloader-configuration-bootloader) ;<bootloader>
 | 
				
			||||||
  (target             bootloader-configuration-target      ;string
 | 
					  (targets            %bootloader-configuration-targets    ;list of strings
 | 
				
			||||||
                      (default #f))
 | 
					                      (default #f))
 | 
				
			||||||
 | 
					  (target             %bootloader-configuration-target ;deprecated
 | 
				
			||||||
 | 
					                      (default #f) (sanitize warn-target-field-deprecation))
 | 
				
			||||||
  (menu-entries       bootloader-configuration-menu-entries ;list of <menu-entry>
 | 
					  (menu-entries       bootloader-configuration-menu-entries ;list of <menu-entry>
 | 
				
			||||||
                      (default '()))
 | 
					                      (default '()))
 | 
				
			||||||
  (default-entry      bootloader-configuration-default-entry ;integer
 | 
					  (default-entry      bootloader-configuration-default-entry ;integer
 | 
				
			||||||
| 
						 | 
					@ -204,6 +213,26 @@ record."
 | 
				
			||||||
  (serial-speed       bootloader-configuration-serial-speed ;integer | #f
 | 
					  (serial-speed       bootloader-configuration-serial-speed ;integer | #f
 | 
				
			||||||
                      (default #f)))
 | 
					                      (default #f)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (%warn-target-field-deprecation value location)
 | 
				
			||||||
 | 
					  (when value
 | 
				
			||||||
 | 
					    (warning (source-properties->location location)
 | 
				
			||||||
 | 
					             (G_ "the 'target' field is deprecated, please use 'targets' \
 | 
				
			||||||
 | 
					instead~%")))
 | 
				
			||||||
 | 
					  value)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-deprecated (bootloader-configuration-target config)
 | 
				
			||||||
 | 
					  bootloader-configuration-targets
 | 
				
			||||||
 | 
					  (%bootloader-configuration-target config))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (bootloader-configuration-targets config)
 | 
				
			||||||
 | 
					  (or (%bootloader-configuration-targets config)
 | 
				
			||||||
 | 
					      ;; TODO: Remove after the deprecated 'target' field is removed.
 | 
				
			||||||
 | 
					      (list (%bootloader-configuration-target config))
 | 
				
			||||||
 | 
					      ;; XXX: At least the GRUB installer (see (gnu bootloader grub)) has this
 | 
				
			||||||
 | 
					      ;; peculiar behavior of installing fonts and GRUB modules when DEVICE is #f,
 | 
				
			||||||
 | 
					      ;; hence the default value of '(#f) rather than '().
 | 
				
			||||||
 | 
					      (list #f)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; Bootloaders.
 | 
					;;; Bootloaders.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -647,11 +647,12 @@ below the directory TARGET for the system whose root is mounted at MOUNT-POINT.
 | 
				
			||||||
MOUNT-POINT is the last argument in 'guix system init /etc/config.scm mnt/point'
 | 
					MOUNT-POINT is the last argument in 'guix system init /etc/config.scm mnt/point'
 | 
				
			||||||
or '/' for other 'guix system' commands.
 | 
					or '/' for other 'guix system' commands.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TARGET is the target argument given to the bootloader-configuration in
 | 
					Where TARGET comes from the targets argument given to the
 | 
				
			||||||
 | 
					bootloader-configuration in:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(operating-system
 | 
					(operating-system
 | 
				
			||||||
 (bootloader (bootloader-configuration
 | 
					 (bootloader (bootloader-configuration
 | 
				
			||||||
              (target \"/boot\")
 | 
					              (targets '(\"/boot\"))
 | 
				
			||||||
              …))
 | 
					              …))
 | 
				
			||||||
 …)
 | 
					 …)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,6 +6,8 @@
 | 
				
			||||||
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 | 
					;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 | 
				
			||||||
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 | 
					;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 | 
				
			||||||
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 | 
					;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 | 
				
			||||||
 | 
					;;; Copyright © 2020 Christine Lemmer-Webber <cwebber@dustycloud.org>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -24,6 +26,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-module (gnu build activation)
 | 
					(define-module (gnu build activation)
 | 
				
			||||||
  #:use-module (gnu system accounts)
 | 
					  #:use-module (gnu system accounts)
 | 
				
			||||||
 | 
					  #:use-module (gnu system setuid)
 | 
				
			||||||
  #:use-module (gnu build accounts)
 | 
					  #:use-module (gnu build accounts)
 | 
				
			||||||
  #:use-module (gnu build linux-boot)
 | 
					  #:use-module (gnu build linux-boot)
 | 
				
			||||||
  #:use-module (guix build utils)
 | 
					  #:use-module (guix build utils)
 | 
				
			||||||
| 
						 | 
					@ -279,14 +282,17 @@ they already exist."
 | 
				
			||||||
  "/run/setuid-programs")
 | 
					  "/run/setuid-programs")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (activate-setuid-programs programs)
 | 
					(define (activate-setuid-programs programs)
 | 
				
			||||||
  "Turn PROGRAMS, a list of file names, into setuid programs stored under
 | 
					  "Turn PROGRAMS, a list of file setuid-programs record, into setuid programs
 | 
				
			||||||
%SETUID-DIRECTORY."
 | 
					stored under %SETUID-DIRECTORY."
 | 
				
			||||||
  (define (make-setuid-program prog)
 | 
					  (define (make-setuid-program program setuid? setgid? uid gid)
 | 
				
			||||||
    (let ((target (string-append %setuid-directory
 | 
					    (let ((target (string-append %setuid-directory
 | 
				
			||||||
                                 "/" (basename prog))))
 | 
					                                 "/" (basename program)))
 | 
				
			||||||
      (copy-file prog target)
 | 
					          (mode (+ #o0555                   ; base permissions
 | 
				
			||||||
      (chown target 0 0)
 | 
					                   (if setuid? #o4000 0)    ; setuid bit
 | 
				
			||||||
      (chmod target #o4555)))
 | 
					                   (if setgid? #o2000 0)))) ; setgid bit
 | 
				
			||||||
 | 
					      (copy-file program target)
 | 
				
			||||||
 | 
					      (chown target uid gid)
 | 
				
			||||||
 | 
					      (chmod target mode)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  (format #t "setting up setuid programs in '~a'...~%"
 | 
					  (format #t "setting up setuid programs in '~a'...~%"
 | 
				
			||||||
          %setuid-directory)
 | 
					          %setuid-directory)
 | 
				
			||||||
| 
						 | 
					@ -302,15 +308,27 @@ they already exist."
 | 
				
			||||||
  (for-each (lambda (program)
 | 
					  (for-each (lambda (program)
 | 
				
			||||||
              (catch 'system-error
 | 
					              (catch 'system-error
 | 
				
			||||||
                (lambda ()
 | 
					                (lambda ()
 | 
				
			||||||
                  (make-setuid-program program))
 | 
					                  (let* ((program-name (setuid-program-program program))
 | 
				
			||||||
 | 
					                         (setuid?      (setuid-program-setuid? program))
 | 
				
			||||||
 | 
					                         (setgid?      (setuid-program-setgid? program))
 | 
				
			||||||
 | 
					                         (user         (setuid-program-user program))
 | 
				
			||||||
 | 
					                         (group        (setuid-program-group program))
 | 
				
			||||||
 | 
					                         (uid (match user
 | 
				
			||||||
 | 
					                                ((? string?) (passwd:uid (getpwnam user)))
 | 
				
			||||||
 | 
					                                ((? integer?) user)))
 | 
				
			||||||
 | 
					                         (gid (match group
 | 
				
			||||||
 | 
					                                ((? string?) (group:gid (getgrnam group)))
 | 
				
			||||||
 | 
					                                ((? integer?) group))))
 | 
				
			||||||
 | 
					                    (make-setuid-program program-name setuid? setgid? uid gid)))
 | 
				
			||||||
                (lambda args
 | 
					                (lambda args
 | 
				
			||||||
                  ;; If we fail to create a setuid program, better keep going
 | 
					                  ;; If we fail to create a setuid program, better keep going
 | 
				
			||||||
                  ;; so that we don't leave %SETUID-DIRECTORY empty or
 | 
					                  ;; so that we don't leave %SETUID-DIRECTORY empty or
 | 
				
			||||||
                  ;; half-populated.  This can happen if PROGRAMS contains
 | 
					                  ;; half-populated.  This can happen if PROGRAMS contains
 | 
				
			||||||
                  ;; incorrect file names: <https://bugs.gnu.org/38800>.
 | 
					                  ;; incorrect file names: <https://bugs.gnu.org/38800>.
 | 
				
			||||||
                  (format (current-error-port)
 | 
					                  (format (current-error-port)
 | 
				
			||||||
                          "warning: failed to make '~a' setuid-root: ~a~%"
 | 
					                          "warning: failed to make ~s setuid/setgid: ~a~%"
 | 
				
			||||||
                          program (strerror (system-error-errno args))))))
 | 
					                          (setuid-program-program program)
 | 
				
			||||||
 | 
					                          (strerror (system-error-errno args))))))
 | 
				
			||||||
            programs))
 | 
					            programs))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (activate-special-files special-files)
 | 
					(define (activate-special-files special-files)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 | 
					;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 | 
				
			||||||
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
 | 
					;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
 | 
				
			||||||
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
 | 
					;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
 | 
				
			||||||
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 | 
					;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 | 
				
			||||||
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
					;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										587
									
								
								gnu/build/jami-service.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										587
									
								
								gnu/build/jami-service.scm
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,587 @@
 | 
				
			||||||
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; GNU Guix is free software; you can redistribute it and/or modify it
 | 
				
			||||||
 | 
					;;; under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					;;; the Free Software Foundation; either version 3 of the License, or (at
 | 
				
			||||||
 | 
					;;; your option) any later version.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; GNU Guix is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					;;; WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					;;; GNU General Public License for more details.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; Commentary:
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; This module contains helpers used as part of the jami-service-type
 | 
				
			||||||
 | 
					;;; definition.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; Code:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-module (gnu build jami-service)
 | 
				
			||||||
 | 
					  #:use-module (ice-9 format)
 | 
				
			||||||
 | 
					  #:use-module (ice-9 match)
 | 
				
			||||||
 | 
					  #:use-module (ice-9 peg)
 | 
				
			||||||
 | 
					  #:use-module (ice-9 rdelim)
 | 
				
			||||||
 | 
					  #:use-module (ice-9 regex)
 | 
				
			||||||
 | 
					  #:use-module (rnrs io ports)
 | 
				
			||||||
 | 
					  #:autoload (shepherd service) (fork+exec-command)
 | 
				
			||||||
 | 
					  #:use-module (srfi srfi-1)
 | 
				
			||||||
 | 
					  #:use-module (srfi srfi-26)
 | 
				
			||||||
 | 
					  #:export (account-fingerprint?
 | 
				
			||||||
 | 
					            account-details->recutil
 | 
				
			||||||
 | 
					            get-accounts
 | 
				
			||||||
 | 
					            get-usernames
 | 
				
			||||||
 | 
					            set-account-details
 | 
				
			||||||
 | 
					            add-account
 | 
				
			||||||
 | 
					            account->username
 | 
				
			||||||
 | 
					            username->account
 | 
				
			||||||
 | 
					            username->contacts
 | 
				
			||||||
 | 
					            enable-account
 | 
				
			||||||
 | 
					            disable-account
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            add-contact
 | 
				
			||||||
 | 
					            remove-contact
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            set-all-moderators
 | 
				
			||||||
 | 
					            set-moderator
 | 
				
			||||||
 | 
					            username->all-moderators?
 | 
				
			||||||
 | 
					            username->moderators
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            dbus-available-services
 | 
				
			||||||
 | 
					            dbus-service-available?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            %send-dbus-binary
 | 
				
			||||||
 | 
					            %send-dbus-bus
 | 
				
			||||||
 | 
					            %send-dbus-user
 | 
				
			||||||
 | 
					            %send-dbus-group
 | 
				
			||||||
 | 
					            %send-dbus-debug
 | 
				
			||||||
 | 
					            send-dbus
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            with-retries))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; Utilities.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-syntax-rule (with-retries n delay body ...)
 | 
				
			||||||
 | 
					  "Retry the code in BODY up to N times until it doesn't raise an exception
 | 
				
			||||||
 | 
					nor return #f, else raise an error.  A delay of DELAY seconds is inserted
 | 
				
			||||||
 | 
					before each retry."
 | 
				
			||||||
 | 
					  (let loop ((attempts 0))
 | 
				
			||||||
 | 
					    (catch #t
 | 
				
			||||||
 | 
					      (lambda ()
 | 
				
			||||||
 | 
					        (let ((result (begin body ...)))
 | 
				
			||||||
 | 
					          (if (not result)
 | 
				
			||||||
 | 
					              (error "failed attempt" attempts)
 | 
				
			||||||
 | 
					              result)))
 | 
				
			||||||
 | 
					      (lambda args
 | 
				
			||||||
 | 
					        (if (< attempts n)
 | 
				
			||||||
 | 
					            (begin
 | 
				
			||||||
 | 
					              (sleep delay)             ;else wait and retry
 | 
				
			||||||
 | 
					              (loop (+ 1 attempts)))
 | 
				
			||||||
 | 
					            (error "maximum number of retry attempts reached"
 | 
				
			||||||
 | 
					                   body ... args))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (alist->list alist)
 | 
				
			||||||
 | 
					  "Flatten ALIST into a list."
 | 
				
			||||||
 | 
					  (append-map (match-lambda
 | 
				
			||||||
 | 
					                (() '())
 | 
				
			||||||
 | 
					                ((key . value)
 | 
				
			||||||
 | 
					                 (list key value)))
 | 
				
			||||||
 | 
					              alist))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define account-fingerprint-rx (make-regexp "[0-9A-Fa-f]{40}"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (account-fingerprint? val)
 | 
				
			||||||
 | 
					  "A Jami account fingerprint is 40 characters long and only contains
 | 
				
			||||||
 | 
					hexadecimal characters."
 | 
				
			||||||
 | 
					  (and (string? val)
 | 
				
			||||||
 | 
					       (regexp-exec account-fingerprint-rx val)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; D-Bus reply parser.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (parse-dbus-reply reply)
 | 
				
			||||||
 | 
					  "Return the parse tree of REPLY, a string returned by the 'dbus-send'
 | 
				
			||||||
 | 
					command."
 | 
				
			||||||
 | 
					  ;; Refer to 'man 1 dbus-send' for the grammar reference.  Note that the
 | 
				
			||||||
 | 
					  ;; format of the replies doesn't match the format of the input, which is the
 | 
				
			||||||
 | 
					  ;; one documented, but it gives an idea.  For an even better reference, see
 | 
				
			||||||
 | 
					  ;; the `print_iter' procedure of the 'dbus-print-message.c' file from the
 | 
				
			||||||
 | 
					  ;; 'dbus' package sources.
 | 
				
			||||||
 | 
					  (define-peg-string-patterns
 | 
				
			||||||
 | 
					    "contents <- header (item / container (item / container*)?)
 | 
				
			||||||
 | 
					     item <-- WS type WS value NL
 | 
				
			||||||
 | 
					     container <- array / dict / variant
 | 
				
			||||||
 | 
					     array <-- array-start (item / container)* array-end
 | 
				
			||||||
 | 
					     dict <-- array-start dict-entry* array-end
 | 
				
			||||||
 | 
					     dict-entry <-- dict-entry-start item item dict-entry-end
 | 
				
			||||||
 | 
					     variant <-- variant-start item
 | 
				
			||||||
 | 
					     type <-- 'string' / 'int16' / 'uint16' / 'int32' / 'uint32' / 'int64' /
 | 
				
			||||||
 | 
					              'uint64' / 'double' / 'byte' / 'boolean' / 'objpath'
 | 
				
			||||||
 | 
					     value <-- (!NL .)* NL
 | 
				
			||||||
 | 
					     header < (!NL .)* NL
 | 
				
			||||||
 | 
					     variant-start < WS 'variant'
 | 
				
			||||||
 | 
					     array-start < WS 'array [' NL
 | 
				
			||||||
 | 
					     array-end < WS ']' NL
 | 
				
			||||||
 | 
					     dict-entry-start < WS 'dict entry(' NL
 | 
				
			||||||
 | 
					     dict-entry-end < WS ')' NL
 | 
				
			||||||
 | 
					     DQ < '\"'
 | 
				
			||||||
 | 
					     WS < ' '*
 | 
				
			||||||
 | 
					     NL < '\n'*")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (peg:tree (match-pattern contents reply)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (strip-quotes text)
 | 
				
			||||||
 | 
					  "Strip the leading and trailing double quotes (\") characters from TEXT."
 | 
				
			||||||
 | 
					  (let* ((text* (if (string-prefix? "\"" text)
 | 
				
			||||||
 | 
					                    (string-drop text 1)
 | 
				
			||||||
 | 
					                    text))
 | 
				
			||||||
 | 
					         (text** (if (string-suffix? "\"" text*)
 | 
				
			||||||
 | 
					                     (string-drop-right text* 1)
 | 
				
			||||||
 | 
					                     text*)))
 | 
				
			||||||
 | 
					    text**))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (deserialize-item item)
 | 
				
			||||||
 | 
					  "Return the value described by the ITEM parse tree as a Guile object."
 | 
				
			||||||
 | 
					  ;; Strings are printed wrapped in double quotes (see the print_iter
 | 
				
			||||||
 | 
					  ;; procedure in dbus-print-message.c).
 | 
				
			||||||
 | 
					  (match item
 | 
				
			||||||
 | 
					    (('item ('type "string") ('value value))
 | 
				
			||||||
 | 
					     (strip-quotes value))
 | 
				
			||||||
 | 
					    (('item ('type "boolean") ('value value))
 | 
				
			||||||
 | 
					     (if (string=? "true" value)
 | 
				
			||||||
 | 
					         #t
 | 
				
			||||||
 | 
					         #f))
 | 
				
			||||||
 | 
					    (('item _ ('value value))
 | 
				
			||||||
 | 
					     value)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (serialize-boolean bool)
 | 
				
			||||||
 | 
					  "Return the serialized format expected by dbus-send for BOOL."
 | 
				
			||||||
 | 
					  (format #f "boolean:~:[false~;true~]" bool))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (dict->alist dict-parse-tree)
 | 
				
			||||||
 | 
					  "Translate a dict parse tree to an alist."
 | 
				
			||||||
 | 
					  (define (tuples->alist tuples)
 | 
				
			||||||
 | 
					    (map (lambda (x) (apply cons x)) tuples))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (match dict-parse-tree
 | 
				
			||||||
 | 
					    ('dict
 | 
				
			||||||
 | 
					     '())
 | 
				
			||||||
 | 
					    (('dict ('dict-entry keys values) ...)
 | 
				
			||||||
 | 
					     (let ((keys* (map deserialize-item keys))
 | 
				
			||||||
 | 
					           (values* (map deserialize-item values)))
 | 
				
			||||||
 | 
					       (tuples->alist (zip keys* values*))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (array->list array-parse-tree)
 | 
				
			||||||
 | 
					  "Translate an array parse tree to a list."
 | 
				
			||||||
 | 
					  (match array-parse-tree
 | 
				
			||||||
 | 
					    ('array
 | 
				
			||||||
 | 
					     '())
 | 
				
			||||||
 | 
					    (('array items ...)
 | 
				
			||||||
 | 
					     (map deserialize-item items))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; Low-level, D-Bus-related procedures.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; The following parameters are used in the jami-service-type service
 | 
				
			||||||
 | 
					;;; definition to conveniently customize the behavior of the send-dbus helper,
 | 
				
			||||||
 | 
					;;; even when called indirectly.
 | 
				
			||||||
 | 
					(define %send-dbus-binary (make-parameter "dbus-send"))
 | 
				
			||||||
 | 
					(define %send-dbus-bus (make-parameter #f))
 | 
				
			||||||
 | 
					(define %send-dbus-user (make-parameter #f))
 | 
				
			||||||
 | 
					(define %send-dbus-group (make-parameter #f))
 | 
				
			||||||
 | 
					(define %send-dbus-debug (make-parameter #f))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define* (send-dbus #:key service path interface method
 | 
				
			||||||
 | 
					                    bus
 | 
				
			||||||
 | 
					                    dbus-send
 | 
				
			||||||
 | 
					                    user group
 | 
				
			||||||
 | 
					                    timeout
 | 
				
			||||||
 | 
					                    arguments)
 | 
				
			||||||
 | 
					  "Return the response of DBUS-SEND, else raise an error.  Unless explicitly
 | 
				
			||||||
 | 
					provided, DBUS-SEND takes the value of the %SEND-DBUS-BINARY parameter.  BUS
 | 
				
			||||||
 | 
					can be used to specify the bus address, such as 'unix:path=/var/run/jami/bus'.
 | 
				
			||||||
 | 
					Alternatively, the %SEND-DBUS-BUS parameter can be used.  ARGUMENTS can be
 | 
				
			||||||
 | 
					used to pass input values to a D-Bus method call.  TIMEOUT is the amount of
 | 
				
			||||||
 | 
					time to wait for a reply in milliseconds before giving up with an error.  USER
 | 
				
			||||||
 | 
					and GROUP allow choosing under which user/group the DBUS-SEND command is
 | 
				
			||||||
 | 
					executed.  Alternatively, the %SEND-DBUS-USER and %SEND-DBUS-GROUP parameters
 | 
				
			||||||
 | 
					can be used instead."
 | 
				
			||||||
 | 
					  (let* ((command `(,(if dbus-send
 | 
				
			||||||
 | 
					                         dbus-send
 | 
				
			||||||
 | 
					                         (%send-dbus-binary))
 | 
				
			||||||
 | 
					                    ,@(if (or bus (%send-dbus-bus))
 | 
				
			||||||
 | 
					                          (list (string-append "--bus="
 | 
				
			||||||
 | 
					                                               (or bus (%send-dbus-bus))))
 | 
				
			||||||
 | 
					                          '())
 | 
				
			||||||
 | 
					                    "--print-reply"
 | 
				
			||||||
 | 
					                    ,@(if timeout
 | 
				
			||||||
 | 
					                          (list (format #f "--reply-timeout=~d" timeout))
 | 
				
			||||||
 | 
					                          '())
 | 
				
			||||||
 | 
					                    ,(string-append "--dest=" service) ;e.g., cx.ring.Ring
 | 
				
			||||||
 | 
					                    ,path            ;e.g., /cx/ring/Ring/ConfigurationManager
 | 
				
			||||||
 | 
					                    ,(string-append interface "." method)
 | 
				
			||||||
 | 
					                    ,@(or arguments '())))
 | 
				
			||||||
 | 
					         (temp-port (mkstemp! (string-copy "/tmp/dbus-send-output-XXXXXXX")))
 | 
				
			||||||
 | 
					         (temp-file (port-filename temp-port)))
 | 
				
			||||||
 | 
					    (dynamic-wind
 | 
				
			||||||
 | 
					      (lambda ()
 | 
				
			||||||
 | 
					        (let* ((uid (or (and=> (or user (%send-dbus-user))
 | 
				
			||||||
 | 
					                               (compose passwd:uid getpwnam)) -1))
 | 
				
			||||||
 | 
					               (gid (or (and=> (or group (%send-dbus-group))
 | 
				
			||||||
 | 
					                               (compose group:gid getgrnam)) -1)))
 | 
				
			||||||
 | 
					          (chown temp-port uid gid)))
 | 
				
			||||||
 | 
					      (lambda ()
 | 
				
			||||||
 | 
					        (let ((pid (fork+exec-command command
 | 
				
			||||||
 | 
					                                      #:user (or user (%send-dbus-user))
 | 
				
			||||||
 | 
					                                      #:group (or group (%send-dbus-group))
 | 
				
			||||||
 | 
					                                      #:log-file temp-file)))
 | 
				
			||||||
 | 
					          (match (waitpid pid)
 | 
				
			||||||
 | 
					            ((_ . status)
 | 
				
			||||||
 | 
					             (let ((exit-status (status:exit-val status))
 | 
				
			||||||
 | 
					                   (output (call-with-port temp-port get-string-all)))
 | 
				
			||||||
 | 
					               (if (= 0 exit-status)
 | 
				
			||||||
 | 
					                   output
 | 
				
			||||||
 | 
					                   (error "the send-dbus command exited with: "
 | 
				
			||||||
 | 
					                          command exit-status output)))))))
 | 
				
			||||||
 | 
					      (lambda ()
 | 
				
			||||||
 | 
					        (false-if-exception (delete-file temp-file))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (parse-account-ids reply)
 | 
				
			||||||
 | 
					  "Return the Jami account IDs from REPLY, which is assumed to be the output
 | 
				
			||||||
 | 
					of the Jami D-Bus `getAccountList' method."
 | 
				
			||||||
 | 
					  (array->list (parse-dbus-reply reply)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (parse-account-details reply)
 | 
				
			||||||
 | 
					  "Parse REPLY, which is assumed to be the output of the Jami D-Bus
 | 
				
			||||||
 | 
					`getAccountDetails' method, and return its content as an alist."
 | 
				
			||||||
 | 
					  (dict->alist (parse-dbus-reply reply)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (parse-contacts reply)
 | 
				
			||||||
 | 
					  "Parse REPLY, which is assumed to be the output of the Jamid D-Bus
 | 
				
			||||||
 | 
					`getContacts' method, and return its content as an alist."
 | 
				
			||||||
 | 
					  (match (parse-dbus-reply reply)
 | 
				
			||||||
 | 
					    ('array
 | 
				
			||||||
 | 
					     '())
 | 
				
			||||||
 | 
					    (('array dicts ...)
 | 
				
			||||||
 | 
					     (map dict->alist dicts))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; Higher-level, D-Bus-related procedures.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (validate-fingerprint fingerprint)
 | 
				
			||||||
 | 
					  "Validate that fingerprint is 40 characters long."
 | 
				
			||||||
 | 
					  (unless (account-fingerprint? fingerprint)
 | 
				
			||||||
 | 
					    (error "Account fingerprint is not valid:" fingerprint)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (dbus-available-services)
 | 
				
			||||||
 | 
					  "Return the list of available (acquired) D-Bus services."
 | 
				
			||||||
 | 
					  (let ((reply (parse-dbus-reply
 | 
				
			||||||
 | 
					                (send-dbus #:service "org.freedesktop.DBus"
 | 
				
			||||||
 | 
					                           #:path "/org/freedesktop/DBus"
 | 
				
			||||||
 | 
					                           #:interface "org.freedesktop.DBus"
 | 
				
			||||||
 | 
					                           #:method "ListNames"))))
 | 
				
			||||||
 | 
					    ;; Remove entries such as ":1.7".
 | 
				
			||||||
 | 
					    (remove (cut string-prefix? ":" <>)
 | 
				
			||||||
 | 
					            (array->list reply))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (dbus-service-available? service)
 | 
				
			||||||
 | 
					  "Predicate to check for the D-Bus SERVICE availability."
 | 
				
			||||||
 | 
					  (member service (dbus-available-services)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define* (send-dbus/configuration-manager #:key method arguments timeout)
 | 
				
			||||||
 | 
					  "Query the Jami D-Bus ConfigurationManager service."
 | 
				
			||||||
 | 
					  (send-dbus #:service "cx.ring.Ring"
 | 
				
			||||||
 | 
					             #:path "/cx/ring/Ring/ConfigurationManager"
 | 
				
			||||||
 | 
					             #:interface "cx.ring.Ring.ConfigurationManager"
 | 
				
			||||||
 | 
					             #:method method
 | 
				
			||||||
 | 
					             #:arguments arguments
 | 
				
			||||||
 | 
					             #:timeout timeout))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; The following methods are for internal use; they make use of the account
 | 
				
			||||||
 | 
					;;; ID, an implementation detail of Jami the user should not need to be
 | 
				
			||||||
 | 
					;;; concerned with.
 | 
				
			||||||
 | 
					(define (get-account-ids)
 | 
				
			||||||
 | 
					  "Return the available Jami account identifiers (IDs).  Account IDs are an
 | 
				
			||||||
 | 
					implementation detail used to identify the accounts in Jami."
 | 
				
			||||||
 | 
					  (parse-account-ids
 | 
				
			||||||
 | 
					   (send-dbus/configuration-manager #:method "getAccountList")))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (id->account-details id)
 | 
				
			||||||
 | 
					  "Retrieve the account data associated with the given account ID."
 | 
				
			||||||
 | 
					  (parse-account-details
 | 
				
			||||||
 | 
					   (send-dbus/configuration-manager
 | 
				
			||||||
 | 
					    #:method "getAccountDetails"
 | 
				
			||||||
 | 
					    #:arguments (list (string-append "string:" id)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (id->volatile-account-details id)
 | 
				
			||||||
 | 
					  "Retrieve the account data associated with the given account ID."
 | 
				
			||||||
 | 
					  (parse-account-details
 | 
				
			||||||
 | 
					   (send-dbus/configuration-manager
 | 
				
			||||||
 | 
					    #:method "getVolatileAccountDetails"
 | 
				
			||||||
 | 
					    #:arguments (list (string-append "string:" id)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (id->account id)
 | 
				
			||||||
 | 
					  "Retrieve the complete account data associated with the given account ID."
 | 
				
			||||||
 | 
					  (append (id->volatile-account-details id)
 | 
				
			||||||
 | 
					          (id->account-details id)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define %username-to-id-cache #f)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (invalidate-username-to-id-cache!)
 | 
				
			||||||
 | 
					  (set! %username-to-id-cache #f))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (username->id username)
 | 
				
			||||||
 | 
					  "Return the first account ID corresponding to USERNAME."
 | 
				
			||||||
 | 
					  (unless (assoc-ref %username-to-id-cache username)
 | 
				
			||||||
 | 
					    (set! %username-to-id-cache
 | 
				
			||||||
 | 
					          (append-map
 | 
				
			||||||
 | 
					           (lambda (id)
 | 
				
			||||||
 | 
					             (let* ((account (id->account id))
 | 
				
			||||||
 | 
					                    (username (assoc-ref account "Account.username"))
 | 
				
			||||||
 | 
					                    (registered-name (assoc-ref account
 | 
				
			||||||
 | 
					                                                "Account.registeredName")))
 | 
				
			||||||
 | 
					               `(,@(if username
 | 
				
			||||||
 | 
					                       (list (cons username id))
 | 
				
			||||||
 | 
					                       '())
 | 
				
			||||||
 | 
					                 ,@(if registered-name
 | 
				
			||||||
 | 
					                       (list (cons registered-name id))
 | 
				
			||||||
 | 
					                       '()))))
 | 
				
			||||||
 | 
					           (get-account-ids))))
 | 
				
			||||||
 | 
					  (or (assoc-ref %username-to-id-cache username)
 | 
				
			||||||
 | 
					      (let ((message (format #f "Could not retrieve a local account ID\
 | 
				
			||||||
 | 
					 for ~:[username~;fingerprint~]" (account-fingerprint? username))))
 | 
				
			||||||
 | 
					        (error message username))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (account->username account)
 | 
				
			||||||
 | 
					  "Return USERNAME, the registered username associated with ACCOUNT, else its
 | 
				
			||||||
 | 
					public key fingerprint."
 | 
				
			||||||
 | 
					  (or (assoc-ref account "Account.registeredName")
 | 
				
			||||||
 | 
					      (assoc-ref account "Account.username")))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (id->username id)
 | 
				
			||||||
 | 
					  "Return USERNAME, the registered username associated with ID, else its
 | 
				
			||||||
 | 
					public key fingerprint, else #f."
 | 
				
			||||||
 | 
					  (account->username (id->account id)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (get-accounts)
 | 
				
			||||||
 | 
					  "Return the list of all accounts, as a list of alists."
 | 
				
			||||||
 | 
					  (map id->account (get-account-ids)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (get-usernames)
 | 
				
			||||||
 | 
					  "Return the list of the usernames associated with the present accounts."
 | 
				
			||||||
 | 
					  (map account->username (get-accounts)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (username->account username)
 | 
				
			||||||
 | 
					  "Return the first account associated with USERNAME, else #f.
 | 
				
			||||||
 | 
					USERNAME can be either the account 40 characters public key fingerprint or a
 | 
				
			||||||
 | 
					registered username."
 | 
				
			||||||
 | 
					  (find (lambda (account)
 | 
				
			||||||
 | 
					          (member username
 | 
				
			||||||
 | 
					                  (list (assoc-ref account "Account.username")
 | 
				
			||||||
 | 
					                        (assoc-ref account "Account.registeredName"))))
 | 
				
			||||||
 | 
					        (get-accounts)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (add-account archive)
 | 
				
			||||||
 | 
					  "Import the Jami account ARCHIVE and return its account ID.  The archive
 | 
				
			||||||
 | 
					should *not* be encrypted with a password.  Return the username associated
 | 
				
			||||||
 | 
					with the account."
 | 
				
			||||||
 | 
					  (invalidate-username-to-id-cache!)
 | 
				
			||||||
 | 
					  (let ((reply (send-dbus/configuration-manager
 | 
				
			||||||
 | 
					                #:method "addAccount"
 | 
				
			||||||
 | 
					                #:arguments (list (string-append
 | 
				
			||||||
 | 
					                                   "dict:string:string:Account.archivePath,"
 | 
				
			||||||
 | 
					                                   archive
 | 
				
			||||||
 | 
					                                   ",Account.type,RING")))))
 | 
				
			||||||
 | 
					    ;; The account information takes some time to be populated.
 | 
				
			||||||
 | 
					    (let ((id (deserialize-item (parse-dbus-reply reply))))
 | 
				
			||||||
 | 
					      (with-retries 20 1
 | 
				
			||||||
 | 
					        (let ((username (id->username id)))
 | 
				
			||||||
 | 
					          (if (string-null? username)
 | 
				
			||||||
 | 
					              #f
 | 
				
			||||||
 | 
					              username))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (remove-account username)
 | 
				
			||||||
 | 
					  "Delete the Jami account associated with USERNAME, the account 40 characters
 | 
				
			||||||
 | 
					fingerprint or a registered username."
 | 
				
			||||||
 | 
					  (let ((id (username->id username)))
 | 
				
			||||||
 | 
					    (send-dbus/configuration-manager
 | 
				
			||||||
 | 
					     #:method "removeAccount"
 | 
				
			||||||
 | 
					     #:arguments (list (string-append "string:" id))))
 | 
				
			||||||
 | 
					  (invalidate-username-to-id-cache!))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define* (username->contacts username)
 | 
				
			||||||
 | 
					  "Return the contacts associated with the account of USERNAME as two values;
 | 
				
			||||||
 | 
					the first one being the regular contacts and the second one the banned
 | 
				
			||||||
 | 
					contacts.  USERNAME can be either the account 40 characters public key
 | 
				
			||||||
 | 
					fingerprint or a registered username.  The contacts returned are represented
 | 
				
			||||||
 | 
					using their 40 characters fingerprint."
 | 
				
			||||||
 | 
					  (let* ((id (username->id username))
 | 
				
			||||||
 | 
					         (reply (send-dbus/configuration-manager
 | 
				
			||||||
 | 
					                 #:method "getContacts"
 | 
				
			||||||
 | 
					                 #:arguments (list (string-append "string:" id))))
 | 
				
			||||||
 | 
					         (all-contacts (parse-contacts reply))
 | 
				
			||||||
 | 
					         (banned? (lambda (contact)
 | 
				
			||||||
 | 
					                    (and=> (assoc-ref contact "banned")
 | 
				
			||||||
 | 
					                           (cut string=? "true" <>))))
 | 
				
			||||||
 | 
					         (banned (filter banned? all-contacts))
 | 
				
			||||||
 | 
					         (not-banned (filter (negate banned?) all-contacts))
 | 
				
			||||||
 | 
					         (fingerprint (cut assoc-ref <> "id")))
 | 
				
			||||||
 | 
					    (values (map fingerprint not-banned)
 | 
				
			||||||
 | 
					            (map fingerprint banned))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define* (remove-contact contact username #:key ban?)
 | 
				
			||||||
 | 
					  "Remove CONTACT, the 40 characters public key fingerprint of a contact, from
 | 
				
			||||||
 | 
					the account associated with USERNAME (either a fingerprint or a registered
 | 
				
			||||||
 | 
					username).  When BAN? is true, also mark the contact as banned."
 | 
				
			||||||
 | 
					  (validate-fingerprint contact)
 | 
				
			||||||
 | 
					  (let ((id (username->id username)))
 | 
				
			||||||
 | 
					    (send-dbus/configuration-manager
 | 
				
			||||||
 | 
					     #:method "removeContact"
 | 
				
			||||||
 | 
					     #:arguments (list (string-append "string:" id)
 | 
				
			||||||
 | 
					                       (string-append "string:" contact)
 | 
				
			||||||
 | 
					                       (serialize-boolean ban?)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (add-contact contact username)
 | 
				
			||||||
 | 
					  "Add CONTACT, the 40 characters public key fingerprint of a contact, to the
 | 
				
			||||||
 | 
					account of USERNAME (either a fingerprint or a registered username)."
 | 
				
			||||||
 | 
					  (validate-fingerprint contact)
 | 
				
			||||||
 | 
					  (let ((id (username->id username)))
 | 
				
			||||||
 | 
					    (send-dbus/configuration-manager
 | 
				
			||||||
 | 
					     #:method "addContact"
 | 
				
			||||||
 | 
					     #:arguments (list (string-append "string:" id)
 | 
				
			||||||
 | 
					                       (string-append "string:" contact)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define* (set-account-details details username #:key timeout)
 | 
				
			||||||
 | 
					  "Set DETAILS, an alist containing the key value pairs to set for the account
 | 
				
			||||||
 | 
					of USERNAME, a registered username or account fingerprint.  The value of the
 | 
				
			||||||
 | 
					parameters not provided are unchanged.  TIMEOUT is a value in milliseconds to
 | 
				
			||||||
 | 
					pass to the `send-dbus/configuration-manager' procedure."
 | 
				
			||||||
 | 
					  (let* ((id (username->id username))
 | 
				
			||||||
 | 
					         (current-details (id->account-details id))
 | 
				
			||||||
 | 
					         (updated-details (map (match-lambda
 | 
				
			||||||
 | 
					                                 ((key . value)
 | 
				
			||||||
 | 
					                                  (or (and=> (assoc-ref details key)
 | 
				
			||||||
 | 
					                                             (cut cons key <>))
 | 
				
			||||||
 | 
					                                      (cons key value))))
 | 
				
			||||||
 | 
					                               current-details))
 | 
				
			||||||
 | 
					         ;; dbus-send does not permit sending null strings (it throws a
 | 
				
			||||||
 | 
					         ;; "malformed dictionary" error).  Luckily they seem to have the
 | 
				
			||||||
 | 
					         ;; semantic of "default account value" in Jami; so simply drop them.
 | 
				
			||||||
 | 
					         (updated-details* (remove (match-lambda
 | 
				
			||||||
 | 
					                                     ((_ . value)
 | 
				
			||||||
 | 
					                                      (string-null? value)))
 | 
				
			||||||
 | 
					                                   updated-details)))
 | 
				
			||||||
 | 
					    (send-dbus/configuration-manager
 | 
				
			||||||
 | 
					     #:timeout timeout
 | 
				
			||||||
 | 
					     #:method "setAccountDetails"
 | 
				
			||||||
 | 
					     #:arguments
 | 
				
			||||||
 | 
					     (list (string-append "string:" id)
 | 
				
			||||||
 | 
					           (string-append "dict:string:string:"
 | 
				
			||||||
 | 
					                          (string-join (alist->list updated-details*)
 | 
				
			||||||
 | 
					                                       ","))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (set-all-moderators enabled? username)
 | 
				
			||||||
 | 
					  "Set the 'AllModerators' property to enabled? for the account of USERNAME, a
 | 
				
			||||||
 | 
					registered username or account fingerprint."
 | 
				
			||||||
 | 
					  (let ((id (username->id username)))
 | 
				
			||||||
 | 
					    (send-dbus/configuration-manager
 | 
				
			||||||
 | 
					     #:method "setAllModerators"
 | 
				
			||||||
 | 
					     #:arguments
 | 
				
			||||||
 | 
					     (list (string-append "string:" id)
 | 
				
			||||||
 | 
					           (serialize-boolean enabled?)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (username->all-moderators? username)
 | 
				
			||||||
 | 
					  "Return the 'AllModerators' property for the account of USERNAME, a
 | 
				
			||||||
 | 
					registered username or account fingerprint."
 | 
				
			||||||
 | 
					  (let* ((id (username->id username))
 | 
				
			||||||
 | 
					         (reply (send-dbus/configuration-manager
 | 
				
			||||||
 | 
					                 #:method "isAllModerators"
 | 
				
			||||||
 | 
					                 #:arguments
 | 
				
			||||||
 | 
					                 (list (string-append "string:" id)))))
 | 
				
			||||||
 | 
					    (deserialize-item (parse-dbus-reply reply))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (username->moderators username)
 | 
				
			||||||
 | 
					  "Return the moderators for the account of USERNAME, a registered username or
 | 
				
			||||||
 | 
					account fingerprint."
 | 
				
			||||||
 | 
					  (let* ((id (username->id username))
 | 
				
			||||||
 | 
					         (reply (send-dbus/configuration-manager
 | 
				
			||||||
 | 
					                 #:method "getDefaultModerators"
 | 
				
			||||||
 | 
					                 #:arguments
 | 
				
			||||||
 | 
					                 (list (string-append "string:" id)))))
 | 
				
			||||||
 | 
					    (array->list (parse-dbus-reply reply))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (set-moderator contact enabled? username)
 | 
				
			||||||
 | 
					  "Set the moderator flag to ENABLED? for CONTACT, the 40 characters public
 | 
				
			||||||
 | 
					key fingerprint of a contact for the account of USERNAME, a registered
 | 
				
			||||||
 | 
					username or account fingerprint."
 | 
				
			||||||
 | 
					  (validate-fingerprint contact)
 | 
				
			||||||
 | 
					  (let* ((id (username->id username)))
 | 
				
			||||||
 | 
					    (send-dbus/configuration-manager #:method "setDefaultModerator"
 | 
				
			||||||
 | 
					                                     #:arguments
 | 
				
			||||||
 | 
					                                     (list (string-append "string:" id)
 | 
				
			||||||
 | 
					                                           (string-append "string:" contact)
 | 
				
			||||||
 | 
					                                           (serialize-boolean enabled?)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (disable-account username)
 | 
				
			||||||
 | 
					  "Disable the account known by USERNAME, a registered username or account
 | 
				
			||||||
 | 
					fingerprint."
 | 
				
			||||||
 | 
					  (set-account-details '(("Account.enable" . "false")) username
 | 
				
			||||||
 | 
					                       ;; Waiting for the reply on this command takes a very
 | 
				
			||||||
 | 
					                       ;; long time that trips the default D-Bus timeout value
 | 
				
			||||||
 | 
					                       ;; (25 s), for some reason.
 | 
				
			||||||
 | 
					                        #:timeout 60000))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (enable-account username)
 | 
				
			||||||
 | 
					  "Enable the account known by USERNAME, a registered username or account
 | 
				
			||||||
 | 
					fingerprint."
 | 
				
			||||||
 | 
					  (set-account-details '(("Account.enable" . "true")) username))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; Presentation procedures.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (.->_ text)
 | 
				
			||||||
 | 
					  "Map each period character to underscore characters."
 | 
				
			||||||
 | 
					  (string-map (match-lambda
 | 
				
			||||||
 | 
					                (#\. #\_)
 | 
				
			||||||
 | 
					                (c c))
 | 
				
			||||||
 | 
					              text))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (account-details->recutil account-details)
 | 
				
			||||||
 | 
					  "Serialize the account-details alist into a recutil string.  Period
 | 
				
			||||||
 | 
					characters in the keys are normalized to underscore to meet Recutils' format
 | 
				
			||||||
 | 
					requirements."
 | 
				
			||||||
 | 
					  (define (pair->recutil-property pair)
 | 
				
			||||||
 | 
					    (match pair
 | 
				
			||||||
 | 
					      ((key . value)
 | 
				
			||||||
 | 
					       (string-append (.->_ key) ": " value))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (define sorted-account-details
 | 
				
			||||||
 | 
					    ;; Have the account username, display name and alias appear first, for
 | 
				
			||||||
 | 
					    ;; convenience.
 | 
				
			||||||
 | 
					    (let ((first-items '("Account.username"
 | 
				
			||||||
 | 
					                         "Account.displayName"
 | 
				
			||||||
 | 
					                         "Account.alias")))
 | 
				
			||||||
 | 
					      (append (map (cut assoc <> account-details) first-items)
 | 
				
			||||||
 | 
					              (fold alist-delete account-details first-items))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (string-join (map pair->recutil-property sorted-account-details) "\n"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; Local Variables:
 | 
				
			||||||
 | 
					;; eval: (put 'with-retries 'scheme-indent-function 2)
 | 
				
			||||||
 | 
					;; End:
 | 
				
			||||||
| 
						 | 
					@ -390,10 +390,6 @@ networking values.)  Return #t if INTERFACE is up, #f otherwise."
 | 
				
			||||||
    (set-network-interface-address sock interface address)
 | 
					    (set-network-interface-address sock interface address)
 | 
				
			||||||
    (set-network-interface-flags sock interface (logior flags IFF_UP))
 | 
					    (set-network-interface-flags sock interface (logior flags IFF_UP))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ;; Hello!  We used to create /etc/resolv.conf here, with "nameserver
 | 
					 | 
				
			||||||
    ;; 10.0.2.3\n".  However, with Linux-libre 3.16, we're getting ENOSPC.
 | 
					 | 
				
			||||||
    ;; And since it's actually unnecessary, it's gone.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    (logand (network-interface-flags sock interface) IFF_UP)))
 | 
					    (logand (network-interface-flags sock interface) IFF_UP)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (device-number major minor)
 | 
					(define (device-number major minor)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,6 +24,12 @@
 | 
				
			||||||
  #:use-module (srfi srfi-1)
 | 
					  #:use-module (srfi srfi-1)
 | 
				
			||||||
  #:use-module (srfi srfi-26)
 | 
					  #:use-module (srfi srfi-26)
 | 
				
			||||||
  #:use-module (ice-9 match)
 | 
					  #:use-module (ice-9 match)
 | 
				
			||||||
 | 
					  ;; XXX: Lazy-bind the Shepherd to avoid a compile-time dependency.
 | 
				
			||||||
 | 
					  #:autoload (shepherd service) (fork+exec-command
 | 
				
			||||||
 | 
					                                 read-pid-file
 | 
				
			||||||
 | 
					                                 exec-command
 | 
				
			||||||
 | 
					                                 %precious-signals)
 | 
				
			||||||
 | 
					  #:autoload (shepherd system) (unblock-signals)
 | 
				
			||||||
  #:export (make-forkexec-constructor/container
 | 
					  #:export (make-forkexec-constructor/container
 | 
				
			||||||
            fork+exec-command/container))
 | 
					            fork+exec-command/container))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -92,14 +98,6 @@
 | 
				
			||||||
                           (file-exists? (file-system-mapping-source mapping)))
 | 
					                           (file-exists? (file-system-mapping-source mapping)))
 | 
				
			||||||
                         mappings)))))
 | 
					                         mappings)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; XXX: Lazy-bind the Shepherd to avoid a compile-time dependency.
 | 
					 | 
				
			||||||
(module-autoload! (current-module)
 | 
					 | 
				
			||||||
                  '(shepherd service)
 | 
					 | 
				
			||||||
                  '(fork+exec-command read-pid-file exec-command
 | 
					 | 
				
			||||||
                    %precious-signals))
 | 
					 | 
				
			||||||
(module-autoload! (current-module)
 | 
					 | 
				
			||||||
                  '(shepherd system) '(unblock-signals))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define* (read-pid-file/container pid pid-file #:key (max-delay 5))
 | 
					(define* (read-pid-file/container pid pid-file #:key (max-delay 5))
 | 
				
			||||||
  "Read PID-FILE in the container namespaces of PID, which exists in a
 | 
					  "Read PID-FILE in the container namespaces of PID, which exists in a
 | 
				
			||||||
separate mount and PID name space.  Return the \"outer\" PID. "
 | 
					separate mount and PID name space.  Return the \"outer\" PID. "
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 | 
					;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 | 
				
			||||||
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
 | 
					;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
 | 
				
			||||||
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
 | 
					;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
 | 
				
			||||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 | 
					;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 | 
				
			||||||
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 | 
					;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
 | 
					;;; Copyright © 2018, 2021 Mathieu Othacehe <othacehe@gnu.org>
 | 
				
			||||||
;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
 | 
					;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
| 
						 | 
					@ -79,6 +79,11 @@
 | 
				
			||||||
  "Parse FILE and return two values, the list of supported X11-KEYMAP-MODEL
 | 
					  "Parse FILE and return two values, the list of supported X11-KEYMAP-MODEL
 | 
				
			||||||
and X11-KEYMAP-LAYOUT records. FILE is an XML file from the X Keyboard
 | 
					and X11-KEYMAP-LAYOUT records. FILE is an XML file from the X Keyboard
 | 
				
			||||||
Configuration Database, describing possible XKB configurations."
 | 
					Configuration Database, describing possible XKB configurations."
 | 
				
			||||||
 | 
					  (define maybe-empty
 | 
				
			||||||
 | 
					    (match-lambda
 | 
				
			||||||
 | 
					      ((x) x)
 | 
				
			||||||
 | 
					      (#f "")))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  (define (model m)
 | 
					  (define (model m)
 | 
				
			||||||
    (sxml-match m
 | 
					    (sxml-match m
 | 
				
			||||||
                [(model
 | 
					                [(model
 | 
				
			||||||
| 
						 | 
					@ -108,7 +113,7 @@ Configuration Database, describing possible XKB configurations."
 | 
				
			||||||
                   . ,rest-variant))
 | 
					                   . ,rest-variant))
 | 
				
			||||||
                 (x11-keymap-variant
 | 
					                 (x11-keymap-variant
 | 
				
			||||||
                  (name name)
 | 
					                  (name name)
 | 
				
			||||||
                  (description (car
 | 
					                  (description (maybe-empty
 | 
				
			||||||
                                (assoc-ref rest-variant 'description))))]))
 | 
					                                (assoc-ref rest-variant 'description))))]))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  (define (layout l)
 | 
					  (define (layout l)
 | 
				
			||||||
| 
						 | 
					@ -120,9 +125,9 @@ Configuration Database, describing possible XKB configurations."
 | 
				
			||||||
                  (variantList ,[variant -> v] ...))
 | 
					                  (variantList ,[variant -> v] ...))
 | 
				
			||||||
                 (x11-keymap-layout
 | 
					                 (x11-keymap-layout
 | 
				
			||||||
                  (name name)
 | 
					                  (name name)
 | 
				
			||||||
                  (synopsis (car
 | 
					                  (synopsis (maybe-empty
 | 
				
			||||||
                             (assoc-ref rest-layout 'shortDescription)))
 | 
					                             (assoc-ref rest-layout 'shortDescription)))
 | 
				
			||||||
                  (description (car
 | 
					                  (description (maybe-empty
 | 
				
			||||||
                                (assoc-ref rest-layout 'description)))
 | 
					                                (assoc-ref rest-layout 'description)))
 | 
				
			||||||
                  (variants (list v ...)))]
 | 
					                  (variants (list v ...)))]
 | 
				
			||||||
                [(layout
 | 
					                [(layout
 | 
				
			||||||
| 
						 | 
					@ -131,9 +136,9 @@ Configuration Database, describing possible XKB configurations."
 | 
				
			||||||
                   . ,rest-layout))
 | 
					                   . ,rest-layout))
 | 
				
			||||||
                 (x11-keymap-layout
 | 
					                 (x11-keymap-layout
 | 
				
			||||||
                  (name name)
 | 
					                  (name name)
 | 
				
			||||||
                  (synopsis (car
 | 
					                  (synopsis (maybe-empty
 | 
				
			||||||
                             (assoc-ref rest-layout 'shortDescription)))
 | 
					                             (assoc-ref rest-layout 'shortDescription)))
 | 
				
			||||||
                  (description (car
 | 
					                  (description (maybe-empty
 | 
				
			||||||
                                (assoc-ref rest-layout 'description)))
 | 
					                                (assoc-ref rest-layout 'description)))
 | 
				
			||||||
                  (variants '()))]))
 | 
					                  (variants '()))]))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1356,9 +1356,9 @@ from (gnu system mapped-devices) and return it."
 | 
				
			||||||
    `((bootloader-configuration
 | 
					    `((bootloader-configuration
 | 
				
			||||||
       ,@(if (efi-installation?)
 | 
					       ,@(if (efi-installation?)
 | 
				
			||||||
             `((bootloader grub-efi-bootloader)
 | 
					             `((bootloader grub-efi-bootloader)
 | 
				
			||||||
               (target ,(default-esp-mount-point)))
 | 
					               (targets (list ,(default-esp-mount-point))))
 | 
				
			||||||
             `((bootloader grub-bootloader)
 | 
					             `((bootloader grub-bootloader)
 | 
				
			||||||
               (target ,root-partition-disk)))
 | 
					               (targets (list ,root-partition-disk))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
       ;; XXX: Assume we defined the 'keyboard-layout' field of
 | 
					       ;; XXX: Assume we defined the 'keyboard-layout' field of
 | 
				
			||||||
       ;; <operating-system> right above.
 | 
					       ;; <operating-system> right above.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										92
									
								
								gnu/local.mk
									
										
									
									
									
								
							
							
						
						
									
										92
									
								
								gnu/local.mk
									
										
									
									
									
								
							| 
						 | 
					@ -20,7 +20,7 @@
 | 
				
			||||||
# Copyright © 2018, 2019, 2020, 2021 Oleg Pykhalov <go.wigust@gmail.com>
 | 
					# Copyright © 2018, 2019, 2020, 2021 Oleg Pykhalov <go.wigust@gmail.com>
 | 
				
			||||||
# Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
 | 
					# Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
 | 
				
			||||||
# Copyright © 2018, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
					# Copyright © 2018, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
				
			||||||
# Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
 | 
					# Copyright © 2019, 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
 | 
				
			||||||
# Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
 | 
					# Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
 | 
				
			||||||
# Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
 | 
					# Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
 | 
				
			||||||
# Copyright © 2019 Evan Straw <evan.straw99@gmail.com>
 | 
					# Copyright © 2019 Evan Straw <evan.straw99@gmail.com>
 | 
				
			||||||
| 
						 | 
					@ -44,6 +44,7 @@
 | 
				
			||||||
# Copyright © 2021 Philip McGrath <philip@philipmcgrath.com>
 | 
					# Copyright © 2021 Philip McGrath <philip@philipmcgrath.com>
 | 
				
			||||||
# Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
 | 
					# Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
 | 
				
			||||||
# Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
 | 
					# Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
 | 
				
			||||||
 | 
					# Copyright © 2021 Dmitry Polyakov <polyakov@liltechdude.xyz>
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# This file is part of GNU Guix.
 | 
					# This file is part of GNU Guix.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -187,7 +188,6 @@ GNU_SYSTEM_MODULES =				\
 | 
				
			||||||
  %D%/packages/docbook.scm			\
 | 
					  %D%/packages/docbook.scm			\
 | 
				
			||||||
  %D%/packages/docker.scm			\
 | 
					  %D%/packages/docker.scm			\
 | 
				
			||||||
  %D%/packages/documentation.scm		\
 | 
					  %D%/packages/documentation.scm		\
 | 
				
			||||||
  %D%/packages/drones.scm			\
 | 
					 | 
				
			||||||
  %D%/packages/dunst.scm			\
 | 
					  %D%/packages/dunst.scm			\
 | 
				
			||||||
  %D%/packages/dvtm.scm				\
 | 
					  %D%/packages/dvtm.scm				\
 | 
				
			||||||
  %D%/packages/easyrpg.scm			\
 | 
					  %D%/packages/easyrpg.scm			\
 | 
				
			||||||
| 
						 | 
					@ -384,6 +384,7 @@ GNU_SYSTEM_MODULES =				\
 | 
				
			||||||
  %D%/packages/mercury.scm			\
 | 
					  %D%/packages/mercury.scm			\
 | 
				
			||||||
  %D%/packages/mes.scm				\
 | 
					  %D%/packages/mes.scm				\
 | 
				
			||||||
  %D%/packages/messaging.scm			\
 | 
					  %D%/packages/messaging.scm			\
 | 
				
			||||||
 | 
					  %D%/packages/minetest.scm			\
 | 
				
			||||||
  %D%/packages/mingw.scm			\
 | 
					  %D%/packages/mingw.scm			\
 | 
				
			||||||
  %D%/packages/microcom.scm			\
 | 
					  %D%/packages/microcom.scm			\
 | 
				
			||||||
  %D%/packages/moe.scm				\
 | 
					  %D%/packages/moe.scm				\
 | 
				
			||||||
| 
						 | 
					@ -451,6 +452,7 @@ GNU_SYSTEM_MODULES =				\
 | 
				
			||||||
  %D%/packages/php.scm				\
 | 
					  %D%/packages/php.scm				\
 | 
				
			||||||
  %D%/packages/piet.scm			\
 | 
					  %D%/packages/piet.scm			\
 | 
				
			||||||
  %D%/packages/pkg-config.scm			\
 | 
					  %D%/packages/pkg-config.scm			\
 | 
				
			||||||
 | 
					  %D%/packages/plan9.scm			\
 | 
				
			||||||
  %D%/packages/plotutils.scm			\
 | 
					  %D%/packages/plotutils.scm			\
 | 
				
			||||||
  %D%/packages/poedit.scm				\
 | 
					  %D%/packages/poedit.scm				\
 | 
				
			||||||
  %D%/packages/polkit.scm			\
 | 
					  %D%/packages/polkit.scm			\
 | 
				
			||||||
| 
						 | 
					@ -492,7 +494,9 @@ GNU_SYSTEM_MODULES =				\
 | 
				
			||||||
  %D%/packages/rednotebook.scm			\
 | 
					  %D%/packages/rednotebook.scm			\
 | 
				
			||||||
  %D%/packages/regex.scm				\
 | 
					  %D%/packages/regex.scm				\
 | 
				
			||||||
  %D%/packages/robotics.scm			\
 | 
					  %D%/packages/robotics.scm			\
 | 
				
			||||||
 | 
					  %D%/packages/rocm.scm				\
 | 
				
			||||||
  %D%/packages/rpc.scm				\
 | 
					  %D%/packages/rpc.scm				\
 | 
				
			||||||
 | 
					  %D%/packages/rpm.scm				\
 | 
				
			||||||
  %D%/packages/rrdtool.scm			\
 | 
					  %D%/packages/rrdtool.scm			\
 | 
				
			||||||
  %D%/packages/rsync.scm			\
 | 
					  %D%/packages/rsync.scm			\
 | 
				
			||||||
  %D%/packages/ruby.scm				\
 | 
					  %D%/packages/ruby.scm				\
 | 
				
			||||||
| 
						 | 
					@ -559,6 +563,7 @@ GNU_SYSTEM_MODULES =				\
 | 
				
			||||||
  %D%/packages/tmux.scm				\
 | 
					  %D%/packages/tmux.scm				\
 | 
				
			||||||
  %D%/packages/tor.scm				\
 | 
					  %D%/packages/tor.scm				\
 | 
				
			||||||
  %D%/packages/tv.scm				\
 | 
					  %D%/packages/tv.scm				\
 | 
				
			||||||
 | 
					  %D%/packages/uglifyjs.scm			\
 | 
				
			||||||
  %D%/packages/uml.scm				\
 | 
					  %D%/packages/uml.scm				\
 | 
				
			||||||
  %D%/packages/unicode.scm			\
 | 
					  %D%/packages/unicode.scm			\
 | 
				
			||||||
  %D%/packages/unrtf.scm			\
 | 
					  %D%/packages/unrtf.scm			\
 | 
				
			||||||
| 
						 | 
					@ -666,6 +671,7 @@ GNU_SYSTEM_MODULES =				\
 | 
				
			||||||
  %D%/system/mapped-devices.scm			\
 | 
					  %D%/system/mapped-devices.scm			\
 | 
				
			||||||
  %D%/system/nss.scm				\
 | 
					  %D%/system/nss.scm				\
 | 
				
			||||||
  %D%/system/pam.scm				\
 | 
					  %D%/system/pam.scm				\
 | 
				
			||||||
 | 
					  %D%/system/setuid.scm				\
 | 
				
			||||||
  %D%/system/shadow.scm				\
 | 
					  %D%/system/shadow.scm				\
 | 
				
			||||||
  %D%/system/uuid.scm				\
 | 
					  %D%/system/uuid.scm				\
 | 
				
			||||||
  %D%/system/vm.scm				\
 | 
					  %D%/system/vm.scm				\
 | 
				
			||||||
| 
						 | 
					@ -684,6 +690,7 @@ GNU_SYSTEM_MODULES =				\
 | 
				
			||||||
  %D%/build/chromium-extension.scm		\
 | 
					  %D%/build/chromium-extension.scm		\
 | 
				
			||||||
  %D%/build/cross-toolchain.scm			\
 | 
					  %D%/build/cross-toolchain.scm			\
 | 
				
			||||||
  %D%/build/image.scm				\
 | 
					  %D%/build/image.scm				\
 | 
				
			||||||
 | 
					  %D%/build/jami-service.scm			\
 | 
				
			||||||
  %D%/build/file-systems.scm			\
 | 
					  %D%/build/file-systems.scm			\
 | 
				
			||||||
  %D%/build/hurd-boot.scm			\
 | 
					  %D%/build/hurd-boot.scm			\
 | 
				
			||||||
  %D%/build/install.scm				\
 | 
					  %D%/build/install.scm				\
 | 
				
			||||||
| 
						 | 
					@ -721,6 +728,7 @@ GNU_SYSTEM_MODULES =				\
 | 
				
			||||||
  %D%/tests/security-token.scm			\
 | 
					  %D%/tests/security-token.scm			\
 | 
				
			||||||
  %D%/tests/singularity.scm			\
 | 
					  %D%/tests/singularity.scm			\
 | 
				
			||||||
  %D%/tests/ssh.scm				\
 | 
					  %D%/tests/ssh.scm				\
 | 
				
			||||||
 | 
					  %D%/tests/telephony.scm		        \
 | 
				
			||||||
  %D%/tests/version-control.scm			\
 | 
					  %D%/tests/version-control.scm			\
 | 
				
			||||||
  %D%/tests/virtualization.scm			\
 | 
					  %D%/tests/virtualization.scm			\
 | 
				
			||||||
  %D%/tests/web.scm
 | 
					  %D%/tests/web.scm
 | 
				
			||||||
| 
						 | 
					@ -786,7 +794,8 @@ dist_installer_DATA =				\
 | 
				
			||||||
MODULES_NOT_COMPILED +=				\
 | 
					MODULES_NOT_COMPILED +=				\
 | 
				
			||||||
  %D%/build/locale.scm				\
 | 
					  %D%/build/locale.scm				\
 | 
				
			||||||
  %D%/build/shepherd.scm			\
 | 
					  %D%/build/shepherd.scm			\
 | 
				
			||||||
  %D%/build/svg.scm
 | 
					  %D%/build/svg.scm				\
 | 
				
			||||||
 | 
					  %D%/tests/data/jami-dummy-account.dat
 | 
				
			||||||
 | 
					
 | 
				
			||||||
patchdir = $(guilemoduledir)/%D%/packages/patches
 | 
					patchdir = $(guilemoduledir)/%D%/packages/patches
 | 
				
			||||||
dist_patch_DATA =						\
 | 
					dist_patch_DATA =						\
 | 
				
			||||||
| 
						 | 
					@ -801,6 +810,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/abseil-cpp-fix-gtest.patch		\
 | 
					  %D%/packages/patches/abseil-cpp-fix-gtest.patch		\
 | 
				
			||||||
  %D%/packages/patches/abseil-cpp-fix-strerror_test.patch	\
 | 
					  %D%/packages/patches/abseil-cpp-fix-strerror_test.patch	\
 | 
				
			||||||
  %D%/packages/patches/adb-add-libraries.patch			\
 | 
					  %D%/packages/patches/adb-add-libraries.patch			\
 | 
				
			||||||
 | 
					  %D%/packages/patches/adb-libssl_11-compatibility.patch	\
 | 
				
			||||||
  %D%/packages/patches/aegis-constness-error.patch         	\
 | 
					  %D%/packages/patches/aegis-constness-error.patch         	\
 | 
				
			||||||
  %D%/packages/patches/aegis-perl-tempdir1.patch           	\
 | 
					  %D%/packages/patches/aegis-perl-tempdir1.patch           	\
 | 
				
			||||||
  %D%/packages/patches/aegis-perl-tempdir2.patch           	\
 | 
					  %D%/packages/patches/aegis-perl-tempdir2.patch           	\
 | 
				
			||||||
| 
						 | 
					@ -873,10 +883,10 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/bsd-games-prevent-name-collisions.patch	\
 | 
					  %D%/packages/patches/bsd-games-prevent-name-collisions.patch	\
 | 
				
			||||||
  %D%/packages/patches/bsd-games-stdio.h.patch			\
 | 
					  %D%/packages/patches/bsd-games-stdio.h.patch			\
 | 
				
			||||||
  %D%/packages/patches/beancount-disable-googleapis-fonts.patch	\
 | 
					  %D%/packages/patches/beancount-disable-googleapis-fonts.patch	\
 | 
				
			||||||
  %D%/packages/patches/beets-werkzeug-compat.patch		\
 | 
					 | 
				
			||||||
  %D%/packages/patches/behave-skip-a-couple-of-tests.patch	\
 | 
					  %D%/packages/patches/behave-skip-a-couple-of-tests.patch	\
 | 
				
			||||||
  %D%/packages/patches/beignet-correct-file-names.patch		\
 | 
					  %D%/packages/patches/beignet-correct-file-names.patch		\
 | 
				
			||||||
  %D%/packages/patches/bidiv-update-fribidi.patch		\
 | 
					  %D%/packages/patches/bidiv-update-fribidi.patch		\
 | 
				
			||||||
 | 
					  %D%/packages/patches/binutils-2.37-file-descriptor-leak.patch	\
 | 
				
			||||||
  %D%/packages/patches/binutils-boot-2.20.1a.patch		\
 | 
					  %D%/packages/patches/binutils-boot-2.20.1a.patch		\
 | 
				
			||||||
  %D%/packages/patches/binutils-loongson-workaround.patch	\
 | 
					  %D%/packages/patches/binutils-loongson-workaround.patch	\
 | 
				
			||||||
  %D%/packages/patches/binutils-mingw-w64-timestamp.patch	\
 | 
					  %D%/packages/patches/binutils-mingw-w64-timestamp.patch	\
 | 
				
			||||||
| 
						 | 
					@ -900,6 +910,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/cdparanoia-fpic.patch			\
 | 
					  %D%/packages/patches/cdparanoia-fpic.patch			\
 | 
				
			||||||
  %D%/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch 	\
 | 
					  %D%/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch 	\
 | 
				
			||||||
  %D%/packages/patches/ceph-disable-cpu-optimizations.patch	\
 | 
					  %D%/packages/patches/ceph-disable-cpu-optimizations.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/cheese-vala-update.patch		        \
 | 
				
			||||||
  %D%/packages/patches/chez-scheme-build-util-paths-backport.patch      \
 | 
					  %D%/packages/patches/chez-scheme-build-util-paths-backport.patch      \
 | 
				
			||||||
  %D%/packages/patches/chmlib-inttypes.patch			\
 | 
					  %D%/packages/patches/chmlib-inttypes.patch			\
 | 
				
			||||||
  %D%/packages/patches/cl-asdf-config-directories.patch		\
 | 
					  %D%/packages/patches/cl-asdf-config-directories.patch		\
 | 
				
			||||||
| 
						 | 
					@ -921,6 +932,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/clang-runtime-3.9-libsanitizer-mode-field.patch	\
 | 
					  %D%/packages/patches/clang-runtime-3.9-libsanitizer-mode-field.patch	\
 | 
				
			||||||
  %D%/packages/patches/clang-runtime-3.8-libsanitizer-mode-field.patch	\
 | 
					  %D%/packages/patches/clang-runtime-3.8-libsanitizer-mode-field.patch	\
 | 
				
			||||||
  %D%/packages/patches/classpath-aarch64-support.patch		\
 | 
					  %D%/packages/patches/classpath-aarch64-support.patch		\
 | 
				
			||||||
 | 
					  %D%/packages/patches/classpath-miscompilation.patch		\
 | 
				
			||||||
  %D%/packages/patches/clucene-pkgconfig.patch			\
 | 
					  %D%/packages/patches/clucene-pkgconfig.patch			\
 | 
				
			||||||
  %D%/packages/patches/cmake-curl-certificates.patch		\
 | 
					  %D%/packages/patches/cmake-curl-certificates.patch		\
 | 
				
			||||||
  %D%/packages/patches/coda-use-system-libs.patch		\
 | 
					  %D%/packages/patches/coda-use-system-libs.patch		\
 | 
				
			||||||
| 
						 | 
					@ -930,6 +942,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/coreutils-gnulib-tests.patch		\
 | 
					  %D%/packages/patches/coreutils-gnulib-tests.patch		\
 | 
				
			||||||
  %D%/packages/patches/coreutils-ls.patch			\
 | 
					  %D%/packages/patches/coreutils-ls.patch			\
 | 
				
			||||||
  %D%/packages/patches/cpufrequtils-fix-aclocal.patch		\
 | 
					  %D%/packages/patches/cpufrequtils-fix-aclocal.patch		\
 | 
				
			||||||
 | 
					  %D%/packages/patches/cpuinfo-system-libraries.patch		\
 | 
				
			||||||
  %D%/packages/patches/crawl-upgrade-saves.patch		\
 | 
					  %D%/packages/patches/crawl-upgrade-saves.patch		\
 | 
				
			||||||
  %D%/packages/patches/crda-optional-gcrypt.patch		\
 | 
					  %D%/packages/patches/crda-optional-gcrypt.patch		\
 | 
				
			||||||
  %D%/packages/patches/clucene-contribs-lib.patch               \
 | 
					  %D%/packages/patches/clucene-contribs-lib.patch               \
 | 
				
			||||||
| 
						 | 
					@ -941,6 +954,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/cyrus-sasl-ac-try-run-fix.patch		\
 | 
					  %D%/packages/patches/cyrus-sasl-ac-try-run-fix.patch		\
 | 
				
			||||||
  %D%/packages/patches/cyrus-sasl-CVE-2019-19906.patch		\
 | 
					  %D%/packages/patches/cyrus-sasl-CVE-2019-19906.patch		\
 | 
				
			||||||
  %D%/packages/patches/c++-gsl-find-system-gtest.patch		\
 | 
					  %D%/packages/patches/c++-gsl-find-system-gtest.patch		\
 | 
				
			||||||
 | 
					  %D%/packages/patches/c++-gsl-move-array-bounds-tests.patch	\
 | 
				
			||||||
  %D%/packages/patches/date-output-pkg-config-files.patch	\
 | 
					  %D%/packages/patches/date-output-pkg-config-files.patch	\
 | 
				
			||||||
  %D%/packages/patches/datefudge-gettimeofday.patch		\
 | 
					  %D%/packages/patches/datefudge-gettimeofday.patch		\
 | 
				
			||||||
  %D%/packages/patches/dbacl-include-locale.h.patch		\
 | 
					  %D%/packages/patches/dbacl-include-locale.h.patch		\
 | 
				
			||||||
| 
						 | 
					@ -994,11 +1008,14 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/enjarify-setup-py.patch			\
 | 
					  %D%/packages/patches/enjarify-setup-py.patch			\
 | 
				
			||||||
  %D%/packages/patches/enlightenment-fix-setuid-path.patch	\
 | 
					  %D%/packages/patches/enlightenment-fix-setuid-path.patch	\
 | 
				
			||||||
  %D%/packages/patches/erlang-man-path.patch			\
 | 
					  %D%/packages/patches/erlang-man-path.patch			\
 | 
				
			||||||
 | 
					  %D%/packages/patches/esmtp-add-lesmtp.patch		\
 | 
				
			||||||
  %D%/packages/patches/eudev-rules-directory.patch		\
 | 
					  %D%/packages/patches/eudev-rules-directory.patch		\
 | 
				
			||||||
  %D%/packages/patches/evilwm-lost-focus-bug.patch		\
 | 
					  %D%/packages/patches/evilwm-lost-focus-bug.patch		\
 | 
				
			||||||
  %D%/packages/patches/evolution-CVE-2020-11879.patch		\
 | 
					  %D%/packages/patches/evolution-CVE-2020-11879.patch		\
 | 
				
			||||||
 | 
					  %D%/packages/patches/evolution-printableoptions.patch		\
 | 
				
			||||||
  %D%/packages/patches/evolution-data-server-CVE-2020-14928.patch	\
 | 
					  %D%/packages/patches/evolution-data-server-CVE-2020-14928.patch	\
 | 
				
			||||||
  %D%/packages/patches/evolution-data-server-CVE-2020-16117.patch	\
 | 
					  %D%/packages/patches/evolution-data-server-CVE-2020-16117.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/evolution-data-server-printableoptions.patch	\
 | 
				
			||||||
  %D%/packages/patches/evolution-data-server-locales.patch	\
 | 
					  %D%/packages/patches/evolution-data-server-locales.patch	\
 | 
				
			||||||
  %D%/packages/patches/evolution-data-server-libical-compat.patch	\
 | 
					  %D%/packages/patches/evolution-data-server-libical-compat.patch	\
 | 
				
			||||||
  %D%/packages/patches/exercism-disable-self-update.patch	\
 | 
					  %D%/packages/patches/exercism-disable-self-update.patch	\
 | 
				
			||||||
| 
						 | 
					@ -1022,12 +1039,14 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/foobillard++-pkg-config.patch		\
 | 
					  %D%/packages/patches/foobillard++-pkg-config.patch		\
 | 
				
			||||||
  %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch	\
 | 
					  %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch	\
 | 
				
			||||||
  %D%/packages/patches/foomatic-filters-CVE-2015-8560.patch	\
 | 
					  %D%/packages/patches/foomatic-filters-CVE-2015-8560.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/fp16-system-libraries.patch		\
 | 
				
			||||||
  %D%/packages/patches/fpc-reproducibility.patch		\
 | 
					  %D%/packages/patches/fpc-reproducibility.patch		\
 | 
				
			||||||
  %D%/packages/patches/fplll-std-fenv.patch     		\
 | 
					  %D%/packages/patches/fplll-std-fenv.patch     		\
 | 
				
			||||||
  %D%/packages/patches/freedink-engine-fix-sdl-hints.patch	\
 | 
					  %D%/packages/patches/freedink-engine-fix-sdl-hints.patch	\
 | 
				
			||||||
  %D%/packages/patches/freeglut-gcc-compat.patch		\
 | 
					  %D%/packages/patches/freeglut-gcc-compat.patch		\
 | 
				
			||||||
  %D%/packages/patches/freeimage-unbundle.patch		\
 | 
					  %D%/packages/patches/freeimage-unbundle.patch		\
 | 
				
			||||||
  %D%/packages/patches/fuse-overlapping-headers.patch				\
 | 
					  %D%/packages/patches/fuse-overlapping-headers.patch				\
 | 
				
			||||||
 | 
					  %D%/packages/patches/fxdiv-system-libraries.patch		\
 | 
				
			||||||
  %D%/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch	\
 | 
					  %D%/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch	\
 | 
				
			||||||
  %D%/packages/patches/ganeti-deterministic-manual.patch	\
 | 
					  %D%/packages/patches/ganeti-deterministic-manual.patch	\
 | 
				
			||||||
  %D%/packages/patches/ganeti-disable-version-symlinks.patch	\
 | 
					  %D%/packages/patches/ganeti-disable-version-symlinks.patch	\
 | 
				
			||||||
| 
						 | 
					@ -1096,7 +1115,10 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/ghostscript-no-header-uuid.patch		\
 | 
					  %D%/packages/patches/ghostscript-no-header-uuid.patch		\
 | 
				
			||||||
  %D%/packages/patches/ghostscript-no-header-creationdate.patch \
 | 
					  %D%/packages/patches/ghostscript-no-header-creationdate.patch \
 | 
				
			||||||
  %D%/packages/patches/giara-fix-login.patch                      \
 | 
					  %D%/packages/patches/giara-fix-login.patch                      \
 | 
				
			||||||
 | 
					  %D%/packages/patches/glade-gls-set-script-name.patch	        \
 | 
				
			||||||
 | 
					  %D%/packages/patches/glade-test-widget-null-icon.patch	\
 | 
				
			||||||
  %D%/packages/patches/glib-appinfo-watch.patch			\
 | 
					  %D%/packages/patches/glib-appinfo-watch.patch			\
 | 
				
			||||||
 | 
					  %D%/packages/patches/glib-networking-gnutls-binding.patch	\
 | 
				
			||||||
  %D%/packages/patches/glib-skip-failing-test.patch		\
 | 
					  %D%/packages/patches/glib-skip-failing-test.patch		\
 | 
				
			||||||
  %D%/packages/patches/glibc-CVE-2018-11236.patch		\
 | 
					  %D%/packages/patches/glibc-CVE-2018-11236.patch		\
 | 
				
			||||||
  %D%/packages/patches/glibc-CVE-2018-11237.patch		\
 | 
					  %D%/packages/patches/glibc-CVE-2018-11237.patch		\
 | 
				
			||||||
| 
						 | 
					@ -1125,9 +1147,11 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/glibc-locales.patch			\
 | 
					  %D%/packages/patches/glibc-locales.patch			\
 | 
				
			||||||
  %D%/packages/patches/glibc-locales-2.28.patch			\
 | 
					  %D%/packages/patches/glibc-locales-2.28.patch			\
 | 
				
			||||||
  %D%/packages/patches/glibc-reinstate-prlimit64-fallback.patch	\
 | 
					  %D%/packages/patches/glibc-reinstate-prlimit64-fallback.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/glibc-skip-c++.patch			\
 | 
				
			||||||
  %D%/packages/patches/glibc-versioned-locpath.patch		\
 | 
					  %D%/packages/patches/glibc-versioned-locpath.patch		\
 | 
				
			||||||
  %D%/packages/patches/glibc-2.29-git-updates.patch     	\
 | 
					  %D%/packages/patches/glibc-2.29-git-updates.patch     	\
 | 
				
			||||||
  %D%/packages/patches/glibc-2.29-supported-locales.patch     	\
 | 
					  %D%/packages/patches/glibc-2.29-supported-locales.patch     	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/glibc-static-nss.patch			\
 | 
				
			||||||
  %D%/packages/patches/glibc-supported-locales.patch     	\
 | 
					  %D%/packages/patches/glibc-supported-locales.patch     	\
 | 
				
			||||||
  %D%/packages/patches/gmp-arm-asm-nothumb.patch		\
 | 
					  %D%/packages/patches/gmp-arm-asm-nothumb.patch		\
 | 
				
			||||||
  %D%/packages/patches/gmp-faulty-test.patch			\
 | 
					  %D%/packages/patches/gmp-faulty-test.patch			\
 | 
				
			||||||
| 
						 | 
					@ -1139,12 +1163,16 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/gnome-todo-delete-esource-duplicate.patch \
 | 
					  %D%/packages/patches/gnome-todo-delete-esource-duplicate.patch \
 | 
				
			||||||
  %D%/packages/patches/gnome-tweaks-search-paths.patch		\
 | 
					  %D%/packages/patches/gnome-tweaks-search-paths.patch		\
 | 
				
			||||||
  %D%/packages/patches/gnupg-default-pinentry.patch		\
 | 
					  %D%/packages/patches/gnupg-default-pinentry.patch		\
 | 
				
			||||||
 | 
					  %D%/packages/patches/gnupg-1-build-with-gcc10.patch		\
 | 
				
			||||||
  %D%/packages/patches/gnutls-skip-trust-store-test.patch	\
 | 
					  %D%/packages/patches/gnutls-skip-trust-store-test.patch	\
 | 
				
			||||||
  %D%/packages/patches/gnutls-cross.patch			\
 | 
					  %D%/packages/patches/gnutls-cross.patch			\
 | 
				
			||||||
 | 
					  %D%/packages/patches/gnutls-guile-eintr-eagain.patch		\
 | 
				
			||||||
  %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
 | 
					  %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
 | 
				
			||||||
  %D%/packages/patches/gobject-introspection-cc.patch		\
 | 
					  %D%/packages/patches/gobject-introspection-cc.patch		\
 | 
				
			||||||
  %D%/packages/patches/gobject-introspection-girepository.patch	\
 | 
					  %D%/packages/patches/gobject-introspection-girepository.patch	\
 | 
				
			||||||
  %D%/packages/patches/go-fix-script-tests.patch			\
 | 
					  %D%/packages/patches/go-fix-script-tests.patch			\
 | 
				
			||||||
 | 
					  %D%/packages/patches/go-github-com-urfave-cli-fix-tests.patch \
 | 
				
			||||||
 | 
					  %D%/packages/patches/go-github-com-urfave-cli-v2-fix-tests.patch \
 | 
				
			||||||
  %D%/packages/patches/go-skip-gc-test.patch			\
 | 
					  %D%/packages/patches/go-skip-gc-test.patch			\
 | 
				
			||||||
  %D%/packages/patches/gpm-glibc-2.26.patch			\
 | 
					  %D%/packages/patches/gpm-glibc-2.26.patch			\
 | 
				
			||||||
  %D%/packages/patches/gpodder-disable-updater.patch		\
 | 
					  %D%/packages/patches/gpodder-disable-updater.patch		\
 | 
				
			||||||
| 
						 | 
					@ -1185,6 +1213,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/gtk2-theme-paths.patch			\
 | 
					  %D%/packages/patches/gtk2-theme-paths.patch			\
 | 
				
			||||||
  %D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch	\
 | 
					  %D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch	\
 | 
				
			||||||
  %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \
 | 
					  %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \
 | 
				
			||||||
 | 
					  %D%/packages/patches/gtk-doc-respect-xml-catalog.patch	 \
 | 
				
			||||||
  %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
 | 
					  %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
 | 
				
			||||||
  %D%/packages/patches/gtksourceview-2-add-default-directory.patch \
 | 
					  %D%/packages/patches/gtksourceview-2-add-default-directory.patch \
 | 
				
			||||||
  %D%/packages/patches/gvfs-add-support-for-libplist-2.2.patch	\
 | 
					  %D%/packages/patches/gvfs-add-support-for-libplist-2.2.patch	\
 | 
				
			||||||
| 
						 | 
					@ -1223,6 +1252,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/imagemagick-ReadDCMPixels-fix.patch	\
 | 
					  %D%/packages/patches/imagemagick-ReadDCMPixels-fix.patch	\
 | 
				
			||||||
  %D%/packages/patches/imagemagick-WriteTHUMBNAILImage-fix.patch	\
 | 
					  %D%/packages/patches/imagemagick-WriteTHUMBNAILImage-fix.patch	\
 | 
				
			||||||
  %D%/packages/patches/inkscape-poppler-0.76.patch		\
 | 
					  %D%/packages/patches/inkscape-poppler-0.76.patch		\
 | 
				
			||||||
 | 
					  %D%/packages/patches/instead-use-games-path.patch		\
 | 
				
			||||||
  %D%/packages/patches/inkscape-1.1-fix-build-witch-gcc7.5.patch	\
 | 
					  %D%/packages/patches/inkscape-1.1-fix-build-witch-gcc7.5.patch	\
 | 
				
			||||||
  %D%/packages/patches/intel-xed-fix-nondeterminism.patch	\
 | 
					  %D%/packages/patches/intel-xed-fix-nondeterminism.patch	\
 | 
				
			||||||
  %D%/packages/patches/intltool-perl-compatibility.patch	\
 | 
					  %D%/packages/patches/intltool-perl-compatibility.patch	\
 | 
				
			||||||
| 
						 | 
					@ -1257,10 +1287,12 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/jfsutils-gcc-compat.patch		\
 | 
					  %D%/packages/patches/jfsutils-gcc-compat.patch		\
 | 
				
			||||||
  %D%/packages/patches/jfsutils-include-systypes.patch		\
 | 
					  %D%/packages/patches/jfsutils-include-systypes.patch		\
 | 
				
			||||||
  %D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch	\
 | 
					  %D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/julia-tracker-16-compat.patch		\
 | 
				
			||||||
  %D%/packages/patches/kdbusaddons-kinit-file-name.patch	\
 | 
					  %D%/packages/patches/kdbusaddons-kinit-file-name.patch	\
 | 
				
			||||||
  %D%/packages/patches/libblockdev-glib-compat.patch		\
 | 
					  %D%/packages/patches/libblockdev-glib-compat.patch		\
 | 
				
			||||||
  %D%/packages/patches/libffi-3.3-powerpc-fixes.patch		\
 | 
					  %D%/packages/patches/libffi-3.3-powerpc-fixes.patch		\
 | 
				
			||||||
  %D%/packages/patches/libffi-float128-powerpc64le.patch	\
 | 
					  %D%/packages/patches/libffi-float128-powerpc64le.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/librime-fix-build-with-gcc10.patch	\
 | 
				
			||||||
  %D%/packages/patches/libvirt-add-install-prefix.patch	\
 | 
					  %D%/packages/patches/libvirt-add-install-prefix.patch	\
 | 
				
			||||||
  %D%/packages/patches/libziparchive-add-includes.patch		\
 | 
					  %D%/packages/patches/libziparchive-add-includes.patch		\
 | 
				
			||||||
  %D%/packages/patches/localed-xorg-keyboard.patch		\
 | 
					  %D%/packages/patches/localed-xorg-keyboard.patch		\
 | 
				
			||||||
| 
						 | 
					@ -1331,6 +1363,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/libmad-length-check.patch		\
 | 
					  %D%/packages/patches/libmad-length-check.patch		\
 | 
				
			||||||
  %D%/packages/patches/libmad-md_size.patch			\
 | 
					  %D%/packages/patches/libmad-md_size.patch			\
 | 
				
			||||||
  %D%/packages/patches/libmad-mips-newgcc.patch			\
 | 
					  %D%/packages/patches/libmad-mips-newgcc.patch			\
 | 
				
			||||||
 | 
					  %D%/packages/patches/libmicrohttpd-0.9.73-test-ssl3.patch	\
 | 
				
			||||||
  %D%/packages/patches/libmp4v2-c++11.patch			\
 | 
					  %D%/packages/patches/libmp4v2-c++11.patch			\
 | 
				
			||||||
  %D%/packages/patches/libmpeg2-arm-private-symbols.patch	\
 | 
					  %D%/packages/patches/libmpeg2-arm-private-symbols.patch	\
 | 
				
			||||||
  %D%/packages/patches/libmpeg2-global-symbol-test.patch	\
 | 
					  %D%/packages/patches/libmpeg2-global-symbol-test.patch	\
 | 
				
			||||||
| 
						 | 
					@ -1375,6 +1408,9 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/llvm-9-fix-bitcast-miscompilation.patch	\
 | 
					  %D%/packages/patches/llvm-9-fix-bitcast-miscompilation.patch	\
 | 
				
			||||||
  %D%/packages/patches/llvm-9-fix-lpad-miscompilation.patch	\
 | 
					  %D%/packages/patches/llvm-9-fix-lpad-miscompilation.patch	\
 | 
				
			||||||
  %D%/packages/patches/llvm-9-fix-scev-miscompilation.patch	\
 | 
					  %D%/packages/patches/llvm-9-fix-scev-miscompilation.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/llvm-roc-3.0.0-add_libraries.patch \
 | 
				
			||||||
 | 
					  %D%/packages/patches/llvm-roc-4.0.0-remove-isystem-usr-include.patch \
 | 
				
			||||||
 | 
					  %D%/packages/patches/llvm-roc-4.2.0-add_Object.patch \
 | 
				
			||||||
  %D%/packages/patches/lm-sensors-hwmon-attrs.patch		\
 | 
					  %D%/packages/patches/lm-sensors-hwmon-attrs.patch		\
 | 
				
			||||||
  %D%/packages/patches/lrcalc-includes.patch    		\
 | 
					  %D%/packages/patches/lrcalc-includes.patch    		\
 | 
				
			||||||
  %D%/packages/patches/lsh-fix-x11-forwarding.patch		\
 | 
					  %D%/packages/patches/lsh-fix-x11-forwarding.patch		\
 | 
				
			||||||
| 
						 | 
					@ -1387,8 +1423,9 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/luajit-no_ldconfig.patch			\
 | 
					  %D%/packages/patches/luajit-no_ldconfig.patch			\
 | 
				
			||||||
  %D%/packages/patches/luit-posix.patch				\
 | 
					  %D%/packages/patches/luit-posix.patch				\
 | 
				
			||||||
  %D%/packages/patches/lvm2-static-link.patch			\
 | 
					  %D%/packages/patches/lvm2-static-link.patch			\
 | 
				
			||||||
  %D%/packages/patches/mailutils-fix-uninitialized-variable.patch	\
 | 
					  %D%/packages/patches/mailutils-variable-lookup.patch		\
 | 
				
			||||||
  %D%/packages/patches/make-impure-dirs.patch			\
 | 
					  %D%/packages/patches/make-impure-dirs.patch			\
 | 
				
			||||||
 | 
					  %D%/packages/patches/marble-qt-add-qt-headers.patch		\
 | 
				
			||||||
  %D%/packages/patches/mariadb-CVE-2021-27928.patch		\
 | 
					  %D%/packages/patches/mariadb-CVE-2021-27928.patch		\
 | 
				
			||||||
  %D%/packages/patches/mariadb-cmake-compat.patch		\
 | 
					  %D%/packages/patches/mariadb-cmake-compat.patch		\
 | 
				
			||||||
  %D%/packages/patches/mars-install.patch			\
 | 
					  %D%/packages/patches/mars-install.patch			\
 | 
				
			||||||
| 
						 | 
					@ -1403,10 +1440,12 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/libmemcached-build-with-gcc7.patch	\
 | 
					  %D%/packages/patches/libmemcached-build-with-gcc7.patch	\
 | 
				
			||||||
  %D%/packages/patches/libmhash-hmac-fix-uaf.patch		\
 | 
					  %D%/packages/patches/libmhash-hmac-fix-uaf.patch		\
 | 
				
			||||||
  %D%/packages/patches/mercurial-hg-extension-path.patch       \
 | 
					  %D%/packages/patches/mercurial-hg-extension-path.patch       \
 | 
				
			||||||
 | 
					  %D%/packages/patches/mesa-opencl-all-targets.patch		\
 | 
				
			||||||
  %D%/packages/patches/mesa-skip-tests.patch			\
 | 
					  %D%/packages/patches/mesa-skip-tests.patch			\
 | 
				
			||||||
  %D%/packages/patches/mescc-tools-boot.patch			\
 | 
					  %D%/packages/patches/mescc-tools-boot.patch			\
 | 
				
			||||||
  %D%/packages/patches/metabat-fix-compilation.patch		\
 | 
					  %D%/packages/patches/metabat-fix-compilation.patch		\
 | 
				
			||||||
  %D%/packages/patches/mhash-keygen-test-segfault.patch		\
 | 
					  %D%/packages/patches/mhash-keygen-test-segfault.patch		\
 | 
				
			||||||
 | 
					  %D%/packages/patches/minetest-add-MINETEST_MOD_PATH.patch	\
 | 
				
			||||||
  %D%/packages/patches/mingw-w64-6.0.0-gcc.patch		\
 | 
					  %D%/packages/patches/mingw-w64-6.0.0-gcc.patch		\
 | 
				
			||||||
  %D%/packages/patches/mingw-w64-dlltool-temp-prefix.patch	\
 | 
					  %D%/packages/patches/mingw-w64-dlltool-temp-prefix.patch	\
 | 
				
			||||||
  %D%/packages/patches/mingw-w64-reproducible-gendef.patch	\
 | 
					  %D%/packages/patches/mingw-w64-reproducible-gendef.patch	\
 | 
				
			||||||
| 
						 | 
					@ -1415,6 +1454,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/mit-krb5-hurd.patch			\
 | 
					  %D%/packages/patches/mit-krb5-hurd.patch			\
 | 
				
			||||||
  %D%/packages/patches/mpc123-initialize-ao.patch		\
 | 
					  %D%/packages/patches/mpc123-initialize-ao.patch		\
 | 
				
			||||||
  %D%/packages/patches/mpg321-CVE-2019-14247.patch		\
 | 
					  %D%/packages/patches/mpg321-CVE-2019-14247.patch		\
 | 
				
			||||||
 | 
					  %D%/packages/patches/mpg321-gcc-10.patch			\
 | 
				
			||||||
  %D%/packages/patches/module-init-tools-moduledir.patch	\
 | 
					  %D%/packages/patches/module-init-tools-moduledir.patch	\
 | 
				
			||||||
  %D%/packages/patches/monero-use-system-miniupnpc.patch			\
 | 
					  %D%/packages/patches/monero-use-system-miniupnpc.patch			\
 | 
				
			||||||
  %D%/packages/patches/mono-mdoc-timestamping.patch		\
 | 
					  %D%/packages/patches/mono-mdoc-timestamping.patch		\
 | 
				
			||||||
| 
						 | 
					@ -1473,8 +1513,15 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch	\
 | 
					  %D%/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch	\
 | 
				
			||||||
  %D%/packages/patches/ocaml-dose3-dont-make-printconf.patch	\
 | 
					  %D%/packages/patches/ocaml-dose3-dont-make-printconf.patch	\
 | 
				
			||||||
  %D%/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch	\
 | 
					  %D%/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/ocaml-multiple-definitions.patch		\
 | 
				
			||||||
 | 
					  %D%/packages/patches/ocaml-4.09-multiple-definitions.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/ocaml-ppx-variants-ppxlib-api-change.patch	\
 | 
				
			||||||
  %D%/packages/patches/omake-fix-non-determinism.patch	\
 | 
					  %D%/packages/patches/omake-fix-non-determinism.patch	\
 | 
				
			||||||
  %D%/packages/patches/oneko-remove-nonfree-characters.patch	\
 | 
					  %D%/packages/patches/oneko-remove-nonfree-characters.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/onnx-optimizer-system-library.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/onnx-use-system-googletest.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/onnx-shared-libraries.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/onnx-skip-model-downloads.patch		\
 | 
				
			||||||
  %D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch	\
 | 
					  %D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch	\
 | 
				
			||||||
  %D%/packages/patches/opencascade-oce-glibc-2.26.patch		\
 | 
					  %D%/packages/patches/opencascade-oce-glibc-2.26.patch		\
 | 
				
			||||||
  %D%/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch	\
 | 
					  %D%/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch	\
 | 
				
			||||||
| 
						 | 
					@ -1503,7 +1550,9 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/pciutils-hurd-fix.patch			\
 | 
					  %D%/packages/patches/pciutils-hurd-fix.patch			\
 | 
				
			||||||
  %D%/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch \
 | 
					  %D%/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch \
 | 
				
			||||||
  %D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch		\
 | 
					  %D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch		\
 | 
				
			||||||
  %D%/packages/patches/samba-fix-fcntl-hint-detection.patch		\
 | 
					  %D%/packages/patches/pthreadpool-system-libraries.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/python-chai-drop-python2.patch		\
 | 
				
			||||||
 | 
					  %D%/packages/patches/python-random2-getrandbits-test.patch		\
 | 
				
			||||||
  %D%/packages/patches/sdcc-disable-non-free-code.patch		\
 | 
					  %D%/packages/patches/sdcc-disable-non-free-code.patch		\
 | 
				
			||||||
  %D%/packages/patches/sdl-pango-api_additions.patch		\
 | 
					  %D%/packages/patches/sdl-pango-api_additions.patch		\
 | 
				
			||||||
  %D%/packages/patches/sdl-pango-blit_overflow.patch		\
 | 
					  %D%/packages/patches/sdl-pango-blit_overflow.patch		\
 | 
				
			||||||
| 
						 | 
					@ -1533,6 +1582,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/pinball-system-ltdl.patch		\
 | 
					  %D%/packages/patches/pinball-system-ltdl.patch		\
 | 
				
			||||||
  %D%/packages/patches/pingus-boost-headers.patch		\
 | 
					  %D%/packages/patches/pingus-boost-headers.patch		\
 | 
				
			||||||
  %D%/packages/patches/pingus-sdl-libs-config.patch		\
 | 
					  %D%/packages/patches/pingus-sdl-libs-config.patch		\
 | 
				
			||||||
 | 
					  %D%/packages/patches/pipewire-0.2.7-fno-common.patch		\
 | 
				
			||||||
  %D%/packages/patches/pixman-CVE-2016-5296.patch		\
 | 
					  %D%/packages/patches/pixman-CVE-2016-5296.patch		\
 | 
				
			||||||
  %D%/packages/patches/pjproject-correct-the-cflags-field.patch \
 | 
					  %D%/packages/patches/pjproject-correct-the-cflags-field.patch \
 | 
				
			||||||
  %D%/packages/patches/pjproject-fix-pkg-config-ldflags.patch	\
 | 
					  %D%/packages/patches/pjproject-fix-pkg-config-ldflags.patch	\
 | 
				
			||||||
| 
						 | 
					@ -1581,6 +1631,9 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/python-cross-compile.patch		\
 | 
					  %D%/packages/patches/python-cross-compile.patch		\
 | 
				
			||||||
  %D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
 | 
					  %D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
 | 
				
			||||||
  %D%/packages/patches/python-configobj-setuptools.patch	\
 | 
					  %D%/packages/patches/python-configobj-setuptools.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/python-docopt-pytest6-compat.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/python-execnet-read-only-fix.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/python-fixtures-remove-monkeypatch-test.patch	\
 | 
				
			||||||
  %D%/packages/patches/python-flask-restful-werkzeug-compat.patch	\
 | 
					  %D%/packages/patches/python-flask-restful-werkzeug-compat.patch	\
 | 
				
			||||||
  %D%/packages/patches/python-keras-integration-test.patch	\
 | 
					  %D%/packages/patches/python-keras-integration-test.patch	\
 | 
				
			||||||
  %D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \
 | 
					  %D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \
 | 
				
			||||||
| 
						 | 
					@ -1588,27 +1641,28 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/python-flint-includes.patch		\
 | 
					  %D%/packages/patches/python-flint-includes.patch		\
 | 
				
			||||||
  %D%/packages/patches/python-libxml2-utf8.patch		\
 | 
					  %D%/packages/patches/python-libxml2-utf8.patch		\
 | 
				
			||||||
  %D%/packages/patches/python-matplotlib-run-under-wayland-gtk3.patch	\
 | 
					  %D%/packages/patches/python-matplotlib-run-under-wayland-gtk3.patch	\
 | 
				
			||||||
  %D%/packages/patches/python-mediafile-wavpack.patch		\
 | 
					 | 
				
			||||||
  %D%/packages/patches/python-memcached-syntax-warnings.patch	\
 | 
					  %D%/packages/patches/python-memcached-syntax-warnings.patch	\
 | 
				
			||||||
  %D%/packages/patches/python-mox3-python3.6-compat.patch	\
 | 
					  %D%/packages/patches/python-mox3-python3.6-compat.patch	\
 | 
				
			||||||
  %D%/packages/patches/python-testtools.patch			\
 | 
					 | 
				
			||||||
  %D%/packages/patches/python-typing-inspect-fix.patch		\
 | 
					  %D%/packages/patches/python-typing-inspect-fix.patch		\
 | 
				
			||||||
  %D%/packages/patches/python-onnx-use-system-googletest.patch	\
 | 
					 | 
				
			||||||
  %D%/packages/patches/python-packaging-test-arch.patch		\
 | 
					  %D%/packages/patches/python-packaging-test-arch.patch		\
 | 
				
			||||||
  %D%/packages/patches/python2-parameterized-docstring-test.patch	\
 | 
					  %D%/packages/patches/python2-parameterized-docstring-test.patch	\
 | 
				
			||||||
  %D%/packages/patches/python-paste-remove-timing-test.patch	\
 | 
					  %D%/packages/patches/python-paste-remove-timing-test.patch	\
 | 
				
			||||||
  %D%/packages/patches/python-pycrypto-CVE-2013-7459.patch	\
 | 
					  %D%/packages/patches/python-pycrypto-CVE-2013-7459.patch	\
 | 
				
			||||||
  %D%/packages/patches/python-pycrypto-time-clock.patch		\
 | 
					  %D%/packages/patches/python-pycrypto-time-clock.patch		\
 | 
				
			||||||
 | 
					  %D%/packages/patches/python-pyan3-fix-absolute-path-bug.patch \
 | 
				
			||||||
 | 
					  %D%/packages/patches/python-pyan3-fix-positional-arguments.patch \
 | 
				
			||||||
  %D%/packages/patches/python-pydot-regression-test.patch	\
 | 
					  %D%/packages/patches/python-pydot-regression-test.patch	\
 | 
				
			||||||
  %D%/packages/patches/python2-pygobject-2-deprecation.patch	\
 | 
					  %D%/packages/patches/python2-pygobject-2-deprecation.patch	\
 | 
				
			||||||
  %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch	\
 | 
					  %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/python-pytest-asyncio-python-3.8.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/python-pytorch-runpath.patch		\
 | 
				
			||||||
 | 
					  %D%/packages/patches/python-pytorch-system-libraries.patch	\
 | 
				
			||||||
  %D%/packages/patches/python-robotframework-source-date-epoch.patch \
 | 
					  %D%/packages/patches/python-robotframework-source-date-epoch.patch \
 | 
				
			||||||
  %D%/packages/patches/python-seaborn-kde-test.patch		\
 | 
					  %D%/packages/patches/python-seaborn-kde-test.patch		\
 | 
				
			||||||
  %D%/packages/patches/python2-subprocess32-disable-input-test.patch	\
 | 
					  %D%/packages/patches/python2-subprocess32-disable-input-test.patch	\
 | 
				
			||||||
  %D%/packages/patches/python-unittest2-python3-compat.patch	\
 | 
					  %D%/packages/patches/python-unittest2-python3-compat.patch	\
 | 
				
			||||||
  %D%/packages/patches/python-unittest2-remove-argparse.patch	\
 | 
					  %D%/packages/patches/python-unittest2-remove-argparse.patch	\
 | 
				
			||||||
  %D%/packages/patches/python-waitress-fix-tests.patch		\
 | 
					  %D%/packages/patches/python-waitress-fix-tests.patch		\
 | 
				
			||||||
  %D%/packages/patches/pypy3-7.3.1-fix-tests.patch		\
 | 
					 | 
				
			||||||
  %D%/packages/patches/qemu-build-info-manual.patch		\
 | 
					  %D%/packages/patches/qemu-build-info-manual.patch		\
 | 
				
			||||||
  %D%/packages/patches/qemu-CVE-2021-20203.patch		\
 | 
					  %D%/packages/patches/qemu-CVE-2021-20203.patch		\
 | 
				
			||||||
  %D%/packages/patches/qemu-meson-compat.patch			\
 | 
					  %D%/packages/patches/qemu-meson-compat.patch			\
 | 
				
			||||||
| 
						 | 
					@ -1626,6 +1680,10 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/quassel-qt-514-compat.patch		\
 | 
					  %D%/packages/patches/quassel-qt-514-compat.patch		\
 | 
				
			||||||
  %D%/packages/patches/quickswitch-fix-dmenu-check.patch	\
 | 
					  %D%/packages/patches/quickswitch-fix-dmenu-check.patch	\
 | 
				
			||||||
  %D%/packages/patches/qtwebkit-pbutils-include.patch		\
 | 
					  %D%/packages/patches/qtwebkit-pbutils-include.patch		\
 | 
				
			||||||
 | 
					  %D%/packages/patches/qtwebkit-fix-building-with-bison-3.7.patch \
 | 
				
			||||||
 | 
					  %D%/packages/patches/qtwebkit-fix-building-with-python-3.9.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/qtwebkit-fix-building-with-icu-68.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/qtwebkit-fix-building-with-glib-2.68.patch	\
 | 
				
			||||||
  %D%/packages/patches/randomjungle-disable-static-build.patch	\
 | 
					  %D%/packages/patches/randomjungle-disable-static-build.patch	\
 | 
				
			||||||
  %D%/packages/patches/rapicorn-isnan.patch			\
 | 
					  %D%/packages/patches/rapicorn-isnan.patch			\
 | 
				
			||||||
  %D%/packages/patches/rapidjson-gcc-compat.patch		\
 | 
					  %D%/packages/patches/rapidjson-gcc-compat.patch		\
 | 
				
			||||||
| 
						 | 
					@ -1643,12 +1701,19 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/ripperx-missing-file.patch		\
 | 
					  %D%/packages/patches/ripperx-missing-file.patch		\
 | 
				
			||||||
  %D%/packages/patches/rpcbind-CVE-2017-8779.patch		\
 | 
					  %D%/packages/patches/rpcbind-CVE-2017-8779.patch		\
 | 
				
			||||||
  %D%/packages/patches/rtags-separate-rct.patch			\
 | 
					  %D%/packages/patches/rtags-separate-rct.patch			\
 | 
				
			||||||
  %D%/packages/patches/racket-sh-via-rktio.patch		\
 | 
					  %D%/packages/patches/racket-minimal-backport-1629887.patch    \
 | 
				
			||||||
 | 
					  %D%/packages/patches/racket-minimal-sh-via-rktio.patch	\
 | 
				
			||||||
  %D%/packages/patches/remake-impure-dirs.patch			\
 | 
					  %D%/packages/patches/remake-impure-dirs.patch			\
 | 
				
			||||||
 | 
					  %D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch	\
 | 
				
			||||||
  %D%/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch	\
 | 
					  %D%/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch	\
 | 
				
			||||||
  %D%/packages/patches/rnp-add-version.cmake.patch		\
 | 
					  %D%/packages/patches/rnp-add-version.cmake.patch		\
 | 
				
			||||||
  %D%/packages/patches/rnp-disable-ruby-rnp-tests.patch		\
 | 
					  %D%/packages/patches/rnp-disable-ruby-rnp-tests.patch		\
 | 
				
			||||||
  %D%/packages/patches/rnp-unbundle-googletest.patch		\
 | 
					  %D%/packages/patches/rnp-unbundle-googletest.patch		\
 | 
				
			||||||
 | 
					  %D%/packages/patches/rocm-comgr-3.1.0-dependencies.patch \
 | 
				
			||||||
 | 
					  %D%/packages/patches/rocm-opencl-runtime-3.10.0-includes.patch \
 | 
				
			||||||
 | 
					  %D%/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch \
 | 
				
			||||||
 | 
					  %D%/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch \
 | 
				
			||||||
 | 
					  %D%/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch \
 | 
				
			||||||
  %D%/packages/patches/ruby-sanitize-system-libxml.patch	\
 | 
					  %D%/packages/patches/ruby-sanitize-system-libxml.patch	\
 | 
				
			||||||
  %D%/packages/patches/rust-coresimd-doctest.patch		\
 | 
					  %D%/packages/patches/rust-coresimd-doctest.patch		\
 | 
				
			||||||
  %D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch	\
 | 
					  %D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch	\
 | 
				
			||||||
| 
						 | 
					@ -1729,7 +1794,9 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/tup-unbundle-dependencies.patch		\
 | 
					  %D%/packages/patches/tup-unbundle-dependencies.patch		\
 | 
				
			||||||
  %D%/packages/patches/tuxpaint-stamps-path.patch		\
 | 
					  %D%/packages/patches/tuxpaint-stamps-path.patch		\
 | 
				
			||||||
  %D%/packages/patches/twinkle-bcg729.patch			\
 | 
					  %D%/packages/patches/twinkle-bcg729.patch			\
 | 
				
			||||||
 | 
					  %D%/packages/patches/u-boot-nintendo-nes-serial.patch		\
 | 
				
			||||||
  %D%/packages/patches/u-boot-rockchip-inno-usb.patch		\
 | 
					  %D%/packages/patches/u-boot-rockchip-inno-usb.patch		\
 | 
				
			||||||
 | 
					  %D%/packages/patches/u-boot-sifive-prevent-reloc-initrd-fdt.patch	\
 | 
				
			||||||
  %D%/packages/patches/u-boot-riscv64-fix-extlinux.patch	\
 | 
					  %D%/packages/patches/u-boot-riscv64-fix-extlinux.patch	\
 | 
				
			||||||
  %D%/packages/patches/ucx-tcp-iface-ioctl.patch		\
 | 
					  %D%/packages/patches/ucx-tcp-iface-ioctl.patch		\
 | 
				
			||||||
  %D%/packages/patches/udiskie-no-appindicator.patch		\
 | 
					  %D%/packages/patches/udiskie-no-appindicator.patch		\
 | 
				
			||||||
| 
						 | 
					@ -1777,7 +1844,6 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/vboot-utils-fix-format-load-address.patch	\
 | 
					  %D%/packages/patches/vboot-utils-fix-format-load-address.patch	\
 | 
				
			||||||
  %D%/packages/patches/vboot-utils-fix-tests-show-contents.patch	\
 | 
					  %D%/packages/patches/vboot-utils-fix-tests-show-contents.patch	\
 | 
				
			||||||
  %D%/packages/patches/vboot-utils-skip-test-workbuf.patch	\
 | 
					  %D%/packages/patches/vboot-utils-skip-test-workbuf.patch	\
 | 
				
			||||||
  %D%/packages/patches/vigra-python-compat.patch		\
 | 
					 | 
				
			||||||
  %D%/packages/patches/vinagre-newer-freerdp.patch             \
 | 
					  %D%/packages/patches/vinagre-newer-freerdp.patch             \
 | 
				
			||||||
  %D%/packages/patches/vinagre-newer-rdp-parameters.patch      \
 | 
					  %D%/packages/patches/vinagre-newer-rdp-parameters.patch      \
 | 
				
			||||||
  %D%/packages/patches/virglrenderer-CVE-2017-6386.patch 	\
 | 
					  %D%/packages/patches/virglrenderer-CVE-2017-6386.patch 	\
 | 
				
			||||||
| 
						 | 
					@ -1812,6 +1878,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/xfce4-panel-plugins.patch		\
 | 
					  %D%/packages/patches/xfce4-panel-plugins.patch		\
 | 
				
			||||||
  %D%/packages/patches/xfce4-settings-defaults.patch		\
 | 
					  %D%/packages/patches/xfce4-settings-defaults.patch		\
 | 
				
			||||||
  %D%/packages/patches/xmonad-dynamic-linking.patch		\
 | 
					  %D%/packages/patches/xmonad-dynamic-linking.patch		\
 | 
				
			||||||
 | 
					  %D%/packages/patches/xnnpack-system-libraries.patch		\
 | 
				
			||||||
  %D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch		\
 | 
					  %D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch		\
 | 
				
			||||||
  %D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch	\
 | 
					  %D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch	\
 | 
				
			||||||
  %D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch	\
 | 
					  %D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch	\
 | 
				
			||||||
| 
						 | 
					@ -1822,6 +1889,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/xsane-fix-snprintf-buffer-length.patch	\
 | 
					  %D%/packages/patches/xsane-fix-snprintf-buffer-length.patch	\
 | 
				
			||||||
  %D%/packages/patches/xsane-support-ipv6.patch			\
 | 
					  %D%/packages/patches/xsane-support-ipv6.patch			\
 | 
				
			||||||
  %D%/packages/patches/xsane-tighten-default-umask.patch	\
 | 
					  %D%/packages/patches/xsane-tighten-default-umask.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/xygrib-fix-finding-data.patch		\
 | 
				
			||||||
  %D%/packages/patches/yggdrasil-extra-config.patch	\
 | 
					  %D%/packages/patches/yggdrasil-extra-config.patch	\
 | 
				
			||||||
  %D%/packages/patches/ytfzf-programs.patch        \
 | 
					  %D%/packages/patches/ytfzf-programs.patch        \
 | 
				
			||||||
  %D%/packages/patches/ytfzf-updates.patch        \
 | 
					  %D%/packages/patches/ytfzf-updates.patch        \
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -235,7 +235,7 @@ cat > /etc/bootstrap-config.scm << EOF
 | 
				
			||||||
  (timezone \"Etc/UTC\")
 | 
					  (timezone \"Etc/UTC\")
 | 
				
			||||||
  (bootloader (bootloader-configuration
 | 
					  (bootloader (bootloader-configuration
 | 
				
			||||||
               (bootloader grub-bootloader)
 | 
					               (bootloader grub-bootloader)
 | 
				
			||||||
               (target \"/dev/vda\")
 | 
					               (targets '(\"/dev/vda\"))
 | 
				
			||||||
               (terminal-outputs '(console))))
 | 
					               (terminal-outputs '(console))))
 | 
				
			||||||
  (file-systems (cons (file-system
 | 
					  (file-systems (cons (file-system
 | 
				
			||||||
                        (mount-point \"/\")
 | 
					                        (mount-point \"/\")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,7 +17,7 @@
 | 
				
			||||||
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
 | 
					;;; Copyright © 2016 John Darrington <jmd@gnu.org>
 | 
				
			||||||
;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au>
 | 
					;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au>
 | 
				
			||||||
;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com>
 | 
					;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com>
 | 
				
			||||||
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
 | 
					;;; Copyright © 2017 Christine Lemmer-Webber <cwebber@dustycloud.org>
 | 
				
			||||||
;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
 | 
					;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
 | 
				
			||||||
;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
 | 
					;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
 | 
				
			||||||
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
 | 
					;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
 | 
				
			||||||
| 
						 | 
					@ -29,7 +29,7 @@
 | 
				
			||||||
;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
 | 
					;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
 | 
				
			||||||
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
 | 
					;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
 | 
				
			||||||
;;; Copyright © 2019, 2021 Guillaume Le Vaillant <glv@posteo.net>
 | 
					;;; Copyright © 2019, 2021 Guillaume Le Vaillant <glv@posteo.net>
 | 
				
			||||||
;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 | 
					;;; Copyright © 2019, 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com>
 | 
				
			||||||
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
 | 
					;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
 | 
				
			||||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 | 
					;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 | 
				
			||||||
;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
 | 
					;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
 | 
				
			||||||
| 
						 | 
					@ -43,6 +43,8 @@
 | 
				
			||||||
;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz>
 | 
					;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz>
 | 
				
			||||||
;;; Copyright © 2021 WinterHound <winterhound@yandex.com>
 | 
					;;; Copyright © 2021 WinterHound <winterhound@yandex.com>
 | 
				
			||||||
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 | 
					;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -135,11 +137,14 @@
 | 
				
			||||||
  #:use-module (gnu packages qt)
 | 
					  #:use-module (gnu packages qt)
 | 
				
			||||||
  #:use-module (gnu packages readline)
 | 
					  #:use-module (gnu packages readline)
 | 
				
			||||||
  #:use-module (gnu packages ruby)
 | 
					  #:use-module (gnu packages ruby)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages selinux)
 | 
				
			||||||
  #:use-module (gnu packages serialization)
 | 
					  #:use-module (gnu packages serialization)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages ssh)
 | 
				
			||||||
  #:use-module (gnu packages sphinx)
 | 
					  #:use-module (gnu packages sphinx)
 | 
				
			||||||
  #:use-module (gnu packages tcl)
 | 
					  #:use-module (gnu packages tcl)
 | 
				
			||||||
  #:use-module (gnu packages terminals)
 | 
					  #:use-module (gnu packages terminals)
 | 
				
			||||||
  #:use-module (gnu packages texinfo)
 | 
					  #:use-module (gnu packages texinfo)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages time)
 | 
				
			||||||
  #:use-module (gnu packages tls)
 | 
					  #:use-module (gnu packages tls)
 | 
				
			||||||
  #:use-module (gnu packages version-control)
 | 
					  #:use-module (gnu packages version-control)
 | 
				
			||||||
  #:use-module (gnu packages web)
 | 
					  #:use-module (gnu packages web)
 | 
				
			||||||
| 
						 | 
					@ -834,6 +839,17 @@ hostname.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         ,@(if (%current-target-system)
 | 
				
			||||||
 | 
					               '((add-before 'configure 'set-runtime-shell
 | 
				
			||||||
 | 
					                   (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
 | 
					                     (let ((shell (string-append
 | 
				
			||||||
 | 
					                                   (assoc-ref inputs "bash")
 | 
				
			||||||
 | 
					                                   "/bin/bash")))
 | 
				
			||||||
 | 
					                       (setenv "RUNTIME_SHELL" shell)
 | 
				
			||||||
 | 
					                       (substitute* "configure.ac"
 | 
				
			||||||
 | 
					                         (("\\$SHELL")
 | 
				
			||||||
 | 
					                          "$RUNTIME_SHELL"))))))
 | 
				
			||||||
 | 
					               '())
 | 
				
			||||||
         (add-before 'build 'set-nscd-file-name
 | 
					         (add-before 'build 'set-nscd-file-name
 | 
				
			||||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
					           (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
             ;; Use the right file name for nscd.
 | 
					             ;; Use the right file name for nscd.
 | 
				
			||||||
| 
						 | 
					@ -858,7 +874,10 @@ hostname.")
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(,@(if (hurd-target?)
 | 
					     `(,@(if (hurd-target?)
 | 
				
			||||||
           '()
 | 
					           '()
 | 
				
			||||||
           `(("linux-pam" ,linux-pam)))))
 | 
					           `(("linux-pam" ,linux-pam)))
 | 
				
			||||||
 | 
					       ,@(if (%current-target-system)
 | 
				
			||||||
 | 
					             `(("bash" ,bash-minimal))
 | 
				
			||||||
 | 
					             '())))
 | 
				
			||||||
    (home-page "https://github.com/shadow-maint/shadow")
 | 
					    (home-page "https://github.com/shadow-maint/shadow")
 | 
				
			||||||
    (synopsis "Authentication-related tools such as passwd, su, and login")
 | 
					    (synopsis "Authentication-related tools such as passwd, su, and login")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
| 
						 | 
					@ -1248,7 +1267,11 @@ connection alive.")
 | 
				
			||||||
                           "--owner=root:0"
 | 
					                           "--owner=root:0"
 | 
				
			||||||
                           "--group=root:0")))))
 | 
					                           "--group=root:0")))))
 | 
				
			||||||
           (add-after 'install 'post-install
 | 
					           (add-after 'install 'post-install
 | 
				
			||||||
             (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
					             ;; TODO(core-updates): native-inputs isn't required anymore.
 | 
				
			||||||
 | 
					             (lambda* (#:key ,@(if (%current-target-system)
 | 
				
			||||||
 | 
					                                   '(native-inputs)
 | 
				
			||||||
 | 
					                                   '())
 | 
				
			||||||
 | 
					                       inputs outputs #:allow-other-keys)
 | 
				
			||||||
               ;; Install the dhclient script for GNU/Linux and make sure
 | 
					               ;; Install the dhclient script for GNU/Linux and make sure
 | 
				
			||||||
               ;; if finds all the programs it needs.
 | 
					               ;; if finds all the programs it needs.
 | 
				
			||||||
               (let* ((out       (assoc-ref outputs "out"))
 | 
					               (let* ((out       (assoc-ref outputs "out"))
 | 
				
			||||||
| 
						 | 
					@ -1272,6 +1295,19 @@ connection alive.")
 | 
				
			||||||
                             (string-append dir "/bin:"
 | 
					                             (string-append dir "/bin:"
 | 
				
			||||||
                                            dir "/sbin"))
 | 
					                                            dir "/sbin"))
 | 
				
			||||||
                           (list inetutils net-tools coreutils sed))))
 | 
					                           (list inetutils net-tools coreutils sed))))
 | 
				
			||||||
 | 
					                 ;; TODO(core-updates): should not be required anymore,
 | 
				
			||||||
 | 
					                 ;; once <https://issues.guix.gnu.org/49290> has been merged.
 | 
				
			||||||
 | 
					                 ,@(if (%current-target-system)
 | 
				
			||||||
 | 
					                       '((for-each
 | 
				
			||||||
 | 
					                          (lambda (file)
 | 
				
			||||||
 | 
					                            (substitute* file
 | 
				
			||||||
 | 
					                              (((assoc-ref native-inputs "bash"))
 | 
				
			||||||
 | 
					                               (assoc-ref inputs "bash"))))
 | 
				
			||||||
 | 
					                          (list (string-append libexec
 | 
				
			||||||
 | 
					                                               "/dhclient-script")
 | 
				
			||||||
 | 
					                                (string-append libexec
 | 
				
			||||||
 | 
					                                               "/.dhclient-script-real"))))
 | 
				
			||||||
 | 
					                       '())
 | 
				
			||||||
                 #t))))))
 | 
					                 #t))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      (native-inputs
 | 
					      (native-inputs
 | 
				
			||||||
| 
						 | 
					@ -1279,6 +1315,11 @@ connection alive.")
 | 
				
			||||||
         ("file" ,file)))
 | 
					         ("file" ,file)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      (inputs `(("inetutils" ,inetutils)
 | 
					      (inputs `(("inetutils" ,inetutils)
 | 
				
			||||||
 | 
					                ;; TODO(core-updates): simply make this unconditional
 | 
				
			||||||
 | 
					                ,@(if (%current-target-system)
 | 
				
			||||||
 | 
					                      ;; for wrap-program
 | 
				
			||||||
 | 
					                      `(("bash" ,(canonical-package bash-minimal)))
 | 
				
			||||||
 | 
					                      '())
 | 
				
			||||||
                ,@(if (hurd-target?) '()
 | 
					                ,@(if (hurd-target?) '()
 | 
				
			||||||
                      `(("net-tools" ,net-tools)
 | 
					                      `(("net-tools" ,net-tools)
 | 
				
			||||||
                        ("iproute" ,iproute)))
 | 
					                        ("iproute" ,iproute)))
 | 
				
			||||||
| 
						 | 
					@ -1307,6 +1348,38 @@ tools: server, client, and relay agent.")
 | 
				
			||||||
      (license license:mpl2.0)
 | 
					      (license license:mpl2.0)
 | 
				
			||||||
      (properties '((cpe-name . "dhcp"))))))
 | 
					      (properties '((cpe-name . "dhcp"))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public radvd
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "radvd")
 | 
				
			||||||
 | 
					    (version "2.19")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method git-fetch)
 | 
				
			||||||
 | 
					       (uri (git-reference
 | 
				
			||||||
 | 
					             (url "https://github.com/radvd-project/radvd")
 | 
				
			||||||
 | 
					             (commit (string-append "v" version))))
 | 
				
			||||||
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "1df827m3vkjq2bcs5y9wg2cygvpdwl8ppl446qqhyym584gz54nl"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("autoconf" ,autoconf)
 | 
				
			||||||
 | 
					       ("automake" ,automake)
 | 
				
			||||||
 | 
					       ("bison" ,bison)
 | 
				
			||||||
 | 
					       ("check" ,check)
 | 
				
			||||||
 | 
					       ("flex" ,flex)
 | 
				
			||||||
 | 
					       ("pkg-config" ,pkg-config)))
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:configure-flags '("--with-check")))
 | 
				
			||||||
 | 
					    (home-page "https://radvd.litech.org/")
 | 
				
			||||||
 | 
					    (synopsis "IPv6 Router Advertisement Daemon")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "The Router Advertisement Daemon (radvd) is run on systems acting as IPv6
 | 
				
			||||||
 | 
					routers.  It sends Router Advertisement messages specified by RFC 2461
 | 
				
			||||||
 | 
					periodically and when requested by a node sending a Router Solicitation
 | 
				
			||||||
 | 
					message.  These messages are required for IPv6 stateless autoconfiguration.")
 | 
				
			||||||
 | 
					    (license (license:non-copyleft "file://COPYRIGHT"))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public libpcap
 | 
					(define-public libpcap
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "libpcap")
 | 
					    (name "libpcap")
 | 
				
			||||||
| 
						 | 
					@ -1614,7 +1687,7 @@ system administrator.")
 | 
				
			||||||
(define-public sudo
 | 
					(define-public sudo
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "sudo")
 | 
					    (name "sudo")
 | 
				
			||||||
    (version "1.9.7p1")
 | 
					    (version "1.9.8")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri
 | 
					              (uri
 | 
				
			||||||
| 
						 | 
					@ -1624,7 +1697,7 @@ system administrator.")
 | 
				
			||||||
                                    version ".tar.gz")))
 | 
					                                    version ".tar.gz")))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1kyqj45nmykwj38sc5kx7mi0vf6x637hzvbd1jv22lg5aks3251r"))
 | 
					                "1rlln9nb3lvg4qlkp0c9qxjflx36rf16mflg0sps2kl0k7lmswzi"))
 | 
				
			||||||
              (modules '((guix build utils)))
 | 
					              (modules '((guix build utils)))
 | 
				
			||||||
              (snippet
 | 
					              (snippet
 | 
				
			||||||
               '(begin
 | 
					               '(begin
 | 
				
			||||||
| 
						 | 
					@ -2088,15 +2161,15 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
 | 
				
			||||||
(define-public acpica
 | 
					(define-public acpica
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "acpica")
 | 
					    (name "acpica")
 | 
				
			||||||
    (version "20210604")
 | 
					    (version "20210730")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append
 | 
					              (uri (string-append
 | 
				
			||||||
                    "https://acpica.org/sites/acpica/files/acpica-unix2-"
 | 
					                    "https://acpica.org/sites/acpica/files/acpica-unix-"
 | 
				
			||||||
                    version ".tar_0.gz"))
 | 
					                    version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1wsgg6fx7bhbpfzhbpbq2r7jpmv4c4n7v0zidbh25swrz7kfgpwz"))))
 | 
					                "1pmm977nyl3bs71ipzcl4dh30qm8x9wm2p2ml0m62rl62kai832a"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs `(("flex" ,flex)
 | 
					    (native-inputs `(("flex" ,flex)
 | 
				
			||||||
                     ("bison" ,bison)))
 | 
					                     ("bison" ,bison)))
 | 
				
			||||||
| 
						 | 
					@ -2445,40 +2518,29 @@ Statsd, Librato and InfluxDB.  Graphios can emit Nagios metrics to any number
 | 
				
			||||||
of supported upstream metrics systems simultaneously.")
 | 
					of supported upstream metrics systems simultaneously.")
 | 
				
			||||||
   (license license:gpl2+)))
 | 
					   (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public ansible
 | 
					(define-public ansible-core
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "ansible")
 | 
					    (name "ansible-core")
 | 
				
			||||||
    (version "2.9.18")
 | 
					    (version "2.11.4")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (pypi-uri "ansible" version))
 | 
					       (uri (pypi-uri "ansible-core" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "0g6rsnh02zq5nizamgakl2wvgz7hk1lpnjn9akldrcpa55vygzjm"))))
 | 
					        (base32
 | 
				
			||||||
 | 
					         "0jgahcv2pyc5ky0wir55a1h9q9d6rgqj60rqmvlpbj76vz1agsi2"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					 | 
				
			||||||
     `(("python-bcrypt" ,python-bcrypt)
 | 
					 | 
				
			||||||
       ("python-pynacl" ,python-pynacl)
 | 
					 | 
				
			||||||
       ("python-httplib2" ,python-httplib2)
 | 
					 | 
				
			||||||
       ("python-passlib" ,python-passlib)
 | 
					 | 
				
			||||||
       ("python-nose" ,python-nose)
 | 
					 | 
				
			||||||
       ("python-mock" ,python-mock)
 | 
					 | 
				
			||||||
       ("python-jinja2" ,python-jinja2)
 | 
					 | 
				
			||||||
       ("python-pyyaml" ,python-pyyaml)
 | 
					 | 
				
			||||||
       ("python-paramiko" ,python-paramiko)))
 | 
					 | 
				
			||||||
    (inputs
 | 
					 | 
				
			||||||
     `(("python-cryptography" ,python-cryptography)
 | 
					 | 
				
			||||||
       ("python-jinja2" ,python-jinja2)
 | 
					 | 
				
			||||||
       ("python-pyyaml" ,python-pyyaml)
 | 
					 | 
				
			||||||
       ("python-paramiko" ,python-paramiko)))
 | 
					 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:modules ((guix build python-build-system)
 | 
				
			||||||
 | 
					                  (guix build utils)
 | 
				
			||||||
 | 
					                  (ice-9 ftw))
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         ;; Several ansible commands (ansible-config, ansible-console, etc.)
 | 
					         ;; Several ansible commands (ansible-config, ansible-console, etc.)
 | 
				
			||||||
         ;; are just symlinks to a single ansible executable.  The ansible
 | 
					         ;; are just symlinks to a single ansible executable.  The ansible
 | 
				
			||||||
         ;; executable behaves differently based on the value of
 | 
					         ;; executable behaves differently based on the value of sys.argv[0].
 | 
				
			||||||
         ;; sys.argv[0]. This does not work well with our wrap phase, and
 | 
					         ;; This does not work well with our wrap phase, and therefore the
 | 
				
			||||||
         ;; therefore the following two phases are required as a workaround.
 | 
					         ;; following two phases are required as a workaround.
 | 
				
			||||||
         (add-after 'unpack 'hide-wrapping
 | 
					         (add-after 'unpack 'hide-wrapping
 | 
				
			||||||
           (lambda _
 | 
					           (lambda _
 | 
				
			||||||
             ;; Overwrite sys.argv[0] to hide the wrapper script from it.
 | 
					             ;; Overwrite sys.argv[0] to hide the wrapper script from it.
 | 
				
			||||||
| 
						 | 
					@ -2487,27 +2549,138 @@ of supported upstream metrics systems simultaneously.")
 | 
				
			||||||
                (string-append all "
 | 
					                (string-append all "
 | 
				
			||||||
import re
 | 
					import re
 | 
				
			||||||
sys.argv[0] = re.sub(r'\\.([^/]*)-real$', r'\\1', sys.argv[0])
 | 
					sys.argv[0] = re.sub(r'\\.([^/]*)-real$', r'\\1', sys.argv[0])
 | 
				
			||||||
")))
 | 
					")))))
 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
         (add-after 'install 'replace-symlinks
 | 
					         (add-after 'install 'replace-symlinks
 | 
				
			||||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
             ;; Replace symlinks with duplicate copies of the ansible
 | 
					             ;; Replace symlinks with duplicate copies of the ansible
 | 
				
			||||||
             ;; executable.
 | 
					             ;; executable so that sys.argv[0] has the correct value.
 | 
				
			||||||
             (let ((out (assoc-ref outputs "out")))
 | 
					             (define bin (string-append (assoc-ref outputs "out") "/bin"))
 | 
				
			||||||
 | 
					             (with-directory-excursion bin
 | 
				
			||||||
               (for-each
 | 
					               (for-each
 | 
				
			||||||
                (lambda (subprogram)
 | 
					                (lambda (ansible-symlink)
 | 
				
			||||||
                  (delete-file (string-append out "/bin/ansible-" subprogram))
 | 
					                  (delete-file ansible-symlink)
 | 
				
			||||||
                  (copy-file (string-append out "/bin/ansible")
 | 
					                  (copy-file "ansible" ansible-symlink))
 | 
				
			||||||
                             (string-append out "/bin/ansible-" subprogram)))
 | 
					                (scandir "." (lambda (x)
 | 
				
			||||||
                (list "config" "console" "doc" "galaxy"
 | 
					                               (and (eq? 'symlink (stat:type (lstat x)))
 | 
				
			||||||
                      "inventory" "playbook" "pull" "vault")))
 | 
					                                    (string-prefix? "ansible-" x)
 | 
				
			||||||
             #t)))))
 | 
					                                    (string=? "ansible" (readlink x)))))))))
 | 
				
			||||||
 | 
					         (add-after 'unpack 'preserve-pythonpath
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             (substitute* "test/lib/ansible_test/_internal/ansible_util.py"
 | 
				
			||||||
 | 
					               (("PYTHONPATH=get_ansible_python_path\\(args\\)" all)
 | 
				
			||||||
 | 
					                (string-append all "+ ':' + os.environ['PYTHONPATH']")))))
 | 
				
			||||||
 | 
					         (add-after 'unpack 'patch-paths
 | 
				
			||||||
 | 
					           (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             (substitute* "lib/ansible/module_utils/compat/selinux.py"
 | 
				
			||||||
 | 
					               (("libselinux.so.1" name)
 | 
				
			||||||
 | 
					                (string-append (assoc-ref inputs "libselinux")
 | 
				
			||||||
 | 
					                               "/lib/" name)))
 | 
				
			||||||
 | 
					             (substitute* "test/units/modules/test_async_wrapper.py"
 | 
				
			||||||
 | 
					               (("/usr/bin/python")
 | 
				
			||||||
 | 
					                (which "python")))))
 | 
				
			||||||
 | 
					         (replace 'check
 | 
				
			||||||
 | 
					           ;; The environment for the test suite can be tricky to get right.
 | 
				
			||||||
 | 
					           ;; The environment used for Ansible's CI defined in the following
 | 
				
			||||||
 | 
					           ;; Dockerfile can be used as a reference:
 | 
				
			||||||
 | 
					           ;; https://raw.githubusercontent.com/ansible/
 | 
				
			||||||
 | 
					           ;; default-test-container/master/Dockerfile.
 | 
				
			||||||
 | 
					           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
 | 
				
			||||||
 | 
					             (when tests?
 | 
				
			||||||
 | 
					               ;; Otherwise Ansible fails to create its config directory.
 | 
				
			||||||
 | 
					               (setenv "HOME" "/tmp")
 | 
				
			||||||
 | 
					               (setenv "PATH" (string-append (getenv "PATH") ":"
 | 
				
			||||||
 | 
					                                             (assoc-ref outputs "out") "/bin"))
 | 
				
			||||||
 | 
					               (add-installed-pythonpath inputs outputs)
 | 
				
			||||||
 | 
					               ;; This test module messes up with sys.path and causes many
 | 
				
			||||||
 | 
					               ;; test failures.
 | 
				
			||||||
 | 
					               (delete-file "test/units/_vendor/test_vendor.py")
 | 
				
			||||||
 | 
					               ;; The test fails when run in the container, for reasons
 | 
				
			||||||
 | 
					               ;; unknown.
 | 
				
			||||||
 | 
					               (delete-file "test/units/utils/test_display.py")
 | 
				
			||||||
 | 
					               ;; This test fail for reasons unknown.
 | 
				
			||||||
 | 
					               (delete-file "test/units/cli/test_adhoc.py")
 | 
				
			||||||
 | 
					               ;; The test suite needs to be run with 'ansible-test', which
 | 
				
			||||||
 | 
					               ;; does some extra environment setup.  Taken from
 | 
				
			||||||
 | 
					               ;; https://raw.githubusercontent.com/ansible/ansible/\
 | 
				
			||||||
 | 
					               ;; devel/test/utils/shippable/shippable.sh.
 | 
				
			||||||
 | 
					               (invoke "ansible-test" "units" "-v")))))))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("openssh" ,openssh)
 | 
				
			||||||
 | 
					       ("openssl" ,openssl)
 | 
				
			||||||
 | 
					       ("python-mock" ,python-mock)
 | 
				
			||||||
 | 
					       ("python-pycrypto" ,python-pycrypto)
 | 
				
			||||||
 | 
					       ("python-pytest" ,python-pytest)
 | 
				
			||||||
 | 
					       ("python-pytest-forked" ,python-pytest-forked)
 | 
				
			||||||
 | 
					       ("python-pytest-mock" ,python-pytest-mock)
 | 
				
			||||||
 | 
					       ("python-pytest-xdist" ,python-pytest-xdist)
 | 
				
			||||||
 | 
					       ("python-pytz" ,python-pytz)))
 | 
				
			||||||
 | 
					    (inputs                    ;optional dependencies captured in wrap scripts
 | 
				
			||||||
 | 
					     `(("libselinux" ,libselinux)
 | 
				
			||||||
 | 
					       ("python-paramiko" ,python-paramiko)
 | 
				
			||||||
 | 
					       ("python-passlib" ,python-passlib)
 | 
				
			||||||
 | 
					       ("python-pexpect" ,python-pexpect)
 | 
				
			||||||
 | 
					       ("sshpass" ,sshpass)))
 | 
				
			||||||
 | 
					    (propagated-inputs      ;core dependencies listed in egg-info/requires.txt
 | 
				
			||||||
 | 
					     `(("python-cryptography" ,python-cryptography)
 | 
				
			||||||
 | 
					       ("python-jinja2" ,python-jinja2)
 | 
				
			||||||
 | 
					       ("python-pyyaml" ,python-pyyaml)
 | 
				
			||||||
 | 
					       ("python-packaging" ,python-packaging) ;for version number parsing
 | 
				
			||||||
 | 
					       ("python-resolvelib" ,python-resolvelib-0.5)))
 | 
				
			||||||
    (home-page "https://www.ansible.com/")
 | 
					    (home-page "https://www.ansible.com/")
 | 
				
			||||||
    (synopsis "Radically simple IT automation")
 | 
					    (synopsis "Radically simple IT automation")
 | 
				
			||||||
    (description "Ansible is a radically simple IT automation system.  It
 | 
					    (description "Ansible aims to be a radically simple IT automation system.
 | 
				
			||||||
handles configuration management, application deployment, cloud provisioning,
 | 
					It handles configuration management, application deployment, cloud
 | 
				
			||||||
ad hoc task execution, and multinode orchestration---including trivializing
 | 
					provisioning, ad-hoc task execution, network automation, and multi-node
 | 
				
			||||||
things like zero-downtime rolling updates with load balancers.")
 | 
					orchestration.  Ansible facilitates complex changes like zero-downtime rolling
 | 
				
			||||||
 | 
					updates with load balancers.  This package is the core of Ansible, which
 | 
				
			||||||
 | 
					provides the following commands:
 | 
				
			||||||
 | 
					@itemize
 | 
				
			||||||
 | 
					@item ansible
 | 
				
			||||||
 | 
					@item ansible-config
 | 
				
			||||||
 | 
					@item ansible-connection
 | 
				
			||||||
 | 
					@item ansible-console
 | 
				
			||||||
 | 
					@item ansible-doc
 | 
				
			||||||
 | 
					@item ansible-galaxy
 | 
				
			||||||
 | 
					@item ansible-inventory
 | 
				
			||||||
 | 
					@item ansible-playbook
 | 
				
			||||||
 | 
					@item ansible-pull
 | 
				
			||||||
 | 
					@item ansible-test
 | 
				
			||||||
 | 
					@item ansible-vault
 | 
				
			||||||
 | 
					@end itemize")
 | 
				
			||||||
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ansible
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ansible")
 | 
				
			||||||
 | 
					    (version "4.4.0")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (pypi-uri "ansible" version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "031n22j0lsmh69x6i6gkva81j68b4yzh1pbg3q2h4bknl85q46ag"))))
 | 
				
			||||||
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("ansible-core" ,ansible-core)))
 | 
				
			||||||
 | 
					    ;; The Ansible collections are found by ansible-core via PYTHONPATH; the
 | 
				
			||||||
 | 
					    ;; following search path ensures that they are found even when Python is
 | 
				
			||||||
 | 
					    ;; not present in the profile.
 | 
				
			||||||
 | 
					    (native-search-paths
 | 
				
			||||||
 | 
					     ;; XXX: Attempting to use (package-native-search-paths python)
 | 
				
			||||||
 | 
					     ;; here would cause an error about python being an unbound
 | 
				
			||||||
 | 
					     ;; variable in the tests/cpan.scm test.
 | 
				
			||||||
 | 
					     (list (search-path-specification
 | 
				
			||||||
 | 
					            (variable "PYTHONPATH")
 | 
				
			||||||
 | 
					            (files (list "lib/python3.8/site-packages")))))
 | 
				
			||||||
 | 
					    (home-page "https://www.ansible.com/")
 | 
				
			||||||
 | 
					    (synopsis "Radically simple IT automation")
 | 
				
			||||||
 | 
					    (description "Ansible aims to be a radically simple IT automation system.
 | 
				
			||||||
 | 
					It handles configuration management, application deployment, cloud
 | 
				
			||||||
 | 
					provisioning, ad-hoc task execution, network automation, and multi-node
 | 
				
			||||||
 | 
					orchestration.  Ansible facilitates complex changes like zero-downtime rolling
 | 
				
			||||||
 | 
					updates with load balancers.  This package provides a curated set of
 | 
				
			||||||
 | 
					community-maintained Ansible collections, which contain playbooks, roles,
 | 
				
			||||||
 | 
					modules and plugins that extend Ansible.")
 | 
				
			||||||
    (license license:gpl3+)))
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public debops
 | 
					(define-public debops
 | 
				
			||||||
| 
						 | 
					@ -2839,13 +3012,13 @@ platform-specific methods.")
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "audit")
 | 
					    (name "audit")
 | 
				
			||||||
    (home-page "https://people.redhat.com/sgrubb/audit/")
 | 
					    (home-page "https://people.redhat.com/sgrubb/audit/")
 | 
				
			||||||
    (version "2.8.5")
 | 
					    (version "3.0.4")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append home-page "audit-" version ".tar.gz"))
 | 
					              (uri (string-append home-page "audit-" version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1dzcwb2q78q7x41shcachn7f4aksxbxd470yk38zh03fch1l2p8f"))))
 | 
					                "1xlcvc2g7qrbnin5pw0bacalva5ldjw97yi6nr17g0yjp4jyhnlc"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:configure-flags (list "--with-python=no"
 | 
					     `(#:configure-flags (list "--with-python=no"
 | 
				
			||||||
| 
						 | 
					@ -3369,7 +3542,7 @@ buffers.")
 | 
				
			||||||
(define-public igt-gpu-tools
 | 
					(define-public igt-gpu-tools
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "igt-gpu-tools")
 | 
					    (name "igt-gpu-tools")
 | 
				
			||||||
    (version "1.25")
 | 
					    (version "1.26")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -3378,7 +3551,7 @@ buffers.")
 | 
				
			||||||
             (commit (string-append "igt-gpu-tools-" version))))
 | 
					             (commit (string-append "igt-gpu-tools-" version))))
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "1lvhkdhilw0fn4nzkpfwvrhiv8d92h811qs2v6ac3p5w7v86a9zm"))))
 | 
					        (base32 "0m124pqv7zna25jnvk566c4kk628jr0w8mgnp8mr5xqz9cprgczm"))))
 | 
				
			||||||
    (build-system meson-build-system)
 | 
					    (build-system meson-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f))            ; many of the tests try to load kernel modules
 | 
					     `(#:tests? #f))            ; many of the tests try to load kernel modules
 | 
				
			||||||
| 
						 | 
					@ -3408,52 +3581,6 @@ Intel DRM Driver.")
 | 
				
			||||||
    (supported-systems '("i686-linux" "x86_64-linux"))
 | 
					    (supported-systems '("i686-linux" "x86_64-linux"))
 | 
				
			||||||
    (license license:expat)))
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public fabric
 | 
					 | 
				
			||||||
  (package
 | 
					 | 
				
			||||||
    (name "fabric")
 | 
					 | 
				
			||||||
    (version "1.14.1")
 | 
					 | 
				
			||||||
    (source
 | 
					 | 
				
			||||||
     (origin
 | 
					 | 
				
			||||||
       (method url-fetch)
 | 
					 | 
				
			||||||
       (uri (pypi-uri "Fabric" version))
 | 
					 | 
				
			||||||
       (sha256
 | 
					 | 
				
			||||||
        (base32
 | 
					 | 
				
			||||||
         "1a3ndlpdw6bhn8fcw1jgznl117a8pnr84az9rb5fwnrypf1ph2b6"))))
 | 
					 | 
				
			||||||
    (build-system python-build-system)
 | 
					 | 
				
			||||||
    (arguments
 | 
					 | 
				
			||||||
     `(#:python ,python-2               ; Python 2 only
 | 
					 | 
				
			||||||
       #:phases
 | 
					 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					 | 
				
			||||||
         (replace 'check
 | 
					 | 
				
			||||||
           (lambda _
 | 
					 | 
				
			||||||
             (invoke
 | 
					 | 
				
			||||||
              "nosetests" "-v" "tests/"
 | 
					 | 
				
			||||||
              ;; This test hangs indefinitely when run on a single core VM
 | 
					 | 
				
			||||||
              ;; (see GNU bug #26647 and Debian bug #850230).
 | 
					 | 
				
			||||||
              "--exclude=test_nested_execution_with_explicit_ports"
 | 
					 | 
				
			||||||
              ;; This test randomly fails in certain environments causing too
 | 
					 | 
				
			||||||
              ;; much noise to be useful (see Debian bug #854686).
 | 
					 | 
				
			||||||
              "--exclude=test_should_use_sentinel_for_tasks_that_errored"))))))
 | 
					 | 
				
			||||||
    (native-inputs
 | 
					 | 
				
			||||||
     `(("python2-fudge" ,python2-fudge) ; Requires < 1.0
 | 
					 | 
				
			||||||
       ("python2-jinja2" ,python2-jinja2) ; Requires < 3.0
 | 
					 | 
				
			||||||
       ("python2-nose" ,python2-nose) ; Requires < 2.0
 | 
					 | 
				
			||||||
       ("python2-pynacl" ,python2-pynacl)
 | 
					 | 
				
			||||||
       ("python2-bcrypt" ,python2-bcrypt)))
 | 
					 | 
				
			||||||
    (propagated-inputs
 | 
					 | 
				
			||||||
     `(("python2-paramiko" ,python2-paramiko)))
 | 
					 | 
				
			||||||
    (home-page "https://www.fabfile.org/")
 | 
					 | 
				
			||||||
    (synopsis "Simple Pythonic remote execution and deployment tool")
 | 
					 | 
				
			||||||
    (description
 | 
					 | 
				
			||||||
     "Fabric is designed to upload files and run shell commands on a number of
 | 
					 | 
				
			||||||
servers in parallel or serially.  These commands are grouped in tasks (which
 | 
					 | 
				
			||||||
are regular Python functions) and specified in a @dfn{fabfile}.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
It is similar to Capistrano, except it's implemented in Python and doesn't
 | 
					 | 
				
			||||||
expect you to be deploying Rails applications.  Fabric is a simple, Pythonic
 | 
					 | 
				
			||||||
tool for remote execution and deployment.")
 | 
					 | 
				
			||||||
    (license license:bsd-2)))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define-public neofetch
 | 
					(define-public neofetch
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "neofetch")
 | 
					    (name "neofetch")
 | 
				
			||||||
| 
						 | 
					@ -3860,7 +3987,7 @@ Python loading in HPC environments.")
 | 
				
			||||||
  (let ((real-name "inxi"))
 | 
					  (let ((real-name "inxi"))
 | 
				
			||||||
    (package
 | 
					    (package
 | 
				
			||||||
      (name "inxi-minimal")
 | 
					      (name "inxi-minimal")
 | 
				
			||||||
      (version "3.3.04-1")
 | 
					      (version "3.3.06-1")
 | 
				
			||||||
      (source
 | 
					      (source
 | 
				
			||||||
       (origin
 | 
					       (origin
 | 
				
			||||||
         (method git-fetch)
 | 
					         (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -3869,7 +3996,7 @@ Python loading in HPC environments.")
 | 
				
			||||||
               (commit version)))
 | 
					               (commit version)))
 | 
				
			||||||
         (file-name (git-file-name real-name version))
 | 
					         (file-name (git-file-name real-name version))
 | 
				
			||||||
         (sha256
 | 
					         (sha256
 | 
				
			||||||
          (base32 "1rrhycp8i43yf9wi80n4pq2hkfhvb2rg1srz8if28bh6fhhasjzw"))))
 | 
					          (base32 "1qk40iyrdp52vmbiqwxicvlcycm2v2bf1gg4lzq0b4619sd6d1m7"))))
 | 
				
			||||||
      (build-system trivial-build-system)
 | 
					      (build-system trivial-build-system)
 | 
				
			||||||
      (inputs
 | 
					      (inputs
 | 
				
			||||||
       `(("bash" ,bash-minimal)
 | 
					       `(("bash" ,bash-minimal)
 | 
				
			||||||
| 
						 | 
					@ -4441,14 +4568,14 @@ Netgear devices.")
 | 
				
			||||||
(define-public atop
 | 
					(define-public atop
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "atop")
 | 
					    (name "atop")
 | 
				
			||||||
    (version "2.5.0")
 | 
					    (version "2.6.0")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "https://www.atoptool.nl/download/atop-"
 | 
					              (uri (string-append "https://www.atoptool.nl/download/atop-"
 | 
				
			||||||
                                  version ".tar.gz"))
 | 
					                                  version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0crzz4i2nabyh7d6xg7fvl65qls87nbca5ihidp3nijhrrbi14ab"))))
 | 
					                "0wlg0n0h9vwpjp2dcb623jvvqck422jrjpq9mbpzg4hnawxcmhly"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f ; no test suite
 | 
					     `(#:tests? #f ; no test suite
 | 
				
			||||||
| 
						 | 
					@ -4640,3 +4767,49 @@ the XMODEM/YMODEM/ZMODEM file transfer protocols.")
 | 
				
			||||||
setup, maintenance, supervision, or any long-running processes.")
 | 
					setup, maintenance, supervision, or any long-running processes.")
 | 
				
			||||||
    (home-page "https://github.com/leahneukirchen/nq")
 | 
					    (home-page "https://github.com/leahneukirchen/nq")
 | 
				
			||||||
    (license license:public-domain)))
 | 
					    (license license:public-domain)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public lsofgraph
 | 
				
			||||||
 | 
					  (let ((commit "1d414bdc727c00a8c6cbfffc3c43128c60d6f0de")
 | 
				
			||||||
 | 
					        (revision "1"))
 | 
				
			||||||
 | 
					    (package
 | 
				
			||||||
 | 
					      (name "lsofgraph")
 | 
				
			||||||
 | 
					      (version (git-version "0.0.1" revision commit)) ;no upstream release
 | 
				
			||||||
 | 
					      (source (origin
 | 
				
			||||||
 | 
					                (method git-fetch)
 | 
				
			||||||
 | 
					                (uri (git-reference
 | 
				
			||||||
 | 
					                      (url "https://github.com/zevv/lsofgraph")
 | 
				
			||||||
 | 
					                      (commit commit)))
 | 
				
			||||||
 | 
					                (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					                (sha256
 | 
				
			||||||
 | 
					                 (base32
 | 
				
			||||||
 | 
					                  "058x04yp6bc77hbl3qchqm7pa8f9vqfl9jryr88m8pzl7kvpif54"))))
 | 
				
			||||||
 | 
					      (build-system trivial-build-system)
 | 
				
			||||||
 | 
					      (inputs
 | 
				
			||||||
 | 
					       `(("lua" ,lua)))
 | 
				
			||||||
 | 
					      (arguments
 | 
				
			||||||
 | 
					       `(#:modules ((guix build utils))
 | 
				
			||||||
 | 
					         #:builder
 | 
				
			||||||
 | 
					         (begin
 | 
				
			||||||
 | 
					           (use-modules (guix build utils))
 | 
				
			||||||
 | 
					           ;; copy source
 | 
				
			||||||
 | 
					           (copy-recursively (assoc-ref %build-inputs "source") ".")
 | 
				
			||||||
 | 
					           ;; patch-shebang phase
 | 
				
			||||||
 | 
					           (setenv "PATH"
 | 
				
			||||||
 | 
					                   (string-append (assoc-ref %build-inputs "lua") "/bin"
 | 
				
			||||||
 | 
					                                  ":" (getenv "PATH")))
 | 
				
			||||||
 | 
					           (substitute* "lsofgraph"
 | 
				
			||||||
 | 
					             (("#!/usr/bin/env lua")
 | 
				
			||||||
 | 
					              (string-append "#!" (which "lua"))))
 | 
				
			||||||
 | 
					           ;; install phase
 | 
				
			||||||
 | 
					           (install-file "lsofgraph" (string-append %output "/bin"))
 | 
				
			||||||
 | 
					           (let ((doc (string-append
 | 
				
			||||||
 | 
					                       %output "/share/doc/" ,name "-" ,version)))
 | 
				
			||||||
 | 
					             (mkdir-p doc)
 | 
				
			||||||
 | 
					             (install-file "LICENSE" doc)
 | 
				
			||||||
 | 
					             (install-file "README.md" doc))
 | 
				
			||||||
 | 
					           #t)))
 | 
				
			||||||
 | 
					      (home-page "https://github.com/zevv/lsofgraph")
 | 
				
			||||||
 | 
					      (synopsis "Convert @code{lsof} output to @code{graphviz}")
 | 
				
			||||||
 | 
					      (description "Utility to convert @code{lsof} output to a graph showing
 | 
				
			||||||
 | 
					FIFO and UNIX interprocess communication.")
 | 
				
			||||||
 | 
					      (license license:bsd-2))))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,7 @@
 | 
				
			||||||
;;; Copyright © 2013, 2015, 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
 | 
					;;; Copyright © 2013, 2015, 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
 | 
				
			||||||
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 | 
					;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 | 
				
			||||||
;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
 | 
					;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
 | 
				
			||||||
;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 | 
					;;; Copyright © 2016, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
 | 
				
			||||||
;;; Copyright © 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 | 
					;;; Copyright © 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 | 
				
			||||||
;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
					;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
				
			||||||
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 | 
					;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 | 
				
			||||||
| 
						 | 
					@ -78,7 +78,7 @@
 | 
				
			||||||
(define-public mpfrcx
 | 
					(define-public mpfrcx
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
   (name "mpfrcx")
 | 
					   (name "mpfrcx")
 | 
				
			||||||
   (version "0.6.2")
 | 
					   (version "0.6.3")
 | 
				
			||||||
   (source (origin
 | 
					   (source (origin
 | 
				
			||||||
            (method url-fetch)
 | 
					            (method url-fetch)
 | 
				
			||||||
            (uri (string-append
 | 
					            (uri (string-append
 | 
				
			||||||
| 
						 | 
					@ -86,7 +86,7 @@
 | 
				
			||||||
                  version ".tar.gz"))
 | 
					                  version ".tar.gz"))
 | 
				
			||||||
            (sha256
 | 
					            (sha256
 | 
				
			||||||
             (base32
 | 
					             (base32
 | 
				
			||||||
              "165syd6kihwp6bry9hvr3v0908cgadsz5w5h5ry4mjnchrklnb7w"))))
 | 
					              "1545vgizpypqi2rrriad0ybqv0qwbn9zr0ibxpk00gha9ihv7acx"))))
 | 
				
			||||||
   (build-system gnu-build-system)
 | 
					   (build-system gnu-build-system)
 | 
				
			||||||
   (propagated-inputs
 | 
					   (propagated-inputs
 | 
				
			||||||
     `(("gmp" ,gmp)
 | 
					     `(("gmp" ,gmp)
 | 
				
			||||||
| 
						 | 
					@ -237,7 +237,7 @@ the real span of the lattice.")
 | 
				
			||||||
(define-public pari-gp
 | 
					(define-public pari-gp
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "pari-gp")
 | 
					    (name "pari-gp")
 | 
				
			||||||
    (version "2.13.1")
 | 
					    (version "2.13.2")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append
 | 
					              (uri (string-append
 | 
				
			||||||
| 
						 | 
					@ -245,7 +245,7 @@ the real span of the lattice.")
 | 
				
			||||||
                    version ".tar.gz"))
 | 
					                    version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1cgwdpw8b797883z9y92ixxjkv72kiy65zsw2qqf5and1kbzgv41"))))
 | 
					                "095s7vdlsxmxa0n0l1a082m6gjaypqfqkaj99z8j7dx0ji89hy8n"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("texlive" ,(texlive-updmap.cfg
 | 
					     `(("texlive" ,(texlive-updmap.cfg
 | 
				
			||||||
| 
						 | 
					@ -343,7 +343,7 @@ precision.")
 | 
				
			||||||
(define-public giac
 | 
					(define-public giac
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "giac")
 | 
					    (name "giac")
 | 
				
			||||||
    (version "1.7.0-17")
 | 
					    (version "1.7.0-31")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
| 
						 | 
					@ -355,7 +355,7 @@ precision.")
 | 
				
			||||||
                           "~parisse/debian/dists/stable/main/source/"
 | 
					                           "~parisse/debian/dists/stable/main/source/"
 | 
				
			||||||
                           "giac_" version ".tar.gz"))
 | 
					                           "giac_" version ".tar.gz"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "0yh556wlgs9hfyp5j2xz4nlrd2dma63cicrc3dhahyl96y1aw6mr"))))
 | 
					        (base32 "19vjyijlm3hb758h6nk70k41zw9wrbg6vwfx4r4rgvrb1myy5kpl"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:modules ((ice-9 ftw)
 | 
					     `(#:modules ((ice-9 ftw)
 | 
				
			||||||
| 
						 | 
					@ -368,14 +368,12 @@ precision.")
 | 
				
			||||||
           (lambda _
 | 
					           (lambda _
 | 
				
			||||||
             (substitute* (cons "micropython-1.12/xcas/Makefile"
 | 
					             (substitute* (cons "micropython-1.12/xcas/Makefile"
 | 
				
			||||||
                                (find-files "doc" "^Makefile"))
 | 
					                                (find-files "doc" "^Makefile"))
 | 
				
			||||||
               (("/bin/cp") (which "cp")))
 | 
					               (("/bin/cp") (which "cp")))))
 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
         (add-after 'unpack 'disable-failing-test
 | 
					         (add-after 'unpack 'disable-failing-test
 | 
				
			||||||
           ;; FIXME: Test failing.  Not sure why.
 | 
					           ;; FIXME: Test failing.  Not sure why.
 | 
				
			||||||
           (lambda _
 | 
					           (lambda _
 | 
				
			||||||
             (substitute* "check/Makefile.in"
 | 
					             (substitute* "check/Makefile.in"
 | 
				
			||||||
               (("chk_fhan11") ""))
 | 
					               (("chk_fhan11") ""))))
 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
         (add-after 'install 'fix-doc
 | 
					         (add-after 'install 'fix-doc
 | 
				
			||||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
             (let ((out (assoc-ref outputs "out")))
 | 
					             (let ((out (assoc-ref outputs "out")))
 | 
				
			||||||
| 
						 | 
					@ -388,13 +386,11 @@ precision.")
 | 
				
			||||||
               ;; Remove duplicate documentation in
 | 
					               ;; Remove duplicate documentation in
 | 
				
			||||||
               ;; "%out/share/doc/giac/", where Xcas does not expect
 | 
					               ;; "%out/share/doc/giac/", where Xcas does not expect
 | 
				
			||||||
               ;; to find it.
 | 
					               ;; to find it.
 | 
				
			||||||
               (delete-file-recursively (string-append out "/share/doc/giac"))
 | 
					               (delete-file-recursively (string-append out "/share/doc/giac")))))
 | 
				
			||||||
               #t)))
 | 
					 | 
				
			||||||
         (add-after 'install 'remove-unnecessary-executable
 | 
					         (add-after 'install 'remove-unnecessary-executable
 | 
				
			||||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
             (let ((out (assoc-ref outputs "out")))
 | 
					             (let ((out (assoc-ref outputs "out")))
 | 
				
			||||||
               (delete-file (string-append out "/bin/xcasnew"))
 | 
					               (delete-file (string-append out "/bin/xcasnew"))))))))
 | 
				
			||||||
               #t))))))
 | 
					 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     ;; TODO: Add libnauty, unbundle "libmicropython.a".
 | 
					     ;; TODO: Add libnauty, unbundle "libmicropython.a".
 | 
				
			||||||
     `(("fltk" ,fltk)
 | 
					     `(("fltk" ,fltk)
 | 
				
			||||||
| 
						 | 
					@ -1075,6 +1071,33 @@ features, and more.")
 | 
				
			||||||
                       "# Do not build the tests for unsupported features.\n"))
 | 
					                       "# Do not build the tests for unsupported features.\n"))
 | 
				
			||||||
                    #t)))))))
 | 
					                    #t)))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public eigen-for-tensorflow-lite
 | 
				
			||||||
 | 
					  ;; This commit was taken from
 | 
				
			||||||
 | 
					  ;; tensorflow/lite/tools/cmake/modules/eigen.cmake
 | 
				
			||||||
 | 
					  (let ((commit "d10b27fe37736d2944630ecd7557cefa95cf87c9")
 | 
				
			||||||
 | 
					        (revision "1"))
 | 
				
			||||||
 | 
					    (package (inherit eigen)
 | 
				
			||||||
 | 
					      (name "eigen-for-tensorflow-lite")
 | 
				
			||||||
 | 
					      (version (git-version "3.3.7" revision commit))
 | 
				
			||||||
 | 
					      (source (origin
 | 
				
			||||||
 | 
					                (method git-fetch)
 | 
				
			||||||
 | 
					                (uri (git-reference
 | 
				
			||||||
 | 
					                      (url "https://gitlab.com/libeigen/eigen")
 | 
				
			||||||
 | 
					                      (commit commit)))
 | 
				
			||||||
 | 
					                (sha256
 | 
				
			||||||
 | 
					                 (base32
 | 
				
			||||||
 | 
					                  "0v8a20cwvwmp3hw4275b37frw33v92z0mr8f4dn6y8k0rz92hrrf"))
 | 
				
			||||||
 | 
					                (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					                (modules '((guix build utils)))
 | 
				
			||||||
 | 
					                (snippet
 | 
				
			||||||
 | 
					                 ;; Ther are test failures in the "unsupported" directory, but
 | 
				
			||||||
 | 
					                 ;; maintainers say it's unsupported anyway, so just skip
 | 
				
			||||||
 | 
					                 ;; them.
 | 
				
			||||||
 | 
					                 '(begin
 | 
				
			||||||
 | 
					                    (substitute* "unsupported/CMakeLists.txt"
 | 
				
			||||||
 | 
					                      (("add_subdirectory\\(test.*")
 | 
				
			||||||
 | 
					                       "# Do not build the tests for unsupported features.\n")))))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public xtensor
 | 
					(define-public xtensor
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "xtensor")
 | 
					    (name "xtensor")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,6 +11,7 @@
 | 
				
			||||||
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
 | 
					;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
 | 
				
			||||||
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
					;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
				
			||||||
;;; Copyright © 2020 Sergey Trofimov <sarg@sarg.org.ru>
 | 
					;;; Copyright © 2020 Sergey Trofimov <sarg@sarg.org.ru>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -30,6 +31,7 @@
 | 
				
			||||||
(define-module (gnu packages android)
 | 
					(define-module (gnu packages android)
 | 
				
			||||||
  #:use-module (guix packages)
 | 
					  #:use-module (guix packages)
 | 
				
			||||||
  #:use-module (guix download)
 | 
					  #:use-module (guix download)
 | 
				
			||||||
 | 
					  #:use-module (guix gexp)
 | 
				
			||||||
  #:use-module (guix git-download)
 | 
					  #:use-module (guix git-download)
 | 
				
			||||||
  #:use-module (guix build-system android-ndk)
 | 
					  #:use-module (guix build-system android-ndk)
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
| 
						 | 
					@ -148,6 +150,7 @@ use their packages mostly unmodified in our Android NDK build system.")
 | 
				
			||||||
                     "libutils-remove-damaging-includes.patch"
 | 
					                     "libutils-remove-damaging-includes.patch"
 | 
				
			||||||
                     "libutils-add-includes.patch"
 | 
					                     "libutils-add-includes.patch"
 | 
				
			||||||
                     "adb-add-libraries.patch"
 | 
					                     "adb-add-libraries.patch"
 | 
				
			||||||
 | 
					                     "adb-libssl_11-compatibility.patch"
 | 
				
			||||||
                     "libziparchive-add-includes.patch"))))
 | 
					                     "libziparchive-add-includes.patch"))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (android-platform-system-extras version)
 | 
					(define (android-platform-system-extras version)
 | 
				
			||||||
| 
						 | 
					@ -360,10 +363,12 @@ various Android core host applications.")
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f ; Test failure: sysdeps_poll.fd_count
 | 
					     `(#:tests? #f ; Test failure: sysdeps_poll.fd_count
 | 
				
			||||||
       #:make-flags
 | 
					       #:make-flags
 | 
				
			||||||
       (list "CFLAGS=-Wno-error"
 | 
					       ,#~(list
 | 
				
			||||||
 | 
					           "CFLAGS=-Wno-error"
 | 
				
			||||||
           "CXXFLAGS=-fpermissive -Wno-error -std=gnu++14 -D_Nonnull= -D_Nullable= -I ."
 | 
					           "CXXFLAGS=-fpermissive -Wno-error -std=gnu++14 -D_Nonnull= -D_Nullable= -I ."
 | 
				
			||||||
             (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib "
 | 
					           (string-append
 | 
				
			||||||
                            "-Wl,-rpath=" (assoc-ref %build-inputs "openssl") "/lib -L ."))
 | 
					            "LDFLAGS=-Wl,-rpath=" #$output "/lib "
 | 
				
			||||||
 | 
					            "-Wl,-rpath=" #$(this-package-input "openssl") "/lib -L ."))
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-after 'unpack 'enter-source
 | 
					         (add-after 'unpack 'enter-source
 | 
				
			||||||
| 
						 | 
					@ -388,7 +393,7 @@ various Android core host applications.")
 | 
				
			||||||
     `(("android-libbase" ,android-libbase)
 | 
					     `(("android-libbase" ,android-libbase)
 | 
				
			||||||
       ("android-libcutils" ,android-libcutils)
 | 
					       ("android-libcutils" ,android-libcutils)
 | 
				
			||||||
       ("android-liblog" ,android-liblog)
 | 
					       ("android-liblog" ,android-liblog)
 | 
				
			||||||
       ("openssl" ,openssl-1.0)))
 | 
					       ("openssl" ,openssl)))
 | 
				
			||||||
    (home-page "https://developer.android.com/studio/command-line/adb.html")
 | 
					    (home-page "https://developer.android.com/studio/command-line/adb.html")
 | 
				
			||||||
    (synopsis "Android Debug Bridge")
 | 
					    (synopsis "Android Debug Bridge")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
| 
						 | 
					@ -530,29 +535,25 @@ the core SELinux management utilities.")
 | 
				
			||||||
    (build-system android-ndk-build-system)
 | 
					    (build-system android-ndk-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:make-flags
 | 
					     `(#:make-flags
 | 
				
			||||||
       (list (string-append "CPPFLAGS="
 | 
					       ,#~(list
 | 
				
			||||||
 | 
					           (string-append
 | 
				
			||||||
 | 
					            "CPPFLAGS="
 | 
				
			||||||
            ;"-Wno-error "
 | 
					            ;"-Wno-error "
 | 
				
			||||||
                            "-I "
 | 
					            "-I " #$(this-package-input "android-libselinux") "/include "
 | 
				
			||||||
                            (assoc-ref %build-inputs "android-libselinux")
 | 
					            "-I " #$(this-package-input "android-libsparse")  "/include "
 | 
				
			||||||
                            "/include "
 | 
					            "-I " #$(this-package-input "android-libcutils")  "/include "
 | 
				
			||||||
                            "-I " (assoc-ref %build-inputs "android-libsparse")
 | 
					            "-I " #$(this-package-input "android-liblog") "/include "
 | 
				
			||||||
                            "/include "
 | 
					 | 
				
			||||||
                            "-I " (assoc-ref %build-inputs "android-libcutils")
 | 
					 | 
				
			||||||
                            "/include "
 | 
					 | 
				
			||||||
                            "-I " (assoc-ref %build-inputs "android-liblog") "/include "
 | 
					 | 
				
			||||||
            "-I ../core/include")
 | 
					            "-I ../core/include")
 | 
				
			||||||
           "CFLAGS=-Wno-error"
 | 
					           "CFLAGS=-Wno-error"
 | 
				
			||||||
           "install-libext4_utils_host.a"
 | 
					           "install-libext4_utils_host.a"
 | 
				
			||||||
             (string-append "prefix=" (assoc-ref %outputs "out")))
 | 
					           (string-append "prefix=" #$output))
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-after 'unpack 'unpack-core
 | 
					         (add-after 'unpack 'unpack-core
 | 
				
			||||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
					           (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
             (mkdir-p "core")
 | 
					             (mkdir-p "core")
 | 
				
			||||||
             (with-directory-excursion "core"
 | 
					             (copy-recursively (assoc-ref inputs "android-core")
 | 
				
			||||||
               (invoke "tar" "axf" (assoc-ref inputs "android-core")
 | 
					                               "core")))
 | 
				
			||||||
                             "--strip-components=1"))
 | 
					 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
         (add-after 'unpack-core 'enter-source
 | 
					         (add-after 'unpack-core 'enter-source
 | 
				
			||||||
           (lambda _ (chdir "ext4_utils") #t))
 | 
					           (lambda _ (chdir "ext4_utils") #t))
 | 
				
			||||||
         (replace 'install
 | 
					         (replace 'install
 | 
				
			||||||
| 
						 | 
					@ -585,6 +586,9 @@ Android core.")
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-after 'unpack 'enter-source
 | 
					         (add-after 'unpack 'enter-source
 | 
				
			||||||
           (lambda _ (chdir "f2fs_utils") #t))
 | 
					           (lambda _ (chdir "f2fs_utils") #t))
 | 
				
			||||||
 | 
					         (add-before 'build 'set-compilation-flags
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             (setenv "CFLAGS" "-fcommon")))
 | 
				
			||||||
         (add-after 'install 'install-headers
 | 
					         (add-after 'install 'install-headers
 | 
				
			||||||
           (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
					           (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
				
			||||||
             (copy-recursively "." (string-append (assoc-ref outputs "out")
 | 
					             (copy-recursively "." (string-append (assoc-ref outputs "out")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2019 L  p R n  d n <guix@lprndn.info>
 | 
					;;; Copyright © 2019 L  p R n  d n <guix@lprndn.info>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -65,7 +66,8 @@
 | 
				
			||||||
                 (base32 "1pd0avlzc2rig1hd37zbhc7r2s6fjzdhshfg9l9cfzibl7caclyw"))))
 | 
					                 (base32 "1pd0avlzc2rig1hd37zbhc7r2s6fjzdhshfg9l9cfzibl7caclyw"))))
 | 
				
			||||||
      (build-system cmake-build-system)
 | 
					      (build-system cmake-build-system)
 | 
				
			||||||
      (arguments
 | 
					      (arguments
 | 
				
			||||||
       `(#:configure-flags '("-DVIDEO_PLATFORM=egl-dri" "-DBUILTIN_LUA=off"
 | 
					       `(#:configure-flags '("-DCMAKE_C_FLAGS=-fcommon"
 | 
				
			||||||
 | 
					                             "-DVIDEO_PLATFORM=egl-dri" "-DBUILTIN_LUA=off"
 | 
				
			||||||
                             "-DSTATIC_OPENAL=off""-DENABLE_LWA=on"
 | 
					                             "-DSTATIC_OPENAL=off""-DENABLE_LWA=on"
 | 
				
			||||||
                             "-DSTATIC_SQLITE3=off" "-DSTATIC_FREETYPE=off"
 | 
					                             "-DSTATIC_SQLITE3=off" "-DSTATIC_FREETYPE=off"
 | 
				
			||||||
                             "-DSHMIF_TUI_ACCEL=on")
 | 
					                             "-DSHMIF_TUI_ACCEL=on")
 | 
				
			||||||
| 
						 | 
					@ -176,7 +178,8 @@ engine programmable using Lua.")
 | 
				
			||||||
     `(,@(ensure-keyword-arguments
 | 
					     `(,@(ensure-keyword-arguments
 | 
				
			||||||
          (package-arguments arcan)
 | 
					          (package-arguments arcan)
 | 
				
			||||||
          '(#:configure-flags
 | 
					          '(#:configure-flags
 | 
				
			||||||
            '("-DVIDEO_PLATFORM=sdl" "-DBUILTIN_LUA=off"
 | 
					            '("-DCMAKE_C_FLAGS=-fcommon"
 | 
				
			||||||
 | 
					              "-DVIDEO_PLATFORM=sdl" "-DBUILTIN_LUA=off"
 | 
				
			||||||
              "-DSTATIC_OPENAL=off" "-DDISABLE_JIT=off"
 | 
					              "-DSTATIC_OPENAL=off" "-DDISABLE_JIT=off"
 | 
				
			||||||
              "-DENABLE_LWA=on" "-DSTATIC_SQLITE3=off"
 | 
					              "-DENABLE_LWA=on" "-DSTATIC_SQLITE3=off"
 | 
				
			||||||
              "-DSTATIC_FREETYPE=off" "-DSHMIF_TUI_ACCEL=on")))))
 | 
					              "-DSTATIC_FREETYPE=off" "-DSHMIF_TUI_ACCEL=on")))))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,9 +7,10 @@
 | 
				
			||||||
;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com>
 | 
					;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com>
 | 
				
			||||||
;;; Copyright © 2019 Andy Tai <atai@atai.org>
 | 
					;;; Copyright © 2019 Andy Tai <atai@atai.org>
 | 
				
			||||||
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 | 
					;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 | 
				
			||||||
;;; Copyright © 2020 Christopher Lemmer Webber <cwebber@dustycloud.org>
 | 
					;;; Copyright © 2020 Christine Lemmer-Webber <cwebber@dustycloud.org>
 | 
				
			||||||
;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
 | 
					;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
 | 
				
			||||||
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
					;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -140,6 +141,9 @@ debugging information in STABS, DWARF 2, and CodeView 8 formats.")
 | 
				
			||||||
               "1jgxbq2cm51dzi3zhz38mmgwdcgs328mfl8iviw8dxn6dn36p1gd"))))
 | 
					               "1jgxbq2cm51dzi3zhz38mmgwdcgs328mfl8iviw8dxn6dn36p1gd"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs `(("zlib" ,zlib)))
 | 
					    (native-inputs `(("zlib" ,zlib)))
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     ;; Some tests fail when run in parallel.
 | 
				
			||||||
 | 
					     `(#:parallel-tests? #f))
 | 
				
			||||||
    (synopsis "Library for generating assembly code at runtime")
 | 
					    (synopsis "Library for generating assembly code at runtime")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
     "GNU Lightning is a library that generates assembly language code at
 | 
					     "GNU Lightning is a library that generates assembly language code at
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -773,7 +773,8 @@ Mercator, Mollweide, Peters, polyconic, orthographic and rectangular.")
 | 
				
			||||||
       ("goocanvas" ,goocanvas)
 | 
					       ("goocanvas" ,goocanvas)
 | 
				
			||||||
       ("gtk+" ,gtk+)))
 | 
					       ("gtk+" ,gtk+)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:configure-flags '("CFLAGS=-fcommon")
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-after 'unpack 'fix-tests
 | 
					         (add-after 'unpack 'fix-tests
 | 
				
			||||||
           (lambda _
 | 
					           (lambda _
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
 | 
					;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
 | 
				
			||||||
;;; Copyright © 2012, 2013, 2016 Ludovic Courtès <ludo@gnu.org>
 | 
					;;; Copyright © 2012, 2013, 2016, 2021 Ludovic Courtès <ludo@gnu.org>
 | 
				
			||||||
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
 | 
					;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
 | 
				
			||||||
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
 | 
					;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -23,6 +23,7 @@
 | 
				
			||||||
  #:use-module (guix licenses)
 | 
					  #:use-module (guix licenses)
 | 
				
			||||||
  #:use-module (gnu packages perl)
 | 
					  #:use-module (gnu packages perl)
 | 
				
			||||||
  #:use-module (gnu packages gettext)
 | 
					  #:use-module (gnu packages gettext)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages hurd)
 | 
				
			||||||
  #:use-module (guix packages)
 | 
					  #:use-module (guix packages)
 | 
				
			||||||
  #:use-module (guix download)
 | 
					  #:use-module (guix download)
 | 
				
			||||||
  #:use-module (guix build-system gnu))
 | 
					  #:use-module (guix build-system gnu))
 | 
				
			||||||
| 
						 | 
					@ -42,6 +43,17 @@
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         ,@(if (hurd-target?)
 | 
				
			||||||
 | 
					               `((add-before 'configure 'skip-linux-syscalls
 | 
				
			||||||
 | 
					                   (lambda _
 | 
				
			||||||
 | 
					                     ;; Starting from 2.5.1, libattr includes Linux-specific
 | 
				
			||||||
 | 
					                     ;; calls to syscall(2).  Comment them out for GNU/Hurd
 | 
				
			||||||
 | 
					                     ;; and instead use the glibc-provided wrappers.
 | 
				
			||||||
 | 
					                     (substitute* "Makefile.in"
 | 
				
			||||||
 | 
					                       (("libattr/syscalls\\.c") "")
 | 
				
			||||||
 | 
					                       (("\tlibattr/la-syscalls\\.lo") "")
 | 
				
			||||||
 | 
					                       (("-Wl,[[:graph:]]+/libattr\\.lds") "")))))
 | 
				
			||||||
 | 
					               '())
 | 
				
			||||||
         (replace 'check
 | 
					         (replace 'check
 | 
				
			||||||
           (lambda* (#:key target #:allow-other-keys)
 | 
					           (lambda* (#:key target #:allow-other-keys)
 | 
				
			||||||
             ;; Use the right shell.
 | 
					             ;; Use the right shell.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,7 +24,7 @@
 | 
				
			||||||
;;; Copyright © 2019, 2021 Arun Isaac <arunisaac@systemreboot.net>
 | 
					;;; Copyright © 2019, 2021 Arun Isaac <arunisaac@systemreboot.net>
 | 
				
			||||||
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 | 
					;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 | 
				
			||||||
;;; Copyright © 2019, 2020 Alexandros Theodotou <alex@zrythm.org>
 | 
					;;; Copyright © 2019, 2020 Alexandros Theodotou <alex@zrythm.org>
 | 
				
			||||||
;;; Copyright © 2019 Christopher Lemmer Webber <cwebber@dustycloud.org>
 | 
					;;; Copyright © 2019 Christine Lemmer-Webber <cwebber@dustycloud.org>
 | 
				
			||||||
;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
 | 
					;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
 | 
				
			||||||
;;; Copyright © 2019 Hartmt Goebel <h.goebel@crazy-compilers.com>
 | 
					;;; Copyright © 2019 Hartmt Goebel <h.goebel@crazy-compilers.com>
 | 
				
			||||||
;;; Copyright © 2019, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 | 
					;;; Copyright © 2019, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 | 
				
			||||||
| 
						 | 
					@ -571,7 +571,7 @@ streams from live audio.")
 | 
				
			||||||
(define-public ardour
 | 
					(define-public ardour
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "ardour")
 | 
					    (name "ardour")
 | 
				
			||||||
    (version "6.6")
 | 
					    (version "6.8")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method git-fetch)
 | 
					              (method git-fetch)
 | 
				
			||||||
              (uri (git-reference
 | 
					              (uri (git-reference
 | 
				
			||||||
| 
						 | 
					@ -589,7 +589,7 @@ namespace ARDOUR { const char* revision = \"" version "\" ; const char* date = \
 | 
				
			||||||
                    #t)))
 | 
					                    #t)))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0k5rxh8b3d8si3lj01gfqj0pmd448d8sj4asnb205mwhwbfgn0cp"))
 | 
					                "16x7bkzbrk0rgywq5vrkhf2z3jj08jw1bvaq9vwlf2b4h4sd7i4s"))
 | 
				
			||||||
              (file-name (string-append name "-" version))))
 | 
					              (file-name (string-append name "-" version))))
 | 
				
			||||||
    (build-system waf-build-system)
 | 
					    (build-system waf-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
| 
						 | 
					@ -2829,14 +2829,14 @@ different audio devices such as ALSA or PulseAudio.")
 | 
				
			||||||
(define-public qjackctl
 | 
					(define-public qjackctl
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "qjackctl")
 | 
					    (name "qjackctl")
 | 
				
			||||||
    (version "0.9.3")
 | 
					    (version "0.9.4")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
 | 
					              (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
 | 
				
			||||||
                                  version "/qjackctl-" version ".tar.gz"))
 | 
					                                  version "/qjackctl-" version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "065x66rr1mb2bkqr88l50rcn5c8rsiq4hp5hrlyqqg46371gzhp9"))))
 | 
					                "186rg3j67rac9ds1r7gnrib2d0smgv15cmr5gwb7v83mywcp1gzy"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:tests? #f))                    ; no check target
 | 
					     '(#:tests? #f))                    ; no check target
 | 
				
			||||||
| 
						 | 
					@ -4914,7 +4914,7 @@ in the package.")
 | 
				
			||||||
      (origin
 | 
					      (origin
 | 
				
			||||||
        (method git-fetch)
 | 
					        (method git-fetch)
 | 
				
			||||||
        (uri (git-reference
 | 
					        (uri (git-reference
 | 
				
			||||||
               (url "https://git.zrythm.org/git/libaudec")
 | 
					               (url "https://git.zrythm.org/zrythm/libaudec")
 | 
				
			||||||
               (commit (string-append "v" version))))
 | 
					               (commit (string-append "v" version))))
 | 
				
			||||||
        (file-name (git-file-name name version))
 | 
					        (file-name (git-file-name name version))
 | 
				
			||||||
        (sha256
 | 
					        (sha256
 | 
				
			||||||
| 
						 | 
					@ -4934,7 +4934,7 @@ in the package.")
 | 
				
			||||||
   (description "libaudec is a wrapper library over ffmpeg, sndfile and
 | 
					   (description "libaudec is a wrapper library over ffmpeg, sndfile and
 | 
				
			||||||
libsamplerate for reading and resampling audio files, based on Robin Gareus'
 | 
					libsamplerate for reading and resampling audio files, based on Robin Gareus'
 | 
				
			||||||
@code{audio_decoder} code.")
 | 
					@code{audio_decoder} code.")
 | 
				
			||||||
   (home-page "https://git.zrythm.org/cgit/libaudec")
 | 
					   (home-page "https://git.zrythm.org/zrythm/libaudec")
 | 
				
			||||||
   (license license:agpl3+)))
 | 
					   (license license:agpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public lv2lint
 | 
					(define-public lv2lint
 | 
				
			||||||
| 
						 | 
					@ -5013,7 +5013,7 @@ with the provided metadata and adhere to well-known best practices.")
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
       (uri (git-reference
 | 
					       (uri (git-reference
 | 
				
			||||||
             (url "https://git.zrythm.org/git/ztoolkit")
 | 
					             (url "https://git.zrythm.org/zrythm/ztoolkit")
 | 
				
			||||||
             (commit (string-append "v" version))))
 | 
					             (commit (string-append "v" version))))
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
| 
						 | 
					@ -5034,7 +5034,7 @@ the user and provides a high-level API for managing the UI and custom
 | 
				
			||||||
widgets.  ZToolkit is written in C and was created to be used for building
 | 
					widgets.  ZToolkit is written in C and was created to be used for building
 | 
				
			||||||
audio plugin UIs, where the dependencies often need to be kept to a
 | 
					audio plugin UIs, where the dependencies often need to be kept to a
 | 
				
			||||||
minimum.")
 | 
					minimum.")
 | 
				
			||||||
    (home-page "https://git.zrythm.org/cgit/ztoolkit/")
 | 
					    (home-page "https://git.zrythm.org/zrythm/ztoolkit")
 | 
				
			||||||
    (license license:agpl3+)))
 | 
					    (license license:agpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public libinstpatch
 | 
					(define-public libinstpatch
 | 
				
			||||||
| 
						 | 
					@ -5277,14 +5277,14 @@ while still staying in time.")
 | 
				
			||||||
(define-public butt
 | 
					(define-public butt
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "butt")
 | 
					    (name "butt")
 | 
				
			||||||
    (version "0.1.30")
 | 
					    (version "0.1.31")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "mirror://sourceforge/butt/butt/butt-"
 | 
					              (uri (string-append "mirror://sourceforge/butt/butt/butt-"
 | 
				
			||||||
                                  version "/butt-" version ".tar.gz"))
 | 
					                                  version "/butt-" version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1dfspdh3f18lpp7asxpj63b9zfpvazi7shgrdacg17gd42ycayq5"))
 | 
					                "19zvdi5vr6vqnrpc60jir7550nz9a5x1c61lh13355cdny2zp28z"))
 | 
				
			||||||
              (modules '((guix build utils)))
 | 
					              (modules '((guix build utils)))
 | 
				
			||||||
              (snippet
 | 
					              (snippet
 | 
				
			||||||
               '(substitute* "src/butt.cpp"
 | 
					               '(substitute* "src/butt.cpp"
 | 
				
			||||||
| 
						 | 
					@ -5325,7 +5325,7 @@ while still staying in time.")
 | 
				
			||||||
                                        version "_manual.pdf"))
 | 
					                                        version "_manual.pdf"))
 | 
				
			||||||
                    (sha256
 | 
					                    (sha256
 | 
				
			||||||
                     (base32
 | 
					                     (base32
 | 
				
			||||||
                      "1w3krh7f2v5vdz18hqycnpn0qv1x6xl6pa1najgp4jbfisjc1mn8"))))))
 | 
					                      "0a0kgd069whfp1v8xgw6qm67w02n8b7b4h5ay5665wgq947hxanp"))))))
 | 
				
			||||||
    (home-page "https://danielnoethen.de/butt/")
 | 
					    (home-page "https://danielnoethen.de/butt/")
 | 
				
			||||||
    (synopsis "Audio streaming tool")
 | 
					    (synopsis "Audio streaming tool")
 | 
				
			||||||
    (description "Butt is a tool to stream audio to a ShoutCast or
 | 
					    (description "Butt is a tool to stream audio to a ShoutCast or
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -132,7 +132,18 @@ know anything about Autoconf or M4.")
 | 
				
			||||||
                                 (find-files "bin"
 | 
					                                 (find-files "bin"
 | 
				
			||||||
                                             (lambda (file stat)
 | 
					                                             (lambda (file stat)
 | 
				
			||||||
                                               (executable-file? file)))))
 | 
					                                               (executable-file? file)))))
 | 
				
			||||||
               #t))))))))
 | 
					               #t))
 | 
				
			||||||
 | 
					           (add-after 'install 'unpatch-shebangs
 | 
				
			||||||
 | 
					             (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					               ;; Scripts that "autoconf -i" installs (config.guess,
 | 
				
			||||||
 | 
					               ;; config.sub, and install-sh) must use a regular shebang
 | 
				
			||||||
 | 
					               ;; rather than a reference to the store.  Restore it.
 | 
				
			||||||
 | 
					               ;; TODO: Move this phase to 'autoconf-2.69'.
 | 
				
			||||||
 | 
					               (let* ((out (assoc-ref outputs "out"))
 | 
				
			||||||
 | 
					                      (build-aux (string-append
 | 
				
			||||||
 | 
					                                  out "/share/autoconf/build-aux")))
 | 
				
			||||||
 | 
					                 (substitute* (find-files build-aux)
 | 
				
			||||||
 | 
					                   (("^#!.*/bin/sh") "#!/bin/sh")))))))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public autoconf autoconf-2.69)
 | 
					(define-public autoconf autoconf-2.69)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10612,7 +10612,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
 | 
				
			||||||
CONFIG_BLK_DEV_IO_TRACE=y
 | 
					CONFIG_BLK_DEV_IO_TRACE=y
 | 
				
			||||||
CONFIG_KPROBE_EVENTS=y
 | 
					CONFIG_KPROBE_EVENTS=y
 | 
				
			||||||
# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
 | 
					# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
 | 
				
			||||||
# CONFIG_UPROBE_EVENTS is not set
 | 
					CONFIG_UPROBE_EVENTS=y
 | 
				
			||||||
CONFIG_BPF_EVENTS=y
 | 
					CONFIG_BPF_EVENTS=y
 | 
				
			||||||
CONFIG_DYNAMIC_EVENTS=y
 | 
					CONFIG_DYNAMIC_EVENTS=y
 | 
				
			||||||
CONFIG_PROBE_EVENTS=y
 | 
					CONFIG_PROBE_EVENTS=y
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10620,7 +10620,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
 | 
				
			||||||
CONFIG_BLK_DEV_IO_TRACE=y
 | 
					CONFIG_BLK_DEV_IO_TRACE=y
 | 
				
			||||||
CONFIG_KPROBE_EVENTS=y
 | 
					CONFIG_KPROBE_EVENTS=y
 | 
				
			||||||
# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
 | 
					# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
 | 
				
			||||||
# CONFIG_UPROBE_EVENTS is not set
 | 
					CONFIG_UPROBE_EVENTS=y
 | 
				
			||||||
CONFIG_BPF_EVENTS=y
 | 
					CONFIG_BPF_EVENTS=y
 | 
				
			||||||
CONFIG_DYNAMIC_EVENTS=y
 | 
					CONFIG_DYNAMIC_EVENTS=y
 | 
				
			||||||
CONFIG_PROBE_EVENTS=y
 | 
					CONFIG_PROBE_EVENTS=y
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10765,7 +10765,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
 | 
				
			||||||
CONFIG_BLK_DEV_IO_TRACE=y
 | 
					CONFIG_BLK_DEV_IO_TRACE=y
 | 
				
			||||||
CONFIG_KPROBE_EVENTS=y
 | 
					CONFIG_KPROBE_EVENTS=y
 | 
				
			||||||
# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
 | 
					# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
 | 
				
			||||||
# CONFIG_UPROBE_EVENTS is not set
 | 
					CONFIG_UPROBE_EVENTS=y
 | 
				
			||||||
CONFIG_BPF_EVENTS=y
 | 
					CONFIG_BPF_EVENTS=y
 | 
				
			||||||
CONFIG_DYNAMIC_EVENTS=y
 | 
					CONFIG_DYNAMIC_EVENTS=y
 | 
				
			||||||
CONFIG_PROBE_EVENTS=y
 | 
					CONFIG_PROBE_EVENTS=y
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10831,7 +10831,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
 | 
				
			||||||
CONFIG_BLK_DEV_IO_TRACE=y
 | 
					CONFIG_BLK_DEV_IO_TRACE=y
 | 
				
			||||||
CONFIG_KPROBE_EVENTS=y
 | 
					CONFIG_KPROBE_EVENTS=y
 | 
				
			||||||
# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
 | 
					# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
 | 
				
			||||||
# CONFIG_UPROBE_EVENTS is not set
 | 
					CONFIG_UPROBE_EVENTS=y
 | 
				
			||||||
CONFIG_BPF_EVENTS=y
 | 
					CONFIG_BPF_EVENTS=y
 | 
				
			||||||
CONFIG_DYNAMIC_EVENTS=y
 | 
					CONFIG_DYNAMIC_EVENTS=y
 | 
				
			||||||
CONFIG_PROBE_EVENTS=y
 | 
					CONFIG_PROBE_EVENTS=y
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
					@ -10214,7 +10214,7 @@ CONFIG_STACK_TRACER=y
 | 
				
			||||||
CONFIG_BLK_DEV_IO_TRACE=y
 | 
					CONFIG_BLK_DEV_IO_TRACE=y
 | 
				
			||||||
CONFIG_KPROBE_EVENTS=y
 | 
					CONFIG_KPROBE_EVENTS=y
 | 
				
			||||||
# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
 | 
					# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
 | 
				
			||||||
# CONFIG_UPROBE_EVENTS is not set
 | 
					CONFIG_UPROBE_EVENTS=y
 | 
				
			||||||
CONFIG_BPF_EVENTS=y
 | 
					CONFIG_BPF_EVENTS=y
 | 
				
			||||||
CONFIG_DYNAMIC_EVENTS=y
 | 
					CONFIG_DYNAMIC_EVENTS=y
 | 
				
			||||||
CONFIG_PROBE_EVENTS=y
 | 
					CONFIG_PROBE_EVENTS=y
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10164,7 +10164,7 @@ CONFIG_STACK_TRACER=y
 | 
				
			||||||
CONFIG_BLK_DEV_IO_TRACE=y
 | 
					CONFIG_BLK_DEV_IO_TRACE=y
 | 
				
			||||||
CONFIG_KPROBE_EVENTS=y
 | 
					CONFIG_KPROBE_EVENTS=y
 | 
				
			||||||
# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
 | 
					# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
 | 
				
			||||||
# CONFIG_UPROBE_EVENTS is not set
 | 
					CONFIG_UPROBE_EVENTS=y
 | 
				
			||||||
CONFIG_BPF_EVENTS=y
 | 
					CONFIG_BPF_EVENTS=y
 | 
				
			||||||
CONFIG_DYNAMIC_EVENTS=y
 | 
					CONFIG_DYNAMIC_EVENTS=y
 | 
				
			||||||
CONFIG_PROBE_EVENTS=y
 | 
					CONFIG_PROBE_EVENTS=y
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -51,7 +51,7 @@ for dist in ws:
 | 
				
			||||||
    # Try to load top level modules. This should not have any side-effects.
 | 
					    # Try to load top level modules. This should not have any side-effects.
 | 
				
			||||||
    try:
 | 
					    try:
 | 
				
			||||||
        metalines = dist.get_metadata_lines('top_level.txt')
 | 
					        metalines = dist.get_metadata_lines('top_level.txt')
 | 
				
			||||||
    except (KeyError, FileNotFoundError):
 | 
					    except (KeyError, EnvironmentError):
 | 
				
			||||||
        # distutils (i.e. #:use-setuptools? #f) will not install any metadata.
 | 
					        # distutils (i.e. #:use-setuptools? #f) will not install any metadata.
 | 
				
			||||||
        # This file is also missing for packages built using a PEP 517 builder
 | 
					        # This file is also missing for packages built using a PEP 517 builder
 | 
				
			||||||
        # such as poetry.
 | 
					        # such as poetry.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,6 +3,7 @@
 | 
				
			||||||
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 | 
					;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 | 
				
			||||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
					;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
				
			||||||
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 | 
					;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -22,9 +23,11 @@
 | 
				
			||||||
(define-module (gnu packages avahi)
 | 
					(define-module (gnu packages avahi)
 | 
				
			||||||
  #:use-module ((guix licenses) #:select (lgpl2.1+))
 | 
					  #:use-module ((guix licenses) #:select (lgpl2.1+))
 | 
				
			||||||
  #:use-module (guix packages)
 | 
					  #:use-module (guix packages)
 | 
				
			||||||
 | 
					  #:use-module (guix gexp)
 | 
				
			||||||
  #:use-module (guix download)
 | 
					  #:use-module (guix download)
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages bash)
 | 
				
			||||||
  #:use-module (gnu packages dbm)
 | 
					  #:use-module (gnu packages dbm)
 | 
				
			||||||
  #:use-module (gnu packages gettext)
 | 
					  #:use-module (gnu packages gettext)
 | 
				
			||||||
  #:use-module (gnu packages glib)
 | 
					  #:use-module (gnu packages glib)
 | 
				
			||||||
| 
						 | 
					@ -58,7 +61,7 @@
 | 
				
			||||||
                 #t))))
 | 
					                 #t))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:configure-flags '("--with-distro=none"
 | 
					     `(#:configure-flags '("--with-distro=none"
 | 
				
			||||||
                           "--disable-static"
 | 
					                           "--disable-static"
 | 
				
			||||||
                           "--localstatedir=/var" ; for the DBus socket
 | 
					                           "--localstatedir=/var" ; for the DBus socket
 | 
				
			||||||
                           "--disable-python"
 | 
					                           "--disable-python"
 | 
				
			||||||
| 
						 | 
					@ -68,9 +71,31 @@
 | 
				
			||||||
                           "--enable-tests"
 | 
					                           "--enable-tests"
 | 
				
			||||||
                           "--disable-qt4" "--disable-qt5"
 | 
					                           "--disable-qt4" "--disable-qt5"
 | 
				
			||||||
                           "--disable-gtk" "--disable-gtk3"
 | 
					                           "--disable-gtk" "--disable-gtk3"
 | 
				
			||||||
                           "--enable-compat-libdns_sd")))
 | 
					                           "--enable-compat-libdns_sd"
 | 
				
			||||||
 | 
					                           ,@(if (%current-target-system)
 | 
				
			||||||
 | 
					                                 '("ac_cv_prog_have_pkg_config=yes")
 | 
				
			||||||
 | 
					                                 '()))
 | 
				
			||||||
 | 
					       ;; TODO(core-updates): Make this unconditional.
 | 
				
			||||||
 | 
					       ,@(if (%current-target-system)
 | 
				
			||||||
 | 
					             `(#:modules ((srfi srfi-26)
 | 
				
			||||||
 | 
					                          (guix build utils)
 | 
				
			||||||
 | 
					                          (guix build gnu-build-system))
 | 
				
			||||||
 | 
					               #:phases
 | 
				
			||||||
 | 
					               ,#~(modify-phases %standard-phases
 | 
				
			||||||
 | 
					                    (add-after 'patch-shebangs 'patch-more-shebangs
 | 
				
			||||||
 | 
					                      (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
 | 
					                        (define path
 | 
				
			||||||
 | 
					                          `(,(dirname (search-input-file inputs "bin/sh"))))
 | 
				
			||||||
 | 
					                        (for-each
 | 
				
			||||||
 | 
					                         (cut patch-shebang <> path)
 | 
				
			||||||
 | 
					                         (find-files (string-append #$output "/etc/avahi")))))))
 | 
				
			||||||
 | 
					             '())))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("dbus" ,dbus)
 | 
					     ;; TODO(core-updates): Make this input unconditional.
 | 
				
			||||||
 | 
					     `(,@(if (%current-target-system)
 | 
				
			||||||
 | 
					             `(("bash-minimal" ,bash-minimal))
 | 
				
			||||||
 | 
					             '())
 | 
				
			||||||
 | 
					       ("dbus" ,dbus)
 | 
				
			||||||
       ("expat" ,expat)
 | 
					       ("expat" ,expat)
 | 
				
			||||||
       ("gdbm" ,gdbm)
 | 
					       ("gdbm" ,gdbm)
 | 
				
			||||||
       ("glib" ,glib)
 | 
					       ("glib" ,glib)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,8 +6,8 @@
 | 
				
			||||||
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 | 
					;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 | 
				
			||||||
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
 | 
					;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
 | 
				
			||||||
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
 | 
					;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
 | 
				
			||||||
;;; Copyright © 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
 | 
					;;; Copyright © 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 | 
				
			||||||
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
 | 
					;;; Copyright © 2017 Christine Lemmer-Webber <cwebber@dustycloud.org>
 | 
				
			||||||
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
 | 
					;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
 | 
				
			||||||
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
 | 
					;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
 | 
				
			||||||
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
 | 
					;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
 | 
				
			||||||
| 
						 | 
					@ -20,6 +20,7 @@
 | 
				
			||||||
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 | 
					;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 | 
				
			||||||
;;; Copyright © 2021 Timothy Sample <samplet@ngyro.com>
 | 
					;;; Copyright © 2021 Timothy Sample <samplet@ngyro.com>
 | 
				
			||||||
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 | 
					;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -104,6 +105,7 @@
 | 
				
			||||||
       ("par2cmdline" ,par2cmdline)
 | 
					       ("par2cmdline" ,par2cmdline)
 | 
				
			||||||
       ("python-fasteners" ,python-fasteners)
 | 
					       ("python-fasteners" ,python-fasteners)
 | 
				
			||||||
       ("python-future" ,python-future) ; for tests
 | 
					       ("python-future" ,python-future) ; for tests
 | 
				
			||||||
 | 
					       ("python-paramiko" ,python-paramiko)
 | 
				
			||||||
       ("python-pexpect" ,python-pexpect)
 | 
					       ("python-pexpect" ,python-pexpect)
 | 
				
			||||||
       ("python-pytest" ,python-pytest)
 | 
					       ("python-pytest" ,python-pytest)
 | 
				
			||||||
       ("python-pytest-runner" ,python-pytest-runner)
 | 
					       ("python-pytest-runner" ,python-pytest-runner)
 | 
				
			||||||
| 
						 | 
					@ -576,24 +578,23 @@ rsnapshot uses hard links to deduplicate identical files.")
 | 
				
			||||||
                      (substitute* "configure"
 | 
					                      (substitute* "configure"
 | 
				
			||||||
                        (("GUILE=(.*)--variable bindir`" _ middle)
 | 
					                        (("GUILE=(.*)--variable bindir`" _ middle)
 | 
				
			||||||
                         (string-append "GUILE=" middle
 | 
					                         (string-append "GUILE=" middle
 | 
				
			||||||
                                        "--variable bindir`/guile")))
 | 
					                                        "--variable bindir`/guile")))))
 | 
				
			||||||
                      #t))
 | 
					 | 
				
			||||||
                  (add-before 'build 'set-libtirpc-include-path
 | 
					                  (add-before 'build 'set-libtirpc-include-path
 | 
				
			||||||
                    (lambda* (#:key inputs #:allow-other-keys)
 | 
					                    (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
                      ;; Allow <rpc/rpc.h> & co. to be found.
 | 
					                      ;; Allow <rpc/rpc.h> & co. to be found.
 | 
				
			||||||
                      (let ((libtirpc (assoc-ref inputs "libtirpc")))
 | 
					                      (let ((tirpc (string-append (assoc-ref inputs "libtirpc")
 | 
				
			||||||
 | 
					                                                  "/include/tirpc")))
 | 
				
			||||||
 | 
					                        (if (getenv "CPATH")
 | 
				
			||||||
                          (setenv "CPATH"
 | 
					                          (setenv "CPATH"
 | 
				
			||||||
                                  (string-append (getenv "CPATH")
 | 
					                                  (string-append (getenv "CPATH")
 | 
				
			||||||
                                               ":" libtirpc
 | 
					                                                 ":" tirpc))
 | 
				
			||||||
                                               "/include/tirpc"))
 | 
					                          (setenv "CPATH" tirpc)))))
 | 
				
			||||||
                        #t)))
 | 
					 | 
				
			||||||
                  (add-before 'check 'skip-test
 | 
					                  (add-before 'check 'skip-test
 | 
				
			||||||
                    (lambda _
 | 
					                    (lambda _
 | 
				
			||||||
                      ;; XXX: This test fails (1) because current GnuTLS no
 | 
					                      ;; XXX: This test fails (1) because current GnuTLS no
 | 
				
			||||||
                      ;; longer supports OpenPGP authentication, and (2) for
 | 
					                      ;; longer supports OpenPGP authentication, and (2) for
 | 
				
			||||||
                      ;; some obscure reason.  Better skip it.
 | 
					                      ;; some obscure reason.  Better skip it.
 | 
				
			||||||
                      (setenv "XFAIL_TESTS" "utils/block-server")
 | 
					                      (setenv "XFAIL_TESTS" "utils/block-server"))))))
 | 
				
			||||||
                      #t)))))
 | 
					 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("guile" ,guile-2.0)
 | 
					     `(("guile" ,guile-2.0)
 | 
				
			||||||
       ("gperf" ,gperf-3.0)                  ;see <https://bugs.gnu.org/32382>
 | 
					       ("gperf" ,gperf-3.0)                  ;see <https://bugs.gnu.org/32382>
 | 
				
			||||||
| 
						 | 
					@ -657,12 +658,7 @@ detection, and lossless compression.")
 | 
				
			||||||
           ;; Remove bundled shared libraries.
 | 
					           ;; Remove bundled shared libraries.
 | 
				
			||||||
           (with-directory-excursion "src/borg/algorithms"
 | 
					           (with-directory-excursion "src/borg/algorithms"
 | 
				
			||||||
             (for-each delete-file-recursively
 | 
					             (for-each delete-file-recursively
 | 
				
			||||||
                       (list "blake2" "lz4" "msgpack" "zstd")))
 | 
					                       (list "blake2" "lz4" "zstd")))
 | 
				
			||||||
           ;; Purge some msgpack references from setup.py or the resulting
 | 
					 | 
				
			||||||
           ;; sources will be unbuildable.
 | 
					 | 
				
			||||||
           (substitute* "setup.py"
 | 
					 | 
				
			||||||
             ((".*Extension\\('borg\\.algorithms\\.msgpack\\..*") "")
 | 
					 | 
				
			||||||
             (("msgpack_packer_source, msgpack_unpacker_source") ""))
 | 
					 | 
				
			||||||
           #t))))
 | 
					           #t))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
| 
						 | 
					@ -686,12 +682,6 @@ detection, and lossless compression.")
 | 
				
			||||||
               ;; HOME=/homeless-shelter.
 | 
					               ;; HOME=/homeless-shelter.
 | 
				
			||||||
               (setenv "HOME" "/tmp")
 | 
					               (setenv "HOME" "/tmp")
 | 
				
			||||||
               #t)))
 | 
					               #t)))
 | 
				
			||||||
         (add-after 'unpack 'use-system-msgpack
 | 
					 | 
				
			||||||
           (lambda _
 | 
					 | 
				
			||||||
             (substitute* "src/borg/helpers.py"
 | 
					 | 
				
			||||||
               (("prefer_system_msgpack = False")
 | 
					 | 
				
			||||||
                "prefer_system_msgpack = True"))
 | 
					 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
         ;; The tests need to be run after Borg is installed.
 | 
					         ;; The tests need to be run after Borg is installed.
 | 
				
			||||||
         (delete 'check)
 | 
					         (delete 'check)
 | 
				
			||||||
         (add-after 'install 'check
 | 
					         (add-after 'install 'check
 | 
				
			||||||
| 
						 | 
					@ -755,10 +745,6 @@ detection, and lossless compression.")
 | 
				
			||||||
       ("lz4" ,lz4)
 | 
					       ("lz4" ,lz4)
 | 
				
			||||||
       ("openssl" ,openssl)
 | 
					       ("openssl" ,openssl)
 | 
				
			||||||
       ("python-llfuse" ,python-llfuse)
 | 
					       ("python-llfuse" ,python-llfuse)
 | 
				
			||||||
       ;; The Python msgpack library changed its name so Borg requires this
 | 
					 | 
				
			||||||
       ;; transitional package for now:
 | 
					 | 
				
			||||||
       ;; <https://bugs.gnu.org/30662>
 | 
					 | 
				
			||||||
       ("python-msgpack" ,python-msgpack-transitional)
 | 
					 | 
				
			||||||
       ("zstd" ,zstd "lib")))
 | 
					       ("zstd" ,zstd "lib")))
 | 
				
			||||||
    (synopsis "Deduplicated, encrypted, authenticated and compressed backups")
 | 
					    (synopsis "Deduplicated, encrypted, authenticated and compressed backups")
 | 
				
			||||||
    (description "Borg is a deduplicating backup program.  Optionally, it
 | 
					    (description "Borg is a deduplicating backup program.  Optionally, it
 | 
				
			||||||
| 
						 | 
					@ -927,7 +913,9 @@ is like a time machine for your data. ")
 | 
				
			||||||
              (file-name (string-append name "-" version ".tar.gz"))
 | 
					              (file-name (string-append name "-" version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1zmh42aah32ah8w5n6ilz9bci0y2xrf8p7qshy3yf1lzm5gnbj0w"))))
 | 
					                "1zmh42aah32ah8w5n6ilz9bci0y2xrf8p7qshy3yf1lzm5gnbj0w"))
 | 
				
			||||||
 | 
					              (patches
 | 
				
			||||||
 | 
					               (search-patches "restic-0.9.6-fix-tests-for-go1.15.patch"))))
 | 
				
			||||||
    (build-system go-build-system)
 | 
					    (build-system go-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:import-path "github.com/restic/restic"
 | 
					     `(#:import-path "github.com/restic/restic"
 | 
				
			||||||
| 
						 | 
					@ -944,11 +932,12 @@ is like a time machine for your data. ")
 | 
				
			||||||
               (invoke "go" "run" "build.go"))))
 | 
					               (invoke "go" "run" "build.go"))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
         (replace 'check
 | 
					         (replace 'check
 | 
				
			||||||
           (lambda _
 | 
					           (lambda* (#:key tests? #:allow-other-keys)
 | 
				
			||||||
 | 
					             (when tests?
 | 
				
			||||||
               (with-directory-excursion "src/github.com/restic/restic"
 | 
					               (with-directory-excursion "src/github.com/restic/restic"
 | 
				
			||||||
                 ;; Disable FUSE tests.
 | 
					                 ;; Disable FUSE tests.
 | 
				
			||||||
                 (setenv "RESTIC_TEST_FUSE" "0")
 | 
					                 (setenv "RESTIC_TEST_FUSE" "0")
 | 
				
			||||||
               (invoke "go" "run" "build.go" "--test"))))
 | 
					                 (invoke "go" "run" "build.go" "--test")))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
         (replace 'install
 | 
					         (replace 'install
 | 
				
			||||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,6 +18,7 @@
 | 
				
			||||||
;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com>
 | 
					;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com>
 | 
				
			||||||
;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
 | 
					;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
 | 
				
			||||||
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 | 
					;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -494,7 +495,7 @@ change.  GNU make offers many powerful extensions over the standard utility.")
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn"))))
 | 
					                "12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn"))))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:configure-flags '("CFLAGS=-D__alloca=alloca")
 | 
					     `(#:configure-flags '("CFLAGS=-D__alloca=alloca -D__stat=stat")
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-before 'build 'set-default-shell
 | 
					         (add-before 'build 'set-default-shell
 | 
				
			||||||
| 
						 | 
					@ -510,14 +511,15 @@ change.  GNU make offers many powerful extensions over the standard utility.")
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
   (name "binutils")
 | 
					   (name "binutils")
 | 
				
			||||||
   (version "2.37")
 | 
					   (version "2.37")
 | 
				
			||||||
   (source (origin
 | 
					   (source
 | 
				
			||||||
 | 
					    (origin
 | 
				
			||||||
      (method url-fetch)
 | 
					      (method url-fetch)
 | 
				
			||||||
      (uri (string-append "mirror://gnu/binutils/binutils-"
 | 
					      (uri (string-append "mirror://gnu/binutils/binutils-"
 | 
				
			||||||
                          version ".tar.bz2"))
 | 
					                          version ".tar.bz2"))
 | 
				
			||||||
      (sha256
 | 
					      (sha256
 | 
				
			||||||
             (base32
 | 
					       (base32 "1m3b2rdfv1dmdpd0bzg1hy7i8a2qng53szc6livyi3nh6101mz37"))
 | 
				
			||||||
              "1m3b2rdfv1dmdpd0bzg1hy7i8a2qng53szc6livyi3nh6101mz37"))
 | 
					      (patches (search-patches "binutils-loongson-workaround.patch"
 | 
				
			||||||
            (patches (search-patches "binutils-loongson-workaround.patch"))))
 | 
					                               "binutils-2.37-file-descriptor-leak.patch"))))
 | 
				
			||||||
   (build-system gnu-build-system)
 | 
					   (build-system gnu-build-system)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   ;; TODO: Add dependency on zlib + those for Gold.
 | 
					   ;; TODO: Add dependency on zlib + those for Gold.
 | 
				
			||||||
| 
						 | 
					@ -944,6 +946,7 @@ with the Linux kernel.")
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj"))
 | 
					                "05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj"))
 | 
				
			||||||
              (patches (search-patches
 | 
					              (patches (search-patches
 | 
				
			||||||
 | 
					                        "glibc-skip-c++.patch"
 | 
				
			||||||
                        "glibc-ldd-powerpc.patch"
 | 
					                        "glibc-ldd-powerpc.patch"
 | 
				
			||||||
                        "glibc-ldd-x86_64.patch"
 | 
					                        "glibc-ldd-x86_64.patch"
 | 
				
			||||||
                        "glibc-dl-cache.patch"
 | 
					                        "glibc-dl-cache.patch"
 | 
				
			||||||
| 
						 | 
					@ -962,13 +965,19 @@ with the Linux kernel.")
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (inherit glibc)
 | 
					    (inherit glibc)
 | 
				
			||||||
    (version "2.30")
 | 
					    (version "2.30")
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     ;; This fails with a build error in libc-tls.c when using GCC 10.  Use an
 | 
				
			||||||
 | 
					     ;; older compiler.
 | 
				
			||||||
 | 
					     (modify-inputs (package-native-inputs glibc)
 | 
				
			||||||
 | 
					       (prepend gcc-8)))
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (inherit (package-source glibc))
 | 
					              (inherit (package-source glibc))
 | 
				
			||||||
              (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
 | 
					              (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1bxqpg91d02qnaz837a5kamm0f43pr1il4r9pknygywsar713i72"))
 | 
					                "1bxqpg91d02qnaz837a5kamm0f43pr1il4r9pknygywsar713i72"))
 | 
				
			||||||
              (patches (search-patches "glibc-ldd-x86_64.patch"
 | 
					              (patches (search-patches "glibc-skip-c++.patch"
 | 
				
			||||||
 | 
					                                       "glibc-ldd-x86_64.patch"
 | 
				
			||||||
                                       "glibc-CVE-2019-19126.patch"
 | 
					                                       "glibc-CVE-2019-19126.patch"
 | 
				
			||||||
                                       "glibc-hidden-visibility-ldconfig.patch"
 | 
					                                       "glibc-hidden-visibility-ldconfig.patch"
 | 
				
			||||||
                                       "glibc-versioned-locpath.patch"
 | 
					                                       "glibc-versioned-locpath.patch"
 | 
				
			||||||
| 
						 | 
					@ -978,7 +987,7 @@ with the Linux kernel.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public glibc-2.29
 | 
					(define-public glibc-2.29
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (inherit glibc)
 | 
					    (inherit glibc-2.30)
 | 
				
			||||||
    (version "2.29")
 | 
					    (version "2.29")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (inherit (package-source glibc))
 | 
					              (inherit (package-source glibc))
 | 
				
			||||||
| 
						 | 
					@ -986,7 +995,8 @@ with the Linux kernel.")
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0jzh58728flfh939a8k9pi1zdyalfzlxmwra7k0rzji5gvavivpk"))
 | 
					                "0jzh58728flfh939a8k9pi1zdyalfzlxmwra7k0rzji5gvavivpk"))
 | 
				
			||||||
              (patches (search-patches "glibc-ldd-x86_64.patch"
 | 
					              (patches (search-patches "glibc-skip-c++.patch"
 | 
				
			||||||
 | 
					                                       "glibc-ldd-x86_64.patch"
 | 
				
			||||||
                                       "glibc-CVE-2019-7309.patch"
 | 
					                                       "glibc-CVE-2019-7309.patch"
 | 
				
			||||||
                                       "glibc-CVE-2019-9169.patch"
 | 
					                                       "glibc-CVE-2019-9169.patch"
 | 
				
			||||||
                                       "glibc-2.29-git-updates.patch"
 | 
					                                       "glibc-2.29-git-updates.patch"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -41,6 +41,7 @@
 | 
				
			||||||
  #:use-module (gnu packages linux)
 | 
					  #:use-module (gnu packages linux)
 | 
				
			||||||
  #:use-module (gnu packages maths)
 | 
					  #:use-module (gnu packages maths)
 | 
				
			||||||
  #:use-module (gnu packages mpi)
 | 
					  #:use-module (gnu packages mpi)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages opencl)
 | 
				
			||||||
  #:use-module (gnu packages perl)
 | 
					  #:use-module (gnu packages perl)
 | 
				
			||||||
  #:use-module (gnu packages python)
 | 
					  #:use-module (gnu packages python)
 | 
				
			||||||
  #:use-module (gnu packages python-science)
 | 
					  #:use-module (gnu packages python-science)
 | 
				
			||||||
| 
						 | 
					@ -220,7 +221,7 @@ This can give a much better understanding of the command's performance.")
 | 
				
			||||||
(define-public benchmark
 | 
					(define-public benchmark
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "benchmark")
 | 
					    (name "benchmark")
 | 
				
			||||||
    (version "1.5.5")
 | 
					    (version "1.5.6")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method git-fetch)
 | 
					              (method git-fetch)
 | 
				
			||||||
              (uri (git-reference
 | 
					              (uri (git-reference
 | 
				
			||||||
| 
						 | 
					@ -229,7 +230,7 @@ This can give a much better understanding of the command's performance.")
 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1ijv4idcjsyy61dab59ywbx0xdbws44kxgqjr1ylaxzwknh745qf"))))
 | 
					                "030g4d8vpn2442dsap0qw86lsw7xfl36k0x0x9bn0vvm11qvjn8c"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("googletest-source" ,(package-source googletest))
 | 
					     `(("googletest-source" ,(package-source googletest))
 | 
				
			||||||
| 
						 | 
					@ -240,8 +241,7 @@ This can give a much better understanding of the command's performance.")
 | 
				
			||||||
         (add-after 'unpack 'unpack-googletest
 | 
					         (add-after 'unpack 'unpack-googletest
 | 
				
			||||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
					           (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
             (copy-recursively (assoc-ref inputs "googletest-source")
 | 
					             (copy-recursively (assoc-ref inputs "googletest-source")
 | 
				
			||||||
                               "googletest")
 | 
					                               "googletest"))))))
 | 
				
			||||||
             #t)))))
 | 
					 | 
				
			||||||
    (home-page "https://github.com/google/benchmark")
 | 
					    (home-page "https://github.com/google/benchmark")
 | 
				
			||||||
    (synopsis "Microbenchmark support library")
 | 
					    (synopsis "Microbenchmark support library")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
| 
						 | 
					@ -384,3 +384,31 @@ It is designed to measure the effect of changes in Linux kernel design or
 | 
				
			||||||
system configuration changes such as CPU, I/O scheduler and filesystem changes
 | 
					system configuration changes such as CPU, I/O scheduler and filesystem changes
 | 
				
			||||||
and options.  With careful benchmarking, different hardware can be compared.")
 | 
					and options.  With careful benchmarking, different hardware can be compared.")
 | 
				
			||||||
    (license license:gpl2+)))
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public clpeak
 | 
				
			||||||
 | 
					  ;; Release 1.1.0 is too old for our opencl-clhpp. This commit supports
 | 
				
			||||||
 | 
					  ;; cl2.hpp.
 | 
				
			||||||
 | 
					  (let ((commit "6d59cb64997a53c35207b77a63d2e9f0e84de5fd"))
 | 
				
			||||||
 | 
					    (package
 | 
				
			||||||
 | 
					      (name "clpeak")
 | 
				
			||||||
 | 
					      (version (git-version "1.1.0" "0" commit))
 | 
				
			||||||
 | 
					      (source (origin
 | 
				
			||||||
 | 
					                (method git-fetch)
 | 
				
			||||||
 | 
					                (uri (git-reference
 | 
				
			||||||
 | 
					                       (url "https://github.com/krrishnarraj/clpeak.git")
 | 
				
			||||||
 | 
					                       (commit commit)))
 | 
				
			||||||
 | 
					                (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					                (sha256
 | 
				
			||||||
 | 
					                  (base32
 | 
				
			||||||
 | 
					                    "0qmhdjyhwl7gfgyqxsddqn6zpp3b57503m16h7jv6illy3lfvji1"))))
 | 
				
			||||||
 | 
					      (build-system cmake-build-system)
 | 
				
			||||||
 | 
					      (home-page "https://github.com/krrishnarraj/clpeak")
 | 
				
			||||||
 | 
					      (inputs
 | 
				
			||||||
 | 
					        `(("opencl-clhpp" ,opencl-clhpp)
 | 
				
			||||||
 | 
					          ("opencl-icd-loader" ,opencl-icd-loader)))
 | 
				
			||||||
 | 
					      (synopsis "OpenCL benchmark tool")
 | 
				
			||||||
 | 
					      (description
 | 
				
			||||||
 | 
					        "A synthetic benchmarking tool to measure peak capabilities of OpenCL
 | 
				
			||||||
 | 
					        devices.  It only measures the peak metrics that can be achieved using
 | 
				
			||||||
 | 
					        vector operations and does not represent a real-world use case.")
 | 
				
			||||||
 | 
					        (license license:unlicense))))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
					@ -90,6 +90,10 @@
 | 
				
			||||||
       (list (string-append "--localedir="
 | 
					       (list (string-append "--localedir="
 | 
				
			||||||
                            (assoc-ref %outputs "gui")
 | 
					                            (assoc-ref %outputs "gui")
 | 
				
			||||||
                            "/share/locale"))
 | 
					                            "/share/locale"))
 | 
				
			||||||
 | 
					       ;; Some tests segfault when using libevent 2.12 without internet
 | 
				
			||||||
 | 
					       ;; connection. This has been reported mainstream but not fixed yet:
 | 
				
			||||||
 | 
					       ;; https://github.com/transmission/transmission/issues/1437.
 | 
				
			||||||
 | 
					       #:tests? #f
 | 
				
			||||||
       #:glib-or-gtk-wrap-excluded-outputs '("out")
 | 
					       #:glib-or-gtk-wrap-excluded-outputs '("out")
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,7 +12,7 @@
 | 
				
			||||||
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 | 
					;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 | 
				
			||||||
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 | 
					;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 | 
				
			||||||
;;; Copyright © 2018, 2019, 2020 Vagrant Cascadian <vagrant@debian.org>
 | 
					;;; Copyright © 2018, 2019, 2020 Vagrant Cascadian <vagrant@debian.org>
 | 
				
			||||||
;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
 | 
					;;; Copyright © 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com>
 | 
				
			||||||
;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
 | 
					;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
 | 
				
			||||||
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 | 
					;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -56,14 +56,15 @@
 | 
				
			||||||
  #:use-module (gnu packages perl)
 | 
					  #:use-module (gnu packages perl)
 | 
				
			||||||
  #:use-module (gnu packages pkg-config)
 | 
					  #:use-module (gnu packages pkg-config)
 | 
				
			||||||
  #:use-module (gnu packages python)
 | 
					  #:use-module (gnu packages python)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages python-crypto)
 | 
				
			||||||
  #:use-module (gnu packages texinfo)
 | 
					  #:use-module (gnu packages texinfo)
 | 
				
			||||||
  #:use-module (gnu packages tls)
 | 
					  #:use-module (gnu packages tls)
 | 
				
			||||||
  #:use-module (gnu packages sdl)
 | 
					  #:use-module (gnu packages sdl)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages serialization)
 | 
				
			||||||
  #:use-module (gnu packages swig)
 | 
					  #:use-module (gnu packages swig)
 | 
				
			||||||
  #:use-module (gnu packages valgrind)
 | 
					  #:use-module (gnu packages valgrind)
 | 
				
			||||||
  #:use-module (gnu packages virtualization)
 | 
					  #:use-module (gnu packages virtualization)
 | 
				
			||||||
  #:use-module (gnu packages xorg)
 | 
					  #:use-module (gnu packages xorg)
 | 
				
			||||||
  #:use-module (gnu packages web)
 | 
					 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
  #:use-module (guix download)
 | 
					  #:use-module (guix download)
 | 
				
			||||||
  #:use-module (guix git-download)
 | 
					  #:use-module (guix git-download)
 | 
				
			||||||
| 
						 | 
					@ -113,6 +114,8 @@
 | 
				
			||||||
       ;; calling the ‘true’ binary instead.  Python is only needed during
 | 
					       ;; calling the ‘true’ binary instead.  Python is only needed during
 | 
				
			||||||
       ;; bootstrapping (for genptl.py), not when building from a release.
 | 
					       ;; bootstrapping (for genptl.py), not when building from a release.
 | 
				
			||||||
       (list "PYTHON=true")
 | 
					       (list "PYTHON=true")
 | 
				
			||||||
 | 
					       ;; Grub fails to load modules stripped with --strip-unneeded.
 | 
				
			||||||
 | 
					       #:strip-flags '("--strip-debug" "--enable-deterministic-archives")
 | 
				
			||||||
       #:phases (modify-phases %standard-phases
 | 
					       #:phases (modify-phases %standard-phases
 | 
				
			||||||
                  (add-after 'unpack 'patch-stuff
 | 
					                  (add-after 'unpack 'patch-stuff
 | 
				
			||||||
                   (lambda* (#:key native-inputs inputs #:allow-other-keys)
 | 
					                   (lambda* (#:key native-inputs inputs #:allow-other-keys)
 | 
				
			||||||
| 
						 | 
					@ -492,20 +495,26 @@ tree binary files.  These are board description files used by Linux and BSD.")
 | 
				
			||||||
  ;; and https://patchwork.ozlabs.org/project/uboot/patch/20210406151059.1187379-1-icenowy@aosc.io
 | 
					  ;; and https://patchwork.ozlabs.org/project/uboot/patch/20210406151059.1187379-1-icenowy@aosc.io
 | 
				
			||||||
  (search-patch "u-boot-rockchip-inno-usb.patch"))
 | 
					  (search-patch "u-boot-rockchip-inno-usb.patch"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define %u-boot-sifive-prevent-relocating-initrd-fdt
 | 
				
			||||||
 | 
					  ;; Fix boot in 2021.07 on Hifive unmatched, see
 | 
				
			||||||
 | 
					  ;; https://bugs.launchpad.net/ubuntu/+source/u-boot/+bug/1937246
 | 
				
			||||||
 | 
					  (search-patch "u-boot-sifive-prevent-reloc-initrd-fdt.patch"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define u-boot
 | 
					(define u-boot
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "u-boot")
 | 
					    (name "u-boot")
 | 
				
			||||||
    (version "2021.04")
 | 
					    (version "2021.07")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
	      (patches
 | 
						      (patches
 | 
				
			||||||
               (list %u-boot-rockchip-inno-usb-patch))
 | 
					               (list %u-boot-rockchip-inno-usb-patch
 | 
				
			||||||
 | 
					                     %u-boot-sifive-prevent-relocating-initrd-fdt))
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append
 | 
					              (uri (string-append
 | 
				
			||||||
                    "https://ftp.denx.de/pub/u-boot/"
 | 
					                    "https://ftp.denx.de/pub/u-boot/"
 | 
				
			||||||
                    "u-boot-" version ".tar.bz2"))
 | 
					                    "u-boot-" version ".tar.bz2"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "06p1vymf0dl6jc2xy5w7p42mpgppa46lmpm2ishmgsycnldqnhqd"))))
 | 
					                "0zm7igkdnz0w4ir8rfl2dislfrl0ip104grs5hvd30a5wkm7wari"))))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("bc" ,bc)
 | 
					     `(("bc" ,bc)
 | 
				
			||||||
       ("bison" ,bison)
 | 
					       ("bison" ,bison)
 | 
				
			||||||
| 
						 | 
					@ -515,6 +524,7 @@ tree binary files.  These are board description files used by Linux and BSD.")
 | 
				
			||||||
       ("perl" ,perl)
 | 
					       ("perl" ,perl)
 | 
				
			||||||
       ("python" ,python)
 | 
					       ("python" ,python)
 | 
				
			||||||
       ("python-coverage" ,python-coverage)
 | 
					       ("python-coverage" ,python-coverage)
 | 
				
			||||||
 | 
					       ("python-pycryptodomex" ,python-pycryptodomex)
 | 
				
			||||||
       ("python-pytest" ,python-pytest)
 | 
					       ("python-pytest" ,python-pytest)
 | 
				
			||||||
       ("swig" ,swig)))
 | 
					       ("swig" ,swig)))
 | 
				
			||||||
    (build-system  gnu-build-system)
 | 
					    (build-system  gnu-build-system)
 | 
				
			||||||
| 
						 | 
					@ -524,21 +534,6 @@ tree binary files.  These are board description files used by Linux and BSD.")
 | 
				
			||||||
also initializes the boards (RAM etc).")
 | 
					also initializes the boards (RAM etc).")
 | 
				
			||||||
    (license license:gpl2+)))
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public u-boot-2021.07
 | 
					 | 
				
			||||||
  (package
 | 
					 | 
				
			||||||
   (inherit u-boot)
 | 
					 | 
				
			||||||
   (version "2021.07-rc4")
 | 
					 | 
				
			||||||
   (source (origin
 | 
					 | 
				
			||||||
             (patches
 | 
					 | 
				
			||||||
               (list %u-boot-rockchip-inno-usb-patch))
 | 
					 | 
				
			||||||
            (method url-fetch)
 | 
					 | 
				
			||||||
            (uri (string-append
 | 
					 | 
				
			||||||
                  "https://ftp.denx.de/pub/u-boot/"
 | 
					 | 
				
			||||||
                  "u-boot-" version ".tar.bz2"))
 | 
					 | 
				
			||||||
            (sha256
 | 
					 | 
				
			||||||
             (base32
 | 
					 | 
				
			||||||
              "0bnsywgy2b0jxim5h9dc807lqk5kq8hvgf4lcsmffnc0hf4isv8p"))))))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define-public u-boot-tools
 | 
					(define-public u-boot-tools
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (inherit u-boot)
 | 
					    (inherit u-boot)
 | 
				
			||||||
| 
						 | 
					@ -567,9 +562,13 @@ also initializes the boards (RAM etc).")
 | 
				
			||||||
              ;; This test would require git.
 | 
					              ;; This test would require git.
 | 
				
			||||||
              (("\\./tools/patman/patman") (which "true"))
 | 
					              (("\\./tools/patman/patman") (which "true"))
 | 
				
			||||||
              ;; FIXME: test fails, needs further investiation
 | 
					              ;; FIXME: test fails, needs further investiation
 | 
				
			||||||
              (("run_test \"binman\"") ": run_test \"binman\"")
 | 
					              (("run_test \"binman\"") "# run_test \"binman\"")
 | 
				
			||||||
 | 
					              ;; FIXME: test_spl fails, needs further investiation
 | 
				
			||||||
 | 
					              (("test_ofplatdata or test_handoff or test_spl")
 | 
				
			||||||
 | 
					                "test_ofplatdata or test_handoff")
 | 
				
			||||||
              ;; FIXME: code coverage not working
 | 
					              ;; FIXME: code coverage not working
 | 
				
			||||||
              (("run_test \"binman code coverage\"") ": run_test \"binman code coverage\"")
 | 
					              (("run_test \"binman code coverage\"")
 | 
				
			||||||
 | 
					               "# run_test \"binman code coverage\"")
 | 
				
			||||||
              ;; This test would require internet access.
 | 
					              ;; This test would require internet access.
 | 
				
			||||||
              (("\\./tools/buildman/buildman") (which "true")))
 | 
					              (("\\./tools/buildman/buildman") (which "true")))
 | 
				
			||||||
             (substitute* "test/py/tests/test_sandbox_exit.py"
 | 
					             (substitute* "test/py/tests/test_sandbox_exit.py"
 | 
				
			||||||
| 
						 | 
					@ -715,9 +714,6 @@ board-independent tools.")))
 | 
				
			||||||
                  uboot-files)
 | 
					                  uboot-files)
 | 
				
			||||||
                 #t)))))))))
 | 
					                 #t)))))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public u-boot-vexpress
 | 
					 | 
				
			||||||
  (make-u-boot-package "vexpress_ca9x4" "arm-linux-gnueabihf"))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define-public u-boot-malta
 | 
					(define-public u-boot-malta
 | 
				
			||||||
  (make-u-boot-package "malta" "mips64el-linux-gnuabi64"))
 | 
					  (make-u-boot-package "malta" "mips64el-linux-gnuabi64"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -807,7 +803,34 @@ it fits within common partitioning schemes.")
 | 
				
			||||||
  (make-u-boot-package "A20-OLinuXino_MICRO" "arm-linux-gnueabihf"))
 | 
					  (make-u-boot-package "A20-OLinuXino_MICRO" "arm-linux-gnueabihf"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public u-boot-nintendo-nes-classic-edition
 | 
					(define-public u-boot-nintendo-nes-classic-edition
 | 
				
			||||||
  (make-u-boot-package "Nintendo_NES_Classic_Edition" "arm-linux-gnueabihf"))
 | 
					  (let ((base (make-u-boot-package "Nintendo_NES_Classic_Edition"
 | 
				
			||||||
 | 
					                                   "arm-linux-gnueabihf")))
 | 
				
			||||||
 | 
					    (package
 | 
				
			||||||
 | 
					      (inherit base)
 | 
				
			||||||
 | 
					      ;; Starting with 2019.01, FEL doesn't work anymore on A33.
 | 
				
			||||||
 | 
					      (version "2018.11")
 | 
				
			||||||
 | 
					      (source (origin
 | 
				
			||||||
 | 
					                (method url-fetch)
 | 
				
			||||||
 | 
					                (uri (string-append
 | 
				
			||||||
 | 
					                      "https://ftp.denx.de/pub/u-boot/"
 | 
				
			||||||
 | 
					                      "u-boot-" version ".tar.bz2"))
 | 
				
			||||||
 | 
					                (sha256
 | 
				
			||||||
 | 
					                 (base32
 | 
				
			||||||
 | 
					                  "0znkwljfwwn4y7j20pzz4ilqw8znphrfxns0x1lwdzh3xbr96z3k"))
 | 
				
			||||||
 | 
					                (patches (search-patches
 | 
				
			||||||
 | 
					                           "u-boot-nintendo-nes-serial.patch"))))
 | 
				
			||||||
 | 
					      (description "U-Boot is a bootloader used mostly for ARM boards.  It
 | 
				
			||||||
 | 
					also initializes the boards (RAM etc).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This version is for the Nintendo NES Classic Edition.  It is assumed that
 | 
				
			||||||
 | 
					you have added a serial port to pins PB0 and PB1 as described on
 | 
				
			||||||
 | 
					@url{https://linux-sunxi.org/Nintendo_NES_Classic_Edition}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In order to use FEL mode on the device, hold the Reset button on the
 | 
				
			||||||
 | 
					device while it's being turned on (and a while longer).")
 | 
				
			||||||
 | 
					      (native-inputs
 | 
				
			||||||
 | 
					       `(("python" ,python-2)
 | 
				
			||||||
 | 
					         ,@(package-native-inputs base))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public u-boot-wandboard
 | 
					(define-public u-boot-wandboard
 | 
				
			||||||
  (make-u-boot-package "wandboard" "arm-linux-gnueabihf"))
 | 
					  (make-u-boot-package "wandboard" "arm-linux-gnueabihf"))
 | 
				
			||||||
| 
						 | 
					@ -873,15 +896,11 @@ to Novena upstream, does not load u-boot.img from the first partition.")
 | 
				
			||||||
                (patches
 | 
					                (patches
 | 
				
			||||||
                 (search-patches "u-boot-riscv64-fix-extlinux.patch")))))))
 | 
					                 (search-patches "u-boot-riscv64-fix-extlinux.patch")))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public u-boot-sifive-fu540
 | 
					(define-public u-boot-sifive-unleashed
 | 
				
			||||||
  (make-u-boot-package "sifive_fu540" "riscv64-linux-gnu"))
 | 
					  (make-u-boot-package "sifive_unleashed" "riscv64-linux-gnu"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public u-boot-sifive-unmatched
 | 
					(define-public u-boot-sifive-unmatched
 | 
				
			||||||
  (let ((base (make-u-boot-package "sifive_unmatched" "riscv64-linux-gnu")))
 | 
					  (make-u-boot-package "sifive_unmatched" "riscv64-linux-gnu"))
 | 
				
			||||||
    (package
 | 
					 | 
				
			||||||
      (inherit base)
 | 
					 | 
				
			||||||
      (version (package-version u-boot-2021.07))
 | 
					 | 
				
			||||||
      (source (package-source u-boot-2021.07)))))
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public u-boot-rock64-rk3328
 | 
					(define-public u-boot-rock64-rk3328
 | 
				
			||||||
  (let ((base (make-u-boot-package "rock64-rk3328" "aarch64-linux-gnu")))
 | 
					  (let ((base (make-u-boot-package "rock64-rk3328" "aarch64-linux-gnu")))
 | 
				
			||||||
| 
						 | 
					@ -925,7 +944,7 @@ to Novena upstream, does not load u-boot.img from the first partition.")
 | 
				
			||||||
        (substitute-keyword-arguments (package-arguments base)
 | 
					        (substitute-keyword-arguments (package-arguments base)
 | 
				
			||||||
          ((#:phases phases)
 | 
					          ((#:phases phases)
 | 
				
			||||||
           `(modify-phases ,phases
 | 
					           `(modify-phases ,phases
 | 
				
			||||||
              (add-after 'patch-rockpro64-config 'set-environment
 | 
					              (add-after 'unpack 'set-environment
 | 
				
			||||||
                (lambda* (#:key inputs #:allow-other-keys)
 | 
					                (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
                  (setenv "BL31"
 | 
					                  (setenv "BL31"
 | 
				
			||||||
                          (search-input-file inputs "/bl31.elf"))))
 | 
					                          (search-input-file inputs "/bl31.elf"))))
 | 
				
			||||||
| 
						 | 
					@ -940,8 +959,6 @@ to Novena upstream, does not load u-boot.img from the first partition.")
 | 
				
			||||||
  (let ((base (make-u-boot-package "pinebook-pro-rk3399" "aarch64-linux-gnu")))
 | 
					  (let ((base (make-u-boot-package "pinebook-pro-rk3399" "aarch64-linux-gnu")))
 | 
				
			||||||
    (package
 | 
					    (package
 | 
				
			||||||
      (inherit base)
 | 
					      (inherit base)
 | 
				
			||||||
      (version (package-version u-boot-2021.07))
 | 
					 | 
				
			||||||
      (source (package-source u-boot-2021.07))
 | 
					 | 
				
			||||||
      (arguments
 | 
					      (arguments
 | 
				
			||||||
        (substitute-keyword-arguments (package-arguments base)
 | 
					        (substitute-keyword-arguments (package-arguments base)
 | 
				
			||||||
          ((#:phases phases)
 | 
					          ((#:phases phases)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -49,7 +49,7 @@ supported content to the Kodi media center.")
 | 
				
			||||||
  (make-chromium-extension play-to-kodi))
 | 
					  (make-chromium-extension play-to-kodi))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define uassets
 | 
					(define uassets
 | 
				
			||||||
  (let ((commit "20d21ad7e92539660c7cde4c5884b3e234854264"))
 | 
					  (let ((commit "54e217d9051831d0d8856286a877962e0f592d45"))
 | 
				
			||||||
    (origin
 | 
					    (origin
 | 
				
			||||||
      (method git-fetch)
 | 
					      (method git-fetch)
 | 
				
			||||||
      (uri (git-reference
 | 
					      (uri (git-reference
 | 
				
			||||||
| 
						 | 
					@ -58,12 +58,12 @@ supported content to the Kodi media center.")
 | 
				
			||||||
      (file-name (git-file-name "uAssets" (string-take commit 9)))
 | 
					      (file-name (git-file-name "uAssets" (string-take commit 9)))
 | 
				
			||||||
      (sha256
 | 
					      (sha256
 | 
				
			||||||
       (base32
 | 
					       (base32
 | 
				
			||||||
        "1xcl4qnvjb4pv3fajpmycg1i0xqsah2qakhq2figvyrq991pldy1")))))
 | 
					        "1xhxadm6qyph6kkq3gxg1rar1psb586mniwp7bkyj5zpzzj31wmj")))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define ublock-origin
 | 
					(define ublock-origin
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "ublock-origin")
 | 
					    (name "ublock-origin")
 | 
				
			||||||
    (version "1.36.0")
 | 
					    (version "1.37.2")
 | 
				
			||||||
    (home-page "https://github.com/gorhill/uBlock")
 | 
					    (home-page "https://github.com/gorhill/uBlock")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method git-fetch)
 | 
					              (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -71,7 +71,7 @@ supported content to the Kodi media center.")
 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1r3aic18zkz8s3v1a2kffidp4swzbxnq0h8444bif9myjffnpxpj"))))
 | 
					                "1c1dh9kkimvahs9yw1hv67290h8xvmbl10film7g1wamdxydj97y"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (outputs '("xpi" "firefox" "chromium"))
 | 
					    (outputs '("xpi" "firefox" "chromium"))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -264,7 +264,7 @@ files and generates build instructions for the Ninja build system.")
 | 
				
			||||||
(define-public meson
 | 
					(define-public meson
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "meson")
 | 
					    (name "meson")
 | 
				
			||||||
    (version "0.59.0")
 | 
					    (version "0.59.1")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "https://github.com/mesonbuild/meson/"
 | 
					              (uri (string-append "https://github.com/mesonbuild/meson/"
 | 
				
			||||||
| 
						 | 
					@ -272,7 +272,7 @@ files and generates build instructions for the Ninja build system.")
 | 
				
			||||||
                                  version ".tar.gz"))
 | 
					                                  version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0xp45ihjkl90s4crzh9qmaajxq7invbv5k0yw3gl7dk4vycc4xp3"))))
 | 
					                "0v9m0bazhj48kwc8x3gkxg5c3kcvknvqfjlq22z6pm2h2r2nln6v"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(;; FIXME: Tests require many additional inputs and patching many
 | 
					     `(;; FIXME: Tests require many additional inputs and patching many
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -180,13 +180,13 @@ data units.")
 | 
				
			||||||
(define-public khal
 | 
					(define-public khal
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "khal")
 | 
					    (name "khal")
 | 
				
			||||||
    (version "0.10.3")
 | 
					    (version "0.10.4")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (pypi-uri "khal" version))
 | 
					              (uri (pypi-uri "khal" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0cm4xn871w3i99l3qmhv0bnv8q6rd1w3rip9sskyb5z59z0qzp9g"))))
 | 
					                "17qj1n2l39pnzk4vjrmql90z7908nivnzcc2g9nj1h31k859inrz"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f ; The test suite is unreliable. See <https://bugs.gnu.org/44197>
 | 
					     `(#:tests? #f ; The test suite is unreliable. See <https://bugs.gnu.org/44197>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,21 +31,26 @@
 | 
				
			||||||
(define-public ccache
 | 
					(define-public ccache
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "ccache")
 | 
					    (name "ccache")
 | 
				
			||||||
    (version "4.3")
 | 
					    (version "4.4")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (string-append "https://github.com/ccache/ccache/releases/download/v"
 | 
					       (uri (string-append "https://github.com/ccache/ccache/releases/download/v"
 | 
				
			||||||
                           version "/ccache-" version ".tar.xz"))
 | 
					                           version "/ccache-" version ".tar.xz"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "1d4995lkmqshzfxlmbyn101m1rxs02yb8dgh4rl30p26hhhhyjjh"))))
 | 
					        (base32 "0qbmcs6c3m071vsd1ppa31r8s0dzpaw5y38z8ga1bz48rwpfl2xl"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (native-inputs `(("perl" ,perl)     ; for test/run
 | 
					    (native-inputs `(("perl" ,perl)     ; for test/run
 | 
				
			||||||
                     ("which" ,(@ (gnu packages base) which))))
 | 
					                     ("which" ,(@ (gnu packages base) which))))
 | 
				
			||||||
    (inputs `(("zlib" ,zlib)
 | 
					    (inputs `(("zlib" ,zlib)
 | 
				
			||||||
              ("zstd" ,zstd "lib")))
 | 
					              ("zstd" ,zstd "lib")))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:phases
 | 
					     '(;; Disable redis backend explicitly. Build system insists on present dependency
 | 
				
			||||||
 | 
					       ;; or on explicit flag.
 | 
				
			||||||
 | 
					       #:configure-flags
 | 
				
			||||||
 | 
					       '("-DREDIS_STORAGE_BACKEND=OFF")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-before 'configure 'setup-tests
 | 
					         (add-before 'configure 'setup-tests
 | 
				
			||||||
           (lambda _
 | 
					           (lambda _
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,7 @@
 | 
				
			||||||
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
 | 
					;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
 | 
				
			||||||
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 | 
					;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 | 
				
			||||||
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 | 
					;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 | 
				
			||||||
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 | 
					;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 | 
				
			||||||
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
 | 
					;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
 | 
				
			||||||
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
 | 
					;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
 | 
				
			||||||
;;; Copyright © 2017 John Darrington <jmd@gnu.org>
 | 
					;;; Copyright © 2017 John Darrington <jmd@gnu.org>
 | 
				
			||||||
| 
						 | 
					@ -925,7 +925,14 @@ Supported extensions to ISO 9660 are Rock Ridge, Joliet, AAIP, zisofs.")
 | 
				
			||||||
                    version ".tar.gz"))
 | 
					                    version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0g2zyzb56czh429qy87lvaddzjnlcq8c616ddxsmsshz3clhyzrh"))))
 | 
					                "0g2zyzb56czh429qy87lvaddzjnlcq8c616ddxsmsshz3clhyzrh"))
 | 
				
			||||||
 | 
					              (modules '((guix build utils)))
 | 
				
			||||||
 | 
					              (snippet
 | 
				
			||||||
 | 
					                #~(begin
 | 
				
			||||||
 | 
					                    ;; Fix building with gcc-10.
 | 
				
			||||||
 | 
					                    (substitute* "genisoimage/genisoimage.h"
 | 
				
			||||||
 | 
					                      (("char\t\t\\*outfile")
 | 
				
			||||||
 | 
					                       "extern char\t*outfile"))))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("bzip2" ,bzip2)
 | 
					     `(("bzip2" ,bzip2)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -104,6 +104,11 @@ port forwarding to your local machine.")
 | 
				
			||||||
      (arguments
 | 
					      (arguments
 | 
				
			||||||
       `(#:phases (modify-phases %standard-phases
 | 
					       `(#:phases (modify-phases %standard-phases
 | 
				
			||||||
                    (delete 'configure)
 | 
					                    (delete 'configure)
 | 
				
			||||||
 | 
					                    (add-before 'build 'fix-extension
 | 
				
			||||||
 | 
					                      (lambda _
 | 
				
			||||||
 | 
					                        (substitute* "certdata2pem.c"
 | 
				
			||||||
 | 
					                          (("\\.crt")
 | 
				
			||||||
 | 
					                           ".pem"))))
 | 
				
			||||||
                    (replace 'build
 | 
					                    (replace 'build
 | 
				
			||||||
                      (lambda _
 | 
					                      (lambda _
 | 
				
			||||||
                        (invoke ,(cc-for-target) "certdata2pem.c"
 | 
					                        (invoke ,(cc-for-target) "certdata2pem.c"
 | 
				
			||||||
| 
						 | 
					@ -159,9 +164,9 @@ that was originally contributed to Debian.")
 | 
				
			||||||
                   (call-with-output-file "blacklist.txt" (const #t)))
 | 
					                   (call-with-output-file "blacklist.txt" (const #t)))
 | 
				
			||||||
                 ;; Extract selected single certificates from blob.
 | 
					                 ;; Extract selected single certificates from blob.
 | 
				
			||||||
                 (invoke "certdata2pem")
 | 
					                 (invoke "certdata2pem")
 | 
				
			||||||
                 ;; Copy .crt files into the output.
 | 
					                 ;; Copy .pem files into the output.
 | 
				
			||||||
                 (for-each (cut install-file <> certsdir)
 | 
					                 (for-each (cut install-file <> certsdir)
 | 
				
			||||||
                           (find-files "." ".*\\.crt$")))
 | 
					                           (find-files "." ".*\\.pem$")))
 | 
				
			||||||
               (invoke "openssl" "rehash" certsdir)))))))
 | 
					               (invoke "openssl" "rehash" certsdir)))))))
 | 
				
			||||||
    (synopsis "CA certificates from Mozilla")
 | 
					    (synopsis "CA certificates from Mozilla")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,7 +9,7 @@
 | 
				
			||||||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 | 
					;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 | 
				
			||||||
;;; Copyright © 2015, 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 | 
					;;; Copyright © 2015, 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 | 
				
			||||||
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
 | 
					;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
 | 
				
			||||||
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
 | 
					;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
 | 
				
			||||||
;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org>
 | 
					;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org>
 | 
				
			||||||
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
 | 
					;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
 | 
				
			||||||
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
 | 
					;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
 | 
				
			||||||
| 
						 | 
					@ -26,7 +26,7 @@
 | 
				
			||||||
;;; Copyright © 2017 Nikita <nikita@n0.is>
 | 
					;;; Copyright © 2017 Nikita <nikita@n0.is>
 | 
				
			||||||
;;; Copyright © 2015, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
 | 
					;;; Copyright © 2015, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
 | 
				
			||||||
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
 | 
					;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
 | 
				
			||||||
;;; Copyright © 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
 | 
					;;; Copyright © 2017, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 | 
				
			||||||
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
 | 
					;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
 | 
				
			||||||
;;; Copyright © 2019, 2021 Pierre Langlois <pierre.langlois@gmx.com>
 | 
					;;; Copyright © 2019, 2021 Pierre Langlois <pierre.langlois@gmx.com>
 | 
				
			||||||
;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
 | 
					;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
 | 
				
			||||||
| 
						 | 
					@ -733,10 +733,37 @@ generation.")
 | 
				
			||||||
              (base32
 | 
					              (base32
 | 
				
			||||||
               "0270msj6n7mggh4xqqjp54kswbl7mkcc8px1p5dqdpmw5ngh9fzk"))))))
 | 
					               "0270msj6n7mggh4xqqjp54kswbl7mkcc8px1p5dqdpmw5ngh9fzk"))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public googlebenchmark
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "googlebenchmark")
 | 
				
			||||||
 | 
					    (version "1.5.3")
 | 
				
			||||||
 | 
					    (home-page "https://github.com/google/benchmark")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method git-fetch)
 | 
				
			||||||
 | 
					              (uri (git-reference (url home-page)
 | 
				
			||||||
 | 
					                                  (commit (string-append "v" version))))
 | 
				
			||||||
 | 
					              (file-name (git-file-name "google-benchmark" version))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "1hls0aqqj5cfldn9jfpvzjhpxkhrydrz9crp477rwllwjsybdxw7"))))
 | 
				
			||||||
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON"
 | 
				
			||||||
 | 
					                               (string-append
 | 
				
			||||||
 | 
					                                "-DGOOGLETEST_PATH="
 | 
				
			||||||
 | 
					                                (assoc-ref %build-inputs "googletest")))))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("googletest" ,(package-source googletest))))
 | 
				
			||||||
 | 
					    (synopsis "C++ library to support the benchmarking of functions")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "The googlebenchmark C++ library support the benchmarking of functions,
 | 
				
			||||||
 | 
					similar to unit tests.")
 | 
				
			||||||
 | 
					    (license license:asl2.0)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public cpputest
 | 
					(define-public cpputest
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "cpputest")
 | 
					    (name "cpputest")
 | 
				
			||||||
    (version "3.8")
 | 
					    (version "4.0")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
| 
						 | 
					@ -744,7 +771,7 @@ generation.")
 | 
				
			||||||
                           version "/cpputest-" version ".tar.gz"))
 | 
					                           version "/cpputest-" version ".tar.gz"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "0mk48xd3klyqi7wf3f4wn4zqxxzmvrhhl32r25jzrixzl72wq7f8"))))
 | 
					         "1xslavlb1974y5xvs8n1j9zkk05dlw8imy4saasrjlmibl895ii1"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("googletest" ,googletest)))
 | 
					     `(("googletest" ,googletest)))
 | 
				
			||||||
| 
						 | 
					@ -839,7 +866,8 @@ doctest.")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
     "Mock is a library for testing in Python.  It allows you to replace parts
 | 
					     "Mock is a library for testing in Python.  It allows you to replace parts
 | 
				
			||||||
of your system under test with mock objects and make assertions about how they
 | 
					of your system under test with mock objects and make assertions about how they
 | 
				
			||||||
have been used.")
 | 
					have been used.  This library is now part of Python (since Python 3.3),
 | 
				
			||||||
 | 
					available via the @code{unittest.mock} module.")
 | 
				
			||||||
    (properties `((python2-variant . ,(delay python2-mock))))
 | 
					    (properties `((python2-variant . ,(delay python2-mock))))
 | 
				
			||||||
    (license license:expat)))
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -995,6 +1023,8 @@ and many external plugins.")
 | 
				
			||||||
    (license license:expat)
 | 
					    (license license:expat)
 | 
				
			||||||
    (properties `((python2-variant . ,(delay python2-pytest))))))
 | 
					    (properties `((python2-variant . ,(delay python2-pytest))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python-pytest-6 python-pytest)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; Pytest 4.x are the last versions that support Python 2.
 | 
					;; Pytest 4.x are the last versions that support Python 2.
 | 
				
			||||||
(define-public python2-pytest
 | 
					(define-public python2-pytest
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
| 
						 | 
					@ -1210,19 +1240,33 @@ contacting the real http server.")
 | 
				
			||||||
(define-public python-pytest-mock
 | 
					(define-public python-pytest-mock
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python-pytest-mock")
 | 
					    (name "python-pytest-mock")
 | 
				
			||||||
    (version "1.10.1")
 | 
					    (version "3.6.1")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (pypi-uri "pytest-mock" version))
 | 
					       (uri (pypi-uri "pytest-mock" version))
 | 
				
			||||||
        (sha256
 | 
					       (sha256 (base32
 | 
				
			||||||
         (base32
 | 
					                "0qhfmd05z3g88bnwq6644jl6p5wy01i4yy7h8883z9jjih2pl8a0"))))
 | 
				
			||||||
          "1i5mg3ff1qk0wqfcxfz60hwy3q5dskdp36i10ckigkzffg8hc3ad"))))
 | 
					 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (replace 'check
 | 
				
			||||||
 | 
					           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
 | 
				
			||||||
 | 
					             (when tests?
 | 
				
			||||||
 | 
					               (add-installed-pythonpath inputs outputs)
 | 
				
			||||||
 | 
					               ;; Skip the assertion rewriting tests, which don't work in the
 | 
				
			||||||
 | 
					               ;; presence of read-only Python modules (a limitation of
 | 
				
			||||||
 | 
					               ;; Pytest).  Also skip the "test_standalone_mock" test, which
 | 
				
			||||||
 | 
					               ;; can only work when 'python-mock' is not available
 | 
				
			||||||
 | 
					               ;; (currently propagated by Pytest 5).
 | 
				
			||||||
 | 
					               (invoke "pytest" "--assert=plain"
 | 
				
			||||||
 | 
					                       "-k" "not test_standalone_mock")))))))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("python-setuptools-scm" ,python-setuptools-scm)))
 | 
					     `(("python-setuptools-scm" ,python-setuptools-scm)))
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("python-pytest" ,python-pytest)))
 | 
					     `(("python-pytest" ,python-pytest)
 | 
				
			||||||
 | 
					       ("python-pytest-asyncio" ,python-pytest-asyncio)))
 | 
				
			||||||
    (home-page "https://github.com/pytest-dev/pytest-mock/")
 | 
					    (home-page "https://github.com/pytest-dev/pytest-mock/")
 | 
				
			||||||
    (synopsis "Thin-wrapper around the mock package for easier use with py.test")
 | 
					    (synopsis "Thin-wrapper around the mock package for easier use with py.test")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
| 
						 | 
					@ -1272,9 +1316,11 @@ same arguments.")
 | 
				
			||||||
             (substitute* "setup.py"
 | 
					             (substitute* "setup.py"
 | 
				
			||||||
               (("pytest>=6\\.0\\.0") "pytest"))))
 | 
					               (("pytest>=6\\.0\\.0") "pytest"))))
 | 
				
			||||||
         (replace 'check
 | 
					         (replace 'check
 | 
				
			||||||
            (lambda* (#:key tests? #:allow-other-keys)
 | 
					           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
 | 
				
			||||||
             (when tests?
 | 
					             (when tests?
 | 
				
			||||||
                (invoke "py.test" "-v")))))))
 | 
					               (add-installed-pythonpath inputs outputs)
 | 
				
			||||||
 | 
					               (invoke "pytest" "-vv"
 | 
				
			||||||
 | 
					                       "-n" (number->string (parallel-job-count)))))))))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("python-setuptools-scm" ,python-setuptools-scm)))
 | 
					     `(("python-setuptools-scm" ,python-setuptools-scm)))
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
| 
						 | 
					@ -1298,17 +1344,33 @@ result back.")
 | 
				
			||||||
(define-public python2-pytest-xdist
 | 
					(define-public python2-pytest-xdist
 | 
				
			||||||
  (package-with-python2 python-pytest-xdist))
 | 
					  (package-with-python2 python-pytest-xdist))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python-pytest-xdist-next
 | 
				
			||||||
 | 
					  (package/inherit python-pytest-xdist
 | 
				
			||||||
 | 
					    (name "python-pytest-xdist")
 | 
				
			||||||
 | 
					    (version "2.3.0")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (pypi-uri "pytest-xdist" version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "19cy57jrf3pwi7x6fnbxryjvqagsl0yv736jnynvr3yqhlpxxv78"))))
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("python-execnet" ,python-execnet)
 | 
				
			||||||
 | 
					       ("python-pytest" ,python-pytest-6)
 | 
				
			||||||
 | 
					       ("python-pytest-forked" ,python-pytest-forked)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public python-pytest-timeout
 | 
					(define-public python-pytest-timeout
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python-pytest-timeout")
 | 
					    (name "python-pytest-timeout")
 | 
				
			||||||
    (version "1.3.4")
 | 
					    (version "1.4.2")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (pypi-uri "pytest-timeout" version))
 | 
					       (uri (pypi-uri "pytest-timeout" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "13n42azbvs5slvy2n1a9nw17r4qdq10dd68nln3jp925safa3yl0"))))
 | 
					         "0xnsigs0kmpq1za0d4i522sp3f71x5bgpdh3ski0rs74yqy13cr0"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:phases (modify-phases %standard-phases
 | 
					     '(#:phases (modify-phases %standard-phases
 | 
				
			||||||
| 
						 | 
					@ -1318,7 +1380,8 @@ result back.")
 | 
				
			||||||
                      (add-installed-pythonpath inputs outputs)
 | 
					                      (add-installed-pythonpath inputs outputs)
 | 
				
			||||||
                      (invoke "pytest" "-vv"))))))
 | 
					                      (invoke "pytest" "-vv"))))))
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("python-pytest" ,python-pytest)))
 | 
					     `(("python-pytest" ,python-pytest)
 | 
				
			||||||
 | 
					       ("python-pytest-cov" ,python-pytest-cov)))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("python-pexpect" ,python-pexpect)))
 | 
					     `(("python-pexpect" ,python-pexpect)))
 | 
				
			||||||
    (home-page "https://github.com/pytest-dev/pytest-timeout")
 | 
					    (home-page "https://github.com/pytest-dev/pytest-timeout")
 | 
				
			||||||
| 
						 | 
					@ -1334,22 +1397,42 @@ timeout has been exceeded.")
 | 
				
			||||||
    (version "1.3.0")
 | 
					    (version "1.3.0")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method git-fetch)               ;for tests
 | 
				
			||||||
       (uri (pypi-uri "pytest-forked" version))
 | 
					       (uri (git-reference
 | 
				
			||||||
 | 
					             (url "https://github.com/pytest-dev/pytest-forked")
 | 
				
			||||||
 | 
					             (commit (string-append "v" version))))
 | 
				
			||||||
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "1jip9qh115zcg1rn7irqx5qycb9k248d5imy86f566md01zaraba"))))
 | 
					         "1aip4kx50ynvykl7kq2mlbsi82vx701dvb8mm64lhp69bbv105rc"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-after 'unpack 'disable-setuptools-scm
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             (substitute* "setup.py"
 | 
				
			||||||
 | 
					               (("use_scm_version=True")
 | 
				
			||||||
 | 
					                (format #f "version=~s" ,version))
 | 
				
			||||||
 | 
					               (("setup_requires=\\['setuptools_scm'\\],.*")
 | 
				
			||||||
 | 
					                ""))))
 | 
				
			||||||
 | 
					         (replace 'check
 | 
				
			||||||
 | 
					           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
 | 
				
			||||||
 | 
					             (when tests?
 | 
				
			||||||
 | 
					               (add-installed-pythonpath inputs outputs)
 | 
				
			||||||
 | 
					               (invoke "pytest" "-vv")))))))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("python-pytest" ,python-pytest)
 | 
					     ;; XXX: The bootstrap variant of Pytest is used to ensure the
 | 
				
			||||||
       ("python-setuptools-scm" ,python-setuptools-scm)))
 | 
					     ;; 'hypothesis' plugin is not in the environment (due to
 | 
				
			||||||
    (home-page
 | 
					     ;; <http://issues.guix.gnu.org/25235>), which would cause the test suite
 | 
				
			||||||
     "https://github.com/pytest-dev/pytest-forked")
 | 
					     ;; to fail (see: https://github.com/pytest-dev/pytest-forked/issues/54).
 | 
				
			||||||
    (synopsis
 | 
					     `(("python-pytest" ,python-pytest-bootstrap)))
 | 
				
			||||||
     "Run tests in isolated forked subprocesses")
 | 
					    (home-page "https://github.com/pytest-dev/pytest-forked")
 | 
				
			||||||
    (description
 | 
					    (synopsis "Pytest plugin to run tests in isolated forked subprocesses")
 | 
				
			||||||
     "Pytest plugin which will run each test in a subprocess and will report if
 | 
					    (description "This package provides a Pytest plugin which enables running
 | 
				
			||||||
a test crashed the process.")
 | 
					each test in a subprocess and will report if a test crashed the process.  It
 | 
				
			||||||
 | 
					can be useful to isolate tests against undesirable global environment
 | 
				
			||||||
 | 
					side-effects (such as setting environment variables).")
 | 
				
			||||||
    (license license:expat)))
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public python-scripttest
 | 
					(define-public python-scripttest
 | 
				
			||||||
| 
						 | 
					@ -1377,25 +1460,20 @@ subprocess and see the output as well as any file modifications.")
 | 
				
			||||||
(define-public python-testtools-bootstrap
 | 
					(define-public python-testtools-bootstrap
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python-testtools-bootstrap")
 | 
					    (name "python-testtools-bootstrap")
 | 
				
			||||||
    (version "2.3.0")
 | 
					    (version "2.5.0")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (pypi-uri "testtools" version))
 | 
					       (uri (pypi-uri "testtools" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "0n8519lk8aaa91vymz842831181wf7fss98hyllhygi3z1nfq9sq"))
 | 
					         "0gxjbjk93jjqi491k4s9rh3ia37v21yifd35pvizv7sgv4rk9hap"))))
 | 
				
			||||||
       (patches (search-patches "python-testtools.patch"))))
 | 
					 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (arguments '(#:tests? #f))
 | 
					    (arguments '(#:tests? #f))
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("python-extras" ,python-extras)
 | 
					     `(("python-extras" ,python-extras)
 | 
				
			||||||
       ("python-fixtures" ,python-fixtures-bootstrap)
 | 
					       ("python-fixtures" ,python-fixtures-bootstrap)
 | 
				
			||||||
       ("python-mimeparse" ,python-mimeparse)
 | 
					       ("python-pbr" ,python-pbr-minimal)))
 | 
				
			||||||
       ("python-pbr" ,python-pbr-minimal)
 | 
					 | 
				
			||||||
       ("python-six" ,python-six)
 | 
					 | 
				
			||||||
       ("python-traceback2" ,python-traceback2)
 | 
					 | 
				
			||||||
       ("python-unittest2" ,python-unittest2)))
 | 
					 | 
				
			||||||
    (home-page "https://github.com/testing-cabal/testtools")
 | 
					    (home-page "https://github.com/testing-cabal/testtools")
 | 
				
			||||||
    (synopsis
 | 
					    (synopsis
 | 
				
			||||||
     "Extensions to the Python standard library unit testing framework")
 | 
					     "Extensions to the Python standard library unit testing framework")
 | 
				
			||||||
| 
						 | 
					@ -1408,19 +1486,17 @@ subprocess and see the output as well as any file modifications.")
 | 
				
			||||||
    (inherit python-testtools-bootstrap)
 | 
					    (inherit python-testtools-bootstrap)
 | 
				
			||||||
    (name "python-testtools")
 | 
					    (name "python-testtools")
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases (modify-phases %standard-phases
 | 
					     `(#:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (replace 'check
 | 
					         (replace 'check
 | 
				
			||||||
                    (lambda _
 | 
					           (lambda* (#:key tests? #:allow-other-keys)
 | 
				
			||||||
 | 
					             (when tests?
 | 
				
			||||||
               (invoke "python" "-m" "testtools.run"
 | 
					               (invoke "python" "-m" "testtools.run"
 | 
				
			||||||
                              "testtools.tests.test_suite"))))))
 | 
					                       "testtools.tests.test_suite")))))))
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("python-extras" ,python-extras)
 | 
					     `(("python-extras" ,python-extras)
 | 
				
			||||||
       ("python-fixtures" ,python-fixtures)
 | 
					       ("python-fixtures" ,python-fixtures)
 | 
				
			||||||
       ("python-mimeparse" ,python-mimeparse)
 | 
					       ("python-pbr" ,python-pbr)))
 | 
				
			||||||
       ("python-pbr" ,python-pbr)
 | 
					 | 
				
			||||||
       ("python-six" ,python-six)
 | 
					 | 
				
			||||||
       ("python-traceback2" ,python-traceback2)
 | 
					 | 
				
			||||||
       ("python-unittest2" ,python-unittest2)))
 | 
					 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("python-testscenarios" ,python-testscenarios-bootstrap)))
 | 
					     `(("python-testscenarios" ,python-testscenarios-bootstrap)))
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
| 
						 | 
					@ -1551,12 +1627,14 @@ protocol.")))
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python-fixtures-bootstrap")
 | 
					    (name "python-fixtures-bootstrap")
 | 
				
			||||||
    (version "3.0.0")
 | 
					    (version "3.0.0")
 | 
				
			||||||
    (source (origin
 | 
					    (source
 | 
				
			||||||
 | 
					      (origin
 | 
				
			||||||
        (method url-fetch)
 | 
					        (method url-fetch)
 | 
				
			||||||
        (uri (pypi-uri "fixtures" version))
 | 
					        (uri (pypi-uri "fixtures" version))
 | 
				
			||||||
        (sha256
 | 
					        (sha256
 | 
				
			||||||
         (base32
 | 
					         (base32
 | 
				
			||||||
                "1vxj29bzz3rd4pcy51d05wng9q9dh4jq6wx92yklsm7i6h1ddw7w"))))
 | 
					          "1vxj29bzz3rd4pcy51d05wng9q9dh4jq6wx92yklsm7i6h1ddw7w"))
 | 
				
			||||||
 | 
					        (patches (search-patches "python-fixtures-remove-monkeypatch-test.patch"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
      `(#:tests? #f
 | 
					      `(#:tests? #f
 | 
				
			||||||
| 
						 | 
					@ -1582,9 +1660,10 @@ python-fixtures package instead.")
 | 
				
			||||||
     '(#:phases
 | 
					     '(#:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (replace 'check
 | 
					         (replace 'check
 | 
				
			||||||
           (lambda _
 | 
					           (lambda* (#:key tests? #:allow-other-keys)
 | 
				
			||||||
 | 
					             (when tests?
 | 
				
			||||||
               (invoke "python" "-m" "testtools.run"
 | 
					               (invoke "python" "-m" "testtools.run"
 | 
				
			||||||
                     "fixtures.test_suite"))))))
 | 
					                       "fixtures.test_suite")))))))
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     ;; Fixtures uses pbr at runtime to check versions, etc.
 | 
					     ;; Fixtures uses pbr at runtime to check versions, etc.
 | 
				
			||||||
     `(("python-pbr" ,python-pbr)
 | 
					     `(("python-pbr" ,python-pbr)
 | 
				
			||||||
| 
						 | 
					@ -1671,10 +1750,13 @@ executed.")
 | 
				
			||||||
    (version "0.15.1")
 | 
					    (version "0.15.1")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method git-fetch)               ;for tests
 | 
				
			||||||
       (uri (pypi-uri "pytest-asyncio" version))
 | 
					       (uri (git-reference
 | 
				
			||||||
 | 
					             (url "https://github.com/pytest-dev/pytest-asyncio")
 | 
				
			||||||
 | 
					             (commit (string-append "v" version))))
 | 
				
			||||||
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "0vrzsrg3j1cfd57m0b3r5xf87rslgcs42jya346mdg9bc6wwwr15"))))
 | 
					        (base32 "03drs4myv1ik79148xyhli37q6mp931jb14cz65n8qvls2zvvwgx"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("python-coverage" ,python-coverage)
 | 
					     `(("python-coverage" ,python-coverage)
 | 
				
			||||||
| 
						 | 
					@ -1866,22 +1948,23 @@ framework which enables you to test server connections locally.")
 | 
				
			||||||
(define-public python-pytest-xprocess
 | 
					(define-public python-pytest-xprocess
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python-pytest-xprocess")
 | 
					    (name "python-pytest-xprocess")
 | 
				
			||||||
    (version "0.9.1")
 | 
					    (version "0.18.1")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
             (method url-fetch)
 | 
					             (method url-fetch)
 | 
				
			||||||
             (uri (pypi-uri "pytest-xprocess" version))
 | 
					             (uri (pypi-uri "pytest-xprocess" version))
 | 
				
			||||||
             (sha256
 | 
					             (sha256
 | 
				
			||||||
              (base32
 | 
					              (base32
 | 
				
			||||||
               "17zlql1xqw3ywcgwwbqmw633aly99lab12hm02asr8awvg5603pp"))))
 | 
					               "0rm2rchrr63imn44xk5slwydxf8gvy579524qcxq7dc42pnk17zx"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("python-setuptools-scm" ,python-setuptools-scm)))
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("python-pytest" ,python-pytest)
 | 
					     `(("python-pytest" ,python-pytest)
 | 
				
			||||||
       ("python-pytest-cache" ,python-pytest-cache)
 | 
					 | 
				
			||||||
       ("python-psutil" ,python-psutil)))
 | 
					       ("python-psutil" ,python-psutil)))
 | 
				
			||||||
    (synopsis "Pytest plugin to manage external processes across test runs")
 | 
					    (synopsis "Pytest plugin to manage external processes across test runs")
 | 
				
			||||||
    (description "Pytest-xprocess is an experimental py.test plugin for managing
 | 
					    (description "Pytest-xprocess is an experimental py.test plugin for managing
 | 
				
			||||||
processes across test runs.")
 | 
					processes across test runs.")
 | 
				
			||||||
    (home-page "https://bitbucket.org/pytest-dev/pytest-xprocess")
 | 
					    (home-page "https://github.com/pytest-dev/pytest-xprocess/")
 | 
				
			||||||
    (license license:expat)))
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public python-pytest-subtesthack
 | 
					(define-public python-pytest-subtesthack
 | 
				
			||||||
| 
						 | 
					@ -2135,42 +2218,25 @@ statements in the module it tests.")
 | 
				
			||||||
(define-public python-pylint
 | 
					(define-public python-pylint
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python-pylint")
 | 
					    (name "python-pylint")
 | 
				
			||||||
    (version "2.6.0")
 | 
					    (version "2.9.6")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
       (uri (git-reference
 | 
					       (uri (git-reference
 | 
				
			||||||
             (url "https://github.com/PyCQA/pylint")
 | 
					             (url "https://github.com/PyCQA/pylint")
 | 
				
			||||||
             (commit (string-append "pylint-" version))))
 | 
					             (commit (string-append "v" version))))
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "0ws3dz3wm49brnhhfm7v75zq202pwlwfbi3njdd69aqxq912x15z"))))
 | 
					        (base32 "15yw69v1cj6zkndk60c2g0dgl0khh8bfm1lrwhjffpdjfc7nkc9a"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (arguments
 | 
					 | 
				
			||||||
     `(#:tests? #t
 | 
					 | 
				
			||||||
       #:phases
 | 
					 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					 | 
				
			||||||
         (replace 'check
 | 
					 | 
				
			||||||
           (lambda* (#:key tests? #:allow-other-keys)
 | 
					 | 
				
			||||||
             (when tests?
 | 
					 | 
				
			||||||
               ;; The following failing tests are skipped (see:
 | 
					 | 
				
			||||||
               ;; https://github.com/PyCQA/pylint/issues/4068).
 | 
					 | 
				
			||||||
               (invoke "pytest" "-k"
 | 
					 | 
				
			||||||
                       (string-append
 | 
					 | 
				
			||||||
                        "not unused_typing_imports "
 | 
					 | 
				
			||||||
                        "and not star_needs_assignment_target_py35 "
 | 
					 | 
				
			||||||
                        "and not regression_property_no_member_2641 "
 | 
					 | 
				
			||||||
                        "and not missing_kwoa_py3"))))))))
 | 
					 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("python-pytest" ,python-pytest)
 | 
					     `(("python-pytest" ,python-pytest)
 | 
				
			||||||
       ("python-pytest-benchmark" ,python-pytest-benchmark)
 | 
					       ("python-pytest-benchmark" ,python-pytest-benchmark)
 | 
				
			||||||
       ("python-pytest-runner" ,python-pytest-runner)
 | 
					       ("python-pytest-runner" ,python-pytest-runner)))
 | 
				
			||||||
       ("python-tox" ,python-tox)))
 | 
					 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("python-astroid" ,python-astroid)
 | 
					     `(("python-astroid" ,python-astroid)
 | 
				
			||||||
       ("python-isort" ,python-isort)
 | 
					       ("python-isort" ,python-isort)
 | 
				
			||||||
       ("python-mccabe" ,python-mccabe)
 | 
					       ("python-mccabe" ,python-mccabe)
 | 
				
			||||||
       ("python-six" ,python-six)
 | 
					 | 
				
			||||||
       ("python-toml" ,python-toml)))
 | 
					       ("python-toml" ,python-toml)))
 | 
				
			||||||
    (home-page "https://github.com/PyCQA/pylint")
 | 
					    (home-page "https://github.com/PyCQA/pylint")
 | 
				
			||||||
    (synopsis "Python source code analyzer which looks for coding standard
 | 
					    (synopsis "Python source code analyzer which looks for coding standard
 | 
				
			||||||
| 
						 | 
					@ -2687,7 +2753,13 @@ portable to just about any platform.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        ;; XXX: Without this flag, the CLOCK_REALTIME test hangs
 | 
					                        ;; XXX: Without this flag, the CLOCK_REALTIME test hangs
 | 
				
			||||||
                        ;; indefinitely.  See README.packagers for more information.
 | 
					                        ;; indefinitely.  See README.packagers for more information.
 | 
				
			||||||
                        (setenv "FAKETIME_COMPILE_CFLAGS" "-DFORCE_MONOTONIC_FIX"))))
 | 
					                        ;; There are specific instructions to not enable more flags
 | 
				
			||||||
 | 
					                        ;; than absolutely needed.
 | 
				
			||||||
 | 
					                        ,(if (target-ppc64le?)
 | 
				
			||||||
 | 
					                           `(setenv "FAKETIME_COMPILE_CFLAGS"
 | 
				
			||||||
 | 
					                                    "-DFORCE_MONOTONIC_FIX -DFORCE_PTHREAD_NONVER")
 | 
				
			||||||
 | 
					                           `(setenv "FAKETIME_COMPILE_CFLAGS"
 | 
				
			||||||
 | 
					                                    "-DFORCE_MONOTONIC_FIX")))))
 | 
				
			||||||
                  (add-before 'check 'pre-check
 | 
					                  (add-before 'check 'pre-check
 | 
				
			||||||
                    (lambda _
 | 
					                    (lambda _
 | 
				
			||||||
                      (substitute* "test/functests/test_exclude_mono.sh"
 | 
					                      (substitute* "test/functests/test_exclude_mono.sh"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -114,8 +114,8 @@
 | 
				
			||||||
       ;; for docs
 | 
					       ;; for docs
 | 
				
			||||||
       ("stex" ,stex)
 | 
					       ("stex" ,stex)
 | 
				
			||||||
       ("xorg-rgb" ,xorg-rgb)
 | 
					       ("xorg-rgb" ,xorg-rgb)
 | 
				
			||||||
       ("texlive" ,(texlive-updmap.cfg (list texlive-latex-oberdiek
 | 
					       ("texlive" ,(texlive-updmap.cfg (list texlive-oberdiek
 | 
				
			||||||
                                             texlive-generic-epsf)))
 | 
					                                             texlive-epsf)))
 | 
				
			||||||
       ("ghostscript" ,ghostscript)
 | 
					       ("ghostscript" ,ghostscript)
 | 
				
			||||||
       ("netpbm" ,netpbm)))
 | 
					       ("netpbm" ,netpbm)))
 | 
				
			||||||
    (native-search-paths
 | 
					    (native-search-paths
 | 
				
			||||||
| 
						 | 
					@ -316,10 +316,10 @@ and 32-bit PowerPC architectures.")
 | 
				
			||||||
      (native-inputs
 | 
					      (native-inputs
 | 
				
			||||||
       `(("chez-scheme" ,chez-scheme)
 | 
					       `(("chez-scheme" ,chez-scheme)
 | 
				
			||||||
         ("ghostscript" ,ghostscript)
 | 
					         ("ghostscript" ,ghostscript)
 | 
				
			||||||
         ("texlive" ,(texlive-updmap.cfg (list texlive-latex-oberdiek
 | 
					         ("texlive" ,(texlive-updmap.cfg (list texlive-oberdiek
 | 
				
			||||||
                                          texlive-generic-epsf
 | 
					                                          texlive-epsf
 | 
				
			||||||
                                          texlive-metapost
 | 
					                                          texlive-metapost
 | 
				
			||||||
                                          texlive-fonts-charter
 | 
					                                          texlive-charter
 | 
				
			||||||
                                          texlive-pdftex
 | 
					                                          texlive-pdftex
 | 
				
			||||||
                                          texlive-context
 | 
					                                          texlive-context
 | 
				
			||||||
                                          texlive-cm
 | 
					                                          texlive-cm
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -58,8 +58,6 @@
 | 
				
			||||||
  #:use-module (gnu packages protobuf)
 | 
					  #:use-module (gnu packages protobuf)
 | 
				
			||||||
  #:use-module (gnu packages pulseaudio)
 | 
					  #:use-module (gnu packages pulseaudio)
 | 
				
			||||||
  #:use-module (gnu packages python)
 | 
					  #:use-module (gnu packages python)
 | 
				
			||||||
  #:use-module (gnu packages python-web)
 | 
					 | 
				
			||||||
  #:use-module (gnu packages python-xyz)
 | 
					 | 
				
			||||||
  #:use-module (gnu packages regex)
 | 
					  #:use-module (gnu packages regex)
 | 
				
			||||||
  #:use-module (gnu packages serialization)
 | 
					  #:use-module (gnu packages serialization)
 | 
				
			||||||
  #:use-module (gnu packages speech)
 | 
					  #:use-module (gnu packages speech)
 | 
				
			||||||
| 
						 | 
					@ -111,7 +109,10 @@
 | 
				
			||||||
    "third_party/catapult" ;BSD-3
 | 
					    "third_party/catapult" ;BSD-3
 | 
				
			||||||
    "third_party/catapult/common/py_vulcanize/third_party/rcssmin" ;ASL2.0
 | 
					    "third_party/catapult/common/py_vulcanize/third_party/rcssmin" ;ASL2.0
 | 
				
			||||||
    "third_party/catapult/common/py_vulcanize/third_party/rjsmin" ;ASL2.0
 | 
					    "third_party/catapult/common/py_vulcanize/third_party/rjsmin" ;ASL2.0
 | 
				
			||||||
 | 
					    "third_party/catapult/third_party/beautifulsoup4" ;Expat
 | 
				
			||||||
 | 
					    "third_party/catapult/third_party/html5lib-python" ;Expat
 | 
				
			||||||
    "third_party/catapult/third_party/polymer" ;BSD-3
 | 
					    "third_party/catapult/third_party/polymer" ;BSD-3
 | 
				
			||||||
 | 
					    "third_party/catapult/third_party/six" ;Expat
 | 
				
			||||||
    ;; XXX: This is a minified version of <https://d3js.org/>.
 | 
					    ;; XXX: This is a minified version of <https://d3js.org/>.
 | 
				
			||||||
    "third_party/catapult/tracing/third_party/d3" ;BSD-3
 | 
					    "third_party/catapult/tracing/third_party/d3" ;BSD-3
 | 
				
			||||||
    "third_party/catapult/tracing/third_party/gl-matrix" ;Expat
 | 
					    "third_party/catapult/tracing/third_party/gl-matrix" ;Expat
 | 
				
			||||||
| 
						 | 
					@ -138,7 +139,7 @@
 | 
				
			||||||
    "third_party/devtools-frontend/src/front_end/third_party/axe-core" ;MPL2.0
 | 
					    "third_party/devtools-frontend/src/front_end/third_party/axe-core" ;MPL2.0
 | 
				
			||||||
    "third_party/devtools-frontend/src/front_end/third_party/chromium" ;BSD-3
 | 
					    "third_party/devtools-frontend/src/front_end/third_party/chromium" ;BSD-3
 | 
				
			||||||
    "third_party/devtools-frontend/src/front_end/third_party/codemirror" ;Expat
 | 
					    "third_party/devtools-frontend/src/front_end/third_party/codemirror" ;Expat
 | 
				
			||||||
    "third_party/devtools-frontend/src/front_end/third_party/fabricjs" ;Expat
 | 
					    "third_party/devtools-frontend/src/front_end/third_party/diff" ;ASL2.0
 | 
				
			||||||
    "third_party/devtools-frontend/src/front_end/third_party/i18n" ;ASL2.0
 | 
					    "third_party/devtools-frontend/src/front_end/third_party/i18n" ;ASL2.0
 | 
				
			||||||
    "third_party/devtools-frontend/src/front_end/third_party/intl-messageformat" ;BSD-3
 | 
					    "third_party/devtools-frontend/src/front_end/third_party/intl-messageformat" ;BSD-3
 | 
				
			||||||
    "third_party/devtools-frontend/src/front_end/third_party/lighthouse" ;ASL2.0
 | 
					    "third_party/devtools-frontend/src/front_end/third_party/lighthouse" ;ASL2.0
 | 
				
			||||||
| 
						 | 
					@ -299,6 +300,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    "third_party/zlib/google" ;BSD-3
 | 
					    "third_party/zlib/google" ;BSD-3
 | 
				
			||||||
    "third_party/zxcvbn-cpp" ;Expat
 | 
					    "third_party/zxcvbn-cpp" ;Expat
 | 
				
			||||||
 | 
					    "tools/grit/third_party/six" ;Expat
 | 
				
			||||||
    "url/third_party/mozilla" ;BSD-3, MPL1.1/GPL2+/LGPL2.1+
 | 
					    "url/third_party/mozilla" ;BSD-3, MPL1.1/GPL2+/LGPL2.1+
 | 
				
			||||||
    "v8/src/third_party/siphash" ;Public domain
 | 
					    "v8/src/third_party/siphash" ;Public domain
 | 
				
			||||||
    "v8/src/third_party/utf8-decoder" ;Expat
 | 
					    "v8/src/third_party/utf8-decoder" ;Expat
 | 
				
			||||||
| 
						 | 
					@ -322,11 +324,11 @@
 | 
				
			||||||
                  (string-append "ungoogled-chromium-" category "-" name))))
 | 
					                  (string-append "ungoogled-chromium-" category "-" name))))
 | 
				
			||||||
    (sha256 (base32 hash))))
 | 
					    (sha256 (base32 hash))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define %chromium-version "91.0.4472.164")
 | 
					(define %chromium-version "92.0.4515.159")
 | 
				
			||||||
(define %debian-revision "debian/90.0.4430.85-1")
 | 
					(define %debian-revision "debian/90.0.4430.85-1")
 | 
				
			||||||
;; Note: use 'git describe --long' even for exact tags to placate the
 | 
					;; Note: use 'git describe --long' even for exact tags to placate the
 | 
				
			||||||
;; custom version format for ungoogled-chromium.
 | 
					;; custom version format for ungoogled-chromium.
 | 
				
			||||||
(define %ungoogled-revision "91.0.4472.114-1-0-ga9eb6fd")
 | 
					(define %ungoogled-revision "92.0.4515.159-1-8-g8164c91")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define %debian-patches
 | 
					(define %debian-patches
 | 
				
			||||||
  (list (debian-patch "fixes/nomerge.patch"
 | 
					  (list (debian-patch "fixes/nomerge.patch"
 | 
				
			||||||
| 
						 | 
					@ -346,7 +348,7 @@
 | 
				
			||||||
    (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
 | 
					    (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
 | 
				
			||||||
    (sha256
 | 
					    (sha256
 | 
				
			||||||
     (base32
 | 
					     (base32
 | 
				
			||||||
      "1xb5g3hybaiwn3y1zw1fxd3g0zwmvplrs06sdqnxzsr1qm8b874h"))))
 | 
					      "0wbcbjzh5ak4nciahqw4yvxc4x8ik4x0iz9h4kfy0m011sxzy174"))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define %guix-patches
 | 
					(define %guix-patches
 | 
				
			||||||
  (list (local-file
 | 
					  (list (local-file
 | 
				
			||||||
| 
						 | 
					@ -401,11 +403,6 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          (format #t "Replacing GN files...~%")
 | 
					          (format #t "Replacing GN files...~%")
 | 
				
			||||||
          (force-output)
 | 
					          (force-output)
 | 
				
			||||||
          ;; XXX: Chromium no longer relies on overriding ICU's UCHAR_TYPE,
 | 
					 | 
				
			||||||
          ;; but the unbundling code was not updated.  Remove for M92.
 | 
					 | 
				
			||||||
          (substitute* "build/linux/unbundle/icu.gn"
 | 
					 | 
				
			||||||
            (("\"UCHAR_TYPE=uint16_t\",")
 | 
					 | 
				
			||||||
             ""))
 | 
					 | 
				
			||||||
          (substitute* "tools/generate_shim_headers/generate_shim_headers.py"
 | 
					          (substitute* "tools/generate_shim_headers/generate_shim_headers.py"
 | 
				
			||||||
            ;; The "is_official_build" configure option enables certain
 | 
					            ;; The "is_official_build" configure option enables certain
 | 
				
			||||||
            ;; release optimizations like those used in the commercial
 | 
					            ;; release optimizations like those used in the commercial
 | 
				
			||||||
| 
						 | 
					@ -417,8 +414,7 @@
 | 
				
			||||||
                  "--system-libraries" "ffmpeg" "flac" "fontconfig"
 | 
					                  "--system-libraries" "ffmpeg" "flac" "fontconfig"
 | 
				
			||||||
                  "freetype" "harfbuzz-ng" "icu" "libdrm" "libevent"
 | 
					                  "freetype" "harfbuzz-ng" "icu" "libdrm" "libevent"
 | 
				
			||||||
                  "libjpeg" "libpng" "libwebp" "libxml" "libxslt"
 | 
					                  "libjpeg" "libpng" "libwebp" "libxml" "libxslt"
 | 
				
			||||||
                  "openh264" "opus" "snappy" "zlib")
 | 
					                  "openh264" "opus" "snappy" "zlib")))))
 | 
				
			||||||
          #t))))
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define opus+custom
 | 
					(define opus+custom
 | 
				
			||||||
  (package/inherit opus
 | 
					  (package/inherit opus
 | 
				
			||||||
| 
						 | 
					@ -488,7 +484,7 @@
 | 
				
			||||||
                                  %chromium-version ".tar.xz"))
 | 
					                                  %chromium-version ".tar.xz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1g96hk72ds2b0aymgw7yjr0akgx7mkp17i99nk511ncnmni6zrc4"))
 | 
					                "04gxgimg5ygzx6nvfws5y9dppdfjg1fhyl8zbykmksbh1myk6zfr"))
 | 
				
			||||||
              (modules '((guix build utils)))
 | 
					              (modules '((guix build utils)))
 | 
				
			||||||
              (snippet (force ungoogled-chromium-snippet))))
 | 
					              (snippet (force ungoogled-chromium-snippet))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
| 
						 | 
					@ -654,9 +650,7 @@
 | 
				
			||||||
               (("third_party/vulkan_headers/include/") ""))
 | 
					               (("third_party/vulkan_headers/include/") ""))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
             (substitute* "third_party/skia/include/gpu/vk/GrVkVulkan.h"
 | 
					             (substitute* "third_party/skia/include/gpu/vk/GrVkVulkan.h"
 | 
				
			||||||
               (("include/third_party/vulkan/") ""))
 | 
					               (("include/third_party/vulkan/") ""))))
 | 
				
			||||||
 | 
					 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
         (add-after 'patch-stuff 'add-absolute-references
 | 
					         (add-after 'patch-stuff 'add-absolute-references
 | 
				
			||||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
					           (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
             (let ((cups (assoc-ref inputs "cups"))
 | 
					             (let ((cups (assoc-ref inputs "cups"))
 | 
				
			||||||
| 
						 | 
					@ -684,8 +678,7 @@
 | 
				
			||||||
                 (("libEGL\\.so\\.1")
 | 
					                 (("libEGL\\.so\\.1")
 | 
				
			||||||
                  (string-append mesa "/lib/libEGL.so.1"))
 | 
					                  (string-append mesa "/lib/libEGL.so.1"))
 | 
				
			||||||
                 (("libGLESv2\\.so\\.2")
 | 
					                 (("libGLESv2\\.so\\.2")
 | 
				
			||||||
                  (string-append mesa "/lib/libGLESv2.so.2")))
 | 
					                  (string-append mesa "/lib/libGLESv2.so.2"))))))
 | 
				
			||||||
               #t)))
 | 
					 | 
				
			||||||
         (add-before 'configure 'prepare-build-environment
 | 
					         (add-before 'configure 'prepare-build-environment
 | 
				
			||||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
					           (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -722,9 +715,7 @@
 | 
				
			||||||
             ;; XXX: How portable is this.
 | 
					             ;; XXX: How portable is this.
 | 
				
			||||||
             (mkdir-p "third_party/node/linux/node-linux-x64")
 | 
					             (mkdir-p "third_party/node/linux/node-linux-x64")
 | 
				
			||||||
             (symlink (string-append (assoc-ref inputs "node") "/bin")
 | 
					             (symlink (string-append (assoc-ref inputs "node") "/bin")
 | 
				
			||||||
                      "third_party/node/linux/node-linux-x64/bin")
 | 
					                      "third_party/node/linux/node-linux-x64/bin")))
 | 
				
			||||||
 | 
					 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
         (replace 'configure
 | 
					         (replace 'configure
 | 
				
			||||||
           (lambda* (#:key configure-flags #:allow-other-keys)
 | 
					           (lambda* (#:key configure-flags #:allow-other-keys)
 | 
				
			||||||
             (let ((args (string-join configure-flags " ")))
 | 
					             (let ((args (string-join configure-flags " ")))
 | 
				
			||||||
| 
						 | 
					@ -752,8 +743,7 @@
 | 
				
			||||||
                       (setrlimit 'nofile 2048 #f))
 | 
					                       (setrlimit 'nofile 2048 #f))
 | 
				
			||||||
                   (format #t
 | 
					                   (format #t
 | 
				
			||||||
                           "increased maximum number of open files from ~d to ~d~%"
 | 
					                           "increased maximum number of open files from ~d to ~d~%"
 | 
				
			||||||
                           soft (if hard (min hard 2048) 2048)))))
 | 
					                           soft (if hard (min hard 2048) 2048)))))))
 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
         (replace 'build
 | 
					         (replace 'build
 | 
				
			||||||
           (lambda* (#:key (parallel-build? #t) #:allow-other-keys)
 | 
					           (lambda* (#:key (parallel-build? #t) #:allow-other-keys)
 | 
				
			||||||
             (invoke "ninja" "-C" "out/Release"
 | 
					             (invoke "ninja" "-C" "out/Release"
 | 
				
			||||||
| 
						 | 
					@ -830,8 +820,7 @@
 | 
				
			||||||
                      (mkdir-p icons)
 | 
					                      (mkdir-p icons)
 | 
				
			||||||
                      (copy-file (string-append "product_logo_" size ".png")
 | 
					                      (copy-file (string-append "product_logo_" size ".png")
 | 
				
			||||||
                                 (string-append icons "/chromium.png"))))
 | 
					                                 (string-append icons "/chromium.png"))))
 | 
				
			||||||
                  '("24" "48" "64" "128" "256")))
 | 
					                  '("24" "48" "64" "128" "256")))))))))
 | 
				
			||||||
               #t))))))
 | 
					 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("bison" ,bison)
 | 
					     `(("bison" ,bison)
 | 
				
			||||||
       ("clang" ,clang-11)
 | 
					       ("clang" ,clang-11)
 | 
				
			||||||
| 
						 | 
					@ -842,13 +831,14 @@
 | 
				
			||||||
       ("node" ,node)
 | 
					       ("node" ,node)
 | 
				
			||||||
       ("pkg-config" ,pkg-config)
 | 
					       ("pkg-config" ,pkg-config)
 | 
				
			||||||
       ("which" ,which)
 | 
					       ("which" ,which)
 | 
				
			||||||
 | 
					 | 
				
			||||||
       ;; This file contains defaults for new user profiles.
 | 
					       ;; This file contains defaults for new user profiles.
 | 
				
			||||||
       ("master-preferences" ,(local-file "aux-files/chromium/master-preferences.json"))
 | 
					       ("master-preferences" ,(local-file "aux-files/chromium/master-preferences.json"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
       ("python-beautifulsoup4" ,python2-beautifulsoup4)
 | 
					       ;; Try unbundling these when upstream has completed its Python 3 transition.
 | 
				
			||||||
       ("python-html5lib" ,python2-html5lib)
 | 
					       ;; ("python-beautifulsoup4" ,python-beautifulsoup4)
 | 
				
			||||||
       ("python" ,python-2)
 | 
					       ;; ("python-html5lib" ,python-html5lib)
 | 
				
			||||||
 | 
					       ("python2" ,python-2)
 | 
				
			||||||
 | 
					       ("python" ,python-wrapper)
 | 
				
			||||||
       ("wayland-scanner" ,wayland)))
 | 
					       ("wayland-scanner" ,wayland)))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("alsa-lib" ,alsa-lib)
 | 
					     `(("alsa-lib" ,alsa-lib)
 | 
				
			||||||
| 
						 | 
					@ -865,7 +855,7 @@
 | 
				
			||||||
       ("glib" ,glib)
 | 
					       ("glib" ,glib)
 | 
				
			||||||
       ("gtk+" ,gtk+)
 | 
					       ("gtk+" ,gtk+)
 | 
				
			||||||
       ("harfbuzz" ,harfbuzz)
 | 
					       ("harfbuzz" ,harfbuzz)
 | 
				
			||||||
       ("icu4c" ,icu4c-69)
 | 
					       ("icu4c" ,icu4c)
 | 
				
			||||||
       ("lcms" ,lcms)
 | 
					       ("lcms" ,lcms)
 | 
				
			||||||
       ("libevent" ,libevent)
 | 
					       ("libevent" ,libevent)
 | 
				
			||||||
       ("libffi" ,libffi)
 | 
					       ("libffi" ,libffi)
 | 
				
			||||||
| 
						 | 
					@ -888,6 +878,9 @@
 | 
				
			||||||
       ("libxscrnsaver" ,libxscrnsaver)
 | 
					       ("libxscrnsaver" ,libxscrnsaver)
 | 
				
			||||||
       ("libxslt" ,libxslt)
 | 
					       ("libxslt" ,libxslt)
 | 
				
			||||||
       ("libxtst" ,libxtst)
 | 
					       ("libxtst" ,libxtst)
 | 
				
			||||||
 | 
					       ;; Newer kernel headers are required for userfaultfd support; remove
 | 
				
			||||||
 | 
					       ;; after 'core-updates' merge.
 | 
				
			||||||
 | 
					       ("linux-libre-headers" ,linux-libre-headers-5.10)
 | 
				
			||||||
       ("mesa" ,mesa)
 | 
					       ("mesa" ,mesa)
 | 
				
			||||||
       ("minizip" ,minizip)
 | 
					       ("minizip" ,minizip)
 | 
				
			||||||
       ("mit-krb5" ,mit-krb5)
 | 
					       ("mit-krb5" ,mit-krb5)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -73,8 +73,8 @@
 | 
				
			||||||
                (file-name (string-append name "-" version "-checkout")))))))
 | 
					                (file-name (string-append name "-" version "-checkout")))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public cuirass
 | 
					(define-public cuirass
 | 
				
			||||||
  (let ((commit "f9a5dbd54eaa7fa8ac173fd5e68209f937840d90")
 | 
					  (let ((commit "60190401ce4ccc890629ec3cb22a84a8ab8c2645")
 | 
				
			||||||
        (revision "1"))
 | 
					        (revision "4"))
 | 
				
			||||||
    (package
 | 
					    (package
 | 
				
			||||||
      (name "cuirass")
 | 
					      (name "cuirass")
 | 
				
			||||||
      (version (git-version "1.1.0" revision commit))
 | 
					      (version (git-version "1.1.0" revision commit))
 | 
				
			||||||
| 
						 | 
					@ -87,7 +87,7 @@
 | 
				
			||||||
         (file-name (git-file-name name version))
 | 
					         (file-name (git-file-name name version))
 | 
				
			||||||
         (sha256
 | 
					         (sha256
 | 
				
			||||||
          (base32
 | 
					          (base32
 | 
				
			||||||
           "0wrx2bf1gdnbkfgmmqr46s1fhvv3568yi7hxb24plf4xx5jq5yg8"))))
 | 
					           "0b0bs32lzk5ck7lw8ac9dj2h70sqc5y430vhi7rcnwj48mdrchma"))))
 | 
				
			||||||
      (build-system gnu-build-system)
 | 
					      (build-system gnu-build-system)
 | 
				
			||||||
      (arguments
 | 
					      (arguments
 | 
				
			||||||
       `(#:modules ((guix build utils)
 | 
					       `(#:modules ((guix build utils)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,6 +11,7 @@
 | 
				
			||||||
;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
					;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
				
			||||||
;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com>
 | 
					;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com>
 | 
				
			||||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 | 
					;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -91,7 +92,7 @@ using the CMake build system.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;; Build phases shared between 'cmake-bootstrap' and the later variants
 | 
					;;; Build phases shared between 'cmake-bootstrap' and the later variants
 | 
				
			||||||
;;; that use cmake-build-system.
 | 
					;;; that use cmake-build-system.
 | 
				
			||||||
(define %common-build-phases
 | 
					(define (%common-build-phases)
 | 
				
			||||||
  `((add-after 'unpack 'split-package
 | 
					  `((add-after 'unpack 'split-package
 | 
				
			||||||
      ;; Remove files that have been packaged in other package recipes.
 | 
					      ;; Remove files that have been packaged in other package recipes.
 | 
				
			||||||
      (lambda _
 | 
					      (lambda _
 | 
				
			||||||
| 
						 | 
					@ -99,6 +100,17 @@ using the CMake build system.")
 | 
				
			||||||
        (substitute* "Auxiliary/CMakeLists.txt"
 | 
					        (substitute* "Auxiliary/CMakeLists.txt"
 | 
				
			||||||
          ((".*cmake-mode.el.*") ""))
 | 
					          ((".*cmake-mode.el.*") ""))
 | 
				
			||||||
        #t))
 | 
					        #t))
 | 
				
			||||||
 | 
					    ,@(if (target-x86-32?)
 | 
				
			||||||
 | 
					          '((add-after 'unpack 'skip-cpack-txz-test
 | 
				
			||||||
 | 
					              (lambda _
 | 
				
			||||||
 | 
					                ;; In 'RunCMake.CPack_TXZ', the 'TXZ/THREADED_ALL' test
 | 
				
			||||||
 | 
					                ;; would occasionally fail on i686 with "Internal error
 | 
				
			||||||
 | 
					                ;; initializing compression library: Cannot allocate
 | 
				
			||||||
 | 
					                ;; memory": <https://issues.guix.gnu.org/50617>.  Skip it.
 | 
				
			||||||
 | 
					                (substitute* "Tests/RunCMake/CPack/RunCMakeTest.cmake"
 | 
				
			||||||
 | 
					                  (("THREADED_ALL \"TXZ;DEB\"")
 | 
				
			||||||
 | 
					                   "THREADED_ALL \"DEB\"")))))
 | 
				
			||||||
 | 
					          '())
 | 
				
			||||||
    (add-before 'configure 'patch-bin-sh
 | 
					    (add-before 'configure 'patch-bin-sh
 | 
				
			||||||
      (lambda _
 | 
					      (lambda _
 | 
				
			||||||
        ;; Replace "/bin/sh" by the right path in... a lot of
 | 
					        ;; Replace "/bin/sh" by the right path in... a lot of
 | 
				
			||||||
| 
						 | 
					@ -187,7 +199,7 @@ using the CMake build system.")
 | 
				
			||||||
           " --exclude-regex ^\\(" (string-join skipped-tests "\\|") "\\)$")))
 | 
					           " --exclude-regex ^\\(" (string-join skipped-tests "\\|") "\\)$")))
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         ,@%common-build-phases
 | 
					         ,@(%common-build-phases)
 | 
				
			||||||
         (add-before 'configure 'set-paths
 | 
					         (add-before 'configure 'set-paths
 | 
				
			||||||
           (lambda _
 | 
					           (lambda _
 | 
				
			||||||
             ;; Help cmake's bootstrap process to find system libraries
 | 
					             ;; Help cmake's bootstrap process to find system libraries
 | 
				
			||||||
| 
						 | 
					@ -294,7 +306,7 @@ and workspaces that can be used in the compiler environment of your choice.")
 | 
				
			||||||
       #:build-type "Release"
 | 
					       #:build-type "Release"
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         ,@%common-build-phases
 | 
					         ,@(%common-build-phases)
 | 
				
			||||||
         (add-after 'install 'delete-help-documentation
 | 
					         (add-after 'install 'delete-help-documentation
 | 
				
			||||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
             (delete-file-recursively
 | 
					             (delete-file-recursively
 | 
				
			||||||
| 
						 | 
					@ -327,6 +339,15 @@ and workspaces that can be used in the compiler environment of your choice.")
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (inherit cmake-minimal)
 | 
					    (inherit cmake-minimal)
 | 
				
			||||||
    (name "cmake")
 | 
					    (name "cmake")
 | 
				
			||||||
 | 
					    (version "3.21.1")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (inherit (package-source cmake-bootstrap))
 | 
				
			||||||
 | 
					              (uri (string-append "https://cmake.org/files/v"
 | 
				
			||||||
 | 
					                                  (version-major+minor version)
 | 
				
			||||||
 | 
					                                  "/cmake-" version ".tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "1m7y9j5lafkrfswsg2vkpx2fz6p6fqpp2pcp2dcz5pylf58r3hzs"))))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     (substitute-keyword-arguments (package-arguments cmake-minimal)
 | 
					     (substitute-keyword-arguments (package-arguments cmake-minimal)
 | 
				
			||||||
       ;; Use cmake-minimal this time.
 | 
					       ;; Use cmake-minimal this time.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
;;; Copyright © 2013, 2015, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 | 
					;;; Copyright © 2013, 2015, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 | 
				
			||||||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 | 
					;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 | 
				
			||||||
;;; Copyright © 2015, 2018 Ricardo Wurmus <rekado@elephly.net>
 | 
					;;; Copyright © 2015, 2018 Ricardo Wurmus <rekado@elephly.net>
 | 
				
			||||||
;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 | 
					;;; Copyright © 2016, 2017, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 | 
				
			||||||
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
					;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
				
			||||||
;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
 | 
					;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
 | 
				
			||||||
;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
 | 
					;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
 | 
				
			||||||
| 
						 | 
					@ -64,6 +64,8 @@
 | 
				
			||||||
  #:use-module (gnu packages perl-compression)
 | 
					  #:use-module (gnu packages perl-compression)
 | 
				
			||||||
  #:use-module (gnu packages pkg-config)
 | 
					  #:use-module (gnu packages pkg-config)
 | 
				
			||||||
  #:use-module (gnu packages python)
 | 
					  #:use-module (gnu packages python)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages python-xyz)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages serialization)
 | 
				
			||||||
  #:use-module (gnu packages sqlite)
 | 
					  #:use-module (gnu packages sqlite)
 | 
				
			||||||
  #:use-module (gnu packages texinfo)
 | 
					  #:use-module (gnu packages texinfo)
 | 
				
			||||||
  #:use-module (gnu packages web)
 | 
					  #:use-module (gnu packages web)
 | 
				
			||||||
| 
						 | 
					@ -127,26 +129,35 @@ highlighting your own code that seemed comprehensible when you wrote it.")
 | 
				
			||||||
(define-public global                             ; a global variable
 | 
					(define-public global                             ; a global variable
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "global")
 | 
					    (name "global")
 | 
				
			||||||
    (version "6.6.6")
 | 
					    (version "6.6.7")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
             (method url-fetch)
 | 
					             (method url-fetch)
 | 
				
			||||||
             (uri (string-append "mirror://gnu/global/global-"
 | 
					             (uri (string-append "mirror://gnu/global/global-"
 | 
				
			||||||
                                 version ".tar.gz"))
 | 
					                                 version ".tar.gz"))
 | 
				
			||||||
             (sha256
 | 
					             (sha256
 | 
				
			||||||
              (base32
 | 
					              (base32
 | 
				
			||||||
               "0pad5p31rdspyrzqky3ppgx7f6gdlfnwg1c7qm8w1m4qzyppi03m"))))
 | 
					               "0g4aslm2zajq605py11s4rs1wdnzcqhkh7bc2xl5az42adzzg839"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (inputs `(("coreutils" ,coreutils)
 | 
					    (inputs
 | 
				
			||||||
              ("ncurses" ,ncurses)
 | 
					      `(("bash" ,bash-minimal)                    ; for wrap-program
 | 
				
			||||||
 | 
					        ("coreutils" ,coreutils)
 | 
				
			||||||
 | 
					        ("ctags" ,universal-ctags)
 | 
				
			||||||
        ("libltdl" ,libltdl)
 | 
					        ("libltdl" ,libltdl)
 | 
				
			||||||
              ("sqlite" ,sqlite)
 | 
					        ("ncurses" ,ncurses)
 | 
				
			||||||
              ("python-wrapper" ,python-wrapper)))
 | 
					        ("python-pygments" ,python-pygments)
 | 
				
			||||||
 | 
					        ("python-wrapper" ,python-wrapper)
 | 
				
			||||||
 | 
					        ("sqlite" ,sqlite)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:configure-flags
 | 
					     `(#:configure-flags
 | 
				
			||||||
       (list (string-append "--with-ncurses="
 | 
					       (list (string-append "--with-ncurses="
 | 
				
			||||||
                            (assoc-ref %build-inputs "ncurses"))
 | 
					                            (assoc-ref %build-inputs "ncurses"))
 | 
				
			||||||
             (string-append "--with-sqlite3="
 | 
					             (string-append "--with-sqlite3="
 | 
				
			||||||
                            (assoc-ref %build-inputs "sqlite"))
 | 
					                            (assoc-ref %build-inputs "sqlite"))
 | 
				
			||||||
 | 
					             (string-append "--with-universal-ctags="
 | 
				
			||||||
 | 
					                            (assoc-ref %build-inputs "ctags") "/bin/ctags")
 | 
				
			||||||
 | 
					             (string-append "--sysconfdir="
 | 
				
			||||||
 | 
					                            (assoc-ref %outputs "out") "/share/gtags")
 | 
				
			||||||
 | 
					             "--localstatedir=/var"         ; This needs to be a writable location.
 | 
				
			||||||
             "--disable-static")
 | 
					             "--disable-static")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
| 
						 | 
					@ -157,13 +168,29 @@ highlighting your own code that seemed comprehensible when you wrote it.")
 | 
				
			||||||
                           (assoc-ref inputs "coreutils") "/bin/echo")))
 | 
					                           (assoc-ref inputs "coreutils") "/bin/echo")))
 | 
				
			||||||
               (substitute* "globash/globash.in"
 | 
					               (substitute* "globash/globash.in"
 | 
				
			||||||
                 (("/bin/echo") echo)))))
 | 
					                 (("/bin/echo") echo)))))
 | 
				
			||||||
 | 
					         (add-after 'post-install 'install-plugins
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             (with-directory-excursion "plugin-factory"
 | 
				
			||||||
 | 
					               (invoke "make" "install"))))
 | 
				
			||||||
 | 
					         (add-before 'install 'dont-install-to-/var
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             (substitute* "gozilla/Makefile"
 | 
				
			||||||
 | 
					               (("DESTDIR\\)\\$\\{localstatedir\\}") "TMPDIR)"))))
 | 
				
			||||||
 | 
					         (add-after 'install-plugins 'wrap-program
 | 
				
			||||||
 | 
					           (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             (wrap-program
 | 
				
			||||||
 | 
					               (string-append (assoc-ref outputs "out")
 | 
				
			||||||
 | 
					                              "/share/gtags/script/pygments_parser.py")
 | 
				
			||||||
 | 
					               `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))))))
 | 
				
			||||||
        (add-after 'install 'post-install
 | 
					        (add-after 'install 'post-install
 | 
				
			||||||
          (lambda* (#:key outputs #:allow-other-keys)
 | 
					          (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
            ;; Install the plugin files in the right place.
 | 
					            ;; Install the plugin files in the right place.
 | 
				
			||||||
            (let* ((out  (assoc-ref outputs "out"))
 | 
					            (let* ((out  (assoc-ref outputs "out"))
 | 
				
			||||||
                   (data (string-append out "/share/gtags"))
 | 
					                   (data (string-append out "/share/gtags"))
 | 
				
			||||||
                   (vim  (string-append out "/share/vim/vimfiles/plugin"))
 | 
					                   (vim  (string-append out "/share/vim/vimfiles/plugin"))
 | 
				
			||||||
                   (lisp (string-append out "/share/emacs/site-lisp")))
 | 
					                   (lisp (string-append out "/share/emacs/site-lisp/"
 | 
				
			||||||
 | 
					                                        ,(package-name this-package) "-"
 | 
				
			||||||
 | 
					                                        ,(package-version this-package))))
 | 
				
			||||||
              (mkdir-p lisp)
 | 
					              (mkdir-p lisp)
 | 
				
			||||||
              (mkdir-p vim)
 | 
					              (mkdir-p vim)
 | 
				
			||||||
              (rename-file (string-append data "/gtags.el")
 | 
					              (rename-file (string-append data "/gtags.el")
 | 
				
			||||||
| 
						 | 
					@ -307,6 +334,10 @@ cloc can handle a greater variety of programming languages.")
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0w1icjqd8hd45rn1y6nbfznk1a6ip54whwbfbhxp7ws2hn3ilqnr"))))
 | 
					                "0w1icjqd8hd45rn1y6nbfznk1a6ip54whwbfbhxp7ws2hn3ilqnr"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     ;; Required since GCC 10, see:
 | 
				
			||||||
 | 
					     ;; https://gcc.gnu.org/gcc-10/porting_to.html.
 | 
				
			||||||
 | 
					     `(#:configure-flags (list "CFLAGS=-fcommon")))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("pkg-config" ,pkg-config)))
 | 
					     `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1733,38 +1733,28 @@ ac_cv_c_float_format='IEEE (little-endian)'
 | 
				
			||||||
              "gawk" "grep" "guile" "make" "sed" "tar"))))
 | 
					              "gawk" "grep" "guile" "make" "sed" "tar"))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define gmp-boot
 | 
					(define gmp-boot
 | 
				
			||||||
  (package
 | 
					  (let ((version "4.3.2"))
 | 
				
			||||||
    (inherit gmp)
 | 
					    (origin
 | 
				
			||||||
    (version "4.3.2")
 | 
					 | 
				
			||||||
    (source (origin
 | 
					 | 
				
			||||||
      (method url-fetch)
 | 
					      (method url-fetch)
 | 
				
			||||||
              (uri (string-append "mirror://gnu/gmp/gmp-" version
 | 
					      (uri (string-append "mirror://gnu/gmp/gmp-" version ".tar.gz"))
 | 
				
			||||||
                                  ".tar.gz"))
 | 
					      (sha256
 | 
				
			||||||
              (sha256 (base32
 | 
					       (base32 "15rwq54fi3s11izas6g985y9jklm3xprfsmym3v1g6xr84bavqvv")))))
 | 
				
			||||||
                       "15rwq54fi3s11izas6g985y9jklm3xprfsmym3v1g6xr84bavqvv"))))))
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define mpfr-boot
 | 
					(define mpfr-boot
 | 
				
			||||||
  (package
 | 
					  (let ((version "2.4.2"))
 | 
				
			||||||
    (inherit mpfr)
 | 
					    (origin
 | 
				
			||||||
    (version "2.4.2")
 | 
					 | 
				
			||||||
    (source (origin
 | 
					 | 
				
			||||||
      (method url-fetch)
 | 
					      (method url-fetch)
 | 
				
			||||||
              (uri (string-append "mirror://gnu/mpfr/mpfr-" version
 | 
					      (uri (string-append "mirror://gnu/mpfr/mpfr-" version ".tar.gz"))
 | 
				
			||||||
                                  ".tar.gz"))
 | 
					      (sha256
 | 
				
			||||||
              (sha256 (base32
 | 
					       (base32 "0dxn4904dra50xa22hi047lj8kkpr41d6vb9sd4grca880c7wv94")))))
 | 
				
			||||||
                       "0dxn4904dra50xa22hi047lj8kkpr41d6vb9sd4grca880c7wv94"))))))
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define mpc-boot
 | 
					(define mpc-boot
 | 
				
			||||||
  (package
 | 
					  (let ((version "1.0.3"))
 | 
				
			||||||
    (inherit mpc)
 | 
					    (origin
 | 
				
			||||||
    (version "1.0.3")
 | 
					 | 
				
			||||||
    (source (origin
 | 
					 | 
				
			||||||
      (method url-fetch)
 | 
					      (method url-fetch)
 | 
				
			||||||
              (uri (string-append
 | 
					      (uri (string-append "mirror://gnu/mpc/mpc-" version ".tar.gz"))
 | 
				
			||||||
                    "mirror://gnu/mpc/mpc-" version ".tar.gz"))
 | 
					 | 
				
			||||||
      (sha256
 | 
					      (sha256
 | 
				
			||||||
               (base32
 | 
					       (base32 "1hzci2zrrd7v3g1jk35qindq05hbl0bhjcyyisq9z209xb3fqzb1")))))
 | 
				
			||||||
                "1hzci2zrrd7v3g1jk35qindq05hbl0bhjcyyisq9z209xb3fqzb1"))))))
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define gcc-core-mesboot1
 | 
					(define gcc-core-mesboot1
 | 
				
			||||||
  ;; GCC 4.6.4 is the latest modular distribution.  This package is not
 | 
					  ;; GCC 4.6.4 is the latest modular distribution.  This package is not
 | 
				
			||||||
| 
						 | 
					@ -1782,9 +1772,9 @@ ac_cv_c_float_format='IEEE (little-endian)'
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "173kdb188qg79pcz073cj9967rs2vzanyjdjyxy9v0xb0p5sad75"))))
 | 
					                "173kdb188qg79pcz073cj9967rs2vzanyjdjyxy9v0xb0p5sad75"))))
 | 
				
			||||||
    (inputs `(("gmp-source" ,(package-source gmp-boot))
 | 
					    (inputs `(("gmp-source" ,gmp-boot)
 | 
				
			||||||
              ("mpfr-source" ,(package-source mpfr-boot))
 | 
					              ("mpfr-source" ,mpfr-boot)
 | 
				
			||||||
              ("mpc-source" ,(package-source mpc-boot))))
 | 
					              ("mpc-source" ,mpc-boot)))
 | 
				
			||||||
    (native-inputs (%boot-mesboot1-inputs))
 | 
					    (native-inputs (%boot-mesboot1-inputs))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     (list #:implicit-inputs? #f
 | 
					     (list #:implicit-inputs? #f
 | 
				
			||||||
| 
						 | 
					@ -1857,14 +1847,17 @@ ac_cv_c_float_format='IEEE (little-endian)'
 | 
				
			||||||
                               (list gmp mpfr mpc))
 | 
					                               (list gmp mpfr mpc))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                     ;; Create symlinks like `gmp' -> `gmp-x.y.z'.
 | 
					                     ;; Create symlinks like `gmp' -> `gmp-x.y.z'.
 | 
				
			||||||
                     #$@(map (lambda (lib)
 | 
					                     #$@(map (lambda (lib package)
 | 
				
			||||||
                               ;; Drop trailing letters, as gmp-6.0.0a unpacks
 | 
					                               ;; Drop trailing letters, as gmp-6.0.0a unpacks
 | 
				
			||||||
                               ;; into gmp-6.0.0.
 | 
					                               ;; into gmp-6.0.0.
 | 
				
			||||||
                               #~(symlink #$(string-trim-right
 | 
					                               #~(symlink #$(string-trim-right
 | 
				
			||||||
                                             (package-full-name lib "-")
 | 
					                                             (basename
 | 
				
			||||||
 | 
					                                              (origin-actual-file-name lib)
 | 
				
			||||||
 | 
					                                              ".tar.gz")
 | 
				
			||||||
                                             char-set:letter)
 | 
					                                             char-set:letter)
 | 
				
			||||||
                                          #$(package-name lib)))
 | 
					                                          #$package))
 | 
				
			||||||
                             (list gmp-boot mpfr-boot mpc-boot)))))
 | 
					                             (list gmp-boot mpfr-boot mpc-boot)
 | 
				
			||||||
 | 
					                             '("gmp" "mpfr" "mpc")))))
 | 
				
			||||||
               (add-before 'configure 'setenv
 | 
					               (add-before 'configure 'setenv
 | 
				
			||||||
                 (lambda* (#:key outputs #:allow-other-keys)
 | 
					                 (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
                   (let* ((out (assoc-ref outputs "out"))
 | 
					                   (let* ((out (assoc-ref outputs "out"))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,6 +33,7 @@
 | 
				
			||||||
;;; Copyright © 2021 Antoine Côté <antoine.cote@posteo.net>
 | 
					;;; Copyright © 2021 Antoine Côté <antoine.cote@posteo.net>
 | 
				
			||||||
;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
 | 
					;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
 | 
				
			||||||
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
 | 
					;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -1319,7 +1320,10 @@ for most inputs, but the resulting compressed files are anywhere from 20% to
 | 
				
			||||||
                             (find-files  "Utils/file_Codecs_Rar_so.py")))
 | 
					                             (find-files  "Utils/file_Codecs_Rar_so.py")))
 | 
				
			||||||
                  (delete-file-recursively "CPP/7zip/Archive/Rar")
 | 
					                  (delete-file-recursively "CPP/7zip/Archive/Rar")
 | 
				
			||||||
                  (delete-file-recursively "CPP/7zip/Compress/Rar")
 | 
					                  (delete-file-recursively "CPP/7zip/Compress/Rar")
 | 
				
			||||||
                  #t))
 | 
					                  ;; Fix FTBFS with gcc-10.
 | 
				
			||||||
 | 
					                  (substitute* "CPP/Windows/ErrorMsg.cpp"
 | 
				
			||||||
 | 
					                    (("switch\\(errorCode\\) \\{")
 | 
				
			||||||
 | 
					                     "switch(static_cast<HRESULT>(errorCode)) {"))))
 | 
				
			||||||
              (patches (search-patches "p7zip-CVE-2016-9296.patch"
 | 
					              (patches (search-patches "p7zip-CVE-2016-9296.patch"
 | 
				
			||||||
                                       "p7zip-CVE-2017-17969.patch"
 | 
					                                       "p7zip-CVE-2017-17969.patch"
 | 
				
			||||||
                                       "p7zip-remove-unused-code.patch"))))
 | 
					                                       "p7zip-remove-unused-code.patch"))))
 | 
				
			||||||
| 
						 | 
					@ -1330,31 +1334,27 @@ for most inputs, but the resulting compressed files are anywhere from 20% to
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (replace 'configure
 | 
					         (replace 'configure
 | 
				
			||||||
           (lambda* (#:key system outputs #:allow-other-keys)
 | 
					           (lambda _
 | 
				
			||||||
             (invoke "cp"
 | 
					             (copy-file
 | 
				
			||||||
                     (let ((system ,(or (%current-target-system)
 | 
					               ,(cond ((target-x86-64?)
 | 
				
			||||||
                                        (%current-system))))
 | 
					 | 
				
			||||||
                       (cond
 | 
					 | 
				
			||||||
                        ((string-prefix? "x86_64" system)
 | 
					 | 
				
			||||||
                       "makefile.linux_amd64_asm")
 | 
					                       "makefile.linux_amd64_asm")
 | 
				
			||||||
                        ((string-prefix? "i686" system)
 | 
					                      ((target-x86-32?)
 | 
				
			||||||
                       "makefile.linux_x86_asm_gcc_4.X")
 | 
					                       "makefile.linux_x86_asm_gcc_4.X")
 | 
				
			||||||
                      (else
 | 
					                      (else
 | 
				
			||||||
                         "makefile.linux_any_cpu_gcc_4.X")))
 | 
					                        "makefile.linux_any_cpu_gcc_4.X"))
 | 
				
			||||||
               "makefile.machine")))
 | 
					               "makefile.machine")))
 | 
				
			||||||
         (replace 'check
 | 
					         (replace 'check
 | 
				
			||||||
           (lambda _
 | 
					           (lambda* (#:key tests? #:allow-other-keys)
 | 
				
			||||||
 | 
					             (when tests?
 | 
				
			||||||
               (invoke "make" "test")
 | 
					               (invoke "make" "test")
 | 
				
			||||||
               (invoke "make" "test_7z")
 | 
					               (invoke "make" "test_7z")
 | 
				
			||||||
             (invoke "make" "test_7zr"))))))
 | 
					               (invoke "make" "test_7zr")))))))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     (let ((system (or (%current-target-system)
 | 
					      (cond ((target-x86-64?)
 | 
				
			||||||
                       (%current-system))))
 | 
					             (list yasm))
 | 
				
			||||||
       `(,@(cond ((string-prefix? "x86_64" system)
 | 
					            ((target-x86-32?)
 | 
				
			||||||
                  `(("yasm" ,yasm)))
 | 
					             (list nasm))
 | 
				
			||||||
                 ((string-prefix? "i686" system)
 | 
					            (else '())))
 | 
				
			||||||
                  `(("nasm" ,nasm)))
 | 
					 | 
				
			||||||
                 (else '())))))
 | 
					 | 
				
			||||||
    (home-page "http://p7zip.sourceforge.net/")
 | 
					    (home-page "http://p7zip.sourceforge.net/")
 | 
				
			||||||
    (synopsis "Command-line file archiver with high compression ratio")
 | 
					    (synopsis "Command-line file archiver with high compression ratio")
 | 
				
			||||||
    (description "p7zip is a command-line port of 7-Zip, a file archiver that
 | 
					    (description "p7zip is a command-line port of 7-Zip, a file archiver that
 | 
				
			||||||
| 
						 | 
					@ -2277,6 +2277,58 @@ reading from and writing to ZIP archives. ")
 | 
				
			||||||
    ;; distributed under zlib terms.
 | 
					    ;; distributed under zlib terms.
 | 
				
			||||||
    (license (list license:lgpl2.1+ license:zlib))))
 | 
					    (license (list license:lgpl2.1+ license:zlib))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public zchunk
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "zchunk")
 | 
				
			||||||
 | 
					    (version "1.1.16")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method git-fetch)
 | 
				
			||||||
 | 
					              (uri (git-reference
 | 
				
			||||||
 | 
					                    (url "https://github.com/zchunk/zchunk")
 | 
				
			||||||
 | 
					                    (commit version)))
 | 
				
			||||||
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "0nlzwnv6wh2yjyyv27f81jnvmk7psgpbnw7dsdp7frfkya569hgv"))))
 | 
				
			||||||
 | 
					    (build-system meson-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:phases (modify-phases %standard-phases
 | 
				
			||||||
 | 
					                  (add-after 'unpack 'patch-paths
 | 
				
			||||||
 | 
					                    (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
 | 
					                      (substitute* "src/zck_gen_zdict.c"
 | 
				
			||||||
 | 
					                        (("/usr/bin/zstd")
 | 
				
			||||||
 | 
					                         (string-append (assoc-ref inputs "zstd")
 | 
				
			||||||
 | 
					                                        "/bin/zstd"))))))))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("curl" ,curl)
 | 
				
			||||||
 | 
					       ("zstd" ,zstd)))
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("zstd:lib" ,zstd "lib")))       ;in Requires.private of zck.pc
 | 
				
			||||||
 | 
					    (home-page "https://github.com/zchunk/zchunk")
 | 
				
			||||||
 | 
					    (synopsis "Compressed file format for efficient deltas")
 | 
				
			||||||
 | 
					    (description "The zchunk compressed file format allows splitting a file
 | 
				
			||||||
 | 
					into independent chunks.  This makes it possible to retrieve only changed
 | 
				
			||||||
 | 
					chunks when downloading a new version of the file, and also makes zchunk files
 | 
				
			||||||
 | 
					efficient over rsync.  Along with the library, this package provides the
 | 
				
			||||||
 | 
					following utilities:
 | 
				
			||||||
 | 
					@table @command
 | 
				
			||||||
 | 
					@item unzck
 | 
				
			||||||
 | 
					To decompress a zchunk file.
 | 
				
			||||||
 | 
					@item zck
 | 
				
			||||||
 | 
					To compress a new zchunk file, or re-compress an existing one.
 | 
				
			||||||
 | 
					@item zck_delta_size
 | 
				
			||||||
 | 
					To calculate the difference between two zchunk files.
 | 
				
			||||||
 | 
					@item zck_gen_zdict
 | 
				
			||||||
 | 
					To create a dictionary for a zchunk file.
 | 
				
			||||||
 | 
					@item zck_read_header
 | 
				
			||||||
 | 
					To read a zchunk header.
 | 
				
			||||||
 | 
					@item zckdl
 | 
				
			||||||
 | 
					To download a zchunk file.
 | 
				
			||||||
 | 
					@end table")
 | 
				
			||||||
 | 
					    (license license:bsd-2)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public zutils
 | 
					(define-public zutils
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "zutils")
 | 
					    (name "zutils")
 | 
				
			||||||
| 
						 | 
					@ -2529,6 +2581,42 @@ with their error correction data losslessly rearranged for better compression,
 | 
				
			||||||
to their original, binary CD format.")
 | 
					to their original, binary CD format.")
 | 
				
			||||||
    (license license:gpl3+)))
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public libdeflate
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "libdeflate")
 | 
				
			||||||
 | 
					    (version "1.8")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method git-fetch)
 | 
				
			||||||
 | 
					              (uri (git-reference
 | 
				
			||||||
 | 
					                    (url "https://github.com/ebiggers/libdeflate")
 | 
				
			||||||
 | 
					                    (commit (string-append "v" version))))
 | 
				
			||||||
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "0nw1zhr2s6ffcc3s0n5wsshvjb6pmybwapagli135zzn2fx1pdiz"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:make-flags
 | 
				
			||||||
 | 
					       (list (string-append "CC=" ,(cc-for-target))
 | 
				
			||||||
 | 
					             (string-append "PREFIX=" (assoc-ref %outputs "out")))
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (delete 'configure))))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("zlib" ,zlib)))
 | 
				
			||||||
 | 
					    (home-page "https://github.com/ebiggers/libdeflate")
 | 
				
			||||||
 | 
					    (synopsis "Library for DEFLATE/zlib/gzip compression and decompression")
 | 
				
			||||||
 | 
					    (description "Libdeflate is a library for fast, whole-buffer DEFLATE-based
 | 
				
			||||||
 | 
					compression and decompression.  The supported formats are:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@enumerate
 | 
				
			||||||
 | 
					@item DEFLATE (raw)
 | 
				
			||||||
 | 
					@item zlib (a.k.a. DEFLATE with a zlib wrapper)
 | 
				
			||||||
 | 
					@item gzip (a.k.a. DEFLATE with a gzip wrapper)
 | 
				
			||||||
 | 
					@end enumerate
 | 
				
			||||||
 | 
					")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public tarlz
 | 
					(define-public tarlz
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "tarlz")
 | 
					    (name "tarlz")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
 | 
					;;; Copyright © 2018-2021 Julien Lepiller <julien@lepiller.eu>
 | 
				
			||||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
					;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
				
			||||||
;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl>
 | 
					;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl>
 | 
				
			||||||
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 | 
					;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 | 
				
			||||||
| 
						 | 
					@ -38,6 +38,7 @@
 | 
				
			||||||
  #:use-module (gnu packages python)
 | 
					  #:use-module (gnu packages python)
 | 
				
			||||||
  #:use-module (gnu packages rsync)
 | 
					  #:use-module (gnu packages rsync)
 | 
				
			||||||
  #:use-module (gnu packages texinfo)
 | 
					  #:use-module (gnu packages texinfo)
 | 
				
			||||||
 | 
					  #:use-module (guix build-system dune)
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
  #:use-module (guix build-system ocaml)
 | 
					  #:use-module (guix build-system ocaml)
 | 
				
			||||||
  #:use-module (guix download)
 | 
					  #:use-module (guix download)
 | 
				
			||||||
| 
						 | 
					@ -50,7 +51,7 @@
 | 
				
			||||||
(define-public coq
 | 
					(define-public coq
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "coq")
 | 
					    (name "coq")
 | 
				
			||||||
    (version "8.11.2")
 | 
					    (version "8.13.2")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -60,78 +61,24 @@
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "1gia82dkmzqspw2w3s4gjyh39ghbmw4i41i4hyzc91g7mza17nbz"))))
 | 
					         "15r0cm3p9dlsxbg0lf05njjp1xi1y74vxvq6drxjykax67x95l8a"))))
 | 
				
			||||||
    (native-search-paths
 | 
					    (native-search-paths
 | 
				
			||||||
     (list (search-path-specification
 | 
					     (list (search-path-specification
 | 
				
			||||||
            (variable "COQPATH")
 | 
					            (variable "COQPATH")
 | 
				
			||||||
            (files (list "lib/coq/user-contrib")))))
 | 
					            (files (list "lib/coq/user-contrib")))
 | 
				
			||||||
    (build-system ocaml-build-system)
 | 
					           (search-path-specification
 | 
				
			||||||
    (outputs '("out" "ide"))
 | 
					            (variable "COQLIB")
 | 
				
			||||||
 | 
					            (files (list "lib/ocaml/site-lib/coq"))
 | 
				
			||||||
 | 
					            (separator #f))))
 | 
				
			||||||
 | 
					    (build-system dune-build-system)
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("lablgtk" ,lablgtk3)
 | 
					     `(("gmp" ,gmp)
 | 
				
			||||||
       ("python" ,python-2)
 | 
					       ("ocaml-zarith" ,ocaml-zarith)))
 | 
				
			||||||
       ("camlp5" ,camlp5)
 | 
					 | 
				
			||||||
       ("ocaml-num" ,ocaml-num)))
 | 
					 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("ocaml-ounit" ,ocaml-ounit)
 | 
					     `(("which" ,which)))
 | 
				
			||||||
       ("rsync" ,rsync)
 | 
					 | 
				
			||||||
       ("which" ,which)))
 | 
					 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:package "coq"
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       #:test-target "test-suite"))
 | 
				
			||||||
         (add-after 'unpack 'make-git-checkout-writable
 | 
					 | 
				
			||||||
           (lambda _
 | 
					 | 
				
			||||||
             (for-each make-file-writable (find-files "."))
 | 
					 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
         (replace 'configure
 | 
					 | 
				
			||||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
					 | 
				
			||||||
             (let* ((out (assoc-ref outputs "out"))
 | 
					 | 
				
			||||||
                    (mandir (string-append out "/share/man"))
 | 
					 | 
				
			||||||
                    (browser "icecat -remote \"OpenURL(%s,new-tab)\""))
 | 
					 | 
				
			||||||
               (invoke "./configure"
 | 
					 | 
				
			||||||
                       "-prefix" out
 | 
					 | 
				
			||||||
                       "-mandir" mandir
 | 
					 | 
				
			||||||
                       "-browser" browser
 | 
					 | 
				
			||||||
                       "-coqide" "opt"))))
 | 
					 | 
				
			||||||
         (replace 'build
 | 
					 | 
				
			||||||
           (lambda _
 | 
					 | 
				
			||||||
             (invoke "make"
 | 
					 | 
				
			||||||
                     "-j" (number->string (parallel-job-count))
 | 
					 | 
				
			||||||
                     "world")))
 | 
					 | 
				
			||||||
         (delete 'check)
 | 
					 | 
				
			||||||
         (add-after 'install 'remove-duplicate
 | 
					 | 
				
			||||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
					 | 
				
			||||||
             (let* ((out (assoc-ref outputs "out"))
 | 
					 | 
				
			||||||
                    (bin (string-append out "/bin"))
 | 
					 | 
				
			||||||
                    (coqtop (string-append bin "/coqtop"))
 | 
					 | 
				
			||||||
                    (coqidetop (string-append bin "/coqidetop"))
 | 
					 | 
				
			||||||
                    (coqtop.opt (string-append coqtop ".opt"))
 | 
					 | 
				
			||||||
                    (coqidetop.opt (string-append coqidetop ".opt")))
 | 
					 | 
				
			||||||
               ;; These files are exact copies without `.opt` extension.
 | 
					 | 
				
			||||||
               ;; Removing these saves 35 MiB in the resulting package.
 | 
					 | 
				
			||||||
               ;; Unfortunately, completely deleting them breaks coqide.
 | 
					 | 
				
			||||||
               (delete-file coqtop.opt)
 | 
					 | 
				
			||||||
               (delete-file coqidetop.opt)
 | 
					 | 
				
			||||||
               (symlink coqtop coqtop.opt)
 | 
					 | 
				
			||||||
               (symlink coqidetop coqidetop.opt))
 | 
					 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
         (add-after 'install 'install-ide
 | 
					 | 
				
			||||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
					 | 
				
			||||||
             (let ((out (assoc-ref outputs "out"))
 | 
					 | 
				
			||||||
                   (ide (assoc-ref outputs "ide")))
 | 
					 | 
				
			||||||
               (mkdir-p (string-append ide "/bin"))
 | 
					 | 
				
			||||||
               (rename-file (string-append out "/bin/coqide")
 | 
					 | 
				
			||||||
                            (string-append ide "/bin/coqide")))
 | 
					 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
         (add-after 'install 'check
 | 
					 | 
				
			||||||
           (lambda _
 | 
					 | 
				
			||||||
             (with-directory-excursion "test-suite"
 | 
					 | 
				
			||||||
               ;; These two tests fail.
 | 
					 | 
				
			||||||
               ;; Fails because the output is not formatted as expected.
 | 
					 | 
				
			||||||
               (delete-file-recursively "coq-makefile/timing")
 | 
					 | 
				
			||||||
               ;; Fails because we didn't build coqtop.byte.
 | 
					 | 
				
			||||||
               (delete-file "misc/printers.sh")
 | 
					 | 
				
			||||||
               (invoke "make")))))))
 | 
					 | 
				
			||||||
    (home-page "https://coq.inria.fr")
 | 
					    (home-page "https://coq.inria.fr")
 | 
				
			||||||
    (synopsis "Proof assistant for higher-order logic")
 | 
					    (synopsis "Proof assistant for higher-order logic")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
| 
						 | 
					@ -142,6 +89,31 @@ It is developed using Objective Caml and Camlp5.")
 | 
				
			||||||
    ;; Some of the documentation is distributed under opl1.0+.
 | 
					    ;; Some of the documentation is distributed under opl1.0+.
 | 
				
			||||||
    (license (list license:lgpl2.1 license:opl1.0+))))
 | 
					    (license (list license:lgpl2.1 license:opl1.0+))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public coq-ide-server
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (inherit coq)
 | 
				
			||||||
 | 
					    (name "coq-ide-server")
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:tests? #f
 | 
				
			||||||
 | 
					       #:package "coqide-server"))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("coq" ,coq)
 | 
				
			||||||
 | 
					       ("gmp" ,gmp)
 | 
				
			||||||
 | 
					       ("ocaml-zarith" ,ocaml-zarith)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public coq-ide
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (inherit coq)
 | 
				
			||||||
 | 
					    (name "coq-ide")
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:tests? #f
 | 
				
			||||||
 | 
					       #:package "coqide"))
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("coq" ,coq)
 | 
				
			||||||
 | 
					       ("coq-ide-server" ,coq-ide-server)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("lablgtk3" ,lablgtk3)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public proof-general
 | 
					(define-public proof-general
 | 
				
			||||||
  ;; The latest release is from 2016 and there has been more than 450 commits
 | 
					  ;; The latest release is from 2016 and there has been more than 450 commits
 | 
				
			||||||
  ;; since then.
 | 
					  ;; since then.
 | 
				
			||||||
| 
						 | 
					@ -274,7 +246,7 @@ inside Coq.")
 | 
				
			||||||
(define-public coq-gappa
 | 
					(define-public coq-gappa
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "coq-gappa")
 | 
					    (name "coq-gappa")
 | 
				
			||||||
    (version "1.4.4")
 | 
					    (version "1.4.6")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -284,7 +256,7 @@ inside Coq.")
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "0f3g3wjkvfkm961l4jpckhsqd43jnvm7f5qqk78qc32zh1fg339n"))))
 | 
					         "0492i0ksrz6dnc1d57jzsbmdlb9fp9hrh9ib5v8j0yqxpyi0x8f4"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("autoconf" ,autoconf)
 | 
					     `(("autoconf" ,autoconf)
 | 
				
			||||||
| 
						 | 
					@ -298,13 +270,14 @@ inside Coq.")
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("gmp" ,gmp)
 | 
					     `(("gmp" ,gmp)
 | 
				
			||||||
       ("mpfr" ,mpfr)
 | 
					       ("mpfr" ,mpfr)
 | 
				
			||||||
 | 
					       ("ocaml-zarith" ,ocaml-zarith)
 | 
				
			||||||
       ("boost" ,boost)))
 | 
					       ("boost" ,boost)))
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("coq-flocq" ,coq-flocq)))
 | 
					     `(("coq-flocq" ,coq-flocq)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:configure-flags
 | 
					     `(#:configure-flags
 | 
				
			||||||
       (list (string-append "--libdir=" (assoc-ref %outputs "out")
 | 
					       (list (string-append "COQUSERCONTRIB=" (assoc-ref %outputs "out")
 | 
				
			||||||
                            "/lib/coq/user-contrib/Gappa"))
 | 
					                            "/lib/coq/user-contrib"))
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-before 'configure 'fix-remake
 | 
					         (add-before 'configure 'fix-remake
 | 
				
			||||||
| 
						 | 
					@ -334,7 +307,7 @@ assistant.")
 | 
				
			||||||
(define-public coq-mathcomp
 | 
					(define-public coq-mathcomp
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "coq-mathcomp")
 | 
					    (name "coq-mathcomp")
 | 
				
			||||||
    (version "1.11.0")
 | 
					    (version "1.12.0")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -343,7 +316,7 @@ assistant.")
 | 
				
			||||||
             (commit (string-append "mathcomp-" version))))
 | 
					             (commit (string-append "mathcomp-" version))))
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "1axywpa1jcpnidd86irpd1gdbbg2sfbwc652675xisq5wnmfmf6f"))))
 | 
					        (base32 "12cgrmzlcjnp9kv9zxsk34fgf0qfa35jdb23cbf13kmg8dyfi3h5"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("ocaml" ,ocaml)
 | 
					     `(("ocaml" ,ocaml)
 | 
				
			||||||
| 
						 | 
					@ -429,7 +402,7 @@ theorems between the two libraries.")
 | 
				
			||||||
(define-public coq-bignums
 | 
					(define-public coq-bignums
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "coq-bignums")
 | 
					    (name "coq-bignums")
 | 
				
			||||||
    (version "8.11.0")
 | 
					    (version "8.13.0")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method git-fetch)
 | 
					              (method git-fetch)
 | 
				
			||||||
              (uri (git-reference
 | 
					              (uri (git-reference
 | 
				
			||||||
| 
						 | 
					@ -438,13 +411,14 @@ theorems between the two libraries.")
 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1xcd7c7qlvs0narfba6px34zq0mz8rffnhxw0kzhhg6i4iw115dp"))))
 | 
					                "1n66i7hd9222b2ks606mak7m4f0dgy02xgygjskmmav6h7g2sx7y"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("ocaml" ,ocaml)
 | 
					     `(("ocaml" ,ocaml)
 | 
				
			||||||
       ("coq" ,coq)))
 | 
					       ("coq" ,coq)))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("camlp5" ,camlp5)))
 | 
					     `(("camlp5" ,camlp5)
 | 
				
			||||||
 | 
					       ("ocaml-zarith" ,ocaml-zarith)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f ; No test target.
 | 
					     `(#:tests? #f ; No test target.
 | 
				
			||||||
       #:make-flags
 | 
					       #:make-flags
 | 
				
			||||||
| 
						 | 
					@ -462,7 +436,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
 | 
				
			||||||
(define-public coq-interval
 | 
					(define-public coq-interval
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "coq-interval")
 | 
					    (name "coq-interval")
 | 
				
			||||||
    (version "4.0.0")
 | 
					    (version "4.3.0")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -472,7 +446,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "01iz6qmnsm6b9s1vmdjs79vjx9xgwzn5rwyjp6bvs8hg3zlmhpip"))))
 | 
					         "1jqvd17czhliscf40idhnxgrha620039ilrdyfahn71dg2jmzqnm"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("autoconf" ,autoconf)
 | 
					     `(("autoconf" ,autoconf)
 | 
				
			||||||
| 
						 | 
					@ -484,11 +458,12 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
 | 
				
			||||||
     `(("flocq" ,coq-flocq)
 | 
					     `(("flocq" ,coq-flocq)
 | 
				
			||||||
       ("bignums" ,coq-bignums)
 | 
					       ("bignums" ,coq-bignums)
 | 
				
			||||||
       ("coquelicot" ,coq-coquelicot)
 | 
					       ("coquelicot" ,coq-coquelicot)
 | 
				
			||||||
       ("mathcomp" ,coq-mathcomp)))
 | 
					       ("mathcomp" ,coq-mathcomp)
 | 
				
			||||||
 | 
					       ("ocaml-zarith" ,ocaml-zarith)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:configure-flags
 | 
					     `(#:configure-flags
 | 
				
			||||||
       (list (string-append "--libdir=" (assoc-ref %outputs "out")
 | 
					       (list (string-append "COQUSERCONTRIB=" (assoc-ref %outputs "out")
 | 
				
			||||||
                            "/lib/coq/user-contrib/Gappa"))
 | 
					                            "/lib/coq/user-contrib"))
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-before 'configure 'fix-remake
 | 
					         (add-before 'configure 'fix-remake
 | 
				
			||||||
| 
						 | 
					@ -558,21 +533,23 @@ uses Ltac to synthesize the substitution operation.")
 | 
				
			||||||
(define-public coq-equations
 | 
					(define-public coq-equations
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "coq-equations")
 | 
					    (name "coq-equations")
 | 
				
			||||||
    (version "1.2.3")
 | 
					    (version "1.2.4")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method git-fetch)
 | 
					              (method git-fetch)
 | 
				
			||||||
              (uri (git-reference
 | 
					              (uri (git-reference
 | 
				
			||||||
                    (url "https://github.com/mattam82/Coq-Equations")
 | 
					                    (url "https://github.com/mattam82/Coq-Equations")
 | 
				
			||||||
                    (commit (string-append "v" version "-8.11"))))
 | 
					                    (commit (string-append "v" version "-8.13"))))
 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1srxz1rws8jsh7402g2x2vcqgjbbsr64dxxj5d2zs48pmhb20csf"))))
 | 
					                "0i014lshsdflzw6h0qxra9d2f0q82vffxv2f29awbb9ad0p4rq4q"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("ocaml"  ,ocaml)
 | 
					     `(("ocaml"  ,ocaml)
 | 
				
			||||||
       ("coq"    ,coq)
 | 
					       ("coq"    ,coq)
 | 
				
			||||||
       ("camlp5" ,camlp5)))
 | 
					       ("camlp5" ,camlp5)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("ocaml-zarith" ,ocaml-zarith)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:test-target "test-suite"
 | 
					     `(#:test-target "test-suite"
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
| 
						 | 
					@ -598,7 +575,7 @@ kernel.")
 | 
				
			||||||
(define-public coq-stdpp
 | 
					(define-public coq-stdpp
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "coq-stdpp")
 | 
					    (name "coq-stdpp")
 | 
				
			||||||
    (version "1.4.0")
 | 
					    (version "1.5.0")
 | 
				
			||||||
    (synopsis "Alternative Coq standard library std++")
 | 
					    (synopsis "Alternative Coq standard library std++")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method git-fetch)
 | 
					              (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -608,7 +585,7 @@ kernel.")
 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1m6c7ibwc99jd4cv14v3r327spnfvdf3x2mnq51f9rz99rffk68r"))))
 | 
					                "1ym0fy620imah89p8b6rii8clx2vmnwcrbwxl3630h24k42092nf"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("coq" ,coq)))
 | 
					     `(("coq" ,coq)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com>
 | 
					;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com>
 | 
				
			||||||
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
					;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
				
			||||||
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
 | 
					;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
 | 
				
			||||||
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
 | 
					;;; Copyright © 2018, 2021 Ludovic Courtès <ludo@gnu.org>
 | 
				
			||||||
;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 | 
					;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 | 
				
			||||||
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
 | 
					;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
 | 
				
			||||||
;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
 | 
					;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
 | 
				
			||||||
| 
						 | 
					@ -18,7 +18,9 @@
 | 
				
			||||||
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 | 
					;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 | 
				
			||||||
;;; Copyright © 2020 Milkey Mouse <milkeymouse@meme.institute>
 | 
					;;; Copyright © 2020 Milkey Mouse <milkeymouse@meme.institute>
 | 
				
			||||||
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
 | 
					;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -45,6 +47,7 @@
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
  #:use-module (guix build-system python)
 | 
					  #:use-module (guix build-system python)
 | 
				
			||||||
  #:use-module (guix modules)
 | 
					  #:use-module (guix modules)
 | 
				
			||||||
 | 
					  #:use-module (guix gexp)
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
  #:use-module (gnu packages autotools)
 | 
					  #:use-module (gnu packages autotools)
 | 
				
			||||||
  #:use-module (gnu packages boost)
 | 
					  #:use-module (gnu packages boost)
 | 
				
			||||||
| 
						 | 
					@ -65,6 +68,7 @@
 | 
				
			||||||
  #:use-module (gnu packages maths)
 | 
					  #:use-module (gnu packages maths)
 | 
				
			||||||
  #:use-module (gnu packages onc-rpc)
 | 
					  #:use-module (gnu packages onc-rpc)
 | 
				
			||||||
  #:use-module (gnu packages perl)
 | 
					  #:use-module (gnu packages perl)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages python)
 | 
				
			||||||
  #:use-module (gnu packages pkg-config)
 | 
					  #:use-module (gnu packages pkg-config)
 | 
				
			||||||
  #:use-module (gnu packages popt)
 | 
					  #:use-module (gnu packages popt)
 | 
				
			||||||
  #:use-module (gnu packages pretty-print)
 | 
					  #:use-module (gnu packages pretty-print)
 | 
				
			||||||
| 
						 | 
					@ -127,7 +131,8 @@ range-v3 ranges are an abstraction layer on top of iterators.")
 | 
				
			||||||
        (git-file-name name version))
 | 
					        (git-file-name name version))
 | 
				
			||||||
       (patches
 | 
					       (patches
 | 
				
			||||||
        (search-patches
 | 
					        (search-patches
 | 
				
			||||||
         "c++-gsl-find-system-gtest.patch"))
 | 
					         "c++-gsl-find-system-gtest.patch"
 | 
				
			||||||
 | 
					         "c++-gsl-move-array-bounds-tests.patch"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "0gbvr48f03830g3154bjhw92b8ggmg6wwh5xyb8nppk9v6w752l0"))))
 | 
					        (base32 "0gbvr48f03830g3154bjhw92b8ggmg6wwh5xyb8nppk9v6w752l0"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
| 
						 | 
					@ -364,10 +369,8 @@ functions, class methods, and stl containers.
 | 
				
			||||||
             (lambda* (#:key outputs #:allow-other-keys)
 | 
					             (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
               (let* ((out (assoc-ref outputs "out"))
 | 
					               (let* ((out (assoc-ref outputs "out"))
 | 
				
			||||||
                      (inc (string-append out "/include/fifo_map")))
 | 
					                      (inc (string-append out "/include/fifo_map")))
 | 
				
			||||||
                 (with-directory-excursion
 | 
					                 (with-directory-excursion "../source"
 | 
				
			||||||
                     (string-append "../" ,name "-" ,version "-checkout")
 | 
					                   (install-file "src/fifo_map.hpp" inc))))))))
 | 
				
			||||||
                   (install-file "src/fifo_map.hpp" inc)
 | 
					 | 
				
			||||||
                   #t)))))))
 | 
					 | 
				
			||||||
      (synopsis "FIFO-ordered associative container for C++")
 | 
					      (synopsis "FIFO-ordered associative container for C++")
 | 
				
			||||||
      (description "Fifo_map is a C++ header only library for associative
 | 
					      (description "Fifo_map is a C++ header only library for associative
 | 
				
			||||||
container which uses the order in which keys were inserted to the container
 | 
					container which uses the order in which keys were inserted to the container
 | 
				
			||||||
| 
						 | 
					@ -555,6 +558,66 @@ tools:
 | 
				
			||||||
@end itemize\n")
 | 
					@end itemize\n")
 | 
				
			||||||
    (license license:bsd-3)))
 | 
					    (license license:bsd-3)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public cpp-httplib
 | 
				
			||||||
 | 
					  ;; this package is not graftable, as everything is implemented in a single
 | 
				
			||||||
 | 
					  ;; header
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "cpp-httplib")
 | 
				
			||||||
 | 
					    (version "0.8.8")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method git-fetch)
 | 
				
			||||||
 | 
					       (uri (git-reference
 | 
				
			||||||
 | 
					             (url "https://github.com/yhirose/cpp-httplib")
 | 
				
			||||||
 | 
					             (commit (string-append "v" version))))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "0c0gyfbvm34bgrqy9fhfxw1f8nb9zhf063j7xq91k892flb7qm1c"))
 | 
				
			||||||
 | 
					       (file-name (git-file-name name version))))
 | 
				
			||||||
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:configure-flags
 | 
				
			||||||
 | 
					       '("-DBUILD_SHARED_LIBS=ON"
 | 
				
			||||||
 | 
					         "-DHTTPLIB_COMPILE=ON"
 | 
				
			||||||
 | 
					         "-DHTTPLIB_REQUIRE_BROTLI=ON"
 | 
				
			||||||
 | 
					         "-DHTTPLIB_REQUIRE_OPENSSL=ON"
 | 
				
			||||||
 | 
					         "-DHTTPLIB_REQUIRE_ZLIB=ON")
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-after 'unpack 'disable-network-tests
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             (for-each
 | 
				
			||||||
 | 
					              (lambda (test)
 | 
				
			||||||
 | 
					                (substitute* "test/test.cc"
 | 
				
			||||||
 | 
					                  (((string-append "\\(" test))
 | 
				
			||||||
 | 
					                   (string-append "(DISABLED_" test))))
 | 
				
			||||||
 | 
					              ;; There are tests requiring network access, disable them
 | 
				
			||||||
 | 
					              '("AbsoluteRedirectTest" "BaseAuthTest" "CancelTest"
 | 
				
			||||||
 | 
					                "ChunkedEncodingTest" "ChunkedEncodingTest"
 | 
				
			||||||
 | 
					                "DecodeWithChunkedEncoding" "DefaultHeadersTest"
 | 
				
			||||||
 | 
					                "DigestAuthTest" "HttpsToHttpRedirectTest"
 | 
				
			||||||
 | 
					                "RangeTest" "RedirectTest" "RelativeRedirectTest"
 | 
				
			||||||
 | 
					                "SSLClientTest" "SendAPI" "TooManyRedirectTest" "UrlWithSpace"
 | 
				
			||||||
 | 
					                "YahooRedirectTest" "YahooRedirectTest"))))
 | 
				
			||||||
 | 
					         (replace 'check
 | 
				
			||||||
 | 
					           (lambda* (#:key source tests? #:allow-other-keys)
 | 
				
			||||||
 | 
					             ;; openssl genrsa wants to write a file in the git checkout
 | 
				
			||||||
 | 
					             (when tests?
 | 
				
			||||||
 | 
					               (with-directory-excursion "../source/test"
 | 
				
			||||||
 | 
					                 (invoke "make"))))))))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     ;; required to build shared lib
 | 
				
			||||||
 | 
					     `(("python" ,python)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("brotli" ,brotli)
 | 
				
			||||||
 | 
					       ("openssl" ,openssl)
 | 
				
			||||||
 | 
					       ("zlib" ,zlib)))
 | 
				
			||||||
 | 
					    (home-page "https://github.com/yhirose/cpp-httplib")
 | 
				
			||||||
 | 
					    (synopsis "C++ HTTP/HTTPS server and client library")
 | 
				
			||||||
 | 
					    (description "cpp-httplib is a C++11 single-file cross platform blocking
 | 
				
			||||||
 | 
					HTTP/HTTPS library, easy to setup.  It can also be used as a single-header
 | 
				
			||||||
 | 
					library.")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public cpplint
 | 
					(define-public cpplint
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "cpplint")
 | 
					    (name "cpplint")
 | 
				
			||||||
| 
						 | 
					@ -1211,3 +1274,41 @@ of reading and writing XML.")
 | 
				
			||||||
    ;; incompatible with the GPL v2.  Refer to the file named FLOSSE for the
 | 
					    ;; incompatible with the GPL v2.  Refer to the file named FLOSSE for the
 | 
				
			||||||
    ;; details.
 | 
					    ;; details.
 | 
				
			||||||
    (license license:gpl2+)))
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public jsonnet
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "jsonnet")
 | 
				
			||||||
 | 
					    (version "0.17.0")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method git-fetch)
 | 
				
			||||||
 | 
					       (uri (git-reference
 | 
				
			||||||
 | 
					             (url "https://github.com/google/jsonnet")
 | 
				
			||||||
 | 
					             (commit (string-append "v" version))))
 | 
				
			||||||
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "1ddz14699v5lqx3dh0mb7hfffr6fk5zhmzn3z8yxkqqvriqnciim"))
 | 
				
			||||||
 | 
					       (modules '((guix build utils)))
 | 
				
			||||||
 | 
					       (snippet
 | 
				
			||||||
 | 
					        #~(begin
 | 
				
			||||||
 | 
					            (rename-file "third_party/md5" ".md5")
 | 
				
			||||||
 | 
					            (delete-file-recursively "third_party")
 | 
				
			||||||
 | 
					            (delete-file-recursively "doc/third_party")
 | 
				
			||||||
 | 
					            (substitute* '("core/vm.cpp")
 | 
				
			||||||
 | 
					              (("#include \"json.hpp\"") "#include <nlohmann/json.hpp>"))
 | 
				
			||||||
 | 
					            (mkdir "third_party")
 | 
				
			||||||
 | 
					            (rename-file ".md5" "third_party/md5")))))
 | 
				
			||||||
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:configure-flags '("-DUSE_SYSTEM_GTEST=ON" "-DUSE_SYSTEM_JSON=ON"
 | 
				
			||||||
 | 
					                           "-DBUILD_STATIC_LIBS=OFF")))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("googletest" ,googletest)
 | 
				
			||||||
 | 
					       ("pkg-config" ,pkg-config)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("json-modern-cxx" ,json-modern-cxx)))
 | 
				
			||||||
 | 
					    (home-page "https://jsonnet.org/")
 | 
				
			||||||
 | 
					    (synopsis "Data templating language")
 | 
				
			||||||
 | 
					    (description "Jsonnet is a templating language extending JSON
 | 
				
			||||||
 | 
					syntax with variables, conditions, functions and more.")
 | 
				
			||||||
 | 
					    (license license:asl2.0)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
					@ -21,6 +21,7 @@
 | 
				
			||||||
;;; Copyright © 2020 pukkamustard <pukkamustard@posteo.net>
 | 
					;;; Copyright © 2020 pukkamustard <pukkamustard@posteo.net>
 | 
				
			||||||
;;; Copyright © 2021 Ellis Kenyő <me@elken.dev>
 | 
					;;; Copyright © 2021 Ellis Kenyő <me@elken.dev>
 | 
				
			||||||
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 | 
					;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -46,8 +47,10 @@
 | 
				
			||||||
  #:use-module (gnu packages boost)
 | 
					  #:use-module (gnu packages boost)
 | 
				
			||||||
  #:use-module (gnu packages check)
 | 
					  #:use-module (gnu packages check)
 | 
				
			||||||
  #:use-module (gnu packages compression)
 | 
					  #:use-module (gnu packages compression)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages cpp)
 | 
				
			||||||
  #:use-module (gnu packages crates-io)
 | 
					  #:use-module (gnu packages crates-io)
 | 
				
			||||||
  #:use-module (gnu packages cryptsetup)
 | 
					  #:use-module (gnu packages cryptsetup)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages curl)
 | 
				
			||||||
  #:use-module (gnu packages documentation)
 | 
					  #:use-module (gnu packages documentation)
 | 
				
			||||||
  #:use-module (gnu packages gettext)
 | 
					  #:use-module (gnu packages gettext)
 | 
				
			||||||
  #:use-module (gnu packages gnupg)
 | 
					  #:use-module (gnu packages gnupg)
 | 
				
			||||||
| 
						 | 
					@ -58,6 +61,7 @@
 | 
				
			||||||
  #:use-module (gnu packages libbsd)
 | 
					  #:use-module (gnu packages libbsd)
 | 
				
			||||||
  #:use-module (gnu packages libffi)
 | 
					  #:use-module (gnu packages libffi)
 | 
				
			||||||
  #:use-module (gnu packages linux)
 | 
					  #:use-module (gnu packages linux)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages logging)
 | 
				
			||||||
  #:use-module (gnu packages lsof)
 | 
					  #:use-module (gnu packages lsof)
 | 
				
			||||||
  #:use-module (gnu packages man)
 | 
					  #:use-module (gnu packages man)
 | 
				
			||||||
  #:use-module (gnu packages multiprecision)
 | 
					  #:use-module (gnu packages multiprecision)
 | 
				
			||||||
| 
						 | 
					@ -399,63 +403,6 @@ secure operations. ")
 | 
				
			||||||
    (license (list license:lgpl2.1+             ; the files keyutils.*
 | 
					    (license (list license:lgpl2.1+             ; the files keyutils.*
 | 
				
			||||||
                   license:gpl2+))))            ; the rest
 | 
					                   license:gpl2+))))            ; the rest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; There is no release candidate but commits point out a version number,
 | 
					 | 
				
			||||||
;; furthermore no tarball exists.
 | 
					 | 
				
			||||||
(define-public eschalot
 | 
					 | 
				
			||||||
  (let ((commit "0bf31d88a11898c19b1ed25ddd2aff7b35dbac44")
 | 
					 | 
				
			||||||
        (revision "1"))
 | 
					 | 
				
			||||||
    (package
 | 
					 | 
				
			||||||
      (name "eschalot")
 | 
					 | 
				
			||||||
      (version (string-append "1.2.0-" revision "." (string-take commit 7)))
 | 
					 | 
				
			||||||
      (source
 | 
					 | 
				
			||||||
       (origin
 | 
					 | 
				
			||||||
         (method git-fetch)
 | 
					 | 
				
			||||||
         (uri (git-reference
 | 
					 | 
				
			||||||
               (url "https://github.com/schnabear/eschalot")
 | 
					 | 
				
			||||||
               (commit commit)))
 | 
					 | 
				
			||||||
         (file-name (string-append name "-" version))
 | 
					 | 
				
			||||||
         (sha256
 | 
					 | 
				
			||||||
          (base32
 | 
					 | 
				
			||||||
           "0lj38ldh8vzi11wp4ghw4k0fkwp0s04zv8k8d473p1snmbh7mx98"))))
 | 
					 | 
				
			||||||
      (inputs
 | 
					 | 
				
			||||||
       `(("openssl" ,openssl-1.0)))     ; for openssl/{bn,pem,rsa,sha}.h
 | 
					 | 
				
			||||||
      (build-system gnu-build-system)
 | 
					 | 
				
			||||||
      (arguments
 | 
					 | 
				
			||||||
       `(#:make-flags (list (string-append "CC=" ,(cc-for-target))
 | 
					 | 
				
			||||||
                            (string-append "PREFIX=" (assoc-ref %outputs "out"))
 | 
					 | 
				
			||||||
                            (string-append "INSTALL=" "install"))
 | 
					 | 
				
			||||||
         ;; XXX: make test would run a !VERY! long hashing of names with the use
 | 
					 | 
				
			||||||
         ;; of a wordlist, the amount of computing time this would waste on build
 | 
					 | 
				
			||||||
         ;; servers is in no relation to the size or importance of this small
 | 
					 | 
				
			||||||
         ;; application, therefore we run our own tests on eschalot and worgen.
 | 
					 | 
				
			||||||
         #:phases
 | 
					 | 
				
			||||||
         (modify-phases %standard-phases
 | 
					 | 
				
			||||||
           (delete 'configure)
 | 
					 | 
				
			||||||
           (replace 'check
 | 
					 | 
				
			||||||
             (lambda _
 | 
					 | 
				
			||||||
               (invoke "./worgen" "8-12" "top1000.txt" "3-10" "top400nouns.txt"
 | 
					 | 
				
			||||||
                       "3-6" "top150adjectives.txt" "3-6")
 | 
					 | 
				
			||||||
               (invoke "./eschalot" "-r" "^guix|^GuixSystem")
 | 
					 | 
				
			||||||
               (invoke "./eschalot" "-r" "^gnu|^free")
 | 
					 | 
				
			||||||
               (invoke "./eschalot" "-r" "^cyber|^hack")
 | 
					 | 
				
			||||||
               (invoke "./eschalot" "-r" "^troll")))
 | 
					 | 
				
			||||||
           ;; Make install can not create the bin dir, create it.
 | 
					 | 
				
			||||||
           (add-before 'install 'create-bin-dir
 | 
					 | 
				
			||||||
             (lambda* (#:key outputs #:allow-other-keys)
 | 
					 | 
				
			||||||
               (let* ((out (assoc-ref outputs "out"))
 | 
					 | 
				
			||||||
                      (bin (string-append out "/bin")))
 | 
					 | 
				
			||||||
                 (mkdir-p bin)
 | 
					 | 
				
			||||||
                 #t))))))
 | 
					 | 
				
			||||||
      (home-page "https://github.com/schnabear/eschalot")
 | 
					 | 
				
			||||||
      (synopsis "Tor hidden service name generator")
 | 
					 | 
				
			||||||
      (description
 | 
					 | 
				
			||||||
       "Eschalot is a tor hidden service name generator, it allows one to
 | 
					 | 
				
			||||||
produce customized vanity .onion addresses using a brute-force method.  Searches
 | 
					 | 
				
			||||||
for valid names can be run with regular expressions and wordlists.  For the
 | 
					 | 
				
			||||||
generation of wordlists the included tool @code{worgen} can be used.  There is
 | 
					 | 
				
			||||||
no man page, refer to the home page for usage details.")
 | 
					 | 
				
			||||||
      (license (list license:isc license:expat)))))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define-public ssss
 | 
					(define-public ssss
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "ssss")
 | 
					    (name "ssss")
 | 
				
			||||||
| 
						 | 
					@ -1119,7 +1066,7 @@ trivial to build for local use.  Portability is emphasized over performance.")
 | 
				
			||||||
         ("automake" ,automake)
 | 
					         ("automake" ,automake)
 | 
				
			||||||
         ("libtool" ,libtool)))
 | 
					         ("libtool" ,libtool)))
 | 
				
			||||||
      ;; WARNING: This package might need additional configure flags to run properly.
 | 
					      ;; WARNING: This package might need additional configure flags to run properly.
 | 
				
			||||||
      ;; See https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/libsecp256k1.
 | 
					      ;; See https://github.com/archlinux/svntogit-community/blob/packages/libsecp256k1/trunk/PKGBUILD.
 | 
				
			||||||
      (synopsis "C library for EC operations on curve secp256k1")
 | 
					      (synopsis "C library for EC operations on curve secp256k1")
 | 
				
			||||||
      (description
 | 
					      (description
 | 
				
			||||||
       "Optimized C library for EC operations on curve secp256k1.
 | 
					       "Optimized C library for EC operations on curve secp256k1.
 | 
				
			||||||
| 
						 | 
					@ -1443,3 +1390,76 @@ them out.  The process will degrade gracefully, so even people without your
 | 
				
			||||||
encryption password can safely commit changes to the repository's
 | 
					encryption password can safely commit changes to the repository's
 | 
				
			||||||
non-encrypted files.")
 | 
					non-encrypted files.")
 | 
				
			||||||
    (license license:expat)))
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public cryfs
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "cryfs")
 | 
				
			||||||
 | 
					    (version "0.11.0")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append
 | 
				
			||||||
 | 
					             "https://github.com/cryfs/cryfs/releases/download/"
 | 
				
			||||||
 | 
					             version "/cryfs-" version ".tar.xz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "0dxphbj5sssm82rkkdb71algrcki16qlpzlvrjyvvm6b7x7zi0sm"))))
 | 
				
			||||||
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:modules ((guix build cmake-build-system)
 | 
				
			||||||
 | 
					                  (guix build utils)
 | 
				
			||||||
 | 
					                  (srfi srfi-1))
 | 
				
			||||||
 | 
					       #:configure-flags
 | 
				
			||||||
 | 
					        ;; Note: This also disables checking for security issues.
 | 
				
			||||||
 | 
					       `("-DCRYFS_UPDATE_CHECKS=OFF"
 | 
				
			||||||
 | 
					         ;; This helps us use some dependencies from Guix instead of conan.
 | 
				
			||||||
 | 
					         ;; crypto++ is still bundled: https://github.com/cryfs/cryfs/issues/369
 | 
				
			||||||
 | 
					         ;; Googletest is also since I wasn't sure how to unbundle that.
 | 
				
			||||||
 | 
					         ,(string-append "-DDEPENDENCY_CONFIG=" (getcwd)
 | 
				
			||||||
 | 
					                         "/cmake-utils/DependenciesFromLocalSystem.cmake"))
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-before 'configure 'fix-configure
 | 
				
			||||||
 | 
					           (lambda* (#:key tests? #:allow-other-keys)
 | 
				
			||||||
 | 
					             ;; Remove junk directory that breaks the build
 | 
				
			||||||
 | 
					             (chdir "..") (delete-file-recursively ".circleci")
 | 
				
			||||||
 | 
					             ;; Install documentation with Guix defaults.
 | 
				
			||||||
 | 
					             (substitute* "doc/CMakeLists.txt"
 | 
				
			||||||
 | 
					               (("CONFIGURATIONS Release")
 | 
				
			||||||
 | 
					                "CONFIGURATIONS Release RelWithDebInfo"))
 | 
				
			||||||
 | 
					             (when tests?
 | 
				
			||||||
 | 
					               (substitute* "CMakeLists.txt"
 | 
				
			||||||
 | 
					                 (("option.BUILD_TESTING .build test cases. OFF.")
 | 
				
			||||||
 | 
					                  "option(BUILD_TESTING \"build test cases\" ON)")))))
 | 
				
			||||||
 | 
					         (replace 'check
 | 
				
			||||||
 | 
					           (lambda* (#:key tests? #:allow-other-keys)
 | 
				
			||||||
 | 
					             (when tests?
 | 
				
			||||||
 | 
					               (let ((tests (find-files "." "-test$")))
 | 
				
			||||||
 | 
					                 ;; XXX: Disable failing tests. Unfortunately there are a
 | 
				
			||||||
 | 
					                   ;; few. Some only fail in the build environment due to
 | 
				
			||||||
 | 
					                   ;; FUSE not being available.
 | 
				
			||||||
 | 
					                   (for-each invoke
 | 
				
			||||||
 | 
					                             (lset-difference string-contains
 | 
				
			||||||
 | 
					                                              tests
 | 
				
			||||||
 | 
					                                              '("cpp-utils-test"
 | 
				
			||||||
 | 
					                                                "cryfs-cli-test"
 | 
				
			||||||
 | 
					                                                "blobstore-test"
 | 
				
			||||||
 | 
					                                                "fspp-test")))))
 | 
				
			||||||
 | 
					             #t)))))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("python" ,python-wrapper)
 | 
				
			||||||
 | 
					       ("pkg-config" ,pkg-config)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("boost" ,boost)
 | 
				
			||||||
 | 
					       ("curl" ,curl)
 | 
				
			||||||
 | 
					       ("fuse" ,fuse)
 | 
				
			||||||
 | 
					       ("range-v3" ,range-v3)
 | 
				
			||||||
 | 
					       ("spdlog" ,spdlog)))
 | 
				
			||||||
 | 
					    (home-page "https://www.cryfs.org/")
 | 
				
			||||||
 | 
					    (synopsis "Encrypted FUSE filesystem for the cloud")
 | 
				
			||||||
 | 
					    (description "CryFS encrypts your files, so you can safely store them anywhere.
 | 
				
			||||||
 | 
					It works well together with cloud services like Dropbox, iCloud, OneDrive and
 | 
				
			||||||
 | 
					others.  CryFS creates an encrypted userspace filesystem that can be mounted
 | 
				
			||||||
 | 
					via FUSE without root permissions.  It is similar to EncFS, but provides
 | 
				
			||||||
 | 
					additional security and privacy measures such as hiding file sizes and directory
 | 
				
			||||||
 | 
					structure.  However CryFS is not considered stable yet by the developers.")
 | 
				
			||||||
 | 
					    (license license:lgpl3+)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -502,14 +502,14 @@ should only be used as part of the Guix cups-pk-helper service.")
 | 
				
			||||||
(define-public hplip
 | 
					(define-public hplip
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "hplip")
 | 
					    (name "hplip")
 | 
				
			||||||
    (version "3.21.4")
 | 
					    (version "3.21.6")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "mirror://sourceforge/hplip/hplip/" version
 | 
					              (uri (string-append "mirror://sourceforge/hplip/hplip/" version
 | 
				
			||||||
                                  "/hplip-" version ".tar.gz"))
 | 
					                                  "/hplip-" version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1lsa0g8lafnmfyia0vy9x1j9q2l80xjjm7clkrawrbg53y3x7ixx"))
 | 
					                "1jkvbq64pxn5rg25pk13xwn5xr2bn0sa95yvh2q4ys0kv79n0cyc"))
 | 
				
			||||||
              (modules '((guix build utils)))
 | 
					              (modules '((guix build utils)))
 | 
				
			||||||
              (snippet
 | 
					              (snippet
 | 
				
			||||||
               '(begin
 | 
					               '(begin
 | 
				
			||||||
| 
						 | 
					@ -871,7 +871,7 @@ HP@tie{}LaserJet, and possibly other printers.  See @file{README} for details.")
 | 
				
			||||||
(define-public epson-inkjet-printer-escpr
 | 
					(define-public epson-inkjet-printer-escpr
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "epson-inkjet-printer-escpr")
 | 
					    (name "epson-inkjet-printer-escpr")
 | 
				
			||||||
    (version "1.7.12")
 | 
					    (version "1.7.17")
 | 
				
			||||||
    ;; XXX: This currently works.  But it will break as soon as a newer
 | 
					    ;; XXX: This currently works.  But it will break as soon as a newer
 | 
				
			||||||
    ;; version is available since the URLs for older versions are not
 | 
					    ;; version is available since the URLs for older versions are not
 | 
				
			||||||
    ;; preserved.  An alternative source will be added as soon as
 | 
					    ;; preserved.  An alternative source will be added as soon as
 | 
				
			||||||
| 
						 | 
					@ -879,11 +879,11 @@ HP@tie{}LaserJet, and possibly other printers.  See @file{README} for details.")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (string-append "https://download3.ebz.epson.net/dsc/f/03/00/12/87/"
 | 
					       (uri (string-append "https://download3.ebz.epson.net/dsc/f/03/00/12/99/"
 | 
				
			||||||
                           "86/a97f36f9db998e7d0d25fc963568f207073b85ad/"
 | 
					                           "78/73605b3f8aac63694fdabee6bd43389731696cd9/"
 | 
				
			||||||
                           "epson-inkjet-printer-escpr-1.7.12-1lsb3.2.tar.gz"))
 | 
					                           "epson-inkjet-printer-escpr-1.7.17-1lsb3.2.tar.gz"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "11di33dhi8s0qf8dc3gai478ji4jszy4jmi5z5gfdkxmpljdlrq2"))))
 | 
					        (base32 "1d7ckrl5kya98h27mx4pgnaz5sbrsd5vhwc8kva9nfah9wsga4wg"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:modules
 | 
					     `(#:modules
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,6 +12,8 @@
 | 
				
			||||||
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 | 
					;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 | 
				
			||||||
;;; Copyright © 2020 Dale Mellor <guix-devel-0brg6b@rdmp.org>
 | 
					;;; Copyright © 2020 Dale Mellor <guix-devel-0brg6b@rdmp.org>
 | 
				
			||||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 | 
					;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -35,6 +37,7 @@
 | 
				
			||||||
  #:use-module (guix git-download)
 | 
					  #:use-module (guix git-download)
 | 
				
			||||||
  #:use-module (guix utils)
 | 
					  #:use-module (guix utils)
 | 
				
			||||||
  #:use-module (guix build-system cmake)
 | 
					  #:use-module (guix build-system cmake)
 | 
				
			||||||
 | 
					  #:use-module (guix build-system copy)
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
  #:use-module (guix build-system go)
 | 
					  #:use-module (guix build-system go)
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
| 
						 | 
					@ -46,6 +49,7 @@
 | 
				
			||||||
  #:use-module (gnu packages perl)
 | 
					  #:use-module (gnu packages perl)
 | 
				
			||||||
  #:use-module (gnu packages pkg-config)
 | 
					  #:use-module (gnu packages pkg-config)
 | 
				
			||||||
  #:use-module (gnu packages python)
 | 
					  #:use-module (gnu packages python)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages ssh)
 | 
				
			||||||
  #:use-module (gnu packages tls)
 | 
					  #:use-module (gnu packages tls)
 | 
				
			||||||
  #:use-module (gnu packages web)
 | 
					  #:use-module (gnu packages web)
 | 
				
			||||||
  #:use-module (srfi srfi-1))
 | 
					  #:use-module (srfi srfi-1))
 | 
				
			||||||
| 
						 | 
					@ -146,6 +150,17 @@ tunneling, and so on.")
 | 
				
			||||||
(define-public curl-minimal
 | 
					(define-public curl-minimal
 | 
				
			||||||
  (deprecated-package "curl-minimal" curl))
 | 
					  (deprecated-package "curl-minimal" curl))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public curl-ssh
 | 
				
			||||||
 | 
					  (package/inherit curl
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     (substitute-keyword-arguments (package-arguments curl)
 | 
				
			||||||
 | 
					       ((#:configure-flags flags)
 | 
				
			||||||
 | 
					        `(cons "--with-libssh2" ,flags))))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("libssh2" ,libssh2)
 | 
				
			||||||
 | 
					       ,@(package-inputs curl)))
 | 
				
			||||||
 | 
					    (properties `((hidden? . #t)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public kurly
 | 
					(define-public kurly
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "kurly")
 | 
					    (name "kurly")
 | 
				
			||||||
| 
						 | 
					@ -300,3 +315,30 @@ user+password authentication, file transfer resume, http proxy tunneling and
 | 
				
			||||||
more!")
 | 
					more!")
 | 
				
			||||||
    (home-page "http://www.curlpp.org")
 | 
					    (home-page "http://www.curlpp.org")
 | 
				
			||||||
    (license license:expat)))
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public h2c
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "h2c")
 | 
				
			||||||
 | 
					    (version "1.0")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method git-fetch)
 | 
				
			||||||
 | 
					       (uri (git-reference
 | 
				
			||||||
 | 
					             (url "https://github.com/curl/h2c")
 | 
				
			||||||
 | 
					             (commit version)))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "1n8z6avzhg3yb330di2y9zymsps1qp1235p29kidcp4fkmn7fgb2"))
 | 
				
			||||||
 | 
					       (file-name (git-file-name name version))))
 | 
				
			||||||
 | 
					    (build-system copy-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:install-plan
 | 
				
			||||||
 | 
					       '(("./h2c" "bin/"))))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("perl" ,perl)))
 | 
				
			||||||
 | 
					    (home-page "https://curl.se/h2c/")
 | 
				
			||||||
 | 
					    (synopsis "Convert HTTP headers to a curl command line")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Provided a set of HTTP request headers, h2c outputs how to invoke
 | 
				
			||||||
 | 
					curl to obtain exactly that HTTP request.")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,7 +9,7 @@
 | 
				
			||||||
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
 | 
					;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
 | 
				
			||||||
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 | 
					;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 | 
				
			||||||
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
 | 
					;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
 | 
				
			||||||
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
 | 
					;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
 | 
				
			||||||
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 | 
					;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 | 
				
			||||||
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
 | 
					;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
 | 
				
			||||||
;;; Copyright © 2016, 2017, 2018 Roel Janssen <roel@gnu.org>
 | 
					;;; Copyright © 2016, 2017, 2018 Roel Janssen <roel@gnu.org>
 | 
				
			||||||
| 
						 | 
					@ -39,7 +39,7 @@
 | 
				
			||||||
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
 | 
					;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
 | 
				
			||||||
;;; Copyright © 2019, 2021 Guillaume Le Vaillant <glv@posteo.net>
 | 
					;;; Copyright © 2019, 2021 Guillaume Le Vaillant <glv@posteo.net>
 | 
				
			||||||
;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
 | 
					;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
 | 
				
			||||||
;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
 | 
					;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
 | 
				
			||||||
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
 | 
					;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
 | 
				
			||||||
;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org>
 | 
					;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org>
 | 
				
			||||||
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
 | 
					;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
 | 
				
			||||||
| 
						 | 
					@ -52,6 +52,7 @@
 | 
				
			||||||
;;; Copyright © 2021 Pjotr Prins <pjotr.guix@thebird.nl>
 | 
					;;; Copyright © 2021 Pjotr Prins <pjotr.guix@thebird.nl>
 | 
				
			||||||
;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
 | 
					;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
 | 
				
			||||||
;;; Copyright © 2021 Simon Streit <simon@netpanic.org>
 | 
					;;; Copyright © 2021 Simon Streit <simon@netpanic.org>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Alexandre Hannud Abdo <abdo@member.fsf.org>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -88,11 +89,14 @@
 | 
				
			||||||
  #:use-module (gnu packages dbm)
 | 
					  #:use-module (gnu packages dbm)
 | 
				
			||||||
  #:use-module (gnu packages emacs)
 | 
					  #:use-module (gnu packages emacs)
 | 
				
			||||||
  #:use-module (gnu packages flex)
 | 
					  #:use-module (gnu packages flex)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages freedesktop)
 | 
				
			||||||
  #:use-module (gnu packages gcc)
 | 
					  #:use-module (gnu packages gcc)
 | 
				
			||||||
  #:use-module (gnu packages gettext)
 | 
					  #:use-module (gnu packages gettext)
 | 
				
			||||||
  #:use-module (gnu packages glib)
 | 
					  #:use-module (gnu packages glib)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages gnome)
 | 
				
			||||||
  #:use-module (gnu packages gnupg)
 | 
					  #:use-module (gnu packages gnupg)
 | 
				
			||||||
  #:use-module (gnu packages golang)
 | 
					  #:use-module (gnu packages golang)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages gtk)
 | 
				
			||||||
  #:use-module (gnu packages guile)
 | 
					  #:use-module (gnu packages guile)
 | 
				
			||||||
  #:use-module (gnu packages icu4c)
 | 
					  #:use-module (gnu packages icu4c)
 | 
				
			||||||
  #:use-module (gnu packages jemalloc)
 | 
					  #:use-module (gnu packages jemalloc)
 | 
				
			||||||
| 
						 | 
					@ -109,6 +113,7 @@
 | 
				
			||||||
  #:use-module (gnu packages multiprecision)
 | 
					  #:use-module (gnu packages multiprecision)
 | 
				
			||||||
  #:use-module (gnu packages ncurses)
 | 
					  #:use-module (gnu packages ncurses)
 | 
				
			||||||
  #:use-module (gnu packages onc-rpc)
 | 
					  #:use-module (gnu packages onc-rpc)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages pantheon)
 | 
				
			||||||
  #:use-module (gnu packages parallel)
 | 
					  #:use-module (gnu packages parallel)
 | 
				
			||||||
  #:use-module (gnu packages pcre)
 | 
					  #:use-module (gnu packages pcre)
 | 
				
			||||||
  #:use-module (gnu packages perl)
 | 
					  #:use-module (gnu packages perl)
 | 
				
			||||||
| 
						 | 
					@ -130,6 +135,7 @@
 | 
				
			||||||
  #:use-module (gnu packages ruby)
 | 
					  #:use-module (gnu packages ruby)
 | 
				
			||||||
  #:use-module (gnu packages serialization)
 | 
					  #:use-module (gnu packages serialization)
 | 
				
			||||||
  #:use-module (gnu packages sphinx)
 | 
					  #:use-module (gnu packages sphinx)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages ssh)
 | 
				
			||||||
  #:use-module (gnu packages sqlite)
 | 
					  #:use-module (gnu packages sqlite)
 | 
				
			||||||
  #:use-module (gnu packages tcl)
 | 
					  #:use-module (gnu packages tcl)
 | 
				
			||||||
  #:use-module (gnu packages terminals)
 | 
					  #:use-module (gnu packages terminals)
 | 
				
			||||||
| 
						 | 
					@ -148,6 +154,7 @@
 | 
				
			||||||
  #:use-module (guix build-system emacs)
 | 
					  #:use-module (guix build-system emacs)
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
  #:use-module (guix build-system go)
 | 
					  #:use-module (guix build-system go)
 | 
				
			||||||
 | 
					  #:use-module (guix build-system meson)
 | 
				
			||||||
  #:use-module (guix build-system perl)
 | 
					  #:use-module (guix build-system perl)
 | 
				
			||||||
  #:use-module (guix build-system python)
 | 
					  #:use-module (guix build-system python)
 | 
				
			||||||
  #:use-module (guix build-system ruby)
 | 
					  #:use-module (guix build-system ruby)
 | 
				
			||||||
| 
						 | 
					@ -1032,14 +1039,14 @@ and high-availability (HA).")
 | 
				
			||||||
(define-public postgresql-13
 | 
					(define-public postgresql-13
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "postgresql")
 | 
					    (name "postgresql")
 | 
				
			||||||
    (version "13.3")
 | 
					    (version "13.4")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "https://ftp.postgresql.org/pub/source/v"
 | 
					              (uri (string-append "https://ftp.postgresql.org/pub/source/v"
 | 
				
			||||||
                                  version "/postgresql-" version ".tar.bz2"))
 | 
					                                  version "/postgresql-" version ".tar.bz2"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "18dliq7h2l8irffhyyhdmfwx3si515q6gds3cxdjb9n7m17lbn9w"))
 | 
					                "1kf0gcsrl5n25rjlvkh87aywmn28kbwvakm5c7j1qpr4j01y34za"))
 | 
				
			||||||
              (patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))
 | 
					              (patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
| 
						 | 
					@ -1090,38 +1097,38 @@ pictures, sounds, or video.")
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (inherit postgresql-13)
 | 
					    (inherit postgresql-13)
 | 
				
			||||||
    (name "postgresql")
 | 
					    (name "postgresql")
 | 
				
			||||||
    (version "11.12")
 | 
					    (version "11.13")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (inherit (package-source postgresql-13))
 | 
					              (inherit (package-source postgresql-13))
 | 
				
			||||||
              (uri (string-append "https://ftp.postgresql.org/pub/source/v"
 | 
					              (uri (string-append "https://ftp.postgresql.org/pub/source/v"
 | 
				
			||||||
                                  version "/postgresql-" version ".tar.bz2"))
 | 
					                                  version "/postgresql-" version ".tar.bz2"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "016bacpmqxc676ipzc1l8zv1jj44mjz7dv7jhqazg3ibdfqxiyc7"))))))
 | 
					                "0j5wnscnxa3sx8d39s55654df8aikmvkihfb0a02hrgmyygnihx0"))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public postgresql-10
 | 
					(define-public postgresql-10
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (inherit postgresql-11)
 | 
					    (inherit postgresql-11)
 | 
				
			||||||
    (version "10.17")
 | 
					    (version "10.18")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (inherit (package-source postgresql-11))
 | 
					              (inherit (package-source postgresql-11))
 | 
				
			||||||
              (uri (string-append "https://ftp.postgresql.org/pub/source/v"
 | 
					              (uri (string-append "https://ftp.postgresql.org/pub/source/v"
 | 
				
			||||||
                                  version "/postgresql-" version ".tar.bz2"))
 | 
					                                  version "/postgresql-" version ".tar.bz2"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0v5jahkqm6gkq67s4bac3h7297bscn2ab6y128idi73cc1qq1wjs"))))))
 | 
					                "009qpb02bq0rx0aaw5ck70gk07xwparhfxvlfimgihw2vhp7qisp"))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public postgresql-9.6
 | 
					(define-public postgresql-9.6
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (inherit postgresql-10)
 | 
					    (inherit postgresql-10)
 | 
				
			||||||
    (version "9.6.22")
 | 
					    (version "9.6.23")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (inherit (package-source postgresql-10))
 | 
					              (inherit (package-source postgresql-10))
 | 
				
			||||||
              (uri (string-append "https://ftp.postgresql.org/pub/source/v"
 | 
					              (uri (string-append "https://ftp.postgresql.org/pub/source/v"
 | 
				
			||||||
                                  version "/postgresql-" version ".tar.bz2"))
 | 
					                                  version "/postgresql-" version ".tar.bz2"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0c19kzrj5ib5ygmavf5d6qvxdwrxzzz6jz1r2dl5b815208cscix"))))))
 | 
					                "1fa735lrmv2vrfiixg73nh024gxlagcbrssklvgwdf0s82cgfjd8"))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public postgresql postgresql-13)
 | 
					(define-public postgresql postgresql-13)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1374,6 +1381,15 @@ including field and record folding.")))
 | 
				
			||||||
         (delete 'configure)
 | 
					         (delete 'configure)
 | 
				
			||||||
         ;; The default target is only needed for tests and built on demand.
 | 
					         ;; The default target is only needed for tests and built on demand.
 | 
				
			||||||
         (delete 'build)
 | 
					         (delete 'build)
 | 
				
			||||||
 | 
					         (add-before 'check 'mount-tmp
 | 
				
			||||||
 | 
					           ;; Use the provided workspace directory for test files.
 | 
				
			||||||
 | 
					           ;; Otherwise, /tmp is used which is a mount namespace on /gnu/store.
 | 
				
			||||||
 | 
					           ;; This speeds up the build when the host /tmp is a proper tmpfs or
 | 
				
			||||||
 | 
					           ;; other fast filesystem, as opposed to /gnu which may be a HDD.
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             (let ((test-dir (string-append (getcwd) "/../test")))
 | 
				
			||||||
 | 
					               (mkdir test-dir)
 | 
				
			||||||
 | 
					               (setenv "TEST_TMPDIR" (canonicalize-path test-dir)))))
 | 
				
			||||||
         (add-before 'check 'disable-optimizations
 | 
					         (add-before 'check 'disable-optimizations
 | 
				
			||||||
           (lambda _
 | 
					           (lambda _
 | 
				
			||||||
             ;; Prevent the build from passing '-march=native' to the compiler.
 | 
					             ;; Prevent the build from passing '-march=native' to the compiler.
 | 
				
			||||||
| 
						 | 
					@ -1605,14 +1621,14 @@ changes.")
 | 
				
			||||||
(define-public tdb
 | 
					(define-public tdb
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "tdb")
 | 
					    (name "tdb")
 | 
				
			||||||
    (version "1.4.3")
 | 
					    (version "1.4.5")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "https://www.samba.org/ftp/tdb/tdb-"
 | 
					              (uri (string-append "https://www.samba.org/ftp/tdb/tdb-"
 | 
				
			||||||
                                  version ".tar.gz"))
 | 
					                                  version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "06waz0k50c7v3chd08mzp2rv7w4k4q9isbxx3vhlfpx1vy9q61f8"))))
 | 
					                "0h8fkblws3d4vf37yhbrbw2nfxg5vk2v3i5mk04hhcbh9y4fvz5w"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:phases
 | 
					     '(#:phases
 | 
				
			||||||
| 
						 | 
					@ -2466,16 +2482,16 @@ virtual address space — not physical RAM.")
 | 
				
			||||||
(define-public lmdbxx
 | 
					(define-public lmdbxx
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "lmdbxx")
 | 
					    (name "lmdbxx")
 | 
				
			||||||
    (version "0.9.14.0")
 | 
					    (version "1.0.0")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
       (uri (git-reference
 | 
					       (uri (git-reference
 | 
				
			||||||
             (url "https://github.com/drycpp/lmdbxx")
 | 
					             (url "https://github.com/hoytech/lmdbxx")
 | 
				
			||||||
             (commit version)))
 | 
					             (commit version)))
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "1jmb9wg2iqag6ps3z71bh72ymbcjrb6clwlkgrqf1sy80qwvlsn6"))))
 | 
					        (base32 "12k5rz74d1l0skcks9apry1svkl96g9lf5dcgylgjmh7v1jm0b7c"))))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:make-flags
 | 
					     `(#:make-flags
 | 
				
			||||||
       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
 | 
					       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
 | 
				
			||||||
| 
						 | 
					@ -2484,7 +2500,7 @@ virtual address space — not physical RAM.")
 | 
				
			||||||
         (delete 'configure))))
 | 
					         (delete 'configure))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (inputs `(("lmdb" ,lmdb)))
 | 
					    (inputs `(("lmdb" ,lmdb)))
 | 
				
			||||||
    (home-page "http://lmdbxx.sourceforge.net")
 | 
					    (home-page "https://github.com/hoytech/lmdbxx")
 | 
				
			||||||
    (synopsis "C++11 wrapper for the LMDB embedded B+ tree database library")
 | 
					    (synopsis "C++11 wrapper for the LMDB embedded B+ tree database library")
 | 
				
			||||||
    (description "@code{lmdbxx} is a comprehensive @code{C++} wrapper for the
 | 
					    (description "@code{lmdbxx} is a comprehensive @code{C++} wrapper for the
 | 
				
			||||||
@code{LMDB} embedded database library, offering both an error-checked
 | 
					@code{LMDB} embedded database library, offering both an error-checked
 | 
				
			||||||
| 
						 | 
					@ -2920,18 +2936,20 @@ Database API 2.0T.")
 | 
				
			||||||
(define-public python-sqlalchemy
 | 
					(define-public python-sqlalchemy
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python-sqlalchemy")
 | 
					    (name "python-sqlalchemy")
 | 
				
			||||||
    (version "1.3.20")
 | 
					    (version "1.4.23")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
      (method url-fetch)
 | 
					      (method url-fetch)
 | 
				
			||||||
      (uri (pypi-uri "SQLAlchemy" version))
 | 
					      (uri (pypi-uri "SQLAlchemy" version))
 | 
				
			||||||
      (sha256
 | 
					      (sha256
 | 
				
			||||||
       (base32 "18b9am7bsqc4nj3d2h5r93i002apczxfvpfpcqbd6f0385zmrwnj"))))
 | 
					       (base32 "10vm8hm8w4yfsab076ak8r4vp5v1jqdi71cky6dhha7mh5l29zvn"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("python-cython" ,python-cython) ; for C extensions
 | 
					     `(("python-cython" ,python-cython) ; for C extensions
 | 
				
			||||||
       ("python-pytest" ,python-pytest)
 | 
					       ("python-pytest" ,python-pytest)
 | 
				
			||||||
       ("python-mock"   ,python-mock))) ; for tests
 | 
					       ("python-mock"   ,python-mock))) ; for tests
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("python-greenlet" ,python-greenlet)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
| 
						 | 
					@ -3066,13 +3084,13 @@ this library provides functions to facilitate such comparisons.")
 | 
				
			||||||
(define-public python-alembic
 | 
					(define-public python-alembic
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python-alembic")
 | 
					    (name "python-alembic")
 | 
				
			||||||
    (version "1.4.3")
 | 
					    (version "1.7.1")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (pypi-uri "alembic" version))
 | 
					       (uri (pypi-uri "alembic" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "0if2dgb088clk738p26bwk50735h6jpd2kacdgc5capv2hiz6d2k"))))
 | 
					        (base32 "1ys0a44gh544xpbzz6r5xvz3msim74f9qklyfnw0bhn9vk9n9adf"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:phases (modify-phases %standard-phases
 | 
					     '(#:phases (modify-phases %standard-phases
 | 
				
			||||||
| 
						 | 
					@ -3084,6 +3102,7 @@ this library provides functions to facilitate such comparisons.")
 | 
				
			||||||
       ("python-pytest-cov" ,python-pytest-cov)))
 | 
					       ("python-pytest-cov" ,python-pytest-cov)))
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("python-dateutil" ,python-dateutil)
 | 
					     `(("python-dateutil" ,python-dateutil)
 | 
				
			||||||
 | 
					       ("python-importlib-resources" ,python-importlib-resources) ;Python < 3.9
 | 
				
			||||||
       ("python-sqlalchemy" ,python-sqlalchemy)
 | 
					       ("python-sqlalchemy" ,python-sqlalchemy)
 | 
				
			||||||
       ("python-mako" ,python-mako)
 | 
					       ("python-mako" ,python-mako)
 | 
				
			||||||
       ("python-editor" ,python-editor)))
 | 
					       ("python-editor" ,python-editor)))
 | 
				
			||||||
| 
						 | 
					@ -3094,9 +3113,6 @@ this library provides functions to facilitate such comparisons.")
 | 
				
			||||||
SQLAlchemy Database Toolkit for Python.")
 | 
					SQLAlchemy Database Toolkit for Python.")
 | 
				
			||||||
    (license license:expat)))
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public python2-alembic
 | 
					 | 
				
			||||||
  (package-with-python2 python-alembic))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define-public python-pickleshare
 | 
					(define-public python-pickleshare
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python-pickleshare")
 | 
					    (name "python-pickleshare")
 | 
				
			||||||
| 
						 | 
					@ -3138,7 +3154,7 @@ PickleShare.")
 | 
				
			||||||
(define-public python-apsw
 | 
					(define-public python-apsw
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python-apsw")
 | 
					    (name "python-apsw")
 | 
				
			||||||
    (version "3.31.1-r1")
 | 
					    (version "3.36.0-r1")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
      (origin
 | 
					      (origin
 | 
				
			||||||
        (method url-fetch)
 | 
					        (method url-fetch)
 | 
				
			||||||
| 
						 | 
					@ -3146,7 +3162,7 @@ PickleShare.")
 | 
				
			||||||
                            "/download/" version "/apsw-" version ".zip"))
 | 
					                            "/download/" version "/apsw-" version ".zip"))
 | 
				
			||||||
        (sha256
 | 
					        (sha256
 | 
				
			||||||
          (base32
 | 
					          (base32
 | 
				
			||||||
           "1gap5lr6c7bp134nzvfwr693i6d0fqyaysg3ms2cayjldv616yfx"))))
 | 
					           "0w8q73147hv77dlpqrx6h1gx03acc8xqhvdpfp6vkffdm0wmqd8p"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("unzip" ,unzip)))
 | 
					     `(("unzip" ,unzip)))
 | 
				
			||||||
| 
						 | 
					@ -3285,20 +3301,31 @@ designed to be easy and intuitive to use.")
 | 
				
			||||||
(define-public python-sadisplay
 | 
					(define-public python-sadisplay
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python-sadisplay")
 | 
					    (name "python-sadisplay")
 | 
				
			||||||
    (version "0.4.8")
 | 
					    (version "0.4.9")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
      (origin
 | 
					      (origin
 | 
				
			||||||
        (method url-fetch)
 | 
					        (method url-fetch)
 | 
				
			||||||
        (uri (pypi-uri "sadisplay" version))
 | 
					        (uri (pypi-uri "sadisplay" version))
 | 
				
			||||||
      (sha256
 | 
					      (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
          "01d9lxhmgpb68gy8rd6zj6fcwp84n2qq210n1qsk3qbsir79bzh4"))))
 | 
					          "15jxwgla3q4xsp6rw8inqaiy1kdzc8l2cixj8amqcf0ji47icrxg"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:phases (modify-phases %standard-phases
 | 
				
			||||||
 | 
					                  (replace 'check
 | 
				
			||||||
 | 
					                    (lambda* (#:key tests? #:allow-other-keys)
 | 
				
			||||||
 | 
					                      (if tests?
 | 
				
			||||||
 | 
					                          (begin
 | 
				
			||||||
 | 
					                            (setenv "PYTHONPATH"
 | 
				
			||||||
 | 
					                                    (string-append ".:" (or (getenv "PYTHONPATH")
 | 
				
			||||||
 | 
					                                                           "")))
 | 
				
			||||||
 | 
					                            (invoke "pytest" "-vv"))
 | 
				
			||||||
 | 
					                          (format #t "test suite not run~%")))))))
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
      `(("python-sqlalchemy" ,python-sqlalchemy)))
 | 
					      `(("python-sqlalchemy" ,python-sqlalchemy)))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     ;; For tests.
 | 
					     ;; For tests.
 | 
				
			||||||
      `(("python-nose" ,python-nose)))
 | 
					      `(("python-pytest" ,python-pytest)))
 | 
				
			||||||
    (home-page "https://bitbucket.org/estin/sadisplay")
 | 
					    (home-page "https://bitbucket.org/estin/sadisplay")
 | 
				
			||||||
    (synopsis "SQLAlchemy schema displayer")
 | 
					    (synopsis "SQLAlchemy schema displayer")
 | 
				
			||||||
    (description "This package provides a program to build Entity
 | 
					    (description "This package provides a program to build Entity
 | 
				
			||||||
| 
						 | 
					@ -3593,13 +3620,13 @@ provides support for parsing, splitting and formatting SQL statements.")
 | 
				
			||||||
(define-public python-sql
 | 
					(define-public python-sql
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python-sql")
 | 
					    (name "python-sql")
 | 
				
			||||||
    (version "1.0.0")
 | 
					    (version "1.3.0")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (pypi-uri "python-sql" version))
 | 
					       (uri (pypi-uri "python-sql" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "05ni936y0ia9xmryl7mlhbj9i80nnvq1bi4zxhb96rv7yvpb3fqb"))))
 | 
					        (base32 "0xnimfzlxj1ddrb5xj3s4gaii278a0gpxrvwmdmrdxgjfdi3lq4x"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (home-page "https://python-sql.tryton.org/")
 | 
					    (home-page "https://python-sql.tryton.org/")
 | 
				
			||||||
    (synopsis "Library to write SQL queries in a pythonic way")
 | 
					    (synopsis "Library to write SQL queries in a pythonic way")
 | 
				
			||||||
| 
						 | 
					@ -3638,7 +3665,7 @@ the SQL language using a syntax that reflects the resulting query.")
 | 
				
			||||||
(define-public apache-arrow
 | 
					(define-public apache-arrow
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "apache-arrow")
 | 
					    (name "apache-arrow")
 | 
				
			||||||
    (version "4.0.1")
 | 
					    (version "5.0.0")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -3648,7 +3675,7 @@ the SQL language using a syntax that reflects the resulting query.")
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "1lcd9gdpwlrr92rm812a5p4l6zx0arwd0zj72a4ga699s1psz8yv"))))
 | 
					         "0275aayzy78nbxzbj93w5152sv5q2c7020ijxnf8b58v9qwfxzz0"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f
 | 
					     `(#:tests? #f
 | 
				
			||||||
| 
						 | 
					@ -3770,13 +3797,34 @@ algorithm implementations.")
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (delete 'build) ; XXX the build is performed again during the install phase
 | 
					         (delete 'build) ; XXX the build is performed again during the install phase
 | 
				
			||||||
         (add-after 'unpack 'enter-source-directory
 | 
					         (add-after 'unpack 'enter-source-directory
 | 
				
			||||||
           (lambda _ (chdir "python") #t))
 | 
					           (lambda _ (chdir "python")))
 | 
				
			||||||
         (add-after 'unpack 'make-git-checkout-writable
 | 
					         (add-after 'unpack 'make-git-checkout-writable
 | 
				
			||||||
           (lambda _
 | 
					           (lambda _
 | 
				
			||||||
             (for-each make-file-writable (find-files "."))
 | 
					             (for-each make-file-writable (find-files "."))))
 | 
				
			||||||
             #t)))))
 | 
					         (add-before 'install 'patch-cmake-variables
 | 
				
			||||||
 | 
					           (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             ;; Replace cmake locations with hardcoded guix links for the
 | 
				
			||||||
 | 
					             ;; underlying C++ library and headers.  This is a pretty awful
 | 
				
			||||||
 | 
					             ;; hack.
 | 
				
			||||||
 | 
					             (substitute* "cmake_modules/FindParquet.cmake"
 | 
				
			||||||
 | 
					               (("# Licensed to the Apache Software Foundation" m)
 | 
				
			||||||
 | 
					                (string-append "set(PARQUET_INCLUDE_DIR \""
 | 
				
			||||||
 | 
					                               (assoc-ref inputs "apache-arrow:include")
 | 
				
			||||||
 | 
					                               "/share/include\")\n" m))
 | 
				
			||||||
 | 
					               (("find_package_handle_standard_args" m)
 | 
				
			||||||
 | 
					                (string-append "set(PARQUET_LIB_DIR \""
 | 
				
			||||||
 | 
					                               (assoc-ref inputs "apache-arrow:lib")
 | 
				
			||||||
 | 
					                               "/lib\")\n" m)))))
 | 
				
			||||||
 | 
					         (add-before 'install 'patch-parquet-library
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             (substitute* "CMakeLists.txt"
 | 
				
			||||||
 | 
					               (("parquet_shared") "parquet"))))
 | 
				
			||||||
 | 
					         (add-before 'install 'set-PYARROW_WITH_PARQUET
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             (setenv "PYARROW_WITH_PARQUET" "1"))))))
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("apache-arrow" ,apache-arrow "lib")
 | 
					     `(("apache-arrow:lib" ,apache-arrow "lib")
 | 
				
			||||||
 | 
					       ("apache-arrow:include" ,apache-arrow "include")
 | 
				
			||||||
       ("python-numpy" ,python-numpy)
 | 
					       ("python-numpy" ,python-numpy)
 | 
				
			||||||
       ("python-pandas" ,python-pandas)
 | 
					       ("python-pandas" ,python-pandas)
 | 
				
			||||||
       ("python-six" ,python-six)))
 | 
					       ("python-six" ,python-six)))
 | 
				
			||||||
| 
						 | 
					@ -3968,3 +4016,54 @@ PostreSQL, SQLite, ODBC and MySQL.")
 | 
				
			||||||
     "FreeTDS is an implementation of the Tabular DataStream protocol, used for
 | 
					     "FreeTDS is an implementation of the Tabular DataStream protocol, used for
 | 
				
			||||||
connecting to MS SQL and Sybase servers over TCP/IP.")
 | 
					connecting to MS SQL and Sybase servers over TCP/IP.")
 | 
				
			||||||
    (license license:lgpl2.0+)))
 | 
					    (license license:lgpl2.0+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public sequeler
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "sequeler")
 | 
				
			||||||
 | 
					    (version "0.8.1")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method git-fetch)
 | 
				
			||||||
 | 
					              (uri (git-reference
 | 
				
			||||||
 | 
					                    (url "https://github.com/Alecaddd/sequeler")
 | 
				
			||||||
 | 
					                    (commit (string-append "v" version))))
 | 
				
			||||||
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "1q1vzc3likpiwfh6blkyiz0wr0aarj9xrm8gbi7m3p1wslkpah7c"))))
 | 
				
			||||||
 | 
					    (build-system meson-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:glib-or-gtk? #t
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-after 'unpack 'skip-gtk-update-icon-cache
 | 
				
			||||||
 | 
					           ;; Don't create 'icon-theme.cache'.
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             (substitute* "build-aux/meson_post_install.py"
 | 
				
			||||||
 | 
					               (("gtk-update-icon-cache") "true")
 | 
				
			||||||
 | 
					               (("update-desktop-database") "true"))
 | 
				
			||||||
 | 
					             #t)))))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(;("appstream-glib" ,appstream-glib)  ; validation fails for lack of network
 | 
				
			||||||
 | 
					       ("gettext-minimal" ,gettext-minimal)
 | 
				
			||||||
 | 
					       ("glib:bin" ,glib "bin")             ; for glib-compile-resources
 | 
				
			||||||
 | 
					       ("gtk+" ,gtk+ "bin")
 | 
				
			||||||
 | 
					       ("pkg-config" ,pkg-config)
 | 
				
			||||||
 | 
					       ("vala" ,vala)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("glib" ,glib)
 | 
				
			||||||
 | 
					       ("granite" ,granite)
 | 
				
			||||||
 | 
					       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
 | 
				
			||||||
 | 
					       ("gtk+" ,gtk+)
 | 
				
			||||||
 | 
					       ("gtksourceview-3" ,gtksourceview-3)
 | 
				
			||||||
 | 
					       ("libgda" ,libgda)
 | 
				
			||||||
 | 
					       ("libgee" ,libgee)
 | 
				
			||||||
 | 
					       ("libsecret" ,libsecret)
 | 
				
			||||||
 | 
					       ("libssh2" ,libssh2)
 | 
				
			||||||
 | 
					       ("libxml2" ,libxml2)))
 | 
				
			||||||
 | 
					    (synopsis "Friendly SQL Client")
 | 
				
			||||||
 | 
					    (description "Sequeler is a native Linux SQL client built in Vala and
 | 
				
			||||||
 | 
					Gtk.  It allows you to connect to your local and remote databases, write SQL in
 | 
				
			||||||
 | 
					a handy text editor with language recognition, and visualize SELECT results in
 | 
				
			||||||
 | 
					a Gtk.Grid Widget.")
 | 
				
			||||||
 | 
					    (home-page "https://github.com/Alecaddd/sequeler")
 | 
				
			||||||
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,6 +6,7 @@
 | 
				
			||||||
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
 | 
					;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
 | 
				
			||||||
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 | 
					;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 | 
				
			||||||
;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
 | 
					;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -24,6 +25,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-module (gnu packages dbm)
 | 
					(define-module (gnu packages dbm)
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages autotools)
 | 
				
			||||||
  #:use-module ((guix licenses) #:prefix license:)
 | 
					  #:use-module ((guix licenses) #:prefix license:)
 | 
				
			||||||
  #:use-module (guix packages)
 | 
					  #:use-module (guix packages)
 | 
				
			||||||
  #:use-module (guix download)
 | 
					  #:use-module (guix download)
 | 
				
			||||||
| 
						 | 
					@ -57,6 +59,19 @@
 | 
				
			||||||
       #:disallowed-references ("doc")
 | 
					       #:disallowed-references ("doc")
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         ;; The configure script is too old to recognise aarch64 and
 | 
				
			||||||
 | 
					         ;; powerpc64le as valid architectures.  The trick below works
 | 
				
			||||||
 | 
					         ;; for "--build", but not for "--host", so update config.sub.
 | 
				
			||||||
 | 
					         ,@(if (and (%current-target-system)
 | 
				
			||||||
 | 
					                    (or (target-ppc64le? (%current-target-system))
 | 
				
			||||||
 | 
					                        (target-aarch64? (%current-target-system))))
 | 
				
			||||||
 | 
					               `((add-after 'unpack 'update-config.sub
 | 
				
			||||||
 | 
					                   (lambda* (#:key native-inputs #:allow-other-keys)
 | 
				
			||||||
 | 
					                     (delete-file "dist/config.sub")
 | 
				
			||||||
 | 
					                     (symlink
 | 
				
			||||||
 | 
					                      (search-input-file native-inputs "/bin/config.sub")
 | 
				
			||||||
 | 
					                      "dist/config.sub"))))
 | 
				
			||||||
 | 
					               '())
 | 
				
			||||||
         (replace 'configure
 | 
					         (replace 'configure
 | 
				
			||||||
           (lambda* (#:key target outputs #:allow-other-keys)
 | 
					           (lambda* (#:key target outputs #:allow-other-keys)
 | 
				
			||||||
             (let ((out (assoc-ref outputs "out"))
 | 
					             (let ((out (assoc-ref outputs "out"))
 | 
				
			||||||
| 
						 | 
					@ -97,6 +112,12 @@
 | 
				
			||||||
                       ;; of db_cxx.h into C++ files works; it leads to
 | 
					                       ;; of db_cxx.h into C++ files works; it leads to
 | 
				
			||||||
                       ;; HAVE_CXX_STDHEADERS being defined in db_cxx.h.
 | 
					                       ;; HAVE_CXX_STDHEADERS being defined in db_cxx.h.
 | 
				
			||||||
                       "--enable-cxx")))))))
 | 
					                       "--enable-cxx")))))))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     (if (and (%current-target-system)
 | 
				
			||||||
 | 
					              (or (target-ppc64le? (%current-target-system))
 | 
				
			||||||
 | 
					                  (target-aarch64? (%current-target-system))))
 | 
				
			||||||
 | 
					         `(("config" ,config)) ; for config.sub
 | 
				
			||||||
 | 
					         '()))
 | 
				
			||||||
    (synopsis "Berkeley database")
 | 
					    (synopsis "Berkeley database")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
     "Berkeley DB is an embeddable database allowing developers the choice of
 | 
					     "Berkeley DB is an embeddable database allowing developers the choice of
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2020 Eric Bavier <bavier@posteo.net>
 | 
					;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2020, 2021 Eric Bavier <bavier@posteo.net>
 | 
				
			||||||
;;; Copyright © 2016, 2017, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 | 
					;;; Copyright © 2016, 2017, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 | 
				
			||||||
;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
					;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
				
			||||||
;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 | 
					;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 | 
				
			||||||
| 
						 | 
					@ -7,6 +7,7 @@
 | 
				
			||||||
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 | 
					;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 | 
				
			||||||
;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
 | 
					;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
 | 
				
			||||||
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
					;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -38,6 +39,7 @@
 | 
				
			||||||
  #:use-module (gnu packages bash)
 | 
					  #:use-module (gnu packages bash)
 | 
				
			||||||
  #:use-module (gnu packages bison)
 | 
					  #:use-module (gnu packages bison)
 | 
				
			||||||
  #:use-module (gnu packages c)
 | 
					  #:use-module (gnu packages c)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages check)
 | 
				
			||||||
  #:use-module (gnu packages code)
 | 
					  #:use-module (gnu packages code)
 | 
				
			||||||
  #:use-module (gnu packages compression)
 | 
					  #:use-module (gnu packages compression)
 | 
				
			||||||
  #:use-module (gnu packages flex)
 | 
					  #:use-module (gnu packages flex)
 | 
				
			||||||
| 
						 | 
					@ -55,6 +57,7 @@
 | 
				
			||||||
  #:use-module (gnu packages pkg-config)
 | 
					  #:use-module (gnu packages pkg-config)
 | 
				
			||||||
  #:use-module (gnu packages pretty-print)
 | 
					  #:use-module (gnu packages pretty-print)
 | 
				
			||||||
  #:use-module (gnu packages python)
 | 
					  #:use-module (gnu packages python)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages python-check)
 | 
				
			||||||
  #:use-module (gnu packages python-xyz)
 | 
					  #:use-module (gnu packages python-xyz)
 | 
				
			||||||
  #:use-module (gnu packages readline)
 | 
					  #:use-module (gnu packages readline)
 | 
				
			||||||
  #:use-module (gnu packages serialization)
 | 
					  #:use-module (gnu packages serialization)
 | 
				
			||||||
| 
						 | 
					@ -171,6 +174,58 @@ intended for use by people who discover and report bugs in compilers and other
 | 
				
			||||||
tools that process C/C++ code.")
 | 
					tools that process C/C++ code.")
 | 
				
			||||||
    (license license:ncsa)))
 | 
					    (license license:ncsa)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public c-vise
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "c-vise")
 | 
				
			||||||
 | 
					    (version "2.3.0")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method git-fetch)
 | 
				
			||||||
 | 
					       (uri (git-reference
 | 
				
			||||||
 | 
					             (url "https://github.com/marxin/cvise")
 | 
				
			||||||
 | 
					             (commit (string-append "v" version))))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "0f6m58rak87gvcvxxcgp1bzbsv1q618h0iipmv0dx9jv1bn0qv43"))
 | 
				
			||||||
 | 
					       (file-name (git-file-name name version))))
 | 
				
			||||||
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("flex" ,flex)
 | 
				
			||||||
 | 
					       ("python-pytest" ,python-pytest)
 | 
				
			||||||
 | 
					       ("python-pytest-flake8" ,python-pytest-flake8)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("bash" ,bash-minimal)           ; For wrap-program
 | 
				
			||||||
 | 
					       ("clang" ,clang)
 | 
				
			||||||
 | 
					       ("llvm" ,llvm)
 | 
				
			||||||
 | 
					       ("python" ,python)
 | 
				
			||||||
 | 
					       ("python-pebble" ,python-pebble)
 | 
				
			||||||
 | 
					       ("python-psutil" ,python-psutil)
 | 
				
			||||||
 | 
					       ("unifdef" ,unifdef)))
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-before 'build 'hardcode-paths
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					            (substitute* "cvise.py"
 | 
				
			||||||
 | 
					              (("/bin/bash") (which "bash"))
 | 
				
			||||||
 | 
					              (("(.*)# Special case for clang-format" & >)
 | 
				
			||||||
 | 
					               (string-append > "# Special case for unifdef\n"
 | 
				
			||||||
 | 
					                              > "programs['unifdef'] = '" (which "unifdef") "'\n"
 | 
				
			||||||
 | 
					                              &)))))
 | 
				
			||||||
 | 
					         (add-after 'install 'wrap
 | 
				
			||||||
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             (let ((out (assoc-ref outputs "out"))
 | 
				
			||||||
 | 
					                   (python-path (getenv "GUIX_PYTHONPATH")))
 | 
				
			||||||
 | 
					               (wrap-program (string-append out "/bin/cvise")
 | 
				
			||||||
 | 
					                 `("PYTHONPATH" ":" prefix (,python-path)))
 | 
				
			||||||
 | 
					               #t))))))
 | 
				
			||||||
 | 
					    (home-page "https://github.com/marxin/cvise")
 | 
				
			||||||
 | 
					    (synopsis "Reducer for interesting code")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "C-Vise is a Python port of the C-Reduce tool that is fully compatible
 | 
				
			||||||
 | 
					and uses the same efficient LLVM-based C/C++ @code{clang_delta} reduction
 | 
				
			||||||
 | 
					tool.")
 | 
				
			||||||
 | 
					    (license license:ncsa)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public american-fuzzy-lop
 | 
					(define-public american-fuzzy-lop
 | 
				
			||||||
  (let ((machine (match (or (%current-target-system)
 | 
					  (let ((machine (match (or (%current-target-system)
 | 
				
			||||||
                            (%current-system))
 | 
					                            (%current-system))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2017, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
					;;; Copyright © 2017, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
				
			||||||
;;; Copyright © 2021 Ryan Prior <rprior@protonmail.com>
 | 
					;;; Copyright © 2021 Ryan Prior <rprior@protonmail.com>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -20,8 +21,10 @@
 | 
				
			||||||
(define-module (gnu packages digest)
 | 
					(define-module (gnu packages digest)
 | 
				
			||||||
  #:use-module ((guix licenses) #:prefix license:)
 | 
					  #:use-module ((guix licenses) #:prefix license:)
 | 
				
			||||||
  #:use-module (guix packages)
 | 
					  #:use-module (guix packages)
 | 
				
			||||||
 | 
					  #:use-module (guix download)
 | 
				
			||||||
  #:use-module (guix git-download)
 | 
					  #:use-module (guix git-download)
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
 | 
					  #:use-module (guix build-system python)
 | 
				
			||||||
  #:use-module (guix build-system trivial)
 | 
					  #:use-module (guix build-system trivial)
 | 
				
			||||||
  #:use-module (guix utils)
 | 
					  #:use-module (guix utils)
 | 
				
			||||||
  #:use-module (ice-9 match))
 | 
					  #:use-module (ice-9 match))
 | 
				
			||||||
| 
						 | 
					@ -96,3 +99,21 @@ The code is highly portable, and hashes of the same length are identical on all
 | 
				
			||||||
platforms (both big and little endian).")
 | 
					platforms (both big and little endian).")
 | 
				
			||||||
    (license (list license:bsd-2        ; xxhash library (xxhash.[ch])
 | 
					    (license (list license:bsd-2        ; xxhash library (xxhash.[ch])
 | 
				
			||||||
                   license:gpl2+))))    ; xxhsum.c
 | 
					                   license:gpl2+))))    ; xxhsum.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python-xxhash
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "python-xxhash")
 | 
				
			||||||
 | 
					    (version "2.0.2")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (pypi-uri "xxhash" version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "0jbvz19acznq00544gcsjg05fkvrmwbnwdfgrvwss3i1ys6avgmp"))))
 | 
				
			||||||
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (home-page "https://github.com/ifduyue/python-xxhash")
 | 
				
			||||||
 | 
					    (synopsis "Python binding for xxHash")
 | 
				
			||||||
 | 
					    (description "This package provides Python bindings for the xxHash hash
 | 
				
			||||||
 | 
					algorithm.")
 | 
				
			||||||
 | 
					    (license license:bsd-3)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -71,6 +71,7 @@
 | 
				
			||||||
  #:use-module (gnu packages python-xyz)
 | 
					  #:use-module (gnu packages python-xyz)
 | 
				
			||||||
  #:use-module (gnu packages readline)
 | 
					  #:use-module (gnu packages readline)
 | 
				
			||||||
  #:use-module (gnu packages samba)
 | 
					  #:use-module (gnu packages samba)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages serialization)
 | 
				
			||||||
  #:use-module (gnu packages sphinx)
 | 
					  #:use-module (gnu packages sphinx)
 | 
				
			||||||
  #:use-module (gnu packages sqlite)
 | 
					  #:use-module (gnu packages sqlite)
 | 
				
			||||||
  #:use-module (gnu packages swig)
 | 
					  #:use-module (gnu packages swig)
 | 
				
			||||||
| 
						 | 
					@ -554,14 +555,14 @@ and can dramatically shorten the lifespan of the drive if left unchecked.")
 | 
				
			||||||
(define-public gparted
 | 
					(define-public gparted
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "gparted")
 | 
					    (name "gparted")
 | 
				
			||||||
    (version "1.3.0")
 | 
					    (version "1.3.1")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (string-append "mirror://sourceforge/gparted/gparted/gparted-"
 | 
					       (uri (string-append "mirror://sourceforge/gparted/gparted/gparted-"
 | 
				
			||||||
                           version "/gparted-" version ".tar.gz"))
 | 
					                           version "/gparted-" version ".tar.gz"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "0amx3hb4rc504nl9i73rgyz0hzhq5x8nkg7lwbk4bsnrblj81hcd"))))
 | 
					        (base32 "02g1s6hrhnias7kj241l0f72kllfhq6338mk2dmzjpmifinjxvjy"))))
 | 
				
			||||||
    (build-system glib-or-gtk-build-system)
 | 
					    (build-system glib-or-gtk-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
      ;; Tests require access to paths outside the build container, such
 | 
					      ;; Tests require access to paths outside the build container, such
 | 
				
			||||||
| 
						 | 
					@ -687,7 +688,7 @@ a card with a smaller capacity than stated.")
 | 
				
			||||||
(define-public duperemove
 | 
					(define-public duperemove
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "duperemove")
 | 
					    (name "duperemove")
 | 
				
			||||||
    (version "0.11.2")
 | 
					    (version "0.11.3")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -695,7 +696,7 @@ a card with a smaller capacity than stated.")
 | 
				
			||||||
             (url "https://github.com/markfasheh/duperemove")
 | 
					             (url "https://github.com/markfasheh/duperemove")
 | 
				
			||||||
             (commit (string-append "v" version))))
 | 
					             (commit (string-append "v" version))))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "1a87mka2sfzhbch2jip6wlvvs0glxq9lqwmyrp359d1rmwwmqiw9"))
 | 
					        (base32 "0jwxmhadv2f1mx7gan4gk0xwrjr5g2xa71z1rp0knc1acbkhqdas"))
 | 
				
			||||||
       (file-name (git-file-name name version))))
 | 
					       (file-name (git-file-name name version))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,6 +10,7 @@
 | 
				
			||||||
;;; Copyright © 2020 Fredrik Salomonsson <plattfot@gmail.com>
 | 
					;;; Copyright © 2020 Fredrik Salomonsson <plattfot@gmail.com>
 | 
				
			||||||
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 | 
					;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 | 
				
			||||||
;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
 | 
					;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -37,6 +38,7 @@
 | 
				
			||||||
  #:use-module (guix build-system trivial)
 | 
					  #:use-module (guix build-system trivial)
 | 
				
			||||||
  #:use-module (guix packages)
 | 
					  #:use-module (guix packages)
 | 
				
			||||||
  #:use-module (guix utils)
 | 
					  #:use-module (guix utils)
 | 
				
			||||||
 | 
					  #:use-module (guix gexp)
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
  #:use-module (gnu packages admin)
 | 
					  #:use-module (gnu packages admin)
 | 
				
			||||||
  #:use-module (gnu packages fontutils)
 | 
					  #:use-module (gnu packages fontutils)
 | 
				
			||||||
| 
						 | 
					@ -95,7 +97,7 @@
 | 
				
			||||||
       ("wayland" ,wayland)))
 | 
					       ("wayland" ,wayland)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:configure-flags
 | 
					     `(#:configure-flags
 | 
				
			||||||
       (list
 | 
					       ,#~(list
 | 
				
			||||||
            ;; This option currently does nothing, but will presumably be enabled
 | 
					            ;; This option currently does nothing, but will presumably be enabled
 | 
				
			||||||
            ;; if/when <https://github.com/sddm/sddm/pull/616> is merged.
 | 
					            ;; if/when <https://github.com/sddm/sddm/pull/616> is merged.
 | 
				
			||||||
            "-DENABLE_WAYLAND=ON"
 | 
					            "-DENABLE_WAYLAND=ON"
 | 
				
			||||||
| 
						 | 
					@ -106,12 +108,12 @@
 | 
				
			||||||
            ;; Set path to /etc/login.defs.
 | 
					            ;; Set path to /etc/login.defs.
 | 
				
			||||||
            ;; An alternative would be to use -DUID_MIN and -DUID_MAX.
 | 
					            ;; An alternative would be to use -DUID_MIN and -DUID_MAX.
 | 
				
			||||||
            (string-append "-DLOGIN_DEFS_PATH="
 | 
					            (string-append "-DLOGIN_DEFS_PATH="
 | 
				
			||||||
                       (assoc-ref %build-inputs "shadow")
 | 
					                           #$(this-package-input "shadow")
 | 
				
			||||||
                           "/etc/login.defs")
 | 
					                           "/etc/login.defs")
 | 
				
			||||||
            (string-append "-DQT_IMPORTS_DIR="
 | 
					            (string-append "-DQT_IMPORTS_DIR="
 | 
				
			||||||
                       (assoc-ref %outputs "out") "/lib/qt5/qml")
 | 
					                           #$output "/lib/qt5/qml")
 | 
				
			||||||
            (string-append "-DCMAKE_INSTALL_SYSCONFDIR="
 | 
					            (string-append "-DCMAKE_INSTALL_SYSCONFDIR="
 | 
				
			||||||
                       (assoc-ref %outputs "out") "/etc"))
 | 
					                           #$output "/etc"))
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-after 'unpack 'embed-loginctl-reference
 | 
					         (add-after 'unpack 'embed-loginctl-reference
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -34,6 +34,7 @@
 | 
				
			||||||
  #:use-module (gnu packages base)
 | 
					  #:use-module (gnu packages base)
 | 
				
			||||||
  #:use-module (gnu packages databases)
 | 
					  #:use-module (gnu packages databases)
 | 
				
			||||||
  #:use-module (gnu packages check)
 | 
					  #:use-module (gnu packages check)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages finance)
 | 
				
			||||||
  #:use-module (gnu packages geo)
 | 
					  #:use-module (gnu packages geo)
 | 
				
			||||||
  #:use-module (gnu packages openldap)
 | 
					  #:use-module (gnu packages openldap)
 | 
				
			||||||
  #:use-module (gnu packages python)
 | 
					  #:use-module (gnu packages python)
 | 
				
			||||||
| 
						 | 
					@ -48,13 +49,13 @@
 | 
				
			||||||
(define-public python-django
 | 
					(define-public python-django
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python-django")
 | 
					    (name "python-django")
 | 
				
			||||||
    (version "3.2.4")
 | 
					    (version "3.2.6")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (pypi-uri "Django" version))
 | 
					              (uri (pypi-uri "Django" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "15pjwyvrx4n8gi8n51b14wp54bg4jqapr25p52597zn6ikdxijb6"))))
 | 
					                "08p0gf1n548fjba76wspcj1jb3li6lr7xi87w2xq7hylr528azzj"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:phases
 | 
					     '(#:phases
 | 
				
			||||||
| 
						 | 
					@ -79,6 +80,8 @@
 | 
				
			||||||
           (lambda* (#:key tests? #:allow-other-keys)
 | 
					           (lambda* (#:key tests? #:allow-other-keys)
 | 
				
			||||||
             (if tests?
 | 
					             (if tests?
 | 
				
			||||||
                 (with-directory-excursion "tests"
 | 
					                 (with-directory-excursion "tests"
 | 
				
			||||||
 | 
					                   ;; Tests expect PYTHONPATH to contain the root directory.
 | 
				
			||||||
 | 
					                   (setenv "PYTHONPATH" "..")
 | 
				
			||||||
                   (invoke "python" "runtests.py"
 | 
					                   (invoke "python" "runtests.py"
 | 
				
			||||||
                           ;; By default tests run in parallel, which may cause
 | 
					                           ;; By default tests run in parallel, which may cause
 | 
				
			||||||
                           ;; various race conditions.  Run sequentially for
 | 
					                           ;; various race conditions.  Run sequentially for
 | 
				
			||||||
| 
						 | 
					@ -181,6 +184,42 @@ to the @dfn{don't repeat yourself} (DRY) principle.")
 | 
				
			||||||
commands, additional database fields and admin extensions.")
 | 
					commands, additional database fields and admin extensions.")
 | 
				
			||||||
    (license license:expat)))
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python-django-localflavor
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "python-django-localflavor")
 | 
				
			||||||
 | 
					    (version "3.1")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (pypi-uri "django-localflavor" version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "0i1s0ijfd9rv2cp5x174jcyjpwn7fyg7s1wpbvlwm96bpdvs6bxc"))))
 | 
				
			||||||
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (replace 'check
 | 
				
			||||||
 | 
					           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
 | 
				
			||||||
 | 
					             (when tests?
 | 
				
			||||||
 | 
					               (add-installed-pythonpath inputs outputs)
 | 
				
			||||||
 | 
					               (setenv "PYTHONPATH"
 | 
				
			||||||
 | 
					                       (string-append ".:"
 | 
				
			||||||
 | 
					                                      (getenv "PYTHONPATH")))
 | 
				
			||||||
 | 
					               (invoke "invoke" "test")))))))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("python-coverage" ,python-coverage)
 | 
				
			||||||
 | 
					       ("python-invoke" ,python-invoke)
 | 
				
			||||||
 | 
					       ("python-pytest-django" ,python-pytest-django)
 | 
				
			||||||
 | 
					       ("which" ,which)))
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("python-django" ,python-django)
 | 
				
			||||||
 | 
					       ("python-stdnum" ,python-stdnum)))
 | 
				
			||||||
 | 
					    (home-page "https://django-localflavor.readthedocs.io/en/latest/")
 | 
				
			||||||
 | 
					    (synopsis "Country-specific Django helpers")
 | 
				
			||||||
 | 
					    (description "Django-LocalFlavor is a collection of assorted pieces of code
 | 
				
			||||||
 | 
					that are useful for particular countries or cultures.")
 | 
				
			||||||
 | 
					    (license license:bsd-3)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public python-django-simple-math-captcha
 | 
					(define-public python-django-simple-math-captcha
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python-django-simple-math-captcha")
 | 
					    (name "python-django-simple-math-captcha")
 | 
				
			||||||
| 
						 | 
					@ -305,16 +344,19 @@ size and quality.")
 | 
				
			||||||
(define-public python-pytest-django
 | 
					(define-public python-pytest-django
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python-pytest-django")
 | 
					    (name "python-pytest-django")
 | 
				
			||||||
    (version "3.10.0")
 | 
					    (version "4.4.0")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (pypi-uri "pytest-django" version))
 | 
					              (uri (pypi-uri "pytest-django" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "19nvqsb7b9kz3ikpb50m8ppf7mfhzrapdxsqd5hhd1pdfz8dprjd"))))
 | 
					                "0mglnz0w6k7dgw1jn6giv56pmdjd6a3zwwkhxb2kyzmzk0viw5xm"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     ;; The test suite is disabled because there are many test failures (see:
 | 
				
			||||||
 | 
					     ;; https://github.com/pytest-dev/pytest-django/issues/943).
 | 
				
			||||||
 | 
					     `(#:tests? #f
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (replace 'check
 | 
					         (replace 'check
 | 
				
			||||||
           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
 | 
					           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
 | 
				
			||||||
| 
						 | 
					@ -334,9 +376,8 @@ size and quality.")
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("python-django" ,python-django)
 | 
					     `(("python-django" ,python-django)
 | 
				
			||||||
       ("python-setuptools-scm" ,python-setuptools-scm)
 | 
					       ("python-setuptools-scm" ,python-setuptools-scm)
 | 
				
			||||||
 | 
					 | 
				
			||||||
       ;; For tests.
 | 
					       ;; For tests.
 | 
				
			||||||
       ("python-pytest-xdist" ,python-pytest-xdist)))
 | 
					       ("python-pytest-xdist" ,python-pytest-xdist-next)))
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("python-pytest" ,python-pytest)))
 | 
					     `(("python-pytest" ,python-pytest)))
 | 
				
			||||||
    (home-page "https://pytest-django.readthedocs.org/")
 | 
					    (home-page "https://pytest-django.readthedocs.org/")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 | 
					;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 | 
				
			||||||
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 | 
					;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 | 
				
			||||||
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
					;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
				
			||||||
;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
 | 
					;;; Copyright © 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -151,7 +151,7 @@ a continuous layout.")
 | 
				
			||||||
(define-public pdf2djvu
 | 
					(define-public pdf2djvu
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "pdf2djvu")
 | 
					    (name "pdf2djvu")
 | 
				
			||||||
    (version "0.9.17.1")
 | 
					    (version "0.9.18")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
| 
						 | 
					@ -159,7 +159,7 @@ a continuous layout.")
 | 
				
			||||||
             "https://github.com/jwilk/pdf2djvu/releases/download/" version
 | 
					             "https://github.com/jwilk/pdf2djvu/releases/download/" version
 | 
				
			||||||
             "/pdf2djvu-" version ".tar.xz"))
 | 
					             "/pdf2djvu-" version ".tar.xz"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "18r648kna6ccw0m0nfxxnsmz541k69d0w9zzqvm1x2l5qyyvgfsv"))))
 | 
					        (base32 "0vxa0b3g7zhflc5m6ln4f0hi0shsqyqc3344y7azlllibxc5ba22"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("gettext" ,gettext-minimal)
 | 
					     `(("gettext" ,gettext-minimal)
 | 
				
			||||||
| 
						 | 
					@ -174,7 +174,12 @@ a continuous layout.")
 | 
				
			||||||
       ("poppler-data" ,poppler-data)
 | 
					       ("poppler-data" ,poppler-data)
 | 
				
			||||||
       ("util-linux-lib" ,util-linux "lib"))) ; for libuuid
 | 
					       ("util-linux-lib" ,util-linux "lib"))) ; for libuuid
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:test-target "test"))
 | 
					     `(#:test-target "test"
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-before 'check 'set-home-for-tests
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             (setenv "HOME" "/tmp"))))))
 | 
				
			||||||
    (synopsis "PDF to DjVu converter")
 | 
					    (synopsis "PDF to DjVu converter")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
     "@code{pdf2djvu} creates DjVu files from PDF files.
 | 
					     "@code{pdf2djvu} creates DjVu files from PDF files.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -539,14 +539,14 @@ asynchronous fashion.")
 | 
				
			||||||
(define-public nsd
 | 
					(define-public nsd
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "nsd")
 | 
					    (name "nsd")
 | 
				
			||||||
    (version "4.3.6")
 | 
					    (version "4.3.7")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (string-append "https://www.nlnetlabs.nl/downloads/nsd/nsd-"
 | 
					       (uri (string-append "https://www.nlnetlabs.nl/downloads/nsd/nsd-"
 | 
				
			||||||
                           version ".tar.gz"))
 | 
					                           version ".tar.gz"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "062zwx4k5rgpg2c0b4721ldj36aj8clrxv79mlfw9b15ap7w1rmy"))))
 | 
					        (base32 "1bg87g0i66hw16fm7gbqmzyi2rcn1hadzz0bg9b8s5mx7g2rwfzx"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:configure-flags
 | 
					     `(#:configure-flags
 | 
				
			||||||
| 
						 | 
					@ -609,14 +609,14 @@ to result in system-wide compromise.")
 | 
				
			||||||
(define-public unbound
 | 
					(define-public unbound
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "unbound")
 | 
					    (name "unbound")
 | 
				
			||||||
    (version "1.13.1")
 | 
					    (version "1.13.2")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (string-append "https://www.unbound.net/downloads/unbound-"
 | 
					       (uri (string-append "https://www.unbound.net/downloads/unbound-"
 | 
				
			||||||
                           version ".tar.gz"))
 | 
					                           version ".tar.gz"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "1f2hky62f4xxnjr0lncrzz4gipg01rp12pf98mrqkgf5ixxxj145"))))
 | 
					        (base32 "10qs1q26lzw18ljggnbz0cc5f7lr9ksj615xbrmh4amryd3va4qa"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (outputs '("out" "python"))
 | 
					    (outputs '("out" "python"))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
| 
						 | 
					@ -947,14 +947,14 @@ synthesis, and on-the-fly re-configuration.")
 | 
				
			||||||
(define-public knot-resolver
 | 
					(define-public knot-resolver
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "knot-resolver")
 | 
					    (name "knot-resolver")
 | 
				
			||||||
    (version "5.3.2")
 | 
					    (version "5.4.1")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "https://secure.nic.cz/files/knot-resolver/"
 | 
					              (uri (string-append "https://secure.nic.cz/files/knot-resolver/"
 | 
				
			||||||
                                  "knot-resolver-" version ".tar.xz"))
 | 
					                                  "knot-resolver-" version ".tar.xz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0dhlq25lig8wmn72ambfmb1njwwp980d98i9q7a24d79bxyl8vwb"))))
 | 
					                "0rixiqfj53rfabrz8qpnq4whx8y29d2m5w64a4jlwx7gv4nrd2zv"))))
 | 
				
			||||||
    (build-system meson-build-system)
 | 
					    (build-system meson-build-system)
 | 
				
			||||||
    (outputs '("out" "doc"))
 | 
					    (outputs '("out" "doc"))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,6 +6,8 @@
 | 
				
			||||||
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 | 
					;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 | 
				
			||||||
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
					;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
				
			||||||
;;; Copyright © 2021 Mark H Weaver <mhw@netris.org>
 | 
					;;; Copyright © 2021 Mark H Weaver <mhw@netris.org>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Andrew Whatson <whatson@gmail.com>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -24,16 +26,18 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-module (gnu packages docbook)
 | 
					(define-module (gnu packages docbook)
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages bash)
 | 
				
			||||||
  #:use-module (gnu packages compression)
 | 
					  #:use-module (gnu packages compression)
 | 
				
			||||||
  #:use-module (gnu packages imagemagick)
 | 
					  #:use-module (gnu packages imagemagick)
 | 
				
			||||||
  #:use-module (gnu packages inkscape)
 | 
					  #:use-module (gnu packages inkscape)
 | 
				
			||||||
  #:use-module (gnu packages tex)
 | 
					  #:use-module (gnu packages tex)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages texinfo)
 | 
				
			||||||
  #:use-module (gnu packages perl)
 | 
					  #:use-module (gnu packages perl)
 | 
				
			||||||
  #:use-module (gnu packages python)
 | 
					  #:use-module (gnu packages python)
 | 
				
			||||||
  #:use-module (gnu packages base)
 | 
					  #:use-module (gnu packages base)
 | 
				
			||||||
  #:use-module (gnu packages web-browsers)
 | 
					  #:use-module (gnu packages web-browsers)
 | 
				
			||||||
  #:use-module (gnu packages xml)
 | 
					  #:use-module (gnu packages xml)
 | 
				
			||||||
  #:use-module (guix licenses)
 | 
					  #:use-module ((guix licenses) #:prefix license:)
 | 
				
			||||||
  #:use-module (guix packages)
 | 
					  #:use-module (guix packages)
 | 
				
			||||||
  #:use-module (guix download)
 | 
					  #:use-module (guix download)
 | 
				
			||||||
  #:use-module ((guix build utils) #:select (alist-replace))
 | 
					  #:use-module ((guix build utils) #:select (alist-replace))
 | 
				
			||||||
| 
						 | 
					@ -80,7 +84,7 @@
 | 
				
			||||||
     "DocBook is general purpose XML and SGML document type particularly well
 | 
					     "DocBook is general purpose XML and SGML document type particularly well
 | 
				
			||||||
suited to books and papers about computer hardware and software (though it is
 | 
					suited to books and papers about computer hardware and software (though it is
 | 
				
			||||||
by no means limited to these applications.)  This package provides XML DTDs.")
 | 
					by no means limited to these applications.)  This package provides XML DTDs.")
 | 
				
			||||||
    (license (x11-style "" "See file headers."))))
 | 
					    (license (license:x11-style "" "See file headers."))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public docbook-xml
 | 
					(define-public docbook-xml
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
| 
						 | 
					@ -223,7 +227,7 @@ by no means limited to these applications.)  This package provides XML DTDs.")
 | 
				
			||||||
    (synopsis "DocBook XSL style sheets for document authoring")
 | 
					    (synopsis "DocBook XSL style sheets for document authoring")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
     "This package provides XSL style sheets for DocBook.")
 | 
					     "This package provides XSL style sheets for DocBook.")
 | 
				
			||||||
    (license (x11-style "" "See 'COPYING' file."))))
 | 
					    (license (license:x11-style "" "See 'COPYING' file."))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public docbook-dsssl
 | 
					(define-public docbook-dsssl
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
| 
						 | 
					@ -264,7 +268,7 @@ by no means limited to these applications.)  This package provides XML DTDs.")
 | 
				
			||||||
    (home-page "https://docbook.org/")
 | 
					    (home-page "https://docbook.org/")
 | 
				
			||||||
    (synopsis "DSSSL style sheets for DocBook")
 | 
					    (synopsis "DSSSL style sheets for DocBook")
 | 
				
			||||||
    (description "This package provides DSSSL style sheets for DocBook.")
 | 
					    (description "This package provides DSSSL style sheets for DocBook.")
 | 
				
			||||||
    (license (non-copyleft "file://README"))))
 | 
					    (license (license:non-copyleft "file://README"))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;; Private variable, used as the 'doc' output of the docbook-dsssl package.
 | 
					;;; Private variable, used as the 'doc' output of the docbook-dsssl package.
 | 
				
			||||||
(define docbook-dsssl-doc
 | 
					(define docbook-dsssl-doc
 | 
				
			||||||
| 
						 | 
					@ -302,7 +306,7 @@ by no means limited to these applications.)  This package provides XML DTDs.")
 | 
				
			||||||
    (home-page "https://docbook.org/")
 | 
					    (home-page "https://docbook.org/")
 | 
				
			||||||
    (synopsis "DocBook DSSSL style sheets documentation")
 | 
					    (synopsis "DocBook DSSSL style sheets documentation")
 | 
				
			||||||
    (description "Documentation for the DocBook DSSSL style sheets.")
 | 
					    (description "Documentation for the DocBook DSSSL style sheets.")
 | 
				
			||||||
    (license (non-copyleft "file://doc/LEGALNOTICE.htm"))))
 | 
					    (license (license:non-copyleft "file://doc/LEGALNOTICE.htm"))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public docbook-sgml
 | 
					(define-public docbook-sgml
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
| 
						 | 
					@ -344,7 +348,7 @@ by no means limited to these applications.)  This package provides XML DTDs.")
 | 
				
			||||||
    (home-page "https://docbook.org")
 | 
					    (home-page "https://docbook.org")
 | 
				
			||||||
    (synopsis "DocBook SGML style sheets for document authoring")
 | 
					    (synopsis "DocBook SGML style sheets for document authoring")
 | 
				
			||||||
    (description "This package provides SGML style sheets for DocBook.")
 | 
					    (description "This package provides SGML style sheets for DocBook.")
 | 
				
			||||||
    (license (x11-style "" "See file headers."))))
 | 
					    (license (license:x11-style "" "See file headers."))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public docbook-sgml-3.1
 | 
					(define-public docbook-sgml-3.1
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
| 
						 | 
					@ -385,7 +389,7 @@ by no means limited to these applications.)  This package provides XML DTDs.")
 | 
				
			||||||
    (synopsis "ISO 8879 character entities")
 | 
					    (synopsis "ISO 8879 character entities")
 | 
				
			||||||
    (description "ISO 8879 character entities that are typically used in
 | 
					    (description "ISO 8879 character entities that are typically used in
 | 
				
			||||||
the in DocBook SGML DTDs.")
 | 
					the in DocBook SGML DTDs.")
 | 
				
			||||||
    (license (x11-style "" "See file headers."))))
 | 
					    (license (license:x11-style "" "See file headers."))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public dblatex
 | 
					(define-public dblatex
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
| 
						 | 
					@ -413,7 +417,7 @@ the in DocBook SGML DTDs.")
 | 
				
			||||||
                                        texlive-latex-fancyvrb
 | 
					                                        texlive-latex-fancyvrb
 | 
				
			||||||
                                        texlive-latex-float
 | 
					                                        texlive-latex-float
 | 
				
			||||||
                                        texlive-latex-footmisc
 | 
					                                        texlive-latex-footmisc
 | 
				
			||||||
                                        texlive-latex-hyperref
 | 
					                                        texlive-hyperref
 | 
				
			||||||
                                        texlive-latex-jknapltx
 | 
					                                        texlive-latex-jknapltx
 | 
				
			||||||
                                        texlive-latex-listings
 | 
					                                        texlive-latex-listings
 | 
				
			||||||
                                        texlive-latex-multirow
 | 
					                                        texlive-latex-multirow
 | 
				
			||||||
| 
						 | 
					@ -422,10 +426,10 @@ the in DocBook SGML DTDs.")
 | 
				
			||||||
                                        texlive-latex-refcount
 | 
					                                        texlive-latex-refcount
 | 
				
			||||||
                                        texlive-latex-subfigure
 | 
					                                        texlive-latex-subfigure
 | 
				
			||||||
                                        texlive-latex-titlesec
 | 
					                                        texlive-latex-titlesec
 | 
				
			||||||
                                        texlive-latex-wasysym
 | 
					                                        texlive-wasysym
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                        texlive-fonts-rsfs
 | 
					                                        texlive-fonts-rsfs
 | 
				
			||||||
                                        texlive-fonts-stmaryrd
 | 
					                                        texlive-stmaryrd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                        texlive-generic-iftex)))
 | 
					                                        texlive-generic-iftex)))
 | 
				
			||||||
       ("imagemagick" ,imagemagick)     ;for convert
 | 
					       ("imagemagick" ,imagemagick)     ;for convert
 | 
				
			||||||
| 
						 | 
					@ -465,7 +469,7 @@ to DVI, PostScript or PDF by translating them in pure LaTeX as a first
 | 
				
			||||||
process.  MathML 2.0 markups are supported too.  It started as a clone of
 | 
					process.  MathML 2.0 markups are supported too.  It started as a clone of
 | 
				
			||||||
DB2LaTeX.")
 | 
					DB2LaTeX.")
 | 
				
			||||||
    ;; lib/contrib/which is under an X11 license
 | 
					    ;; lib/contrib/which is under an X11 license
 | 
				
			||||||
    (license gpl2+)))
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; This is a variant of the 'dblatex' package that is not updated often.  It
 | 
					;; This is a variant of the 'dblatex' package that is not updated often.  It
 | 
				
			||||||
;; is intended to be used as a native-input at build-time only, e.g. by
 | 
					;; is intended to be used as a native-input at build-time only, e.g. by
 | 
				
			||||||
| 
						 | 
					@ -561,4 +565,93 @@ more conveniently via the following wrappers:
 | 
				
			||||||
@item sgmldiff
 | 
					@item sgmldiff
 | 
				
			||||||
Detect the differences in markup between two SGML files.
 | 
					Detect the differences in markup between two SGML files.
 | 
				
			||||||
@end table")
 | 
					@end table")
 | 
				
			||||||
    (license gpl2+)))
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public docbook2x
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "docbook2x")
 | 
				
			||||||
 | 
					    (version "0.8.8")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append "mirror://sourceforge/docbook2x/docbook2x/"
 | 
				
			||||||
 | 
					                                  version "/docbook2X-" version ".tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "0ifwzk99rzjws0ixzimbvs83x6cxqk1xzmg84wa1p7bs6rypaxs0"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("bash-minimal" ,bash-minimal)
 | 
				
			||||||
 | 
					       ("docbook-xml" ,docbook-xml)
 | 
				
			||||||
 | 
					       ("perl" ,perl)
 | 
				
			||||||
 | 
					       ("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
 | 
				
			||||||
 | 
					       ("perl-xml-parser" ,perl-xml-parser)
 | 
				
			||||||
 | 
					       ("perl-xml-sax" ,perl-xml-sax)
 | 
				
			||||||
 | 
					       ("perl-xml-sax-base" ,perl-xml-sax-base)
 | 
				
			||||||
 | 
					       ("texinfo" ,texinfo)
 | 
				
			||||||
 | 
					       ("xsltproc" ,libxslt)))
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-after 'configure 'patch-sources
 | 
				
			||||||
 | 
					           (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             ;; Fix failed substitution in config.pl
 | 
				
			||||||
 | 
					             (substitute* "perl/config.pl"
 | 
				
			||||||
 | 
					               (("\\$\\{prefix\\}")
 | 
				
			||||||
 | 
					                (assoc-ref outputs "out")))
 | 
				
			||||||
 | 
					             ;; Fix a failing test (maybe it worked with old texinfo?)
 | 
				
			||||||
 | 
					             (substitute* "test/complete-manuals/at1.xml"
 | 
				
			||||||
 | 
					               (("<bridgehead>")
 | 
				
			||||||
 | 
					                "<bridgehead renderas=\"sect2\">"))
 | 
				
			||||||
 | 
					             ;; Patch all the tests use DocBook 4.5
 | 
				
			||||||
 | 
					             (substitute* (find-files "test" "\\.xml$")
 | 
				
			||||||
 | 
					               (("\"-//OASIS//DTD DocBook XML V4\\..+//EN\"")
 | 
				
			||||||
 | 
					                "\"-//OASIS//DTD DocBook XML V4.5//EN\"")
 | 
				
			||||||
 | 
					               (("\"http://www\\.oasis-open\\.org/docbook/xml/4\\..+/docbookx.dtd\"")
 | 
				
			||||||
 | 
					                "\"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd\""))
 | 
				
			||||||
 | 
					             ;; Set XML catalogs for tests to pass
 | 
				
			||||||
 | 
					             (setenv "XML_CATALOG_FILES"
 | 
				
			||||||
 | 
					                     (string-append (assoc-ref inputs "docbook-xml")
 | 
				
			||||||
 | 
					                                    "/xml/dtd/docbook/catalog.xml"))))
 | 
				
			||||||
 | 
					         (add-after 'install 'wrap-programs
 | 
				
			||||||
 | 
					           (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             (let* ((out (assoc-ref outputs "out"))
 | 
				
			||||||
 | 
					                    (programs
 | 
				
			||||||
 | 
					                     (map (lambda (p)
 | 
				
			||||||
 | 
					                            (string-append out "/bin/" p))
 | 
				
			||||||
 | 
					                          '("db2x_manxml" "db2x_texixml" "db2x_xsltproc"
 | 
				
			||||||
 | 
					                            "docbook2man" "docbook2texi")))
 | 
				
			||||||
 | 
					                    (perl5lib
 | 
				
			||||||
 | 
					                     (map (lambda (i)
 | 
				
			||||||
 | 
					                            (string-append (assoc-ref inputs i)
 | 
				
			||||||
 | 
					                                           "/lib/perl5/site_perl"))
 | 
				
			||||||
 | 
					                          '("perl-xml-namespacesupport"
 | 
				
			||||||
 | 
					                            "perl-xml-parser"
 | 
				
			||||||
 | 
					                            "perl-xml-sax"
 | 
				
			||||||
 | 
					                            "perl-xml-sax-base")))
 | 
				
			||||||
 | 
					                    (xml-catalog-files
 | 
				
			||||||
 | 
					                     (list (string-append (assoc-ref inputs "docbook-xml")
 | 
				
			||||||
 | 
					                                          "/xml/dtd/docbook/catalog.xml"))))
 | 
				
			||||||
 | 
					               (map (lambda (program)
 | 
				
			||||||
 | 
					                      (wrap-program program
 | 
				
			||||||
 | 
					                        `("PERL5LIB" ":" prefix
 | 
				
			||||||
 | 
					                          ,perl5lib)
 | 
				
			||||||
 | 
					                        `("XML_CATALOG_FILES" " " prefix
 | 
				
			||||||
 | 
					                          ,xml-catalog-files)))
 | 
				
			||||||
 | 
					                    programs))))
 | 
				
			||||||
 | 
					         (add-after 'install 'create-symlinks
 | 
				
			||||||
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             (let ((out (assoc-ref outputs "out")))
 | 
				
			||||||
 | 
					               ;; Create db2x_* symlinks to satisfy some configure scripts
 | 
				
			||||||
 | 
					               ;; which use these names to differentiate from an older
 | 
				
			||||||
 | 
					               ;; docbook2man script provided by docbook-utils.
 | 
				
			||||||
 | 
					               (map (lambda (prog)
 | 
				
			||||||
 | 
					                      (symlink prog (string-append out "/bin/db2x_" prog)))
 | 
				
			||||||
 | 
					                    '("docbook2man" "docbook2texi"))))))))
 | 
				
			||||||
 | 
					    (home-page "http://docbook2x.sourceforge.net")
 | 
				
			||||||
 | 
					    (synopsis "Convert DocBook to man page and Texinfo format")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "docbook2X is a software package that converts DocBook documents into the
 | 
				
			||||||
 | 
					traditional Unix man page format and the GNU Texinfo format.  Notable features
 | 
				
			||||||
 | 
					include table support for man pages, internationalization support, and easy
 | 
				
			||||||
 | 
					customization of the output using XSLT.")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,199 +0,0 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					 | 
				
			||||||
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@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/>.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define-module (gnu packages drones)
 | 
					 | 
				
			||||||
  #:use-module (guix licenses)
 | 
					 | 
				
			||||||
  #:use-module (guix packages)
 | 
					 | 
				
			||||||
  #:use-module (gnu packages cross-base)
 | 
					 | 
				
			||||||
  #:use-module (gnu packages pkg-config)
 | 
					 | 
				
			||||||
  #:use-module (gnu packages python)
 | 
					 | 
				
			||||||
  #:use-module (gnu packages python-xyz)
 | 
					 | 
				
			||||||
  #:use-module (gnu packages xml)
 | 
					 | 
				
			||||||
  #:use-module (guix download)
 | 
					 | 
				
			||||||
  #:use-module (guix utils)
 | 
					 | 
				
			||||||
  #:use-module (guix git-download)
 | 
					 | 
				
			||||||
  #:use-module (guix build-system gnu))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define (ardupilot-type->tag type)
 | 
					 | 
				
			||||||
  (case type
 | 
					 | 
				
			||||||
    ((copter) "Copter")
 | 
					 | 
				
			||||||
    ((plane)  "ArduPlane")
 | 
					 | 
				
			||||||
    ((rover)  "Rover")
 | 
					 | 
				
			||||||
    (else #f)))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define (ardupilot-type->waf-cmd type)
 | 
					 | 
				
			||||||
  (symbol->string type))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define* (make-ardupilot-firmware #:key name version base32 type board target)
 | 
					 | 
				
			||||||
  (package
 | 
					 | 
				
			||||||
    (name (string-append name "-" board))
 | 
					 | 
				
			||||||
    (version version)
 | 
					 | 
				
			||||||
    (source
 | 
					 | 
				
			||||||
     (origin
 | 
					 | 
				
			||||||
       (method git-fetch)
 | 
					 | 
				
			||||||
       (uri (git-reference
 | 
					 | 
				
			||||||
             (url "https://github.com/ArduPilot/ardupilot")
 | 
					 | 
				
			||||||
             (commit (string-append
 | 
					 | 
				
			||||||
                      (ardupilot-type->tag type) "-" version))
 | 
					 | 
				
			||||||
             ;; XXX: Ardupilot includes several git submodules. They should be
 | 
					 | 
				
			||||||
             ;; avoided but as this is not supported upstream, and not trivial
 | 
					 | 
				
			||||||
             ;; to fix, keep it this way for now.
 | 
					 | 
				
			||||||
             (recursive? #t)))
 | 
					 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					 | 
				
			||||||
       (sha256 base32)))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ;; Could also be waf-build-system but every phase has to be rewritten
 | 
					 | 
				
			||||||
    ;; anyway.
 | 
					 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					 | 
				
			||||||
    (arguments
 | 
					 | 
				
			||||||
     `(#:imported-modules ((gnu build cross-toolchain)
 | 
					 | 
				
			||||||
                           ,@%gnu-build-system-modules)
 | 
					 | 
				
			||||||
       #:phases
 | 
					 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					 | 
				
			||||||
         (delete 'bootstrap)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         ;; Remove the root waf script that relies on waf git submodule.
 | 
					 | 
				
			||||||
         (add-before 'configure 'setup-waf
 | 
					 | 
				
			||||||
           (lambda* (#:key native-inputs inputs #:allow-other-keys)
 | 
					 | 
				
			||||||
             (let ((waf (assoc-ref (or native-inputs inputs) "waf")))
 | 
					 | 
				
			||||||
               (delete-file "waf")
 | 
					 | 
				
			||||||
               (copy-file (string-append waf "/bin/waf") "waf"))
 | 
					 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         ;; When cross-compiling, we do not want to use the default gnu
 | 
					 | 
				
			||||||
         ;; cross-compiler, so set CROSS_CPATH and CROSS_LIBRARY_PATH
 | 
					 | 
				
			||||||
         ;; variables ourselves instead.
 | 
					 | 
				
			||||||
         (delete 'set-cross-path)
 | 
					 | 
				
			||||||
         (add-before 'configure 'set-custom-cross-cpath
 | 
					 | 
				
			||||||
           (lambda* (#:key native-inputs inputs #:allow-other-keys)
 | 
					 | 
				
			||||||
             ((@@ (gnu build cross-toolchain) set-cross-path)
 | 
					 | 
				
			||||||
              #:inputs
 | 
					 | 
				
			||||||
              `(("libc" . ,(assoc-ref (or native-inputs inputs)
 | 
					 | 
				
			||||||
                                      "ardupilot-cross-libc"))
 | 
					 | 
				
			||||||
                ("xkernel-headers" .
 | 
					 | 
				
			||||||
                 ,(assoc-ref (or native-inputs inputs)
 | 
					 | 
				
			||||||
                             "ardupilot-cross-kernel-headers"))))
 | 
					 | 
				
			||||||
             ;; We need to produce a static binary, so that it can works on
 | 
					 | 
				
			||||||
             ;; other systems than Guix System. Add a static version of the
 | 
					 | 
				
			||||||
             ;; cross libc to CROSS_LIBRARY_PATH variable.
 | 
					 | 
				
			||||||
             (setenv "CROSS_LIBRARY_PATH"
 | 
					 | 
				
			||||||
                     (string-append
 | 
					 | 
				
			||||||
                      (getenv "CROSS_LIBRARY_PATH") ":"
 | 
					 | 
				
			||||||
                      (assoc-ref (or native-inputs inputs)
 | 
					 | 
				
			||||||
                                 "ardupilot-cross-libc-static") "/lib"))
 | 
					 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         ;; Remove dependencies to 'git'.
 | 
					 | 
				
			||||||
         (add-before 'configure 'remove-git
 | 
					 | 
				
			||||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
					 | 
				
			||||||
             (substitute* "wscript"
 | 
					 | 
				
			||||||
               (("^.*cfg\\.load\\('git_submodule.*$")
 | 
					 | 
				
			||||||
                ""))
 | 
					 | 
				
			||||||
             (substitute* "Tools/ardupilotwaf/boards.py"
 | 
					 | 
				
			||||||
               (("^.*GIT_VERSION.*$")
 | 
					 | 
				
			||||||
                ""))
 | 
					 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         ;; Configure for the given BOARD, and force a static build for
 | 
					 | 
				
			||||||
         ;; reasons exposed above.
 | 
					 | 
				
			||||||
         (replace 'configure
 | 
					 | 
				
			||||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
					 | 
				
			||||||
             (invoke "./waf" "configure" "--board" ,board "--static")
 | 
					 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         (replace 'build
 | 
					 | 
				
			||||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
					 | 
				
			||||||
             (invoke "./waf" ,(ardupilot-type->waf-cmd type))
 | 
					 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         ;; Do not run tests as we are always cross-compiling.
 | 
					 | 
				
			||||||
         (delete 'check)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         ;; Install the produced firmware.
 | 
					 | 
				
			||||||
         (replace 'install
 | 
					 | 
				
			||||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
					 | 
				
			||||||
             (let* ((out (assoc-ref outputs "out"))
 | 
					 | 
				
			||||||
                    (bin (string-append out "/bin")))
 | 
					 | 
				
			||||||
               (mkdir-p bin)
 | 
					 | 
				
			||||||
               (copy-recursively
 | 
					 | 
				
			||||||
                (string-append "build/" ,board "/bin") bin))
 | 
					 | 
				
			||||||
             #t)))))
 | 
					 | 
				
			||||||
    (native-inputs
 | 
					 | 
				
			||||||
     `(("waf" ,python-waf)
 | 
					 | 
				
			||||||
       ("python" ,python)
 | 
					 | 
				
			||||||
       ("python-future" ,python-future)
 | 
					 | 
				
			||||||
       ("python-lxml" ,python-lxml)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       ;; Packages needed for cross-compiling the firmware.
 | 
					 | 
				
			||||||
       ("ardupilot-cross-gcc" ,(cross-gcc target
 | 
					 | 
				
			||||||
                                          #:xbinutils
 | 
					 | 
				
			||||||
                                          (cross-binutils target)
 | 
					 | 
				
			||||||
                                          #:libc
 | 
					 | 
				
			||||||
                                          (cross-libc target)))
 | 
					 | 
				
			||||||
       ("ardupilot-cross-libc" ,(cross-libc target))
 | 
					 | 
				
			||||||
       ("ardupilot-cross-libc-static" ,(cross-libc target) "static")
 | 
					 | 
				
			||||||
       ("ardupilot-cross-kernel-headers"
 | 
					 | 
				
			||||||
        ,@(assoc-ref (package-propagated-inputs
 | 
					 | 
				
			||||||
                      (cross-libc target))
 | 
					 | 
				
			||||||
                     "kernel-headers"))
 | 
					 | 
				
			||||||
       ("ardupilot-cross-binutils" ,(cross-binutils target))
 | 
					 | 
				
			||||||
       ("ardupilot-cross-pkg-config" ,(parameterize ((%current-target-system
 | 
					 | 
				
			||||||
                                                      target))
 | 
					 | 
				
			||||||
                                        pkg-config))))
 | 
					 | 
				
			||||||
    (home-page "https://ardupilot.org/")
 | 
					 | 
				
			||||||
    (synopsis "Unmanned vehicle autopilot software suite")
 | 
					 | 
				
			||||||
    (description "@code{ardupilot} is an unmanned vehicle autopilot software
 | 
					 | 
				
			||||||
suite capable of controlling autonomous:
 | 
					 | 
				
			||||||
@itemize
 | 
					 | 
				
			||||||
@item multirotor drones
 | 
					 | 
				
			||||||
@item fixed-wing and vtol aircraft
 | 
					 | 
				
			||||||
@item helicopters
 | 
					 | 
				
			||||||
@item ground rovers
 | 
					 | 
				
			||||||
@item boats
 | 
					 | 
				
			||||||
@item submarines
 | 
					 | 
				
			||||||
@item antenna trackers
 | 
					 | 
				
			||||||
@end itemize")
 | 
					 | 
				
			||||||
    (license gpl3+)))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define (make-arducopter-firmware board target)
 | 
					 | 
				
			||||||
  (make-ardupilot-firmware
 | 
					 | 
				
			||||||
   #:name "arducopter"
 | 
					 | 
				
			||||||
   #:version "3.6.11"
 | 
					 | 
				
			||||||
   #:base32 (base32 "1zkr2nhkksmrriirs2dnp8a0gcf9rfqw1x86pzhh6w4ciqwpidqn")
 | 
					 | 
				
			||||||
   #:type 'copter
 | 
					 | 
				
			||||||
   #:board board
 | 
					 | 
				
			||||||
   #:target target))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define (make-arduplane-firmware board target)
 | 
					 | 
				
			||||||
  (make-ardupilot-firmware
 | 
					 | 
				
			||||||
   #:name "arduplane"
 | 
					 | 
				
			||||||
   #:version "4.0.1"
 | 
					 | 
				
			||||||
   #:base32 (base32 "0awafvrppg4ilwpbhw88r5xkbgqrmqypsn6lbzyi6bz0zy5cfhb5")
 | 
					 | 
				
			||||||
   #:type 'plane
 | 
					 | 
				
			||||||
   #:board board
 | 
					 | 
				
			||||||
   #:target target))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define-public arducopter-bbbmini
 | 
					 | 
				
			||||||
  (make-arducopter-firmware "bbbmini" "arm-linux-gnueabihf"))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define-public arduplane-bbbmini
 | 
					 | 
				
			||||||
  (make-arduplane-firmware "bbbmini" "arm-linux-gnueabihf"))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;; Firmware for Bebop and Bebop2 drones.
 | 
					 | 
				
			||||||
(define-public arducopter-bebop
 | 
					 | 
				
			||||||
  (make-arducopter-firmware "bebop" "arm-linux-gnueabihf"))
 | 
					 | 
				
			||||||
| 
						 | 
					@ -8,6 +8,7 @@
 | 
				
			||||||
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 | 
					;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 | 
				
			||||||
;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
 | 
					;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
 | 
				
			||||||
;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
 | 
					;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 la snesne <lasnesne@lagunposprasihopre.org>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -35,6 +36,7 @@
 | 
				
			||||||
  #:use-module (guix build-system meson)
 | 
					  #:use-module (guix build-system meson)
 | 
				
			||||||
  #:use-module (guix build-system python)
 | 
					  #:use-module (guix build-system python)
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages autotools)
 | 
				
			||||||
  #:use-module (gnu packages compression)
 | 
					  #:use-module (gnu packages compression)
 | 
				
			||||||
  #:use-module (gnu packages curl)
 | 
					  #:use-module (gnu packages curl)
 | 
				
			||||||
  #:use-module (gnu packages databases)
 | 
					  #:use-module (gnu packages databases)
 | 
				
			||||||
| 
						 | 
					@ -116,7 +118,7 @@ with Microsoft Compiled HTML (CHM) files")
 | 
				
			||||||
(define-public calibre
 | 
					(define-public calibre
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "calibre")
 | 
					    (name "calibre")
 | 
				
			||||||
    (version "5.14.0")
 | 
					    (version "5.21.0")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
      (origin
 | 
					      (origin
 | 
				
			||||||
        (method url-fetch)
 | 
					        (method url-fetch)
 | 
				
			||||||
| 
						 | 
					@ -125,7 +127,7 @@ with Microsoft Compiled HTML (CHM) files")
 | 
				
			||||||
                            version ".tar.xz"))
 | 
					                            version ".tar.xz"))
 | 
				
			||||||
        (sha256
 | 
					        (sha256
 | 
				
			||||||
         (base32
 | 
					         (base32
 | 
				
			||||||
          "0w8j9r9qa56r8gm9b10dwh8zrzqlv79s2br82jqg02lrnrbwwv0q"))
 | 
					          "0mq2w8blq6ykaml812axakwkqcw85qcpfwijdikn7kvbrhnnp2s5"))
 | 
				
			||||||
        (modules '((guix build utils)))
 | 
					        (modules '((guix build utils)))
 | 
				
			||||||
        (snippet
 | 
					        (snippet
 | 
				
			||||||
          '(begin
 | 
					          '(begin
 | 
				
			||||||
| 
						 | 
					@ -475,7 +477,7 @@ following formats:
 | 
				
			||||||
(define-public cozy
 | 
					(define-public cozy
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "cozy")
 | 
					    (name "cozy")
 | 
				
			||||||
    (version "1.0.3")
 | 
					    (version "1.1.2")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -484,7 +486,7 @@ following formats:
 | 
				
			||||||
             (commit version)))
 | 
					             (commit version)))
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "0m0xiqpb87pwr3fhy0a4qxg67yjhwchcxj3x2anyy0li4inryxag"))))
 | 
					        (base32 "0hifzzhhf0ww6iar9gswjfndy3i54s6jc41zaazlx4scc7r6fhs0"))))
 | 
				
			||||||
    (build-system meson-build-system)
 | 
					    (build-system meson-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:glib-or-gtk? #t
 | 
					     `(#:glib-or-gtk? #t
 | 
				
			||||||
| 
						 | 
					@ -493,14 +495,12 @@ following formats:
 | 
				
			||||||
         (add-after 'unpack 'patch-desktop-file
 | 
					         (add-after 'unpack 'patch-desktop-file
 | 
				
			||||||
           (lambda _
 | 
					           (lambda _
 | 
				
			||||||
             (substitute* "data/com.github.geigi.cozy.desktop"
 | 
					             (substitute* "data/com.github.geigi.cozy.desktop"
 | 
				
			||||||
               (("Exec=com.github.geigi.cozy") "Exec=cozy"))
 | 
					               (("Exec=com.github.geigi.cozy") "Exec=cozy"))))
 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
         (add-after 'install 'patch-executable-name
 | 
					         (add-after 'install 'patch-executable-name
 | 
				
			||||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
             (with-directory-excursion
 | 
					             (with-directory-excursion
 | 
				
			||||||
                 (string-append (assoc-ref outputs "out") "/bin")
 | 
					                 (string-append (assoc-ref outputs "out") "/bin")
 | 
				
			||||||
               (rename-file "com.github.geigi.cozy" "cozy"))
 | 
					               (rename-file "com.github.geigi.cozy" "cozy"))))
 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
         (add-after 'wrap 'wrap-libs
 | 
					         (add-after 'wrap 'wrap-libs
 | 
				
			||||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
             (let* ((out               (assoc-ref outputs "out"))
 | 
					             (let* ((out               (assoc-ref outputs "out"))
 | 
				
			||||||
| 
						 | 
					@ -519,8 +519,7 @@ following formats:
 | 
				
			||||||
                 `("LD_LIBRARY_PATH" ":" prefix (,libmagic-path))
 | 
					                 `("LD_LIBRARY_PATH" ":" prefix (,libmagic-path))
 | 
				
			||||||
                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
 | 
					                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
 | 
				
			||||||
                 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
 | 
					                 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
 | 
				
			||||||
                 `("GUIX_PYTHONPATH" ":" prefix (,python-path ,pylib))))
 | 
					                 `("GUIX_PYTHONPATH" ":" prefix (,python-path ,pylib)))))))))
 | 
				
			||||||
             #t)))))
 | 
					 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("desktop-file-utils" ,desktop-file-utils)
 | 
					     `(("desktop-file-utils" ,desktop-file-utils)
 | 
				
			||||||
       ("gettext" ,gettext-minimal)
 | 
					       ("gettext" ,gettext-minimal)
 | 
				
			||||||
| 
						 | 
					@ -538,6 +537,7 @@ following formats:
 | 
				
			||||||
       ("gst-plugins-good" ,gst-plugins-good)
 | 
					       ("gst-plugins-good" ,gst-plugins-good)
 | 
				
			||||||
       ("gst-plugins-ugly" ,gst-plugins-ugly)
 | 
					       ("gst-plugins-ugly" ,gst-plugins-ugly)
 | 
				
			||||||
       ("gtk+" ,gtk+)
 | 
					       ("gtk+" ,gtk+)
 | 
				
			||||||
 | 
					       ("libdazzle" ,libdazzle)
 | 
				
			||||||
       ("libgee" ,libgee)
 | 
					       ("libgee" ,libgee)
 | 
				
			||||||
       ("libhandy" ,libhandy)
 | 
					       ("libhandy" ,libhandy)
 | 
				
			||||||
       ("python-distro" ,python-distro)
 | 
					       ("python-distro" ,python-distro)
 | 
				
			||||||
| 
						 | 
					@ -596,3 +596,47 @@ Some of the current features:
 | 
				
			||||||
    (description "xCHM is a graphical CHM file viewer.  It is a frontend to
 | 
					    (description "xCHM is a graphical CHM file viewer.  It is a frontend to
 | 
				
			||||||
the CHM library CHMLIB.")
 | 
					the CHM library CHMLIB.")
 | 
				
			||||||
    (license license:gpl2+)))
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public libmobi
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "libmobi")
 | 
				
			||||||
 | 
					    (version "0.6")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method git-fetch)
 | 
				
			||||||
 | 
					              (uri (git-reference
 | 
				
			||||||
 | 
					                    (url "https://github.com/bfabiszewski/libmobi/")
 | 
				
			||||||
 | 
					                    (commit (string-append "v" version))))
 | 
				
			||||||
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "0yps72cm609xn2k7alflkdhp9kgr1w7zzyxjygz0n1kqrdcplihh"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("autoconf" ,autoconf)
 | 
				
			||||||
 | 
					       ("automake" ,automake)
 | 
				
			||||||
 | 
					       ("libtool" ,libtool)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("zlib" ,zlib)
 | 
				
			||||||
 | 
					       ("libxml2" ,libxml2)))
 | 
				
			||||||
 | 
					    (home-page "https://github.com/bfabiszewski/libmobi/")
 | 
				
			||||||
 | 
					    (synopsis "C library for handling MOBI formats")
 | 
				
			||||||
 | 
					    (description "Libmobi is a C library for handling MOBI ebook
 | 
				
			||||||
 | 
					format documents, with the following features:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@itemize
 | 
				
			||||||
 | 
					@item reading and parsing:
 | 
				
			||||||
 | 
					@itemize
 | 
				
			||||||
 | 
					@item some older text Palmdoc formats (pdb),
 | 
				
			||||||
 | 
					@item Mobipocket files (prc, mobi),
 | 
				
			||||||
 | 
					@item newer MOBI files including KF8 format (azw, azw3),
 | 
				
			||||||
 | 
					@item Replica Print files (azw4)
 | 
				
			||||||
 | 
					@end itemize
 | 
				
			||||||
 | 
					@item recreating source files using indices
 | 
				
			||||||
 | 
					@item reconstructing references (links and embedded) in html files
 | 
				
			||||||
 | 
					@item reconstructing source structure that can be fed back to kindlegen
 | 
				
			||||||
 | 
					@item reconstructing dictionary markup (orth, infl tags)
 | 
				
			||||||
 | 
					@item writing back loaded documents
 | 
				
			||||||
 | 
					@item metadata editing
 | 
				
			||||||
 | 
					@item handling encrypted documents
 | 
				
			||||||
 | 
					@end itemize\n")
 | 
				
			||||||
 | 
					    (license license:lgpl3+)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -140,7 +140,7 @@ of categories with some of the activities available in that category.
 | 
				
			||||||
(define-public gcompris-qt
 | 
					(define-public gcompris-qt
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "gcompris-qt")
 | 
					    (name "gcompris-qt")
 | 
				
			||||||
    (version "1.0")
 | 
					    (version "1.1")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
| 
						 | 
					@ -148,8 +148,8 @@ of categories with some of the activities available in that category.
 | 
				
			||||||
             "https://gcompris.net/download/qt/src/gcompris-qt-"
 | 
					             "https://gcompris.net/download/qt/src/gcompris-qt-"
 | 
				
			||||||
             version ".tar.xz"))
 | 
					             version ".tar.xz"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "08dw1q0h4qz2q0ksa5pbmb9v60hr1zv9skx6z8dlq9b1i7harnds"))))
 | 
					        (base32 "1bpjwrv83rhikbycpyfpf6dbqr0xfq6amgdpqfgfph6nzr3zka7h"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system qt-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
| 
						 | 
					@ -160,23 +160,7 @@ of categories with some of the activities available in that category.
 | 
				
			||||||
             (setenv "DISPLAY" ":1")
 | 
					             (setenv "DISPLAY" ":1")
 | 
				
			||||||
             ;; The test suite wants to write to /homeless-shelter
 | 
					             ;; The test suite wants to write to /homeless-shelter
 | 
				
			||||||
             (setenv "HOME" (getcwd))
 | 
					             (setenv "HOME" (getcwd))
 | 
				
			||||||
             #t))
 | 
					             #t)))
 | 
				
			||||||
         (add-after 'install 'wrap-executable
 | 
					 | 
				
			||||||
           (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
					 | 
				
			||||||
             (let ((out (assoc-ref outputs "out")))
 | 
					 | 
				
			||||||
               (wrap-program (string-append out "/bin/gcompris-qt")
 | 
					 | 
				
			||||||
                 `("QT_PLUGIN_PATH" ":" prefix
 | 
					 | 
				
			||||||
                   ,(map (lambda (label)
 | 
					 | 
				
			||||||
                           (string-append (assoc-ref inputs label)
 | 
					 | 
				
			||||||
                                          "/lib/qt5/plugins"))
 | 
					 | 
				
			||||||
                         '("qtbase" "qtdeclarative" "qtmultimedia" "qtsvg")))
 | 
					 | 
				
			||||||
                 `("QML2_IMPORT_PATH" ":" prefix
 | 
					 | 
				
			||||||
                   ,(map (lambda (label)
 | 
					 | 
				
			||||||
                           (string-append (assoc-ref inputs label)
 | 
					 | 
				
			||||||
                                          "/lib/qt5/qml"))
 | 
					 | 
				
			||||||
                         '("qtdeclarative" "qtgraphicaleffects"
 | 
					 | 
				
			||||||
                           "qtmultimedia" "qtquickcontrols"))))
 | 
					 | 
				
			||||||
               #t))))
 | 
					 | 
				
			||||||
       #:configure-flags (list "-DQML_BOX2D_MODULE=disabled"
 | 
					       #:configure-flags (list "-DQML_BOX2D_MODULE=disabled"
 | 
				
			||||||
                               "-DBUILD_TESTING=TRUE")))
 | 
					                               "-DBUILD_TESTING=TRUE")))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
| 
						 | 
					@ -330,7 +314,7 @@ easy.")
 | 
				
			||||||
(define-public snap
 | 
					(define-public snap
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "snap")
 | 
					    (name "snap")
 | 
				
			||||||
    (version "6.6.0")
 | 
					    (version "6.9.0")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -339,7 +323,7 @@ easy.")
 | 
				
			||||||
             (commit (string-append "v" version))))
 | 
					             (commit (string-append "v" version))))
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "1k0j0sp6zz2hnh7zc7f086zc3sld01h7sk277j6fak914yv6slzy"))))
 | 
					        (base32 "1wppz57lrrribrfnaiv6jrrf703w7i6ja0dnz8yx8naxhbsglwyf"))))
 | 
				
			||||||
    (build-system trivial-build-system)
 | 
					    (build-system trivial-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:modules ((guix build utils))
 | 
					     `(#:modules ((guix build utils))
 | 
				
			||||||
| 
						 | 
					@ -368,8 +352,7 @@ easy.")
 | 
				
			||||||
             (call-with-output-file script
 | 
					             (call-with-output-file script
 | 
				
			||||||
               (lambda (port)
 | 
					               (lambda (port)
 | 
				
			||||||
                 (format port "#!~a\n~a '~a'" bash xdg-open snap)))
 | 
					                 (format port "#!~a\n~a '~a'" bash xdg-open snap)))
 | 
				
			||||||
             (chmod script #o555)))
 | 
					             (chmod script #o555))))))
 | 
				
			||||||
         #t)))
 | 
					 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("bash" ,bash-minimal)
 | 
					     `(("bash" ,bash-minimal)
 | 
				
			||||||
       ("js-filesaver" ,js-filesaver)
 | 
					       ("js-filesaver" ,js-filesaver)
 | 
				
			||||||
| 
						 | 
					@ -1034,6 +1017,66 @@ factoring numbers and simplifying fractions, as well as zapping rocks
 | 
				
			||||||
floating through space.")
 | 
					floating through space.")
 | 
				
			||||||
    (license license:gpl3+)))
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public libeb
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "libeb")
 | 
				
			||||||
 | 
					    (version "4.4.3")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri
 | 
				
			||||||
 | 
					        (string-append "ftp://ftp.sra.co.jp/pub/misc/eb/eb-" version ".tar.bz2"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "0psbdzirazfnn02hp3gsx7xxss9f1brv4ywp6a15ihvggjki1rxb"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (native-inputs ; Required for building docs
 | 
				
			||||||
 | 
					     `(("perl" ,perl)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("zlib" ,zlib)))
 | 
				
			||||||
 | 
					    (synopsis "C library for accessing Japanese CD-ROM books")
 | 
				
			||||||
 | 
					    (description "The EB library is a library for accessing CD-ROM
 | 
				
			||||||
 | 
					books, which are a common way to distribute electronic dictionaries in
 | 
				
			||||||
 | 
					Japan.  It supports the EB, EBG, EBXA, EBXA-C, S-EBXA and EPWING
 | 
				
			||||||
 | 
					formats.")
 | 
				
			||||||
 | 
					    ;; FIXME: I cannot find a real home page
 | 
				
			||||||
 | 
					    (home-page "https://sra.co.jp/")
 | 
				
			||||||
 | 
					    (license license:bsd-3)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public qolibri
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "qolibri")
 | 
				
			||||||
 | 
					    (version "2.1.4")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method git-fetch)
 | 
				
			||||||
 | 
					       (uri (git-reference
 | 
				
			||||||
 | 
					             (url"https://github.com/ludios/qolibri")
 | 
				
			||||||
 | 
					             (commit version)))
 | 
				
			||||||
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "066y7jcq9vg6hnvn7qxckzhd1qkgfzpzhw69nw5psm43qbaca8lg"))))
 | 
				
			||||||
 | 
					    (build-system qt-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:tests? #f)) ; no test target
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("qttools", qttools)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("libeb" ,libeb)
 | 
				
			||||||
 | 
					       ("qtbase" ,qtbase-5)
 | 
				
			||||||
 | 
					       ("qtmultimedia" ,qtmultimedia)
 | 
				
			||||||
 | 
					       ("qtquickcontrols2" ,qtquickcontrols2)
 | 
				
			||||||
 | 
					       ("qtdeclarative" ,qtdeclarative)
 | 
				
			||||||
 | 
					       ("qtwebchannel" ,qtwebchannel)
 | 
				
			||||||
 | 
					       ("qtwebengine" ,qtwebengine)
 | 
				
			||||||
 | 
					       ("zlib" ,zlib)))
 | 
				
			||||||
 | 
					    (synopsis "EPWING dictionary reader")
 | 
				
			||||||
 | 
					    (description "qolibri is a dictionary viewer for the EPWING dictionary
 | 
				
			||||||
 | 
					format.  Most monolingual Japanese dictionaries can only be found in the
 | 
				
			||||||
 | 
					EPWING format.")
 | 
				
			||||||
 | 
					    (home-page "https://github.com/ludios/qolibri")
 | 
				
			||||||
 | 
					    (license license:gpl2)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public mdk
 | 
					(define-public mdk
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "mdk")
 | 
					    (name "mdk")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
					@ -16,6 +16,7 @@
 | 
				
			||||||
;;; Copyright © 2021 Felipe Balbi <balbi@kernel.org>
 | 
					;;; Copyright © 2021 Felipe Balbi <balbi@kernel.org>
 | 
				
			||||||
;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
 | 
					;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
 | 
				
			||||||
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
					;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -183,7 +184,10 @@ SuperCPU.")
 | 
				
			||||||
         (add-after 'unpack 'fix-source
 | 
					         (add-after 'unpack 'fix-source
 | 
				
			||||||
           (lambda _
 | 
					           (lambda _
 | 
				
			||||||
             (substitute* (find-files "." ".*\\.[ch]")
 | 
					             (substitute* (find-files "." ".*\\.[ch]")
 | 
				
			||||||
               (("\"zlib/zlib.h\"") "<zlib.h>"))))
 | 
					               (("\"zlib/zlib.h\"") "<zlib.h>"))
 | 
				
			||||||
 | 
					             (substitute* "Makefile"
 | 
				
			||||||
 | 
					               (("CFLAGS:=-std=gnu99" all)
 | 
				
			||||||
 | 
					                (string-append all " -fcommon")))))
 | 
				
			||||||
         (delete 'configure)
 | 
					         (delete 'configure)
 | 
				
			||||||
         (replace 'install
 | 
					         (replace 'install
 | 
				
			||||||
           (lambda* args
 | 
					           (lambda* args
 | 
				
			||||||
| 
						 | 
					@ -722,7 +726,7 @@ The following systems are supported:
 | 
				
			||||||
(define-public mgba
 | 
					(define-public mgba
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "mgba")
 | 
					    (name "mgba")
 | 
				
			||||||
    (version "0.9.1")
 | 
					    (version "0.9.2")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -731,7 +735,7 @@ The following systems are supported:
 | 
				
			||||||
             (commit version)))
 | 
					             (commit version)))
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "163azad5y4zxwzxyrb481rwfc2p86v99pf7nvdr6bavzq98x2z8h"))
 | 
					        (base32 "16kngkzf08jflqxwbgafb47091vqqb9pbhazg9cd94cy81ahz3q3"))
 | 
				
			||||||
       (modules '((guix build utils)))
 | 
					       (modules '((guix build utils)))
 | 
				
			||||||
       (snippet
 | 
					       (snippet
 | 
				
			||||||
        ;; Make sure we don't use the bundled software.
 | 
					        ;; Make sure we don't use the bundled software.
 | 
				
			||||||
| 
						 | 
					@ -740,17 +744,18 @@ The following systems are supported:
 | 
				
			||||||
            (lambda (subdir)
 | 
					            (lambda (subdir)
 | 
				
			||||||
              (let ((lib-subdir (string-append "src/third-party/" subdir)))
 | 
					              (let ((lib-subdir (string-append "src/third-party/" subdir)))
 | 
				
			||||||
                (delete-file-recursively lib-subdir)))
 | 
					                (delete-file-recursively lib-subdir)))
 | 
				
			||||||
            '("libpng" "lzma" "sqlite3" "zlib"))
 | 
					            '("libpng" "lzma" "sqlite3" "zlib"))))))
 | 
				
			||||||
           #t))))
 | 
					 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f                      ;no "test" target
 | 
					     `(#:tests? #f                      ;no "test" target
 | 
				
			||||||
       #:configure-flags
 | 
					       #:configure-flags
 | 
				
			||||||
       (list "-DUSE_LZMA=OFF"           ;do not use bundled LZMA
 | 
					       (list "-DUSE_LZMA=OFF"           ;do not use bundled LZMA
 | 
				
			||||||
             "-DUSE_LIBZIP=OFF")))      ;use "zlib" instead
 | 
					             "-DUSE_LIBZIP=OFF")))      ;use "zlib" instead
 | 
				
			||||||
    (native-inputs `(("pkg-config" ,pkg-config)
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("pkg-config" ,pkg-config)
 | 
				
			||||||
       ("qttools" ,qttools)))
 | 
					       ("qttools" ,qttools)))
 | 
				
			||||||
    (inputs `(("ffmpeg" ,ffmpeg)
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("ffmpeg" ,ffmpeg)
 | 
				
			||||||
       ("libedit" ,libedit)
 | 
					       ("libedit" ,libedit)
 | 
				
			||||||
       ("libelf" ,libelf)
 | 
					       ("libelf" ,libelf)
 | 
				
			||||||
       ("libepoxy" ,libepoxy)
 | 
					       ("libepoxy" ,libepoxy)
 | 
				
			||||||
| 
						 | 
					@ -777,7 +782,7 @@ and Game Boy Color games.")
 | 
				
			||||||
(define-public sameboy
 | 
					(define-public sameboy
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "sameboy")
 | 
					    (name "sameboy")
 | 
				
			||||||
    (version "0.14.3")
 | 
					    (version "0.14.4")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -786,7 +791,7 @@ and Game Boy Color games.")
 | 
				
			||||||
             (commit (string-append "v" version))))
 | 
					             (commit (string-append "v" version))))
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "1dipidx12ai62hnzf0pvnsk1cgjcmw1h5x2r7ilxq0k0pkia5b7a"))))
 | 
					        (base32 "0zp11qm8b3cmx70pzczyh4vv4jyhlh4jnci8kn6b30c8lzl43g83"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("rgbds" ,rgbds)
 | 
					     `(("rgbds" ,rgbds)
 | 
				
			||||||
| 
						 | 
					@ -1769,7 +1774,7 @@ This is a part of the TiLP project.")
 | 
				
			||||||
(define-public mame
 | 
					(define-public mame
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "mame")
 | 
					    (name "mame")
 | 
				
			||||||
    (version "0.233")
 | 
					    (version "0.235")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -1778,7 +1783,7 @@ This is a part of the TiLP project.")
 | 
				
			||||||
             (commit (apply string-append "mame" (string-split version #\.)))))
 | 
					             (commit (apply string-append "mame" (string-split version #\.)))))
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "1zq7hvss004mwczk3jvyalkj9c5v6npswhkc2wj7dxyxz770clb3"))
 | 
					        (base32 "1iz5p51am7gh19i0zx96vfpfpza8xvrz9f2pd908jsc4xpr36agd"))
 | 
				
			||||||
       (modules '((guix build utils)))
 | 
					       (modules '((guix build utils)))
 | 
				
			||||||
       (snippet
 | 
					       (snippet
 | 
				
			||||||
        ;; Remove bundled libraries.
 | 
					        ;; Remove bundled libraries.
 | 
				
			||||||
| 
						 | 
					@ -1787,8 +1792,7 @@ This is a part of the TiLP project.")
 | 
				
			||||||
             (for-each delete-file-recursively
 | 
					             (for-each delete-file-recursively
 | 
				
			||||||
                       '("asio" "expat" "glm" "libflac" "libjpeg" "lua"
 | 
					                       '("asio" "expat" "glm" "libflac" "libjpeg" "lua"
 | 
				
			||||||
                         "portaudio" "portmidi" "pugixml" "rapidjson" "SDL2"
 | 
					                         "portaudio" "portmidi" "pugixml" "rapidjson" "SDL2"
 | 
				
			||||||
                         "SDL2-override" "sqlite3" "utf8proc" "zlib")))
 | 
					                         "SDL2-override" "sqlite3" "utf8proc" "zlib")))))))
 | 
				
			||||||
           #t))))
 | 
					 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:make-flags
 | 
					     `(#:make-flags
 | 
				
			||||||
| 
						 | 
					@ -1826,16 +1830,14 @@ This is a part of the TiLP project.")
 | 
				
			||||||
                 (install-file "uismall.bdf" fonts))
 | 
					                 (install-file "uismall.bdf" fonts))
 | 
				
			||||||
               (when (file-exists? "mame64")
 | 
					               (when (file-exists? "mame64")
 | 
				
			||||||
                 (rename-file "mame64" "mame"))
 | 
					                 (rename-file "mame64" "mame"))
 | 
				
			||||||
               (install-file "mame" (string-append out "/bin")))
 | 
					               (install-file "mame" (string-append out "/bin")))))
 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
         (add-after 'install 'install-documentation
 | 
					         (add-after 'install 'install-documentation
 | 
				
			||||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
             (let* ((out (assoc-ref outputs "out"))
 | 
					             (let* ((out (assoc-ref outputs "out"))
 | 
				
			||||||
                    (man (string-append out "/share/man/man1"))
 | 
					                    (man (string-append out "/share/man/man1"))
 | 
				
			||||||
                    (info (string-append out "/share/info")))
 | 
					                    (info (string-append out "/share/info")))
 | 
				
			||||||
               (install-file "docs/build/man/MAME.1" man)
 | 
					               (install-file "docs/build/man/MAME.1" man)
 | 
				
			||||||
               (install-file "docs/build/texinfo/MAME.info" info))
 | 
					               (install-file "docs/build/texinfo/MAME.info" info))))
 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
         (add-after 'install 'install-ini-file
 | 
					         (add-after 'install 'install-ini-file
 | 
				
			||||||
           ;; Generate an ini file so as to set some directories (e.g., roms)
 | 
					           ;; Generate an ini file so as to set some directories (e.g., roms)
 | 
				
			||||||
           ;; to a writable location, i.e., "$HOME/.mame/" and "$HOME/mame/".
 | 
					           ;; to a writable location, i.e., "$HOME/.mame/" and "$HOME/mame/".
 | 
				
			||||||
| 
						 | 
					@ -1894,8 +1896,7 @@ This is a part of the TiLP project.")
 | 
				
			||||||
                            select_directory     $HOME/mame/select~@
 | 
					                            select_directory     $HOME/mame/select~@
 | 
				
			||||||
                            icons_directory      $HOME/mame/icons~@
 | 
					                            icons_directory      $HOME/mame/icons~@
 | 
				
			||||||
                            covers_directory     $HOME/mame/covers~@
 | 
					                            covers_directory     $HOME/mame/covers~@
 | 
				
			||||||
                            ui_path              $HOME/.mame/ui~%")))
 | 
					                            ui_path              $HOME/.mame/ui~%"))))))
 | 
				
			||||||
               #t)))
 | 
					 | 
				
			||||||
         (add-after 'install 'install-desktop-file
 | 
					         (add-after 'install 'install-desktop-file
 | 
				
			||||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
             (let* ((out (assoc-ref outputs "out"))
 | 
					             (let* ((out (assoc-ref outputs "out"))
 | 
				
			||||||
| 
						 | 
					@ -1914,8 +1915,7 @@ This is a part of the TiLP project.")
 | 
				
			||||||
                           Type=Application~@
 | 
					                           Type=Application~@
 | 
				
			||||||
                           Categories=Game;Emulator;~@
 | 
					                           Categories=Game;Emulator;~@
 | 
				
			||||||
                           Keywords=Game;Emulator;Arcade;~%"
 | 
					                           Keywords=Game;Emulator;Arcade;~%"
 | 
				
			||||||
                           executable)))
 | 
					                           executable)))))))))
 | 
				
			||||||
               #t))))))
 | 
					 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("pkg-config" ,pkg-config)
 | 
					     `(("pkg-config" ,pkg-config)
 | 
				
			||||||
       ("sphinx" ,python-sphinx)
 | 
					       ("sphinx" ,python-sphinx)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -524,7 +524,7 @@ featuring various improvements and bug fixes.")))
 | 
				
			||||||
     ;; FIXME: with texlive-tiny citation references are rendered as question
 | 
					     ;; FIXME: with texlive-tiny citation references are rendered as question
 | 
				
			||||||
     ;; marks.  During the build warnings like these are printed:
 | 
					     ;; marks.  During the build warnings like these are printed:
 | 
				
			||||||
     ;; LaTeX Warning: Citation `nabors91' on page 2 undefined on input line 3.
 | 
					     ;; LaTeX Warning: Citation `nabors91' on page 2 undefined on input line 3.
 | 
				
			||||||
     `(("texlive" ,(texlive-updmap.cfg (list texlive-fonts-amsfonts)))
 | 
					     `(("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts)))
 | 
				
			||||||
       ("ghostscript" ,ghostscript)))
 | 
					       ("ghostscript" ,ghostscript)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:make-flags '("CC=gcc" "RM=rm" "SHELL=sh" "all")
 | 
					     `(#:make-flags '("CC=gcc" "RM=rm" "SHELL=sh" "all")
 | 
				
			||||||
| 
						 | 
					@ -929,6 +929,16 @@ Emacs).")
 | 
				
			||||||
                (string-append "NGSPICE_DLL_FILE=\""
 | 
					                (string-append "NGSPICE_DLL_FILE=\""
 | 
				
			||||||
                               (assoc-ref inputs "libngspice")
 | 
					                               (assoc-ref inputs "libngspice")
 | 
				
			||||||
                               "/lib/libngspice.so\"")))))
 | 
					                               "/lib/libngspice.so\"")))))
 | 
				
			||||||
 | 
					         (add-after 'unpack 'fix-python-detection
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             (substitute* "CMakeModules/FindPythonLibs.cmake"
 | 
				
			||||||
 | 
					               (("_PYTHON3_VERSIONS 3\\.8 3\\.7")
 | 
				
			||||||
 | 
					                "_PYTHON3_VERSIONS 3.9 3.8 3.7"))))
 | 
				
			||||||
 | 
					         (add-after 'unpack 'add-missing-include
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             (substitute* "common/lib_tree_model.cpp"
 | 
				
			||||||
 | 
					               (("#include <eda_pattern_match.h>" all)
 | 
				
			||||||
 | 
					                (string-append "#include <algorithm>\n" all)))))
 | 
				
			||||||
         (add-after 'install 'install-translations
 | 
					         (add-after 'install 'install-translations
 | 
				
			||||||
           (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
					           (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
				
			||||||
             (copy-recursively (assoc-ref inputs "kicad-i18n")
 | 
					             (copy-recursively (assoc-ref inputs "kicad-i18n")
 | 
				
			||||||
| 
						 | 
					@ -1947,11 +1957,12 @@ parallel computing platforms.  It also supports serial execution.")
 | 
				
			||||||
              (patches
 | 
					              (patches
 | 
				
			||||||
               (list (origin
 | 
					               (list (origin
 | 
				
			||||||
                       ;; Fix build with GCC 7.  Patch taken from Arch Linux:
 | 
					                       ;; Fix build with GCC 7.  Patch taken from Arch Linux:
 | 
				
			||||||
                       ;; https://git.archlinux.org/svntogit/community.git/tree/trunk?h=packages/freehdl
 | 
					                       ;; https://github.com/archlinux/svntogit-community/tree/packages/freehdl/trunk
 | 
				
			||||||
                       (method url-fetch)
 | 
					                       (method url-fetch)
 | 
				
			||||||
                       (uri "https://git.archlinux.org/svntogit/community.git\
 | 
					                       (uri (string-append "https://raw.githubusercontent.com"
 | 
				
			||||||
/plain/trunk/build-fix.patch?h=packages/freehdl\
 | 
					                                           "/archlinux/svntogit-community"
 | 
				
			||||||
&id=3bb90d64dfe6883e26083cd1fa96226d0d59175a")
 | 
					                                           "/3bb90d64dfe6883e26083cd1fa96226d0d59175a"
 | 
				
			||||||
 | 
					                                           "/trunk/build-fix.patch"))
 | 
				
			||||||
                       (file-name "freehdl-c++-namespace.patch")
 | 
					                       (file-name "freehdl-c++-namespace.patch")
 | 
				
			||||||
                       (sha256
 | 
					                       (sha256
 | 
				
			||||||
                        (base32
 | 
					                        (base32
 | 
				
			||||||
| 
						 | 
					@ -2406,7 +2417,7 @@ comments.")))
 | 
				
			||||||
       ("libtheora" ,libtheora)
 | 
					       ("libtheora" ,libtheora)
 | 
				
			||||||
       ("libtiff" ,libtiff)
 | 
					       ("libtiff" ,libtiff)
 | 
				
			||||||
       ("libxi" ,libxi)
 | 
					       ("libxi" ,libxi)
 | 
				
			||||||
       ("libxmlplusplus" ,libxmlplusplus)
 | 
					       ("libxml++" ,libxml++)
 | 
				
			||||||
       ("libxmu" ,libxmu)
 | 
					       ("libxmu" ,libxmu)
 | 
				
			||||||
       ("lz4" ,lz4)
 | 
					       ("lz4" ,lz4)
 | 
				
			||||||
       ("netcdf" ,netcdf)
 | 
					       ("netcdf" ,netcdf)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -571,17 +571,22 @@ directories.
 | 
				
			||||||
(define-public evisum
 | 
					(define-public evisum
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "evisum")
 | 
					    (name "evisum")
 | 
				
			||||||
    (version "0.5.11")
 | 
					    (version "0.5.13")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
      (origin
 | 
					      (origin
 | 
				
			||||||
        (method url-fetch)
 | 
					        (method url-fetch)
 | 
				
			||||||
        (uri (string-append "https://download.enlightenment.org/rel/apps/"
 | 
					        (uri (string-append "https://download.enlightenment.org/rel/apps/"
 | 
				
			||||||
                            "evisum/evisum-" version ".tar.xz"))
 | 
					                            "evisum/evisum-" version ".tar.xz"))
 | 
				
			||||||
        (sha256
 | 
					        (sha256
 | 
				
			||||||
         (base32 "0cbfg393nlf0k91a2hdlyakns3dpzvs3isd95dm3zizydyf9h8wc"))))
 | 
					         (base32 "1rjqvida4anh7gqjp6xrpk6kmhqb66r733yyr2ixphgxn33p3iac"))))
 | 
				
			||||||
    (build-system meson-build-system)
 | 
					    (build-system meson-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:tests? #f))                    ; no tests
 | 
					     '(#:tests? #f                      ; no tests
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-after 'unpack 'set-homedir
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             (setenv "HOME" (getcwd)))))))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("gettext" ,gettext-minimal)
 | 
					     `(("gettext" ,gettext-minimal)
 | 
				
			||||||
       ("pkg-config" ,pkg-config)))
 | 
					       ("pkg-config" ,pkg-config)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -415,8 +415,8 @@ from a mounted file system.")
 | 
				
			||||||
    (license license:gpl2+)))
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public bcachefs-tools
 | 
					(define-public bcachefs-tools
 | 
				
			||||||
  (let ((commit "fe1bb39aa52d9140981ba1e96f3c95ddf14006ce")
 | 
					  (let ((commit "6c42566c6204bb5dcd6af3b97257e548b9d2db67")
 | 
				
			||||||
        (revision "8"))
 | 
					        (revision "9"))
 | 
				
			||||||
    (package
 | 
					    (package
 | 
				
			||||||
      (name "bcachefs-tools")
 | 
					      (name "bcachefs-tools")
 | 
				
			||||||
      (version (git-version "0.1" revision commit))
 | 
					      (version (git-version "0.1" revision commit))
 | 
				
			||||||
| 
						 | 
					@ -428,7 +428,7 @@ from a mounted file system.")
 | 
				
			||||||
               (commit commit)))
 | 
					               (commit commit)))
 | 
				
			||||||
         (file-name (git-file-name name version))
 | 
					         (file-name (git-file-name name version))
 | 
				
			||||||
         (sha256
 | 
					         (sha256
 | 
				
			||||||
          (base32 "1ks6w2v76pfpp70cv1d6znxaw1g5alz1v6hf8z9gvj15r94vgpwz"))))
 | 
					          (base32 "0xagz0k3li10ydma55mnld0nb2pyfx90vsdvgjflgnx6jw3cq4dq"))))
 | 
				
			||||||
      (build-system gnu-build-system)
 | 
					      (build-system gnu-build-system)
 | 
				
			||||||
      (arguments
 | 
					      (arguments
 | 
				
			||||||
       `(#:make-flags
 | 
					       `(#:make-flags
 | 
				
			||||||
| 
						 | 
					@ -464,7 +464,11 @@ from a mounted file system.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
         ;; For tests.
 | 
					         ;; For tests.
 | 
				
			||||||
         ("python-pytest" ,python-pytest)
 | 
					         ("python-pytest" ,python-pytest)
 | 
				
			||||||
         ("valgrind" ,valgrind)))
 | 
					         ("valgrind" ,valgrind)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         ;; For generating documentation with rst2man.
 | 
				
			||||||
 | 
					         ("python" ,python)
 | 
				
			||||||
 | 
					         ("python-docutils" ,python-docutils)))
 | 
				
			||||||
      (inputs
 | 
					      (inputs
 | 
				
			||||||
       `(("eudev" ,eudev)
 | 
					       `(("eudev" ,eudev)
 | 
				
			||||||
         ("keyutils" ,keyutils)
 | 
					         ("keyutils" ,keyutils)
 | 
				
			||||||
| 
						 | 
					@ -1169,16 +1173,16 @@ with the included @command{xfstests-check} helper.")
 | 
				
			||||||
(define-public zfs
 | 
					(define-public zfs
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "zfs")
 | 
					    (name "zfs")
 | 
				
			||||||
    (version "2.0.5")
 | 
					    (version "2.1.0")
 | 
				
			||||||
    (outputs '("out" "module" "src"))
 | 
					    (outputs '("out" "module" "src"))
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
      (origin
 | 
					      (origin
 | 
				
			||||||
        (method url-fetch)
 | 
					        (method url-fetch)
 | 
				
			||||||
          (uri (string-append "https://github.com/zfsonlinux/zfs/releases"
 | 
					          (uri (string-append "https://github.com/openzfs/zfs/releases"
 | 
				
			||||||
                              "/download/zfs-" version
 | 
					                              "/download/zfs-" version
 | 
				
			||||||
                              "/zfs-" version ".tar.gz"))
 | 
					                              "/zfs-" version ".tar.gz"))
 | 
				
			||||||
          (sha256
 | 
					          (sha256
 | 
				
			||||||
           (base32 "1jbfm18hh9x4a9s5d7si8lapmq2aniphyriif9flrgsff26lj5rs"))))
 | 
					           (base32 "0kzkggwznp4m3503f2m4lcinbl99jg50j4asrwfpfk1862vdrgb0"))))
 | 
				
			||||||
    (build-system linux-module-build-system)
 | 
					    (build-system linux-module-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(;; The ZFS kernel module should not be downloaded since the license
 | 
					     `(;; The ZFS kernel module should not be downloaded since the license
 | 
				
			||||||
| 
						 | 
					@ -1209,6 +1213,25 @@ with the included @command{xfstests-check} helper.")
 | 
				
			||||||
                   (util-linux (assoc-ref inputs "util-linux"))
 | 
					                   (util-linux (assoc-ref inputs "util-linux"))
 | 
				
			||||||
                   (nfs-utils  (assoc-ref inputs "nfs-utils"))
 | 
					                   (nfs-utils  (assoc-ref inputs "nfs-utils"))
 | 
				
			||||||
                   (kmod       (assoc-ref inputs "kmod-runtime")))
 | 
					                   (kmod       (assoc-ref inputs "kmod-runtime")))
 | 
				
			||||||
 | 
					               ;; New feature "compatibility=" in 2.1.0.
 | 
				
			||||||
 | 
					               ;; This feature looks up in two locations:
 | 
				
			||||||
 | 
					               ;;   /etc/zfs/compatibility.d/
 | 
				
			||||||
 | 
					               ;;   /usr/share/zfs/compatibility.d/
 | 
				
			||||||
 | 
					               ;; The first is intended for system-specific compatibility
 | 
				
			||||||
 | 
					               ;; sets, while the second is what is installed with the
 | 
				
			||||||
 | 
					               ;; OpenZFS package, so use the absolute path for the first
 | 
				
			||||||
 | 
					               ;; (which requires patching in the file) and the store path
 | 
				
			||||||
 | 
					               ;; for the second (which it gets by default).
 | 
				
			||||||
 | 
					               (substitute* "include/sys/fs/zfs.h"
 | 
				
			||||||
 | 
					                 (("#define\tZPOOL_SYSCONF_COMPAT_D.*$")
 | 
				
			||||||
 | 
					                  ; Use absolute path.
 | 
				
			||||||
 | 
					                  "#define\tZPOOL_SYSCONF_COMPAT_D\t\"/etc/zfs/compatibility.d\"\n"))
 | 
				
			||||||
 | 
					               ;; Also update the manual, which uses absolute paths, so that
 | 
				
			||||||
 | 
					               ;; /usr/share/zfs/compatibility.d/ is referred via the store.
 | 
				
			||||||
 | 
					               (substitute* '("man/man7/zpoolprops.7"
 | 
				
			||||||
 | 
					                              "man/man7/zpool-features.7")
 | 
				
			||||||
 | 
					                 (("/usr/share/zfs/compatibility.d")
 | 
				
			||||||
 | 
					                  (string-append out "/share/zfs/compatibility.d")))
 | 
				
			||||||
               (substitute* "etc/Makefile.in"
 | 
					               (substitute* "etc/Makefile.in"
 | 
				
			||||||
                 ;; This just contains an example configuration file for
 | 
					                 ;; This just contains an example configuration file for
 | 
				
			||||||
                 ;; configuring ZFS on traditional init systems, skip it
 | 
					                 ;; configuring ZFS on traditional init systems, skip it
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,7 +16,7 @@
 | 
				
			||||||
;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
 | 
					;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
 | 
				
			||||||
;;; Copyright © 2019 Sebastian Schott <sschott@mailbox.org>
 | 
					;;; Copyright © 2019 Sebastian Schott <sschott@mailbox.org>
 | 
				
			||||||
;;; Copyright © 2020 Kei Kebreau <kkebreau@posteo.net>
 | 
					;;; Copyright © 2020 Kei Kebreau <kkebreau@posteo.net>
 | 
				
			||||||
;;; Copyright © 2020 Christopher Lemmer Webber <cwebber@dustycloud.org>
 | 
					;;; Copyright © 2020 Christine Lemmer-Webber <cwebber@dustycloud.org>
 | 
				
			||||||
;;; Copyright © 2020 Tom Zander <tomz@freedommail.ch>
 | 
					;;; Copyright © 2020 Tom Zander <tomz@freedommail.ch>
 | 
				
			||||||
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 | 
					;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 | 
				
			||||||
;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
 | 
					;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
 | 
				
			||||||
| 
						 | 
					@ -55,6 +55,7 @@
 | 
				
			||||||
  #:use-module (guix build-system go)
 | 
					  #:use-module (guix build-system go)
 | 
				
			||||||
  #:use-module (guix build-system qt)
 | 
					  #:use-module (guix build-system qt)
 | 
				
			||||||
  #:use-module (guix deprecation)
 | 
					  #:use-module (guix deprecation)
 | 
				
			||||||
 | 
					  #:use-module (guix gexp)
 | 
				
			||||||
  #:use-module (guix utils)
 | 
					  #:use-module (guix utils)
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
  #:use-module (gnu packages aidc)
 | 
					  #:use-module (gnu packages aidc)
 | 
				
			||||||
| 
						 | 
					@ -268,14 +269,14 @@ Accounting.")
 | 
				
			||||||
(define-public homebank
 | 
					(define-public homebank
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "homebank")
 | 
					    (name "homebank")
 | 
				
			||||||
    (version "5.5.2")
 | 
					    (version "5.5.3")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "http://homebank.free.fr/public/homebank-"
 | 
					              (uri (string-append "http://homebank.free.fr/public/homebank-"
 | 
				
			||||||
                                  version ".tar.gz"))
 | 
					                                  version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1lhyql94zx51vcw9hlc9r26wkm2bn6jdd4xvc95j7y69wiwg77lq"))))
 | 
					                "14qhv79a2waqzmf6l571wklgwq8j1pkmjvzkj5vhh44nia8hfdh7"))))
 | 
				
			||||||
    (build-system glib-or-gtk-build-system)
 | 
					    (build-system glib-or-gtk-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("pkg-config" ,pkg-config)
 | 
					     `(("pkg-config" ,pkg-config)
 | 
				
			||||||
| 
						 | 
					@ -501,7 +502,7 @@ do so.")
 | 
				
			||||||
(define-public electrum
 | 
					(define-public electrum
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "electrum")
 | 
					    (name "electrum")
 | 
				
			||||||
    (version "4.0.9")
 | 
					    (version "4.1.5")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
| 
						 | 
					@ -509,7 +510,7 @@ do so.")
 | 
				
			||||||
                           version "/Electrum-"
 | 
					                           version "/Electrum-"
 | 
				
			||||||
                           version ".tar.gz"))
 | 
					                           version ".tar.gz"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "1fvjiagi78f32nxgr2rx8jas8hxfvpp1c8fpfcalvykmlhdc2gva"))
 | 
					        (base32 "188r4zji985z8pm9b942xhmvv174yndk6jxagxl7ljk03wl2wiwi"))
 | 
				
			||||||
       (modules '((guix build utils)))
 | 
					       (modules '((guix build utils)))
 | 
				
			||||||
       (snippet
 | 
					       (snippet
 | 
				
			||||||
        '(begin
 | 
					        '(begin
 | 
				
			||||||
| 
						 | 
					@ -523,13 +524,16 @@ do so.")
 | 
				
			||||||
       ("python-protobuf" ,python-protobuf)
 | 
					       ("python-protobuf" ,python-protobuf)
 | 
				
			||||||
       ("python-aiohttp" ,python-aiohttp)
 | 
					       ("python-aiohttp" ,python-aiohttp)
 | 
				
			||||||
       ("python-aiohttp-socks" ,python-aiohttp-socks)
 | 
					       ("python-aiohttp-socks" ,python-aiohttp-socks)
 | 
				
			||||||
       ("python-aiorpcx" ,python-aiorpcx)
 | 
					       ("python-aiorpcx" ,python-aiorpcx-0.18)
 | 
				
			||||||
       ("python-certifi" ,python-certifi)
 | 
					       ("python-certifi" ,python-certifi)
 | 
				
			||||||
       ("python-bitstring" ,python-bitstring)
 | 
					       ("python-bitstring" ,python-bitstring)
 | 
				
			||||||
       ("python-attrs" ,python-attrs)
 | 
					       ("python-attrs" ,python-attrs)
 | 
				
			||||||
       ("python-cryptography" ,python-cryptography)
 | 
					       ("python-cryptography" ,python-cryptography)
 | 
				
			||||||
       ("python-qdarkstyle" ,python-qdarkstyle)
 | 
					       ("python-qdarkstyle" ,python-qdarkstyle)
 | 
				
			||||||
       ("python-dnspython" ,python-dnspython)
 | 
					       ("python-dnspython" ,python-dnspython)
 | 
				
			||||||
 | 
					       ("python-hidapi" ,python-hidapi)
 | 
				
			||||||
 | 
					       ("python-ledgerblue" ,python-ledgerblue)
 | 
				
			||||||
 | 
					       ("python-btchip-python" ,python-btchip-python)
 | 
				
			||||||
       ("libsecp256k1" ,libsecp256k1)))
 | 
					       ("libsecp256k1" ,libsecp256k1)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f                      ; no tests
 | 
					     `(#:tests? #f                      ; no tests
 | 
				
			||||||
| 
						 | 
					@ -564,7 +568,7 @@ other machines/servers.  Electrum does not download the Bitcoin blockchain.")
 | 
				
			||||||
(define-public electron-cash
 | 
					(define-public electron-cash
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "electron-cash")
 | 
					    (name "electron-cash")
 | 
				
			||||||
    (version "4.2.4")
 | 
					    (version "4.2.5")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -573,7 +577,7 @@ other machines/servers.  Electrum does not download the Bitcoin blockchain.")
 | 
				
			||||||
             (commit version)))
 | 
					             (commit version)))
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "1a4jqsfadv6xr7ydj79my71jyrp0sjlznsbxdxjsjgnsqk8r48w6"))))
 | 
					        (base32 "1fj797hbinxsqjwhh4l1vjsx1vzmgzf2apq7fnqqwpv9g0v2pch0"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("libevent" ,libevent)
 | 
					     `(("libevent" ,libevent)
 | 
				
			||||||
| 
						 | 
					@ -591,6 +595,7 @@ other machines/servers.  Electrum does not download the Bitcoin blockchain.")
 | 
				
			||||||
       ("python-pyaes" ,python-pyaes)
 | 
					       ("python-pyaes" ,python-pyaes)
 | 
				
			||||||
       ("python-pyqt" ,python-pyqt)
 | 
					       ("python-pyqt" ,python-pyqt)
 | 
				
			||||||
       ("python-pysocks" ,python-pysocks)
 | 
					       ("python-pysocks" ,python-pysocks)
 | 
				
			||||||
 | 
					       ("python-qdarkstyle" ,python-qdarkstyle)
 | 
				
			||||||
       ("python-qrcode" ,python-qrcode)
 | 
					       ("python-qrcode" ,python-qrcode)
 | 
				
			||||||
       ("python-requests" ,python-requests)
 | 
					       ("python-requests" ,python-requests)
 | 
				
			||||||
       ("python-stem" ,python-stem)
 | 
					       ("python-stem" ,python-stem)
 | 
				
			||||||
| 
						 | 
					@ -617,6 +622,11 @@ other machines/servers.  Electrum does not download the Bitcoin blockchain.")
 | 
				
			||||||
                (string-append "library_paths = ('"
 | 
					                (string-append "library_paths = ('"
 | 
				
			||||||
                               (assoc-ref inputs "libsecp256k1")
 | 
					                               (assoc-ref inputs "libsecp256k1")
 | 
				
			||||||
                               "/lib/libsecp256k1.so.0'")))))
 | 
					                               "/lib/libsecp256k1.so.0'")))))
 | 
				
			||||||
 | 
					         (add-after 'unpack 'relax-requirements
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             (substitute* "contrib/requirements/requirements.txt"
 | 
				
			||||||
 | 
					               (("qdarkstyle==2\\.6\\.8")
 | 
				
			||||||
 | 
					                "qdarkstyle"))))
 | 
				
			||||||
         (add-after 'install 'wrap-qt
 | 
					         (add-after 'install 'wrap-qt
 | 
				
			||||||
           (lambda* (#:key outputs inputs #:allow-other-keys)
 | 
					           (lambda* (#:key outputs inputs #:allow-other-keys)
 | 
				
			||||||
             (let ((out (assoc-ref outputs "out")))
 | 
					             (let ((out (assoc-ref outputs "out")))
 | 
				
			||||||
| 
						 | 
					@ -639,7 +649,7 @@ other machines/servers.  Electroncash does not download the Bitcoin Cash blockch
 | 
				
			||||||
  ;; the system's dynamically linked library.
 | 
					  ;; the system's dynamically linked library.
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "monero")
 | 
					    (name "monero")
 | 
				
			||||||
    (version "0.17.2.0")
 | 
					    (version "0.17.2.3")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -657,9 +667,14 @@ other machines/servers.  Electroncash does not download the Bitcoin Cash blockch
 | 
				
			||||||
            delete-file-recursively
 | 
					            delete-file-recursively
 | 
				
			||||||
            '("external/miniupnp" "external/rapidjson"
 | 
					            '("external/miniupnp" "external/rapidjson"
 | 
				
			||||||
              "external/unbound"))
 | 
					              "external/unbound"))
 | 
				
			||||||
 | 
					           ;; TODO: Remove the following when upgrading to a newer tagged
 | 
				
			||||||
 | 
					           ;; version as it will already contain the fix for Boost 1.76.
 | 
				
			||||||
 | 
					           (substitute* "contrib/epee/include/storages/portable_storage.h"
 | 
				
			||||||
 | 
					             (("#include \"int-util.h\"" all)
 | 
				
			||||||
 | 
					              (string-append all "\n#include <boost/mpl/contains.hpp>")))
 | 
				
			||||||
           #t))
 | 
					           #t))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "0jwlmrpzisvw1c06cvd5b3s3hd4w0pa1qmrypfwah67qj3x6hnb6"))))
 | 
					        (base32 "0nax991fshfh51grhh2ryfrwwws35k16gzl1l3niva28zff2xmq6"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("doxygen" ,doxygen)
 | 
					     `(("doxygen" ,doxygen)
 | 
				
			||||||
| 
						 | 
					@ -749,7 +764,7 @@ the Monero command line client and daemon.")
 | 
				
			||||||
(define-public monero-gui
 | 
					(define-public monero-gui
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "monero-gui")
 | 
					    (name "monero-gui")
 | 
				
			||||||
    (version "0.17.2.2")
 | 
					    (version "0.17.2.3")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -766,7 +781,7 @@ the Monero command line client and daemon.")
 | 
				
			||||||
           (delete-file-recursively "monero")
 | 
					           (delete-file-recursively "monero")
 | 
				
			||||||
           #t))
 | 
					           #t))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "0n7gfhm13y18ffqsqdajl4knd4h8m772fz6lh1lpkh198pwmw8f9"))))
 | 
					        (base32 "0qb746z1sxqrja7q9lqhhbm64v83sn67az4k7gs5q90iaw584qfc"))))
 | 
				
			||||||
    (build-system qt-build-system)
 | 
					    (build-system qt-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(,@(package-native-inputs monero)
 | 
					     `(,@(package-native-inputs monero)
 | 
				
			||||||
| 
						 | 
					@ -785,10 +800,10 @@ the Monero command line client and daemon.")
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f ; No tests
 | 
					     `(#:tests? #f ; No tests
 | 
				
			||||||
       #:configure-flags
 | 
					       #:configure-flags
 | 
				
			||||||
       (list "-DARCH=default"
 | 
					       ,#~(list "-DARCH=default"
 | 
				
			||||||
                "-DENABLE_PASS_STRENGTH_METER=ON"
 | 
					                "-DENABLE_PASS_STRENGTH_METER=ON"
 | 
				
			||||||
                (string-append "-DReadline_ROOT_DIR="
 | 
					                (string-append "-DReadline_ROOT_DIR="
 | 
				
			||||||
                            (assoc-ref %build-inputs "readline")))
 | 
					                               #$(this-package-input "readline")))
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-after 'unpack 'extract-monero-sources
 | 
					         (add-after 'unpack 'extract-monero-sources
 | 
				
			||||||
| 
						 | 
					@ -796,24 +811,18 @@ the Monero command line client and daemon.")
 | 
				
			||||||
           ;; to build the GUI.
 | 
					           ;; to build the GUI.
 | 
				
			||||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
					           (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
             (mkdir-p "monero")
 | 
					             (mkdir-p "monero")
 | 
				
			||||||
             (invoke "tar" "-xv" "--strip-components=1"
 | 
					             (copy-recursively (assoc-ref inputs "monero-source")
 | 
				
			||||||
                     "-C" "monero"
 | 
					                               "monero")))
 | 
				
			||||||
                     "-f" (assoc-ref inputs "monero-source"))))
 | 
					 | 
				
			||||||
         (add-after 'extract-monero-sources 'fix-build
 | 
					         (add-after 'extract-monero-sources 'fix-build
 | 
				
			||||||
           (lambda _
 | 
					           (lambda _
 | 
				
			||||||
             (substitute* "src/version.js.in"
 | 
					             (substitute* "src/version.js.in"
 | 
				
			||||||
               (("@VERSION_TAG_GUI@")
 | 
					               (("@VERSION_TAG_GUI@")
 | 
				
			||||||
                ,version))
 | 
					                ,version))
 | 
				
			||||||
             (substitute* "src/zxcvbn-c/makefile"
 | 
					 | 
				
			||||||
               (("\\?=") "="))
 | 
					 | 
				
			||||||
             (substitute* "external/CMakeLists.txt"
 | 
					             (substitute* "external/CMakeLists.txt"
 | 
				
			||||||
               (("add_library\\(quirc" all)
 | 
					               (("add_library\\(quirc" all)
 | 
				
			||||||
                (string-append
 | 
					                (string-append
 | 
				
			||||||
                 "set(CMAKE_C_FLAGS \"${CMAKE_C_FLAGS} -fPIC\")\n"
 | 
					                 "set(CMAKE_C_FLAGS \"${CMAKE_C_FLAGS} -fPIC\")\n"
 | 
				
			||||||
                 all)))))
 | 
					                 all)))))
 | 
				
			||||||
         (add-before 'configure 'generate-zxcvbn-c-header
 | 
					 | 
				
			||||||
           (lambda _
 | 
					 | 
				
			||||||
             (invoke "make" "-C" "src/zxcvbn-c" "dict-src.h")))
 | 
					 | 
				
			||||||
         (replace 'install
 | 
					         (replace 'install
 | 
				
			||||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
 | 
					             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
 | 
				
			||||||
| 
						 | 
					@ -935,6 +944,30 @@ Ledger Blue/Nano S.")
 | 
				
			||||||
(define-public python2-ledgerblue
 | 
					(define-public python2-ledgerblue
 | 
				
			||||||
  (package-with-python2 python-ledgerblue))
 | 
					  (package-with-python2 python-ledgerblue))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python-btchip-python
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "python-btchip-python")
 | 
				
			||||||
 | 
					    (version "0.1.32")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					      (origin
 | 
				
			||||||
 | 
					        (method url-fetch)
 | 
				
			||||||
 | 
					        (uri (pypi-uri "btchip-python" version))
 | 
				
			||||||
 | 
					        (sha256
 | 
				
			||||||
 | 
					          (base32
 | 
				
			||||||
 | 
					            "0mcg3gfd0qk8lhral3vy9cfd4pii9kzs42q71pf6b3y0c70y1x9l"))))
 | 
				
			||||||
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:tests? #f)) ; those require PyQt4
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					      `(("python-ecdsa" ,python-ecdsa)
 | 
				
			||||||
 | 
					        ("python-hidapi" ,python-hidapi)))
 | 
				
			||||||
 | 
					    (home-page "https://github.com/LedgerHQ/btchip-python")
 | 
				
			||||||
 | 
					    (synopsis "Python library to communicate with Ledger Nano dongle")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					      "This package provides a Python library to communicate with Ledger
 | 
				
			||||||
 | 
					Nano dongle.")
 | 
				
			||||||
 | 
					    (license license:asl2.0)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public python-trezor
 | 
					(define-public python-trezor
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python-trezor")
 | 
					    (name "python-trezor")
 | 
				
			||||||
| 
						 | 
					@ -1020,12 +1053,7 @@ the KeepKey Hardware Wallet.")
 | 
				
			||||||
       ("python-trezor-agent" ,python-trezor-agent)))
 | 
					       ("python-trezor-agent" ,python-trezor-agent)))
 | 
				
			||||||
    (home-page "https://github.com/romanz/trezor-agent")
 | 
					    (home-page "https://github.com/romanz/trezor-agent")
 | 
				
			||||||
    (synopsis "Ledger as hardware SSH/GPG agent")
 | 
					    (synopsis "Ledger as hardware SSH/GPG agent")
 | 
				
			||||||
    (description "This package allows using Ledger as hardware SSH/GPG agent.
 | 
					    (description "This package allows using Ledger as hardware SSH/GPG agent.")
 | 
				
			||||||
 | 
					 | 
				
			||||||
Usage for SSH: trezor-agent foo@@example.com --connect
 | 
					 | 
				
			||||||
Usage for GPG: Initialize using trezor-gpg init \"Foo <foo@@example.com>\"
 | 
					 | 
				
			||||||
Then set the environment variable GNUPGHOME to
 | 
					 | 
				
			||||||
\"${HOME}/.gnupg/trezor\".")
 | 
					 | 
				
			||||||
    (license license:lgpl3)))
 | 
					    (license license:lgpl3)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public trezor-agent
 | 
					(define-public trezor-agent
 | 
				
			||||||
| 
						 | 
					@ -1121,13 +1149,13 @@ Luhn and family of ISO/IEC 7064 check digit algorithms. ")
 | 
				
			||||||
(define-public python-duniterpy
 | 
					(define-public python-duniterpy
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python-duniterpy")
 | 
					    (name "python-duniterpy")
 | 
				
			||||||
    (version "0.62.0")
 | 
					    (version "1.0.0")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (pypi-uri "duniterpy" version))
 | 
					       (uri (pypi-uri "duniterpy" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "1ldiw5j2g92cib9v06kgv4z8dw2zi0x1dmpisf8w78h4kg6712w1"))))
 | 
					        (base32 "13kp2ph7fb1cdkx1y6j2h8q33fj2akc104l77ng52cy4v8jic9nz"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     ;; FIXME: Tests fail with: "TypeError: block_uid() missing 1 required
 | 
					     ;; FIXME: Tests fail with: "TypeError: block_uid() missing 1 required
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,7 +6,7 @@
 | 
				
			||||||
;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
 | 
					;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
 | 
				
			||||||
;;; Copyright © 2017 Jonathan Brielmaier <jonathan.brielmaier@web.de>
 | 
					;;; Copyright © 2017 Jonathan Brielmaier <jonathan.brielmaier@web.de>
 | 
				
			||||||
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
 | 
					;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
 | 
				
			||||||
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
					;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
				
			||||||
;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
 | 
					;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
| 
						 | 
					@ -29,6 +29,7 @@
 | 
				
			||||||
  #:use-module (guix download)
 | 
					  #:use-module (guix download)
 | 
				
			||||||
  #:use-module (guix git-download)
 | 
					  #:use-module (guix git-download)
 | 
				
			||||||
  #:use-module (guix packages)
 | 
					  #:use-module (guix packages)
 | 
				
			||||||
 | 
					  #:use-module (guix utils)
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
  #:use-module (guix build-system cmake)
 | 
					  #:use-module (guix build-system cmake)
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
| 
						 | 
					@ -97,7 +98,7 @@ programmer devices.")
 | 
				
			||||||
(define-public 0xffff
 | 
					(define-public 0xffff
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "0xffff")
 | 
					    (name "0xffff")
 | 
				
			||||||
    (version "0.8")
 | 
					    (version "0.9")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -106,16 +107,19 @@ programmer devices.")
 | 
				
			||||||
             (commit version)))
 | 
					             (commit version)))
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "1a5b7k96vzirb0m8lqp7ldn77ppz4ngf56wslhsj2c6flcyvns4v"))))
 | 
					        (base32 "0rl1xzbxl991pm2is98zbryac1lgjrc3zphmbd8agv07av0r6r6n"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("libusb" ,libusb-0.1)))         ; doesn't work with libusb-compat
 | 
					     ;; Building with libusb-compat will succeed but the result will be broken.
 | 
				
			||||||
 | 
					     ;; See <https://github.com/pali/0xFFFF/issues/3>.
 | 
				
			||||||
 | 
					     `(("libusb" ,libusb-0.1)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:phases
 | 
					     `(#:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (delete 'configure))           ; no configure
 | 
					         (delete 'configure))           ; no configure
 | 
				
			||||||
       #:make-flags
 | 
					       #:make-flags
 | 
				
			||||||
       (list "CC=gcc"
 | 
					       (list (string-append "CC=" ,(cc-for-target))
 | 
				
			||||||
 | 
					             "HOST_CC=gcc"
 | 
				
			||||||
             "BUILD_DATE=GNU Guix"
 | 
					             "BUILD_DATE=GNU Guix"
 | 
				
			||||||
             (string-append "PREFIX=" %output))
 | 
					             (string-append "PREFIX=" %output))
 | 
				
			||||||
       #:tests? #f))                    ; no 'check' target
 | 
					       #:tests? #f))                    ; no 'check' target
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -432,7 +432,7 @@ a hardware description and verification language. ")
 | 
				
			||||||
(define-public nvc
 | 
					(define-public nvc
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "nvc")
 | 
					    (name "nvc")
 | 
				
			||||||
    (version "1.5.1")
 | 
					    (version "1.5.2")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method git-fetch)
 | 
					              (method git-fetch)
 | 
				
			||||||
              (uri (git-reference
 | 
					              (uri (git-reference
 | 
				
			||||||
| 
						 | 
					@ -441,7 +441,7 @@ a hardware description and verification language. ")
 | 
				
			||||||
              (file-name (string-append name "-" version "-checkout"))
 | 
					              (file-name (string-append name "-" version "-checkout"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0m1zhcqhgz5fajz98ky5zdv8g8gvk9caghqfpbv8q3mzdzahcsx5"))))
 | 
					                "1hjshyliaqi4vrw4q760rwmq6hvbpsvr2h4zl34k5j457004dy9l"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:configure-flags
 | 
					     `(#:configure-flags
 | 
				
			||||||
| 
						 | 
					@ -450,8 +450,7 @@ a hardware description and verification language. ")
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-after 'unpack 'clean-up
 | 
					         (add-after 'unpack 'clean-up
 | 
				
			||||||
           (lambda _
 | 
					           (lambda _
 | 
				
			||||||
             (delete-file "autogen.sh")
 | 
					             (delete-file "autogen.sh"))))))
 | 
				
			||||||
             #t)))))
 | 
					 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("automake" ,automake)
 | 
					     `(("automake" ,automake)
 | 
				
			||||||
       ("autoconf" ,autoconf)
 | 
					       ("autoconf" ,autoconf)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,6 +24,9 @@
 | 
				
			||||||
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
 | 
					;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
 | 
				
			||||||
;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
 | 
					;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
 | 
				
			||||||
;;; Copyright © 2021 pineapples <guixuser6392@protonmail.com>
 | 
					;;; Copyright © 2021 pineapples <guixuser6392@protonmail.com>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Robby Zambito <contact@robbyzambito.me>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -45,6 +48,7 @@
 | 
				
			||||||
  #:use-module (guix utils)
 | 
					  #:use-module (guix utils)
 | 
				
			||||||
  #:use-module (guix packages)
 | 
					  #:use-module (guix packages)
 | 
				
			||||||
  #:use-module (guix download)
 | 
					  #:use-module (guix download)
 | 
				
			||||||
 | 
					  #:use-module (guix gexp)
 | 
				
			||||||
  #:use-module (guix git-download)
 | 
					  #:use-module (guix git-download)
 | 
				
			||||||
  #:use-module (guix build-system cmake)
 | 
					  #:use-module (guix build-system cmake)
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
| 
						 | 
					@ -75,6 +79,7 @@
 | 
				
			||||||
  #:use-module (gnu packages glib)                ;intltool
 | 
					  #:use-module (gnu packages glib)                ;intltool
 | 
				
			||||||
  #:use-module (gnu packages gnome)
 | 
					  #:use-module (gnu packages gnome)
 | 
				
			||||||
  #:use-module (gnu packages gperf)
 | 
					  #:use-module (gnu packages gperf)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages graph)
 | 
				
			||||||
  #:use-module (gnu packages graphviz)
 | 
					  #:use-module (gnu packages graphviz)
 | 
				
			||||||
  #:use-module (gnu packages gstreamer)
 | 
					  #:use-module (gnu packages gstreamer)
 | 
				
			||||||
  #:use-module (gnu packages gtk)
 | 
					  #:use-module (gnu packages gtk)
 | 
				
			||||||
| 
						 | 
					@ -96,7 +101,10 @@
 | 
				
			||||||
  #:use-module (gnu packages python)
 | 
					  #:use-module (gnu packages python)
 | 
				
			||||||
  #:use-module (gnu packages python-crypto)
 | 
					  #:use-module (gnu packages python-crypto)
 | 
				
			||||||
  #:use-module (gnu packages python-xyz)
 | 
					  #:use-module (gnu packages python-xyz)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages rdesktop)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages rsync)
 | 
				
			||||||
  #:use-module (gnu packages samba)
 | 
					  #:use-module (gnu packages samba)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages serialization)
 | 
				
			||||||
  #:use-module (gnu packages sqlite)
 | 
					  #:use-module (gnu packages sqlite)
 | 
				
			||||||
  #:use-module (gnu packages valgrind)
 | 
					  #:use-module (gnu packages valgrind)
 | 
				
			||||||
  #:use-module (gnu packages video)
 | 
					  #:use-module (gnu packages video)
 | 
				
			||||||
| 
						 | 
					@ -575,12 +583,20 @@ the freedesktop.org XDG Base Directory specification.")
 | 
				
			||||||
    (build-system meson-build-system)
 | 
					    (build-system meson-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:configure-flags
 | 
					     `(#:configure-flags
 | 
				
			||||||
       (let* ((out (assoc-ref %outputs "out"))
 | 
					       ;; TODO(core-updates): Use #$output unconditionally.
 | 
				
			||||||
 | 
					       ,#~(let* ((out #$(if (%current-target-system)
 | 
				
			||||||
 | 
					                            #~#$output
 | 
				
			||||||
 | 
					                            #~(assoc-ref %outputs "out")))
 | 
				
			||||||
                 (sysconf (string-append out "/etc"))
 | 
					                 (sysconf (string-append out "/etc"))
 | 
				
			||||||
                 (libexec (string-append out "/libexec/elogind"))
 | 
					                 (libexec (string-append out "/libexec/elogind"))
 | 
				
			||||||
                 (dbuspolicy (string-append out "/etc/dbus-1/system.d"))
 | 
					                 (dbuspolicy (string-append out "/etc/dbus-1/system.d"))
 | 
				
			||||||
              (shadow (assoc-ref %build-inputs "shadow"))
 | 
					                 ;; TODO(core-updates): use this-package-input unconditionally.
 | 
				
			||||||
              (shepherd (assoc-ref %build-inputs "shepherd"))
 | 
					                 (shadow #$(if (%current-target-system)
 | 
				
			||||||
 | 
					                               (this-package-input "shadow")
 | 
				
			||||||
 | 
					                               #~(assoc-ref %build-inputs "shadow")))
 | 
				
			||||||
 | 
					                 (shepherd #$(if (%current-target-system)
 | 
				
			||||||
 | 
					                                 (this-package-input "shepherd")
 | 
				
			||||||
 | 
					                                 #~(assoc-ref %build-inputs "shepherd")))
 | 
				
			||||||
                 (halt-path (string-append shepherd "/sbin/halt"))
 | 
					                 (halt-path (string-append shepherd "/sbin/halt"))
 | 
				
			||||||
                 (kexec-path "")           ;not available in Guix yet
 | 
					                 (kexec-path "")           ;not available in Guix yet
 | 
				
			||||||
                 (nologin-path (string-append shadow "/sbin/nologin"))
 | 
					                 (nologin-path (string-append shadow "/sbin/nologin"))
 | 
				
			||||||
| 
						 | 
					@ -815,7 +831,8 @@ of a the system to know what users are logged in, and where.")
 | 
				
			||||||
                                      (install-file map data))
 | 
					                                      (install-file map data))
 | 
				
			||||||
                                    (find-files ".." "^(kbd-model-map|language-fallback-map)$"))
 | 
					                                    (find-files ".." "^(kbd-model-map|language-fallback-map)$"))
 | 
				
			||||||
                          #t)))))))
 | 
					                          #t)))))))
 | 
				
			||||||
    (native-inputs (package-native-inputs elogind))
 | 
					    (native-inputs `(,@(package-native-inputs elogind)
 | 
				
			||||||
 | 
					                     ("rsync" ,rsync)))
 | 
				
			||||||
    (inputs `(("libmount" ,util-linux "lib")
 | 
					    (inputs `(("libmount" ,util-linux "lib")
 | 
				
			||||||
              ("xkeyboard-config" ,xkeyboard-config)
 | 
					              ("xkeyboard-config" ,xkeyboard-config)
 | 
				
			||||||
              ("kbd" ,kbd)
 | 
					              ("kbd" ,kbd)
 | 
				
			||||||
| 
						 | 
					@ -966,14 +983,22 @@ Python.")
 | 
				
			||||||
        #:phases
 | 
					        #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-after 'unpack 'patch-docbook-xml
 | 
					         (add-after 'unpack 'patch-docbook-xml
 | 
				
			||||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
					           ;; TODO(core-updates): Use 'native-inputs' unconditionally
 | 
				
			||||||
 | 
					           (lambda* (#:key ,@(if (%current-target-system)
 | 
				
			||||||
 | 
					                                 '(native-inputs)
 | 
				
			||||||
 | 
					                                 '())
 | 
				
			||||||
 | 
					                     inputs #:allow-other-keys)
 | 
				
			||||||
             (with-directory-excursion "doc"
 | 
					             (with-directory-excursion "doc"
 | 
				
			||||||
               (substitute* (find-files "." "\\.xml$")
 | 
					               (substitute* (find-files "." "\\.xml$")
 | 
				
			||||||
                 (("http://www.oasis-open.org/docbook/xml/4\\.5/")
 | 
					                 (("http://www.oasis-open.org/docbook/xml/4\\.5/")
 | 
				
			||||||
                  (string-append (assoc-ref inputs "docbook-xml")
 | 
					                  (string-append (assoc-ref ,(if (%current-target-system)
 | 
				
			||||||
 | 
					                                                 '(or native-inputs inputs)
 | 
				
			||||||
 | 
					                                                 'inputs) "docbook-xml")
 | 
				
			||||||
                                 "/xml/dtd/docbook/"))
 | 
					                                 "/xml/dtd/docbook/"))
 | 
				
			||||||
                 (("http://www.oasis-open.org/docbook/xml/4\\.2/")
 | 
					                 (("http://www.oasis-open.org/docbook/xml/4\\.2/")
 | 
				
			||||||
                  (string-append (assoc-ref inputs "docbook-xml-4.2")
 | 
					                  (string-append (assoc-ref ,(if (%current-target-system)
 | 
				
			||||||
 | 
					                                                 '(or native-inputs inputs)
 | 
				
			||||||
 | 
					                                                 'inputs) "docbook-xml-4.2")
 | 
				
			||||||
                                 "/xml/dtd/docbook/"))))
 | 
					                                 "/xml/dtd/docbook/"))))
 | 
				
			||||||
             #t))
 | 
					             #t))
 | 
				
			||||||
         (add-after 'install 'move-doc
 | 
					         (add-after 'install 'move-doc
 | 
				
			||||||
| 
						 | 
					@ -993,7 +1018,11 @@ Python.")
 | 
				
			||||||
       ("doxygen" ,doxygen)
 | 
					       ("doxygen" ,doxygen)
 | 
				
			||||||
       ("pkg-config" ,pkg-config)
 | 
					       ("pkg-config" ,pkg-config)
 | 
				
			||||||
       ("xmlto" ,xmlto)
 | 
					       ("xmlto" ,xmlto)
 | 
				
			||||||
       ("xsltproc" ,libxslt)))
 | 
					       ("xsltproc" ,libxslt)
 | 
				
			||||||
 | 
					       ,@(if (%current-target-system)
 | 
				
			||||||
 | 
					             `(("pkg-config-for-build" ,pkg-config-for-build)
 | 
				
			||||||
 | 
					               ("wayland" ,this-package)) ; for wayland-scanner
 | 
				
			||||||
 | 
					             '())))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("expat" ,expat)
 | 
					     `(("expat" ,expat)
 | 
				
			||||||
       ("libxml2" ,libxml2)))           ; for XML_CATALOG_FILES
 | 
					       ("libxml2" ,libxml2)))           ; for XML_CATALOG_FILES
 | 
				
			||||||
| 
						 | 
					@ -1065,7 +1094,7 @@ protocol either in Wayland core, or some other protocol in wayland-protocols.")
 | 
				
			||||||
(define-public weston
 | 
					(define-public weston
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "weston")
 | 
					    (name "weston")
 | 
				
			||||||
    (version "6.0.1")
 | 
					    (version "9.0.0")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append
 | 
					              (uri (string-append
 | 
				
			||||||
| 
						 | 
					@ -1073,38 +1102,55 @@ protocol either in Wayland core, or some other protocol in wayland-protocols.")
 | 
				
			||||||
                    "weston-" version ".tar.xz"))
 | 
					                    "weston-" version ".tar.xz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1d2m658ll8x7prlsfk71qgw89c7dz6y7d6nndfxwl49fmrd6sbxz"))))
 | 
					                "1zlql0xgiqc3pvgbpnnvj4xvpd91pwva8qf83xfb23if377ddxaw"))))
 | 
				
			||||||
    (build-system meson-build-system)
 | 
					    (build-system meson-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("pkg-config" ,pkg-config)
 | 
					     `(("mscgen" ,mscgen)
 | 
				
			||||||
 | 
					       ("pkg-config" ,pkg-config)
 | 
				
			||||||
       ("xorg-server" ,xorg-server)))
 | 
					       ("xorg-server" ,xorg-server)))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("cairo" ,cairo-xcb)
 | 
					     `(("cairo" ,cairo-xcb)
 | 
				
			||||||
       ("colord" ,colord)
 | 
					       ("colord" ,colord)
 | 
				
			||||||
       ("dbus" ,dbus)
 | 
					       ("dbus" ,dbus)
 | 
				
			||||||
       ("elogind" ,elogind)
 | 
					       ("elogind" ,elogind)
 | 
				
			||||||
 | 
					       ("freerdp" ,freerdp)
 | 
				
			||||||
 | 
					       ("glib" ,glib)
 | 
				
			||||||
 | 
					       ("gstreamer" ,gstreamer)
 | 
				
			||||||
 | 
					       ("gst-plugins-base" ,gst-plugins-base)
 | 
				
			||||||
       ("lcms" ,lcms)
 | 
					       ("lcms" ,lcms)
 | 
				
			||||||
 | 
					       ("libdrm" ,libdrm)
 | 
				
			||||||
       ("libevdev" ,libevdev)
 | 
					       ("libevdev" ,libevdev)
 | 
				
			||||||
       ("libinput" ,libinput-minimal)
 | 
					       ("libinput" ,libinput-minimal)
 | 
				
			||||||
       ("libjpeg" ,libjpeg-turbo)
 | 
					       ("libjpeg" ,libjpeg-turbo)
 | 
				
			||||||
 | 
					       ("libpng" ,libpng)
 | 
				
			||||||
       ("libunwind" ,libunwind)
 | 
					       ("libunwind" ,libunwind)
 | 
				
			||||||
       ("libva" ,libva)
 | 
					       ("libva" ,libva)
 | 
				
			||||||
       ("libwebp" ,libwebp)
 | 
					       ("libwebp" ,libwebp)
 | 
				
			||||||
 | 
					       ("libx11" ,libx11)
 | 
				
			||||||
 | 
					       ("libxcb" ,libxcb)
 | 
				
			||||||
       ("libxcursor" ,libxcursor)
 | 
					       ("libxcursor" ,libxcursor)
 | 
				
			||||||
       ("libxkbcommon" ,libxkbcommon)
 | 
					 | 
				
			||||||
       ("libxml2" ,libxml2)
 | 
					       ("libxml2" ,libxml2)
 | 
				
			||||||
       ("mesa" ,mesa)
 | 
					       ("mesa" ,mesa)
 | 
				
			||||||
       ("mtdev" ,mtdev)
 | 
					       ("mtdev" ,mtdev)
 | 
				
			||||||
       ("linux-pam" ,linux-pam)
 | 
					       ("linux-pam" ,linux-pam)
 | 
				
			||||||
       ("pango" ,pango)
 | 
					       ("pango" ,pango)
 | 
				
			||||||
       ("wayland" ,wayland)
 | 
					       ("pipewire" ,pipewire)
 | 
				
			||||||
       ("wayland-protocols" ,wayland-protocols)
 | 
					       ("wayland-protocols" ,wayland-protocols)
 | 
				
			||||||
       ("xorg-server-xwayland" ,xorg-server-xwayland)))
 | 
					       ("xorg-server-xwayland" ,xorg-server-xwayland)))
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("libxkbcommon" ,libxkbcommon)
 | 
				
			||||||
 | 
					       ("pixman" ,pixman)
 | 
				
			||||||
 | 
					       ("wayland" ,wayland)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:configure-flags
 | 
					     `(#:configure-flags
 | 
				
			||||||
       (list "-Dbackend-rdp=false" ; TODO: Enable.
 | 
					       (list
 | 
				
			||||||
             "-Dremoting=false" ; TODO: Enable.
 | 
					        ;; Otherwise, the RUNPATH will lack the final path component.
 | 
				
			||||||
             "-Dsimple-dmabuf-drm=auto"
 | 
					        (string-append "-Dc_link_args=-Wl,-rpath="
 | 
				
			||||||
 | 
					                       (assoc-ref %outputs "out") "/lib:"
 | 
				
			||||||
 | 
					                       (assoc-ref %outputs "out") "/lib/weston:"
 | 
				
			||||||
 | 
					                       (assoc-ref %outputs "out") "/lib/libweston-"
 | 
				
			||||||
 | 
					                       ,(version-major (package-version this-package)))
 | 
				
			||||||
 | 
					        "-Dbackend-default=auto"
 | 
				
			||||||
        "-Dsystemd=false"
 | 
					        "-Dsystemd=false"
 | 
				
			||||||
        (string-append "-Dxwayland-path="
 | 
					        (string-append "-Dxwayland-path="
 | 
				
			||||||
                       (assoc-ref %build-inputs "xorg-server-xwayland")
 | 
					                       (assoc-ref %build-inputs "xorg-server-xwayland")
 | 
				
			||||||
| 
						 | 
					@ -2190,6 +2236,13 @@ useful with system integration.")
 | 
				
			||||||
             "https://launchpad.net/libappindicator/"
 | 
					             "https://launchpad.net/libappindicator/"
 | 
				
			||||||
             (version-major+minor version) "/" version
 | 
					             (version-major+minor version) "/" version
 | 
				
			||||||
             "/+download/libappindicator-" version ".tar.gz"))
 | 
					             "/+download/libappindicator-" version ".tar.gz"))
 | 
				
			||||||
 | 
					       (modules '((guix build utils)))
 | 
				
			||||||
 | 
					       (snippet
 | 
				
			||||||
 | 
					        '(begin
 | 
				
			||||||
 | 
					           ;; Fix 'multiple definitions' error from GCC 10
 | 
				
			||||||
 | 
					           (substitute* "bindings/python/appindicatormodule.c"
 | 
				
			||||||
 | 
					             (("^#include <pygobject.h>" all)
 | 
				
			||||||
 | 
					              (string-append "#define NO_IMPORT_PYGOBJECT\n" all)))))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "17xlqd60v0zllrxp8bgq3k5a1jkj0svkqn8rzllcyjh8k0gpr46m"))))
 | 
					         "17xlqd60v0zllrxp8bgq3k5a1jkj0svkqn8rzllcyjh8k0gpr46m"))))
 | 
				
			||||||
| 
						 | 
					@ -2441,3 +2494,38 @@ seeks to add support for the screenshot, screencast, and possibly
 | 
				
			||||||
remote-desktop @code{xdg-desktop-portal} interfaces for wlroots based
 | 
					remote-desktop @code{xdg-desktop-portal} interfaces for wlroots based
 | 
				
			||||||
compositors.")
 | 
					compositors.")
 | 
				
			||||||
    (license license:expat)))
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public waypipe
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "waypipe")
 | 
				
			||||||
 | 
					    (version "0.8.0")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method git-fetch)
 | 
				
			||||||
 | 
					       (uri (git-reference
 | 
				
			||||||
 | 
					             (url "https://gitlab.freedesktop.org/mstoeckl/waypipe")
 | 
				
			||||||
 | 
					             (commit (string-append "v" version))))
 | 
				
			||||||
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "1qa47ljfvb1vv3h647xwn1j5j8gfmcmdfaz4j8ygnkvj36y87vnz"))))
 | 
				
			||||||
 | 
					    (build-system meson-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-after 'unpack 'fix-sleep-path
 | 
				
			||||||
 | 
					           (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             (let ((coreutils (assoc-ref inputs "coreutils")))
 | 
				
			||||||
 | 
					               (substitute* "./test/startup_failure.py"
 | 
				
			||||||
 | 
					                 (("sleep") (string-append coreutils "/bin/sleep")))))))))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("pkg-config" ,pkg-config)
 | 
				
			||||||
 | 
					       ("scdoc" ,scdoc)
 | 
				
			||||||
 | 
					       ;; For tests
 | 
				
			||||||
 | 
					       ("python" ,python)
 | 
				
			||||||
 | 
					       ("coreutils" ,coreutils)))
 | 
				
			||||||
 | 
					    (home-page "https://gitlab.freedesktop.org/mstoeckl/waypipe")
 | 
				
			||||||
 | 
					    (synopsis "Proxy for Wayland protocol applications")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Waypipe is a proxy for Wayland clients, with the aim of
 | 
				
			||||||
 | 
					supporting behavior like @samp{ssh -X}.")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -176,14 +176,14 @@ as required.")
 | 
				
			||||||
(define-public libfilezilla
 | 
					(define-public libfilezilla
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "libfilezilla")
 | 
					    (name "libfilezilla")
 | 
				
			||||||
    (version "0.30.0")
 | 
					    (version "0.31.1")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (string-append "https://download.filezilla-project.org/"
 | 
					       (uri (string-append "https://download.filezilla-project.org/"
 | 
				
			||||||
                           "libfilezilla/libfilezilla-" version ".tar.bz2"))
 | 
					                           "libfilezilla/libfilezilla-" version ".tar.bz2"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "0h6wa1dfd14z9ai00a85pahsb4fs3rlb8haiw3vd9pmjrpdgcvf1"))))
 | 
					        (base32 "0vqn6gkwyin9hml39d74vcjcnbwlnk2cpc3msdlkhpq1ns3mhzcr"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:configure-flags
 | 
					     `(#:configure-flags
 | 
				
			||||||
| 
						 | 
					@ -220,14 +220,14 @@ output.
 | 
				
			||||||
(define-public filezilla
 | 
					(define-public filezilla
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "filezilla")
 | 
					    (name "filezilla")
 | 
				
			||||||
    (version "3.55.0")
 | 
					    (version "3.55.1")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (string-append "https://download.filezilla-project.org/client/"
 | 
					       (uri (string-append "https://download.filezilla-project.org/client/"
 | 
				
			||||||
                           "FileZilla_" version "_src.tar.bz2"))
 | 
					                           "FileZilla_" version "_src.tar.bz2"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "10lwmf6cvryw2gja6vj1zh2y55z4i38wsvxdpclvwdnih10ynw5f"))))
 | 
					        (base32 "19bnyx89jg0ll8a8mr4y8gp26gizs11ckgrwglh27zak3zhx1y37"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
      ;; Don't let filezilla phone home to check for updates.
 | 
					      ;; Don't let filezilla phone home to check for updates.
 | 
				
			||||||
| 
						 | 
					@ -260,14 +260,14 @@ directory comparison and more.")
 | 
				
			||||||
(define-public vsftpd
 | 
					(define-public vsftpd
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "vsftpd")
 | 
					    (name "vsftpd")
 | 
				
			||||||
    (version "3.0.4")
 | 
					    (version "3.0.5")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (string-append "https://security.appspot.com/downloads/"
 | 
					       (uri (string-append "https://security.appspot.com/downloads/"
 | 
				
			||||||
                           "vsftpd-" version ".tar.gz"))
 | 
					                           "vsftpd-" version ".tar.gz"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "09kap2qsd80m0x80jv5224x002x2jkr584dksppcv9p84yyj353b"))))
 | 
					        (base32 "1lwipiq8q9qzvwv6f418fbvagpz0p6v0jjplkvcsc2sb8np05di6"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:make-flags
 | 
					     `(#:make-flags
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,6 +21,7 @@
 | 
				
			||||||
;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
 | 
					;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
 | 
				
			||||||
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 | 
					;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 | 
				
			||||||
;;; Copyright © 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro>
 | 
					;;; Copyright © 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Dmitry Polyakov <polyakov@liltechdude.xyz>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -1108,7 +1109,7 @@ to create fully featured games and multimedia programs in the python language.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public python-pygame-sdl2
 | 
					(define-public python-pygame-sdl2
 | 
				
			||||||
  (let ((real-version "2.1.0")
 | 
					  (let ((real-version "2.1.0")
 | 
				
			||||||
        (renpy-version "7.4.6"))
 | 
					        (renpy-version "7.4.8"))
 | 
				
			||||||
    (package
 | 
					    (package
 | 
				
			||||||
      (inherit python-pygame)
 | 
					      (inherit python-pygame)
 | 
				
			||||||
      (name "python-pygame-sdl2")
 | 
					      (name "python-pygame-sdl2")
 | 
				
			||||||
| 
						 | 
					@ -1118,7 +1119,7 @@ to create fully featured games and multimedia programs in the python language.")
 | 
				
			||||||
         (method url-fetch)
 | 
					         (method url-fetch)
 | 
				
			||||||
         (uri (string-append "https://www.renpy.org/dl/" renpy-version
 | 
					         (uri (string-append "https://www.renpy.org/dl/" renpy-version
 | 
				
			||||||
                             "/pygame_sdl2-" version ".tar.gz"))
 | 
					                             "/pygame_sdl2-" version ".tar.gz"))
 | 
				
			||||||
         (sha256 (base32 "1cay8mb5ww72mkhjp8y467i5alnjinwai2z0xypp78kjapbma9nb"))
 | 
					         (sha256 (base32 "1yyqcg7khac17jif86vi2d4j9l8x2vfg4h5pasrwwsy0g8386zsm"))
 | 
				
			||||||
         (modules '((guix build utils)))
 | 
					         (modules '((guix build utils)))
 | 
				
			||||||
         (snippet
 | 
					         (snippet
 | 
				
			||||||
          '(begin
 | 
					          '(begin
 | 
				
			||||||
| 
						 | 
					@ -1164,13 +1165,13 @@ developed mainly for Ren'py.")
 | 
				
			||||||
(define-public python2-renpy
 | 
					(define-public python2-renpy
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python2-renpy")
 | 
					    (name "python2-renpy")
 | 
				
			||||||
    (version "7.4.6")
 | 
					    (version "7.4.8")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (string-append "https://www.renpy.org/dl/" version
 | 
					       (uri (string-append "https://www.renpy.org/dl/" version
 | 
				
			||||||
                           "/renpy-" version "-source.tar.bz2"))
 | 
					                           "/renpy-" version "-source.tar.bz2"))
 | 
				
			||||||
       (sha256 (base32 "1nnidghwi725n6kizd18fk3fdyh1fx4d48jngg8cnwgnz7i66bd6"))
 | 
					       (sha256 (base32 "1ml3gs87xxk1iflrg5ivffr4q8fi7d65l1cx462bvvpm1rs2sa8d"))
 | 
				
			||||||
       (modules '((guix build utils)))
 | 
					       (modules '((guix build utils)))
 | 
				
			||||||
       (patches
 | 
					       (patches
 | 
				
			||||||
        (search-patches
 | 
					        (search-patches
 | 
				
			||||||
| 
						 | 
					@ -1479,6 +1480,57 @@ visual novels, while its Python scripting is enough for complex simulation
 | 
				
			||||||
games.")
 | 
					games.")
 | 
				
			||||||
    (license license:expat)))
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python-pyxel
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "python-pyxel")
 | 
				
			||||||
 | 
					    (version "1.4.3")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method git-fetch)
 | 
				
			||||||
 | 
					       (uri
 | 
				
			||||||
 | 
					        (git-reference
 | 
				
			||||||
 | 
					         (url "https://github.com/kitao/pyxel")
 | 
				
			||||||
 | 
					         (commit (string-append "v" version))))
 | 
				
			||||||
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "0bwsgb5yq5s479cnf046v379zsn5ybp5195kbfvzr9l11qbaicm9"))
 | 
				
			||||||
 | 
					       (modules '((guix build utils)))
 | 
				
			||||||
 | 
					       (snippet
 | 
				
			||||||
 | 
					        '(begin
 | 
				
			||||||
 | 
					           (delete-file-recursively "pyxel/core/bin")))))
 | 
				
			||||||
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:tests? #f ; "Tests" are actually example programs that never halt.
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-after 'unpack 'patch-build-files
 | 
				
			||||||
 | 
					           (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             (substitute* "setup.py"
 | 
				
			||||||
 | 
					               (("\"pyxel\\.core\\.bin\\.(.*)\"," all arch)
 | 
				
			||||||
 | 
					                (if (string=? arch "linux")
 | 
				
			||||||
 | 
					                    all
 | 
				
			||||||
 | 
					                    "")))
 | 
				
			||||||
 | 
					             (substitute* "pyxel/core/Makefile"
 | 
				
			||||||
 | 
					               (("`sdl2-config")
 | 
				
			||||||
 | 
					                (string-append "`sdl2-config --prefix="
 | 
				
			||||||
 | 
					                               (assoc-ref inputs "sdl2"))))))
 | 
				
			||||||
 | 
					         (add-before 'build 'prebuild
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             (invoke "make" "-C" "pyxel/core"))))))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("gifsicle" ,gifsicle)
 | 
				
			||||||
 | 
					       ("sdl2" ,(sdl-union (list sdl2 sdl2-image)))))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("gcc" ,gcc-10)))                  ; for std::filesystem
 | 
				
			||||||
 | 
					    (home-page "https://github.com/kitao/pyxel")
 | 
				
			||||||
 | 
					    (synopsis "Retro game engine for Python")
 | 
				
			||||||
 | 
					    (description "Pyxel is a game engine inspired by retro gaming consoles.
 | 
				
			||||||
 | 
					It has a fixed 16-color palette, can hold up to 3 image banks and 8 tilemaps
 | 
				
			||||||
 | 
					(256x256 pixels each) and 4 sound channels with 64 definable sounds.  It
 | 
				
			||||||
 | 
					also comes with a built-in image and sound editor.")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public grafx2
 | 
					(define-public grafx2
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "grafx2")
 | 
					    (name "grafx2")
 | 
				
			||||||
| 
						 | 
					@ -2111,6 +2163,56 @@ upon which people base their games, ports to new platforms, and other
 | 
				
			||||||
projects.")
 | 
					projects.")
 | 
				
			||||||
      (license license:gpl2))))
 | 
					      (license license:gpl2))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public instead
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "instead")
 | 
				
			||||||
 | 
					    (version "3.3.5")
 | 
				
			||||||
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method git-fetch)
 | 
				
			||||||
 | 
					       (uri (git-reference
 | 
				
			||||||
 | 
					             (url "https://github.com/instead-hub/instead")
 | 
				
			||||||
 | 
					             (commit version)))
 | 
				
			||||||
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "02j8cw623j51qmr4991i5hsbrzmnp0qfzds8m6nwwr15sjv3hv1g"))
 | 
				
			||||||
 | 
					       (patches
 | 
				
			||||||
 | 
					        (search-patches
 | 
				
			||||||
 | 
					         "instead-use-games-path.patch"))
 | 
				
			||||||
 | 
					       (modules '((guix build utils)))
 | 
				
			||||||
 | 
					       (snippet
 | 
				
			||||||
 | 
					        '(begin
 | 
				
			||||||
 | 
					           (delete-file-recursively "src/zlib")))))
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:configure-flags
 | 
				
			||||||
 | 
					       (list (string-append
 | 
				
			||||||
 | 
					              "-DLUA_INCLUDE_DIR="
 | 
				
			||||||
 | 
					              (assoc-ref %build-inputs "luajit") "/include/luajit-2.1/")
 | 
				
			||||||
 | 
					             "-DWITH_LUAJIT=1"
 | 
				
			||||||
 | 
					             "-DWITH_GTK3=1")
 | 
				
			||||||
 | 
					       #:tests? #f))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("gtk+",gtk+)
 | 
				
			||||||
 | 
					       ("lua" ,lua)
 | 
				
			||||||
 | 
					       ("luajit" ,luajit)
 | 
				
			||||||
 | 
					       ("pkg-config" ,pkg-config)
 | 
				
			||||||
 | 
					       ("sdl2-images" ,sdl2-image)
 | 
				
			||||||
 | 
					       ("sdl2-ttf" ,sdl2-ttf)
 | 
				
			||||||
 | 
					       ("sdl2-mixer" ,sdl2-mixer)
 | 
				
			||||||
 | 
					       ("zlib" ,zlib)))
 | 
				
			||||||
 | 
					    (home-page "https://instead3.syscall.ru/")
 | 
				
			||||||
 | 
					    (synopsis "Text adventure interpreter")
 | 
				
			||||||
 | 
					    (description "The STEAD (Simple TExt ADventures) interpreter provides
 | 
				
			||||||
 | 
					functionality to play games that mix elements of visual novels, interactive
 | 
				
			||||||
 | 
					fiction and classic point-and-click adventures.")
 | 
				
			||||||
 | 
					    (native-search-paths
 | 
				
			||||||
 | 
					     (list (search-path-specification
 | 
				
			||||||
 | 
					            (variable "INSTEAD_GAMES_PATH")
 | 
				
			||||||
 | 
					            (separator #f)                        ;single entry
 | 
				
			||||||
 | 
					            (files '("share/instead/games")))))
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public openvr
 | 
					(define-public openvr
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "openvr")
 | 
					    (name "openvr")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2013 John Darrington <jmd@gnu.org>
 | 
					;;; Copyright © 2013 John Darrington <jmd@gnu.org>
 | 
				
			||||||
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 | 
					;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 | 
				
			||||||
;;; Copyright © 2014, 2016 David Thompson <dthompson2@worcester.edu>
 | 
					;;; Copyright © 2014, 2015 David Thompson <dthompson2@worcester.edu>
 | 
				
			||||||
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Eric Bavier <bavier@posteo.net>
 | 
					;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Eric Bavier <bavier@posteo.net>
 | 
				
			||||||
;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
 | 
					;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
 | 
				
			||||||
;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net>
 | 
					;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net>
 | 
				
			||||||
| 
						 | 
					@ -42,7 +42,7 @@
 | 
				
			||||||
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
 | 
					;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
 | 
				
			||||||
;;; Copyright © 2019, 2020 Jesse Gibbons <jgibbons2357+guix@gmail.com>
 | 
					;;; Copyright © 2019, 2020 Jesse Gibbons <jgibbons2357+guix@gmail.com>
 | 
				
			||||||
;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl>
 | 
					;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl>
 | 
				
			||||||
;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
 | 
					;;; Copyright © 2019, 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
 | 
				
			||||||
;;; Copyright © 2019, 2020 Timotej Lazar <timotej.lazar@araneo.si>
 | 
					;;; Copyright © 2019, 2020 Timotej Lazar <timotej.lazar@araneo.si>
 | 
				
			||||||
;;; Copyright © 2019 Josh Holland <josh@inv.alid.pw>
 | 
					;;; Copyright © 2019 Josh Holland <josh@inv.alid.pw>
 | 
				
			||||||
;;; Copyright © 2017, 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
 | 
					;;; Copyright © 2017, 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
 | 
				
			||||||
| 
						 | 
					@ -52,7 +52,7 @@
 | 
				
			||||||
;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
 | 
					;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
 | 
				
			||||||
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 | 
					;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 | 
				
			||||||
;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
 | 
					;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
 | 
				
			||||||
;;; Copyright © 2020, 2021 Trevor Hass <thass@okstate.edu>
 | 
					;;; Copyright © 2020 Trevor Hass <thass@okstate.edu>
 | 
				
			||||||
;;; Copyright © 2020, 2021 Leo Prikler <leo.prikler@student.tugraz.at>
 | 
					;;; Copyright © 2020, 2021 Leo Prikler <leo.prikler@student.tugraz.at>
 | 
				
			||||||
;;; Copyright © 2020 Lu hux <luhux@outlook.com>
 | 
					;;; Copyright © 2020 Lu hux <luhux@outlook.com>
 | 
				
			||||||
;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org>
 | 
					;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org>
 | 
				
			||||||
| 
						 | 
					@ -62,6 +62,8 @@
 | 
				
			||||||
;;; Copyright © 2021 David Pflug <david@pflug.io>
 | 
					;;; Copyright © 2021 David Pflug <david@pflug.io>
 | 
				
			||||||
;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
 | 
					;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
 | 
				
			||||||
;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
 | 
					;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Noisytoot <noisytoot@disroot.org>
 | 
				
			||||||
 | 
					;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -129,6 +131,7 @@
 | 
				
			||||||
  #:use-module (gnu packages gnu-doc)
 | 
					  #:use-module (gnu packages gnu-doc)
 | 
				
			||||||
  #:use-module (gnu packages gnupg)
 | 
					  #:use-module (gnu packages gnupg)
 | 
				
			||||||
  #:use-module (gnu packages gnuzilla)
 | 
					  #:use-module (gnu packages gnuzilla)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages golang)
 | 
				
			||||||
  #:use-module (gnu packages gperf)
 | 
					  #:use-module (gnu packages gperf)
 | 
				
			||||||
  #:use-module (gnu packages graphics)
 | 
					  #:use-module (gnu packages graphics)
 | 
				
			||||||
  #:use-module (gnu packages gsasl)
 | 
					  #:use-module (gnu packages gsasl)
 | 
				
			||||||
| 
						 | 
					@ -551,6 +554,47 @@ Playing bastet can be a painful experience, especially if you usually make
 | 
				
			||||||
canyons and wait for the long I-shaped block to clear four rows at a time.")
 | 
					canyons and wait for the long I-shaped block to clear four rows at a time.")
 | 
				
			||||||
    (license license:gpl3+)))
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public tetrinet
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "tetrinet")
 | 
				
			||||||
 | 
					    (version "0.11")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append
 | 
				
			||||||
 | 
					             "http://tetrinet.or.cz/download/tetrinet-" version
 | 
				
			||||||
 | 
					             ".tar.bz2"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "0b4pddqz6is1771qmvcj8qqlr4in2djdbkk13agvp9yhfah2v8x7"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("ncurses" ,ncurses)))
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:tests? #f                      ;no tests
 | 
				
			||||||
 | 
					       #:make-flags '("CC=gcc")
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (delete 'configure)            ;no configure script
 | 
				
			||||||
 | 
					         (add-after 'unpack 'fix-install-dir
 | 
				
			||||||
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             (let ((out (assoc-ref outputs "out")))
 | 
				
			||||||
 | 
					               (mkdir-p (string-append out "/bin"))
 | 
				
			||||||
 | 
					               (substitute* "Makefile"
 | 
				
			||||||
 | 
					                 (("/usr/games") (string-append out "/bin"))))))
 | 
				
			||||||
 | 
					         (add-after 'install 'install-documentation
 | 
				
			||||||
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             (let* ((out (assoc-ref outputs "out"))
 | 
				
			||||||
 | 
					                    (doc (string-append out "/share/doc/" ,name "-" ,version)))
 | 
				
			||||||
 | 
					               (for-each (lambda (file)
 | 
				
			||||||
 | 
					                           (install-file file doc))
 | 
				
			||||||
 | 
					                         (list "README" "tetrinet.txt"))))))))
 | 
				
			||||||
 | 
					    (home-page "http://tetrinet.or.cz")
 | 
				
			||||||
 | 
					    (synopsis "Terminal-based multiplayer Tetris clone")
 | 
				
			||||||
 | 
					    (description "Tetrinet is a multiplayer Tetris-like game with powerups and
 | 
				
			||||||
 | 
					attacks you can use on opponents.")
 | 
				
			||||||
 | 
					    (license license:public-domain)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public vitetris
 | 
					(define-public vitetris
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "vitetris")
 | 
					    (name "vitetris")
 | 
				
			||||||
| 
						 | 
					@ -835,7 +879,7 @@ high a score as possible.")
 | 
				
			||||||
(define-public cataclysm-dda
 | 
					(define-public cataclysm-dda
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "cataclysm-dda")
 | 
					    (name "cataclysm-dda")
 | 
				
			||||||
    (version "0.F")
 | 
					    (version "0.F-2")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -843,7 +887,7 @@ high a score as possible.")
 | 
				
			||||||
             (url "https://github.com/CleverRaven/Cataclysm-DDA")
 | 
					             (url "https://github.com/CleverRaven/Cataclysm-DDA")
 | 
				
			||||||
             (commit version)))
 | 
					             (commit version)))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "1jid8lcl04y768b3psj1ifhx96lmd6fn1j2wzxhl4ic7ra66p2z3"))
 | 
					        (base32 "1wzsri6rh2fm7078hw0y4x7lqjs6ak4a66d05szfiinnxyn4w1ph"))
 | 
				
			||||||
       (file-name (git-file-name name version))))
 | 
					       (file-name (git-file-name name version))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
| 
						 | 
					@ -3344,7 +3388,8 @@ exec ~a/bin/freedink -refdir ~a/share/dink\n"
 | 
				
			||||||
         "1mkh36xnnacnz9r00b5f9ld9309k32jv6mcavklbdnca8bl56bib"))))
 | 
					         "1mkh36xnnacnz9r00b5f9ld9309k32jv6mcavklbdnca8bl56bib"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:configure-flags '("CFLAGS=-fcommon")
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         ;; Fixes https://issues.guix.gnu.org/47195.
 | 
					         ;; Fixes https://issues.guix.gnu.org/47195.
 | 
				
			||||||
         (add-after 'unpack 'patch-aplay-path
 | 
					         (add-after 'unpack 'patch-aplay-path
 | 
				
			||||||
| 
						 | 
					@ -3535,158 +3580,6 @@ enemies in different game modes such as space ball, death match, team death
 | 
				
			||||||
match, cannon keep, and grave-itation pit.")
 | 
					match, cannon keep, and grave-itation pit.")
 | 
				
			||||||
      (license license:gpl3+))))
 | 
					      (license license:gpl3+))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public minetest
 | 
					 | 
				
			||||||
  (package
 | 
					 | 
				
			||||||
    (name "minetest")
 | 
					 | 
				
			||||||
    (version "5.4.1")
 | 
					 | 
				
			||||||
    (source (origin
 | 
					 | 
				
			||||||
              (method git-fetch)
 | 
					 | 
				
			||||||
              (uri (git-reference
 | 
					 | 
				
			||||||
                    (url "https://github.com/minetest/minetest")
 | 
					 | 
				
			||||||
                    (commit version)))
 | 
					 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					 | 
				
			||||||
              (sha256
 | 
					 | 
				
			||||||
               (base32
 | 
					 | 
				
			||||||
                "062ilb7s377q3hwfhl8q06vvcw2raydz5ljzlzwy2dmyzmdcndb8"))
 | 
					 | 
				
			||||||
              (modules '((guix build utils)))
 | 
					 | 
				
			||||||
              (snippet
 | 
					 | 
				
			||||||
               '(begin
 | 
					 | 
				
			||||||
                  ;; Delete bundled libraries.
 | 
					 | 
				
			||||||
                  (delete-file-recursively "lib")
 | 
					 | 
				
			||||||
                  #t))))
 | 
					 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					 | 
				
			||||||
    (arguments
 | 
					 | 
				
			||||||
     `(#:configure-flags
 | 
					 | 
				
			||||||
       (list "-DRUN_IN_PLACE=0"
 | 
					 | 
				
			||||||
             "-DENABLE_FREETYPE=1"
 | 
					 | 
				
			||||||
             "-DENABLE_GETTEXT=1"
 | 
					 | 
				
			||||||
             "-DENABLE_SYSTEM_JSONCPP=TRUE"
 | 
					 | 
				
			||||||
             (string-append "-DIRRLICHT_INCLUDE_DIR="
 | 
					 | 
				
			||||||
                            (assoc-ref %build-inputs "irrlicht")
 | 
					 | 
				
			||||||
                            "/include/irrlicht")
 | 
					 | 
				
			||||||
             (string-append "-DCURL_INCLUDE_DIR="
 | 
					 | 
				
			||||||
                            (assoc-ref %build-inputs "curl")
 | 
					 | 
				
			||||||
                            "/include/curl"))
 | 
					 | 
				
			||||||
       #:phases
 | 
					 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					 | 
				
			||||||
         (add-after 'unpack 'patch-sources
 | 
					 | 
				
			||||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
					 | 
				
			||||||
             (substitute* "src/filesys.cpp"
 | 
					 | 
				
			||||||
               ;; Use store-path for "rm" instead of non-existing FHS path.
 | 
					 | 
				
			||||||
               (("\"/bin/rm\"")
 | 
					 | 
				
			||||||
                (string-append "\"" (assoc-ref inputs "coreutils") "/bin/rm\"")))
 | 
					 | 
				
			||||||
             (substitute* "src/CMakeLists.txt"
 | 
					 | 
				
			||||||
               ;; Let minetest binary remain in build directory.
 | 
					 | 
				
			||||||
               (("set\\(EXECUTABLE_OUTPUT_PATH .*\\)") ""))
 | 
					 | 
				
			||||||
             (substitute* "src/unittest/test_servermodmanager.cpp"
 | 
					 | 
				
			||||||
               ;; do no override MINETEST_SUBGAME_PATH
 | 
					 | 
				
			||||||
               (("(un)?setenv\\(\"MINETEST_SUBGAME_PATH\".*\\);")
 | 
					 | 
				
			||||||
                "(void)0;"))
 | 
					 | 
				
			||||||
             (setenv "MINETEST_SUBGAME_PATH"
 | 
					 | 
				
			||||||
                     (string-append (getcwd) "/games")) ; for check
 | 
					 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
         (replace 'check
 | 
					 | 
				
			||||||
           (lambda _
 | 
					 | 
				
			||||||
             ;; Thanks to our substitutions, the tests should also run
 | 
					 | 
				
			||||||
             ;; when invoked on the target outside of `guix build'.
 | 
					 | 
				
			||||||
             (unless ,(%current-target-system)
 | 
					 | 
				
			||||||
               (setenv "HOME" "/tmp")
 | 
					 | 
				
			||||||
               (invoke "src/minetest" "--run-unittests"))
 | 
					 | 
				
			||||||
             #t)))))
 | 
					 | 
				
			||||||
    (native-search-paths
 | 
					 | 
				
			||||||
     (list (search-path-specification
 | 
					 | 
				
			||||||
            (variable "MINETEST_SUBGAME_PATH")
 | 
					 | 
				
			||||||
            (files '("share/minetest/games")))))
 | 
					 | 
				
			||||||
    (native-inputs
 | 
					 | 
				
			||||||
     `(("pkg-config" ,pkg-config)))
 | 
					 | 
				
			||||||
    (inputs
 | 
					 | 
				
			||||||
     `(("coreutils" ,coreutils)
 | 
					 | 
				
			||||||
       ("curl" ,curl)
 | 
					 | 
				
			||||||
       ("freetype" ,freetype)
 | 
					 | 
				
			||||||
       ("gettext" ,gettext-minimal)
 | 
					 | 
				
			||||||
       ("gmp" ,gmp)
 | 
					 | 
				
			||||||
       ("irrlicht" ,irrlicht)
 | 
					 | 
				
			||||||
       ("jsoncpp" ,jsoncpp)
 | 
					 | 
				
			||||||
       ("libjpeg" ,libjpeg-turbo)
 | 
					 | 
				
			||||||
       ("libpng" ,libpng)
 | 
					 | 
				
			||||||
       ("libogg" ,libogg)
 | 
					 | 
				
			||||||
       ("libvorbis" ,libvorbis)
 | 
					 | 
				
			||||||
       ("libxxf86vm" ,libxxf86vm)
 | 
					 | 
				
			||||||
       ("luajit" ,luajit)
 | 
					 | 
				
			||||||
       ("mesa" ,mesa)
 | 
					 | 
				
			||||||
       ("ncurses" ,ncurses)
 | 
					 | 
				
			||||||
       ("openal" ,openal)
 | 
					 | 
				
			||||||
       ("sqlite" ,sqlite)))
 | 
					 | 
				
			||||||
    (propagated-inputs
 | 
					 | 
				
			||||||
     `(("minetest-data" ,minetest-data)))
 | 
					 | 
				
			||||||
    (synopsis "Infinite-world block sandbox game")
 | 
					 | 
				
			||||||
    (description
 | 
					 | 
				
			||||||
     "Minetest is a sandbox construction game.  Players can create and destroy
 | 
					 | 
				
			||||||
various types of blocks in a three-dimensional open world.  This allows
 | 
					 | 
				
			||||||
forming structures in every possible creation, on multiplayer servers or as a
 | 
					 | 
				
			||||||
single player.  Mods and texture packs allow players to personalize the game
 | 
					 | 
				
			||||||
in different ways.")
 | 
					 | 
				
			||||||
    (home-page "https://www.minetest.net/")
 | 
					 | 
				
			||||||
    (license license:lgpl2.1+)))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define minetest-data
 | 
					 | 
				
			||||||
  (package
 | 
					 | 
				
			||||||
    (name "minetest-data")
 | 
					 | 
				
			||||||
    (version (package-version minetest))
 | 
					 | 
				
			||||||
    (source (origin
 | 
					 | 
				
			||||||
              (method git-fetch)
 | 
					 | 
				
			||||||
              (uri (git-reference
 | 
					 | 
				
			||||||
                     (url "https://github.com/minetest/minetest_game")
 | 
					 | 
				
			||||||
                     (commit version)))
 | 
					 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					 | 
				
			||||||
              (sha256
 | 
					 | 
				
			||||||
               (base32
 | 
					 | 
				
			||||||
                "0i45lbnikvgj9kxdp0yphpjjwjcgp4ibn49xkj78j5ic1s9n8jd4"))))
 | 
					 | 
				
			||||||
    (build-system trivial-build-system)
 | 
					 | 
				
			||||||
    (native-inputs
 | 
					 | 
				
			||||||
     `(("source" ,source)))
 | 
					 | 
				
			||||||
    (arguments
 | 
					 | 
				
			||||||
     `(#:modules ((guix build utils))
 | 
					 | 
				
			||||||
       #:builder (begin
 | 
					 | 
				
			||||||
                   (use-modules (guix build utils))
 | 
					 | 
				
			||||||
                   (let ((install-dir (string-append
 | 
					 | 
				
			||||||
                                       %output
 | 
					 | 
				
			||||||
                                       "/share/minetest/games/minetest_game")))
 | 
					 | 
				
			||||||
                     (mkdir-p install-dir)
 | 
					 | 
				
			||||||
                     (copy-recursively
 | 
					 | 
				
			||||||
                       (assoc-ref %build-inputs "source")
 | 
					 | 
				
			||||||
                       install-dir)
 | 
					 | 
				
			||||||
                     #t))))
 | 
					 | 
				
			||||||
    (synopsis "Main game data for the Minetest game engine")
 | 
					 | 
				
			||||||
    (description
 | 
					 | 
				
			||||||
     "Game data for the Minetest infinite-world block sandbox game.")
 | 
					 | 
				
			||||||
    (home-page "https://www.minetest.net/")
 | 
					 | 
				
			||||||
    (license license:lgpl2.1+)))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define-public minetest-mineclone
 | 
					 | 
				
			||||||
  (package
 | 
					 | 
				
			||||||
    (name "minetest-mineclone")
 | 
					 | 
				
			||||||
    (version "0.71.0")
 | 
					 | 
				
			||||||
    (source (origin
 | 
					 | 
				
			||||||
              (method git-fetch)
 | 
					 | 
				
			||||||
              (uri (git-reference
 | 
					 | 
				
			||||||
                    (url "https://git.minetest.land/Wuzzy/MineClone2")
 | 
					 | 
				
			||||||
                    (commit version)))
 | 
					 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					 | 
				
			||||||
              (sha256
 | 
					 | 
				
			||||||
               (base32
 | 
					 | 
				
			||||||
                "0qm809dqvxc7pa1cr9skmglq9vrbq5hhm4c4m5yi46ldh1v96dgf"))))
 | 
					 | 
				
			||||||
    (build-system copy-build-system)
 | 
					 | 
				
			||||||
    (arguments
 | 
					 | 
				
			||||||
     `(#:install-plan
 | 
					 | 
				
			||||||
       '(("." "share/minetest/games/mineclone"))))
 | 
					 | 
				
			||||||
    (synopsis "Minecraft clone based on Minetest engine")
 | 
					 | 
				
			||||||
    (description
 | 
					 | 
				
			||||||
     "MineClone is a Minetest subgame, that aims to recreate Minecraft as
 | 
					 | 
				
			||||||
closely as the engine allows.")
 | 
					 | 
				
			||||||
    (home-page "https://content.minetest.net/packages/Wuzzy/mineclone2/")
 | 
					 | 
				
			||||||
    (license license:gpl3+)))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define glkterm
 | 
					(define glkterm
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
   (name "glkterm")
 | 
					   (name "glkterm")
 | 
				
			||||||
| 
						 | 
					@ -4348,7 +4241,7 @@ engine.  When you start it you will be prompted to download a graphics set.")
 | 
				
			||||||
(define openttd-opengfx
 | 
					(define openttd-opengfx
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "openttd-opengfx")
 | 
					    (name "openttd-opengfx")
 | 
				
			||||||
    (version "0.6.0")
 | 
					    (version "0.6.1")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
| 
						 | 
					@ -4356,7 +4249,7 @@ engine.  When you start it you will be prompted to download a graphics set.")
 | 
				
			||||||
                           version "/opengfx-" version "-source.tar.xz"))
 | 
					                           version "/opengfx-" version "-source.tar.xz"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "0qxc6gl2gxcrn1np88dnjgbaaakkkx96b13rcmy1spryc8c09hyr"))))
 | 
					         "0jgy8xv7r72m127qn09vr3rxhnbakl2990f7lldsk0d5d8n993vd"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:make-flags (list "CC=gcc"
 | 
					     '(#:make-flags (list "CC=gcc"
 | 
				
			||||||
| 
						 | 
					@ -4407,24 +4300,28 @@ OpenGFX provides you with...
 | 
				
			||||||
(define openttd-opensfx
 | 
					(define openttd-opensfx
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "openttd-opensfx")
 | 
					    (name "openttd-opensfx")
 | 
				
			||||||
    (version "0.2.3")
 | 
					    (version "1.0.1")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (string-append
 | 
					       (uri (string-append
 | 
				
			||||||
             "https://binaries.openttd.org/extra/opensfx/"
 | 
					             "https://cdn.openttd.org/opensfx-releases/"
 | 
				
			||||||
             version "/opensfx-" version "-source.tar.gz"))
 | 
					             version "/opensfx-" version "-source.tar.xz"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "03jxgp02ks31hmsdh4xh0xcpkb70ds8jakc9pfc1y9vdrdavh4p5"))))
 | 
					         "06vycppqcxbfdqlxzna5xr303zgcmpcvj6ylw5b2ws0ssph2f1s0"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("catcodec" ,catcodec)
 | 
					     `(("catcodec" ,catcodec)
 | 
				
			||||||
       ("python" ,python-2)))
 | 
					       ("python" ,python-2)
 | 
				
			||||||
 | 
					       ("tar" ,tar)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:make-flags
 | 
					     `(#:make-flags
 | 
				
			||||||
       (list (string-append "INSTALL_DIR=" %output
 | 
					       (list (string-append "DIR_NAME=opensfx")
 | 
				
			||||||
                            "/share/games/openttd/baseset/opensfx"))
 | 
					             (string-append "TAR=" (assoc-ref %build-inputs "tar")
 | 
				
			||||||
 | 
					                            "/bin/tar"))
 | 
				
			||||||
 | 
					       ;; The check phase only verifies md5sums, see openttd-opengfx.
 | 
				
			||||||
 | 
					       #:tests? #f
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-after 'unpack 'make-reproducible
 | 
					         (add-after 'unpack 'make-reproducible
 | 
				
			||||||
| 
						 | 
					@ -4434,45 +4331,56 @@ OpenGFX provides you with...
 | 
				
			||||||
             (substitute* "scripts/Makefile.def"
 | 
					             (substitute* "scripts/Makefile.def"
 | 
				
			||||||
               (("-cf") " --mtime=@0 -cf"))
 | 
					               (("-cf") " --mtime=@0 -cf"))
 | 
				
			||||||
             #t))
 | 
					             #t))
 | 
				
			||||||
         (delete 'configure))))
 | 
					         (delete 'configure)
 | 
				
			||||||
 | 
					         (add-before 'build 'prebuild
 | 
				
			||||||
 | 
					           (lambda _ (invoke "make" "opensfx.cat")))
 | 
				
			||||||
 | 
					         (replace 'install
 | 
				
			||||||
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             (copy-recursively "opensfx"
 | 
				
			||||||
 | 
					                               (string-append (assoc-ref outputs "out")
 | 
				
			||||||
 | 
					                                              "/share/games/openttd/baseset"
 | 
				
			||||||
 | 
					                                              "/opensfx")))))))
 | 
				
			||||||
    (home-page "http://dev.openttdcoop.org/projects/opensfx")
 | 
					    (home-page "http://dev.openttdcoop.org/projects/opensfx")
 | 
				
			||||||
    (synopsis "Base sounds for OpenTTD")
 | 
					    (synopsis "Base sounds for OpenTTD")
 | 
				
			||||||
    (description "OpenSFX is a set of free base sounds for OpenTTD which make
 | 
					    (description "OpenSFX is a set of free base sounds for OpenTTD which make
 | 
				
			||||||
it possible to play OpenTTD without requiring the proprietary sound files from
 | 
					it possible to play OpenTTD without requiring the proprietary sound files from
 | 
				
			||||||
the original Transport Tycoon Deluxe.")
 | 
					the original Transport Tycoon Deluxe.")
 | 
				
			||||||
    (license license:cc-sampling-plus-1.0)))
 | 
					    (license license:cc-by-sa3.0)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define openttd-openmsx
 | 
					(define openttd-openmsx
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "openttd-openmsx")
 | 
					    (name "openttd-openmsx")
 | 
				
			||||||
    (version "0.3.1")
 | 
					    (version "0.4.0")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (string-append
 | 
					       (uri (string-append
 | 
				
			||||||
             "https://binaries.openttd.org/extra/openmsx/"
 | 
					             "https://cdn.openttd.org/openmsx-releases/"
 | 
				
			||||||
             version "/openmsx-" version "-source.tar.gz"))
 | 
					             version "/openmsx-" version "-source.tar.xz"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "0nskq97a6fsv1v6d62zf3yb8whzhqnlh3lap3va3nzvj7csjgf7c"))))
 | 
					         "0prjljsdgdxqdhhcriqskqha004ybs575xcjq80zha3pqnmrdk0k"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("python" ,python-2)))
 | 
					     `(("grfcodec" ,grfcodec)
 | 
				
			||||||
 | 
					       ("python" ,python-2)
 | 
				
			||||||
 | 
					       ("tar" ,tar)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:make-flags
 | 
					     `(#:make-flags
 | 
				
			||||||
       (list (string-append "INSTALL_DIR=" %output
 | 
					       (list (string-append "DIR_NAME=openmsx")
 | 
				
			||||||
                            "/share/games/openttd/baseset"))
 | 
					             (string-append "TAR=" (assoc-ref %build-inputs "tar")
 | 
				
			||||||
 | 
					                            "/bin/tar"))
 | 
				
			||||||
 | 
					       ;; The check phase only verifies md5sums, see openttd-opengfx.
 | 
				
			||||||
 | 
					       #:tests? #f
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (delete 'configure)
 | 
					         (delete 'configure)
 | 
				
			||||||
         (add-after 'install 'post-install
 | 
					         (replace 'install
 | 
				
			||||||
           ;; Rename openmsx-version to openmsx
 | 
					 | 
				
			||||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
             (let ((install-directory (string-append (assoc-ref outputs "out")
 | 
					             (copy-recursively "openmsx"
 | 
				
			||||||
                                                     "/share/games/openttd/baseset")))
 | 
					                               (string-append (assoc-ref outputs "out")
 | 
				
			||||||
               (rename-file (string-append install-directory "/openmsx-" ,version)
 | 
					                                              "/share/games/openttd/baseset"
 | 
				
			||||||
                            (string-append install-directory "/openmsx"))
 | 
					                                              "/openmsx")))))))
 | 
				
			||||||
               #t))))))
 | 
					 | 
				
			||||||
    (home-page "http://dev.openttdcoop.org/projects/openmsx")
 | 
					    (home-page "http://dev.openttdcoop.org/projects/openmsx")
 | 
				
			||||||
    (synopsis "Music set for OpenTTD")
 | 
					    (synopsis "Music set for OpenTTD")
 | 
				
			||||||
    (description "OpenMSX is a music set for OpenTTD which makes it possible
 | 
					    (description "OpenMSX is a music set for OpenTTD which makes it possible
 | 
				
			||||||
| 
						 | 
					@ -6307,7 +6215,7 @@ small robot living in the nano world, repair its maker.")
 | 
				
			||||||
                  #t))))
 | 
					                  #t))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f                      ; no tests included
 | 
					     `(#:test-target "run_tests"
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-after 'unpack 'patch-paths
 | 
					         (add-after 'unpack 'patch-paths
 | 
				
			||||||
| 
						 | 
					@ -6319,9 +6227,17 @@ small robot living in the nano world, repair its maker.")
 | 
				
			||||||
                               (assoc-ref outputs "out")
 | 
					                               (assoc-ref outputs "out")
 | 
				
			||||||
                               "/share/teeworlds/data"
 | 
					                               "/share/teeworlds/data"
 | 
				
			||||||
                               "\"")))
 | 
					                               "\"")))
 | 
				
			||||||
 | 
					             #t))
 | 
				
			||||||
 | 
					         (add-after 'unpack 'replace-font
 | 
				
			||||||
 | 
					           (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             (delete-file "datasrc/fonts/DejaVuSans.ttf")
 | 
				
			||||||
 | 
					             (symlink (string-append (assoc-ref inputs "font-dejavu")
 | 
				
			||||||
 | 
					                                     "/share/fonts/truetype/DejaVuSans.ttf")
 | 
				
			||||||
 | 
					                      "datasrc/fonts/DejaVuSans.ttf")
 | 
				
			||||||
             #t)))))
 | 
					             #t)))))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("freetype" ,freetype)
 | 
					     `(("freetype" ,freetype)
 | 
				
			||||||
 | 
					       ("font-dejavu" ,font-dejavu)
 | 
				
			||||||
       ("glu" ,glu)
 | 
					       ("glu" ,glu)
 | 
				
			||||||
       ("json-parser" ,json-parser)
 | 
					       ("json-parser" ,json-parser)
 | 
				
			||||||
       ("mesa" ,mesa)
 | 
					       ("mesa" ,mesa)
 | 
				
			||||||
| 
						 | 
					@ -6333,7 +6249,8 @@ small robot living in the nano world, repair its maker.")
 | 
				
			||||||
       ("openssl" ,openssl)
 | 
					       ("openssl" ,openssl)
 | 
				
			||||||
       ("zlib" ,zlib)))
 | 
					       ("zlib" ,zlib)))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("python" ,python-wrapper)
 | 
					     `(("googletest" ,googletest)
 | 
				
			||||||
 | 
					       ("python" ,python-wrapper)
 | 
				
			||||||
       ("pkg-config" ,pkg-config)))
 | 
					       ("pkg-config" ,pkg-config)))
 | 
				
			||||||
    (home-page "https://www.teeworlds.com")
 | 
					    (home-page "https://www.teeworlds.com")
 | 
				
			||||||
    (synopsis "2D retro multiplayer shooter game")
 | 
					    (synopsis "2D retro multiplayer shooter game")
 | 
				
			||||||
| 
						 | 
					@ -6514,14 +6431,14 @@ fish.  The whole game is accompanied by quiet, comforting music.")
 | 
				
			||||||
(define-public crawl
 | 
					(define-public crawl
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "crawl")
 | 
					    (name "crawl")
 | 
				
			||||||
    (version "0.26.1")
 | 
					    (version "0.27.0")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (string-append "https://github.com/crawl/crawl/releases/download/"
 | 
					       (uri (string-append "https://github.com/crawl/crawl/releases/download/"
 | 
				
			||||||
                           version "/stone_soup-" version "-nodeps.tar.xz"))
 | 
					                           version "/stone_soup-" version "-nodeps.tar.xz"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "1d8p2np2q5951wqphq2f4dyvv976m2lh82b0qp7w9pp1h8zzi1ff"))
 | 
					        (base32 "0hzkzpqmydxm1zjkdm7k4w3hldsqin3pwkj7jmfj4jijkr0zg9nq"))
 | 
				
			||||||
       (patches (search-patches "crawl-upgrade-saves.patch"))))
 | 
					       (patches (search-patches "crawl-upgrade-saves.patch"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
| 
						 | 
					@ -6901,7 +6818,7 @@ Crowther & Woods, its original authors, in 1995.  It has been known as
 | 
				
			||||||
(define-public tome4
 | 
					(define-public tome4
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "tome4")
 | 
					    (name "tome4")
 | 
				
			||||||
    (version "1.7.3")
 | 
					    (version "1.7.4")
 | 
				
			||||||
    (synopsis "Single-player, RPG roguelike game set in the world of Eyal")
 | 
					    (synopsis "Single-player, RPG roguelike game set in the world of Eyal")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
| 
						 | 
					@ -6909,7 +6826,7 @@ Crowther & Woods, its original authors, in 1995.  It has been known as
 | 
				
			||||||
       (uri (string-append "https://te4.org/dl/t-engine/t-engine4-src-"
 | 
					       (uri (string-append "https://te4.org/dl/t-engine/t-engine4-src-"
 | 
				
			||||||
                           version ".tar.bz2"))
 | 
					                           version ".tar.bz2"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "1rik17r01glq3944sdb06xjf0xppgqkjk564wrh22slm4mi3fifz"))
 | 
					        (base32 "197jmd99l3w3sig32pvdlq9fcgdjjx7g9csy08kz174cyhrlyly3"))
 | 
				
			||||||
       (modules '((guix build utils)))
 | 
					       (modules '((guix build utils)))
 | 
				
			||||||
       (snippet
 | 
					       (snippet
 | 
				
			||||||
        '(begin
 | 
					        '(begin
 | 
				
			||||||
| 
						 | 
					@ -6918,8 +6835,7 @@ Crowther & Woods, its original authors, in 1995.  It has been known as
 | 
				
			||||||
              (string-append
 | 
					              (string-append
 | 
				
			||||||
               line " || defined(__GNUC__)")))
 | 
					               line " || defined(__GNUC__)")))
 | 
				
			||||||
           (substitute* '("src/tgl.h")
 | 
					           (substitute* '("src/tgl.h")
 | 
				
			||||||
             (("#include <GL/glext.h>") ""))
 | 
					             (("#include <GL/glext.h>") ""))))))
 | 
				
			||||||
           #t))))
 | 
					 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("unzip" ,unzip)))
 | 
					     `(("unzip" ,unzip)))
 | 
				
			||||||
| 
						 | 
					@ -6942,8 +6858,7 @@ Crowther & Woods, its original authors, in 1995.  It has been known as
 | 
				
			||||||
                  (delete 'bootstrap)
 | 
					                  (delete 'bootstrap)
 | 
				
			||||||
                  (replace 'configure
 | 
					                  (replace 'configure
 | 
				
			||||||
                    (lambda _
 | 
					                    (lambda _
 | 
				
			||||||
                      (invoke "premake4" "gmake")
 | 
					                      (invoke "premake4" "gmake")))
 | 
				
			||||||
                      #t))
 | 
					 | 
				
			||||||
                  (add-after 'set-paths 'set-sdl-paths
 | 
					                  (add-after 'set-paths 'set-sdl-paths
 | 
				
			||||||
                    (lambda* (#:key inputs #:allow-other-keys)
 | 
					                    (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
                      (setenv "CPATH"
 | 
					                      (setenv "CPATH"
 | 
				
			||||||
| 
						 | 
					@ -7008,8 +6923,7 @@ Crowther & Woods, its original authors, in 1995.  It has been known as
 | 
				
			||||||
                         #:comment ,synopsis
 | 
					                         #:comment ,synopsis
 | 
				
			||||||
                         #:exec ,name
 | 
					                         #:exec ,name
 | 
				
			||||||
                         #:icon icon
 | 
					                         #:icon icon
 | 
				
			||||||
                         #:categories '("Game" "RolePlaying")))
 | 
					                         #:categories '("Game" "RolePlaying"))))))))
 | 
				
			||||||
                      #t)))))
 | 
					 | 
				
			||||||
    (home-page "https://te4.org")
 | 
					    (home-page "https://te4.org")
 | 
				
			||||||
    (description "Tales of Maj’Eyal (ToME) RPG, featuring tactical turn-based
 | 
					    (description "Tales of Maj’Eyal (ToME) RPG, featuring tactical turn-based
 | 
				
			||||||
combat and advanced character building.  Play as one of many unique races and
 | 
					combat and advanced character building.  Play as one of many unique races and
 | 
				
			||||||
| 
						 | 
					@ -7136,15 +7050,26 @@ some graphical niceities, and numerous bug-fixes and other improvements.")
 | 
				
			||||||
     `(#:tests? #f
 | 
					     `(#:tests? #f
 | 
				
			||||||
       #:make-flags
 | 
					       #:make-flags
 | 
				
			||||||
       (list "CC=gcc"
 | 
					       (list "CC=gcc"
 | 
				
			||||||
             ;; link openAL instead of using dlopen at runtime
 | 
					             ;; An optional directory where it will look for quake2 data files
 | 
				
			||||||
             "DLOPEN_OPENAL=\"no\""
 | 
					             ;; in addition to the current working directory.
 | 
				
			||||||
             ;; an optional directory where it will look for quake2 data files
 | 
					 | 
				
			||||||
             ;; in addition to the current working directory
 | 
					 | 
				
			||||||
             "WITH_SYSTEMWIDE=yes"
 | 
					             "WITH_SYSTEMWIDE=yes"
 | 
				
			||||||
             "WITH_SYSTEMDIR=\"/opt/quake2\"")
 | 
					             "WITH_SYSTEMDIR=\"/opt/quake2\"")
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (delete 'configure)
 | 
					         (delete 'configure)
 | 
				
			||||||
 | 
					         (add-before 'build 'patch-libraries
 | 
				
			||||||
 | 
					           (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             ;; The game writes paths to openal.so and curl.so to ~/.yq2/...
 | 
				
			||||||
 | 
					             ;; Workaround: hard-code the compiled paths where it loads them;
 | 
				
			||||||
 | 
					             ;; this prevents loading old or garbage collected libraries.
 | 
				
			||||||
 | 
					             (substitute* "src/client/sound/qal.c"
 | 
				
			||||||
 | 
					               (("al_driver->string")
 | 
				
			||||||
 | 
					                (string-append "\"" (assoc-ref inputs "openal")
 | 
				
			||||||
 | 
					                               "/lib/libopenal.so\"")))
 | 
				
			||||||
 | 
					             (substitute* "src/client/curl/qcurl.c"
 | 
				
			||||||
 | 
					               (("cl_libcurl->string")
 | 
				
			||||||
 | 
					                (string-append "\"" (assoc-ref inputs "curl")
 | 
				
			||||||
 | 
					                               "/lib/libcurl.so\"")))))
 | 
				
			||||||
         (replace 'install
 | 
					         (replace 'install
 | 
				
			||||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
             (let ((out (assoc-ref outputs "out")))
 | 
					             (let ((out (assoc-ref outputs "out")))
 | 
				
			||||||
| 
						 | 
					@ -7264,7 +7189,7 @@ elements to achieve a simple goal in the most complex way possible.")
 | 
				
			||||||
(define-public pioneer
 | 
					(define-public pioneer
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "pioneer")
 | 
					    (name "pioneer")
 | 
				
			||||||
    (version "20210203")
 | 
					    (version "20210723")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method git-fetch)
 | 
					              (method git-fetch)
 | 
				
			||||||
              (uri (git-reference
 | 
					              (uri (git-reference
 | 
				
			||||||
| 
						 | 
					@ -7273,7 +7198,7 @@ elements to achieve a simple goal in the most complex way possible.")
 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1zyi1xyghj99hz8fa6dywpscj6flp04fspnlgxbivf3rgmnxflg7"))))
 | 
					                "1hj99jxb9n3r0bkq87p1c24862xa1xyzjyfdyyx88ckszxb05qf3"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("pkg-config" ,pkg-config)))
 | 
					     `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
| 
						 | 
					@ -7336,7 +7261,7 @@ Github or Gitlab.")
 | 
				
			||||||
(define-public colobot
 | 
					(define-public colobot
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "colobot")
 | 
					    (name "colobot")
 | 
				
			||||||
    (version "0.1.12-alpha")
 | 
					    (version "0.2.0-alpha")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -7346,8 +7271,7 @@ Github or Gitlab.")
 | 
				
			||||||
             (recursive? #t)))          ;for "data/" subdir
 | 
					             (recursive? #t)))          ;for "data/" subdir
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32 "02z21pw47j2afjsikn5b162gacwgiahdrlhmfxhq4xqlzsvz58z6"))))
 | 
				
			||||||
         "1c181cclkrnspgs07lvndg2c81cjq3smkv7qim8c470cj88rcrp2"))))
 | 
					 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f                      ;no test
 | 
					     `(#:tests? #f                      ;no test
 | 
				
			||||||
| 
						 | 
					@ -7553,6 +7477,8 @@ online.")
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1iy8rx7kjvi1zjiw4zh77szzmd1sgpqajvbhprh1sj93fhbxcdfl"))))
 | 
					                "1iy8rx7kjvi1zjiw4zh77szzmd1sgpqajvbhprh1sj93fhbxcdfl"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:configure-flags (list "CFLAGS=-fcommon")))
 | 
				
			||||||
    (inputs `(("sdl2-net" ,sdl2-net)
 | 
					    (inputs `(("sdl2-net" ,sdl2-net)
 | 
				
			||||||
              ("sdl2-mixer" , sdl2-mixer)
 | 
					              ("sdl2-mixer" , sdl2-mixer)
 | 
				
			||||||
              ("sdl2" ,sdl2)))
 | 
					              ("sdl2" ,sdl2)))
 | 
				
			||||||
| 
						 | 
					@ -7592,7 +7518,8 @@ affect gameplay).")
 | 
				
			||||||
      `(("automake" ,automake)
 | 
					      `(("automake" ,automake)
 | 
				
			||||||
        ("autoreconf" ,autoconf))))
 | 
					        ("autoreconf" ,autoconf))))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:configure-flags '("CFLAGS=-fcommon")
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (replace 'bootstrap
 | 
					         (replace 'bootstrap
 | 
				
			||||||
           ;; The bundled autogen.sh script unconditionally runs ./configure.
 | 
					           ;; The bundled autogen.sh script unconditionally runs ./configure.
 | 
				
			||||||
| 
						 | 
					@ -8316,7 +8243,7 @@ your score gets higher, you level up and the blocks fall faster.")
 | 
				
			||||||
(define-public endless-sky
 | 
					(define-public endless-sky
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "endless-sky")
 | 
					    (name "endless-sky")
 | 
				
			||||||
    (version "0.9.12")
 | 
					    (version "0.9.14")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -8325,29 +8252,24 @@ your score gets higher, you level up and the blocks fall faster.")
 | 
				
			||||||
             (commit (string-append "v" version))))
 | 
					             (commit (string-append "v" version))))
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
         (base32 "18nkl4s3r5sy3sd9lhbdg9160c7fggklklprx0d5azifc8g6k0wj"))))
 | 
					        (base32 "12iganf8dxiyrjznnabsarxjsr0h717j3k4mz15p0k67wxyahhmf"))))
 | 
				
			||||||
    (build-system scons-build-system)
 | 
					    (build-system scons-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:scons ,scons-python2
 | 
					     `(#:scons ,scons-python2
 | 
				
			||||||
       #:scons-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
 | 
					       #:scons-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
 | 
				
			||||||
       #:tests? #f ; no tests
 | 
					 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-after 'unpack 'patch-resource-locations
 | 
					         (add-after 'unpack 'fix-paths
 | 
				
			||||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             ;; Look for resources in the store directory.
 | 
				
			||||||
             (substitute* "source/Files.cpp"
 | 
					             (substitute* "source/Files.cpp"
 | 
				
			||||||
               (("/usr/local/")
 | 
					               (("/usr/local") (assoc-ref outputs "out")))
 | 
				
			||||||
                (string-append (assoc-ref outputs "out") "/")))
 | 
					             ;; Install game binary into %out/bin.
 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
         (add-after 'unpack 'patch-scons
 | 
					 | 
				
			||||||
           (lambda _
 | 
					 | 
				
			||||||
             (substitute* "SConstruct"
 | 
					             (substitute* "SConstruct"
 | 
				
			||||||
               ;; Keep environmental variables
 | 
					               (("games\"") "bin\""))))
 | 
				
			||||||
               (("Environment\\(\\)")
 | 
					         (add-before 'build 'use-gcc-ar
 | 
				
			||||||
                "Environment(ENV = os.environ)")
 | 
					           ;; Use gcc-ar to support LTO.
 | 
				
			||||||
               ;; Install into %out/bin
 | 
					           (lambda _ (setenv "AR" "gcc-ar"))))))
 | 
				
			||||||
               (("games\"") "bin\""))
 | 
					 | 
				
			||||||
             #t)))))
 | 
					 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("glew" ,glew)
 | 
					     `(("glew" ,glew)
 | 
				
			||||||
       ("libjpeg" ,libjpeg-turbo)
 | 
					       ("libjpeg" ,libjpeg-turbo)
 | 
				
			||||||
| 
						 | 
					@ -8717,7 +8639,8 @@ affected by the gravity of the planets.")
 | 
				
			||||||
         "1nfkhcm0l89jyw8yr65na97g4l385zhjf7whkyg47c3v5sdqq2g7"))))
 | 
					         "1nfkhcm0l89jyw8yr65na97g4l385zhjf7whkyg47c3v5sdqq2g7"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:configure-flags '("CFLAGS=-fcommon")
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-after 'unpack 'fix-install-directories
 | 
					         (add-after 'unpack 'fix-install-directories
 | 
				
			||||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
| 
						 | 
					@ -8734,7 +8657,7 @@ affected by the gravity of the planets.")
 | 
				
			||||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
					           (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
             (setenv "CPATH"
 | 
					             (setenv "CPATH"
 | 
				
			||||||
                     (string-append
 | 
					                     (string-append
 | 
				
			||||||
                      (search-input-file inputs "/include/SDL")
 | 
					                      (search-input-directory inputs "/include/SDL")
 | 
				
			||||||
                      ":" (or (getenv "CPATH") ""))))))))
 | 
					                      ":" (or (getenv "CPATH") ""))))))))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("fontconfig" ,fontconfig)
 | 
					     `(("fontconfig" ,fontconfig)
 | 
				
			||||||
| 
						 | 
					@ -8979,7 +8902,7 @@ fight each other on an arena-like map.")
 | 
				
			||||||
(define-public flare-engine
 | 
					(define-public flare-engine
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "flare-engine")
 | 
					    (name "flare-engine")
 | 
				
			||||||
    (version "1.11")
 | 
					    (version "1.12")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method git-fetch)
 | 
					              (method git-fetch)
 | 
				
			||||||
              (uri (git-reference
 | 
					              (uri (git-reference
 | 
				
			||||||
| 
						 | 
					@ -8988,7 +8911,7 @@ fight each other on an arena-like map.")
 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1mqr1s72p5bdh4kq2a8hg72dk8lwnddicjnd2cdp1sbfa9lmjym8"))))
 | 
					                "0h4xxj6r194pw68m3ngrnzkh6xgiblyrsc54z8abwba8m0mqbvmk"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f                      ;no test
 | 
					     `(#:tests? #f                      ;no test
 | 
				
			||||||
| 
						 | 
					@ -9007,7 +8930,7 @@ action RPGs.")
 | 
				
			||||||
(define-public flare-game
 | 
					(define-public flare-game
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "flare-game")
 | 
					    (name "flare-game")
 | 
				
			||||||
    (version "1.11")
 | 
					    (version "1.12")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method git-fetch)
 | 
					              (method git-fetch)
 | 
				
			||||||
              (uri (git-reference
 | 
					              (uri (git-reference
 | 
				
			||||||
| 
						 | 
					@ -9016,7 +8939,7 @@ action RPGs.")
 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0bd5g7sd89a9176ilr408hdqzdfv4j7wj0idd685c1n6s01c3h6p"))))
 | 
					                "0h9i128kq6disppbrplkf13zdmsg4cq23nim53mgwpawc4mqz7ga"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f                      ;no test
 | 
					     `(#:tests? #f                      ;no test
 | 
				
			||||||
| 
						 | 
					@ -9442,10 +9365,65 @@ and bring the war to your enemy.")
 | 
				
			||||||
                   license:expat license:fdl1.3+ license:public-domain
 | 
					                   license:expat license:fdl1.3+ license:public-domain
 | 
				
			||||||
                   license:zlib))))
 | 
					                   license:zlib))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public go-github-com-anaseto-gruid
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "go-github-com-anaseto-gruid")
 | 
				
			||||||
 | 
					    (version "0.21.1")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method git-fetch)
 | 
				
			||||||
 | 
					       (uri (git-reference
 | 
				
			||||||
 | 
					             (url "https://github.com/anaseto/gruid")
 | 
				
			||||||
 | 
					             (commit (string-append "v" version))))
 | 
				
			||||||
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "0rvsavkvg2hziwdh8sjk3n5v92m5mfjb8v9m7ch22maxfwq5kv6y"))))
 | 
				
			||||||
 | 
					    (build-system go-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:import-path "github.com/anaseto/gruid"))
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("go-golang-org-x-image" ,go-golang-org-x-image)))
 | 
				
			||||||
 | 
					    (home-page "https://github.com/anaseto/gruid")
 | 
				
			||||||
 | 
					    (synopsis "Cross-platform grid-based UI and game framework")
 | 
				
			||||||
 | 
					    (description "The gruid module provides packages for easily building
 | 
				
			||||||
 | 
					grid-based applications in Go.  The library abstracts rendering and input for
 | 
				
			||||||
 | 
					different platforms.  There are drivers available for terminal apps, native
 | 
				
			||||||
 | 
					graphical apps and browser apps.  The original application for the library was
 | 
				
			||||||
 | 
					creating grid-based games, but it's also well suited for any grid-based
 | 
				
			||||||
 | 
					application.")
 | 
				
			||||||
 | 
					    (license license:isc)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public go-github-com-anaseto-gruid-tcell
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "go-github-com-anaseto-gruid-tcell")
 | 
				
			||||||
 | 
					    (version "0.1.1")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method git-fetch)
 | 
				
			||||||
 | 
					       (uri (git-reference
 | 
				
			||||||
 | 
					             (url "https://github.com/anaseto/gruid-tcell")
 | 
				
			||||||
 | 
					             (commit (string-append "v" version))))
 | 
				
			||||||
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "09ajr9mbldjfc44qprplbf8dr8yhlbn2nfnas2z62m9wmklc0qiv"))))
 | 
				
			||||||
 | 
					    (build-system go-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:import-path "github.com/anaseto/gruid-tcell"))
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("go-github-com-gdamore-tcell-v2" ,go-github-com-gdamore-tcell-v2)
 | 
				
			||||||
 | 
					       ("go-github-com-anaseto-gruid" ,go-github-com-anaseto-gruid)))
 | 
				
			||||||
 | 
					    (home-page "https://github.com/anaseto/gruid-tcell")
 | 
				
			||||||
 | 
					    (synopsis "Gruid driver using the tcell library")
 | 
				
			||||||
 | 
					    (description "The gruid-tcell module provides a Gruid driver for building
 | 
				
			||||||
 | 
					terminal full-window applications.")
 | 
				
			||||||
 | 
					    (license license:isc)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public harmonist
 | 
					(define-public harmonist
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "harmonist")
 | 
					    (name "harmonist")
 | 
				
			||||||
    (version "0.3.0")
 | 
					    (version "0.4.1")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method git-fetch)
 | 
					              (method git-fetch)
 | 
				
			||||||
              (uri (git-reference
 | 
					              (uri (git-reference
 | 
				
			||||||
| 
						 | 
					@ -9454,12 +9432,15 @@ and bring the war to your enemy.")
 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "146wiyanag0zqj6fhyll2sw6sydnnll8mgxhhqf9sjqsl2rx4s5r"))))
 | 
					                "17ai39pw9xq4asfvhs0whx07hljlivygazbwrxjrnxwrn06483hr"))))
 | 
				
			||||||
    (build-system go-build-system)
 | 
					    (build-system go-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:import-path "git.tuxfamily.org/harmonist/harmonist"))
 | 
					     '(#:import-path "git.tuxfamily.org/harmonist/harmonist"))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("go-github.com-nsf-termbox-go" ,go-github.com-nsf-termbox-go)))
 | 
					     `(("go-github-com-gdamore-tcell-v2" ,go-github-com-gdamore-tcell-v2)
 | 
				
			||||||
 | 
					       ("go-github.com-nsf-termbox-go" ,go-github.com-nsf-termbox-go)
 | 
				
			||||||
 | 
					       ("go-github-com-anaseto-gruid" ,go-github-com-anaseto-gruid)
 | 
				
			||||||
 | 
					       ("go-github-com-anaseto-gruid-tcell" ,go-github-com-anaseto-gruid-tcell)))
 | 
				
			||||||
    (home-page "https://harmonist.tuxfamily.org/")
 | 
					    (home-page "https://harmonist.tuxfamily.org/")
 | 
				
			||||||
    (synopsis "Stealth coffee-break roguelike game")
 | 
					    (synopsis "Stealth coffee-break roguelike game")
 | 
				
			||||||
    (description "Harmonist: Dayoriah Clan Infiltration is a stealth
 | 
					    (description "Harmonist: Dayoriah Clan Infiltration is a stealth
 | 
				
			||||||
| 
						 | 
					@ -9470,26 +9451,6 @@ the game avoids complex inventory management and character building, relying
 | 
				
			||||||
on items and player adaptability for character progression.")
 | 
					on items and player adaptability for character progression.")
 | 
				
			||||||
    (license license:isc)))
 | 
					    (license license:isc)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public harmonist-tk
 | 
					 | 
				
			||||||
  (package
 | 
					 | 
				
			||||||
    (inherit harmonist)
 | 
					 | 
				
			||||||
    (name "harmonist-tk")
 | 
					 | 
				
			||||||
    (arguments
 | 
					 | 
				
			||||||
      (append
 | 
					 | 
				
			||||||
        (package-arguments harmonist)
 | 
					 | 
				
			||||||
        `(#:phases
 | 
					 | 
				
			||||||
          (modify-phases %standard-phases
 | 
					 | 
				
			||||||
            (replace 'build
 | 
					 | 
				
			||||||
              (lambda _
 | 
					 | 
				
			||||||
                (invoke "go" "install" "-v" "-x" "--tags" "tk"
 | 
					 | 
				
			||||||
                        "git.tuxfamily.org/harmonist/harmonist")))
 | 
					 | 
				
			||||||
            (replace 'check
 | 
					 | 
				
			||||||
              (lambda _
 | 
					 | 
				
			||||||
                (invoke "go" "test" "--tags" "tk"
 | 
					 | 
				
			||||||
                        "git.tuxfamily.org/harmonist/harmonist")))))))
 | 
					 | 
				
			||||||
    (inputs
 | 
					 | 
				
			||||||
     `(("go-github.com-nsf-gothic" ,go-github.com-nsf-gothic)))))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define-public drascula
 | 
					(define-public drascula
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "drascula")
 | 
					    (name "drascula")
 | 
				
			||||||
| 
						 | 
					@ -10100,7 +10061,7 @@ remake of that series or any other game.")
 | 
				
			||||||
    `(("googletest" ,googletest)))
 | 
					    `(("googletest" ,googletest)))
 | 
				
			||||||
   (inputs
 | 
					   (inputs
 | 
				
			||||||
    `(("boost" ,boost)
 | 
					    `(("boost" ,boost)
 | 
				
			||||||
      ("ocl-icd" ,ocl-icd)
 | 
					      ("opencl-icd-loader" ,opencl-icd-loader)
 | 
				
			||||||
      ("openblas" ,openblas)
 | 
					      ("openblas" ,openblas)
 | 
				
			||||||
      ("opencl-headers" ,opencl-headers)
 | 
					      ("opencl-headers" ,opencl-headers)
 | 
				
			||||||
      ("qtbase" ,qtbase-5)
 | 
					      ("qtbase" ,qtbase-5)
 | 
				
			||||||
| 
						 | 
					@ -10161,6 +10122,11 @@ can be downloaded from @url{https://zero.sjeng.org/best-network}.")
 | 
				
			||||||
              (("qtchooser -run-tool=(.*) -qt=qt5" _ command)
 | 
					              (("qtchooser -run-tool=(.*) -qt=qt5" _ command)
 | 
				
			||||||
               command))
 | 
					               command))
 | 
				
			||||||
            #t))
 | 
					            #t))
 | 
				
			||||||
 | 
					        (add-after 'unpack 'fix-header
 | 
				
			||||||
 | 
					          (lambda _
 | 
				
			||||||
 | 
					            (substitute* "src/bitarray.h"
 | 
				
			||||||
 | 
					              (("#include <cstring>" all)
 | 
				
			||||||
 | 
					               (string-append all "\n#include <stdexcept>")))))
 | 
				
			||||||
        (add-after 'unpack 'fix-paths
 | 
					        (add-after 'unpack 'fix-paths
 | 
				
			||||||
          (lambda _
 | 
					          (lambda _
 | 
				
			||||||
            (substitute* '("src/pics/Makefile.in"
 | 
					            (substitute* '("src/pics/Makefile.in"
 | 
				
			||||||
| 
						 | 
					@ -11980,7 +11946,7 @@ etc.  You can also play games on FICS or against an engine.")
 | 
				
			||||||
                                           ,(match (%current-system)
 | 
					                                           ,(match (%current-system)
 | 
				
			||||||
                                              ("x86_64-linux" "x86-64")
 | 
					                                              ("x86_64-linux" "x86-64")
 | 
				
			||||||
                                              ("i686-linux" "x86-32")
 | 
					                                              ("i686-linux" "x86-32")
 | 
				
			||||||
                                              ("aarch64-linux" "general-64")
 | 
					                                              ("aarch64-linux" "armv8")
 | 
				
			||||||
                                              ("armhf-linux" "armv7")
 | 
					                                              ("armhf-linux" "armv7")
 | 
				
			||||||
                                              ("mips64el-linux" "general-64")
 | 
					                                              ("mips64el-linux" "general-64")
 | 
				
			||||||
                                              (_ "general-32"))))
 | 
					                                              (_ "general-32"))))
 | 
				
			||||||
| 
						 | 
					@ -12498,3 +12464,35 @@ wreckage.  You're stranded on a desert island and have to survive.  In order to
 | 
				
			||||||
do so you need to explore the island, find food, build a shelter and try to
 | 
					do so you need to explore the island, find food, build a shelter and try to
 | 
				
			||||||
get attention, so you get found.")
 | 
					get attention, so you get found.")
 | 
				
			||||||
      (license license:cc-by4.0))))
 | 
					      (license license:cc-by4.0))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public fheroes2
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "fheroes2")
 | 
				
			||||||
 | 
					    (version "0.9.7")
 | 
				
			||||||
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:tests? #f                      ; no tests
 | 
				
			||||||
 | 
					       #:make-flags '("FHEROES2_STRICT_COMPILATION=1"
 | 
				
			||||||
 | 
					                      "RELEASE=1")))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("gettext" ,gettext-minimal)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("libpng" ,libpng)
 | 
				
			||||||
 | 
					       ("sdl" ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))
 | 
				
			||||||
 | 
					       ("zlib" ,zlib)))
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method git-fetch)
 | 
				
			||||||
 | 
					       (uri (git-reference
 | 
				
			||||||
 | 
					             (url "https://github.com/ihhub/fheroes2")
 | 
				
			||||||
 | 
					             (commit version)))
 | 
				
			||||||
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "0v3zh8a8yxfikcr5vkmy36c57l4nmwisz13mjavn5f7yrirf86fn"))))
 | 
				
			||||||
 | 
					    (home-page "https://ihhub.github.io/fheroes2/")
 | 
				
			||||||
 | 
					    (synopsis "Turn-based strategy game engine")
 | 
				
			||||||
 | 
					    (description "@code{fheroes2} is an implementation of Heroes of Might and
 | 
				
			||||||
 | 
					Magic II (aka HOMM2) game engine.  It requires assets and game resources to
 | 
				
			||||||
 | 
					play; it will look for them at @file{~/.local/share/fheroes2} folder.")
 | 
				
			||||||
 | 
					    (license license:gpl2)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -600,14 +600,14 @@ It also includes runtime support libraries for these languages.")))
 | 
				
			||||||
(define-public gcc-11
 | 
					(define-public gcc-11
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
   (inherit gcc-8)
 | 
					   (inherit gcc-8)
 | 
				
			||||||
   (version "11.1.0")
 | 
					   (version "11.2.0")
 | 
				
			||||||
   (source (origin
 | 
					   (source (origin
 | 
				
			||||||
            (method url-fetch)
 | 
					            (method url-fetch)
 | 
				
			||||||
            (uri (string-append "mirror://gnu/gcc/gcc-"
 | 
					            (uri (string-append "mirror://gnu/gcc/gcc-"
 | 
				
			||||||
                                version "/gcc-" version ".tar.xz"))
 | 
					                                version "/gcc-" version ".tar.xz"))
 | 
				
			||||||
            (sha256
 | 
					            (sha256
 | 
				
			||||||
             (base32
 | 
					             (base32
 | 
				
			||||||
              "1pwxrjhsymv90xzh0x42cxfnmhjinf2lnrrf3hj5jq1rm2w6yjjc"))
 | 
					              "12zs6vd2rapp42x154m479hg3h3lsafn3xhg06hp5hsldd9xr3nh"))
 | 
				
			||||||
            (patches (search-patches "gcc-9-strmov-store-file-names.patch"
 | 
					            (patches (search-patches "gcc-9-strmov-store-file-names.patch"
 | 
				
			||||||
                                     "gcc-5.0-libvtv-runpath.patch"))
 | 
					                                     "gcc-5.0-libvtv-runpath.patch"))
 | 
				
			||||||
            (modules '((guix build utils)))
 | 
					            (modules '((guix build utils)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,13 +9,14 @@
 | 
				
			||||||
;;; Copyright © 2018, 2019, 2020 Julien Lepiller <julien@lepiller.eu>
 | 
					;;; Copyright © 2018, 2019, 2020 Julien Lepiller <julien@lepiller.eu>
 | 
				
			||||||
;;; Copyright © 2019, 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
 | 
					;;; Copyright © 2019, 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
 | 
				
			||||||
;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 | 
					;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 | 
				
			||||||
;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
 | 
					;;; Copyright © 2019, 2021 Wiktor Żelazny <wzelazny@vurv.cz>
 | 
				
			||||||
;;; Copyright © 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 | 
					;;; Copyright © 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 | 
				
			||||||
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 | 
					;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 | 
				
			||||||
;;; Copyright © 2020 Christopher Baines <mail@cbaines.net>
 | 
					;;; Copyright © 2020 Christopher Baines <mail@cbaines.net>
 | 
				
			||||||
;;; Copyright © 2020, 2021 Felix Gruber <felgru@posteo.net>
 | 
					;;; Copyright © 2020, 2021 Felix Gruber <felgru@posteo.net>
 | 
				
			||||||
;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
 | 
					;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
 | 
				
			||||||
;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
 | 
					;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
 | 
				
			||||||
 | 
					;;; Copyright © 2021 Clément Lassieur <clement@lassieur.org>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -210,7 +211,7 @@ topology functions.")
 | 
				
			||||||
(define-public gnome-maps
 | 
					(define-public gnome-maps
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "gnome-maps")
 | 
					    (name "gnome-maps")
 | 
				
			||||||
    (version "3.36.7")
 | 
					    (version "3.38.5")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "mirror://gnome/sources/" name "/"
 | 
					              (uri (string-append "mirror://gnome/sources/" name "/"
 | 
				
			||||||
| 
						 | 
					@ -218,7 +219,7 @@ topology functions.")
 | 
				
			||||||
                                  name "-" version ".tar.xz"))
 | 
					                                  name "-" version ".tar.xz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "09rgw8hq3ligap1zzjhx25q354ficpbiw1z9ramghhcqbpylsxdh"))))
 | 
					                "1llgzm2ni3iy31dznqkc81vadv0fpqgpz2l9zzrj5jshvyq0akgh"))))
 | 
				
			||||||
    (build-system meson-build-system)
 | 
					    (build-system meson-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:glib-or-gtk? #t
 | 
					     `(#:glib-or-gtk? #t
 | 
				
			||||||
| 
						 | 
					@ -478,14 +479,12 @@ coverages using a SpatiaLite DBMS.")
 | 
				
			||||||
       '("--enable-rttopo=yes")
 | 
					       '("--enable-rttopo=yes")
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         ;; 3 tests are failing, ignore them:
 | 
					         ;; 1 test is failing, ignore it:
 | 
				
			||||||
         (add-after 'unpack 'ignore-broken-tests
 | 
					         (add-after 'unpack 'ignore-broken-tests
 | 
				
			||||||
           (lambda _
 | 
					           (lambda _
 | 
				
			||||||
             (substitute* '("test/Makefile.in")
 | 
					             (substitute* '("test/Makefile.in")
 | 
				
			||||||
               (("\tcheck_sql_stmt.* (check_sql_.*)" all tiny) (string-append "\t" tiny))
 | 
					               (("check_wms\\$\\(EXEEXT\\) check_drop_rename\\$\\(EXEEXT\\) ")
 | 
				
			||||||
               (("(\tch.*) check_v.*ble2.*$" all vt1) (string-append vt1 " \\\n"))
 | 
					                "check_wms$(EXEEXT) ")))))))
 | 
				
			||||||
               (("\tch.* (check_v.*ble4.*)$" all vt4) (string-append "\t" vt4)))
 | 
					 | 
				
			||||||
             #t)))))
 | 
					 | 
				
			||||||
    (synopsis "Extend SQLite to support Spatial SQL capabilities")
 | 
					    (synopsis "Extend SQLite to support Spatial SQL capabilities")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
     "SpatiaLite is a library intended to extend the SQLite core to support
 | 
					     "SpatiaLite is a library intended to extend the SQLite core to support
 | 
				
			||||||
| 
						 | 
					@ -1218,6 +1217,7 @@ map display.  Downloads map data from a number of websites, including
 | 
				
			||||||
                     (url "https://github.com/opengribs/XyGrib")
 | 
					                     (url "https://github.com/opengribs/XyGrib")
 | 
				
			||||||
                     (commit (string-append "v" version))))
 | 
					                     (commit (string-append "v" version))))
 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					              (patches (search-patches "xygrib-fix-finding-data.patch"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0xzsm8pr0zjk3f8j880fg5n82jyxn8xf1330qmmq1fqv7rsrg9ia"))
 | 
					                "0xzsm8pr0zjk3f8j880fg5n82jyxn8xf1330qmmq1fqv7rsrg9ia"))
 | 
				
			||||||
| 
						 | 
					@ -1232,18 +1232,15 @@ map display.  Downloads map data from a number of websites, including
 | 
				
			||||||
                  #t))))
 | 
					                  #t))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:configure-flags (list "-DGNU_PACKAGE=ON")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-after 'unpack 'patch-directories
 | 
					         (add-after 'unpack 'patch-directories
 | 
				
			||||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
					           (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
             (let ((jpeg (assoc-ref inputs "openjpeg"))
 | 
					             (let ((jpeg (assoc-ref inputs "openjpeg"))
 | 
				
			||||||
                   (font (assoc-ref inputs "font-liberation")))
 | 
					                   (font (assoc-ref inputs "font-liberation")))
 | 
				
			||||||
               (substitute* "CMakeLists.txt"
 | 
					               (substitute* "CMakeLists.txt"
 | 
				
			||||||
                 ;; Find libjpeg.
 | 
					 | 
				
			||||||
                 (("/usr") jpeg)
 | 
					 | 
				
			||||||
                 ;; Fix install locations.
 | 
					 | 
				
			||||||
                 (("set\\(PREFIX_BIN.*") "set(PREFIX_BIN \"bin\")\n")
 | 
					 | 
				
			||||||
                 (("set\\(PREFIX_PKGDATA.*") "set(PREFIX_PKGDATA \"share/${PROJECT_NAME}\")\n")
 | 
					 | 
				
			||||||
                 ;; Skip looking for the static library.
 | 
					                 ;; Skip looking for the static library.
 | 
				
			||||||
                 (("\"libnova.a\"") ""))
 | 
					                 (("\"libnova.a\"") ""))
 | 
				
			||||||
               ;; Don't use the bundled font-liberation.
 | 
					               ;; Don't use the bundled font-liberation.
 | 
				
			||||||
| 
						 | 
					@ -1252,8 +1249,7 @@ map display.  Downloads map data from a number of websites, including
 | 
				
			||||||
                  (string-append "\"" font "/share/fonts/truetype/\"")))
 | 
					                  (string-append "\"" font "/share/fonts/truetype/\"")))
 | 
				
			||||||
               (substitute* "src/util/Util.h"
 | 
					               (substitute* "src/util/Util.h"
 | 
				
			||||||
                 (("pathData\\(\\)\\+\"data/fonts/\"")
 | 
					                 (("pathData\\(\\)\\+\"data/fonts/\"")
 | 
				
			||||||
                  (string-append "\"" font "/share/fonts/\""))))
 | 
					                  (string-append "\"" font "/share/fonts/\"")))))))
 | 
				
			||||||
             #t)))
 | 
					 | 
				
			||||||
       #:tests? #f)) ; no tests
 | 
					       #:tests? #f)) ; no tests
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("qttools" ,qttools)))
 | 
					     `(("qttools" ,qttools)))
 | 
				
			||||||
| 
						 | 
					@ -1266,6 +1262,10 @@ map display.  Downloads map data from a number of websites, including
 | 
				
			||||||
       ("proj.4" ,proj.4)
 | 
					       ("proj.4" ,proj.4)
 | 
				
			||||||
       ("qtbase" ,qtbase-5)
 | 
					       ("qtbase" ,qtbase-5)
 | 
				
			||||||
       ("zlib" ,zlib)))
 | 
					       ("zlib" ,zlib)))
 | 
				
			||||||
 | 
					    (native-search-paths
 | 
				
			||||||
 | 
					     (list (search-path-specification
 | 
				
			||||||
 | 
					            (variable "XDG_DATA_DIRS")
 | 
				
			||||||
 | 
					            (files '("share")))))
 | 
				
			||||||
    (synopsis "Weather Forecast Visualization")
 | 
					    (synopsis "Weather Forecast Visualization")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
     "XyGrib is a Grib file reader and visualizes meteorological data providing
 | 
					     "XyGrib is a Grib file reader and visualizes meteorological data providing
 | 
				
			||||||
| 
						 | 
					@ -1352,7 +1352,7 @@ an independent project by the JOSM team.")
 | 
				
			||||||
(define-public java-opening-hours-parser
 | 
					(define-public java-opening-hours-parser
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "java-opening-hours-parser")
 | 
					    (name "java-opening-hours-parser")
 | 
				
			||||||
    (version "0.21.4")
 | 
					    (version "0.23.0")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method git-fetch)
 | 
					              (method git-fetch)
 | 
				
			||||||
              (uri (git-reference
 | 
					              (uri (git-reference
 | 
				
			||||||
| 
						 | 
					@ -1361,7 +1361,7 @@ an independent project by the JOSM team.")
 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1m8sp0jbjyv1nq3ddj8rk6rf3sva3mkacc6vw7rsj0c2n57k3i50"))))
 | 
					                "0yhbd2ix6h506aljh0jkrnp28m4xcqdcdpnqm30fn08kawdgxgsh"))))
 | 
				
			||||||
    (build-system ant-build-system)
 | 
					    (build-system ant-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:jar-name "java-opening-hours-parser.jar"
 | 
					     `(#:jar-name "java-opening-hours-parser.jar"
 | 
				
			||||||
| 
						 | 
					@ -1397,7 +1397,7 @@ to the OSM opening hours specification.")
 | 
				
			||||||
(define-public josm
 | 
					(define-public josm
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "josm")
 | 
					    (name "josm")
 | 
				
			||||||
    (version "17329")
 | 
					    (version "18193")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method svn-fetch)
 | 
					              (method svn-fetch)
 | 
				
			||||||
              (uri (svn-reference
 | 
					              (uri (svn-reference
 | 
				
			||||||
| 
						 | 
					@ -1406,7 +1406,7 @@ to the OSM opening hours specification.")
 | 
				
			||||||
                     (recursive? #f)))
 | 
					                     (recursive? #f)))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0bq6mirdsi0kmhjfzfp3innxi5a4395d7mas7ikxaz0cziljrz1i"))
 | 
					                "162hdck29bkag1d97nisx8v7395pdw00bl7nf0p02hr30fc1fcrh"))
 | 
				
			||||||
              (file-name (string-append name "-" version "-checkout"))
 | 
					              (file-name (string-append name "-" version "-checkout"))
 | 
				
			||||||
              (modules '((guix build utils)))
 | 
					              (modules '((guix build utils)))
 | 
				
			||||||
            (snippet
 | 
					            (snippet
 | 
				
			||||||
| 
						 | 
					@ -1422,6 +1422,7 @@ to the OSM opening hours specification.")
 | 
				
			||||||
       ("java-jmapviewer" ,java-jmapviewer)
 | 
					       ("java-jmapviewer" ,java-jmapviewer)
 | 
				
			||||||
       ("java-jsonp-api" ,java-jsonp-api)
 | 
					       ("java-jsonp-api" ,java-jsonp-api)
 | 
				
			||||||
       ("java-jsonp-impl" ,java-jsonp-impl); runtime dependency
 | 
					       ("java-jsonp-impl" ,java-jsonp-impl); runtime dependency
 | 
				
			||||||
 | 
					       ("java-jsr305" ,java-jsr305)
 | 
				
			||||||
       ("java-metadata-extractor" ,java-metadata-extractor)
 | 
					       ("java-metadata-extractor" ,java-metadata-extractor)
 | 
				
			||||||
       ("java-opening-hours-parser" ,java-opening-hours-parser)
 | 
					       ("java-opening-hours-parser" ,java-opening-hours-parser)
 | 
				
			||||||
       ("java-openjfx-media" ,java-openjfx-media)
 | 
					       ("java-openjfx-media" ,java-openjfx-media)
 | 
				
			||||||
| 
						 | 
					@ -1451,7 +1452,8 @@ to the OSM opening hours specification.")
 | 
				
			||||||
             ;; which has renamed its classes to another namespace.  Rename them
 | 
					             ;; which has renamed its classes to another namespace.  Rename them
 | 
				
			||||||
             ;; back so they can be used with our version of jcs.
 | 
					             ;; back so they can be used with our version of jcs.
 | 
				
			||||||
             (substitute* (find-files "." ".*.java$")
 | 
					             (substitute* (find-files "." ".*.java$")
 | 
				
			||||||
               (("jcs3") "jcs"))
 | 
					               (("jcs3") "jcs")
 | 
				
			||||||
 | 
					               (("ICache.NAME_COMPONENT_DELIMITER") "\":\""))
 | 
				
			||||||
             #t))
 | 
					             #t))
 | 
				
			||||||
         (add-before 'build 'fix-classpath
 | 
					         (add-before 'build 'fix-classpath
 | 
				
			||||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
					           (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
| 
						 | 
					@ -1705,22 +1707,7 @@ using the dataset of topographical information collected by
 | 
				
			||||||
             ;; of QMapShack, but they are not applied by default, for
 | 
					             ;; of QMapShack, but they are not applied by default, for
 | 
				
			||||||
             ;; some reason...
 | 
					             ;; some reason...
 | 
				
			||||||
             (invoke "patch" "-p1" "-i" "FindPROJ4.patch")
 | 
					             (invoke "patch" "-p1" "-i" "FindPROJ4.patch")
 | 
				
			||||||
             (invoke "patch" "-p1" "-i" "FindQuaZip5.patch")
 | 
					             (invoke "patch" "-p1" "-i" "FindQuaZip5.patch"))))))
 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
         (add-after 'install 'wrap
 | 
					 | 
				
			||||||
           ;; The program fails to find the QtWebEngineProcess program,
 | 
					 | 
				
			||||||
           ;; so we set QTWEBENGINEPROCESS_PATH to help it.
 | 
					 | 
				
			||||||
           (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
					 | 
				
			||||||
             (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
 | 
					 | 
				
			||||||
                   (qtwebengineprocess (string-append
 | 
					 | 
				
			||||||
                                        (assoc-ref inputs "qtwebengine")
 | 
					 | 
				
			||||||
                                        "/lib/qt5/libexec/QtWebEngineProcess")))
 | 
					 | 
				
			||||||
               (for-each (lambda (program)
 | 
					 | 
				
			||||||
                           (wrap-program program
 | 
					 | 
				
			||||||
                             `("QTWEBENGINEPROCESS_PATH" =
 | 
					 | 
				
			||||||
                               (,qtwebengineprocess))))
 | 
					 | 
				
			||||||
                         (find-files bin ".*")))
 | 
					 | 
				
			||||||
             #t)))))
 | 
					 | 
				
			||||||
    (synopsis "GPS mapping application")
 | 
					    (synopsis "GPS mapping application")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
     "QMapShack can be used to plan your next outdoor trip or to visualize and
 | 
					     "QMapShack can be used to plan your next outdoor trip or to visualize and
 | 
				
			||||||
| 
						 | 
					@ -1878,7 +1865,8 @@ exchanged form one Spatial DBMS and the other.")
 | 
				
			||||||
     `(#:configure-flags '("-DENABLE_PORTAUDIO=ON"
 | 
					     `(#:configure-flags '("-DENABLE_PORTAUDIO=ON"
 | 
				
			||||||
                           "-DENABLE_SNDFILE=ON"
 | 
					                           "-DENABLE_SNDFILE=ON"
 | 
				
			||||||
                           "-DBUNDLE_TCDATA=ON"
 | 
					                           "-DBUNDLE_TCDATA=ON"
 | 
				
			||||||
                           "-DBUNDLE_GSHHS=CRUDE")
 | 
					                           "-DBUNDLE_GSHHS=CRUDE"
 | 
				
			||||||
 | 
					                           "-DCMAKE_C_FLAGS=-fcommon")
 | 
				
			||||||
       #:tests? #f ; No tests defined
 | 
					       #:tests? #f ; No tests defined
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
| 
						 | 
					@ -2159,6 +2147,7 @@ growing set of geoscientific methods.")
 | 
				
			||||||
                             "PyCoreAdittions"
 | 
					                             "PyCoreAdittions"
 | 
				
			||||||
                             "PyQgsAnnotation"
 | 
					                             "PyQgsAnnotation"
 | 
				
			||||||
                             "PyQgsAppStartup"
 | 
					                             "PyQgsAppStartup"
 | 
				
			||||||
 | 
					                             "PyQgsAuthBasicMethod"
 | 
				
			||||||
                             "PyQgsAuthenticationSystem"
 | 
					                             "PyQgsAuthenticationSystem"
 | 
				
			||||||
                             "PyQgsAuxiliaryStorage"
 | 
					                             "PyQgsAuxiliaryStorage"
 | 
				
			||||||
                             "PyQgsDBManagerGpkg"
 | 
					                             "PyQgsDBManagerGpkg"
 | 
				
			||||||
| 
						 | 
					@ -2412,3 +2401,43 @@ web services.  @code{geopy} makes it easy for Python developers to locate the
 | 
				
			||||||
coordinates of addresses, cities, countries, and landmarks across the globe
 | 
					coordinates of addresses, cities, countries, and landmarks across the globe
 | 
				
			||||||
using third-party geocoders and other data sources.")
 | 
					using third-party geocoders and other data sources.")
 | 
				
			||||||
    (license license:expat)))
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public marble-qt
 | 
				
			||||||
 | 
					  (let ((release "17.08")
 | 
				
			||||||
 | 
					        (commit "fc7166eeef784732033c999ba605364f9c82d21c")
 | 
				
			||||||
 | 
					        (revision "1"))
 | 
				
			||||||
 | 
					    (package
 | 
				
			||||||
 | 
					      (name "marble-qt")
 | 
				
			||||||
 | 
					      (version (git-version release revision commit))
 | 
				
			||||||
 | 
					      (source
 | 
				
			||||||
 | 
					       (origin
 | 
				
			||||||
 | 
					         (method git-fetch)
 | 
				
			||||||
 | 
					         (uri (git-reference
 | 
				
			||||||
 | 
					               (url "https://invent.kde.org/education/marble.git/")
 | 
				
			||||||
 | 
					               (commit commit)))
 | 
				
			||||||
 | 
					         (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					         (sha256
 | 
				
			||||||
 | 
					          (base32 "0m0sf3sddaib7vc5lhbmh7ziw07p1hahg02f65sgfylyl5f5kj92"))
 | 
				
			||||||
 | 
					         (patches (search-patches
 | 
				
			||||||
 | 
					                   "marble-qt-add-qt-headers.patch"))))
 | 
				
			||||||
 | 
					      (build-system cmake-build-system)
 | 
				
			||||||
 | 
					      (arguments
 | 
				
			||||||
 | 
					       `(#:tests? #f ; libmarblewidget-qt5.so.28 not found
 | 
				
			||||||
 | 
					         #:configure-flags
 | 
				
			||||||
 | 
					         '("-DCMAKE_BUILD_TYPE=Release"
 | 
				
			||||||
 | 
					           "-DWITH_KF5=FALSE")))
 | 
				
			||||||
 | 
					      (native-inputs
 | 
				
			||||||
 | 
					       `(("qttools" ,qttools)))
 | 
				
			||||||
 | 
					      (inputs
 | 
				
			||||||
 | 
					       `(("qtbase" ,qtbase-5)
 | 
				
			||||||
 | 
					         ("qtsvg" ,qtsvg)
 | 
				
			||||||
 | 
					         ("qtdeclarative" ,qtdeclarative)
 | 
				
			||||||
 | 
					         ("qtwebkit" ,qtwebkit)
 | 
				
			||||||
 | 
					         ("qtlocation" ,qtlocation)))
 | 
				
			||||||
 | 
					      (home-page "https://marble.kde.org/")
 | 
				
			||||||
 | 
					      (synopsis "Virtual globe and world atlas")
 | 
				
			||||||
 | 
					      (description "Marble is similar to a desktop globe.  At closer scale it
 | 
				
			||||||
 | 
					becomes a world atlas, while OpenStreetMap takes the user to street level.  It
 | 
				
			||||||
 | 
					supports searching for places of interest, viewing Wikipedia articles,
 | 
				
			||||||
 | 
					creating routes by drag and drop and more.")
 | 
				
			||||||
 | 
					      (license license:gpl3))))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show more
		Reference in a new issue